We're extremely excited to announce SilverStripe v2.4 is now at beta release stage!
This means it's ready for testing by our community. We've made a number of changes since the 2.4 alpha release in November, and we're continuing to polish the intended features in preparation for the stable version. We do not recommend using this version of SilverStripe for production sites yet unless extensive testing is done.
Regular readers of our blog may want to read the changelog for a full list of recent changes, the highlights of which are detailed below.
The SilverStripe 2.4 release is all about using SilverStripe in bigger and more complex production environments and it brings a wealth of great features.
- Download SilverStripe-v2.4.0-beta1.tar.gz
If your website contains hundreds or thousands of pages, you may find the default way SilverStripe handles friendly URLs a little limiting. For instance:
With hierarchical URLs, the address for such a page might be:
One of the principles of this feature is that it provides a logical "bread crumb" for a page. Each segment in the URL (as separated by a slash symbol) is a page in itself that can be visited. Hierarchical URLs also reduce the problem of "running out" of URLs, where you might be forced to have URLs like http://website.com/staff-2/. SilverStripe will allow you to run the website in either simple or hierarchical URL mode, so that for simple websites you can retain short, memorable website addresses.
Huge thanks go to Andrew Short, a member of our developer community based in Australia, who is responsible for writing most of this feature.
Microsoft SQL Server Database support
There is strong demand for SilverStripe to run on the Microsoft platform—in recent months there have been more than 36,000 downloads via the Microsoft.com web application gallery alone. We have therefore worked hard to allow SilverStripe to natively run on a SQL Server 2008 database, eliminating the requirement to run SilverStripe on MySQL (though, of course, it still runs great on MySQL). We're really happy with the results, and we have government websites like www.gw.govt.nz already running on this platform.
Running SilverStripe on SQL Server requires the installation of the SilverStripe SQL Server module.
PostgreSQL database support
SilverStripe 2.4 can also run on a PostgreSQL 8.3 or later database. Our testing of this is not as extensive as it has been for Microsoft SQL Server, so we'd love people to install this version of SilverStripe with the PostgreSQL Database Support module and let us know how it goes.
Performance and memory use optimisations
- Memory use optimisations mean that the CMS back-end interface for the "Site Content" section easily scales to well over 10,000 pages.
- Performance improvements around Object and ViewableData property access.
- Improved unit test execution speed.
- Decreased memory usage in "Files & Images" section.
- Tested that SilverStripe is compatible with Microsoft's new WinCache PHP bytecode cache. Anecdotal tests show that WinCache provides a 50% speed improvement in generating SilverStripe webpages.
- Ability to cache parts of templates, providing a middle ground between the speed of fully cached pages and the richness of fully dynamic database-driven pages.
- Batch action handling handles larger tree structures, provides better visual feedback, and respects permissions on individual pages.
SilverStripe has long had support for setting granular security permissions on pages. Users can be a member of one or more groups, and groups can be configured to have various system rights, and various view and edit permissions on a page-by-page basis. This provides a great deal of flexibility, but in complex organisations the task of setting up the permission structures can mean spending a lot of time creating security groups.
Managing more complex security configurations has been eased in SilverStripe 2.4 with the introduction of roles. Roles allow groupings of people to be:
- Assigned the same system rights (e.g. access to create pages but not create users.)
- Assigned those rights to different sections of a website (e.g. news section, product catalogue, corporate profile, etc.)
This simplifies maintenance of the rights and users for large organisations. It makes permissions less repetitive to set up. Roles may be overkill in simple situations, and therefore their use is optional.
Other security features
- A group can be limited to only edit a certain language in the CMS.
- Team members can get permissions to see the draft version of a page in preview mode without requiring CMS access.
- Pages of type "Virtual Page" have improved stability in regards to their permission control, translation and publication.
- More fine-grained permission control for translators
- Better XSS security of the autologin token by using HTTPOnly cookies
- More secure against brute force login attempts
Other key improvements
- A "SiteConfig" record stores site-wide settings and default permissions and author groups for pages. Such settings can be set differently for different languages used on your website. A example setting is the theme your site uses, although this still be set at the code level.
- The CMS now searches for broken internal links to other pages and broken file references, and highlights them in the WYSIWYG editor. A report can be used to show broken links across the website.
- Improved API to allow custom tags to be parsed within CMS content before being presented on webpages.
- Improved reporting API to unify the CMS sidebar reports and full-page reports on their own section. It's easier to add custom filters to reports.
- Added dropdown to choose from existing anchor links when inserting a link from the CMS sidebar.
- Improved broken link detection
- Removed the jsparty/ toplevel folder, and moved all its dependencies into sapphire/thirdparty and cms/thirdparty
- More than 350 bugfix and enhancement commits, plus over 200 minor changes
Want to help out?
We'd love for you to download this release, test it, and raise articulate bug reports. In particular, we are interested in:
- Testing that upgrades from older versions of SilverStripe go smoothly.
- Testing the new features, like hierarchical URLs, SQL Server, and PostgreSQL.
- Manually testing that all CMS features work as intended.
- Testing across various hosting environments, operating systems, PHP versions, and web browsers.
To raise a bug, log in at open.silverstripe.com and create a new ticket. When adding a ticket, be sure to specify the version as 2.4.0 beta.