Tour

 
 
Overview
Featured Clients
Server Requirements
Free Marketing Content
Video Tour
Reviews
Buy Now

Changelog

This page lists all updates released for CMS Builder. You can get the latest release at our upgrade page.

CMS Builder (Version History)
Version 2.14  Released: December 27, 2011 (Maintenance Release)

NEW FEATURES
- Datepicker: You can enable a datepicker icon and popup calendar under: Admin > General Settings > Advanced Settings
MINOR CHANGES
- WYSIWYG: "Paste as Text" button now defaults to on (and can be clicked to turn off)
- WYSIWYG: Added buttons for superscript, subscript, charmap, and "visual aid" (to hide/show hidden table borders)
- WYSIWYG: Old tinymce cache files are automatically removed on upgrade to prevent errors
- Usability: Command line scripts now always return text (not HTML) for MySQL errors
- Programmers: getSelectOptionsFromTable() now returns values in schema sort order
- Programmers: Moved all mysql_* utility functions into /lib/mysql_functions.lib
- Languages: Added more text to language translation files.
BUG FIXES
- Compatibility: Added workaround to jquery.ajax for hosts that incorrectly send "0" when no output should be returned
- Fixed error with some PHP versions "Notice: Only variable references should be returned by reference"
- Fixed Advanced menu commands on edit page, commands now direct to the correct page.
- Code: getRecordsCustom() now returns the last pageNum with content if pageNum is higher than totalPages.
- My Account: Fixed issue where users couldn't drag-sort images if they didn't have access to the accounts table
- Misc Code and other minor improvements

Version 2.13  Released: October 27, 2011 (Maintenance Release)

NEW FEATURES
- WYSIWYG: Updated TinyMCE to v3.4.6 (Released 2011-09-29)
- WYSIWYG: Latest TinyMCE includes support for iOS 5 devices (iPad, iPhone, etc)
MINOR CHANGES
- Editors: Date field year menu range now expands if needed for the record data.
- Plugins: Added new filter: edit_advancedCommands
- Code: Plugins can now override accounts tablename by calling accountsTable()
- Code: Plugins can now override session cookie name by setting $GLOBALS['SESSION_NAME_SUFFIX']
- Code: isValidEmail() now supports emails with display names and validation of multiple emails
- Programmers: Added new mysql helper function mysql_fetch()
- Programmers: Loaded records now contain a _tableName key
- Programmers: Added row numbering to Plugin Hook List
BUG FIXES
- sendMessage: $php_errormsg now cleared before mail() to prevent "undefined index: disabled" errors
- users can no longer accidentally delete their own account with the "Erase Selected" feature
- Fixed Plugin Hook List bug where actions and filters would be confused.
- Updated getListRows() to support relative upload paths
- Misc Code and other minor improvements

Version 2.12  Released: August 26, 2011 (External Menus)

NEW FEATURES
- Text Link Sections: Added new option to open links in "inline iframe" to integrate content from external sources
- Text Link Sections: Added new option to display message when opening or displaying links
MINOR CHANGES & BUG FIXES
- Admin General: Added "Program Url" field so plugins can easily find URL of admin script
- Code Generator: Single Record Sections now automatically ignore search queries (caused errors when using includes)
- Plugins: Added new filters: listHeader_checkAll and listPage_footer
- Admin General: Supressed error message that sometimes appeared on windows servers "not recognized as an internal or external command"
- Compatibility: Fixed document root check to deal with restrictive open_basedirs
- Accounts: Changing your password no longer logs you out when password encryption is on
- Uploads: Updated upload display code that caused error when using parent path references: failed to get realpath of: ../
- Plugins: "Developer's Plugin Hook List" list no longer excludes hooks called in double-quoted strings
- Editors: "Max Length" option no longer counts <br/> tag length towards character limit for textboxes
- Editors: Fixed bug in related records that showed incorrect output when viewing user is not an administrator.
- Programmers: Added new viewer function getRecordsCustom() for getting records with custom SQL queries
- Programmers: Added new function: getAbsolutePath(), fixSlashes()
- Programmers: Updated getPluginPathAndUrl() to automatically return the last plugin called from the call stack
- Programmers: Updated pluginAction_addHandler() to support multiple access levels and allow calls from viewer pages
- Programmers: Updated prettyDate() to respects timezones offsets set in Admin menu
- Programmers: Updated sedepndMessage() to support 'disabled' option selectively not sending messages
- Programmers: Updated realUrl() to url-encode spaces
- Programmers: Updated pluginAction_addHandler() to be case-insensitive when comparing function names (so we can use __FUNCTION__)
- Uploads: Uploads will stay with a table after a table is renamed
- Misc Code and other minor improvements

Version 2.11  Released: July 7, 2011 (Maintenance Release)

BUG FIXES & MINOR CHANGES
- Updated upload display code that caused error: failed to get realpath of: ./
- Updated .htaccess to remove debug code that caused error 500 message on some servers
- Added index.php redirect to /cmsAdmin/ for web servers that don't recognize index.html
- When selecting backup files, more recent files will sort to the top of the list
- Misc Code and other minor improvements

Version 2.10  Released: June 30, 2011 (Faster Server Moves)

NEW FEATURES
- Server Moves: You can now re-install the software by erasing /data/isInstalled.php
- Server Moves: You can now restore from a backup file on the install screen
MINOR CHANGES
- Viewers: Added _isSiblingSelected, _isParentSelected, and _isChildSelected to getCategories() viewer function output
- Plugins: Added new filter: login_content for login page content
- Plugins: Added new filter: backupDatabase_skippedTables (to prevent certain tables from being backed up)
- Plugins: Added new filter: edit_fieldSchema
- Plugins: Added plugin helper functions: plugin_header, plugin_footer, plugin_createSchemas
- Plugins: Added plugin helper functions: pluginAction_getLink, pluginAction_addHandler, pluginAction_addHandlerAndLink
- Programmers: Added function 'prettyDate' to output human readable style relative dates such as: 29 minutes ago
- Programmers: mysql_count() now accepts WHERE queries as arrays
- Programmers: Added helper PHP functions: startsWith, endsWith
- Programmers: Added helper Javascript function: sprintf
BUG FIXES
- Passwords: Fixed issue where users could login with their encrypted password string (actual text password now required)
- Field Editor: Fixed issue where recreating thumbnails would keep repeating errors if height or width was blank
- Editor Fields: Fixed issue where the default value of a date field would not be set if the user did not have edit access to it.
- Upload Urls: Upload fields with custom paths/urls no longer add the current hostname to generated urls in viewers
- Misc Code and other minor improvements

Version 2.09  Released: May 31, 2011 (Relative Upload Paths)

NEW FEATURES
- Uploads: Upload paths are now stored as relative to make server moves easier
- Uploads: Existing uploads path will automatically be made relative where possible.
- Section Editor: The "Add New Editor..." button now lets you copy an existing section (without the data)
MINOR CHANGES
- Code Changes: Removed unused function from /lib/common.php - array_change_value_case()
- Plugin Developers: All plugin hooks can now be listed with "show plugin hooks" link on plugins page
- Programmers: Added plugin hooks for: ui_header, ui_footer, list_orderBy
- Programmers: Added custom functions: isAbsoluteUrl, realUrl, array_value, array_where, dieWith404
- Developers: Added help file on setting up development settings files: /data/how_to_use_settings_files.txt
- WYSIWYG: Added support for /lib/wysiwyg_custom.css file that won't get overwritten during upgrades
- WYSIWYG: Once clicked, "Paste as Text" now stays active until clicked again (instead of deselecting after paste)
BUG FIXES
- Fixed bug from 2.07 where renaming a section displayed an error.
- Fixed demo mode bug where demo couldn't be created if tablenames exceeded 64 characters
- whereRecordNumberInUrl() and getLastNumberInUrl() now ignore page numbers such as viewer.php?title-123&page=2
- Admin Option "Store encrypted passwords in database (can not be disabled)" can no longer be disabled.
- Misc Code and other minor improvements

Version 2.08  Released: April 20, 2011 (Security Enhancements)

NEW FEATURES
- Admin General: Added "Encrypt Password" option to encrypt database user passwords
- Admin General: Added "Require HTTPS" option to only allow logins through secure connections
- User Accounts: Added new field "Last Login Date" that shows last date user accessed system
- User Accounts: Password reminders have been replaced with a password reset form
- Editors: Fields can now be set to "Editor only" or "Admin only"

MINOR CHANGES
- Uploads: Added a "Modify All Uploads" link to the Modify Upload popup
- Viewer Functions: getCategories() now supports 'ignoreHidden' option
- WYSIWYG: Updated TinyMCE to v3.4.1 (Released 2011-03-24)
- WYSIWYG: Updated TinyMCE Compressor to v2.04 (Released 2011-03-23)
- License: updated to allow sourcecode modifications, register install path, and allow staging installs (sections 3.4 (removed), 4.4, 7)
- Programmers: Added database functions: mysql_datetime, mysql_getValuesAsCSV, mysql_get, mysql_select, mysql_delete, mysql_update, mysql_insert
- Programmers: Added custom functions: array_groupBy, isHTTPS, coalesce
- Programmers: Added new plugin hooks: plugin_activate, plugin_deactivate, list_postselect, menulinks_array
- Section Editor: New sections' upload and wysiwyg fields' allowedExtensions are now consistent and include PDF
- Languages: The Datepicker is now automatically translated

