SCHLIX CMS SCHLIX CMS News Schlix Tue, 07 Jul 2020 15:48:41 -0600 en-us Tue, 07 Jul 2020 15:48:41 -0600 SCHLIX CMS v2.2.3-1 is now available SCHLIX CMS v2.2.3-1 has been released. This is a minor update release that fixes a few minor bugs and typos. We are still developing the Schtore e-commerce extension (will be done in September) and this update is required before the extension can be used.

  • Some highlights:
  • Visual - menu appearance on the backend admin
  • Composer packages can now be installed (comand line option has been removed). Please note that PHAR is required
  • PHP 8.0 compatibility issue (str_contains, str_starts_with, str_ends_with)
  • 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.
    • Javascript class ___$HTML and ___$INPUT to create html string tags programmatically. SCHLIX.Util.escapeHTML now has a shortcut ___h, similar to the PHP one.
Thu, 07 May 2020 01:12:09 -0600 May 2020 update - Schtore e-commerce extension release delay and COVID-19 Greetings,

It has been a little over 3 months since we last released v2.2.2-1 in late January and we finally had the chance to provide some news. First of all, we'd like to apologize for the slower responses for forum replies as well as commercial support between February until April. Even though all of our team members have already been working remotely since 2 years ago, the "new normal" still required some adjustments. COVID-19 took us by surpise and we were scrambling for alternative arrangements for many things, so work stopped for nearly 5 weeks and hence we delayed the release of our e-commerce extension (Schtore). Things are somewhat returning to almost normal now and our response time should be better now.

We realize that everyone is in this together and that there are others who experience even more hardship, so back in April we made a small donation of $2020.04 to Boyle Street Community Service, a non-profit organization for the homeless in the city of Edmonton. Homeless people are very vulnerable in this kind of situation and deserve our help.


