- Relations and content reuse Reuse content instead of copying it - relation fields, embedded objects in rich text, several locations - and show related and reverse-related content in templates with the related_objects fetches.
- Reliability scorecard A checklist to score how reliably your Exponential site is run, in ten areas with three levels each, how to use the score each quarter, and links to the page that explains every item.
- Renewals, upgrades and downgrades How an Exponential partnership is renewed each year, how and when partners move up or down a level as published, what changes on a downgrade, and how to end a partnership properly.
- Security updates and independence How a public body keeps an Exponential installation secure without depending on one vendor: where security fixes come from, how to learn about releases, how to apply updates with the upgrade check and ezupdate, and what…
- Store launch checklist Everything to decide, configure and test before an Exponential store takes its first real order - catalog, prices and VAT, shipping, checkout, payment, mail and receipts, staff and permissions, security, performance and…
- Switch on account lockout Step by step - lock accounts after a number of failed sign-ins with MaxNumberOfFailedLogin, exempt trusted office networks, decide what users are told, and plan how locked staff get unlocked.
- Tests and CI for an upgraded extension Keep an upgraded extension upgraded: a lint on every supported PHP, small tests without a database that forbid inline code, and a GitHub Actions workflow, with the xrowextract workflow as a model.
- The ezcss and ezscript operators Reference for the eight packer operators of ezjscore (ezcss, ezcss_require, ezcss_load, ezcssfiles, ezscript, ezscript_require, ezscript_load, ezscriptfiles) with every parameter, default and behavior.
- The share folder: demo images, files and seed data What a theme's share/ folder is for - demo images and files, database schema and seed data (.dba) - how real themes use it, and the rules that keep it small, legal and free of backups and personal data.
- Version constraints your users write Recommend a Composer version constraint for your theme in its README - tilde, caret, exact pins and dev-main - what each lets an update bring, and how your numbering makes them safe.
- When settings are not enough: from builder to extension developer How to tell that a requirement needs code, and which extension point fits: a table from need to mechanism (operator, fetch function, module, datatype, event, cronjob, listener, handler) and its RAD wizard.
- Writing portable SQL How to write queries that run on every database Exponential supports - escaping and casting, limits as parameters, the dialect differences of each driver (row limits, ids, concatenation, MD5, bitwise operators, joined…
- A back end for your app Why most mobile apps on Exponential should talk to a small back end of their own (a backend for frontend) rather than to Exponential directly - the client secret, read-only credentials, caching, shaping answers and…
- Add a license field to a dataset class Task for administrators: add a required License selection to the dataset class with the licenses your body approved, and fill it for existing datasets.
- Bundling content class packages with a theme When a theme's templates expect content classes (article, event, blog post), ship them as content class packages in the theme's packages/ folder, as sevenx_themes_simple does, and tell users how to import them.
- By hand: a PHPUnit test for your extension Tests that run without a database: phpunit.xml.dist, a bootstrap, operator tests and a file test against inline CSS and scripts, green on the kernel's PHPUnit.
- CAPTCHAs and privacy For public bodies protecting forms from spam - what the optional recaptcha (Google reCAPTCHA) and hcaptcha (hCaptcha) extensions do, the data they send to the provider, consent and notice implications, accessibility…
- Case study: from eZChangeclass to expchangeclass One upgrade told from its commits: how a 2007 extension that changes an object's class became expchangeclass on PHP 8, with transactions, a policy, translations, CSP-safe menus and nine releases.
- Change the prefooter in the Layouts editor Step by step with screenshots - add an article to the "Most popular articles" list of the shared layout Prefooter in the Layouts editor, reorder it, publish, and see it on every article and recipe page. No code, no…
- Configuration managed by the deployment For public bodies with change management - how the ManagedByDeployment switch makes the administration unable to change settings, templates, extensions and packages in production, so every change goes through version…
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