Theme extensions
Packaging a theme as an extension: structure, settings, dependencies and the designs it adds.
46 pages
- Classic XML and JSON packages 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.
- Exporting and importing with ezpm 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.
- Validating a package before you share it 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…
- Installing your package on a test site Try your package exactly as a user will - upload, review what the install meets, install (or install as drafts), check the site, and uninstall - on a throwaway installation, never on a live site.
- Composer package or .ezpkg: which to ship 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.
- Troubleshooting theme extensions 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.
Documentation license
This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.
Exponential Copyright © 1998-2026 Exponential Foundation and 7x