CleverStyle Framework v1.40.2 Release Notes

  • ๐Ÿ†• New components:

    • New WebSockets module makes WebSockets usage with CleverStyle CMS ridiculously easy
    • New Shop module, provides simple, but highly extensible and customizable shopping functionality

    ๐Ÿ†• New features:

    • ๐Ÿ“„ $_SERVER superglobal is now wrapped by object to provide simplified, more functional and secure alternative to raw elements (while keeping original array-like behavior for compatibility)
    • \cs\Language::init() and ::url_language() methods added
    • ๐Ÿ”จ \cs\User::get_session() refactored to ::get_session_id() which much better explains what function actually do
    • ๐Ÿณ Possibility to attach volume to Docker container with demo
    • ๐Ÿ—„ Triggers are now Events, corresponding class Event added, Trigger still exists for backward compatibility, but uses Event under the hood (transition is simple - Trigger::register() -> Event::on(), Trigger::run() -> Event::fire(), also Event have some new functionality with methods ::off() and ::once(), events.php is used now instead trigger.php which is deprecated now
    • cs.Event object added on frontend similar to cs\Event on backend with the same methods

    โšก๏ธ Updates:

    • โšก๏ธ UIkit updated to latest upstream version + all components included since this version!
    • ๐Ÿ†• New upstream version of Polymer and WebComponents.js
    • ๐Ÿ†• New upstream version of jQuery (still from master branch)

    ๐Ÿ›  Fixes and small improvements:

    • ๐Ÿ’… Style fixes in DarkEnergy theme
    • Do not pass user session to third-party services in HybridAuth, use md5 from provider and session instead
    • ๐Ÿ›  Fix for warning during docker image building
    • ๐Ÿ‘‰ Make clickable license, readme and API icons look like buttons
    • ๐Ÿ‘ Better modals handling in module and plugin admin pages (and no colored text anymore)
    • Do not use TIME constant for sessions, because it now may be used for long-living cases and constant will not reflect real current time
    • Events System/User/del_session/before and System/User/del_session/after now passes session id to callback

    ๐Ÿ—„ Deprecations:

    • User::$user_agent, ::$ip, ::$forwarded_for and ::$client will trigger E_USER_DEPRECATED, $_SERVER should be used instead
    • ๐Ÿ—„ \cs\User\get_session() still exists and backward-compatible with old format (throws deprecated warning in log), but now is used to get all session details
    • ๐Ÿ—„ trigger.php is deprecated in favor of events.php with the same functionality

    Possible partial compatibility breaking (very unlikely, but still possible):

    • Reverse signature of shutdown_function() function
    • โšก๏ธ \cs\Config::update_clangs() method removed
    • \cs\Language::reload_core_config() method removed
    • Encryption improvement, but will not be able to decode old encrypted data (not likely to have big impact):
      • Initial vector is random and returned with encrypted data
      • Blowfish changed in favor of Twofish
      • Good random key generated on installation with the help of openssl_random_pseudo_bytes()
    • \cs\User::get_session_user() refactored to ::load_session() which much better explains what function actually do

    ๐Ÿ— Latest builds on downloads page or download source code and build it yourself