For the complete documentation index, see llms.txt. This page is also available as Markdown.

Available layouts

Status: done (100%) — refinements remain possible; the page-header markup in particular may later move into tablestyle() if a suitable template mechanism is found.

How layouts work

Each layout registered in theme.xml has one file:

layouts/<name>_layout.html

The file contains the layout's own chrome and {---} where the page content renders. Core inserts the file at the {---LAYOUT---} marker of theme.html, inside the shared <div class="page {PAGE_CLASS}"> wrapper — layout files therefore start at .page-wrapper (or their aside), never with .page itself.

Current layouts

Layout
custompages
Purpose

full page, horizontal header, boxed width

login fpw signup

centered auth pages

page (default)

page faq

boxed page with the magic page header

news

magic page header + right menu column

FRONTPAGE

full-width marketing front page

member area, left vertical sidebar

bare output

Each layout has its own page with the exact structure and rules.

Magic shortcodes — {---CAPTION---} and {---BREADCRUMB---}

The page and sidebar layouts render a Tabler .page-header whose content comes from core magic shortcodes (e_render::getMagicShortcodes()):

  • {---CAPTION---} — the caption of the page's main render,

  • {---BREADCRUMB---} — the current breadcrumb, by default rendered via e107::getForm()->breadcrumb().

Which render is "main" is designated by {SETSTYLE=default} — that is why those two layouts use default before {---} while the others use card.

Core also offers theme hooks for customizing the output: if theme_shortcodes defines sc_caption($caption) or sc_breadcrumb($bread), their return value replaces the marker instead of the default rendering.

{SETSTYLE} styles

Which style each layout uses and what tablestyle() renders for it is documented on theme.php. Rule of thumb: card for plain content layouts, default only for the layouts with the magic page header.

Per-layout behaviour without per-layout files

  • Body classes{BODY_CLASS} on the body tag (see theme.html).

  • Page wrapper classes{PAGE_CLASS} on the shared .page wrapper (authpage-center).

  • Header/footer variants — the {HEADER} / {FOOTER} shortcode switches: auth and memberdesk suppress the header, memberdesk loads footers/footer_small.html (see Header & footer partials).

Last updated