The design extension wizard (Setup > RAD)
This page is for designers who want a working theme extension skeleton without typing it. The wizard writes the
folder, the design, the settings, the metadata, a README, a LICENSE and a .gitignore, and shows every file before
it writes anything.
Before you start
- An administrator account with the
setup/setuppolicy (the view's function). - A development installation, not a live site: the wizard writes into
extension/. - A name for the theme (Naming your theme extension).
Step by step
- Open Setup > RAD (
/setup/rad) and choose the design extension tool, or go directly to/setup/designextension. - Under What it is fill:

| Field | What to enter |
|---|---|
| Extension name | Lower case letters, digits and underscores, three to forty-one characters, starting with a letter. It "becomes extension/<name> and design/<name>". |
| Title | What the admin interface calls it; left empty, it is made from the name |
| Summary | One sentence for the README and composer.json |
| Author, Composer vendor, Version | Your name or organization, your Packagist vendor, the first version |
| License | One of the licenses configured in package.ini [LicenseSettings] |
| Falls back on | The base design: standard, or a design present on the installation (admin3, admin2, admin, base, ezwebin) |
| Siteaccess | Used only when the siteaccess settings part is ticked |
Under What goes in it tick the parts you want (The design wizard's parts). Tick all and Tick none help.
Press Refresh preview. Every file, before it is written lists each path with its size; click a heading to read the file. Open all and Close all expand or fold them.
Choose:
- Create in extension/ writes the files to
extension/<name>. The wizard never writes over an extension that exists and writes nothing outsideextension/<name>. - Download as zip gives you the same files as
<name>.zipwithout writing anything (Downloading the wizard's result as a zip).
- Create in extension/ writes the files to
After Create, the page says "Written to extension/<name>. Switch it on with the lines below, then clear the caches." The lines are:
[ExtensionSettings] ActiveExtensions[]=<name>Activate the theme (Activating a theme), regenerate the autoloads, clear the caches, and set
SiteDesign=<name>for a test siteaccess.
What to check afterwards
php -l extension/<name>/ezinfo.phpandxmllint --noout extension/<name>/extension.xmlpass.- From Exponential 6.0.15 on, the wizard writes
extra.ezpublish-legacy-extension-nameincomposer.json, a workingpage_head.tplandpagelayout.tpl, the Frontend stylesheet and script lists, and, with Template operators,autoloads/eztemplateautoload.php. For a theme generated by an older wizard:composer.json: add"ezpublish-legacy-extension-name": "<name>"underextra(The Composer installer and the folder name).- The generated
page_head.tplandpagelayout.tpl: fix the title, print the stylesheets and scripts and write a plain character set (Three edits the generated head and layout need). - If you ticked Template operators, add
autoloads/eztemplateautoload.php(Template operators in a theme).
Related pages
- From the wizard's output to the first commit
- RAD tools, RAD security
- Tutorial: create a theme extension
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.