Recent changes
Wednesday November 04 2026
-
Template operators in a theme Updated Markdown page
Add a template operator to a theme - the operator class, autoloads/eztemplateautoload.php, ExtensionAutoloadPath[] and the autoload array - and avoid the one file the design wizard does not write.
-
Testing a Composer install before publishing Updated Markdown page
Install your theme into a throwaway Exponential installation through a Composer path or vcs repository before you submit it to Packagist, and check the folder name, the files and the rendered page.
-
Theme extensions: start here Updated Markdown page
The map of everything about packing a design into a theme extension - folder structure, ezinfo.php and extension.xml, the settings a theme ships, the RAD design wizard, Composer packages and Exponential packages…
-
Translations in a theme Updated Markdown page
Ship the interface texts of a theme in several languages - translations/<locale>/translation.ts, TranslationExtensions[], the i18n operator with the theme's own context - and keep the files complete.
-
Troubleshooting theme extensions Updated Markdown page
Symptoms and fixes for theme extensions - the design is not used, a new template is ignored, the About page shows no version, Composer installs into the wrong folder, an operator is unknown, an export is refused.
-
Validating a package before you share it Updated Markdown page
Check a package the way an installation will check it before you hand it out - the Validate button, ezpm validate, the upload rules (gzip, sizes, entries, safe paths, well-formed package.xml) and a manual look inside…
-
What a theme extension is Updated Markdown page
A theme extension is one folder under extension/ that carries a design and everything it needs; why designs belong there and not in the installation's own design/ folder, with three real themes as examples.
-
What an Exponential package (.ezpkg) is Updated Markdown page
An Exponential package is a directory with a package.xml, exported as one .ezpkg file (a gzip compressed tar); what it can carry, where packages live, how they are installed, and how that differs from a Composer package.
-
Giving a theme its own settings file Updated Markdown page
Give a theme its own settings file (mytheme.ini) with documented defaults, read it from templates with ezini() and from PHP with eZINI, and let installations override it safely.
-
An accessibility audit for every release Updated Markdown page
A repeatable accessibility audit before each theme release - axe on the page list at three widths in light and dark, keyboard walk, zoom, contrast - recording results and fixing serious issues first, as the 7x themes…
-
Adopting an abandoned theme Updated Markdown page
Take over a theme whose author stopped maintaining it - ask first, then continue in the original repository if you are given access, or fork it under a new name; and how old extensions from the community archive can be…
-
Announcing end of life Updated Markdown page
What an end-of-life announcement for a theme says - the date, what stops, what stays available, the successor or ways forward, and how to reach paying customers - with a text to adapt.
-
Archiving a repository Updated Markdown page
Archive a theme's GitHub repository so it stays readable and installable but takes no new changes, and mark the Packagist package as abandoned with a successor - without deleting anything.
-
Breaking changes and the next major version Updated Markdown page
When a theme change forces users to act - removed templates or settings, a raised minimum version, a redesign - group it, move a higher version position deliberately, write an upgrade guide, and keep the previous line…
-
Comparing your overrides with the standard templates Updated Markdown page
Find out whether the standard templates you copied into your theme changed upstream - list your copies, diff them against the new release, and merge fixes (especially escaping and accessibility fixes) into your versions.
-
A compatibility matrix Updated Markdown page
Keep a table of which theme versions were tested with which Exponential, PHP, server engine and database versions, and the browsers and widths you check - how to fill it honestly and where to publish it.
-
Contributing back upstream Updated Markdown page
Send fixes and improvements back to the themes, extensions and the Exponential project you build on - what to contribute, how to prepare a change, and why it pays off in less maintenance for you and shared growth for…
-
Credits and attribution Updated Markdown page
Credit everyone whose work is in a theme - original authors of ported or forked designs, contributors, reporters, third-party assets - in copyright lines, changelogs and README, with real examples from the 7x themes.
-
A CSP audit for every release Updated Markdown page
Check before each release that the theme still works under a strict Content Security Policy - report-only mode on a test siteaccess, the browser console, a grep for inline code, and external resources.
-
Declaring compatibility Updated Markdown page
Tell users and tools which Exponential and PHP versions a theme release works with - composer.json require, the README's requirements, extension.xml dependencies and the release notes - consistently.