Pages can be setup with several component modules, which can then be added, removed and reordered to manage the page in a dynamic way.
Modules styles should consistent across pages, however it is possible to set different page types and so style pages and their modules depending on type.
Pages are available from the views endpoint: https://ochreapi.docs.apiary.io/#/reference/cms-views
Grid and List modules accept products, releases, artists, pages; and should list them either in a grid layout or vertically.
Media modules accept media content: images and videos. Each may contain one or more items.
Media items have a single title field and may also have a link URL used to link somewhere other than the main module URL.
Simple carousels may be created by adding multiple images to a banner or header module; each linking out to a different page. Images to be used would need to be uploaded for each instance.
Carousels could also be made from Grid and List modules, with image or text content coming directly from the product, artist or page.
Text modules can be used for blocks of text and have a title field. We recommend using Markdown or similar to parse the text content so that admins can denote headings, links, bold and italicised text within the block. This can then be used to create styled editorial article pages.
Each module can accept one of the above sizes; variations between modules (number grid columns, image sizes, etc.) should be done to match these size options. Based on that, there shouldn’t be more than 4 size or display variations for each module type.
Modules can have the following attributes:
Module content can be added directly to a module via the CMS. Modules can also accept a tag, which will then list all items with that tag as module content (with a maximum number of items set to display).
Both methods support the sorting of items so that the order of items displayed on the modules can be controlled from the CMS.
Modules are available from the modules endpoint: https://ochreapi.docs.apiary.io/#/reference/cms-modules
but should be accessed via the module listing for each view.