- Unattended install with exp:install How a bundle installs Exponential with one command - exp:install and its options for database, site, administrator and control, secrets in EXP_INSTALL_DB_PASSWORD, the database action, the generated password file, exit…
- What is content management? What a content management system does (collect, manage, publish), what that means in Exponential, and the design step that comes before any click: planning the structure.
- Working together: project managers, sales, editors, administrators and developers How the five roles around an Exponential site hand work to each other: a handoff table, meeting cadences, the shared artefacts, and which part of the administration each role owns, with the policies behind it.
- Accessible forms For designers and developers who build public forms with Exponential's information collector, registration and newsletter subscription - labels, required fields, error messages, CAPTCHAs, timeouts and confirmation…
- Becoming a leader in the Exponential community A 30/60/90-day plan that uses only this help and the project's documented channels, a contribution ladder from user to reviewer, and what each step looks like for project managers, sales, editors, administrators and…
- Building a site without writing code A complete small site built with Part 2's tools only - a settings extension and a design extension, classes, overrides for full and line views, a menu in a cache-block, a members area - as an ordered plan with checks.
- By hand: translating an extension Translate an extension into German: collect the texts, write the translation.ts files, register them with TranslationExtensions, clear the cache and see the German texts.
- Choosing a credential Pick the right credential for each kind of app on Exponential - a public reader app, an app whose users sign in, an internal staff app, a kiosk, a development build - with the reasons, the accounts to create and what…
- CLI scripts and console commands Command line tools in an extension: bin/php scripts the console runs as ext:<extension>:<name>, eZScript and eZCLI, exit codes, @description, and the Command class form.
- Forms and collected information Getting form answers, polls and lead forms out of Exponential into a CRM or another system - how information collection works, collect.ini, the CSV export and bccie, reading new collections from PHP in a cronjob, mail…
- Keeping dependencies up to date Keep the libraries, fonts, icon sets and extensions a theme depends on current - an inventory, where updates are announced, testing an update, and checking licenses again.
- Locale operators The 7 operators of eZTemplateLocaleOperator - l10n with all nine formatting types, datetime with the datetime.ini classes and custom formats, locale, currentdate, maketime, makedate and gettime - with examples rendered…
- Making the site friendly to web archiving For public bodies whose sites are harvested by a national or institutional web archive - Exponential's shipped robots.txt and what to change in it, sitemaps from bcgooglesitemaps or xrowmetadata, stable URLs…
- Math operators Arithmetic in templates with sum, sub, mul, div, mod, inc, dec, min, max, abs, ceil, floor, round, int, float, count, roman and rand, with examples for paging, percentages and grids.
- Middleware: request rules, input and output listeners What takes the place of middleware, before and after filters and request listeners in Exponential - request rules that allow, deny, redirect, rewrite or log after URL translation and policies, the request/input and…
- Naming and branding during an upgrade What to rename when you upgrade an old extension and what never to touch: product names in texts, new code with exp, kernel identifiers, folder names, settings - and how to keep credit for the original authors.
- Node attributes reference Every attribute a template can read from a node (eZContentObjectTreeNode) - the 16 database fields and the 35 function attributes of its definition, the PHP method behind each, and the value each returned for a real…
- Packagist shows an old version Diagnose why Packagist or composer require does not offer the newest release of a theme - a missing or failing hook, a tag Packagist could not read, a composer.json error, or a cached client - and fix each.
- Persistent objects and custom tables Store application data in your own tables with eZPersistentObject - the definition() array, fetchObject and fetchObjectList, store and remove, function attributes for templates, and when to use tables instead of content…
- Schema changes and migrations How a database schema change reaches every installation of Exponential - the .dba schema files for new installations, upgrade steps that exp:upgrade applies to every installation of the kernel or an extension, and…
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