# Changes log for IvyFour web framework: -> 1.0.0-rc3: -- bugfixes + [S: News_GenerateContent.php] Fixed bug in ul-li structure generator. should be improved in the future anyway. + [S: ContactForm_AjaxSendMail.php] Fixed serious bug in email address validation -- major updates/new features + [E: config.php] Added SEO section + [S: generate/Title.php] Improved title generator. Now it supports different separators plus it has an option for reverted order (for harder SEO?) + [E: News.php/NewsWriter*.php] Added fullsize images support! Additionally every news title in the list leads to detailed view. + [V] Added centralized help system! + [E] Added small shell script for managing users! -> 1.0.0-rc2: -- bugfixes + [S: components/ContactForm] Fixed bug in fields validation. System won't let in a buggy typed email anymore. -- major updates/new features + [S] Fully functional (yet still buggy at this release) News plugin with image support! + [V] Fully functional NewsWriter component able to edit news and their images! -- technical stuff + [E: config.php] Added News section + [S] New directory, /images/news/, must be always set to o+xrw! + [S] Updated all draw/News* and components/News* files! + [V] New files including "blank.html", "framework/helpers.php" etc + [V] Updated ivy4/lib.Database giving SQL_LimitPage() function + [V] Updated framework/ajax_GetOpenerForPlugin to recognize News* plugins -> 1.0.0-beta2a: + [E: libs/lib.IvyFour] Improved getTime() function to support external timestamps as an argument + [S: components/News] Slight improvements (still under development) + [D] Modified plugin_news structure to use mktime references instead of hardcoded dates -> 1.0.0-alpha2: + [E] Fixed small PHP5 incompatibility bug in AdSystem + [E: libs/lib.IvyFour] Improved IP excluding to support star wildcards + [E: libs/ivy4/] Added lib.Lexical for string puriosity checking and analysis + [S] Added simple user handling plugins (registration, login, navbars) -> devel-08.I.2008 till 1.0.0-alpha: + Lot's of VDPanel and general library updates including "MySettings" VD plugin, removing 'define_icons', 'define_language' tables, adding default values for 'config' and 'data_desktop' plus modyfing 'data_desktop' structure. -> devel-07.I.2008: + [V] Modified Login.php to log slightly more information per user (logs/vdpanel.txt). it also uses lib.Language now, instead of slow and rusty DB_GetLanguageEvent functions which should fix pl encoding on foreign servers and speedup the loading. still the whole plugin's code needs a lot of fixes and structural improvements which have to be done later... -> devel-06.I.2008: + [E: libs/ivy4/] Fixed small bug in logFile(), logs won't produce double-minus timestamps on negative GMT timezones now -> devel-04.I.2008: + [E: libs/lib.IvyFour] Added getTime() function that returns desired timestamp for certain timezone definied in $_IVYCONFIG (finally...) + [E: libs/ivy4/] Improved lib.Filesystem's logging function logFile() + [V] Every user's login will now be logged to logs/vdpanel.txt -> devel-04.XII.2007: + [S] Fixed crashing bug! site will no longer crash on non-existent subsites (generate/LinkLeader) + [E] Improved code/run_IvyFour to use lib.Database and DB_GetRowById() to get $_IVYSITE superglobal -> devel-29.XI.2007: + [E: libs/ivy4/] Added lib.Database with powerfull DB_GetRowById() function + [V] Rewritten framework/ajaxstart.php to use smarter DB_GetRowById() + [V] Rewritten framework/ajax_GetOpenerForPlugin.php to use PERFECT privilege algorythm + [V] Added error_privileges event do language/Structure.ini + [V: Structure] Modified item adding algorythm. adding sites never was that easy before! there's still a need to add '99-position limiter' in the future -> devel-22.XI.2007: + [V] Added $_IVYUSER superglobal $_IVYCONFIG['site_www_addr'] recognizer to framework starter; also reorganized this file structure to be more handy + [V] VirtualDesktop is now importing default settings and icons for newly logged user + [V] Updated all drawers to use site_www_addr from $_IVYCONFIG instead of db relations; some generators still need this update -> devel-21.XI.2007: + [V] Modified VirtualDesktop component to use language variables directly from lib.Language (VDPanel.ini, VDIcons.ini) + [V] Fixed drag'n'drop for VirtualDesktop (javascript, AJAX) + [D] Removed 'define_icons' table and replaced it with neater framework/icons.ini for easier handling + [E] Upgraded prototype and scriptaculous to newest versions (required by VirtualDesktop!) + [E: libs/lib.IvyFour] Added handy-dandy print_d() function for array debugging in HTML -> devel-06.XI.2007: + [E] Improved go.php to support excluding desired IPs from increasing display stats. based on the same method as AdBanners generator -> devel-05.XI.2007: + [E/D] Improved AdSystem to support absolute admins and calculate banner efficiency + [E: libs/lib.IvyFour] Fixed LimitStringStrict() function to use proper suffixes (doh!) + [E: libs/lib.IvyFour] Improved DB_Connect() function to be much more modular + [E: code/config] Rebuilt structure of DB related variables. also removed useless $language vars + [E: libs/lib.IvyFour] Added allowIP() function to be used with further stats generators + [E] Improved HitCounter to generate less SQL querries and support excluding desired IPs from increasing the stats. this again works with a slight time buffer (cookie-based) to avoid more CPU consumption each time the user clicks + [E] Improved AdBanners generator to support excluding desired IPs from increasing display stats. session-based (to avoid CPU stressing). browser needs to be restarted if the host is allowed again -> devel-04.XI.2007: + [E/D/S] Improved AdBanners statistics to gather each banner's display stats -> devel-11.X.2007: + [E] Improved AdBanners generator to avoid random double-displays. Now it can only happen at the end/start of the randomizing queue -> devel-10.X.2007: + [E] Added browser detection JS library and flashfix JS runtime + [S] Fixed all flash content (including mp3player) to be auto-activated in secured MSIE6+/MSIE7 and Opera 9 + [E] Fixed go.php HTML4 validation = [S] Added website footer -> devel-10.X.2007: + [S] Fixed ContactForm plugin not to loose it's height on sending + [E] Added opensearch name variable ($_IVYCONFIG['opensearch_name']) to main config file + [E] Added opensearch plugin support for Firefox and IE7 -> devel-02.X.2007: + [E] Added LinkLeader generator (phew, was a hard one...). still can be improved to generate less SQL queries, but it's REALLY a hard one... -> devel-30.IX.2007: + [E] Added support for some built-in components in generate/Content + [S] Added SiteMap static component as generator (based on lib.Structure; full SEO support) + [S] Added styles/ivybricks.css for static components. this should be an improvement to generate/PluginHeaders in the future -> devel-29.IX.2007: + [E] Added simple search engine that finds desired phrase within the subsite names. works only with [database] subsites now! the search engine bases on URL-escaped search strings. it also has full support for SEO optimization -> devel-28.IX.2007: + [E] Modified run_IvyFour.php to catch global site address and store it in $_IVYCONFIG['site_www_addr'] global for further parser/plugin/generator usage + [S] Modified all plugins and generators to use $_IVYCONFIG['site_www_addr'] instead of DB queries + [E] Added Search Engine Optimization variable ($_IVYCONFIG['improve_seo']) to the config file + [S] Modified database content generator to improve SEO by adding full website address to ?site= links + [E] Updated lib.Structure and both DropDownMenu and LeftMenu generators to support SEO improvements (woohoo!) -> devel-27.IX.2007: + [D] Created custommer database tables + [S] Created AdSystem v1.0 with banner click stats for custommers + [E] Added simple search parsers working with urlescaped ?search= argument (ISO-8859-2) -> devel-26.IX.2007: + [D] Created adbanners database table + [E] Added adbanner generators and displayers -> devel-19.IX.2007: + [E] Added filesystem handling library (libs/ivy4/lib.Filesystem.php) + [E: libs/lib.IvyFour] All file related functions were moved to lib.Filesystem + [S: Gallery] Plugin will now use lib.Filesystem instead of it's own file/directory functions + [S: Gallery] Completely rewritten PHP engine! Now it supports neat errorcode displays, uses variables (instead of functions) for XHTML displays and will be tons faster (generates much less SQL queries per load) -> devel-12.IX.2007: + [S: generate/Content] Improved the main displayer file with archive viewer reference -> devel-11.IX.2007: + [D] Added 'data_sites_archive' table + [V: EditIvy] Added archive handling button + [V: EditIvy] Fixed small CSS bug in component (vertical-align to 'middle' instead of 'center') + [V: EditIvy] Added multi-level archive functionality for all database subsites (woohoo!) -> devel-06.VI.2007: + [S] Created basis for the News plugin + [D] Added 'plugin_news' table to the database + [E: libs/lib.IvyFour] Added small monthName() function translating numbers into names -> devel-11.IV.2007: + [V: Structure] Fixed small CSS bug in properites window (button text will now be BLACK, not system default) -> devel-10.IV.2007: + [S: ContactForm] Added session support! (once an email was sent, visitor's name and email address will be remembered for other ContactForm plugins) + [E: libs/lib.IvyFour] DB_GetUserName() will now use the KillPolishChars() function for user names + [S: ContactForm] All sites with this plugin will now display the name of a user we're writting to + [D] Modified 'define_users' table: 1. deleted 'id' as it was useless here, 2. now using KillPolishChars() escaped names, 3. fixed 'last login' catching + [E] Modified every single thing with username reference from 'define_sites' to use KillPolishChars() escaping + [V: Statistics] Added last/current login statistics -> devel-07.IV.2007: + [V: framework/ajaxstart] Modified to be more specific, secure and gather the global vars about both $_IVYSITE and $_IVYUSER (can reduce the checks in single _Ajax calls in the future) + [E] Modified the main config file's directory settings, also modified all plugin files using those directory variables + [V: GalleryAdmin] Modified _Ajax directory file to be more compatible with new ajaxstart lib. Also it now supports every directory-wise thing for the plugin -> devel-06.IV.2007: + [E: libs/lib.IvyFour] Added new KillSpecialChars() function + [V: GalleryAdmin] Added directory adding support -> devel-05.IV.2007: + [V] Fixed titlebar text position and icons size in Application.css.php + [V: GalleryAdmin] Modified way of displaying categories (similiar to Structure now) + [V: GalleryAdmin] Ability to select categories (like in Structure) + [V: GalleryAdmin] Now detect whether there are some categories or not (and displays warning if not) + [V: GalleryAdmin] Additional site information for admins (like in EditIvy) -> devel-04.IV.2007: + [V: Structure] Changed behavior for editing blank subsites (now it will open the properties window instead of unfriendly new type asking) + [V: Structure] Fixed type recognition for editing subsites + [V] Removed 'version' string from all the language .ini files (they were useles anyway... date's more specific) + [V: Structure] Added 'item_newname' and 'item_newsite' strings to language .ini files (supports these events now) + [V: Structure] Fixed small bug in Ajax_PropertiesSet. Changing only the plugin type will now update the 'last modified' info (doh!) + [V: Structure] Fixed bug in item deleting. (deleting will not cause the LAST child to disappear anymore) + [V] Plugin type recognition in VDP's framework now! Filebrowsers will now automatically decide which editor to use for certain plugin (hardcoded in CASE form as for now; it might become dynamic someday...) + [V: Structure] Fixed bug in previewing on double-click. Subsite of link type will not be displayed anymore (they caused 404s) + [D] Deleted 'base_galleries' from both 'define_icons' and 'data_desktop' tables. GalleryAdmin will now be a background plugin (like EditIvy) + [V: GalleryAdmin] Modified whole plugin's idea to work with ?site= references instead of being stand-alone (very-very-very beta stage) -> devel-02.IV.2007: + [V: Structure] Added verbose checking for saving the properties (javascript conditionals and language events) + [D] Fixed idiotic bug in 'data_sites' table.. site_id is now primary key (doh!) + [V: Structure] Made properties to work in both ways! Reading and saving! (should be bug free and secure, but i prefer to say it's in beta mode as for now) -> devel-01.IV.2007: + [E: libs/lib.IvyFour] Fixed str2price() to support unlimited length inputs and added some functionality -> devel-30.III.2007: + [S] MP3Player plugin will now use current site's name in