Beginning December 2017 (in Git Dev (Master) branch, to be included in next point release), Scipio ERP includes a dedicated full-featured Content Management System application (/applications/cms). It supplants the largely unused CMS portions of the old “content” component with a modern and friendly interface and versatile new schema.
In Scipio ERP we separate content between:
- Labels (short text messages, words or phrases)
- Item specific content (Product content, Category content, invoice attachments etc.)
- Website/Store Page content
While Labels are coded in the filesystem and item specific content is mostly managed as part of the other applications (Catalog), Page content requires a more sophisticated way to create pages and publish them individually. The Content Management Application (“CMS”) is built precisely for this purpose while handling many other related needs.
Where the CMS really shines is when it is set in context of dynamic pages. Most often content management systems are known to work best with rather static page organization. Of course they can also contain dynamic content, but when they do, the generation of which is hard coded into the system. With the CMS application you can both host pages on their own paths or replace existing paths, as well as override specific controller views (views) to integrate pages into the web application logic. So if you are using the shop component, you are able to not only create new content pages, but also override the existing product detail pages, category pages, the order process, shopping cart and so on, all from within the CMS.
The CMS schema and interface are divided between Pages (page content and editor) and Templates (further divided between Page Templates, Asset Templates and Script Templates). Simply, a Page Template provides the main markup and defines the editable Attributes and content sections for a Page and the Page editor. Meanwhile, a Page Template can optionally be composed of reusable Asset Templates (or Assets for short) and Script Templates (scripts). Assets are reusable template parts, in effect small screen widgets but with explicit distinction between them and full-page templates; they also allow reusing attribute definitions (for page editor). Scripts are for data preparation and exposing variables; by default and usually they are Groovy scripts but can invoke other present languages in screen definitions for reuse. In addition, Scripts can be assigned to Pages themselves, as sometimes data must be prepared there rather than by the templates.
The Page editor allows customizing the look and behavior of templates using the attributes defined by templates, and contains a visual editor for the large content parts with plugins to insert media, all types of available links and much more.
All template types support storing their main markup either in database (usually) or on filesystem. Pages and Page Templates use a versioning system to preserve history and allow selection of the active version.
The schema representing these elements is full-featured and powerful. However, some simplifications have been made to the user interface to keep it easy to use (currently this mostly regards the page paths and versioning).
CMS also provides a dedicated simplified Media management section. It allows a simplified uploading and management of an assortment of popular media formats. In turn these can be included in Pages using the page editor and/or Freemarker directives. Auto-resized variants of uploaded images can be automatically created (see checkbox on upload form).
An import & export of all the created data is available.
The application is separated into the following sections:
- Page Editor
- Asset Editor
- Script Editor
- Template Editor