Imagine you are walking towards the door in the photo below. When you reach it, do you think you should push, or pull to open the door?
We've noticed a trend where customers are asking for webpages with richly-styled content areas that they can move around. We see this mostly for marketing-purposed content, homepages, and other flashy landing/entry points to websites where presentation is precious and nuanced. Our preferred CMS, SilverStripe, usually works on the premise of a single, formatted template with defined content areas, so a richly-styled content area to move around is a new paradigm for SilverStripe to accommodate.
We've tried a few different solutions but have now settled on the Blocks module by shedawson. It is a great foundation for our devs to create custom blocks of functionality, handling complex processing such as form submissions, and backend relationships like upload fields. Inside the CMS, the blocks module is managed using gridfields, which is a bit primitive, so we couple the module with Block_Enhancements by micschk.
This solution does require some fiddling to get it up and running. A configuration (YAML) file lists the specific site themes that blocks should interact with and which settings apply to that theme. I found that the file didn't identify the theme correctly so I had to include & repeat settings for multiple themes. The solution only comes with one block, a simple content block, so it's up to your friendly neighbourhood devs to create more. And the backend expects pretty thumbnails of the blocks, so nudge a designer for some appropriate gifs.
Noteable features include:
Backend/developer happiness includes:
Some other features are:
So if you're out there making SilverStripe sites and you wish you could move bits of content around a page ad-hoc, then give these modules a go.