*** February 9, 2024 - Version 3.65 (New Advanced Field Types) SERVER REQUIREMENTS: PHP 8.0+ and MySQL 5.7+ (or MariaDB 10.2+) UPGRADING - Note: If you added /lib/wysiwyg_custom.php, you'll need to re-create it from wysiwyg.php and re-apply your customizations NEW FEATURES - New Field Type: "Generated Columns" let you create virtual columns that are calculated from other fields in the same row - New Field Type: "Foreign Keys" for relational links between records, ensuring data integrity and preventing orphan records - Live SQL Monitor: Monitor SQL queries in realtime, found under: Admin > General > Server Info > Database Server - Cloud Mode: Reduced CMS codebase by 10 megs and over 200 files by switching to CDNs for common library delivery - Offline Mode: Added support for new plugin with all CDN files bundled for offline use - Setup > Database Editor > Table Editor: Added "MySQL Source" tab for referencing MySQL table definitions MINOR CHANGES - Session Names: Cookie name is now set under: Admin > General > Advanced - ZenDB: Added $results->row($pos) to get a row based on its position, e.g. $firstRow = $results->row(0) - ZenDB: Added $results->col($nameOrPos) to get a list of column values by name or position - ZenDB: Added $row->col($nameOrPos) to get single row column value by name or position - ZenDB: Added $row->isFirst, $row->isLast - ZenDB: Added $field->toString() to force a string representation of a field value - ZenDB: Added DBException class for displaying standardized error messages - ZenDB: Added DB::query()->orThrow($message) chainable method to throw exceptions with a custom error message - ZenDB: Added DB::config('useSmartJoins') option for disabling smart join functionality - Upgraded PHP Mailer from v6.8.1 to v6.9.1 REMOVED FEATURES - Removed experimental ViewerAPI code (not updated or available through CMS interface since 2017) - Removed demo mode: It took significant resources to maintain and was not widely used (previous versions can still be used for demo sites) - Removed bundled libraries: Now loaded via CDNs and available in Offline Mode plugin - Removed feature that disabled autocomplete for browsers that ignore HTML5 autocomplete standard (as it no longer works) BUG FIXES - Database Tables: Convert all tables to ROW_FORMAT=DYNAMIC if not already, to avoid "Row size too large" errors with InnoDB - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** December 8, 2023 - Version 3.64 (MySQL 5.7 Required) SERVER REQUIREMENTS: PHP 8.0+ and MySQL 5.7+ (or MariaDB 10.2+) *** NEW DATABASE REQUIREMENTS - This version now requires: MySQL 5.7.32+ or MariaDB 10.2+ (increased from MySQL 5.5+) - Please check with your hosting provider to ensure you have these installed BEFORE upgrading. MINOR CHANGES - Admin Menu > Security: Added option to ignore PHP development warnings (E_STRICT, E_DEPRECATED) - Admin Menu > Server Info: Display PHP Caching Modules to help debug caching issues - Admin Menu > Server Info: Display CMS Folder and chroot status (to help debug filesystem issues) - Section Editors: Renamed "Section Editors" to "Database Editor" in CMS Setup menu - Database: Newly created fields have default values in MySQL now so values don't have to be specified on INSERT - Database: New createdDate and updatedDate fields now default to current datetime (not 0000-00-00 00:00:00) - Database: "MySQL Type" is now displayed in its own column under: Admin > Database ZenDB Improvements - ZenDB: Added DB::identifier() for `quoting` and escaping MySQL identifiers such as table and column names - ZenDB: Added $row->toArray() to get an array structure of HTML-encoded values - ZenDB: Added $resultSet->toArray() to get an array structure of HTML-encoded values - ZenDB: Added $resultSet->getColumn() to get values from a single column - ZenDB: Added $resultSet->indexBy() for a column to record map, e.g. $emailToRecord = $resultSet->indexBy('email') - ZenDB: Added $resultSet->groupBy() for a nested column to record map, e.g. $cityToUsers = $resultSet->groupBy('city') - ZenDB: Brackets and "get" prefix are now optional for chainable methods, e.g. ->getValues() can be called as ->values BUG FIXES & Minor Changes - PHP 8.2 compatibility fixes - Install: Fixed issue where restoring from backup on install required new admin account info to be entered - MySQL 8.0: Fixed error when SET innodb_strict_mode was called without SESSION_VARIABLES_ADMIN access - Error Logging: Improved how error logging catches and logs fatal errors that halt script execution - View Menus & Tab Groups: Fixed issue where first tab in a tab group wouldn't display currently - View Menus & Tab Groups: Fixed issue where upload lists wouldn't automatically resize on tab switch - View Menus: Fixed issue where non-displaying fields with internal category menu fields were incorrectly showing - View Menus > Advanced Commands: Resolved double HTML-encoding issue that caused actions to not function correctly - Admin > General: Fixed open_basedir warning for fileinode() - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** November 7, 2023 - Version 3.63 (ZenDB Database Library) SERVER REQUIREMENTS: PHP 8.0+ and MySQL 5.5+ NEW FEATURES - ZenDB Database Library - Added new next-generation database library for improved performance and security. MINOR CHANGES & BUG FIXES - Email Templates: Email templates can now include attachments. - Developer Log: Replaced "Backtrace" with sequential "Call Stack" to make debugging faster and easier. - Hide PHP Errors: Now only applies to web requests and displays full errors for cronjobs and logged-in admins. - showme() no longer outputs HTML tags when Content-type is "text/plain" (for debugging) - Security: Automatically remove X-Powered-By: PHP/x.x header to prevent information disclosure - Programmers: Added new plugin filter 'headers' for adding or modifying headers sent to the browser - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** October 12, 2023 - Version 3.62 (Improved Section Editor Sorting and New Mailer) SERVER REQUIREMENTS: PHP 8.0+ and MySQL 5.5+ NEW FEATURES - Section Editors: Multi-record drag sorting is now supported for quickly re-ordering tables - Sending Mail: Switched to PHP Mailer v6.8.1 (instead of Swift Mailer) MINOR CHANGES & BUG FIXES - Debugging Info: Added additional .htaccess check for mod_security to help identify server restrictions - Code Cleanup: Removed Suhosin detection and workarounds, as they're no longer widely used - Code Generator: Resolved error: Undefined array key "function" - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** September 2, 2023 - Version 3.61 (Maintenance Release) SERVER REQUIREMENTS: PHP 8.0+ and MySQL 5.5+ MINOR CHANGES - CMS Record List: Record lists now show in stacked format for small screens (<768px) - see /3rdParty/clipone/css/main-small.css - Developer Log: Filepath report now summarizes errors by line number and provides a "clear" link - Server Info: "Admin > General > Server" now displays server uptime as days since "Last Rebooted" - CMS Setup > Section Editors: Table row count and disk size now displayed as columns - CMS Record List: You can now shift-click to select a range of checkboxes - Permalinks Plugin: searchMultipleTables() now returns a permalink field if it's set (requires Permalinks v1.11) - Programmers: New function: isMac() to detect macOS servers - Programmers: New functions: errorlog_lastError() & error_get_last_message() for getting last error message - Programmers: Added data-label="column title" to each in CMS record lists - Added no-cache headers to CMS pages to prevent caching - Menus: Renamed "Background Tasks" to "Scheduled Tasks" BUG FIXES - Maintenance: Removed legacy MySQL library support (mysqli used since PHP 7) - Maintenance: Replaced $php_errormsg references (not supported in PHP 8) - Admin > General: Fixed open_basedir warnings on some servers - CMS Record Lists: Fixed drag sorting for iPads - Cron: Updated old references to `function` column to `functionName` (previous is now MySQL reserved keyword) - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** July 12, 2023 - Version 3.60 (Enhanced Server Management & Error Tracking) SERVER REQUIREMENTS: PHP 8.0+ and MySQL 5.5+ NEW FEATURES - Server Info: "Admin > General > Server" now show some additional details about the current server - Server Changes: "Admin > General > Server" now shows change history for server components (PHP, etc) - Developer Log: New "Filepath Report" groups errors by filepath for easier debugging - Developer Log: Improved detection of source filepath and line num of errors - Developers: Added shellCommand() function to try various PHP shell execution methods and/or fail gracefully BUG FIXES - Error reporting: Fixed issue where @ silenced variables will still returning errors - Default Data Files: Updated defaults to: ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - mysql_escape now properly escapes backslashes ("\") so they match in searches - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** June 2, 2023 - Version 3.59 (PHP 8 now required) SERVER REQUIREMENTS: PHP 8.0+ and MySQL 5.5+ MINOR CHANGES - Server Info: "Admin > General > Server" has been updated to display more info about server - Server Info: "Admin > General > Server" now provides links for viewing MySQL status and variables - Backups: CMS Backups are now created as temp files and renamed on completion to prevent partial backups on error - Translations: Added some additional text to the translation system - Viewers: date searches now work with special createdDate and updatedDate fields - Languages: Made some additional text translatable BUG FIXES & CODE UPDATES - MySQL 8 Support: Renamed _cron_log table column "function" to "functionName" (reversed name) - Database: Fixed bug where MariaDB 'null' defaults in backups couldn't be restored in MySQL - Swift Mailer: Fixed some additional PHP 8.x warnings and errors. - Fixed minor bug in SVG detection causing false positives in non-SVG images - Developer Log: Removed Symbol Table as PHP 8 set_error_handler() function no longer supports it - Libraries: Updated HTML Purifier from 4.14 to 4.15 - Remove /3rdParty/PHP_Compat/ PHP compatibility libraries that aren't required with PHP 8 - Prevented "Erase" button from appearing on Single Record Sections where it's not functional. - Updated CA Root Certificates in /3rdParty/cacert.pem - used by curl_ functions. - Additional PHP 8.x support fixes - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** March 17, 2023 - Version 3.58 (Maintenance Release) SERVER REQUIREMENTS: PHP 7.3+ and MySQL 5.5+ MINOR CHANGES - Security: Added .htaccess code to prevent it from being loaded in a frame (to prevent clickjacking) - Developer Log: Optimized memory usage to prevent memory limit errors when listing many error records - Performance: Optimized getRecords() to load results faster in many cases (by replacing SQL_CALC_FOUND_ROWS) - Programmers: getEvalOutput() now returns errors instead of halting execution. See function header for details BUG FIXES - Fixed PHP 8 transparent image error that returned imagecolorsforindex(): Argument #2 ($color) is out of range - Added workaround for Maria 10.5.16 where COLUMN_DEFAULT of NULL is instead of an empty string for text columns - Separator fields: Fixed PHP 8.2 error: Deprecated: Creation of dynamic property SeparatorField::$order is deprecated - Additional PHP 8.x support fixes - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** September 26, 2022 - Version 3.57 (Maintenance Release) SERVER REQUIREMENTS: PHP 7.3+ and MySQL 5.5+ MINOR CHANGES - Restoring databases on install now uses incremental restore to support large backups BUG FIXES - Additional PHP 8.1 support fixes - Patched issue where emails would sometimes be received as raw HTML with PHP 8 - Fixed issue where cms admin searches for zero would return be ignored - Misc code, security and other minor improvements. ------------------------------------------------------------------------------- *** March 22, 2022 - Version 3.56 (PHP 8.1 Support) SERVER REQUIREMENTS: PHP 7.3+ and MySQL 5.5+ - NOTE: Some plugins may need to be updated when upgrading from v2.xx NEW FEATURES - PHP 8.1 Support: Updates to support PHP 8.1 - License updates: Removed license key requirements for white-label branding - WebP Support: Added default plugin for converting media files to webp MINOR CHANGES - License: Updated license agreement to remove references to registration and licence keys - Updated jQuery to 3.6.0 BUG FIXES - Misc media library bug fixes - Misc Code and other minor improvements. ------------------------------------------------------------------------------- *** Note: Only release dates and server requirements are listed for older versions. - Nov 10, 2021 - v3.55 (PHP 8 Support) - Requires: PHP 7.3+ and MySQL 5.5+ - Oct 29, 2020 - v3.54 (Media Library Beta) - Requires: PHP 7.2+ and MySQL 5.5+ - Aug 12, 2019 - v3.53 (Maintenance Release) - Jul 26, 2019 - v3.52 - Requires: PHP 7.1+ and MySQL 5.5+ - Apr 11, 2019 - v3.51 (PHP 7 Upgrade) - Requires: PHP 7.0+ and MySQL 5.5+ - Dec 18, 2018 - v3.50 (Free Version) - Sep 17, 2018 - v3.15 (Maintenance Release) - Aug 22, 2018 - v3.14 (HTML5 Multi-File Uploader) - Feb 20, 2018 - v3.13 (Maintenance Release) - Dec 5, 2017 - v3.12 (New multi-select pillbox field) - Nov 6, 2017 - v3.11 (User Requests) - Jun 16, 2017 - v3.10 (Maintenance Release) - May 8, 2017 - v3.09 (PHP 7 Support) - Feb 24, 2017 - v3.08 (New Server Requirements) - Requires: PHP 5.6+ and MySQL 5.5+ - Dec 7, 2016 - v3.07 (Upgraded WYSIWYG Editor) - Aug 25, 2016 - v3.06 (CMS Menu Icons and Thumbnail Cropping) - May 26, 2016 - v3.05 (Free "Powered By" Version) - Apr 26, 2016 - v3.04 (Maintenance Release) - Apr 20, 2016 - v3.03 (Collapsible Separators & PHP 5.5) - Requires: PHP 5.5+ and MySQL 5.0+ - Feb 3, 2016 - v3.02 (Maintenance Release) - Requires: PHP 5.4+ and MySQL 5.0+ - Jan 20, 2016 - v3.01 (Maintenance Release) - Jan 8, 2016 - v3.00 (Responsive UI) - Requires: PHP 5.4+ and MySQL 5.0+ - Apr 8, 2015 - v2.65 (Maintenance Release) - Requires: PHP 5.2.4+ and MySQL 5.0+ - Feb 17, 2015 - v2.64 (Universal Error Logging) - Sep 3, 2014 - v2.63 (Maintenance Release) - Jul 15, 2014 - v2.62 (Security Enhancements) - Feb 19, 2014 - v2.61 (Security Update) - Feb 13, 2014 - v2.60 (Field Editor enhancements) - Apr 4, 2013 - v2.53 (Development Server Enhancements) - Mar 18, 2013 - v2.52 - Feb 7, 2013 - v2.51 (Security & Maintenance Updates) - Dec 5, 2012 - v2.50 (Language & Translation Features) - Requires: PHP 5.2.4+ and MySQL 5.0+ - Sep 1, 2012 - v2.17 (Maintenance Release) - Aug 28, 2012 - v2.16 (Speed, Mail, and Usability Improvements) - May 7, 2012 - v2.15 (New Code Generator) - Dec 27, 2011 - v2.14 (Maintenance Release) - Oct 27, 2011 - v2.13 (Maintenance Release) - Aug 24, 2011 - v2.12 (External Menus) - Jul 7, 2011 - v2.11 (Maintenance Release) - Jun 30, 2011 - v2.10 (Faster Server Moves) - May 31, 2011 - v2.09 (Relative Upload Paths) - Apr 20, 2011 - v2.08 (Security Enhancements) - Feb 3, 2011 - v2.07 (Preview Button) - Sep 9, 2010 - v2.06 (Maintenance Release) - Jul 6, 2010 - v2.05 (View Menus) - Apr 27, 2010 - v2.04 (Viewer Pseudo-fields) - Mar 1, 2010 - v2.03 (Related Records) - Jan 26, 2010 - v2.02 (Multi-File Uploads & Viewer Enhancements) - Dec 14, 2009 - v2.01 (Date Field Enhancements) - Dec 4, 2009 - v2.00 (New User Interface) - Sep 25, 2009 - v1.36 (Bug Fix Release) - Sep 23, 2009 - v1.35 (Plugin Enhancements) - Sep 16, 2009 - v1.34 (Backup & Restore) - Aug 24, 2009 - v1.33 (Menu Enhancements) - Aug 4, 2009 - v1.32 (My Account Menu) - Jul 6, 2009 - v1.31 (Bug Fix Release) - Jul 3, 2009 - v1.30 (Advanced Editor Search Filters) - Jun 16, 2009 - v1.29 (Demo Mode Support) - Apr 8, 2009 - v1.28 (Plugin System Enhancements) - Feb 24, 2009 - v1.27 (Maintenance Release) - Feb 2, 2009 - v1.26 - Jan 30, 2009 - v1.25 - Jan 20, 2009 - v1.24 - Requires: PHP 4.3.2+ and MySQL 4.1.7+ - Nov 6, 2008 - v1.23 - Aug 15, 2008 - v1.22 - Aug 14, 2008 - v1.21 - Jul 14, 2008 - v1.20 - Jul 10, 2008 - v1.19 - Jun 26, 2008 - v1.18 - Jun 5, 2008 - v1.17 - Jun 5, 2008 - v1.16 - May 6, 2008 - v1.15 - Apr 18, 2008 - v1.14 - Apr 16, 2008 - v1.13 - Mar 21, 2008 - v1.12 - Mar 20, 2008 - v1.11 - Mar 3, 2008 - v1.10 - Jan 24, 2008 - v1.09 - Jan 19, 2008 - v1.08 - Requires: PHP 4.3.0+ and MySQL 4.1.7+ (lowered requirements) - Jan 10, 2008 - v1.07 - Jan 3, 2008 - v1.06 - Dec 19, 2007 - v1.05 - Dec 10, 2007 - v1.04 - Requires: PHP 4.3.0+ and MySQL 5.0.15 (lowered requirements) - Dec 3, 2007 - v1.03 - Nov 30, 2007 - v1.02 - Nov 26, 2007 - v1.01 - Nov 21, 2007 - v1.00 (First Release) ------------------------------------------------------------------------------- *** NOTE: NEW ENTRIES ARE LISTED AT THE TOP ***