Recent changes
Wednesday November 04 2026
-
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.
-
CSP: javascript: links, eval and string timers Updated Markdown page
The remaining kinds of inline code a Content Security Policy blocks - javascript: links, eval(), new Function(), string timers, scripts inserted as HTML and JSONP - and how to replace each in an old extension.
-
CSP: moving inline scripts into files Updated Markdown page
Move an old extension's inline script blocks into JavaScript files loaded with ezscript, pass template values through data attributes, and keep the page working under a Content Security Policy without unsafe-inline.