Recent changes
Wednesday November 04 2026
-
Template overrides: the basics Updated Markdown page
An override replaces one template for some content only - articles in full view, the front page, one section. The override.ini block, where the file goes, how to check it applies, and the mistakes that stop it.
-
Templates for builders Updated Markdown page
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.
-
The design chain: where a template is found Updated Markdown page
How design:path/to/template.tpl is resolved: SiteDesign, AdditionalSiteDesignList, StandardDesign and DesignExtensions in each design, with the kernel code and a script that prints your chain.
-
Changing settings with exp:ini Updated Markdown page
Every verb of the settings command - get, set, add, rem, clear, toggle, copy, move, move-all, where, list, scopes - with its scopes, dry runs, backups, JSON output and exit codes, and recipes for common builder tasks.
-
View modes for builders Updated Markdown page
A view mode is one way of drawing content - full page, line in a list, embed in rich text. The modes the kernel ships, how a page and a list choose one, adding your own mode, and which modes are cached.
-
When settings are not enough: from builder to extension developer Updated Markdown page
How to tell that a requirement needs code, and which extension point fits: a table from need to mechanism (operator, fetch function, module, datatype, event, cronjob, listener, handler) and its RAD wizard.
-
Workflows for builders Updated Markdown page
Make something happen around publishing: workflows, events, triggers, processes and the workflow cronjob, explained for builders, with an approval workflow and the event types that need no code.
-
Part 3: The extension developer Updated Markdown page
Part 3 of the book: the anatomy of an extension, one mechanism per chapter, from metadata and settings to modules, operators, datatypes, events, security and tests, followed by step-by-step tutorials.
-
Activating an extension Updated Markdown page
Switching an extension on for the installation or one siteaccess, what it writes, and the steps that make the running site see it: autoloads, caches, PHP-FPM and Velocity.
-
Admin pages in the admin4 style Updated Markdown page
Extension admin pages that look like the rest of the admin: shared .a4- components, --a4- tokens with dark values, your own stylesheet, no inline CSS, menu links, light and dark checks.
-
Ajax with ezjscore server functions Updated Markdown page
Answer ajax calls with an ezjscore server function: settings, a class of static functions, the call address and its JSON envelope, Exp.io, policies, POST and the form token.
-
Autoloads and class naming Updated Markdown page
How the kernel finds your classes: the autoload arrays, ezpgenerateautoloads.php and what it scans, naming that avoids collisions, and what to do when a class is not found.
-
CLI scripts and console commands Updated Markdown page
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.
-
composer.json for an extension Updated Markdown page
The composer.json that installs an extension into extension/<name>: package type, installer, extension name, PHP and kernel requirements, license, authors, with two real examples.
-
Content Security Policy for extension authors Updated Markdown page
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.
-
Cronjob parts Updated Markdown page
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.
-
CSS and JavaScript in an extension Updated Markdown page
Load stylesheets and scripts the way the kernel expects: design.ini lists, ezscript_require and ezcss_require, the packer and its cache, CSP-safe scripts, no version queries.
-
Database schema, .dba files and upgrades Updated Markdown page
Ship tables that install on every supported database: share/db_schema.dba, per-engine schema.sql, ezsqlinsertschema and ezsqldumpschema, idempotent install commands, upgrades.
-
Datatype storage, validation and templates Updated Markdown page
The complete rating datatype: storage columns, validating posted input safely, values across versions, search and sorting, and the edit and view templates, all verified.
-
Datatypes Updated Markdown page
A new kind of field for content classes: when to write one, how the kernel finds and registers it, the eZDataType life cycle, a verified rating datatype, and real ones to learn from.