Changelog
-
March 17, 2025
- v2.2.9
- Errata #2 (June 10, 2025): More PHP8.4 fixes, updated FontAwesome 5 Free to 6 Free, fixed cookie issue if the CMS runs on non-standard port 80/443
- While SCHLIX CMS is currently still backward compatible with PHP 5.6 (which already reached its end of life in 2018), due to the changes in the recently released PHP 8.4, backward compatibility with PHP 5.6 may no longer be guaranteed next year.
- PHP 8.4 compatibility fix #1 session handler add ReturnTypeWillChange while maintaining PHP 5.6 backward compatibility as session_set_save_handler() with more than two arguments are deprecated
- PHP 8.4 compatibility fix #2: Implicitly nullable parameter declarations deprecated in skins library
- Fixed - minor issue with search box type (button vs submit)
- Updated - Mesage for database error handling
- Updated - Added "php_flag short_open_tag off" in .htaccess
- Updated - PHPMailer 6.7.1 to v6.9.3
- Updated - HTMLPurifier 4.15 to v4.18
- Updated - jstz 1.0.6 to v2.1.1
- Updated - Composer 1.10 to v2.20.25 (LTS). Tested on PHP 8.4 as well with E_DEPRECATED silenced.
- Updated - Bootstrap 4.6.2 to 4.6.3 with our own custom fixes.
- Updated - Bootstrap 3.4.1 to 3.4.6 with fixes from 7pro.ca.
-
January 28, 2023
- v2.2.8
- Errata #2: More PHP8.2, PHP8.3 as well as backward compatibility fixes for PHP5.6, also fixed potential SQL injection (no admin bypass, must already be logged in as admin user to exploit) when saving application alias from config, updated JQuery to v3.7.1, updated PHPMailer to v6.9.1 (February 19, 2024)
- Errata #3: Fix CVE-2023-31505
- License has been changed to GPLv3
- Updated - JQuery 3.5.3 to v3.6.3
- Updated - HTMLPurifier 4.13 to v4.15
- Updated - PHPMailer 6.2.0 to v6.7.1
- Fixed - menu link on sample data for empty website
- Fixed - missing image under contacts for the other 2 sample data
- Fixed - installation now disallow blank admin password, not allowing it to be completed
- Fixed - strftime usage for PHP 8.1 compatibility
-
June 6, 2021
- v2.2.7
- Errata #2: More PHP8 fixes, fixed issue where some language phrases weren't loaded properly, added HTML purifier v4.13 library.
- Bug fix: PHP 8.0 - the required attribute check for datepicker
- Bug fix: Config save result output invalid tag - supposed to be schlix-config:save-result
- Bug fix: Composer issue
-
January 11, 2021
- v2.2.6
- Errata #6: Fixed upgrader error for PHP8, minor PHP8 fixes (users class)
- Errata #5: Fixed cmsCurl response type, fixed gallery save function, added information about view template files (*.template.php) in Help - About page for each application/block/macro
- Errata #4: Fixed menu drag and drop, corrected email setup UI, bootstrap slideshow next/prev, fixed refresh datatable function
- Errata #3: More PHP8 compatibility fixes, UI enhancements (added some colours to tabs, changed default font to Roboto)
- Errata #2: Updated Bootstrap to v4.6.0, more PHP8 compatibility fixes
- Fixed - initial PHP 8.0 compatibility
- Updated - PHPMailer 6.1.7 to 6.2.0 for PHP 8.0 compatibility
- New (for developers) - fcookie_*, fsession_* methods (just like fget_* and fpost_* functions) to avoid warnings in PHP8
-
October 13, 2020
- v2.2.5
- Errata #5: Fixed language file issue
- Errata #4: Further fix to SameSite Cookie issue
- Errata #3: Fixed path resolve (getFullPathByCategoryID) incompatibilities with MySQL 8.0.22
- Errata #2: Fixed initial menu regeneration
- New - Major new feature - OAUTH2 email connection - Google Workspace/GSuite/Gmail, Microsoft Outlook, and Yahoo Mail.
- New - Settings/Email SEtup to authorize XOAUTH2 and test outgoing email connection
- New - included CA Bundle - path is defined in SCHLIX_DEFAULT_CA_BUNDLE constant.
- Adjustment - [Samesite Cookie = None] behaviour has been changed as per new IETF standard
- Fixed - a more descriptive AJAX error message when the user is logged out instead of just displaying 'undefined error'
- Fixed - Site Manager - error when changing SMTP SSL type
- Fixed - Initial menu base path settings
- Updated - CKEditor 4.11 to 4.15.
- Updated - Bootstrap 4.3.1 to 4.5.2
- Updated - TinyMCE 4.9.2 to 4.9.8
- Updated - CodeMirror 5.25 to 5.57
- Updated - PHPMailer 6.1.4 to 6.1.7
- Updated - Fontawesome 5.11.2 to 5.15.1
- Removed - JQuery 2.2.4, 3.2.1 and 3.4.1
-
September 1, 2020
- v2.2.4
- Enhanced - date time picker now does not automatically open unless you click the calendar icon. The previous behaviour was automatic pop-up when the textbox was selected.
- Enhanced - primary key defaults for new installation will be int instead of bigint for some tables that will for certain only hold a smaller number of data
- Enhanced - some icons now has some colours. This way it's easier to recognize the toolbar buttons
- New - responsive email template. For existing SCHLIX CMS users, you will have to specify manually whether you want to assign a master template to your email template.
- New (for developers) - double/real type for saving config value
- Note: This is the MINIMUM VERSION required to run SCHLIX CMS e-commerce extension, to be released in early October 2020
-
July 3, 2020
- v2.2.3
- Fixed menu bug to determine the current menu from URL
- Fixed custom field typo for selectbox type
- Fixed visual in the admin - tools and settings menu
- Updated - JQuery to v3.5.1
- Enhanced - backend AJAX delete is now logged
- Enhanced - Added if clause for future compatibility with PHP 8.0 since it contains 3 new functions: str_contains, str_starts_with, str_ends_with
- New - composer package installer, which can only be triggered programmatically. The command line option for direct phar execution is disabled by default.
- New (for developers) - cmsCurl and cmsXMLTool class. This is used to handle web service calls for the upcoming e-commerce extension, mostly for payment and shipping
- New (for developers) - Javascript class ___$HTML and ___$INPUT to create html string tags programmatically. SCHLIX.Util.escapeHTML now has a shortcut ___h, similar to the PHP one
-
January 17, 2020
- v2.2.2
- New: tested and compatible with PHP 7.3 and 7.4 while maintaining backward compatibilities with PHP 5.6, 7.0, 7.1 and 7.2
- All category trees in the admin view are now sorted by name/title by default.
- Fixed: dated_created was also modified when editing a blog article or a webpage item
- Fixed: breadcrumb for blog and other multi-categories
- Fixed: install script for older MySQL 5.5 (utf8mb4)
- Fixed: gallery macro "max" attribute was ignored
- NEW: Cosmetics only (non-functional) addition: URL in the virtual filename for blog and web pages app
- NEW: news template. Note that will affect the SCHLIX_INSTALL_USE_SAMPLE_DATA variable for automated installation as specified in https://www.schlix.com/documentation/v2/configuration/automated-installation.html. Value 0 or unspecified = simple pre-configured production site, 1 = newspaper/magazine, 2 = company profile.
- All get_magic_quotes function call has been removed to comply with PHP 7.4
-
October 8, 2019
- v2.2.1
- Errata #5: Updated Google Analytics block, fixed installer and site manager PHP version detection and backslash escape function, minor correction for gallery package name (comment only), HTML encoding issue for SCHLIX_SITE_NAME in the default theme.
- Errata #4: Blog category may not appear on the backend during new item creation
- Errata #4: UI layout was incorrect for the password reset form, removed the inner row/column
- Errata #4: File type checking for media manager upload
- Errata #4: Fixed zh-CN (simplified Chinese) translations
- Errata #3: fixed layout where the treeview on the left has many items exceeding the browser's viewport. The left column has a scrollbar now and the tag has been changed to the default div. This actually caused an extra scrollbar to be displayed on Firefox and it is a known issue. Fixed blog primary category not being updated after the document has been saved.
- Errata #2: fixed Fontawesome 5 iconpicker, Bootstrap 4 xui-tab
- .htaccess update - option for both multi-site and single-site to always forward to HTTPS
- New - Extension Gallery. This is an "app store" for SCHLIX where developers can showcase their extension and upload their work
- Updated - extension installation/uninstallation now requires a password
- Fixed - user history tab was gone after upgrade to v2.2.x
- Fixed - Esc key doesn't close dialog box (backend admin)
- Fixed - French translation
- Fixed - Minor bug - block and app visibility
- Fixed - Minor bug - toolbar button on smaller screen
- Fixed - Automated installer
- Fixed - Workaround for duplicate sitemap URL for html app
- Updated - better user interface for password change and email change in the administration area
- Updated - Font Awesome Free 5.11.2
- Improved: install/uninstall now requires admin password
- Improved: better user interface for user administration (change email and change password have been separated)
- New x-ui tag: accordion
-
August 17, 2019
- v2.2.0
- Errata #9: Blog - image is not being saved properly when the article is updated
- Errata #8: SSL for MySQLi (Microsoft Azure/Bitnami Stacksmith/Centos 7), web.config fix for IIS (not related to Azure fix), malformed X-UI tag in /system/apps/users/view.registration.template.php, fixed blog - unable to save category in the root blog category (always set parent ID to 1)
- Errata #7: Backward compatibility - Bootstrap 3 pagination
- Errata #7: Fixed validation error notification - if there's an error in a form, the tab will now be selected and the first input found with an error will be focused
- Errata #7: Web Pages Configuration page error message was ambiguous
- Errata #7: Blog image was not being saved properly
- Errata #6: Fixed upgrade function - WYSIWYIG categories weren't created properly
- Errata #6; Fixed upgrade function - hook_modifyDataBeforeSaveItem and hook_modifyDataBeforeSaveCategory were supposed to be in the Users class instead of Users_Admin class.
- Errata #6: Demo CDN images were not loaded properly due to IP blocking
- Errata #5: User error report - conflict with Plugin Creator when creating a new theme
- Errata #4: Further backward compatibility with MySQL prior for MySQL 5.6 - 5.7.6 - varchar(191)
- Errata #3: virtual_filename field was supposed to be 191 characters since it is utf8mb4 and indexed
- Errata #2: During upgrade, GDPR is disabled by default and thus causing redirect when the Application Manager was clicked from the backend admin
- Errata #2: During upgrade, Wysiwyg editor defaults weren't set
- New: X-UI template with x-ui tags
- New: Password hashing has been changed to use PHP's default password_hash and password_verify instead of custom generated bcrypt. The change is backward compatible.
- New: Added generic rate limiter functionalities. Currently it is used to block IP for excessive login retries, password reset, etc.
- New: utf8mb4 encoding by default
- New: URL redirection application module (with error404) under Core
- New: Custom header capability. Add a hero image effortlessly without declaring it in your class. Simply enable it with $this->has_custom_media_header = true in your class constructor
- New: Custom fields capability. Note that all custom fields will have xcf_ prefix
- New: Simple AJAX form. Code your AJAX (mixed with X-UI) and retrive input with ajxp_YourMethodName() for POST and ajxg_YourMethodName() for GET without having to declare it under the Run function. Please note that you still have to do your own CSRF check in your method
- New: Personal data request and removal (GDPR) capability. Please note that this functionality is still in BETA and should not be enabled in production website. This application is disabled by default.
- New: Base class is equipped with getPersonalDataByEmail() and removePersonalDataByEmail() for GDPR. getPersonalDataByUserID() and removePersonalDataByUserID() have also been added, however the functionality isn't used yet
- New: Gallery is now the default to replace Bootstrap Slideshow. Bootstrap Slideshow has been deprecated, however it won't be removed from /system (for older installation)
- New: Added spellchecker for TinyMCE4
- New: There are 3 new users in the demo installation (testuser1, testuser2 and testuser3). During installation, the password will be set to be the same as the admin password if the user choose Yes to the sample data question.
- New: Added 6 new languages: Georgian, Kazakh, Mongolian, as well as RTL languages such as Arabic, Hebrew and Persian. Please note that RTL support is still being worked on and that the display will be LTR for the time being.
- New: Bootstrap 4.3.1 is now included as well and you have the option to switch between Bootstrap 3 and 4 from Administration - Global Configuration
- New: companyprofile default template
- Fixed: 404 error recording
- Fixed: Meta description default
- Fixed: Search for duplicate values during save category - preventDuplicateValueInCategoryTableUnderParentCategory
- Fixed: Unique value link per category/parent id with virtual_filename. Added index on new install.
- Removed: Block userappmenus. It hasn't been in use for a long time.
- Updated: Font Awesome Free to v5.9.0
- Updated: Most of demo images have been removed and replaced with CDN links instead to reduce the installation size. Previous installation size was 14Mb and now it is less than 9.5Mb.
- Updated: Many of the core applications that don't have any frontend functionality (e.g. emailtemplate, customfield,. have been moved under the core class)
- Updated: IP address database field for the banned IP section is supposed to be 46 chars to accomodate IPv6 as well
- Breaking change: application class method getConfig() and setConfig() now refers to own application (if it's a subapplication). Previously, this fetched the value of the master class config. To get the value of master config, use getMasterConfig() and setMasterConfig() instead
- KNOWN ISSUE: Upgrading the CMS with auto-update will yield an AJAX error at the end because \App\CronScheduler has been renamed to \App\Core_CronScheduler and this is unavaoidable, however the error can be safely ignored.
- KNOWN ISSUE: GDPR (Personal Data Request): removal is currently automated and should not be the case. Therefore, we recommend to keep this application disabled in the configuration section for the time being until there's an approval application module (coming soon)
- KNOWN ISSUE: Contact message has custom field enabled but this won't be displayed on the admin view yet. The data from input is already stored in the database.
- KNOWN ISSUE: This release of SCHLIX CMS is no longer compatible with Internet Explorer 11 (legacy Trident) due to ES6 use in the frontend as well. We recommend that users use Internet Explorer Edge 15 or above.
- KNOWN ISSUE: There are some API inconsistencies in terms of URL routing for AJAX as the 2.2.x releases will be transitional. We need to maintain backward compatibilities with older versions.
- KNOWN ISSUE: Conversion to utf8mb4 on existing tables must be handled manually. Please note that on MySQL version 5.7.6 and earlier as well as MariaDB version 10.2.1 and earlier, which is still the case on many older hosting platforms, the varchar(255) table exceeded the max for indexing, so it needs to be trimmed to varchar(191). See reference: https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_large_prefix and https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/innodb/innodb-system-variables/#innodb_large_prefix,
- TODO: OAuth for PHPMailer (use case: GMail)
-
May 3, 2019
- v2.1.9-1
- Fixed: Media Manager bug
-
May 1, 2019
- v2.1.9-0 Beta
- Fixed: duplicate virtual filename check
- Fixed: checkbox group in admin does not return any value if everything is left blank
- New: Admin theme
- Updated: TinyMCE to v4.9.2
- Updated: Bootstrap to v3.4.1
- New: Hosted OpenStreetMap, You no longer have to fill in Google Maps API Key for the Contacts app since it's now using OpenStreetMap tile server hosted at SCHLIX. It's provided free of charge.
-
Nov 20, 2018
- v2.1.8-1 Stable
- New: ___u function to encode URL
- Change: getDataFileURLPathWithHash and getDataFileURLPath are now automatically URL-encoded
- Fixed: count WARNING in PHP 7.2 - please use ___c($array) instead
- Fixed: file upload function image type check
- Errata #7: Fix for non-suphp scenario
- Errata #6: fixed file permission autofix
- Errata #5: fixed a minor bug in the automated security check (from Errata #4)
- Errata #4: Media Manager was not loading properly after upgrade
- Errata #3: invalid count function in upgrade
- Errata #2: automated security fix ran immediately after the upgrade, should've been when they went to the main admin
-
Sept 15, 2018
- v2.1.8-0 Stable
- Updated: JQuery 3.2.x to 3.3.1
- Updated: Font Awesome 4.7 to 5.2.0 (free) with adblock compatiblity
- Updated: TinyMCE 4.8.2
- Updated: PHPMailer 6.0.5
- Updated: Bootstrap 3 update (now compatible with JQuery 3.x). We're still working on Bootstrap 4 update
- Fixed: Applications built derived from cmsApplication_Basic missing title during install
- Fixed: Block instance configuration was being saved incorrectly if the title was not all in lowercase or contain non-ASCII characters
- Fixed: Forgot password link on HTTPS website didn't display for the full URL
- Fixed: Menu editor (backend) duplicate tree child item when clicking View a specific item/category
- Fixed: Compatibilities with PHP 7.2
- Enhancement: The method \SCHLIX\cmsPageOutput::HTMLHeader() can now be split into \SCHLIX\cmsPageOutput::HTMLHeaderNonScript() and \SCHLIX\cmsPageOutput::HTMLFooterScripts(). See the samplemagazine theme for more info
-
December 3, 2017
- v2.1.7-2 Stable
- Fixed: CSS on installer page
- Fixed: Dropdown box CSS not visible on Chrome
- Fixed: Slideshow ~ ensure data directory exists before upload
- Fixed: Slideshow ~ drag and drop (1st item)
- Fixed: Blog ~ drag and drop (1st item)
- Fixed: Menu block ~ added block name in front of id (e.g. block_topnavigation_id-1) to handle a case where some themes use more than one block in one page
- Enhancement: Frontend edit control now shows Options instead of just icons for better visibility
-
November 6, 2017
- v2.1.7-1 Stable
- Fixed: URL for content fragments will be set to / instead of /lp if the frontend application is set to Landing Pages
- Fixed: "Read the Announcement" link in SCHLIX Updater links to the local website instead of https://www.schlix.com (minor bug)
- Enhancement: UI visual improvement - clicked tree will now be highlighted
- Enhancement: Contact form is now using fully AJAX so it can be inserted in the middle of the content.
- New: Backend theme has been set to dark by default. Light theme will be available as user-replaceable admin theme where they can customize the logo
- New: Added getGenericAttributesFromText method to the base cmsMacro class so the derived class can reuse it.
- New: InsertContactForm macro to embed contact form in the middle of any content text
- Updated: Macedonian and Indonesian translations
-
September 17, 2017
- v2.1.6-4 Stable
- Errata #5 - October 2, 2017 - Fixed the session handler bug with PHP v7.1.x (tested under MacOS High Sierra with PHP 7.1.7).
- Errata #4 - September 23, 2017 - Softaculous team has reported that the errata #3 caused an error on one of the configuration on Apache 2.4 running PHP 5.5. For the time being the pre-compressed UI and CMS Javascript will be disabled.
- Errata #3 - September 21, 2017 - apparently on some hosting servers the .js.gz files would not load properly. Fixed WYSIWYG configuration editor that would not load. Also modified .htaccess, added more examples of how to redirect all traffic to SSL. Added .htaccess rule on how to handle DCV (domain control validation) for SSL.
- Errata #2 - September 18, 2017 - renamed SAFE_HTML to ___h for convenience and set SAFE_HTML function to be deprecated, added ___h to all $id admin form just in case. Also default application frontpage was blank if the default was set (correction to visual feedback only, no change in mechanism)
- Fixed: blog URL could be empty when saved
- Fixed: typos in the language string
- Fixed: tags resulted in 404 errors
- Fixed: new macro/block installation did not refresh the content immediately and would not show up until the next reload
- Fixed: duplicate tags in applications table during upgrade
- Fixed: adding www during installation caused www.www to be written in the multisite-config file
- Removed: default site meta keywords and meta description from the sub-site config file (moved to inside individual applications)
- New: ability to change language and other site information from the main admin page
- New: languages (Belarusian, Bulgarian, Chinese Simplified and Traditional, Croatian, Czech, Danish, Dutch, Estonian, Filipino, Finnish, French, German, Greek, Hindi, Hungarian, Icelandic, Indonesian and Malay, Italian, Japanese, Korean, Macedonian, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese. A few languages including all Right-to-Left (RTL) languages are excluded for the time being.
- Enhancement: add some icons to item edit form for Blog and Web Pages for better visual cues
-
Aug 7, 2017
- v2.1.5-1 Stable
- Fixed: Form action URL in create new user group
- New: Added JSON feed to Blog app
- New: Added OpenSearch to Search app
- New: Added JSON feed, RSS feed, and OpenSearch link in the HTML header of the default sample themes (both samplemagazine and html5demo)
- New: formatDateTime added to the Javascript base classes, in addition to formatDate for the table listing
- Refactored: Template view now uses trait instead of defined in class one by one
- Fixed: Blog content scheduling disregard the field date_available
- Fixed: On WAMPServer 3, schlix-cms.min.gz and schlix-ui.min.gz would load with incorrect encoding with Firefox 54
- Fixed: CodeMirror CSS won't load correctly for the standalone editor
- WONTFIX: WAMP server do not have certificate authority file correctly installed, so CURL cannot perform automatic update, read news, etc. To solve this, download https://curl.haxx.se/ca/cacert.pem manually, place it in C:/WAMP64 (or C:/WAMP for old 32-bit system) and add the following line to your php.ini: curl.cainfo="C:/WAMP64/cacert.pem"
openssl.cafile="C:/WAMP64/cacert.pem"
- Note: Windows/Apache/MySQL/PHP stacks (EasyPHP, XAMPP, WAMP Server), Apache process would crash when loading any large config.template.php file. The solution is to add ThreadStackSize in your httpd.conf as described in https://www.schlix.com/documentation/v2/configuration/troubleshooting-wamp-easyphp-xampp.html. You cannot add this in your .htaccess file, it must be in httpd.conf
-
July 4, 2017
- v2.1.4-1 Stable
- Enhancement: Installer option: add www to the domain as well
- Enhancement: Installer option: add option for HTTPS by default
- Fixed: TinyMCE adds empty paragraph block due to p_forced_root_block and p_force_newline settings
-
June 15, 2017
- v2.1.3-1 Stable
- Fixed: Email template will send nothing if there's no variable declared
- Fixed: Email queue gets another field for more accurate hourly mail calculation
- Fixed: CRON scheduler not recognizing available static methods in subsite directory, only system
- Fixed: CodeMirror CSS directory was incorrectly named as themes
- Fixed: After installation, set all directory as user-writable
- Updated: TinyMCE to v4.6.4
- Enhancement: Added more options to TinyMCE
-
May 15, 2017
- v2.1.2-1 Stable
- Fixed: General drag and drop
- Fixed: Menu item could not be dragged (Menus)
- Fixed: Menu status could not be changed (Menus)
- Fixed: Macro config was not returned correctly and thus saved macro config was not executed
- Fixed: Search button in /search was not coded properly
- Fixed: Double notification after extension installation was fixed
- Fixed: Backend datatable rows per page Javascript event was not firing properly
- Fixed: PHP7 only - preg_match_all PREG_JIT_STACKLIMIT_ERROR while loading config file
- Updated: TinyMCE to v4.6.1
- Enhancement: File upload now detects max server upload size (Media Manager, Bootstrap Slideshow) before the files are sent
- Enhancement: Media manager will sort by directory first
- Enhancement: Backend search function in all applications
-
April 12, 2017
- v2.1.1-1 Stable
- Fixed: blog RSS image not showing up with https URL
- Fixed: toolbar button in the administration didn't show up on mobile devices (tablet, phone)
- Fixed: administration listing resizer was working incorrectly on monitors less than 1920 x 1080
- Fixed: administration editor textarea wasn't saving properly for codesample plugin
- Fixed: system fonts path were incorrect
- Fixed: search result was not loading correctly after initial search page
- Change: WYSIWYG Editor now contains profile. The purpose is a distinct profile for different user groups or different application
- Update: Applications submenu now shows the application description instead of its virtual filename
- Update: CodeMirror is now available as a standalone editor
- Update: blog RSS image (the individual one, not in the description) will show up as thumbnail
- Update: Sitemap XML now correctly prioritize pages
- Update: Web Pages and Landing Pages will no longer show application description in the title (e.g. Page Name - Web Pages)
- Update: CKEditor to v4.6.2
- Update: CodeMirror to v5.25
- Added: Open Sans Light, Source Sans Pro ExtraLight and Source Sans Pro Light
- Removed: Included fonts in SVG (for legacy iOS) and EOT format (for IE9 and below).
- March 3, 2017
- v2.1.0-2 Stable
- Fixed UTF-8 URL recognition
- March 2, 2017
- v2.1.0.1 Stable
- Major change: blog component is now improved, with intro/detail image options available
- New: multi-category for blog
- New: blog intro (summary) and detail (description) image
- New: samplemagazine theme
- New: blog archive block
- New: menu divider and submenu placeholder
- New app: tag application
- New app: landing page
- New: better sample data
- Update: TinyMCE 4.5.0 to 4.5.4
- Update: TinyMCE default configuration media_dimensions set to false because it keeps interfering with responsive images
- Fixed automated installer gk_menu_item path as suggested by Softaculous tester.
- Tiny Fix - UTF-8 filename parsing
- January 10, 2017
- v2.0.7 Stable
- Very minimal bugfix release and only applies to ISPConfig 3-based install
- Revamped installation screen
- Modified SCHLIX_SERVER_PATH, SCHLIX_ROOT_PATH and SCHLIX_SITE_HTTPBASE due to conflict in ISPConfig based hosting due to symlink
- v2.0.6 Stable
- Fixed install port issue in Docker
- Fixed schlix-config configuration parsing
- Added capability to change backend theme
- January 4, 2017
- v2.0.5 Stable
- Fixed multiple file upload function in BoostrapSlideshow app
- Fixed Invalid CSRF verification error when clicking a new item in Site Manager
- Fixed Mediamanager get/setLocalStorageItem (was NaN)
- Upgraded PHPMailer to 5.2.21
- December 23, 2016
- v2.0.4 Test
- Not released publicly, internal testing only
- Added auto-installer
- December 13, 2016
- v2.0.3 Stable
- New: frontend edit control allows you to visualize block and edit article from the frontend (please activate it from Macros if you are upgrading from a previous version)
- New: new tag schlix-config:meta_options for config file
- New: user avatar can now process animated GIF
- New: you can now change the main application for frontpage to anything other than html
- New: HTMLHeader adds a shortcut method to call JAVASCRIPT_JQUERY2 and JAVASCRIPT_JQUERY3
- New: core CMS updater also appears on the first load and automatically checks every 3 days. This option is configurable as well in the Global Configuration
- New: Added temporary directory
- Improvement: reduced number of SQL queries generated from system scheduler
- Improvement: default item, category, and main page options in the configuration file. It is now uniform accross all cmsApplication classes
- Fixed: user avatar thumbnail generation
- Fixed: datetime picker layout and colours
- Fixed: Theme installation should always set the status to 1
- Fixed: Transparent PNG thumbnail generation
- Fixed: Pagination had an extra space, making it problematic when using Semantic UI 2
- Fixed: Box borders of hidden columns in datatable were still visible
- Fixed: Blocks parameter was incorrectly swapped when calling Macros
- Update: JQuery 2.1.4 to JQuery 2.2.2, also added JQuery 3.1.1
- Update: Bootstrap 3.3.5 to 3.3.7
- Update: TinyMCE 4.3.12 to 4.5.0 and other plugins
- Update: CKEDitor 4.5.8 to 4.6.0
- Update: Font Awesome to 4.7
- Deprecated getSortableItemFields becomes getSortableItemColumns (old method kept for compatibility purpose)
- Deprecated getSortableCategoryFields becomes getSortableCategoryColumns (old method kept for compatibility purpose)
- Deprecated getItemMetaOptions becomes getItemMetaOptionKeys in html's parent class (old method kept for compatibility purpose)
- Deprecated getCategoryMetaOptions becomes getCategoryMetaOptionKeys in html's parent class (old method kept for compatibility purpose)
- Global: If the page title has the same name as application description, only one will be added to prevent duplicate (setPageTitle)
- November 20, 2016
- v2.0.2 Stable
- Fixed theme installation
- Blocks - You can now create a new block item without having to copy and paste (Blocks Administration)
- Blocks - you can create a folder with _ (underscore)
- Users - fixed sort by username (reported in the forum)
- November 10, 2016
- v2.0.1 Stable
- Fixed config file save during install - will be erroneous if it contains a single quote in the email sender
- Fixed updater version comparison
- Fixed upgrade email queue table didn't have the store folder field
- Fixed log archiving function that can cause out of memory and locked system scheduler function
- Added header so IE11 won't think it's IE7 (it's IE11 bug)
- Added a javascript validation for user registration to reduce spam
- TODO: Bootstrap Slideshow - upload file bug
- October 28, 2016
- v2.0.0 Stable
- Fixed IIS settings
- Fixed multiple bugs in PHP7
- Revised config.inc.php generation, now uses forward slash only (/) for all directory separartors, regardless of OS
- Fixed media manager (Windows only)
- Fixed file and image list for TinyMCE in Windows Server
- Site path and base would result in error if the user copies to and from Windows and Linux
- Correctly displays font icon in the menu
- September 29, 2016
- v2.0.0 Release Candidate 2
- Fixed 404 error not showing properly
- Fixed media manager not showing pagination and subsequent page
- Fixed default tab showing meta in HTML app
- Sitemap will use date created if date modified is null
- Fixed menu category listing in the backend that did not correctly display upon the first load until a category was clicked
- Fixed user account modification notification email that did not include full site URL
- September 5, 2016
- v2.0.0 Release Candidate
- Fixed WYSIWYG editor not saving properly with AJAX post
- Fixed pagination
- Fixed setLocalStorage bug in the admin main view
- Fixed home folder not being draggable upon the first load
- Fixed default sort issue
- August 23, 2016
- v2.0.0 BETA 5
- Added displayarticlemeta macro
- Added user avatar
- Simplified view.item, view.category.nested, and view.category.simple view templates
- August 17, 2016
- v2.0.0 BETA 4
- Fixed Admin frontpage not showing incoming messages
- Fixed Bootstrap Slideshow
- August 13, 2016
- v2.0.0 BETA 3
- Cosmetic Editor Changes
- Reduce table column caching to 3 minutes from 30 minutes
- Fixed some error messages
- August 4, 2016
- v2.0.0 BETA 2
- Final stable API for v2.x
- Reduced query usage per page
- Added hook for item save validations
- Rewrote users backend functions
- All Javascript classes now use Ecmascript 6 class syntax
- Modified SCHLIX UI's Ajax to use the new FormData API for efficiency
- Fixed email queueing function
- July 21, 2016
- v2.0.0 BETA
- Fixed category edit error
- Typo prevented 404 errors from being logged
- Final code refactor
- Template fixes
- A few UI fixed in the backend
- PDO-style parameterized query
- UI fixes in Media Manager
- July 11, 2016
- v2.0 - Major change.
- Multi-site capable (database content must still be separated).
- TODO: communication between sites using JSON data transfer
- Slideshow and sitemap is now integrated to the base component
- Multiple WYSIWYG editors (not just TinyMCE)
- Removed TinyMCE 3 and updated it to v4
- Separated system and user content to make upgrading easier
- Everything in /system should not be modified by the user
- Overrides in /web/{sitename}/apps or blocks or themes
- Uses Schlix UI as the base for the administration
- Default admin theme uses Twitter Bootstrap 3.3.6
- Refactored everything to use namespace \App, \Macro, or \Block
- Filter is now called Macro
- New mediamanager
- Better email queue handling for large email distribution (preparing for a newsletter component).
- No longer stores email data in the database
- updated phpmailer to new version
- updated securimage to new version
- New way of language file handling using ___('') instead of constants defined in language file. This is still in progress
- Google Maps requires API as of June 26, 2016. Added config key
- Old directory structure /admin has been changed to just using a single directory so all apps/blocks/macros can be easily developed without the hassle of going back and forth between those directories.
- Added font awesome, Open Sans, and Source Sans Pro in /system/fonts
- Added EU/UK Cookies module
- DBconfig is now RegistryConfig
- Server-side tag for config to make it easier for configuration. e.g.
<schlix-config:textbox config-key='str_block_title' label='<?= ___('Header Text') ?>' class='form-control' / >
- Old deprecated functions can no longer be applied
- Old methods displayPage, displayBlock, displayBlockByPosition has been moved to class cmsPageOutput. See html5demo for samples
- runtime.inc.php is the main runtime so if there's a need to include SCHLIX CMS from another software it is easily customizeable
- All developments hve been moved to a new repository using Phabricator.
- May 25, 2013
- Refactored the Installer - this was the oldest code and was not our focus.
- There is still some todo to remove legacy codes on the installer (convert the code from mysql to mysqli).
- May 19, 2013
- Fixed mediamanager - now deletes folder properly
- Fixed mediamanager - file upload label was incorrect
- May 12, 2013
- New: bannedip filter
- Fixed: getApplicationAlias
- Contacts: added display Map option (Google Map only for now - will add Bing & OpenStreetmap later)
- NEW: guid column so we can have versioning and team check in/out for collaboration. The versioning app was already available and will be released soon but there's not enough testing to release it for public
- TODO: Rethinking the basicApplication
- Add namespace in the future but PHP namespace isn't really likeable.
- micro ORM for each table, instead of specifying $table_items, $table_categories, each application should have $table['items'] and with property that will be mapped so we can do something like
- $this->table['items']->UPDATE(....) ...
- April 26, 2013
- New: httperror.class.php app
- Fixed: when setting an application alias (SEO friendly), it will also check it against folder and file names to ensure that there is no conflict
- Contacts: Added Application description in the config file
- Media Manager: detect if there is a change in the file (added, deleted, etc) so less need to click Refresh
- Feb 16, 2013
- Updated to v1.2.5
- Enhanced the CRON scheduler
- No longer using SHA1 for password veritifcation - now uses BCrypt but it's backward compatible so old users can still login.
- Datatype for the permission_???? columns have been changed from varchar(xxxx) to TEXT and summary & description by default is MEDIUMTEXT
- Jan 20, 2013
- Updated TinyMCE
- Breadcrumb ordering was reversed
- Retains compatibility with BabyGekko CMS (some functions and global variables have been renamed)
- November 6, 2012
- HTBridge Advisory HTB23122
- Email queue system. All outgoing mails are logged.
- November 4, 2012
- Updated from mysql to mysqli as mysql extension is deprecated. Database class is now extended from MySQLi.
- Added Cron Scheduler that works on both UNIX (Linux, Mac OS X, BSD) and Windows. We need this before we can proceed and build a more robust forum, e-commerce, commenting system, etc.
- New tables:
- gk_log_items
- gk_cronscheduler_items
- gk_cronscheduler_logs (must be separated, cannot be merged with gk_log_items) for performance reasons. The scheduler always checks this log so it's important.
- Added System Log by default in basicApplication
- Table gk_error_items is no longer in use - now use gk_log_items
- Added isAjaxRequest() and isPostBack() to make it easier for programmers who are already familiar with ASP.NET
- Deprecated items have been moved to deprecated.inc.php
- More detailed system info under "System Info" tab when the user logs in
- Refactor
- gekko_current_user -> CurrentUser
- gekko_current_admin_user -> CurrentAdminUser
- gekko_db -> SystemDB
- gekko_errorlog -> SystemLog
- gekko_config -> SystemConfig
- October 20, 2012
- Updated HTBridge Advisory - users.class.php - forgot to use sanitizeString in one method and it became a point for SQL injection
- July 19, 2012
- TODO - Add Strict-Transport-Security for HTTPS enabled pages
- Enabled IPv6 as per Microsoft's testers
- Enabled installed notification after 3rd party app/filter/block upload. Not template yet.
- June 19, 2012
- Fixed hang in the datatable (sort direction = null)
- Uses DirectoryIterator instead of opendir
- June 17, 2012
- Fixed a tiny bug in code generation for INPUT:RADIO_GROUP in html.inc.php
- Update to TinyMCE 3.5.2
- Option in the Menu Configuration --> human readable CSS id
- Add: featured, searchable, version (also copy the versioning system from client project)
- June 6, 2012
- Fixed Media Manager for Windows
- June 5, 2012
- TODO - Add placeholder in admin login
- TODO - tab default color
- Fixed color for tinymce popup window
- Fixed TinyMCE load correct CSS
- May 29, 2012
- Added backward compatibility for FIELDSET with deprecated warning message
- Fix - admin for anything less than IE9 - html5.
- Fixed mobile device detection for template selection (add IPad as well but didn't set it to mobile)
- Fixed - saving a user changed the username !!!
- Fixed - uploading a new block item now correctly puts it in the current category (of where the admin currently is)
- Enhancement: if the item/category title in the admin is longer than 40 characters then trim it and add ellipsis
- May 26, 2012
- Fixed mobile template detection
- Fixed default blog sort in the backend
- Fixed the Media Manager - now correctly list all the files in all folders and no more .DS_Store trash get listed (Mac OS X)
- Now app/block/filter can load language file and template file from the current frontend template
- Updated to TinyMCE 3.5.1.1
- May 6, 2012
- Not-so-important update - TinyMCE 3.5 (from 3.4.9)
- Added option so user can just add their own custom tiny mce script - tinymceinit_custom.js.php in /js
- HTML5 schema for tinymce as well
- When user saves a field during datatable operations, it no longer incorrectly resets the page to the first page.
- April 13, 2012
- New feature: account activation by email
- Combined admin.js and schlix.js and merge it into one
- More CSRF protection implemented for some of the AJAX part
- Captcha in activation as well
- Fixed UTF-8 search display (mb_substr)
- Removed $onload from each script in admin/apps
- On the Javascript side, you can extend from let's say blog.js or html.js etc since the $onload is removed and replaced with $start_ajax_app
- Install all filter/block/app in one zip
- Checkbox not saving in Filter Config
- New: Case insensitive username
- New: login by email
- New: activation_string for new user registration
- New: Email template, customizable from the backend
- New: HTML5 backend
- Using PHPMailer now by default
- Fixed the Image Manager
- Fixed - 6 XSS vulnerabilities - input validation - credit to Zero Science Lab
- Fix Drag and Drop with multiple app
- Fix Menu Item Display in Admin
- Fix nested tree rendering error
- Auto Cleanup Session
- BasicLinearData – header click hang
- Block now includes language file properly in the admin section
- File Manager .DS_Store is no longer appearing there
- Block now includes language file properly in the admin section
- Checkbox not saving in Block Config
- File Manager – Added search functionality and fix listings
- Fix echo JAVASCRIPT in Admin
- Feb 19, 2012
- Implemented permission for the blocks
- Implemented permission for the frontend menu
- Option to force SSL in menu editor
- Language loading is now correct
- Admin side - now you can display more than 1 table/tree per page
- Frontend item correctly returns lastmodified in http header
- Begin - CSRF protection (incomplete still)
- Changed captcha colors so it's more visible
- Changed tinyMCE skin
- Feb 5, 2012
- Implement sorting options - displayItemsInCategories (Editor - Category)
- Enable SSL for login if SSL_ENABLED is true
- FORCE_SSL_ADMIN_LOGIN (so password won't be transmitted in cleartext)
- Check funtion saving aliases so there's no duplicate. (Server side)
- Contacts and User signup - give admin control to display captcha or not during signup/sending email message
- Changed Contacts icon, display tollfree, contact person, etc
- SortBy options in Editor
- Display default meta desc & key if empty
- Field formatting can now check its own object (subscribe event added this,true)
- Integrate Page Counter if there's 'pageview' field if the application sets 'chk_enable_pageview_stats' to 1
- When timed out in Admin session and Admin relogin, it will go to the intended page (also filtered for XSS just in case)
- When saving menu main page - add trailing slash (minor URL correction)
- Status = 1 instead of > 0 when searching for items (-99 will be reserved for deleted items)
- Main - index.php or index.html or invalid file name
- Ability to change created/modified by username in the backend for items and categories
- Beta 1 - 'password' and 'username' field in the backend
- Site Template in TinyMCE - TinyMCE will look for editor.css in the default (not mobile) template
- Blog Number of Pages overflow now correctly yields 404 Error instead of displaying the whole thing
- Site Port, Site Meta Desc, Site Meta Key
- Auto Site Meta Keywords
- Site HTTPS Auto Switch - SITE_URL is the autoswitch (also for backward compatibility)
- HTTP redirection for subfolders without trailing slash (todo: for apps)
- Backend Administration - Textarea had an incorrect image background (schlix_editor_input)
- TinyMCE reduce HTTP requests from 58 to 33 for item editor functionality
- Blocks output is now buffered
- Fixed admin session timeout
- Filters extension still needs to call DynamicConfiguration
- getListofApplicationsOrBlocks - filters.admin.class.php there's no closedir applied
- RSS - absolute path fix
- TinyMCE Image Path dropdown - better output
- Clear Cache button in the Settings menu
- Number of characters to be displayed in the main blog
- Session timeout --> admin --> access not allowed
- Contacts admin item editor not suggesting auto seo
- After editing an item in the backend, now you can go back to the page #x wherer you previously where
- Port number for installation - now accepts any port (used to be able to accept port 80 only)
- Jan 21, 2012
- Added hint/tooltips to menu items
- Microsoft tester said it's not running properly on Win2008R2/IIS7.5 ... apparently the issue was MySQL was set to STRICT mode by default. OK then, changing the install.sql now.
- Fix Filter config
- Jan 20, 2012
- Added meta_key and meta_description to install.sql
- Jan 19, 2012
- Fixed URL interpretation (app_basic - interpretFriendlyURL)
- Fixed leaked - added closedir --- filters.admin.class.php
- Added web.config for IIS configuration
- Jan 6, 2012
- Fix a minor bug in the frontend search result where it didn't include the 'summary' field
- Modified YUI Datatable color
- Added capability for frontend and backend sub-application loading
- Admin.js -> YourClass.setParentApplicationName
- Backend -> paramter appmodule
- connector.inc - include_app_subclass
- Dec 22, 2011
- Initiating a change of structure - the user class will now on be inherited from basicMultipleCategories rather than basicSimpleCategories. This change will make it easier in the future for external authentications such as LDAP & Active Directory. The use of category_id in gk_user_items is now deprecated, however, the field will still be there for compatibility with older versions.
- Dec 21, 2011
- Implemented backend permission so non-Administrator users can login and have access to certain extensions.
- TODO: Request permission to Admin user
- Dec 20, 2011
- Minor bug fix - captcha display
- Updated securimage library to v3
- Dec 13, 2011
- Minor bug fix: a block that has been specified to load on certain pages still show up on unregistered menu items
- Dec 12, 2011
- API change - getAllItems and getAllCategories and getItemsByCategoryID now have defined limits to prevent memory exhaustion. This limit can be set in includes/definitions.inc.php.
- API change - MD5 to SHA1 with salt for default user authentication. This breaks compatibility with all previous version.
- Tested with over a million rows and the backend can hold up, including the search (blog, html)
- Added pingback and page count options
- Added more index for gk_html_items and gk_blog_items tables
- Added getTotalItemCount, getTotalCategoryCount, etc.
- Enhanced frontend search
- Refreshed backend icons
- Fixed menu copy error
- added createDataArrayFromTable so you don't have to specify table definitinons (optional) in the constructor. The old createDataArray is still preferred.
- Fixed frontend pagination - now limit displayed number of pages to 10 at a time and you can customize the first, next, previous, and last symbol
- Dec 6, 2011
- Added - Blocks->getBlockCountByPosition for compatibility with another CMS
- Added getTotalChildCategoryCountByCategoryID, getTotalItemCount, etc
- .htaccess tweak to speed up admin display
- Request:
- Large data Listing Pagination, etc
- Empty Meta Description
- Implement Permission -Write / Read
- Nov 23, 2011
- Fixed admin/app/blocks - Active/Inactive for Block Position shouldn't be displayed
- Nov 22, 2011
- Fixed all SITE_PATH.SITE_HTTPBASE
- Nov 20, 2011
- DONE - Windows Live Blog Editor
- DONE - File Manager - Delete
- PENDING - File Manager - Search
- PENDING - Large data Listing - ajax?
- DONE -SQL Cache fix
- CREATE FUNCTION FOR FUTURE- Session encrypt key
- DONE - SQL_CACHE_ENABLED
- DONE - XMLRPC = temp, separate component
- DONE - Ajax Save
- Oct 20, 2011
- Added gk_session_items to install_empty.sql
- June 20, 2011
- Wrote the file manager for TinyMCE
- Fixed \ backslash thing
- Next one: XMLRPC, Comments, Blogping, then it's v1
- June 14, 2011
- Want to add
- HTML5 date pickers and whatnot to the backend
- save versions
- what's with the backslash
- Blog ping
- my own file manager
- XML-RPC
- June 11, 2011
- Enable multi-session - created gk_sesssion_items to hold sessions
- August 23,2010
- Install/Uninstall (no FTP) with ZIP file is working
- Added gk_ prefix, changed install script as well
- Fixed search engine friendly URL generation in blog and html
- August 8, 2010
- Filter visibility/filter now include filter for apps + blocks that will process it
- Fixed drag and drop
- TODO before v1
- Install/Uninstall with FTP
- Image/media manager
- Blog ping
- XML-RPC
- Verify if app/block/filter have been deleted manually
- Add gk_ prefix to all database table names
- July 31, 2010
- v0.98 release
- TITLE needs to be explicitly specified in the template now
- Removed initial install table content autonumber
- TODO
- Filter visibility
- Fix drag and drop
- Install/Uninstall with FTP
- Blog ping
- XML-RPC
- Clean up RefreshMenuLinks
- May 26, 2010
- Application alias (e.g: html -> webpages)
- Blocks - visibility can be set by menu item
- Menu - changes as the item is saved
- Filters - ok
- Templates - ok
- TODO
- Install/Uninstall with FTP
- Blog ping
- XML-RPC
- Clean up RefreshMenuLinks
- Feb 7, 2010
- Known bugs: the date editor
- Fixed permission - write & read
- JSON Error reply cleaned up
- Demo templates ok.
- Jan 31, 2010
- Contact Form
- SQL Logger
- SEF okay
- RSS, Blog
- Jan 5, 2009
- Rebuild
- TODO/* for checkboxes and radios */
- JSON Error Reply
- Clean up hardcoded directories
- Clean up id, cid references
- Enable pagination for datatable
- Correct password encryption
- Update editor to the latest version
- Blog ping, RSS, XML-RPC
- Jan 7, 2008
- Jan 4, 2008
- Oct 29, 2007
- Drag & drop works correctly, but gwp_article_1 (first item) still doesn't load
- Oct 28, 2007
EOF