- CSRF form tokens How Exponential protects every POST form against cross-site request forgery with the ezformtoken extension, what visitors see when a token is refused, the secret to set per project, and what to check in your own forms.
- Data minimization For public bodies applying data minimization and privacy by default - what Exponential minimizes already (audit, request logs, log viewer, mail), and what you minimize yourself in content classes, forms, logs, search…
- Documentation requirements for site packages What a site package must carry before it can be imported, offered by the setup wizard and published on the package server, split into what the code refuses without and what the shipped 7x packages carry by convention…
- Estimating and scoping with extensions Scope an Exponential project by checking what the kernel and its extensions already do: an inventory by area, effort drivers as questions and a scoping worksheet. No hours or prices.
- Extension load order Which extension wins when two provide the same setting or template: the written order of ActiveExtensions, how declared dependencies reorder it, extra extension folders, and how to see the real order.
- ezinfo.php: what the About page reads Write the ezinfo.php file of a theme extension step by step, with the keys the About page and the upgrade checks read, a complete example from a real theme, and the checks to run before a release.
- eZPersistentObject The eZPersistentObject reference - definition() keys, fetchObject(), fetchObjectList() and its parameters, count(), store(), remove(), removeObject(), attribute access - with kernel signatures.
- Finding nearby service points How a site builder lists the service points nearest to a place with the ezgmlLocationFilter of ezgmaplocation: the fetch, its distance parameter, accuracy (bounding box versus true distance), and how to offer it to…
- Hardening an Exponential site for a public body For administrators and hosting teams of public sites - the hardening layers of Exponential in the order to work through them (web server, settings and secrets, administration, sign-in, sessions, headers, CSP, uploads…
- If and conditions Conditional output with if, elseif and else; the comparison and logic operators used in conditions (eq, ne, gt, lt, and, or, not); testing for content, emptiness and existence; and conditions inside attribute values.
- Listing upcoming events Template fetches that list upcoming events on an Exponential site - by start time from now on, for one calendar or the whole site, for one place or tag - with cache expiry so past events drop out, and an RSS feed of…
- Moving a template from Smarty A porting guide - a typical Smarty list template translated to the template language in three steps (variables, data from fetch, the loop with conditions, links, dates and escaping), each step rendered on a development…
- Part 5: Extending, forking ethically and contributing back Part 5 of the book: build on other people's extensions fairly - extend without forking, fork when you must, keep credit and licenses right, and give your work back with pull requests, issues and reviews.
- People in the Exponential ecosystem The landing page of the people part of the ecosystem section - the users and the creators of the Exponential world, how creators join and publish into the ecosystem, and what decision makers should know about it.
- Per-site settings in extensions How each department site keeps its settings, design and templates together in one extension that applies only while its siteaccesses run (settings/override inside the extension), so a multisite installation stays…
- PHP 8.1 to 8.5 deprecations The deprecations each PHP release from 8.1 to 8.5 added that old extension code meets, how they show in the debug output, and the fix for each that still runs on PHP 8.0.
- Platform distributions as the base of a bundle What bundlers need to know when they build on the Exponential Platform Legacy or Nexus distributions - which lines carry Exponential 6, how they install, the version traps on Packagist, the default account in the demo…
- Rebranding ethically What you may and may not do when you put your own name on a fork - new names, kept credit, honest descriptions, no borrowed trademarks - with a checklist and examples from extensions this project forked.
- Setting up a development environment A development setup for Exponential applications - PHP, Composer and Git, a local install on SQLite, Velocity or the built-in server, development settings, the debug bar, template checks and your extension in its own…
- Siteaccesses: matching a request to a site The siteaccess is the concept framework developers most often miss - a named configuration selected per request by URI, host, port or server variable, before routing - how matching works, what a siteaccess changes, how…
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