Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Mit RAD: eine Design-Erweiterung

Der Assistent für Design-Extensions schreibt ein Theme-Gerüst; danach richten Sie einen Siteaccess auf das neue Design und passen zwei erzeugte Einstellungen an, anhand der echten Ausgabe des Assistenten.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-3-extension-developer/tutorials/rad-design-extension.md

On this page

This page is a translation. Read the English original

Mit RAD: eine Design-Erweiterung

Tutorial 6. Der Assistent für Design-Extensions (/setup/designextension) schreibt das Gerüst eines Themes: ein in Teile aufgeteiltes Pagelayout, ein Stylesheet und ein Skript, die in design.ini registriert sind, einen Bilderordner und ein Beispiel-Override. Designer machen in Teil 6 weiter. Die Ausgabe unten wurde vom Generator des Assistenten (expDesignExtensionWizard::files()) erzeugt; jede PHP-Datei hat php -l bestanden.

1. Das Formular

FeldWert
Name der Extensionmysite_design
TitelMy site design
Greift zurück aufbase
Was hineinkommtSeitenlayout, Seitenteile, Stylesheets, JavaScript, Bildverzeichnis, Überschreib-Template, ezinfo.php (die Voreinstellungen); optional: Druck-Stylesheet, Siteaccess-Einstellungen, Template-Operatoren

2. Die Dateien

.gitignore
LICENSE
README.md
composer.json
design/mysite_design/images/.gitkeep
design/mysite_design/javascript/site.js
design/mysite_design/override/templates/full/article.tpl
design/mysite_design/stylesheets/site.css
design/mysite_design/templates/page_footer.tpl
design/mysite_design/templates/page_head.tpl
design/mysite_design/templates/page_header.tpl
design/mysite_design/templates/pagelayout.tpl
extension.xml
ezinfo.php
settings/design.ini.append.php
settings/override.ini.append.php

Das Design ist nach der Erweiterung benannt, mysite_design. Das Pagelayout ist kurz und gut lesbar:

<!DOCTYPE html>
<html lang="{ezini( 'RegionalSettings', 'ContentObjectLocale' )|extract_left( 2 )}">
<head>
{include uri='design:page_head.tpl'}
</head>
<body class="mysite_design {$module_result.node_id|wash}">
{include uri='design:page_header.tpl'}
<main id="content" class="mysite_design-content">
{$module_result.content}
</main>
{include uri='design:page_footer.tpl'}
{ezscript_load( array( 'ezjsc::jquery',
                       ezini( 'JavaScriptSettings', 'JavaScriptList', 'design.ini' ),
                       ezini( 'JavaScriptSettings', 'FrontendJavaScriptList', 'design.ini' ) ) )}
</body>
</html>

page_head.tpl bildet den Titel aus dem Pfad und lädt die Stylesheets mit ezcss_load. Das Beispiel-Override in settings/override.ini.append.php gibt Artikeln eine eigene Full View:

[full_article_mysite_design]
Source=node/view/full.tpl
MatchFile=full/article.tpl
Subdir=templates
Match[class_identifier]=article

3. Einen Siteaccess auf das Design richten

DesignExtensions[]=mysite_design (in der erzeugten design.ini.append.php) macht die Design-Ordner der Erweiterung durchsuchbar, aber ein Design wird nur von einem Siteaccess verwendet, der es nennt. Die erzeugte README sagt, das Design werde gefunden, „ohne dass sonst etwas eingestellt werden muss“; tatsächlich müssen Sie es trotzdem setzen, zum Beispiel:

./console exp:ini set site.ini/DesignSettings/SiteDesign mysite_design siteaccess:mysite
./console exp:ini clear 'site.ini/DesignSettings/AdditionalSiteDesignList[]' siteaccess:mysite
./console exp:ini add 'site.ini/DesignSettings/AdditionalSiteDesignList[]' base siteaccess:mysite

oder kreuzen Sie im Assistenten Siteaccess-Einstellungen an und tragen Sie den Siteaccess ein, sodass die Erweiterung settings/siteaccess/<name>/site.ini.append.php selbst mitbringt. Prüfen Sie das Ergebnis mit dem Skript zur Design-Kette aus Die Design-Kette.

4. Die Frontend-Listen bevorzugen

Die erzeugte design.ini.append.php registriert die Dateien in CSSFileList[] und JavaScriptList[], die design.ini zugunsten von FrontendCSSFileList[] und FrontendJavaScriptList[] als veraltet kennzeichnet. Ändern Sie die beiden Zeilen:

[StylesheetSettings]
FrontendCSSFileList[]=site.css

[JavaScriptSettings]
FrontendJavaScriptList[]=site.js

Das erzeugte Pagelayout lädt bereits beide Listen.

5. Einschalten

./console exp:ini add 'site.ini/ExtensionSettings/ActiveExtensions[]' mysite_design global
php bin/php/ezcache.php --clear-all

Öffnen Sie die Website: Ihr Rahmen, Ihr Stylesheet, Artikel mit Ihrer Full View. Die erzeugte site.js zeigt das Muster, das zur Content Security Policy passt: eine Skriptdatei, die die Seite verbessert, aber nicht nötig ist, damit sie funktioniert.

Verwandte Seiten

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.

Something wrong on this page? Report an error

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