BUG FIXES
- Related Records: More link now automatically ignores previous searches when linked to related sections
- Admin Menu: Fixed bug where view only menus wouldn't show up if selected menu had "Disable View" selected
- Editor List: Accounts search form, fixed MySQL Error: Unknown column 'accessList' in 'where clause'
- Preview: Fixed preview error: Notice: Undefined index: hasEditorAccess
- Misc Code and other minor improvements

Version 2.07  Released: February 3, 2011 (Preview Button)

NEW FEATURES
- Preview button on modify page can show you what your detail page will look like before saving
- Added custom "Preview Page Url" in case a detail page has logic on it which prevents previewing from working (Admin > Section Editors > Viewer Urls)
- Access Levels: Added 'Author & Viewer' which can view all records but only modify their own
- Editor List: You can now reset previous search options with a direct link including ?_resetSavedSearch=1
- Editor List: You can now ignore previous search options with a direct link including ?_ignoreSavedSearch=1
- Editors: Added new date picker popup, enable in data/settings.dat.php under [advanced] with: useDatepicker = 1
- Viewers: Added automatic search suffix "_empty" for matching empty fields. Example: email_empty=1
- Plugins: Added new plugin header option to always load a plugin: "Required System Plugin: Yes"

MINOR CHANGES
- Admin: Backup Database now lets you backup and restore individual tables
- Admin: PHP session settings can now be set under Advanced Settings: session.save_path, session.cookie_domain
- Editor List: Upload columns now use same code as edit page upload lists (with smaller previews and download links for non-images)
- Editor Uploads: Uploaded files with invalid content are now rejected for: gif, jpg, jpeg, png, swf
- Install: Missing upload directories are now automatically created if possible
- Languages: Added more text to language translation files.
- Plugins: Added new filter: list_buttonsRight (to add or modify buttons on list page)
- Plugins: Added new filter: record_access_where (for modifying how record access rules work)
- Plugins: Added new filter: menulinks_rowHtml
- Plugins: Plugins are now detected up to two dirs below plugins dir: /plugins/like/this/plugin.php
- Plugins: Plugins that require more recent versions of the CMS are automatically de-activated
- Section Editors: Added "Editor >>" link to section edit menu
- Section Editors: Menu Text Links can now be set to open in the same tab
- WYSIWYG: Upgraded tinyMCE to version 3.3.9.2 (Released 2010-09-29)
- Code: added PHP_INT_MAX to 3rdParty/PHP_Compat/CONSTANTS.php
- Code: sendMessage() encodes message text as quoted-printable so they're easier to read when debugging (for programmers)
- Code: Added mysql_get_lock() and mysql_release_lock() functions (for programmers)

BUG FIXES
- Code Generator: Fixed "Email this page" link code in Code Generator to properly URL encode complex queries
- Compatability: Added workaround for servers with suhosin.memory_limit causing errors
- Demo Mode: Fixed bug where flash uploader didn't display 'disabled' error in demo mode
- Editors: Fixed bug where a new search would not always display the first page of results
- Categories: Setting selectedCategoryNum to '' now defaults back to getLastNumberInUrl()
- Editor: Field descriptions are now displayed below textboxes.
- Section Editors: Recreating thumbnails no longer stops on errors
- Viewers: getPrevAndNextRecords() now ignores search terms in url and supports 'debugSql'
- Misc Code and other minor improvements

Version 2.06  Released: September 9, 2010 (Maintenance Release)

MINOR CHANGES
- Languages: Added more text to language translation files.
- Code: thisPageUrl() now lets you pass an array to insert/override query string values
- Wysiwyg: Added blockquote button (between link and horizontal rule buttons)
- Viewers: getPrevAndNextRecords() now supports 'where' option
- Categories: Added advanced getCategories() option: ulAttributesCallback
- Categories: Added advanced getCategories() option: liAttributesCallback
- Plugin System: Added new filter "viewerOnly_allowed_actions" for adding to the "Advanced Commands" menu
- Plugin System: Added utility functions: getPluginPathAndUrl() and createSchemaFromFile()

BUG FIXES
- View Menus: Textboxes with autoformatting disabled now display line breaks correctly
- View Menus: Fixed error "Couldn't find field class file"
- View Menus: Users with only "viewer" menu access no longer see menu links that don't have "view" enabled
- View Menus: Advanced Command "Erase Selected" is no longer displayed for users with only "viewer" access
- Accounts Menu: Users with author access can no longer see the accounts menu list page
- Viewers: Fixed MySQL error caused when using field_min or field_max searches with non-numeric values
- Editors: Fixed error "Strict Standards: var: Deprecated" disabled by PHP 5.0.0 to 5.1.3
- Editors: Fixed bug where blank dates on list page sometimes showed up as 1969-12-31
- Admin > General: Fixed JSON errors when changing timezones on servers with PHP versions older than 5.2.0
- Misc Code and other minor improvements

Version 2.05  Released: July 6, 2010 (View Menus)

NEW FEATURES
- Added new "View" menu option to record lists (enabled under Admin > Section Editors)
- Added new "View" menu option to Related Records lists (enabled in Field Editor)
- Field Editor: List fields may now have a Default Value
- Category Sections: Added new setting: Section Editor > Advanced > Max level of depth for categories

MINOR CHANGES
- Plugin System: Added new filter edit_buttonsRight to add or modify buttons on edit page
- Plugin System: Added new filter view_buttonsRight to add or modify buttons on view page
- Plugin System: Added new filters: home_title, home_content for post-login homepage
- Plugin System: Added new filters: listHeader_thAttributes, viewer_output_rows
- Plugins: Added Norwegian characters to "Remove Viewer Link Accents" plugin
- Viewers: Added _hasSiblings to getCategories() viewer function output
- Code: Upgraded tinyMCE to version 3.3.7 (Released 2010-06-10)
- Code: Added internal function saveUploadFromFilepath() for importing local files
- Code: Improved DOCUMENT_ROOT auto-detection code
- Code: Wysiwyg now automatically generates new cache file when tiny_mce.js changes

