- eZContentClass and its attributes Read content classes and their attributes from PHP - fetchByIdentifier(), classIDByIdentifier(), dataMap(), fetchAttributeByIdentifier(), datatype and content - using identifiers, not IDs.
- For loops Counting loops with for: from a number to a number, counting down, sequences, and typical uses such as star ratings, placeholders and page numbers.
- GitHub releases and release notes Turn a pushed tag into a GitHub release - title, notes from the changelog, what to attach and what not - with the gh command and the rule that a published release is never edited to change what it delivers.
- Nullable parameters and type declarations Fix the most common PHP 8.4 deprecation, implicitly nullable parameters, and add type declarations to old code safely, with examples from expsite_api, expquery_translator and ezfind.
- Part 8: Reference of built-in features for extension authors Part 8 of the book: a reference of the kernel classes, template features, settings, commands and directories extension authors use most, with signatures taken from the source and links to the full documentation.
- Remote services with expservices Using the expservices extension as an integration API - the JSON envelope, the catalog, tokens, reads and writes, an idempotent upsert by remote id over HTTP, content jobs, and adding a service domain of your own.
- Review CSP reports Step by step - collect Content Security Policy violation reports with Exponential's own csp/report collector, read them in Setup > Log files, tell real problems from noise, and decide per source what to fix or allow.
- Settings and INI files in your application Give your application settings the Exponential way - your own INI file with defaults, overrides per siteaccess and installation, reading them with eZINI, changing them with exp:ini, caches, and keeping secrets out of…
- Templates for builders The template language in one chapter - output and escaping, variables with def, set and undef, arrays and hashes, if and foreach, operators and pipes, includes, comments - with examples rendered by the engine.
- Tender template: intellectual property of custom work clause Clause text for the rights to custom extensions, designs, integrations and documentation paid for under a CMS contract, written to fit the GPL that Exponential extensions inherit, with options to publish the work for…
- The CJW Themes Jumper extension The extension cjw_themes_jumper that cjw_multisite depends on. What it brings (the design starter, the images and files of the starter content, two modules), how its global and siteaccess settings are split, how the…
- The coding standard (phpcs.xml.dist) How PHP code in Exponential is written and checked - every rule of phpcs.xml.dist with an example, the forbidden functions, the PHP 8.0 compatibility check, how only new violations fail, and the commands that run the…
- The language switcher How to put a language switcher on every page of a multilingual public site with Exponential (TranslationSA, the language_switcher operator, switchlanguage/to), make it accessible, and add hreflang links, which the…
- The se7enxweb extension catalogue The 65 extensions the kernel's composer.json requires, grouped by purpose, with repository, license and documentation: the first place to look for ideas and examples.
- Transition from Exponential to another system How a public body moves its content from Exponential to a different content management system - the seven-step export, rich text, files, users, addresses and the guides per target system - and how to run the old and new…
- Variables in depth The exact rules of def, undef, set, let and default from eZTemplateDefFunction and eZTemplateSetFunction - the warnings for defining twice, setting an unknown variable and undefining one that def did not make, undef…
- With RAD: handlers and kernel overrides The Handler wizard writes a mail transport chosen by a setting; the Kernel override wizard writes a copy with its provenance and a drift check. Both from real output.
- sevenx_multisite and cjw_multisite compared The two multisite packages of Exponential 6.0.15 side by side. Packages and sizes, design and theme extension, content and languages, where layouts and images come from, siteaccesses, installer steps and source…
- Roles and least privilege How to give AI assistants and agents exactly the rights they need in Exponential - who each part runs as (the editor, the owner of a key or token), dedicated accounts and roles for agents, limitations by subtree…
- Making your own site package The path from an existing site package to your own one - fork, change the installer and the content, rebuild the archives, version them, publish them on a package server, point an installation at it, test - and where…
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