Die Ordnerstruktur einer Theme-Erweiterung
Diese Seite ist für Designer, die wissen wollen, wohin jede Datei eines Themes gehört. Wie die Ordner unter
design/<name>/ im Einzelnen gegliedert sind, erklärt Aufbau des Design-Verzeichnisses.
Der vollständige Baum
extension/mytheme/
├── ezinfo.php metadata for the About page (required)
├── extension.xml packaged metadata, read first (required)
├── composer.json when the theme is a Composer package
├── LICENSE the license text (required for publishing)
├── README.md what it is and how to switch it on
├── INSTALL.md, CHANGELOG.md install steps and history (recommended)
├── design/
│ └── mytheme/ the design (its name is the SiteDesign value)
│ ├── templates/ pagelayout.tpl and the templates
│ ├── override/templates/ templates chosen by override rules
│ ├── stylesheets/
│ ├── javascript/
│ ├── images/
│ └── fonts/
├── settings/
│ ├── design.ini.append.php DesignExtensions[]=mytheme (required)
│ ├── site.ini.append.php optional
│ ├── override.ini.append.php override rules (optional)
│ ├── mytheme.ini a settings file of your own (optional)
│ └── siteaccess/<siteaccess>/ settings for one siteaccess (optional)
├── autoloads/ template operators (optional)
├── classes/ PHP classes (optional)
├── modules/ modules with views (optional)
├── translations/<locale>/translation.ts
├── share/ demo images, files, database seed data
└── packages/ .ezpkg files shipped with the themeWas jeden Teil liest
| Teil | Gelesen von | Seite |
|---|---|---|
ezinfo.php, extension.xml | Setup > Über, Setup > Extensions, den Upgrade-Prüfungen | ezinfo.php, extension.xml |
design/<name>/ | Dem Template-System, sobald DesignExtensions[] die Erweiterung nennt | Das Design registrieren |
settings/*.ini.append.php | Dem Einstellungssystem, für jede aktive Erweiterung | Einstellungsdateien in einer Erweiterung |
settings/siteaccess/<sa>/ | Dem Einstellungssystem, nur solange dieser Siteaccess läuft | Siteaccess-Einstellungen in einem Theme |
autoloads/, classes/ | Dem Autoload-Array, nach php bin/php/ezpgenerateautoloads.php -e | Template-Operatoren in einem Theme |
translations/ | Dem Übersetzungssystem, wenn TranslationExtensions[] die Erweiterung nennt | Übersetzungen in einem Theme |
share/ | Installern und Ihren eigenen Skripten | Der share-Ordner |
packages/ | Wer sie mit ezpm oder Setup > Pakete importiert | Inhaltsklassen-Pakete mitliefern |
Drei veröffentlichte Themes im Vergleich
| Ordner | sevenx_themes_simple | cjw_themes_jumper | sevenx_themes_media |
|---|---|---|---|
design/ | simple | starter, standard | media |
settings/siteaccess/ | ja | cjw_starter | ja |
classes/, modules/ | - | ja | ja |
translations/ | ja | ger-DE | ja |
packages/ | 20 Inhaltsklassen-Pakete | - | - |
share/ | - | content-images, content-files | Datenbankschema und Daten |
CHANGELOG.md | - | ja | - |
Lesen Sie die Bäume selbst: ls extension/cjw_themes_jumper auf einer Installation, die es hat, oder durchsuchen Sie das
Repository auf GitHub.
Schritt für Schritt: das Gerüst von Hand anlegen
mkdir -p extension/mytheme/design/mytheme/{templates,stylesheets,javascript,images} extension/mytheme/settings- Schreiben Sie
settings/design.ini.append.php(Das Design registrieren). - Schreiben Sie
ezinfo.phpundextension.xml. - Fügen Sie
LICENSEundREADME.mdhinzu. - Prüfen Sie:
php -l extension/mytheme/ezinfo.phpundxmllint --noout extension/mytheme/extension.xml.
Oder lassen Sie den Design-Erweiterungs-Assistenten alles schreiben.
Verwandte Seiten
- Tutorial: eine Theme-Erweiterung anlegen
- Was eine Theme-Erweiterung ist
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.