Recent changes
Wednesday November 04 2026
-
Version constraints your users write Updated Markdown page
Recommend a Composer version constraint for your theme in its README - tilde, caret, exact pins and dev-main - what each lets an update bring, and how your numbering makes them safe.
-
When a release goes wrong Updated Markdown page
What to do when a published theme release is broken - leave it in place, fix forward with the next version, say plainly what was wrong, and tell users which version to move to.
-
Writing release notes Updated Markdown page
Write release notes users can act on - a headline, what changed for them, what they must do after upgrading, credits, and an honest note about any earlier mistake - with a real example from a published theme.
-
Activating a theme: ActiveExtensions and ActiveAccessExtensions Updated Markdown page
Switch a theme extension on for the whole installation or for one siteaccess, in the browser (Setup > Extensions) or on the command line, and run the steps that make the change visible.
-
Bundling content class packages with a theme Updated Markdown page
When a theme's templates expect content classes (article, event, blog post), ship them as content class packages in the theme's packages/ folder, as sevenx_themes_simple does, and tell users how to import them.
-
Checklist: the theme extension is ready Updated Markdown page
The checklist to run before a theme extension leaves your hands - structure, metadata, settings, license, Composer, packages, design quality and a clean repository - each item with the command or page that checks it.
-
Classic XML and JSON packages Updated Markdown page
The two formats an Exponential package can be stored in - classic package.xml and JSON package.json - what differs (checksums, file names, schema), when JSON helps a designer, and how to convert between them.
-
The Composer installer and the extension's folder name Updated Markdown page
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.
-
composer.json for a theme Updated Markdown page
Write the composer.json that makes a theme installable with composer require - name, description, type ezpublish-legacy-extension, license, authors, support, require, suggest and the extension name - with a complete…
-
Composer package or .ezpkg: which to ship Updated Markdown page
A decision table for shipping a theme as a Composer package, as an Exponential package (.ezpkg), or both - by who installs it, what it carries, how it is updated and where it is found.
-
require and suggest: what a theme depends on Updated Markdown page
Decide what goes into require and what into suggest in a theme's composer.json - PHP versions, the installer plugin, layouts or site API extensions - with the real choices of sevenx_themes_media and ezwebin, and version…
-
Copyright and author lines Updated Markdown page
How to write the copyright line of a theme in ezinfo.php, extension.xml, file headers and composer.json - years, holders, earlier authors of a ported or forked design - with real examples.
-
Declaring dependencies in extension.xml Updated Markdown page
The dependencies block of extension.xml - extends, requires and uses - what each does to the loading order, a real example, and how it relates to Composer's require.
-
The design extension wizard (Setup > RAD) Updated Markdown page
Generate a complete theme extension in a few minutes with the design extension wizard at /setup/designextension - every field, the file preview, Create in extension/ and Download as zip - step by step.
-
The design settings a theme ships Updated Markdown page
Which design settings belong in the theme extension and which belong to the installation - SiteDesign, AdditionalSiteDesignList[], StandardDesign and the stylesheet and script lists - with a recommended split.
-
Downloading the wizard's result as a zip Updated Markdown page
Use Download as zip in the design extension wizard to get a theme skeleton without writing to the server - when it is the better choice, what the archive contains, and what to do when the button is missing.
-
The design wizard's parts, one by one Updated Markdown page
Reference of every part the design extension wizard can write - the files each produces, whether it is on by default, and what to change in the result.
-
Exporting and importing with ezpm Updated Markdown page
Use ezpm.php, the package manager on the command line, to create a package, add classes, content or an extension, export it as .ezpkg, and import, check and install it elsewhere.
-
Exporting an extension as a package Updated Markdown page
Pack a theme extension's files into an Exponential package with the Extension export wizard or ezpm - switching exporting on in package.ini [ExtensionExportSettings], the secret check, and the steps.
-
The folder structure of a theme extension Updated Markdown page
Every folder and file a theme extension can hold, what reads it, and which ones are required, shown on a complete tree and compared with three published themes.