=================== WIGBI RELEASE NOTES =================== This file features release notes for each new Wigbi release. For further information, see http://www.wigbi.com Wigbi 0.99.2 [2009-12-27] ========================= Wigbi 0.99.2 became a way bigger release than I first planned. It has new classes for caching and validation, which is a major improvement. It also adds a lot of functionality and features several structural changes. The 0.99.2 release also features a several new seeds and controls as well as better default language content, which is now included in the release. Wigbi 0.99.2 features the following changes: * Wigbi finally has Cache handling. The new CacheHandler class(es) lets you cache data and retrieve cached data with both PHP and JavaScript. * To simplify server-side validation, a new ValidationHandler class has been added to the PHP.System.Core package. * The SessionHandler class can now handle all kind of serializable data. * The wigbi/langauges folder has been renamed to "language" and has new files and additional content to the 0.99.1 language files. * Wigbi now includes an image and a css folder that contain default css classes and images, like the "validation-error" css class and default control styling classes. * The great SimplePie (http://simplepie.org/) component makes it simple to develop a whole new set of RSS oriented controls. First out is the new RssFeedEntryList, which can lists entries from any RSS feed. Note that SimplePie must be downloaded separately and the class file added to the wigbi/php folder to make the controls work. * Functionality that was marked as deprecated in 0.99.1 is removed and will cause Wigbi to crash if they are still used. * Seed changes: I have decided to move the PHP and JavaScript Seed class to the Core packages. It is better, since the System package contains key feature classes, while the Core package features a deeper functionality layer. The PHP Seed class has improved variable handling and now supports a wide range of data types. Several key functions have been improved as well. See the class documentation for further information. The Seed class(es) feature a new validate base function, which can be overridden to customize how a seed is validated. The function is also available in JavaScript, which executes the PHP function with AJAX. The Seed class(es) has a new loadMultiple function, which can be used to load multiple objects based on an ID array. The JavaScript onLoad callback function of the load function has been changed and now takes the object itself as a parameter instead of the previously returned boolean. New seeds: Activity, City, Comment, Country, Forum, ForumThread, ForumThreadEntry, Location, SeedTemplate Newsletter: The language parameters in the various functions have been replaced with simpler parameters. User: The class has new, basic properties and getCurrentUser now refreshes the user when reload parameter is true. * Control changes: The Wigbi 0.99.2 control collection is drastically improved compared to the 0.99.1 version, so make sure to check it out. The JavaScript.System.Core package has been extended with a new base class - BaseControl - which is a base class for all Wigbi JavaScript controls. Although it features default events with default behavior, all controls override the base events until the class is established, to make the controls more self-explanatory. Most controls have been drastically rewritten to use the BaseControl. Submitting controls also use a new validation pattern that highlights invalid form elements with a "validation-error" css class. This class is defined in the default css file that is mentioned above. Language handling has also been refactored to large parts. New controls: GoogleAdSense, CommentForm, ObjectList, RssFeedEntryList, TextHighlightExtender FileUploadForm: The upload function has no controlId parameter anymore. Duplicate file names are now named _1, _2 etc. GoogleAnalytics: The control does not add JavaScript code to applications that run on localhost. This can, however, be overridden. HtmlContentForm: A translation bug has been fixed. MailForm: The sendMail function has no controlId parameter anymore. TipForm: The sendTip function has no controlId parameter anymore. UserLoginForm: The login function has no controlId parameter anymore. UserPwdResetForm: The resetPassword function has no controlId parameter anymore. UserPwdUpdateForm: The control has been renamed to UserPasswordChangeForm The updatePassword function has no controlId parameter anymore. UserRegistrationForm: The registerUser function has no controlId parameter anymore. * Bug fixes: - A bug in PHP.System.Seed caused totalCount to always be zero in the JavaScript Seed class. This has been fixed. - A bug in PHP.System.Wigbi caused all css meta tags to be set to text/html tags. This has been fixed so that the tags will now be applied as text/css tags instead. - The SeedSearchForm handled its search filter incorrectly and added an invalid 'and' to the search filter if both a filter and search properties were specified. This has been fixed. * Deprecated: - Wigbi.initSeedControl - Use the initViewEditBehavior function of the new BaseControl class instead. Wigbi 0.99.1 [2009-11-01] ========================== Wigbi 0.99.1 contains several new features, additional functionality and several bug fixes. It is released together with an updated demo site and some new tutorials. * To avoid tampering with the source code, Wigbi uses obfuscated source code. Earlier, developers who wanted to modify the source code had to download the source code, modify it and insert the changes inside the obfuscated code. This could be a bit complicated. Therefore, Wigbi will now contain unobfuscated code as well, which is found in php/system/unobfuscated and js/system/unobfuscated. Replace the obfuscated files with to make it a lot easier to debug and modify the Wigbi source code. * Since it is (almost) impossible to debug obfuscated code, the config file now has a parameter that can be used to disable the obfuscation of the automatically generated seed/control JavaScript files. Just set application.runtimeBuild.obfuscate to blank to disable obfuscation. * Themes are now managed with the new ThemeHandler class. The old Wigbi class theme functions are still supported, but will be removed in the next release. The old theme bug, where a / at the end of the theme path caused the theme to fail, has been fixed as well. * The documentation, which has been quite "talky", has been cleaned up a lot, which hopefully makes it easier to read. * Seed changes: Newsletter - The email property has been renamed to fromMail. Fixed a JavaScript bug. The sendMail function is not incorrectly static any longer. User - The getCurrentUser function has been given a reload parameter, which must be set to true if the user is to be reloaded from the database. * New Wigbi Controls: NewsletterMailForm - This control can be used to send an e-mail to all subscribers of a certain Newsletter. * Wigbi Control changes: One focus with the new release has been to minimize the responsibility of the various controls. On example is the AutoCompleteExtender, where the key events are now the only modifications that are made to the two elements, where the old version made the select element to a multiple. From now on, Wigbi will also aim at providing controls that embed great jQuery plugins, which will make the plugins much more accessible, while still being able to be used without the controls. Also, the DOM model of each GUI control has been improved and the class names of the various internal elements are hopefully better now. AutoCompleteInput - Has been renamed to AutoCompleteExtender. The select element is not made to a multiple any more. Instead, set its size to to affect how many items to show. The select element is now set to use absolute positioning and will be positioned under the input element regardless of where it is defined. HoverImage - Has been renamed to HoverImageExtender. HtmlContentControl - The enableEdit property has been removed. To see of an HtmlContentForm has been embedded, use the formControl property. Replaced jQuery $ with a good old fashioned getElementById in the formControl property, since jQuery caches the object. If the form is removed, jQuery still "remembered" it. Moved the addSeedControlBehavior call to the add function instead of the constructor. FileBrowserForm - Has been renamed to FileBrowser. HtmlContentControl - Fixed the ~ (web root) bug that caused the control to only translate the first ~. InputValidator - Has been renamed to InputValidatorExtender. The extender has been completely rewritten, but will most probably use a jQuery plugin in future versions. NewsletterSubscribeForm - The control now supports using id, name or the object itself for the add function, both in PHP and JavaScript. Added a new submit event pattern that makes it possible to override the events. PagingControl - Some bugs have been fixed and the control now supports ... for page navigation. PopupElement - Has been renamed to PopupElementExtender. The control has been rewritten so that all the properties are instantly applied to the popup element instead of when it is opened the next time. The control has a new isOpen property. TipForm - The TipForm control has been rewritten some and now uses less language parameters than before. Now, all non-UI parameters are set in the add function. Users must also define their e-mail address, which will be used as from-mail address. TinyMceExtender - The extender has been rewritten so that the JavaScript add function is used to re-init TinyMce with a new CSS file, while the new refresh function can be used to re-init the extender without redefining the css file. UserLoginForm - The redirect functionality has been moved to the JavaScript add function, so that it also works when the form is being added with AJAX. UserLoginValidator - The JavaScript add function will now execute a start validation, then apply the interval only if a valid interval time is specified. UserLogoutForm - In order to make the control easier to place in all possible elements, the control does not use any div or form elements anymore. UserPasswordResetForm - The UserPasswordResetForm control has been rewritten to use less language parameters than before. Now, all non-UI parameters are set with the add function. UserRegistrationForm - The UserRegistrationForm control has been rewritten to use less language parameters than before. Now, all non-UI parameters are set with the add function. ValidationImage - Fixed the wigbi/controls folder change bug and a controlId parameter bug. To avoid the cache problem with the js add function, where the image got cached after being added once, the function is now fully asynchronous. WaterMarkInput - Has been renamed to WaterMarkInputExtender. * DEPRECATED: * PHP.System.MasterPage (new version) * PHP.System.Seed - loadByProperty (=> loadBy) * PHP.System.Wigbi - theme - setTheme * JavaScript.System.Seed - loadByProperty (=> loadBy) * JavaScript.System.Wigbi - addSeedControlBehavior (=> initSeedControl) Wigbi 0.99 [2009-08-01] ========================= Wigbi 0.99 features several MAJOR modifications and structure changes. It is the biggest release so far and will require major changes to your apps if you replace an old Wigbi version with this one. The release also features major see and control changes. New features have been added and a couple of bugs have been discovered and fixed during the work with the Wigbi Demos, where much functionality is tested. * The release bundle still includes the same folders as before - wigbi, wigbi_controls and wigbi_seeds. However, a new page has been added to make it even easier to get started with Wigbi - wigbi_test.php This file contains code that verifies if Wigbi is correctly configured. It uses the WigbiWizard control, and thus, the control is now added to the Wigbi controls folder by default. If you do not need it, feel free to remove it. * Previously, the Wigbi include page added white space, which caused doc type tags to not be detected by the browser. This has been fixed. Make sure to include Wigbi BEFORE the document type - at the very first line, before defining any document types. * The Wigbi start function no longer has any parameters. Instead, use the following properties BEFORE calling start, if you want them to apply: - Wigbi::setTheme - Wigbi::setGenerateHtml * Seeds are now to be added to the wigbi/seeds folder instead of the old wigbi/php/seeds folder. This removes an unnecessary folder level. * Controls are now to be added to the wigbi/controls folder instead of the old wigbi/php/controls folder. This removes an unnecessary folder level. * I have decided to not use __get/__set properties in any Wigbi PHP system classes in order to make all classes behave in the same way, no matter if they are static or not or in PHP or JavaScript. Static classes cannot use __get/__set and Seeds cannot either (since they are regarded as public variables and thus get included in the database). So from now on, Wigbi will only use the property()/setProperty() standard. This change affects the following classes: - PHP.System.Core.BaseControl - PHP.System.Core.SeedFunction - PHP.System.Core.SeedList - PHP.System.MasterPage - PHP.System.SearchFilter - PHP.System.MasterPage The old properties are NOT supported, since they would conflict with the method name of the property functions. * The Wigbi start function no longer has any parameters. Instead, use the following properties BEFORE calling start, if you want them to apply: - Wigbi::setTheme - Wigbi::setGenerateHtml * The PHP versions of LanguageHandler and Configuration have been extended with a parameters property, which returns a list of all loaded parameters. * The PHP IniReader class had a file parse bug that caused Windows not to interpret all line breaks correctly. This caused some empty configuration parameters to still be detected as set. This has now been fixed. The new IniReader class also only has a parseFile function - the string parse function has been removed. * It is now possible to send variables to a master page. Just use the new method setVariable() in your page, and access the variable as normal in the master page. For instance: $master->setVariable("foo", "bar") // In the page print $foo // In the master page * Wigbi 0.99 now uses PHP explode instead of the deprecated PHP split. * The PHP.SessionHandler class has been modified so that it stores data for each application separately. Previously, session data would "bleed" into all Wigbi applications that were running on a certain server, but this is now taken care of by this class. This update has been reflected in the LanguageHandler system class and the User seed class, which now uses SessionHandler instead of SESSION. * In earlier versions, the database handler tried to connect even if no database host was specified in the config file. This has been solved. * The content of the system class wigbi/php/tools has been moved to the system folder wigbi/php/system. * Some Wigbi controls have been renamed so that their name reflect their purpose better: LoginForm -> UserLoginForm LoginValidator -> UserLoginValidator LogoutForm -> UserLogoutForm PasswordResetForm -> UserPasswordResetForm PasswordUpdateForm -> UserPasswordUpdateForm * Wigbi Control changes: FileUploadForm - The numUploads and setNumUploads properties are now implemented The fileFilter parseInt bug has been fixed The concurring file upload bug has been fixed Wigbi 0.99 is released together with the Wigbi System Classes Demos and a brand new Wigbi web site. The documentation has also been looked over and a lot of unnecessary content has been removed. Wigbi 0.99 has the WigbiWizard control added to the control collection by default, and will redirect the user to the wigbi/wizard.php page if application.runtimeBuild is set to 1 and something is incorrectly set. If the WigbiWizard control is removed from the control collection, this behavior will be disabled. Wigbi 0.96 [2009-07-14] ========================= Wigbi 0.96 is the next stable beta release after 0.95 and features several additions and fixes from when Wigbi 0.95 was released, but only minor ones in this very specific release. Wigbi 0.96 has been released two times, since the first release (released in the beginning of June) did not include any seeds or controls due to a zipping mistake. I uploaded a new version as soon as I noticed it. The Wigbi Demos are the next big thing. I am still writing them, but have published the first demos at wigbi.com/demos. * Wigbi Control changes: HtmlContentControl - the control now parses ~/ to Wigbi::rootPath() Wigbi 0.95.4 [2009-05-20] =========================== Wigbi 0.95.4 features CRITICAL updates for the Wigbi webRoot() property. * The absolute path to the application must be specified in the main configuration file. If this is not done, Wigbi will not be able to execute AJAX operations in virtual pages. Wigbi 0.95.3 [2009-05-18] =========================== Wigbi 0.95.3 features IMPORTANT changes to Wigbi's way of identifying the root path in various ways. The release still has issues with AJAX in virtual pages, but this will be fixed asap. * The Wigbi system class has two new properties: serverRoot() - the application root path for the executing FILE webRoot() - the application root path for the executing PAGE The old properties rootPath() and clientRootPath() are now deprecated. * The Wigbi AJAX pipeline parameters have been adjusted to fit the root path changes. Also, the 0.95.2 AJAX fix made certain JSON results un- parsable. This has been fixed in this release. * The application.uploadFolder parameter in the main configuration file was considered deprecated and thus removed. Instead, the FileUploadForm control was adjusted so that an upload folder must be specified. If the folder does not exist, the control will create it. * Wigbi Control changes: FileUploadForm - an upload folder must be set and file tagging has been enabled Wigbi 0.95.2 [2009-05-04] =========================== Wigbi 0.95.2 features important changes and a new control. * The biggest change is the UTF-8 encoding bug fix, which solves the encoding issue that arised when using some characters with the Wigbi AJAX Pipeline. * I have also begun developing a nice little Wizard control that will replace the Wigbi wizard functionality. Just add the wizard to the page and let it tell you about how to make Wigbi work. * Due to the wizard control, the application.wizardMode parameter is now deprecated and can be removed from the main config file. * session_start has been added to the wigbi/wigbi.php file and can this be removed from all pages that use Wigbi. The file must be included topmost from now on. The Wigbi postback file has been adjusted to handle this change as well. * The JavaScript layer has been updated so that all automatically generated class files are created in the wigbi/js/system folder. * The system documentation has been slightly adjusted. * Some minor bug fixes has been done in the DbHandler class. * New Wigbi Controls: WigbiWizard Wigbi 0.95.1 [2009-04-10] =========================== Wigbi 0.95.1 features some minor bug fixes as well as some new standard seeds and controls and some seed changes. * The term "core init mode" is now replaced with "Runtime Build" (RTB), which is Wigbi's way of keeping the database and the JavaScript layer in sync with all added seeds and controls. Old configuration files MUST be adjusted to support this! * The Configuration class now uses "application.runtimeBuild" instead of the old setting "application.coreInitMode". * Hierarchical translations are added to the JS LanguageHandler class as well. * Wigbi Seed changes: PodcastFeed - added name property and toXml function PodcastEntry - added toXml function RssFeed - added name property and toXml function RssFeedEntry - added toXml function * Wigbi Control changes: All - language parameters were made hierarchical PagingControl - "page max display greater than page count" bug fixed Wigbi 0.95 [2009-04-08] ========================= Wigbi 0.95 features a revised language handling as well as some new standard seeds and controls: * Hierarchical translations have been added to the LanguageHandler class. This new feature is fully described in the documentation. * New Wigbi Seeds: Newsletter NewsletterSubscriber * New Wigbi Controls: NewsletterSubscribeForm ================================================================= This file was created 2009-04-08. Previous releases are left out. =================================================================