Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Part 2: The builder: settings, templates and overrides

The second part of the book. Change how Exponential behaves and looks without PHP - settings and their scopes, templates, the design chain, overrides, view modes, fetch, classes, roles, workflows and cronjobs.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-2-builder/README.md

On this page

Part 2: The builder: settings, templates and overrides

This is the second part of Extension development: the book. A builder changes how a site behaves and looks without writing PHP. Most real projects are built almost entirely with the tools of this part, and every extension developer and theme developer uses them daily, so this part is worth reading even if you came for PHP.

You will work in an extension of your own from the first chapter on: a settings extension for your site's configuration and a design extension for its templates. That keeps every change in one folder under version control, instead of scattered across settings/override/ and the kernel's directories.

Chapters

Settings

ChapterWhat you learn
How INI settings workFiles, blocks, variables, arrays, hashes, comments, the INI cache
Settings scopes and the order they win inDefault, extension, siteaccess, override, and the per-site directories inside extensions
Siteaccess settingsWhat a siteaccess is, how a request picks one, what goes in its settings
Settings that live in an extensionMoving a site's configuration into an extension
Changing settings with exp:iniEvery verb of the settings command, with dry runs and backups
Settings in the administrationSetup > Ini settings: the override chain, comparison, safe saving
.ini.append.php files and keeping settings safeWhy the PHP wrapper, secrets, permissions, what never to commit

Templates

ChapterWhat you learn
Templates for buildersThe template language: variables, conditions, loops, includes
The design chain: where a template is foundSite design, additional designs, design extensions, standard
Template overrides: the basicsReplacing one template for some content only
Override conditionsEvery match key: class, node, parent, section, state, view mode, depth and more
View modes for buildersfull, line, embed and your own
Fetching content in templatesfetch(): lists, trees, counts, filters, sorting
The template operators builders use mostA working set of operators with examples
Debugging templatesFinding why a template or an override does not apply
Caching and templatesThe view cache, cache-block, and when to clear what

The rest of the builder's toolbox

ChapterWhat you learn
Content classes for buildersDesigning the content model
Sections, roles and access for buildersWho may see and do what
Workflows for buildersApproval and other events on publish
Cronjobs for buildersWhat runs on a schedule, and how to set it up
Building a site without writing codeA complete small site from settings, classes and templates
When settings are not enoughDeciding when to write PHP, and which extension point to use

Before you start

You need a development installation (Setting up a development installation) with debug output on, and you should have done Your first hour as a developer.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x