Recent changes
Wednesday November 04 2026
-
Capstone: a complete extension from idea to release Updated Markdown page
All tutorials in one releasable extension: a plan, the full file tree, composer.json, README, tests, the checks before a release, version 0.1.0, publishing and announcing.
-
With RAD: a datatype Updated Markdown page
The Datatype wizard writes a rating datatype: form, storage and abilities, the files, what you still write, and two corrections to make by hand, from the wizard's real output.
-
With RAD: a design extension Updated Markdown page
The Design extension wizard writes a theme skeleton; then point a siteaccess at the new design and adjust two generated settings, from the wizard's real output.
-
With RAD: handlers and kernel overrides Updated Markdown page
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.
-
With RAD: a module with views Updated Markdown page
The Module wizard writes a module with two views and policies; read the output, correct the template folder by hand, and know when to use Module over existing tables.
-
With RAD: a settings-only extension Updated Markdown page
The Settings extension wizard writes settings and event listeners: its topics, the listener class that is safe by default, and moving existing settings with exp:ini move-all instead.
-
With RAD: a template operator in five minutes Updated Markdown page
Use the Template extension wizard to write a working extension with an operator and a fetch function, see every file it writes, fill in the operator's one line, switch it on and use it - with the wizard's real output.
-
With RAD: a workflow event Updated Markdown page
The Workflow event wizard writes an event type that logs every publication: triggers and statuses, the generated class and templates, and the one method to fill in.
-
The RAD tools tour: Setup > RAD Updated Markdown page
A tour of Setup > RAD: the catalogue of extension points and its filters, the survey, the health check, and how every wizard works, from fields to preview to create or download.
-
View parameters, unordered parameters and POST Updated Markdown page
How an address reaches a view: ordered, unordered and user parameters as eZModule::run() parses them, and reading POST and session values safely with eZHTTPTool.
-
View results, the path and the pagelayout Updated Markdown page
What a view returns in $Result - content, path, navigation part, a different or no pagelayout - how the pagelayout receives it as $module_result, and how to answer with JSON or a file instead of a page.
-
Workflow event types Updated Markdown page
Add a step to workflows: an eZWorkflowEventType class, its registration and triggers, execute() and the statuses it can return, process parameters, a verified example.
-
Part 4: Upgrading an old extension to Exponential 6 Updated Markdown page
Part 4 of the book: bring an old extension up to Exponential 6, from the inventory and PHP 8 fixes to CSP, jQuery 4, admin4 styling, metadata and tests, with real before and after examples.
-
admin4 styling for extension pages Updated Markdown page
Make an old extension's admin pages look like the rest of admin4 - shared a4 components, tokens only, dark mode, no inline CSS - with the explayouts_ui template editor as a real before and after.
-
Case study: from eZChangeclass to expchangeclass Updated Markdown page
One upgrade told from its commits: how a 2007 extension that changes an object's class became expchangeclass on PHP 8, with transactions, a policy, translations, CSP-safe menus and nine releases.
-
Case study: small PHP 8 fixes across many extensions Updated Markdown page
How this project brought more than twenty extensions to PHP 8.0 through 8.5 in October 2026 - the same few fixes again and again, one commit and one release per extension, and how the work was checked.
-
Case study: the layouts editor on jQuery 4 Updated Markdown page
How the layouts editor, a single-page application with jQuery 2.2.4 and jQuery UI 1.10.4 in its bundle, moved to the admin's jQuery 4: the plan, the removed calls, the renamed globals, the test by use.
-
Case study: two-factor authentication without inline scripts Updated Markdown page
How sevenx_authentication_2fa lost its inline script, style block and style attributes in six small releases, with a test at each step, and why its colors keep token fallbacks.
-
Context menus and admin integration Updated Markdown page
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.
-
CSP: event handler attributes to data attributes Updated Markdown page
Replace onclick, onchange, onmouseover and other event handler attributes with data attributes and one delegated listener in a script file, with the context menu fixes of ezownerchange and expchangeclass.