BUG FIXES
- Compatibility: Added workaround for hosts with safe-mode set incorrectly (PHP Bug #23663)
- Wysiwyg Spellchecker: Fixed error "Please specify: spellchecker_rpc_url"
- Editors: Pressing Save after a login session has timed out now redirects to the login page
- Misc Code and other minor improvements

Version 2.04  Released: April 27, 2010 (Viewer Pseudo-fields)

NEW FEATURES
- Editor Search: You can now add custom search fields based on record owner with: Owner|createdBy.fullname
- Viewers: Added new option 'loadPseudoFields' for adding fields below (defaults to on).
- Viewers: Added pseudo-field *:unixtime for date fields with unix time of date (for passing to date()). Example: $record['startdate:unixtime']
- Viewers: Added pseudo-field *:text for checkboxes that displays checked or unchecked text. Example: $record['hidden:text']
- Viewers: Added pseudo-field *:label for single-value list fields that displays the label of the selected option. Example: $record['category:label']
- Viewers: Added pseudo-field *:values for multi-value list fields with an array of values for the selected options. Example: $record['categories:values']
- Viewers: Added pseudo-field *:labels for multi-value list fields with an array of labels for the selected options. Example: $record['categories:labels']
- Wysiwyg: You can now insert any of the thumbnail sizes, not just the first one.

MINOR CHANGES
- Code Generator: Viewers now automatically locate CMS libraries, even if you've moved servers or filepaths have changed
- Code Generator: New "Expert mode" under: Admin > General for hiding instructions and extra html in output
- Viewers: Added _isFirstChild and _isLastChild to getCategories() viewer function output (named after similar CSS2 selectors)
- Viewers: _match searches on multi-value list fields now match single values as well (if field was converted from single to multi-value)
- Admin > General: Timezones are now sorted by GMT offset and no longer include legacy timezone names from:
- Admin > Regional: Language settings can be hidden with hideLanguageSettings in settings file (for regional distributors)
- Plugin System: All record save plugin hooks are now passed $oldRecord when updating an existing record
- Plugin System: 'section_init' is now passed the current $action
- Plugin System: 'record_postsave' is now passed record_num
- Plugin System: Added new hook for: upload_saved, upload_adopted
- Plugin System: Added new filter uploadModify_infoFieldHTML to modify how the upload info fields look
- Code: Added helper functions for external upload forms: removeUpload(), getUploadInfoArrays()
- Code: Added /3rdParty/ to the PHP include path so Zend library will work (for possible future use)
- Code: Upgraded tinyMCE to version 3.3.2 (Released 2010-03-25) and removed safari plugin (now built-in)
- Code: Upgraded to jQuery 1.4.1
- Code: Included JSON Javascript library

BUG FIXES
- Editor List: List field labels are now displayed for list values of zero
- Password Reminder Emails: Added extra line breaks where PHP was removing them and causing text to run together
- Categories: Made it impossible to select invalid parent categories (by setting option to be disabled)
- Categories: When creating new category menus 'name' is now a system field since it's required for categories
- Categories: Made it possible to explicitly set selectedCategoryNum to 0 (avoiding issues with getLastNumberInUrl())
- Validation: Fixed some XHTML validation issues
- sendMessage() no longer UTF-8 encodes 'Content-Type' headers (valid, but triggered some anti-spam systems)
- Compatibility: Added work-around for htscanner php extension bug #10623 that caused extra backslashes to be added to content
- Compatibility: We now blank out session.cookie_domain on load to work-around servers that have it set incorrectly in php.ini
- Editors: "Create" button now uses url to link to add form so you can easily reload while developing without "repost form data?" message
- Editors: Created and updated dates are now shown on add and edit pages even if createdByUserNum or updatedByUserNum fields aren't defined
- Editors: Field values are now html encoded when displayed on list page (So <b> appears as <b> and isn't interpreted as HTML)
- Code: emailValidate() function now allows usernames with + chars such as example+example@gmail.com
- Code: inCLI() improved PHP command-line detection code
- Misc Code and other minor improvements

Version 2.03  Released: March 1, 2010 (Related Records)

NEW FEATURES
- New field "Related Records" lists records from related tables on edit page
- Custom JS: You can now define your own upgrade-safe Javascript by creating a file named: cmsAdmin/custom.js

MINOR CHANGES
- Plugin System: Added filters for: upload_saveAsFilename - Plugin System: Added filters for: listRow_trStyle, listRow_tdAttributes, listRow_displayValue, listRow_actionLinks
- Plugin System: Plugins are now sorted alphabetically under: Admin > Plugins
- Field Editor: Added "Field Prefix" option that is displayed before or above most field types.
- Field Editor: Added "Description" option this is displayed after or below most field types.
- Docs: Added readme documents to program root folder: custom.css.readme and custom.js.readme
- Viewers: whereRecordNumberInUrl() now ignore campaign tracking utm_* values when determining record number
- Categories: Added _hasParent and _hasChild to getCategories() viewer function output
- Languages: Added french language file for wysiwyg
- Install: Added php.ini to correct common server misconfigurations

BUG FIXES
- Fixed code that auto-detects DOCUMENT_ROOT on install or upgrade for Microsoft-IIS Servers
- Fixed error on Microsoft-IIS Servers: "Undefined index: SCRIPT_FILENAME"
- Fixed error on Windows Servers: "PHP Warning: shell_exec(): Unable to execute"
- Fixed error on some PHP installs: "PHP Warning: shell_exec() has been disabled"
- Fixed error on Windows Servers where "Please set 'Website Root Directory'" always showed if root dir wasn't readable
- Fixed error when using viewers from command-line or cronjobs "Notice: Undefined index: SCRIPT_NAME"
- Fixed error on PHP 5.0.0 to 5.1.2 "Warning: http_build_query() expects at most 2 parameters, 3 given"
- Fixed error on PHP 5.3.0 where trailing $ in schema ini files caused errors: http://bugs.php.net/bug.php?id=48660
- Compatibility: Added work-around in .htaccess for htscanner php extension bugs: #16891, #16130
- Fixed wysiwyg error where spellcheck suggestions would get double utf8 encoded and not display correctly
- Errors: Added error message for when mbstring extension isn't installed
- Misc Code and other minor improvements

Version 2.02  Released: January 26, 2010 (Multi-File Uploads & Viewer Enhancements)

NEW FEATURES
- Uploads: You can now upload multiple files at once with uploadify flash upload component
- Viewers: Sort ordering can now be defined in viewer urls with orderBy=fieldname or fieldname DESC
- Viewers: min/max date searches now support date without time formatted as: YYYY-MM-DD
- Custom CSS: You can now define your own upgrade-safe CSS by creating a file named: cmsAdmin/custom.css

MINOR CHANGES
- Settings: Custom settings files can be created for dev domains, such as: /data/settings.localhost.php
- Viewers: Added the following options to getRecords() for advanced MySQL users: 'groupBy' and 'having'
- Viewers: Added utility function mysql_escapef(), example: mysql_escapef("num = ? AND name = ?", $num, $name);
- Viewers: getPrevAndNextRecords() rewritten and optimized for large record sets (10k+)
- Viewers: getPrevAndNextRecords() now supports 'orderBy' option
- Editors: Record lists can now display up to 1000 records per page
- Plugin System: Added filters for: list_where (for record list page in cms)
- Languages: Updated Hebrew language translation file
- Admin > General: "Server Resource Limits" is now displayed on the bottom of the page (Unavailable on Windows servers)
- Admin > General: Added option "Disable Flash Uploader" under: Admin > General Settings > Advanced Settings
- Interface: Add meta tag so Chrome Frame will be used if installed in browser (Fixes IE rendering issues)

BUG FIXES
- Viewers: Fixed an issue with searching for a keyword containing multi-byte characters
- Viewers: Prev/Next page links now support multi-value fields, like this: ?colors[]=red&colors[]=blue
- Demo Mode: Fixed "invalid characters" in tablename error in Admin > Section Editors > Modify
- Demo Mode: Added build info (version, execute time, etc) to html source of "Creating demo (please wait a moment)" page
- Demo Mode: Added "Creating demo" text to language files so it can be translated
- Compatibility: Fixed disabled sockets error "getPage: Error opening socket: Operation timed out (60)"
- Compatibility: Fixed some problems with running the program on https:// urls
- WYSIWYG: Wysiwyg compressor no longer compresses output if server compression is already enabled - caused wysiwyg to not work
- Misc Code and other minor improvements

Version 2.01  Released: December 14, 2009 (Date Field Enhancements)

NEW FEATURES
- Date Fields: Default date field values can now be: blank, current date, specified date, or values such as "+2 weeks" or "next Thursday"
- Date Fields: Short month names used in date pulldowns can now be updated in the language files in /lib/languages/
- Viewer Functions: Added advanced option 'addSelectExpr' for generating pseudo-fields or calculated values

MINOR CHANGES
- Install: Admin Email is automatically saved as the program "Admin Email" under general settings so you don't have to enter it twice
- Compatibility: Updated code to prevent conflicts with WordPress and to allow side by side installations (for advanced users)
- Admin Field: Added new required field for "Website Root Directory"
- Standards: All pages now validate as standard xhtml.

BUG FIXES
- Compatibility: Added workaround for issue where a trailing separator in php.ini's include_path caused header/footer includes not to load
- Error Checking: Tablenames starting with a number can no longer be created (caused errors in the code generator)
- WYSIWYG: Fixed javascript errors caused when using advimage tinymce plugin
- Misc Code and other minor improvements

Version 2.00  Released: December 4, 2009 (New User Interface)

NEW FEATURES
- User Interface: we've completely redesigned and updated the user interface

MINOR CHANGES
- User Interface: interface color can now be changed under: Admin > General > Color / Theme (Blue, Green or Red)
- Editors: Users with "Editor" access can now change owners of a record (also called "Created By" user)
- Editors: Text field descriptions can now contain PHP code
- Editor: Added Advanced Command: "Admin: Code Generator" to jump to Code Generator
- Password Reminder: Added support for non-English characters in the subject line
- Plugin System: Plugins can now be organized in subdirectories under the /plugins/ directory
- Field Editor: Header separators now show the header message instead of "--- separator ---" in the field list
- Errors: The database down error page now sends a 503 "Service Temporarily Unavailable" so search engines will retry later
- Menu bar: Menu links under active menu group can be styled with: #sidebar #main-nav li.current ul li { background-color: #333 !important; }

BUG FIXES
- Field Editor: Made 'page' a reserved fieldname (rename existing 'page' fields if needed)
- Field Editor: Fixed Input Validation: Allow/Disallow characters
- Admin: Disk Space now displays "Unavailable" instead of "Value too large for defined data type" error on unsupported servers
- Database Settings: Increased mysql connect timeout from 3 to 6 seconds to support sometimes slow database servers

Version 1.36  Released: September 25, 2009 (Bug Fix Release)

BUG FIXES
- Windows PHP: Fixed rename error that occured when saving settings on older PHP versions (less than 5.2.9)
- Editors: Fixed another error "Warning: preg_match(): Unknown modifier" when allowed/disallowed charset contains /

- Misc Code and other minor improvements

Version 1.35  Released: September 23, 2009 (Plugin Enhancements)

MINOR CHANGES
- Plugin System: Added hooks for: init_complete, viewer_postinit, section_unknownAction

BUG FIXES
- Editors: Multi-value list fields now show as labels on list page
- Editors: Fixed error "Warning: preg_match(): Unknown modifier" when allowed/disallowed charset contains /
- Editor Add Record: Fixed bug where "default content" wasn't showing for textboxes or wysiwyg fields

- Misc Code and other minor improvements

Version 1.34  Released: September 16, 2009 (Backup & Restore)

NEW FEATURES
- Backup & Restore are now available under: Admin > General Settings > Database Settings
- WYSIWYG: Added Spellchecker button to wysiwyg editor (experimental)
- Debugging: Added showme() function for displaying readable variable contents.
  Example: <?php showme( $records ); ?>

MINOR CHANGES
- WYSIWYG: Upgraded tinyMCE to version 3.2.6 (Released 2009-08-19)
- Admin Menu: Added option "Always Show Expanded Menu" under: Admin > General Settings > Advanced Settings
- Admin Menu: The maximum number of connections MySQL allows is now displayed under: General Settings > Server Info
- Special Fields: Creating 'showExpandedMenu' field in user accounts allows you to specify menu setting on a per user basis
- Viewers: Added pseudo-field *:text for checkboxes that displays checked or unchecked text. Example: $record['hidden:text']
- Admin Menu: Mysql settings can no longer be updated through Admin menu (edit them in cmsAdmin/data/settings.dat.php)
- Filepaths: Moved all 3rd party components to /3rdParty/ folder (tinymce, jquery, jquery plugins)
- Filepaths: Moved /lib/plugins/ to /plugins/
- Filepaths: Other directory and path changes
- Section Editors: Added new option "Required Plugins" to Advanced tab of "Section Editors"
- Default Data Support: Files named data/schema/sectionName.defaultSqlData.php are imported when new sections are created.
- Plugin System: Added actions for: admin_prelogin, plugin_actions
- Settings: Host specific database settings can be set in settings.dat.php as [mysql:hostname] (for staging/development environments)

BUG FIXES
- Section Editors: Fixed error "Undefined index: _indent" when saving Menu Groups
- Date Fields: Single digit hour-24, minute, and second options are now zero padded.
- Date Fields: 12pm dates in the editor are now re-displayed as 12pm instead of 12am.
- Misc Code and other minor improvements

Version 1.33  Released: August 24, 2009 (Menu Enhancements)

NEW FEATURES
- Menu Groups allow grouping, hiding and showing of related menu items
- Menu Text Links allow you to add external links to the menu bar
- Menus can now be indented if desired: Admin > Section Editors > Section Name > Indent

MINOR CHANGES
- Admin: Removed admin 'home' page as it's no longer needed with new menu layout
- Admin: Regional Settings have now been moved to Admin > General
- Editors: Created and Updated dates now display in format from: Admin > General > Date Field Format
- Editors: Added "Disable Modify" option under section editors to prevent users from modifying records
- Accounts: Added "change" link to edit page so "Created By" user can now be changed by admins
- Plugin System: Added actions for: admin_preadd, admin_preedit, record_save_posterrorchecking, section_init, admin_postlogin
- Plugin System: Added filters for: record_saved_message

BUG FIXES
- Fixed error on *.previewdns.com hosts: "ob_start(): Cannot use output buffering ..."
- Forgot your Password: Fixed IE8 javascript error on form 'document.getElementById(...)' is null or...
- Misc Code and other minor improvements

Version 1.32  Released: August 4, 2009 (My Account Menu)

NEW FEATURES
- Users can now modify their own account details (username, password, email, etc) with new "My Account" menu
- Field Editor: New advanced option for Accounts section 'My Account - Show this field in "My Account" section'

MINOR CHANGES
- Admin > General: "Free Disk Space" is now displayed on the bottom of the page
- Plugin System: Added hooks for: admin_preerase, admin_posterase
- Viewers: New option 'includeDisabledAccounts' shows records otherwise hidden with: Section Editors > Advanced > Disabled Accounts
- Editors: Administrators can now access all menus by url, even if they haven't been given access under "User Accounts"

BUG FIXES
- Code Generator: Fixed some 'undefined index' errors that appeared when no options were selected
- Compatibility: Fixed error with new PHP 5.3 release "Function split() is deprecated" on field drag sort.
- Editor Search: Searching now resets page number to 1 (instead of staying on last page number)
- Viewers: Added extra spaces so multiple leftJoin's didn't cause mySQL error.
- Fixed issue where user would get incorrectly forwarded to https urls on some servers
- Misc Code and other minor improvements

Version 1.31  Released: July 6, 2009 (Bug Fix Release)

MINOR CHANGES
- Viewers: New option 'requireSearchSuffix' allows you to ignore fieldname=value searches without _match suffix

BUG FIXES
- Editors: Fixed "Erase" and "Erase Selected" actions so they now work again.
- Editors: Fixed php 'undefined variable' errors
Version 1.30  Released: July 3, 2009 (Advanced Editor Search Filters)

NEW FEATURES
- Added advanced editor search and filter options (See: Admin > Section Editors > Searching)

MINOR CHANGES
- PHP sessions are now used instead of cookies to store admin search preferences and login credentials
- Viewers: New option 'ignoreHidden' allows you to display hidden records
- Viewers: New option 'ignorePublishDate' allows you to display records before their publish date
- Viewers: New option 'ignoreRemoveDate' allows you to display records after their remove date
- Viewers: Function getNumberFromEndOfUrl() now lets you specify a default num if no number found in url
- Category Viewer: Added new option 'defaultCategory' (enter 'first', category number, or blank '' for none)
- Category Viewer: Added new option 'rootCategoryNum' to show only part of the category tree (defaults to showing all)
- Category Viewer: Added new option 'ulAttributes' for adding attributes to generated ul tags
- Category Viewer: Added new category format 'breadcrumb' for displaying select menu path in breadcrumb format
- Category Viewer: Added new pseudofield _isBreadcrumb to make it easier to display breadcrumb menu for selected category

BUG FIXES
- Password reminder emails are not sent with UTF8 charset so international characters display properly
- Viewers: getListValues() and getListLabels() didn't work if the list field wasn't a multi-value field
- Viewers: getPrevAndNextRecords() fixed error message: "Undefined variable: errors"
- Viewers: getCategories() fixed error message: "Undefined offset: 0" when no category selected
- Editor List: After drag sorting any previously selected sorting columns are reset so new order shows as expected.
- User Accounts: Hidden menu sections are now visible in section access list
Version 1.29  Released: June 16, 2009 (Demo Mode Support)

NEW FEATURES
- Demo Mode: program can now be run in demo mode where data is copied and resets every hour

MINOR CHANGES
- WYSIWYG: Upgraded tinyMCE to version 3.2.4.1 (Released 2009-05-25)
- WYSIWYG: Word content is now automatically detected and cleaned up without need for the paste dialog popup window.
- Editors: List Fields now show previously entered database values even when they are no longer in list options
- Editors: Added "Date Field Format" to Admin > Regional Settings to allow displaying date fields as "Day Month Year"
- Viewers: Added 'pageNum' option to viewers to allow you to specify exact page number to display
- Multi Table Search: Added 10 fields that can be passed from each table searched by searchMultipleTables() as field1, field2, etc

BUG FIXES
- WYSIWYG: Wysiwyg compressor now automatically disables old php feature 'magic_quotes_runtime' - caused wysiwyg to not work
- Categories: Fixed bug with _isAncestorSelected that caused it to be incorrectly set sometimes
- Usability: Added workaround for *.previewdns.com urls to prevent them from injecting Javascript that breaks interface code
- Usability: Made rename error more clear for windows servers with incorrect file permissions.
- User Accounts: Fixed MySQL Error when non-admin users would add new user accounts: "Column 'isAdmin' cannot be null"
- Compatibility: Fixed error "urlencode() expects parameter 1 to be string" caused by some 3rd party php code and scripts
- Compatibility: Updated internal program redirects to support and maintain https:// urls
- Compatibility: CSS file improvements (replaced more hard coded colors with CSS classes)
- Compatibility: Fixed disabled sockets error "getpage: Error opening socket: Operation not permitted (1)"
Version 1.28  Released: April 8, 2009 (Plugin System Enhancements)

NEW FEATURES
- Plugin System: Updated system to emulate WordPress plugin system
- Plugin System: Added hooks for: admin_head, admin_footer, record_presave, record_save_errorchecking, record_postsave
- Plugin System: Added filters for: header_links, execute_seconds, viewer_link_field_content
- New Plugin: Example Header links - shows how to add custom links to header of CMS without modifying code
- New Plugin: Footer License Link - shows how to add custom links or html to CMS footer
- New Plugin: Remove Accents From Viewer Links - shows how to dynamically rewrite viewer links
MINOR CHANGES
- WYSIWYG: Upgraded tinyMCE to version 3.2.2.3 (Released 2009-03-26)
- Editors: Min length and max length for WYSIWYG editor fields will only count characters (not the HTML)
- Editors: Added CSS classes for menuAccounts and menuAdmin for users that want to style those menu items differently
- Languages: Added some new language strings (check your language file in /lib/languages/)
- Categories: Changed _isSelectedBranch in getCategories() output to apply to all records in branch, not just ancestor records
- Categories: Added _isAncestorSelected and _isDescendantSelected to getCategories() viewer function output
- Viewer SEO: Paging variables firstPageLink, prevPageLink and lastPageLink no longer use different url for page 1 (eg: viewer.php instead of viewer.php?page=1) to prevent duplicate content urls
- Admin Settings: Added field for Header Image URL to display image in program header
- Admin Settings: Added field for Footer HTML to display extra text or html in program footer
- Compatibility: Added flag to .htaccess to disable (the old deprecated php feature) register_globals for old php installations
- Compatibility: Url encoded & as & in urls generated by viewer functions for HTML standards compliance
- Usability: You can now link to the license agreement (even if not logged in) with the url: admin.php?menu=license
- Misc Code and other minor improvements
BUG FIXES
- Re-creating thumbnails no loger gives an "Undefined variable: tableNameWithoutPrefix" error
- Added workaround for server bug with Microsoft-IIS/5.0 where users couldn't logoff: http://support.microsoft.com/kb/q176113/
- Fixed wysiwyg upload bug that would display the "add record" page if the section was set to only allow one record
Version 1.27  Released: February 24, 2009

NEW FEATURES
- WYSIWYG: Upgraded tinyMCE to version 3.2.1.1 (Released 2008-11-27)

MINOR CHANGES
- Categories: Added _isSelectedBranch field to getCategories() viewer function output
- Editors: Blank values are now saved as "NULL" for numeric MySQL column types
- Templates: Moved default Realty templates and schemas to Realty focused product
- Code Generator: Content-type header is now included in generated code (for servers that override meta charset tags)
- Code Generator: Added "Record Not Found!" error message to detail page for when a record isn't found.
- Editor Menus: Created/Updated fields now display account 'username' instead of account 'fullname'
- Editor Menus: Created/Updated fields now display even if dates were zero'd out in database (caused after adding field or upgrading)
- User Accounts: Program required fields are now set as "System Fields" to avoid accidental modification
- User Accounts: Renamed user roles Writer and Manager to Author and Editor
- Misc Code and other minor improvements
BUG FIXES
- Code Generator now escapes UNC paths properly in generated code (example: \\SERVER/path/viewer_functions.php)
- Editors: MySQL errors when saving records (due to incorrect column type) no longer create blank records

Version 1.26  Released: February 2, 2009

MINOR CHANGES & BUG FIXES
- Fixed issue where Cyrillic character sets such as Russian weren't saving correctly
- Fixed upgrade error: MySQL Error: Table 'database.cms__accounts' doesn't exist

Version 1.25  Released: January 30, 2009

NEW FEATURES
- Field Editor: Added new advanced option "MySQL Column Type" for advanced users
- Languages: Added Hebrew (he) language files

BUG FIXES
- Fixed incorrect error "Temp Upload dir '' does't exist!" for servers with default (blank) php upload dir
- Fixed issue where old /lib/menus/accounts/* files would prevent accounts from showing after upgrade
- Fixed error on installs without cms_ table prefix: MySQL Error: Table 'database.cms_accounts' doesn't exist
- Fixed error checking to check for PHP 4.3.2 (raised from PHP 4.3.0 in v1.23)

Version 1.24  Released: January 20, 2009

NEW REQUIREMENTS
- PHP 4.3.2 or newer is now required (PHP 4.3.2 was released in May 2003)
(The previous version required was PHP 4.3.0 so this version is only slightly newer)

NEW FEATURES
- Image Uploads: Transparency is now maintained when resizing GIFs and PNGs
- Section Editors: Added 'Advanced' option to hide sections from appearing on menu
- User Accounts: User accounts menu has moved out of admin area onto menu bar
- User Accounts: Users can now be given access to manage accounts without full admin access
- Section Editor: New "Advanced Filter" option added for creating dynamic list fields.
- Uploads: Added special wildcard "*" to allow any file extension (only use with trusted users)
- Editor List Page: Added Advanced Command: "Admin: Edit Section" to jump to Section Editor
- Editor Edit Page: Added Advanced Command: "Admin: Edit Section" to jump to Section Editor
- Login: After logging in you will now be redirected to the last page you tried to access
- Category Viewers: Category viewers now load uploads if there are any
- Viewer Code: Added left join capability to viewer functions

MINOR CHANGES & BUG FIXES
- Field Editor: Section Editors "Add Field" popup now scales to fit smaller screen sizes
- Field Editor: Date field now has a default year range start of 2008 and end of 2016
- Field Editor: Field edit form now has buttons on bottom as well (for ease of use)
- Upload Form: Improved upload error message when upload folder doesn't exist
- Upload Form: Uploads remaining now shows total remaining instead of total upload field count (10)
- Upload Form: Fixed error "Undefined variable: uploadsRemaining" that occurred on some servers
- Upload Lists: Upload list field will now expand to up to 600px height for easy access
- Schema Files: Set date fields to have year range start of 2008 and end of 2016 for default schema files
- Category Sections: Fixed bug where category order would sometimes get mixed up when uping up/dn sorting links
- Error Checking: Added error check for required thumbnail function imagecreatefromjpeg()
- User Accounts: Users can now be given manager access to category sections
- Record Editor: Fixed issue where wysiwyg couldn't be named 'main'. (Added "field_" prefix to wysiwyg id names)
- Record Editor: Fixed issue where some fieldnames (such as 'for') would be sorted in list view
- Browser Compatibility: Updated CSS to work in IE6
- Editor Forms: Sections with only a num and upload field no longer display error when saving
- Timezones: Fixed issue where admin could select invalid timezone names on servers without timezone lists
- Viewer Searching: _min and _max viewer field searching now supports decimal values: field_min=1.5
- Misc Code and other minor improvements

Version 1.23  Released: November 6, 2008

NEW FEATURES
- Admin Design: Change admin menu design to have left navigation menu
- CSS Stylesheet: Made huge improvements to program CSS stylesheet making it easier to re-style and change colors
- Languages: Added Portuguese translations (thanks to jamtc in the forums)
- WYSIWYG: Upgraded tinyMCE to version 3.2.0.2 (2008-10-02)
- Program Urls: Help Url and Website Url can now contain PHP code (to specify values on per user basis, for example)
- Usability: If a user is one allowed to edit one record in a section they are redirected straight to edit page (instead of list page).

MINOR CHANGES & BUG FIXES
- Compatibility: Loading viewer PHP from 3rd party scripts no longer produces "Undefined variable: SETTINGS" error
- Compatibility: Added PHP4 compatibility function for array_combine()
- Compatibility: Program cookies are now set at webroot level and use new 'cookiePrefix' setting (in settings.dat.php)
- Compatibility: Fixed disabled sockets error "getpage: Error opening socket: Invalid argument (22)"
- Compatibility: Upload file permissions are automatically changed for servers that save uploads with read permissions
- Compatibility: Added PHP workaround for issue where set_include_path() doesn't work when already set in httpd config
- Compatibility: CMS Builder now works when installed on Windows UNC network path (\\SERVER\path\to\www\)
- Compatibility: Zip no longer contain directory entries (Vista's unzip created extra files)
- Usability: Swapped width and height field order in field editor to be consistent with common standard
- Field Validation: Minimum and Maximum length restrictions no longer apply to blank fields (check "required" to require a value)
- Upgrade Docs: Added /uploads/ to the list of files and folders to upload
- Database: Dropped MySQL connection timeout to 5 seconds from PHP's default of 60 seconds (too long)
- BugFix: Category sections no longer show categories owned by other users in "Parent Category" pulldown for users with writer access
- BugFix: Recreating secondary thumbnails no longer erases primary thumbnails
- BugFix: Date fields now have proper range of 0 to 59 for seconds pulldown
- Dialogs: Dialog (popup) windows now are modal meaning they won't close unless you click cancel
- Misc Code and other minor improvements
Version 1.22  Released: Auguest 15, 2008

MINOR CHANGES & BUG FIXES
- Uploads: Fixed bug where erasing an upload returned errors on some servers
Version 1.21  Released: August 14, 2008

NEW FEATURES
- Field Editor: Added 3 new optional thumbnail fields for up to 5 images sizes per upload
- Accounts Menu: Accounts menu is now editable through section editors
- Viewers: Added search suffix "_prefix", used in url like this: viewer.php?title_prefix=a
- Viewers: Added advanced function getCategories() to display category trees or UL/LI lists
- Record Lists: Added checkboxes and "Erase Checked" option to Advanced Commands (bottom left)
- Plugins Menu: Added plugins section to Admin Menu for future use and custom plugins.

MINOR CHANGES & BUG FIXES
- Upgrade Files: Renamed accounts schema file with .default to prevent accidental overwriting during upgrades
- Uploads: Fixed bug where uploads wouldn't get removed when record was erased.
- Viewers: Fixed bug that caused multiSearch function to stop working
- Section Editors: Section name is now displayed in page heading breadcrumb
- Languages: Added more text to language translation files.
- Preset Menus: Fixed issue in "Products" preset where it allowed uploads but had no allowed file extensions
- Preset Menus: Fixed issue in "Contact Us" preset where email caused "range out of order" errors on some PHP installs
- Field Editor: "allowed characters" field now only allows dash at end of character list to prevent "range out of order" errors
- Field Editor: After "Quick Add"ing a field focus is given to the Quick Add Label Field again to speed up field entry.
- Alerts & Notices: Non-error alerts are now shown with a green border.
- Section Editors: "Quick Add" fields now support unicode characters - replaced escape() with encodeURIComponent() in javascript
- Languages: Added new language strings for French and Spanish (needs translating)
- Help Link: Help link now opens in new window
- Misc Code and other minor improvements
Version 1.20  Released: July 14, 2008

NEW FEATURES
- List Preview - Added Preview button to editor list page

MINOR CHANGES & BUG FIXES
- Section Editors: Fixed cookie issue so editors remember last keyword search, page number, and perpage value when returning to a section.
- Bugfix: Fixed disabled sockets error "getpage: Error opening socket: The operation completed successfully. (0)"
- Bugfix: Added "language" value to default settings.dat.php.default file
- Bugfix: Fixed "Couldn't find ini file" error on install
- Misc Code and other minor improvements
Version 1.19  Released: July 9, 2008

NEW FEATURES
- Multi Language - Added language packs for: french and spanish
- Multi Language - Added support for creating your own language files

MINOR CHANGES & BUG FIXES
- Viewer Search: Fixed issue where field1,field2_query searches with unrecognized fields caused error
- Field Editor: Year range fields for dates are now textfields so you can specify dates before 1971
- Field Editor: Made internal 'action' a reserved fieldname (rename existing 'action' fields if needed)
- Admin Menu: Added "Show Server Upload Limits" under Upload Fields in Admin > General Settings
- Admin Menu: Section Editors "<< Viewer Code Generator" button now passes section name to save time
- Error Checking: Helpful error now displayed when installing on windows servers without 'erase' file permissions
- Misc Code and other minor improvements
Version 1.18  Released: June 26, 2008

NEW FEATURES
- Speed: Optimized code to improve speed by up to 50% or more
- Editors: Added column sorting, click a column header to sort by it
- Editors: Added multi-value fields: multi-select and checkboxes
- Field Editor: Added option to change size and "recreate thumbnails" for uploads
- Password Reminder: Added email password reminder to login menu

MINOR CHANGES & BUG FIXES
- Viewers: Fixed error on some windows hosts "... Undefined index: QUERY_STRING ..."
- Viewers: Fixed errors 'Undefined index: createdByUserNum' for section viewers without 'createdByUserNum' field
- Viewers: Added experimental getPrevAndNextRecords() function (see forum for details)
- Viewers: Added experimental incrementCounterField() function (see forum for details)
- Editor List: List fields now show field label instead of field value (when those are different)
- Admin Program: Fixed bug where PHP 4 sometime wouldn't display program run times greater than 1 second.
- Field Editor: Numeric only field named (such as "123") no longer cause errors.
- Field Editor: Added extra error checking for invalid sorting or searching fieldnames
- Field Editor: Uploads - Added note: Resized images maintain proportions, height and width are "maximum" values.
- Field Editor: Added extra error checking for image and thumbnail max height and width fields.
- Section Editor: Added extra error checking for invalid sorting or searching fieldnames
- Section Editor: Searching for nothing ("") now resets search and shows all results
- Preset Menus: Remove default orderBy of "title" from contact and about us presets (caused error)
- Security: Password cookies are now sent as httpOnly for PHP4 and PHP5 (prevents access by javascript)
- Security: Password cookies are now stored as MD5 checksums instead of plaintext
- Security: Added index.html to admin folder to prevent viewing of directory listing
- Security: Added meta tags to prevent search engines from indexing admin pages
- Admin Menu: Added new field for "admin email" under general settings (for addons that send emails)
- WYSIWYG: Moved all wysiwyg code into /lib/wysiwyg.php to make it easier to find and edit.
- WYSIWYG: Added support for wysiwyg_custom.php file that won't get overwritten during upgrades
- WYSIWYG: Upgraded tinyMCE to version 3.0.10.1 (2008-06-18)
- WYSIWYG: Updated tinyMCE to store it's cache files in /data/ instead of /tinymce3/
- WYSIWYG: tinyMCE no longer requires that the /tinyce3/ folder be writable (caused errors on some servers)
- Upgrades: Renamed default settings file to prevent users from accidentally overwriting it when upgrading
- Misc Code and other minor improvements
Version 1.17  Released: June 5, 2008

NEW FEATURES
- Code Library: Added new function: getListOptions($tablename, $fieldname) to load pulldown list options

MINOR CHANGES & BUG FIXES
- Section Editors: Fixed bug where erasing record caused error.
Version 1.16  Released: June 5, 2008

NEW FEATURES
- Editors: Administrators can now change the creator or "owner" of records
- Viewers: Updated urls to use dashes instead of underscores for better search rankings (SEO)
- Section Editors: New "Add Menu" popup menu for creating menus
- Section Editors: Added new "Categories" menu type (beta) - category code generator coming soon
- WYSIWYG: Added language packs for: Spanish, Dutch, German and Norwegian
- WYSIWYG: The wysiwyg language can now be specified in Admin > Regional Settings
- Websites: Added /sampleTemplates/realty-simple/ with sample templates and schema for Realty website

MINOR CHANGES & BUG FIXES
- Editors: "Created By" & "Updated By" now show users full name instead of their username
- Editors: Updated dragSortOrder so it's faster when sorting 100 records at a time on list page.
- Section Editors: Fixed "congratulations" typo on sorting tab
- Section Editors: TableNames no longer allow dash character ("-").
- Section Editors: Menu Types can no longer be changed once setup (shouldn't be required)
- Section Editors: Options that are not-applicable for the current menu type are now hidden
- Section Editors: New Multi-Page menus now have drag sorting enabled by default
- Section Editors: List field options now have extra whitespace automatically removed from end (fixed Firefox issue with pulldowns not remembering values)
- Section Editors: Custom Upload Paths are now only saved to schema files if "Use custom upload directory" is checked
- Section Editors: Editors now default to last keyword search and page number during session.
- Section Editors: You can now specify an upload field in "List Page Fields" to show the first uploaded thumbnail image
- Section Editors: Added "pdf" to the list of default valid upload extensions displayed when creating a new field
- Section Editors: Updated preset editors
- Code Generator: Fixed "Notice: Undefined offset: 0" error when loading single records that don't exist
- Code Generator: Where and Order By values with single quotes are no backslashes to avoid errors \'like this\'
- Code Generator: Removed optional XHTML tag <?xml version='1.0'?> from code generator output to prevent confusion and errors
- Uploads: Images that don't need to be resized are copied instead of processed (reduces memory and maintains gif transparency)
- Install: Added .htaccess to correct common server misconfigurations
- Admin: Fixed IE7 positioning bug that caused thickbox (popup window) to not always be centered correctly
- User Accounts: Renamed user roles to reduce confusion: General is now "Writer", Admin is now "Manager"
- Viewers: Added new option 'orWhere' for adding a MySQL "OR ..." to end of where clause
- Viewers: Fixed bug where url keyword searches were ignored when a 'where' option was specified.
- Viewers: Added new option 'requireSearchMatch' to show no records when there is no search keywords submitted
- Field Editor: Default field values now accept <?php ?> tags and code for: textfield, textbox, and wysiwyg fields
- Misc Code and other minor improvements

Version 1.15  Released: May 6, 2008

NEW FEATURES
- Code Generator: New code generator form makes it easier to create different types of viewers without editing any code.
- Section Editors > Admin Tab: New option to auto-hide listings from expired, disabled, or deleted users (for subscription and pay sites)
- WYSIWYG: Word content is now automatically cleaned (IE) or popup appears on paste (non-IE browsers)
- Field Editor: Added "Checked Value" and "Unchecked Value" to fields to checkboxes

MINOR CHANGES & BUG FIXES
- WYSIWYG: Upgraded tinyMCE to version 3.0.8 (2008-04-30)
- Viewers: Added new viewer function getRecords()
- Viewers: New variables available with getRecords(): createdBy.num, createdBy.fullname, createdBy.username, createdBy.email
- Viewers: Added function thisPageUrl() to make it easy to get current page url for email links
- Editors: New variables available for "List Page Fields": createdBy.num, createdBy.fullname, createdBy.username, createdBy.email
- Editor Manager: Added tabs to organize section editor fields and better field descriptions
- Editor Manager: Added options for 'List Page Url', 'Detail Page Url', and 'Filename Fields'
- Editor Manager: Added new section setting "Max records per user"
- Field Editor: Quick adding special fieldnames keep proper case now (dragSortOrder instead of dragsortorder)
- Field Editor: Made 'length' a reserved fieldname to prevent IE javascript errors (rename existing 'length' fields if needed)
- Field Editor: Alert is now displayed when field editor can't save because of false positive errors from mod_security
- Code Generator: Removed vendor "powered by" text and link (removed from settings as well)
- Code Generator: Added "Email this page" mailto: link to default page viewers
- Errors: Added error message when uploads can't be removed because of file permissions
- Bugfix: Fixed disabled sockets error "getpage: Error opening socket: Connection refused (111)"
- Misc Code and other minor improvements
Version 1.14  Released: April 18, 2008

BUG FIXES
- Viewers: Fixed undefined index error where Page Viewers were setting _link value even if no record was found
- Home Menu: Fixed bug with optional homepage menu (enabled in /lib/menus/home.php) where it wasn't displaying
Version 1.13  Released: April 16, 2008

NEW FEATURES
- Wysiwyg: Added "Insert Media" button for inserting: QuickTime, Flash, ShockWave, RealPlayer or Windows Media Player files
- Viewers: Added multi-section search engine (see forum for examples)
- Viewers: Page Viewers now default to the first record in list (sorted by orderBy) rather than record number 1

MINOR CHANGES & BUG FIXES
- Bugfix: Fixed disabled sockets error "getpage: Error opening socket: Connection timed out (110)"
- Bugfix: Fixed issue where files uploaded through WYSIWYG couldn't be erased
- Compatibility: Memory limit is automatically increased to 64M for hosts that support changing memory limit
- Compatibility: Emulated PHP 5.1.0+ function timezone_abbreviations_list() for server that don't have it
- Compatibility: Updated code to detect correct script url on hosts running PHP in CGI mode
- Usability: PHP Viewer code now display message when incorrectly saved as .html file: "Rename this file to .php"
- Usability: Improved message that is displayed when admin.php is viewed as html or text: "Ask you host to enable PHP..."
- Usability: Improved upload error messages
- Viewers: Autogenerated links (_link) no longer have trailing slashes
- Viewers: Autogenerated links (_link) now includes full url starting with http:// (for email this page links)
- Viewers: Autogenerated links (_link) are now generated on detail page viewers as well (for email this page links)
- Viewers: Added listDetails placeholders: pageResultsStart and pageResultsEnd
- Viewers: Added orderBy option to page viewers
- Field Editor: Field names can no longer start with an underscore (_fieldnames are reserved for program use)
- Field Editor: If you 'Quick Add' a separator and enter a field label it will now create a "Header Bar" separator instead of a blank line separator
- Admin Menu: Added new section "Regional Settings" for timezone settings (and for future options)
- Home Menu: Added menu list on home page for those who want it. Set 'showHomeMenu' in /lib/menus/home.php to enable.
- Wysiwyg: <form> and other tags and attributes are no longer automatically removed from wysiwyg content
- Code Generator: Variables are now prefixed with section table name to make it easier to have multiple viewers on one page
- Code Generator: Added 'orderBy' option to generated page viewer code
Version 1.12  Released: March 21, 2008

MINOR CHANGES & BUG FIXES
- Bugfix: "Call to undefined function timezone_abbreviations_list()" error on some PHP installs
- Bugfix: Fixed error where numbers in filename would cause viewers to load wrong record on some PHP installs
- Bugfix: Changed misnamed listpage field 'date' to 'closing_date' in 'Jobs' schema preset
- Bugfix: Fixed "There was an error sending request!" error when drag sorting records on some servers.
- Bugfix: Added error message for when schema file can't be read/updated because it's already being updated
Version 1.11  Released: March 20, 2008

NEW FEATURES
- Special Fields: Added 'dragSortOrder' field which allows user to drag records to re-order them and stores order values
- Field Editor: Added "Save & Copy" button to field editor for faster entry of similar fields
- Viewers: Added automatic search suffix "_query" for google style searches. Example: +word -word "multi word phrase"
- WYSIWYG: Added "Paste From Word", "Paste As Plain Text", and "Create Anchor" buttons

MINOR CHANGES & BUG FIXES
- WYSIWYG: Upgraded tinyMCE to version 3.0.5 (Released 2008-03-12)
- WYSIWYG: relative links are now converted to absolute links from the website root (page.html > /page.html)
- WYSIWYG: fixed bug that prevents custom wysiwyg stylesheet(/css/wysiwyg.css) from loading
- WYSIWYG: Updated /css/wysiwyg.css to be compatible with tinymce 3
- Compatibility: Fixed issue where PHP couldn't find script because some servers returned SCRIPT_NAME as /cgi-bin/php441
- Compatibility: Fixed issue where PHP couldn't find script because some servers returned SCRIPT_NAME as /cgi-system/php.cgi
- Compatibility: Drag sorting uploads and fieldnames now work with hundreds of items (switched ajax queries to POST to avoid browser url length limits)
- Compatibility: Fixed E_STRICT not defined error message for PHP 4
- Compatibility: Fixed error "undefined index SCRIPT_FILENAME" for servers that don't have that value defined.
- Compatibility: Added error message for when uploads don't work because server doesn't have temp PHP upload folder configured
- Compatibility: Removed error checking for 'disable_functions' php setting - caused more errors than it fixed.
- Compatibility: Added utf-8 header to /lib/header.php for servers that send other charset headers
- Special Fields: Added popup message, hardcoded column and field type (checkbox) for special fieldname "hidden"
- Section Editor: Renamed "List Order" to "Order By" so it has the same name as viewer code and MySQL "ORDER BY" clause it represents
- Section Editors: Editor List now shows date only for date fields with "Specify Time" unchecked
- Section Editors: Fixed bug where single-page section uploads couldn't be edited by different users without admin access
- Field Editor: Made 'order' a reserved fieldname to prevent MySQL errors (rename existing 'order' fields if needed)
- User Access: Updated "Max Records" so zero ("0") means zero and not unlimited (leave blank for unlimited).
- User Access: Fixed "Max Records" so it only applies to "regular" access users, not "admin" users.
- User Access: Setting access level to "Admin" not greys out (disables) the "Max Records" field
- Presets: Removed special fields from section presets: hidden, publishDate, removeDate, neverRemove (can be re-added manually if needed)
- Docs: Fixed typo in "how to upgrade.txt". Changed "/[cmsAdmin]/data/uploads/" to "/[cmsAdmin]/uploads/"
- Section Editors: "Admin Only" fields now get "default value" from field editor when being created by non-admins
- Section Editors: Added error checking so "regular" users can't access section editors if there is no createdByUserNum field.
- Section Editors: Single-page sections now show current username instead of "Unknown" for Created/Updated By when first being created
- Viewers: Viewers now display nice error message if you try to access them before installing program (instead of numerous MySQL errors)
- Error Checking: Added extra error checking to check all file permissions are correct before installing
Version 1.10  Released: March 3, 2008

New Features
- User Access: You can now restrict users to only edit their own records and limit how many records they can create (by section)
- Special Fields: 'createdDate' stores date record was created
- Special Fields: 'createdByUserNum' stores 'num' of user who created record
- Special Fields: 'updatedDate' stores date record was last updated
- Special Fields: 'updatedByUserNum' stores 'num' of user who last updated record
- Special Fields: 'publishDate' stores start date that viewers should display record (renamed from 'autoPublishStartDate')
- Special Fields: 'removeDate' stores end date that viewer hide record after (renamed from 'autoPublishEndDate')
- Special Fields: 'neverRemove' stores option on whether removeOn date should be ignored (renamed from 'autoPublishNeverExpires')
- Settings: Added option to set image resize quality under: Admin > General > Advanced Settings
- Settings: Added wysiwyg option to use full url with domain for local links under: Admin > General > Advanced Settings
- Settings: Added timezone offset (hours, minutes) fields for PHP4 users (PHP4 has limited timezone support)
- Field Editor: Separator html code now parses <?php ?> tags and code
- Field Editor: Section Admins can now view and modify "Admin Only" fields.

MINOR CHANGES & BUG FIXES
- WYSIWYG: Upgraded tinyMCE to version 3.0.2.1 (Released 2008-02-26)
- Field Editor: When "List Field" option are loaded from another database they are now sorted with section sorting order
- Field Editor: Changed MySQL column type for checkbox fields to be "NOT NULL" so only numeric values are stored
- Field Editor: Changed MySQL column type for date fields to be "NOT NULL" so only date values are stored
- Compatibility: Coded around "Permission denied" error on servers with disabled sockets
- Compatibility: Added note to admin.php to turn on php for hosts that show .php files as text
- Compatibility: Added quotes to tablenames in code to avoid reserved MySql keyword errors
- Compatibility: Added error message for when PHP safe_mode is enabled
- Compatibility: On install - specified database name is now created if it doesn't already exist.
- Compatibility: Set default_charset to utf-8 for php output pages.
- Compatibility: Fixed issue where PHP couldn't find script because some servers returned SCRIPT_NAME as /bin/php.cgi
- Compatibility: Added code to check for servers with sockets disabled and issue warning (checks on install only)
- Compatibility: Added code to check for servers with disable_functions PHP setting and issue warning
- Section Editors: Fixed "Use of undefined constant mysql_affected_rows" error
- Web Standards: Added labels for checkboxes on install page (clicking text toggles checkbox)
- Web Standards: The code generator now includes blank alt="" tags for image tags
- Code Generator: Change default date format from incorrect "G:H:s a" to correct "g:i:s a" (can still be customized by user)
- Code Generator: Change default date format from incorrect "G:H:s a" to correct "g:i:s a" (can still be customized by user)
- Viewers: SEO urls for viewers in the root of the website are no longer created with extra leading slash ("/")
- Viewers: Fixed error where $TABLE_PREFIX wasn't available when viewer was called inside a user defined function
- Uploads: Thumbnails are now created in a subdirectory called /thumb/ to be compatible with popular gallery software
- Uploads: Fixed bug that prevented new upload dirs from automatically being created on some servers
Version 1.09  Released: January 24, 2008

MINOR CHANGES & BUG FIXES
- Uploads: Fixed bug where uploading flash SWF files returned 'Unknown image type!' when thumbnailing was enabled
- Field Editor: List fields now save default options when being quick added instead of being blank
- Field Editor: Custom upload directories now get automatically created when accessed
- Compatibility: Fixed issue where PHP couldn't find script because some servers returned SCRIPT_NAME as /shared-cgis/php
- Compatibility: Fixed "Invalid Product ID" on older PHP version (floating point error with =* operator)
- Compatibility: Reset umask to 0 for restrictive hosts that default to making created files unreadable
- Compatibility: Coded around php bug: fsockopen() "php_network_getaddresses: getaddrinfo failed: Name or service not known"
- Compatibility: display_errors and display_startup_errors now enabled by default (can be commented out in lib/init.php)
- Error Messages: Changed typo "File is writable, check permissions" to "File isn't writable, check permissions"
Version 1.08  Released: January 20, 2008

NEW FEATURES
- Viewers: Added automatic date search suffixes (_year, _month, _day). Example: viewer.php?date_year=2008&date_month=1
- Compatibility: Lowered PHP required to v4.3.0+ (over 5 years old)
- Compatibility: Lowered MySql required to v4.1.7+ (over 3 years old)
- Compatibility: Switched to 'mysql' extension (from less popular 'mysqli' extension)

MINOR CHANGES & BUG FIXES
- WYSIWYG: foreign (extended) characters are no longer saved as entities (was causing keyword search to fail)
- WYSIWYG: Re-added fullscreen edit plugin files (removed in upgrade to tinyMCE 3)
- WYSIWYG: Fixed bug where you couldn't add images when wysiwyg was in fullscreen mode
- Compatibility: Added workaround for "Call to undefined method mysqli::set_charset()" error on some servers
- Compatibility: Program and Field settings can now store double-quotes (") in ini files
- Compatibility: Added workaround for servers that don't have current directory in include_path
- Compatibility: Added automatic code to disable 'magic_quotes_gpc' for servers that have it left on
- Field Editor: added 'menu' as a reserved fieldname
Version 1.07  Released: January 11, 2008

NEW FEATURES
- Section Editors: You can now reorder uploads by dragging them.
- Section Editors: Re-added fullscreen edit button to wysiwyg (removed in upgrade to tinyMCE 3)
- Field Editor: List fields can now have different values for values and labels (entered as: value|label)
- Field Editor: List fields options can now be loaded from another table, or from an sql query (advanced)
- WYSIWYG: Upgraded tinyMCE to the latest version (Released 2008-01-08)
- Viewers: Added automatic search suffix "_keyword", used in url like this: viewer.php?myField_keyword=blue
- Viewers: Added automatic search suffix "_match", used in url like this: viewer.php?myField_match=red
- Viewers: Added automatic search suffix "" is an alias for "_match", like this: viewer.php?myField=blue
- Viewers: Added automatic search suffix "_min", used in url like this: viewer.php?myPrice_min=100
- Viewers: Added automatic search suffix "_max", used in url like this: viewer.php?myPrice_max=999
- Viewers: Page numbers are now passed as ?page=1 and "/page-1/" instead of "page1" to support searching

MINOR CHANGES & BUG FIXES
- Field Editor: fixed jQuery bug where IE6/7 would always show radio buttons as unselected. http://dev.jquery.com/ticket/1095#comment:4
- Schema Files: renamed "listOptions" to "optionsText" to support new list option features
- Viewers: Extra search arguments are now automatically passed forward in page links (such as ?city=Vancouver or /city-Vancouver/ for SEO urls)
- Viewers: You no longer have to enter the absolute url to the page viewer when useSeoUrls is on, the program figures it out.
- Errors: Added error message for when GD2 extension isn't installed
- Validation: Misc XHTML and CSS validation improvements
Version 1.06  Released: January 3, 2008

NEW FEATURES
- WYSIWYG: Wysiwyg now support image and file uploads
- WYSIWYG: Upgraded wysiwyg editor to tinyMCE v3.0b3 (from v2.1.2)
- Field Editor: Added "Field Width" option for text fields
- Field Editor: Added "Field Description" option for text fields (displayed after field)
- Field Editor: Added "Unique" option for list fields
- Field Editor: Added "Admin Only" option for all fields (only admins can view or change field)
- Section Editor: Added "Max Records" option to limit max allowed records in sections
- Section Editor: Added "Disable Add" option to prevent user from adding records to a section
- Section Editor: Added "Disable Erase" option to prevent users from removing records from a section
- Viewers: Option 'titleField' supports multiple fieldnames (first defined field is used for url keywords)

MINOR CHANGES & BUG FIXES
- FieldEditor: Renamed 'checkboxDescription' attribute to 'description'
- Viewers: Moved "Page not found" error into list viewer code so users could modify it
- Viewers: Added $listDetails[] placeholders: noRecordsFound, invalidPageNum, firstPageLink, lastPageLink
- Viewers: Changed how paging works: Invalid page numbers are displayed (page 5 of 2) and prev link goes to last valid page num
- Usability: 'View Website' link is now hidden if it's set to blank in admin.
- Code Generator: Extra code added so uploads are only displayed for valid record numbers (and no error is displayed)
- Uploads: Clicking upload after selecting 0 files refreshes upload form instead of producing an error
Version 1.05  Released: December 19, 2007

MINOR CHANGES & BUG FIXES
- Uploads: Uploads now have non-alphanumeric characters replaced with underscores on save.
- Upload Lists: Added save button to bottom of page in addition to top (reduce scrolling)
- Upload Lists: "modify" link is now only shown if there are extra upload detail fields (title, caption, etc)
- Upload Lists: Previous uploads with single quotes ("'") now be modified and removed correctly.
- Upload Lists: Doubled maximum height of upload list (to 300px when full of images)
- Section Editor: Minor usability improvements (reducing clicks, making things more intuitive, etc)
- escapeMysqlWildcards() now works correctly (escaping MySQL wildcard search chars)
- Field Editor: Erasing a field would sometimes hide additional fields until the page was reloaded.
- Code Generator: Added list of upload fields to generated upload viewer code
- Code Generator: Default viewer order is now set to "List Order" from the Section Editor so both sort the same
- Login Security: Login password cookies are now set as 'httponly', so they can't be access through javascript
- Viewers: Added new upload field 'extension' with upload extension (eg: gif, jpg, doc, etc)
- Viewers: Updated code to give better error message in (unsupported) PHP4
- Viewers: Removed some unneeded characters from Page Viewer code (\n";)
- Section Editor Presets: Fixed the FAQ preset by removing a trailing space from the listPageFields value ("questions " was causing an interface error in FAQs)
- Section Editor Presets: Minor tweaks and edits
Version 1.04  Released: December 10, 2007

NEW FEATURES
- Private Labeling: Added "Private Labeling" menu to admin to make private labeling faster and easier.
- Field Editor: Different upload fields can now have different upload directories
- Field Editor: Upload fields can each have up to 5 different info fields (eg: Title, Caption, etc)

MINOR CHANGES
- Private Labeling: Sublicensing clause in license is no longer displayed after private labeling.
- Field Editor: Advanced Options are now always hidden until you click "show"
- Field Editor: Clicking show or hide now displays or hides all option groups at once (to reduce clicks).
- Field Editor: Option groups will stay opened for all fields until you close them again (or you close your browser).
- Field Editor: Improved formatting and display of various options in IE7 ("display: table" css was unsupported in IE7)
- Compatibility: Lowered required MySQL version to v5.0.15 for web hosts with older versions (First official MySQL 5 production release)
- Compatibility: Added workaround for bug in MySQL v5.0.37 that prevents user from updating single menu records. http://bugs.mysql.com/bug.php?id=27210
- Compatibility: Removed hardcoded references to "admin.php" so web hosts requiring .php5 extension will work.
- Section Editor: Renamed "Menu Editor" to "Section Editors"
- Section Editor: Tablenames with leading underscores ("_likeThis") are no longer allowed and reserved for future use
- Section Editor: Tablenames must now be all lowercase for compatibility (some servers are case sensitive, some aren't)
- Upload Fields: Fixed an interface error with non-image file uploads that displayed a "division by zero" error message
- Misc: Program version is now updated in settings when you install an upgrade
Version 1.03  Released: December 3, 2007

BUG FIXES
- Fixed "preg_match() expects" error for servers with 'allow_url_fopen' set to false in php.ini
Version 1.02  Released: November 30, 2007

MINOR CHANGES
- Private Label: Added new key to settings file and code generator footer "vendorPoweredBy"
- Interface: Removed extra line break that appears on top of some pages in IE7
- Interface: Menu Editor List now shows message when no menus added "There are no menus. Try adding one below."
- Interface: Upload Lists now display "No Uploads..." after erasing last upload instead of just empty box
- Interface: Field Editor: table prefix is now shown in front of tablename field instead of being required to be entered.
- Interface: Field Editor height now adjusts to be 80% of window height so Save button isn't hidden on lowres monitors
- Interface: Linked logo.gif to "home", removed "home" link from navigation bar
- Error Messages: Improved message that is displayed when MySQL table exists but schema is missing
- Viewers: Added tableName to viewer errors to make it easier to track down problems with multiple viewers
- Viewers: Code Generator no longer sets titleField option to "title" unless that field exists in table
- Install: Added .htaccess file to disable unsupported PHP setting 'magic_quotes_gpc'
- Admin General: MySQL table prefix is now displayed but not editable

BUG FIXES
- Fixed error where different column name CaSe in schema and mySql would cause error.
Version 1.01  Released: November 26, 2007

CHANGES
- Viewer Code: Added function escapeMysqlString() for escaping viewer keyword searches
- Viewer Code: Added function escapeMysqlWildcards() for escaping viewer keyword searches
- WYSIWYG Field: Added "Edit HTML Source" button
- Uploads Field: Now automatically adjusts height when there are no or few uploads.
- Uploads Field: Turned off border for Internet Explorer
- Menu Pre-sets: Removed unintentionally pre-installed News and Contact Us menus (both are still available as pre-set menus)
- Menu Pre-sets: Reorganized the blog menu pre-set fields
- Moved tinyMCE (WYSIWYG editor) from /cmsAdmin/lib/ into the /cmsAdmin/ folder (the program root)

BUG FIXES
- Added/fixed maxlength setting for text fields (limits characters accepted to max length value from field editor)
- Resized images sometimes wouldn't save properly with "Error saving file!" error
- Thumbnails wouldn't get created if uploaded image wasn't automatically resized by program first
- Fixed issue where page load time (at bottom of page) sometimes showed negative value

Version 1.00  Released: November 21, 2007

CMS Builder launched.