Eine Website bauen, ohne Code zu schreiben
Teil 2, Kapitel 21. Dieses Kapitel fügt den ganzen Teil zusammen: eine kleine Firmenwebsite mit Nachrichten, Veranstaltungen und einem Bereich nur für Mitglieder, gebaut aus Einstellungen, Klassen, Templates und Overrides, ganz ohne PHP. Es ist ein Plan, dem Sie auf Ihrer Entwicklungsinstallation folgen können; jeder Schritt verweist auf das Kapitel, das ihn erklärt.
Die Website
- Eine Startseite mit den drei neuesten Nachrichten und den nächsten Veranstaltungen.
- Nachrichtenartikel und Veranstaltungen, jeweils mit eigener Vollansicht und Listenansicht.
- Ein Mitgliederbereich, den nur angemeldete Mitglieder lesen können.
- Ein Menü der obersten Ordner auf jeder Seite.
Schritt 1: zwei Erweiterungen
mkdir -p extension/mysite_settings/settings/siteaccess/mysite
mkdir -p extension/mysite_design/settings extension/mysite_design/design/mysite/templates \
extension/mysite_design/design/mysite/override/templates extension/mysite_design/design/mysite/stylesheetsGeben Sie beiden eine ezinfo.php und eine extension.xml (ezinfo.php),
registrieren Sie das Design in extension/mysite_design/settings/design.ini.append.php:
[ExtensionSettings]
DesignExtensions[]=mysite_designund aktivieren Sie beide, die Einstellungserweiterung zuerst (Einstellungen in einer Erweiterung).
Schritt 2: Der Siteaccess verwendet Ihr Design
In extension/mysite_settings/settings/siteaccess/mysite/site.ini.append.php:
[DesignSettings]
SiteDesign=mysite
AdditionalSiteDesignList[]
AdditionalSiteDesignList[]=basePrüfen Sie es mit dem Skript zur Design-Kette aus Die Design-Kette: Ihr Design steht an erster Stelle.
Schritt 3: das Inhaltsmodell
Legen Sie in der Administration die Klassen an (Inhaltsklassen für Builder):
| Klasse | Bezeichner | Attribute |
|---|---|---|
| Nachrichtenartikel | news_article | title (Textzeile), intro (Rich Text), body (Rich Text), image (Bild) |
| Veranstaltung | event | title, intro, start_date (Datum und Uhrzeit), location (Textzeile) |
Verwenden Sie für Container die vorhandene Klasse Folder. Legen Sie einen Ordner „News“, einen Ordner „Events“ und einen Ordner „Members“ an.
Schritt 4: Ansichten
Overrides in extension/mysite_settings/settings/siteaccess/mysite/override.ini.append.php:
[full_news_article]
Source=node/view/full.tpl
MatchFile=full/news_article.tpl
Subdir=templates
Match[class_identifier]=news_article
[line_news_article]
Source=node/view/line.tpl
MatchFile=line/news_article.tpl
Subdir=templates
Match[class_identifier]=news_article
[full_event]
Source=node/view/full.tpl
MatchFile=full/event.tpl
Subdir=templates
Match[class_identifier]=event
[full_frontpage]
Source=node/view/full.tpl
MatchFile=full/frontpage.tpl
Subdir=templates
Match[node]=2Schreiben Sie die vier Templates in extension/mysite_design/design/mysite/override/templates/
(Template-Overrides: die Grundlagen). Die Startseite ruft die neuesten Nachrichten ab
(Inhalte in Templates abrufen):
{def $news = fetch( 'content', 'tree', hash( 'parent_node_id', 2,
'class_filter_type', 'include',
'class_filter_array', array( 'news_article' ),
'sort_by', array( 'published', false() ),
'limit', 3 ) )}
{foreach $news as $item}
{node_view_gui content_node=$item view='line'}
{/foreach}
{undef $news}Schritt 5: das Menü
Setzen Sie das Menü in der templates/pagelayout.tpl Ihres Designs (beginnen Sie mit einer Kopie des Pagelayouts des
Designs, auf das Sie zurückfallen) in einen cache-block (Caching und Templates):
{cache-block keys=array( $module_result.node_id )}
<nav>
{foreach fetch( 'content', 'list', hash( 'parent_node_id', 2,
'class_filter_type', 'include',
'class_filter_array', array( 'folder' ),
'sort_by', array( 'priority', true() ) ) ) as $item}
<a href={$item.url_alias|ezurl}>{$item.name|wash}</a>
{/foreach}
</nav>
{/cache-block}Schritt 6: Styles
Legen Sie Ihr CSS in extension/mysite_design/design/mysite/stylesheets/site.css ab und laden Sie es über die
Einstellungen des Designs (design.ini [StylesheetSettings]), nie mit style="" oder einem <style>-Block; siehe
Theme-Assets, der Packer und CSP.
Schritt 7: der Mitgliederbereich
Folgen Sie dem ausgearbeiteten Plan in Sektionen, Rollen und Zugriff für Builder:
die Sektion members, dem Ordner Members zugewiesen, eine Rolle mit content/read, beschränkt auf diese Sektion, der
Benutzergruppe Members zugewiesen.
Schritt 8: prüfen
- To do: Jede Seite wird ohne Fehler in der Debug-Ausgabe dargestellt.
- To do: Die Tabelle der verwendeten Templates zeigt Ihre Overrides für Nachrichten, Veranstaltungen und die Startseite.
- To do: Der Mitgliederbereich wird abgemeldet verweigert und ist als Mitglied lesbar.
- To do: Das Veröffentlichen einer Nachricht aktualisiert die Startseite (der View-Cache wird beim Veröffentlichen geleert).
- To do: Beide Erweiterungen sind Git-Repositories mit ihrem ersten Commit;
settings/override/ist in keinem von beiden.
Was Sie gebaut haben und wie es weitergeht
Eine echte Website unter Versionskontrolle, ohne Code. Taucht eine Anforderung auf, die Einstellungen und Templates nicht erfüllen können (ein Import aus einem anderen System, ein Feldtyp, den es nicht gibt, eine Seite, die etwas berechnet), ist es Zeit für Teil 3; das nächste Kapitel hilft Ihnen bei der Entscheidung.
Verwandte Seiten
- Zurück: Cronjobs für Builder
- Weiter: Wenn Einstellungen nicht reichen
- Templates und Design
- 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.