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

Eine Website bauen, ohne Code zu schreiben

Eine vollständige kleine Website, nur mit den Werkzeugen aus Teil 2 gebaut - eine Einstellungserweiterung und eine Design-Erweiterung, Klassen, Overrides für die Full- und Line-Ansicht, ein Menü in einem cache-block…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-2-builder/building-a-site-without-code.md

On this page

This page is a translation. Read the English original

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/stylesheets

Geben 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_design

und 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[]=base

Prü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):

KlasseBezeichnerAttribute
Nachrichtenartikelnews_articletitle (Textzeile), intro (Rich Text), body (Rich Text), image (Bild)
Veranstaltungeventtitle, 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]=2

Schreiben 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

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