Concrete5

What's new in 5.7: S-Z

Here we come to the last in our series about all that's new in 5.7. Yes, we had to get a little creative with some of these letters (W, anyone?) but everything here is new or very much improved.

S: Symfony

Concrete5 has always made use of great third party libraries. We've used jQuery and jQuery UI as a backbone of our JavaScript, and the Zend Framework for lots of core functionality like caching and internationalization. In 5.7 we welcome Symfony to the fold. Symfony offers a number of high-quality PHP components that handle common tasks like autoloading classes, working with sessions, cookies, event-based programming and more. With Symfony components underlying many of our systems they are a lot more robust. Symfony powers the following systems in 5.7

  • Routing/MVC
  • Session
  • Cookies
  • Event Dispatching
  • Class Loading

Honorable Mention: Standards

Concrete5 is now a member of the PHP Framework Interoperability Group, and adheres to the following standards

T: Text Editing

Editing in Concrete5 has taken a giant leap in 5.7.

Redactor

We now make the Redactor text editor our default text editor. It's a sexy, relatively lightweight text editor that fits into Concrete5's UI very nicely, and provides good extension points for developers. The Redactor-powered content block also makes full use of Concrete5's new inline mode for blocks, enabling it to work directly in the page:

Embedding Redactor in your own applications is easier than ever, too:

https://www.concrete5.org/documentation/developers/5.7/interface-customization/rich-text-editor/embedding-rich-text-editor/

Ace Editor

Not to be outdone, the HTML block now includes the full Ace editor, to enable syntax highlighting and more:

U: Users (and Groups),

The user interface for the Users and Groups section of the Concrete5 Dashboard has undergone a major overhaul:

Groups have gained new capabilities. They can have specific permissions assigned to them, including which groups they can search or add other users to. Additionally, they can also be nested within each other, with permissions and group assignment cascading down to child groups. Groups can be automated, as well, with assignment to groups being triggered by code. Finally, groups can be marked as badges, with community points being assigned to users when they are added to these groups.

Honorable Mention: Update System

In 5.7.3 we added a completely new Dashboard-based update system. This system checks for new core updates, and scans local files and overrides to gauge the potential problems and pitfalls that applying the update might encounter. With the new update system you should never feel apprehensive about applying a core update again.

V: Views

Powered by Symfony, Concrete5's user interface has deprecated the old "tools" approach for AJAX views and in place uses routes, controllers and vies. This adds for much greater flexibility, code reuse and security.

W: Working with Page Types and Templates

Since the beginning of time (or, 2008), Concrete5 has had a simple, easy-to-understand page type system: create a page type in your Dashboard, and the corresponding template file is loaded from your theme when rendering pages of that type. In 5.7 we keep the same concepts, but add one additional layer for much greater flexibility. Page Types are now reserved for functionality and concepts (Blog Entry, Basic Page, Portfolio Project) with page templates mapping directly to form factors in your theme (Left Sidebar, Right Sidebar, Three Column.) With this change, themes can get much more complex while simultaneously encouraging code reuse, allowing developers to ship fewer files in their theme.

X: Doctrine XML

Since we launched in 2008, Concrete5 has used AXMLS files to store its database information in XML files. Now, coming in 5.7.5 we introduce a new XML schema for creating these files: Doctrine XML. Doctrine XML employes the same idea as AXMLS – store database definitions in XML files – but using Doctrine DBAL types and syntaxes. Doctrine XML contains full support for custom Doctrine types, foreign keys and more.

Documentation is still forthcoming, but the core now uses this format, and your block types and packages can use it as well.

Y: Your Site

Take a look around you. My site is built on 5.7, and I couldn't be more proud of it. No, 5.7 is not backward compatible (although a migration effort is underway) but look at this as an opportunity to refresh your site, clean it up, and make it beautiful, responsive and easy-to-edit in 2015.

Z: Zend Framework 2

Concrete5 has always used libraries from Zend Framework to power functionality like caching, internationalization and more. In 5.7 we have finally cut the cord from ZF1: all Zend Framework libraries included in 5.7 are from version 2 of the library.

That's All Folks

Whew. This was a long series to get through. Thanks for sticking with it til the end. We've got some exciting plans in store for 5.7 this year and beyond, starting with 5.7.5 (which will be out very soon.) We're excited to see the great sites that get built with 5.7, and the great add-ons that use it. If you build either of these with 5.7, let us know.

Loading Conversation