- Template debugging Tools for finding template problems: the debug output and its template list, template warnings with file and line, dump and attribute to look into variables, the debug functions, the template syntax checker, and the…
- Template path comments Seeing in the page source which template wrote which markup: switching on ShowTemplatePathComments, reading the START and STOP comments and the override source in brackets, the Exp debug bar toggle, and why it must stay…
- Template compilation and cache How templates become PHP and which caches hold them: TemplateCompile, compiled templates in var/<site>/cache/template/compiled, DevelopmentMode for checking file times, the template, template-override and template-block…
- Fetching a layout in templates The fetch functions of the layouts engine (layout, resolve_layout, resolve_layout_for_node, rules_for_node, layout_summary_for_node and the admin ones), their parameters, drawing the result with explayouts/layout.tpl…
- API design: REST, ezjscore and headless The interfaces Exponential offers to other systems and front ends - the REST content API of ezprestapi at v1 and v2, OAuth 2.0 and personal API keys, the ezjscore call interface and expservices, outgoing audit webhooks…
- Testing apps against Exponential The landing page of the testing pages for app developers - where to test (a public demo, a local installation, a staging copy of production), what each is good for, and the tests an app on Exponential needs.
- Testing against a demo Probe any Exponential installation, a public demo included, with three anonymous requests before you build against it - what the answers mean, what a demo in demo mode allows, why a public demo may not have every API…
- A local test installation Install Exponential locally on SQLite in one command for app development, check that the REST API and the remote services are active (and activate ezprestapi if not), prepare a test user, role, key and OAuth client…
- Tutorial: add an admin module stylesheet Step by step, style an extension's administration page the admin4 way: components first, then one stylesheet in the extension's admin design, registered in BackendCSSFileList, tokens only, dark and right-to-left ready…
- Checklist: CSP A Content Security Policy checklist for a design: no inline scripts, handlers, javascript links or inline styles, configuration as JSON data, pre-paint code in files, nonces never in cached output, third-party origins…
- Book index: every topic from A to Z The index of the extension development book - every topic from access checks to YUI, each with the chapters that explain it, so you can jump straight to what you need.
- Checklists for app developers The landing page of the checklists for apps on Exponential - security, launch and app store review readiness - with when to use each and who signs it off.
- Git workflow How Git is used for Exponential - main as the one development line, branches and pull requests squashed and rebased while open, merge commits, no history rewriting after a merge, commit subjects with Added, Updated…
- OW Simple Operator - PHP functions as template operators What the owsimpleoperator extension does, how its operators are registered from owsimpleoperator.ini, the five PHP functions it offers on this installation (time, mktime, getdate, str_replace, str_rot13), and how to…
- Tutorials: build real extensions step by step Step-by-step tutorials that build real small extensions, first with the RAD wizards of Setup > RAD, then by hand, ending with a complete extension from idea to release. Every file shown was checked with php -l and run.
- Contributing upstream How an engineer sends a change to the Exponential kernel or one of its extensions - forking and branching, the checks to run first, the copyright assignment (CLA) required for kernel contributions and what it means…
- Security checklist for apps A checklist for the security of an app on Exponential - credentials and where they live, the OAuth setup and its limits, roles of integration users, HTTPS and the Authorization header, logs, writes, web app specifics…
- Your own operators with OW Simple Operator Writing template operators as plain public methods of a class that extends OWSimpleOperator, registering each method in owsimpleoperator.ini, optional arguments, the pipe form, and what happens when the class is…
- Checklist: code review for templates What a reviewer checks in a template or stylesheet change: escaping, translations, fetches and caching, overrides, inline code, tokens and dark values, logical properties, accessibility, and the light and dark…
- Documentation as code How Exponential treats its documentation like code - Markdown files in doc/ versioned with the kernel, served by the help system inside the administration, front matter that drives audiences and search, a link and image…
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