Implementing an Advanced Content Pool for Semi-Structured Content
What motivates us?
Customers that run multiple international websites within one Magnolia CMS installation often face the challenge of efficient content re-use across their sites, e.g., product listings, location information. If the content needs to be adapted for specific sites, the same content has to be copied or duplicated to provide a site-specific version of it. Furthermore, editors prefer to see content in a WYSIWYG-like editing experience instead of having structured Magnolia dialogs for (semi-) structured information in Magnolia Apps.
We have created a PoC for a Content Pool App that can be used to prevent duplicating this kind of content. In the beforementioned example, the content pool simply contains all products and each of these can be maintained in multiple languages and can be enabled/disabled for a specific site. The detail view for each product shows a visual representation of the product detail page. Also in this view, certain parts can be displayed/hidden based on the selected language.
What did we do?
We have wrapped Magnolia's RepositoryManager so we can filter all Nodes and JCR Queries using specific decorators. These decorators are triggered by custom Mixins that are applied to the appropriate Nodes upon creating/updating them.