Posts from "2017"

Exponent in 2018

New Year 2018As we wind down 2017 and move into 2018, Exponent version 2.4.2 is being polished for release. What does the future of Exponent CMS hold in store? If you've read recent posts (here and here), you'll get a feel for what you can expect in the next version. So how can you prepare for the next version of Exponent?

  • Ensure your web server is running at least PHP version 5.5 (though v7.x is highly recommended for speed) since the next version of Exponent will NOT run/upgrade on older versions of PHP since they are so obsolete. Therefore, if your web server is ancient and running a long-ago version of PHP, do NOT attempt to update/upgrade your site since it will come to a screeching halt!
  • Decide if you still want to support obsolete browsers. We will still include the 'shims' used to support very old browsers, but that feature must be turned on, but you'll have that opportunity during the upgrade process. An additional factor is that we've moved to jQuery v3. If you still need support for older versions of jQuery, you'll also want to turn on the obsolete browser support.
  • And though Bootstrap v4 and FontAwesome v5 won't be fully integrated, nor included with the next release (since Bootstrap v4 hasn't been release yet itself), we have most of the underpinnings in place. Nonetheless, we'll have a special Christmas gift of a 'preview addon' which will give you a feel for what a Bootstrap v4 theme will look like. This MAY give you a head start into designing or converting some existing themes.

As a note for which supported theme frameworks align with which library versions:

  • Bootstrap v2 is tied to FontAwesome v3 and autoloads Normalize.css v7
  • Bootstrap v3 is tied to FontAwesome v4 and Normalize.css v3.0.3 is integrated into Bootstrap v3
  • Bootstrap v4 will be tied to FontAwesome v5 and an enhanced variation of Normalize.css (Reboot) in integrated into Bootstrap v4 (all this is based on Bootstrap v4 stable not greatly changing from its beta2 release)

We wish you a Blessed 2018 and still strive to keep your Exponent web site in the modern age.

Integrating Bootstrap 4 into Exponent

TBootstraphe primary theme framework for Exponent CMS is Twitter Bootstrap, currently at version 3 (actually 3.3.7). The next Bootstrap release, version 4 should be available in the near future and is currently in the beta 2 stage. It would be good to integrate support for the Bootstrap 4 framework, but there are several obstacles:

  • Bootstrap 4 requires SASS/SCSS stylesheet compilation, where previous versions were based on LESS...and there is only one PHP based SCSS compiler available which chokes on some of our needed stylesheets. However, we've developed a 'hack' to compile them on the fly.
  • Bootstrap 4 also leans toward needing 'autoprefixer' support to add additional 'browser-specific' styles into the compiled stylesheets. There is currently no PHP based autoprefixer (except for some which require node.js be running on the server). This may not be an issue since most modern browsers are supposed to be moving away from vendor specific style properties.
  • Bootstrap 4 is a much greater departure (change) from the previous version (3) than in the past (e.g., v2 to v3). While not insurmountable, it will require updating a lot of Exponent code to produce compatible output for auto-generated form controls and menus, etc...

Now having said that, preliminary support for Bootstrap 4 (beta 2) is already being integrated into Exponent, which in turn also requires a new theme. Though the initial integration at this point is limited to functional navbars/menus and chrome, it is usable (if you can get past some of the odd styling on the page). It is expected this initial integration will be included in the next release of Exponent.

Once Bootstrap 4 is released as final AND we have fully integrated it with a functional theme, it will be released...most likely as Exponent v3. The roadmap to Exponent v3 will also throw off the shackles created by a need to support obsolete browsers and ancient PHP versions, both of which should not be used if security is of any importance. You can expect to see the next release of Exponent (either v2.4.1patch7, v2.4.2, or v3.0.0) around the end of the year.

PHP and Exponent in 2017 (and Browsers too)

PHP LogoThis article is a follow up to PHP AND EXPONENT IN 2016. Roughly one year after that previous article, PHP development is proceeding at breakneck speeds and we have seen two minor versions pass (though v7.2 is in release candidate status). Here's how it affects Exponent CMS.

The current release of Exponent (v2.4.1) is compatible with PHP v5.3 through v7.1. However, it is not compatible with PHP v7.2 (this will be corrected in the v2.4.2 release). The next release of Exponent (v2.4.2) will be compatible with PHP v5.5 through v7.2. We'll drop support for PHP v5.3 and v5.4 in that release because they are simply too insecure and should not be used in a production environment. And even though we will support PHP v5.5 in the next release, it is no longer recommended for production use since it was marked 'end of life' over one year ago. PHP v5.6 and v7.0 will be supported by their organization through the end of 2018, at which point only PHP v7.1 or later would be recommended. Another reason to remove old PHP version support in Exponent is that many of our 3rd party libraries simply no longer support ancient versions of PHP.

While we're on the subject of obsolete software, many browser software versions have also been termed 'end of life' and it is strongly encouraged they NOT be used! This would include Internet Explorer versions less than v11 (Edge in Windows 10 is considered Internet Explorer v12/v13). A beneficial side effect to this is that recommended browser versions are all now HTML5 compliant...which means that Exponent shouldn't need to use patches/tweaks to support HTML5 non-compliant browsers.Therefore, in the near future (though not in v2.4.2), we will drop support for obsolete/ancient browsers, which in turn should speed up page loading a bit.