- Authentication for apps The landing page of the authentication pages for app developers - the three credentials Exponential accepts from programs (OAuth2 tokens, personal API keys, expservices tokens), the default that every REST call needs a…
- By hand: a rich text custom tag A custom tag for rich text: AvailableCustomTags, a custom attribute with an online editor control, and the ezxmltags template that renders it with $content, verified.
- Context menus and admin integration How an old extension's context menu entries, left menu links, node view tabs and top tabs plug into the Exponential 6 admin, and how to make each work without inline code and with access checks.
- Cookie banners and consent For public bodies deciding whether their site needs a cookie consent banner - Exponential ships no banner or consent manager, the kernel needs none for its functional cookies, and what to do when you add analytics…
- Creating and updating content in code Create, update, move and remove content from PHP - eZContentFunctions::createAndPublishObject and updateAndPublishObject, fromString values, rich text, images, remote ids for idempotent imports, workflows and…
- Cronjob parts Work on a schedule: a cronjob script in your extension, its own part in cronjob.ini, as a plain script or a CronjobPart class, with quiet mode, logging and the stop switches.
- Cronjobs for builders What runs on a schedule - cronjob parts and scripts in cronjob.ini, runcronjobs.php, the Setup > Cronjobs page and the crontab lines - and how a builder adds an existing script to a part or schedules a part.
- Databases: choosing and running one The six databases Exponential 6.0.x supports, in the project's order of preference - SQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle, MySQL - compared as an engineer compares them - driver, CI coverage, multi-node use…
- Deploying changes How to ship a code, settings or template change to a hosted Exponential site so it is live at once and never cached half way - exp:velocity deploy and its order of steps, why a PHP-FPM reload affects other customers…
- Documents and PDFs For editors and project managers in public bodies - when to publish a web page instead of a document, how to check PDF and office files before upload, how Exponential delivers files, and what its built-in PDF export…
- Election period publishing readiness Common practice for public bodies that restrict or review publishing during an election period, and how Exponential's roles, sections, object states, approval workflows and the audit trail can support those rules - as…
- Export audit records for an auditor Step by step - export audit trail records for an internal or external auditor as CSV, JSON lines or JSON from Audit > Export or with exp:audit export, with a verification result attached and the export handled as…
- Extension points: handlers, INI registration and overrides Where framework developers register services, tags, listeners and plugins, Exponential registers extension points in INI settings, directories and designs - the nine registration mechanisms, a map of the most used…
- FAQ: exit and lock-in Answers to the lock-in questions public bodies ask about Exponential - can we change supplier, can we leave the product, what can be exported and in which formats, what happens to users and addresses, and where lock-in…
- Find accounts not used for months Step by step - list staff accounts nobody has used for a chosen number of days, or never used, with Users > Check user accounts, confirm with the departments, and disable them.
- Footer menu items The Fit & Healthy footer has two link lines with two different sources - FooterMenuID in menu.ini (like the header) and the Footer links folder in the content tree. How to add to each, in the administration and by…
- GDPR requests How a store team handles requests from people about their personal data - see, correct, export, erase, stop marketing - with the tools Exponential offers for each, who does what, and a routine that keeps proof. Not…
- Incident response for small teams A plan for the day the site fails that fits a team of two or three people, with roles, the first fifteen minutes, customer communication, where Exponential's tools fit in, the runbooks to follow, and the review…
- Keeping Packagist up to date automatically Make Packagist read every new tag as soon as it is pushed - through the GitHub integration or a webhook - and check that the hook works after a release.
- Logic and comparison operators The operators that build conditions: eq, ne, lt, gt, le, ge, and, or, not, true, false, null, choose, and the type tests is_set, is_unset, is_array, is_string, is_numeric, is_object, is_null, get_type, get_class.
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