Schtore is our new e-commerce extension. It's quite massive (custom user-defined table fields, 127 tax rules for different countries (including EU), complete list of currencies and countries (down to the city level, user privacy features, etc). Initially, Schtore will contain the following payment plugins:

  • Paypal Express (global)
  • Braintree (global)
  • Stripe (global)
  • Alipay (China)
  • Moneris (we've only tested the Canadian version, not the US version)
  • Xendit (Indonesia) - as requested in the forum

Shipping plugins:

  • Canada Post
  • Postmen
  • Rajaongkir

There's not that many shipping modules when we release it for the first time, but Postmen should cover most of it.

We may need a volunteer who's willing to test our the EU tax rules.

Schtore Beta - screenshot 1

Schtore Beta - screenshot 2

Schtore Beta - screenshot 5

Schtore Beta - screenshot 4

Please note that this is the temporary layout. It may change once we really release this for general public availability.

Sun, 19 Jan 2020 02:16:24 -0700 Time to upgrade - SCHLIX CMS v2.2.2 has been released (now compatible with PHP 7.3 and 7.4) SCHLIX CMS v2.2.2 has been released and it is now compatible with PHP 7.3 and 7.4. With this change, SCHLIX CMS is now compatible with PHP 5.6, 7.0, 7.1, 7.2 and 7.3. Other notable changes include the newly included newspaper theme. The previously included company profile theme still exists. You can check the demo (frontend only) at Note to packagers: since it now comes with 3 sample data (newspaper, company profile, blank company profile), the parameter for automated installation has been changed. Please refer to the following article: If you have any questions, just head to the forum!

Newspaper CMS

Sat, 21 Dec 2019 01:10:31 -0700 6th revision for SCHLIX CMS v2.2.1 has been released Today we've released the 6th revision for SCHLIX CMS v2.2.1. This should be the final release for 2019. Happy New Year 2020 and we'll catch up with you next year with new e-commerce extensions and other goodies.

List of all revisions for SCHLIX CMS v2.2.1-x:

  • Errata #6: Updated typo in the automated installer (not regular installer) for the email address input.
  • 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 (Nov 12, 2019)
  • Errata #4: UI layout was incorrect for the password reset form, removed the inner row/column
  • Errata #4: File type check 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 that caused an icon to be generated when saving a menu item.
Fri, 25 Oct 2019 16:53:04 -0600 CVE-2019-11021 for older SCHLIX CMS v2.1.8-7 (November 2018) In regards to CVE-2019-11021 for older SCHLIX CMS v2.1.8-7 (November 2018 - last year), which claimed that "admin/app/mediamanager in Schlix CMS 2.1.8-7 allows Authenticated Unrestricted File Upload, leading to remote code execution.", the analysis needs to also mention that the user who can access admin area will require an elevated superuser permission (the user must belong to [Administrators]before he/she can upload the PHP file. We also allow uploading of zipped PHP scripts to install extensions, by the way, and it's still the case even in 2.2.x.

While inadvertently allowing a PHP file to be uploaded via Media Manager was an oversight, it still requires an admin permission. We think it's pretty rare for an administrator to exploit a bug on his/her own site to own his/her own site.

It's best for security researchers to contact us first to validate a vulnerability before publishing it. Regardless, we still thank for the effort.

For SCHLIX CMS users, simply click Settings - System Update to keep your system secure all the time. Also, subscribe to this RSS news feed for the latest news including security related advisories.

Wed, 09 Oct 2019 14:00:58 -0600 SCHLIX CMS v2.2.1 with Extension Gallery has been released SCHLIX CMS v2.2.1 has been released with an integrated Extension Gallery (App Store) where you can download extension directly from the CMS without having to manually download it from our Extension Directory. We also now welcome publishers who'd like to publish their work to showcase their work and be linked from our website. The first phase, which lasts until end of December 2020, will be open for open source extensions, with commercial offering planned to be open in January 2021.

Other notable changes include:

  • Installation/removal of extension now requires administrator password
  • Automated installer bug fix - missed 1 parameter during config file generation
  • French translation bug fix
  • Font Awesome Free has been updated to v5.11.2
  • Change email and change password dialog under Users administration have been improved with better user interface
  • Inclusion of manual_upgrade.php for manual upgrade in a more restricted hosting environment or if the automated upgrade fails for any reason

Download it here.

Wed, 25 Sep 2019 01:18:34 -0600 CentOS 8 - compatible with SCHLIX CMS v2.2.x CentOS 8 has just been released yesterday. We've tested it and the new SCHLIX CMS v2.2.x series works out of the box (including with the new MySQL 8.0) with only minimal changes to the default configuration. Check out the CentOS 8 LAMP server installation guide for SCHLIX CMS.

Wed, 18 Sep 2019 18:31:48 -0600 Extension Gallery - a marketplace for web design agencies/freelance PHP developers In mid-October, we will release a new SCHLIX CMS version 2.2.1-x with a new marketplace integration application called Extension Gallery. With the new Extension Gallery, website owner can easily install/uninstall extension without having to download a ZIP file manually from our current Extension Gallery. If you're a PHP web agency or a PHP freelance developer, you can submit a SCHLIX CMS plugin (application/block/macro) and get more exposure. It's free and this is a great opportunity to showcase your solutions. Both commercial and open source extensions are accepted.

The extension submission process is already open and we're hoping to get more developers to use SCHLIX CMS.

Sample screenshots:

SCHLIX Extension Gallery - Preview

SCHLIX Extension Gallery - Preview

Social Media Extensions

Sat, 17 Aug 2019 18:24:02 -0600 New 2.2.x series - SCHLIX CMS v2.2.0-1 has been released SCHLIX CMS v2.2.0-1 has been released, marking the new v2.2.x series. It is considered a significant change from the previous v2.1.x series as many internals have been updated. The 2.2.x is a transitional release, ensuring backward compatibilities with earlier version of plugins developed for SCHLIX CMS.

Highlight of new features

Custom header image

Previously, designers had to rely on using either a macro or a custom code to insert an expanded banner/header image above the content. This was cumbersome as a slight change to the HTML code means that the content items need to be updated individually. In the new v2.2.x series, they can do it easily by simply choosing to upload a custom media header and any change to the HTML tag can simply be performed in the template itself. Please have a look at the code comments inside the newly included companyprofile theme.

Custom header banner image

The following is a screenshot of the editor page where you can easily change the header image. You can configure the width, height and quality from Settings - Custom Header.

Sample header image

To enable this feature in your own application, simply specify the following code in the constructor:

$this->has_versioning = true;

Spell Checker

We have added a spell checker functionality.

Spell Checker

It's still in BETA mode, so you will have to manually enable it from Settings - Editor Manager.

TinyMCE 4 Spell Checker

Custom Field

You can now specify a custom field to be used in many applications. This is useful when you need to add a field to a contact form, etc. We're currently still testing this feature and will enable this feature on other applications as well. Please note that all custom fields will have the xcf_ prefix in the actual database. In your view template, you can simply output it manually. For example:

<?php $custom_fields = $this->getItemCustomFields(); ?>
<?php foreach ($custom_fields as $cf): ?>
<?php $field_name = 'xcf_'.$cf['field_name']; $field_label = $cf['field_label'] ?>
<div class="contacts_info_label custom_field">
   <i class="fa fa-file"></i>
   <?= ___h($item[$field_name]); ?>

To enable this feature in your own application, simply specify the following code in your view.admin.template.php file:

<x-ui:schlix-explorer-menu-command data-schlix-command="custom-table-config" data-custom-table="gk_contact_items" fonticon="fas fa-terminal" label="<?= ___('Custom table fields: Contact') ?>" />

<x-ui:schlix-explorer-menu-command data-schlix-command="custom-table-config" data-custom-table="gk_contact_messages"  fonticon="fas fa-terminal" label="<?= ___('Custom table fields: Messages') ?>" />

Custom Field 1

Screenshot of the edit function:

Custom Field 2

Screenshot of backend editor with a custom field:

Custom Field 3


You can now extend an application functionality from another class (e.g. on the custom field function). Simply create a function with hook_ prefix and it will be executed.

Hook example

To create an application that calls a hook function, simply call \SCHLIX\cmsHooks::execute( ... ). We will write a documentation on this later.

X-UI tags

We have now switched to a framework-independent X-UI tag to future-proof our CMS. We used to heavily depend on Bootstrap 3, but as we realized

 <x-ui:schlix-multi-source-media-uploader data-field="url_media_file" name="image_file" id="image_file" data-dir-key="image_medium" accept="image/png, image/jpeg, image/gif" data-disable-option-existing-file="true" data-disable-option-none="true" data-allow-url-variable-dimension="true" data-preview-width="<?= $preview_width ?>" data-preview-height="<?= $preview_height ?>" />

Simple examples:

<x-ui:textbox id="meta_description" name="meta_description"  data-field="meta_description" label="<?= ___('Meta Description') ?>" />

<x-ui:schlix-tab id="tab_content" fonticon="far fa-file-alt" label="<?= ___('Content') ?>">
 Tab content

GDPR (Personal Data Request)

We have provided basic functionality for user data request. This application is disabled by default upon installation & upgrade.


  • Additional 6 new languages (Georgian, Kazakh, Mongolian, Arabic, Hebrew, Persian) have been added.
  • You can now change the theme colour of the backend. This is useful especially if you need to open different SCHLIX CMS sites.
  • You can specify whether the frontend uses Bootstrap 3 or 4. We will also expand the functionality to include other CSS frameworks such as Bulma and Zurb Foundation.
  • If you need your site to be online but invisible to the search engine during the development, you can specify its visiblity as hidden and turn it back on when needed.

SCHLIX v2.2.x - global configuration

Backward incompatible changes

If you have installed an application and you have the following lines in the *.admin.class.php onModifyDataBeforeSaveItem or onModifyDataBeforeSaveCategory, please either comment it out or simply delete them. You have until the end of December 2021 before this backward compatibility is removed.

/* NO LONGER NEEDED AS OF 2.2.0 - please remove these lines completely or comment them out */
if ($datavalues['permission_read_everyone'])        
      $datavalues['permission_read'] = 'everyone';
      $datavalues['permission_read'] = serialize($datavalues['permission_read']);
 $datavalues['permission_write'] = serialize($datavalues['permission_write']);

Download and read the full change log now.

Wed, 01 May 2019 22:10:08 -0600 SCHLIX CMS v2.1.9-0 with a revamped admin interface SCHLIX CMS v2.1.9-0 has been released. A couple of notable changes:

  • Revamped admin interface for better editing experience. Quite a few of our users have made a comment last year that the dark interface has made it harder to read and navigate on the backend. We've restored the original theme and provided a new styling as well. We will make the dark theme as a configurable option later.
  • Free map hosting for the Contacts application. If you are web design agency or even just a regular user who can't to pay hundreds of dollars of billing for Google Maps, we've replaced Google Maps with OpenStreetMap, hosted on our own tile server (, with CDN delivery to ensure fast browsing experience across different geographic regions. You don't need to enter Google Maps API key anymore in the Contacts application. Since this took quite some effort to implement, we've pushed back other features that we promised earlier. If you have any extensions that require mapping solution, you can use our server for free as long as your website is implemented with SCHLIX CMS and that the load requirement is reasonable.

SCHLIX CMS v2.1.9-0

If you have any questions, please post your question in the forum.

Tue, 20 Nov 2018 18:08:34 -0700 SCHLIX CMS v2.1.8-1 has been released SCHLIX CMS v2.1.8-1 has been released. We have added a few new security features in this release. When you login to the backend, the system will perform the following checks:

  • Possible malicious users (only for sites with registration enabled) including their IP address.
  • Possible malicious files (e.g. PHP script uploaded to image folder)
  • List of all world writable files and directories

The system will then attempt to fix them automatically and the report can be downloaded from /web/[your-website-name]/data/private/quarantine. This folder is inaccessible from the user's browser and the content must be manually downloaded via SFTP or FTP.

Note - there's v2.1.8-2 release that fixed the false positives and System Updater user interface issue as the automated security check ran immediately after the upgrade and thus causing a JSON error. If you've upgraded to v2.1.8-1 and got an error message right after the upgrade, you can ignore that error.

Sun, 16 Sep 2018 00:21:12 -0600 SCHLIX CMS v2.1.8-0 has been released SCHLIX CMS v2.1.8-0 has been released. This is a maintenance only release with the following changes:

  • 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

We realized that we're a bit behind in terms of the promised e-commerce implementation. Please note that the following is still in the works: Google Maps replacement, UTF8MB4 conversion (currently still using UTF8), GDPR and new Google Analytics tag.

Fri, 08 Dec 2017 17:33:18 -0700 SCHLIX CMS 2.1.7 build #2 has been released SCHLIX CMS v2.1.7 build #2 has been released today to fix some minor bugs:

  • 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
Tue, 07 Nov 2017 12:44:13 -0700 SCHLIX CMS 2.1.7 released with new look and feel SCHLIX CMS v2.1.7 (build #1) has been released today. The base theme has been changed to dark by default, inspired by KDE's Dark Breeze and Ubuntu's Unity theme. The light theme will still be available as a separate download at the end of December 2017 (or maybe January 2018) and you can customize it with your company logo. This will be useful for web design agencies and freelancers out there. In addition to this, there is already a custom admin theme that you can download from the Themes directory.

Other important changes:

  • Fixed some of the Macedonian and Indonesian translations.
  • Fixed URL for content fragments for Landing Pages. The URL will be set to / instead of /lp if the frontend application is set to Landing Pages. If your frontend application is set to Web Pages (html), this will not affect you. For the change to take effect, you must manually edit the menu item from Menus and save it.
  • Enhancement: Contact form is now using fully AJAX so it can be inserted in the middle of the content.
  • New InsertContactForm macro to embed contact form in the middle of any content text

Download now


Sun, 17 Sep 2017 14:52:41 -0600 SCHLIX CMS 2.1.6 has been released in 35 languages SCHLIX CMS v2.1.6 build #1 has been released. Other than bug fixes, the highlight of this release is its first ever localization of SCHLIX CMS. We have decided to shift the priority for our e-commerce system to the end of second quarter of 2018 so the core of SCHLIX CMS could be translated into 35 languages: Belarusian (Беларуская мова), Bulgarian (Български), Chinese Simplified (简体中文) and Traditional (繁體中文), Croatian (Hrvatski), Czech (Čeština), Danish (Dansk), Dutch (Nederlands), Estonian (Eesti), Filipino (Tagalog), Finnish (Suomi), French (Français), German (Deutsch), Greek (Ελληνικά), Hindi (हिन्दी), Hungarian (Magyar), Italian (Italiano), Japanese (日本語), Korean (한국어), Macedonian (Mакедонски), Norwegian (Norsk), Polish (Język polski), Portuguese (Português), Romanian (Română), Russian (Русский), Slovak (Slovenčina), Slovenian (Slovenščina), Spanish (Español), Swedish (Svenska), Thai (ไทย), Turkish (Türkçe), Ukrainian (Українська), and Vietnamese (Tiếng Việt),

Please note that there may still be some mistranslations, however we are planning on correcting these until the end of December 2017. System translations for Right-to-Left languages (Arabic, Hebrew, Persian, etc) will be released at the end of Q1-2018 once we have consulted with subject matter expert since we don't have an in-house expert for this.

You can change the language by clicking Global System Configuration or simply click Change under System Information.

Change Language in SCHLIX CMS

Localization in SCHLIX CMS v2.1.6 (September 2017)

Special thanks for Jarrod Farncomb from Datacom TSS (Australia) and Gjoko Krstic from Zero Science Lab (Mакедонски) for helping us test v2.1.5-4 before v2.1.6 release and pointed out possible bugs.

The following items were fixed and/or added: 

  • 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
  • Enhancement: add some icons to item edit form for Blog and Web Pages for better visual cues

Download SCHLIX CMS v2.1.6 now.

If you are upgrading from a previous version, simply click Settings, then click System Update. Please note that due to session name change in this version, you will be automatically logged out after the upgrade.

Thu, 03 Aug 2017 01:26:52 -0600 Errata - SCHLIX CMS v2.1.5 build #4 fix typos SCHLIX CMS 2.1.5-4 (build #4) has been released to fix the bug in system updater for non-CURL based system as well as typos on the table names in the installation.

Wed, 02 Aug 2017 18:09:53 -0600 SCHLIX CMS 2.1.5 released with new features: JSON feed and Open Search SCHLIX CMS 2.1.5 has been released today with new features: JSON Feed (in 'blog' application) and Open Search (in 'search' application). JSON Feed was recently created by Brent Simmons and Manton Reece and we want to encourage the adoption of JSON Feed, since it is lighter than RSS. OpenSearch XML was also added to the search application. We have also added the JSON feed link to the two sample themes included in the release.

Other than the two new features, most other changes in this release have been focused on bug fixed on Windows/Apache/PHP (IIS/PHP have always been okay). Apparently there have been some issues for development under Windows using WAMP Server and EasyPHP. This is due to the default thread stack size in the default Apache settings if you use mpm_winnt_module. We have issued a workaround specifically for development servers in Windows using WAMP Server and Easy PHP. IIS/PHP/MySQL stack, Linux and OS X stacks are not affected.

Sat, 08 Jul 2017 22:34:58 -0600 Errata - SCHLIX CMS v2.1.4 build #2 fix for menus SCHLIX CMS 2.1.4-2 (build #2) has been released to fix the bug when creating a menu item from an item inside a subcategory.

Thu, 06 Jul 2017 16:40:05 -0600 Roadmap update for July - December 2017 Back in January, we announced our plan for the first half of 2017. 5 out of 6 have been completed. We have to postpone the development of integrated market application until January 2018. The following is our updated road map:

July - December 2017

  • New extension: e-commerce (full shopping cart). We should have this completed before the end of December 2017.
  • New extension: forum (das Forum). Currently, we are already using this forum extension and it will be released publicly before the end of December 2017.
  • Update to the official Jäsenlehti Newsletters extension to include additional features such as bounce checker, analytics, and click tracking.
  • A concrete example of backend admin theme where you can customize the logo (this is intended for web development agencies as well as freelance web developers).
  • More extensions that can help you with your SEO (search engine friendly). e.g. Open Graph.

January - June 2018

  • Translation for the following languages: French, Spanish, Portuguese, Russian, Simplified Chinese, Japanese, Korean, and Indonesian.
  • Integrated market app where you can install/uninstall extension automatically.
  • More integration with cloud based services
  • More themes

July - December 2018

  • SCHLIX UI v2 implementation (already in the works). SCHLIX UI is the Javascript framework for our user interface
  • More to be announced.
Thu, 06 Jul 2017 16:05:19 -0600 Official extension update: Plugin Creator and Newsletters As per our previous post, we have released Jäsenlehti Newsletters. Despite its BETA status (not final release), the extension is fully functional and has already been used with one of our clients. We will make an update anytime between November or December 2017 to add the following:

  • Export express consent records
  • Bounce checker
  • Analytics
  • Click tracking

SCHLIX CMS Newsletters extension

An update has also been made to Plugin Creator. You can now create sub-applications. A sub-application is an application inside the main SCHLIX CMS Application. As you can see in the screenshot above, the "Subscribers" sub-application within Newsletters. Please note that you must first save the application in Plugin Creator first before you can create a sub-application.