5.7.0 Release Notes

This release is so large that we long since gave up categorizing the small things that we were doing. Here are some of the high points:

Editing

  • A completely new layout engine allows for inline editing of content, layouts and style customization. Blocks can be dragged into the page and easily rearranged.
  • Inline content editing uses the Redactor editor, a beautiful editor with deep integration to concrete5, and full bootstrap 3 interface integration.
  • The Dashboard user interface is completely updated. Navigating it is much easier, and the interface is much more attractive.
  • concrete5’s user interface is now powered by Bootstrap 3.

Themes and Blocks

  • concrete5 now ships with the Elemental theme, by far the prettiest theme we’ve ever built.
  • The concrete5 Dashboard, main toolbar and Elemental theme are all fully responsive.
  • Themes can optionally refer to grid frameworks, and can have full grid support built in. Layouts have been substantially updated to support these grid frameworks (as well as be fully responsive.)
  • Theme controllers can control many aspects of a theme, including its grid framework, custom CSS classes that are available for different block types, which assets a theme supports, and more.
  • Theme customization is completely rewritten, far more powerful and based on LESS. Themes may have multiple preset groups of LESS variables that power their stylesheets.
  • Every block in the core has been reskinned, and many are new or completely rebuilt. Blocks like Feature, FAQ, Horizontal Rule, Page Attribute Display, Topic List, Social Links, Share this Page and Testimonial add useful new functionality to concrete5. The HTML block now includes the ACE editor. The video block is fully HTML5 compliant. And so. much. more.
  • Block-level MVC no longer generates ugly URLs.

Pages and Architecture

  • Page types and page templates are now two separate concepts. Page types refer to pages as objects – Blog Entry, Empty Page, Project, Product – and page templates refer to templates that actually appear in themes. The same page type can be run in multiple themes.
  • concrete5’s Composer is now a very flexible form builder that can route attributes and blocks into different page templates. Each page type has its own custom instance of Composer.
  • A Feed Object is available in the Dashboard (and created through the Page List block), giving Page Lists the ability to create RSS feeds that are permalinked.

Files

  • A completely new image editor is now built-in. Resize and crop images, and add filters.
  • File manager thumbnails are now completely extensible. Multiple thumbnails at different breakpoints can power the picture tag in a theme that supports it.
  • File storage locations are now pluggable. An adapter for Amazon S3 is coming shortly.

Conversations

  • Conversations are now built-in, with the Conversations block replacing the Guestbook block. Conversations is a reusable, object-oriented way to build conversations throughout a site, and use the same system for powering a guestbook as ultimately powering a forum. Conversations features threading, asynchronous loading, file attachments, spam filtering, flagging, rating and more.

Code Quality

  • Our core JavaScript and CSS has been completely rewritten and modernized.
  • We have officially begun to convert our code base to the PSR-2 standard.
  • concrete5’s sitemap is now powered by Dynatree (soon by Fancytree.)
  • Our PHP classes have been substantially reorganized and autoloading is PSR-4 compliant. They are now namespaced.
  • The PageList, FileList and UserList classes have been completely refactored, and should be much easier to extend and work with.

Users and Groups

  • Groups can optionally be hierarchical.
  • The account and public profiles are now separated. Accounts are always enabled, and public profiles are optional.
  • Social Links are built-in as attributes, and globally available settings in your Dashboard.
  • The user editing interface in the Dashboard is much improved.

Architecture

  • A completely new file-based configuration option, powered by the Laravel Configuration component, is the standard. concrete5’s inflexible constants are gone.
  • A completely new assets layer manages JavaScript and CSS dependencies, asset versioning between packages, and inclusion or exclusion of assets based on whether they are provided in themes. This asset framework also handles automatic asset minification and combination.
  • A new taxonomy concept – Topics – is now available. These are managed centrally in the dashboard and can also be attached as attributes to files, users and pages.
  • concrete5 has better localization support than ever, including improvements in locale switching, date and number handling, and multibyte URL handling
  • A completely new and more flexible cache layer is present, replacing Zend Cache.
  • The events system has been completely overhauled and is now powered by the Symfony2 EventDispatcher component.
  • An AuthenticationType layer makes it easy to add custom third party authentication libraries.
  • A completely new routing system, Session, Cookie, Request and Response components powers the framework. Model-view-controller setups are completely refactored and much more robust.
  • Autoloading is now automatic.
  • concrete5’s database access is now powered by Doctrine, a popular, robust framework for database access.
  • Many other third party libraries, including Pagerfanta, Monolog, Patchwork, and Imagine are being used, giving developers access to a much richer API.
  • concrete5 now supports IPv6.
  • concrete5’s third party libraries are all delivered by Composer.

Thanks to all community members who have tested this release, and especially those in Github who have committed code to this release and help it get out the door. This includes (but is definitely not limited to) mlocati, remo, EC-Joe, EC-Chris, jobbrown, olliephillips, Mnkras, hissy, katzueno, mkly, jprostko, and many more.