- Cache invalidation and clearing How Exponential invalidates its caches on its own (eZContentCacheManager on publish, the content/cache event, expiry timestamps, query cache table tracking) and how to clear them by hand by id or tag, which change needs…
- Calling expservices from an app Call the expservices remote services from app code - the URL with arguments joined by ::, percent encoding, the ezjscore wrapper and the envelope inside it, paging with meta.has_more, discovering services from the…
- CLI scripts with eZScript Write command line tools for an application - the class-based Command with script(), startup() and options, the classic eZScript pattern, eZCLI output, siteaccess and user, exit codes, dry runs and safety.
- Command line: the console and eZScript The Exponential counterpart of bin/console, artisan, manage.py, rails commands and Spring Boot runners - bin/php/console with its exp:, ext:, shell: and cron: namespaces, writing a command as an…
- Console commands for developers The ./console commands extension developers use most - settings, caches, autoloads, class and template checks, help, logs, content jobs - and how an extension's scripts appear as ext: commands.
- ezjscore JSON endpoints in PHP Writing ezjscore server functions in PHP - the [ezjscServer_<name>] block, the static method that receives the arguments array, the answer envelope, permissions with Functions[] and RequirePolicy, POST writes with the…
- ezjscore template operators The template operators the ezjscore extension adds: the packer operators for stylesheets and scripts, json_encode, xml_encode and node_encode for handing data to scripts, and has_access_to_limitation.
- Forking a theme When to fork a theme and when to contribute instead, how to fork with history so you can still exchange changes, what the GPL asks of a fork, and how to tell users what your fork is.
- Linux distribution packaging What a Linux distribution packager should know before packaging Exponential as deb or rpm - the project publishes no distribution package of the CMS (Velocity has deb and rpm packages), the installation writes into its…
- Module result reference Every key of $Result / $module_result found in the kernel - content, path, title_path, content_info and its 25 keys, view_parameters, pagelayout, navigation_part, left_menu, errorType and the rest - with the code that…
- Security in extensions The security rules every extension follows: policies on views, POST and form tokens, escaping, safe SQL, untrusted input, safe redirects, files, secrets and no inline code.
- The Composer installer and the extension's folder name How the legacy extension installer decides the folder a theme lands in - extra.ezpublish-legacy-extension-name, else the package name - why installer-name is not read, and how to check the result before publishing.
- The operable principle WCAG principle 2, operable, for a public body running Exponential - keyboard access, enough time, seizures, navigation and input modalities, with each role's tasks and what the admin4 administration provides.
- Translation operators i18n, d18n and x18n The three translation operators of eZi18nOperator, their parameters (context, comment, arguments, extension), how ezpI18n::tr() finds a translation and inserts arguments, how compiled templates translate at compile…
- Why doesn't my change appear? A check list for a change that does not show on the site - draft not published, linked zone, wrong layout mapping, wrong siteaccess or settings file, compiled template, page cache, Velocity - with the command or screen…
- Writing an export or an outbound sync Getting content out of Exponential into another system - a full export of a subtree page by page, an outbox sender that delivers changes with retries, the payload, HTTP calls with timeouts, signing, and marking what was…
- Agency starter kits How an agency bundles Exponential, its extensions, a theme and a site package into a starter kit for new projects - the repository layout, Composer, a reviewed kickstart.ini per environment, its own site package, second…
- Classic landing pages with ezflow The ezflow page builder of the classic design - the page datatype, zone layouts, blocks from block.ini, push to block, the timeline and its cronjobs - and when to choose it over the layouts editor.
- Content jobs How the kernel runs large content operations in the background - removes, copies, moves, hides, sections, states, locations, package installs and audit exports - with their progress page, command, cronjob part, settings…
- Content Security Policy for extension authors What a Content Security Policy means for templates and scripts: the modes, why inline code fails, the data-attribute pattern, csp_nonce() and its limits, and finding violations.
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