Block Suite has one setting, no permission rules and no database tables. Everything else is set per block in the exhibit page editor, and per shortcode in the text.
Keep page markup when Omeka filters HTML
Plugins › BlockSuite › Configure has one option, on by default: Keep page markup when Omeka filters HTML.
With Settings › Security › Enable HTML Filtering on (Omeka's default), Omeka passes every Simple Page, exhibit text block, exhibit description and Configure Theme text through its HTML filter (HTMLPurifier) when you save it. That filter knows only HTML 4, so it removes newer elements, such as <section>, <nav>, <figure>, <figcaption> and <time>, and attributes such as aria-label and role, even if you add them to Allowed HTML Elements and Allowed HTML Attributes (Omeka then only shows "not supported" warnings). The markup of the theme's content classes (pictures with captions, link cards with a label, preview sections, dates) is lost on save.
With the option on, Block Suite teaches the filter these HTML5 elements and attributes, through Omeka's own html_purifier_config_setup filter:
| Kind | Added |
|---|---|
| Elements | section, nav, aside, header, footer, article, figure, figcaption (inside figure), mark, time, details, summary (inside details); div groups of terms and descriptions inside dl, as HTML5 allows |
| Attributes | aria-label, aria-labelledby, aria-describedby, aria-hidden, aria-current and role on every element; datetime on time; open on details; loading and decoding on img; the theme engine's card attributes, data-layout (grid or list, on a list of cards) and data-lines (3 or 5, on card text) |
Omeka's settings stay in charge: an element or attribute is kept only when it is also on the allowed lists under Settings › Security. When the option is turned on (and when Block Suite is installed), Block Suite adds the missing ones to those lists. Upgrading Block Suite with the option on adds only the entries new in that version, so an entry you removed stays removed:
- Allowed HTML Elements:
section, nav, aside, header, footer, article, figure, figcaption, mark, time, details, summary, img - Allowed HTML Attributes:
*.aria-label, *.aria-labelledby, *.aria-describedby, *.aria-hidden, *.aria-current, *.role, time.datetime, details.open, img.src, img.alt, img.loading, img.decoding, *.data-layout, *.data-lines
The lists stay yours: remove an entry under Settings › Security to have the filter remove it again; Block Suite does not put it back unless you turn the option off and on. Turning the option off, or uninstalling Block Suite, leaves the lists as they are. If you turn the option off, remove the HTML5 elements from the lists too, or Omeka warns that they are not supported each time it filters.
The option does not change text saved earlier: markup the filter removed before is gone, so paste it again and save.
What the plugin registers
| Registration | Value |
|---|---|
Exhibit layouts (exhibit_layouts filter) |
bs-hero, bs-lead, bs-callout, bs-pullquote, bs-columns, bs-cta, bs-stats, bs-timeline, bs-cards, bs-spotlight, bs-slider, bs-logos, bs-search, bs-tabs, bs-accordion, bs-divider |
| Shortcodes | bs_search, bs_stats, bs_cta, bs_items, bs_timeline, bs_divider |
| View helper | $this->blockSuite() |
| Filters | Display, SimplePagesPage, text: a shortcode alone in a paragraph is taken out of the <p>. html_purifier_config_setup: the HTML5 definitions (see above) |
| Hooks | install, uninstall, config_form, config, initialize (hands Omeka a purifier built with the definitions), public_head, exhibit_builder_page_head, admin_head |
| Option | blocksuite_keep_markup (1 on, 0 off); removed on uninstall |
Where options are stored
Each block keeps its options in Exhibit Builder's own block options (JSON in the exhibit_page_blocks table), its text in the block text and its items as block attachments, exactly like Exhibit Builder's built-in layouts. Exporting or copying exhibits keeps them.
Assets
Nothing is loaded on pages without a block or shortcode.
| File | Loaded |
|---|---|
views/shared/exhibit_layouts/<layout>/layout.css |
By Exhibit Builder, on exhibit pages that use the layout (and by shortcodes that render it) |
views/shared/css/blocksuite.css |
With any block: shared tokens, buttons, spacing |
views/shared/css/blocksuite-standalone.css |
Only with themes not built on the RefBytes Theme Engine: a plain look for the engine components Block Suite uses |
views/shared/javascripts/blocksuite.js |
Pages with an Item Slider, Tabs or Accordion (no dependencies; not jQuery, not jCarousel) |
views/admin/css/blocksuite-admin.css, views/admin/javascripts/blocksuite-admin.js |
The exhibit page editor |
On Simple Pages and the home page the stylesheets go in the page head. Where Block Suite cannot know in advance that a text holds a shortcode, the shortcode prints its stylesheet link (and script) just before its block, once per page.
Defaults
| Block | Setting | Default |
|---|---|---|
| Hero | Style, height, heading level | Text over the image, Standard, Heading 2 |
| Call to Action | Background, alignment | Lightly tinted, Centered |
| Callout | Color | Primary |
| Columns | Columns, split | Two, Flowing |
| Statistics | Style, alignment | Plain figures, Centered |
| Timeline | Events, order, images | From the text, By date, Shown |
| Item Cards | Layout, card text | Grid, Caption else description |
| Spotlight | Fields, image position | Creator, Date, Type, Subject; Left |
| Item Slider | Cards in view, slide automatically, seconds | 3, Off, 6 |
| Logo Wall | Size, links, captions | Medium, On, On |
| Search Box | Search | Everything on the site |
| Tabs, Accordion | Split at | The highest heading level used |
| Accordion | Open first, several open | On, Off |
| Divider | Style, space | Ornament, Medium |