Benutzer-Werkzeuge

Webseiten-Werkzeuge


addons:tpl:markups

Markups

Bei den Markups geht es um die Platzhalter, die BlackCat CMS mit Leben füllt. Neben den grundlegenden Platzhaltern für Seiteninhalt, Menü, Kopf- und Fußdateien (also CSS, META, Javascripts) existieren eine Reihe weiterer, die dem Designer flexible Möglichkeiten an die Hand geben, um die Darstellung zu steuern.

Grundlegende Markups

Seitenkopf: {get_page_headers()}

Der Seitenkopf ist der Teil, der im <head>-Bereich einer Seite benötigt wird. Dieser beinhaltet neben dem Seitentitel (<title>), Schlüsselworten (keywords) und Beschreibung (description) auch weitere META-Tags, einzubindende CSS- und JavaScript-Dateien sowie ggfs. browserspezifische Angaben.

BlackCat CMS hält hierfür ein einziges Markup bereit, das alles Nötige erledigt:

{get_page_headers()}

Referenzen:
http://docs.blackcat-cms.org/benutzerhandbuch/Headerersetzen.html
https://github.com/webbird/BlackCatCMS/wiki/get_page_headers (Englisch)

Seitenfuß: {get_page_footers()}

Analog zum Seitenkopf existiert ein Markup, um JavaScripts in den Seitenfuß (in der Regel vor dem schließenden </body>) einzufügen.

{get_page_footers()}

Referenzen:
https://github.com/webbird/BlackCatCMS/wiki/get_page_footers (Englisch)

Seiteninhalt: {page_content()}

Das Wichtigste an einer Seite ist natürlich der Inhalt. Um diesen an der entsprechenden Stelle im Template zu platzieren, wird der Platzhalter

{page_content()}

verwendet. Hier werden nun alle Sektionen - also die Module, die mit einer Seite verknüpft sind - hintereinander weg ausgegeben. Die Reihenfolge bestimmt man im Backend.

Ein Template kann mehrere Bereiche haben, an denen Inhalte ausgegeben werden, z.B. einen Hauptbereich in der Mitte und einen weiteren am rechten oder linken Rand, um etwa einen RSS-Feed einzubinden oder eine Liste der aktuellsten Neuigkeiten anzuzeigen. Um dies entsprechend steuern zu können, kann in den Klammern des Platzhalters eine Zahl angegeben werden, die der Nummer des Blocks entspricht. Welche Blöcke es gibt und welche Nummern sie haben, bestimmt die Datei info.php des Templates.

TODO: Weiterführende Links

Grundsätzlich wird das Navigationsmenü in BlackCat CMS aus den vorhandenen Seiten generiert. Hierbei wird z.B. berücksichtigt, welche Seiten der Besucher überhaupt sehen darf. Eine Seite mit der Einstellung 'versteckt' wird im Menü nicht aufgeführt, kann aber aufgerufen werden, usw.

Die Anforderungen an Navigationsmenüs sind vielfältig. Der eine möchte alle Links zu allen Seiten angezeigt haben, der nächste nur das passende Untermenü zur aktuellen Seite aufklappen, wieder an anderer Stelle sind vielleicht nur die Links auf Seiten der gleichen Ebene gefragt.

Um allen Anforderungen gerecht zu werden, bringt BlackCat CMS das aus Website Baker bekannte „ShowMenu2“ oder auch „SM2“ mit, das genauso wie dort eingebunden und gesteuert werden kann. Nur lassen wir beim Platzhalter die '2' am Ende weg.

{show_menu(<Optionen>)}

Darüber hinaus haben wir damit begonnen, eigene Platzhalter zur Verfügung zu stellen, die ein wenig direkter zur gewünschten Menü-Variante führen. Siehe hierzu unsere Kochbuch-Seite zum Thema Menüs.

Für Fortgeschrittene: Bedingungen

Im Website Baker Forum kam relativ häufig die Frage, wie man es erreichen könne, einen bestimmten Teil der Seite nur unter bestimmten Umständen anzuzeigen, z.B. wenn der entsprechende Block auch wirklich Inhalte hat. Das ist zwar möglich, erfordert aber PHP-Code im Template. Wir haben hierfür eigene Markups entwickelt.

Prüfen, ob ein Block Inhalte hat

    {if check_block(2)}
        {page_content(2)}
    {/if}

Okay, zugegeben, ein bißchen Ähnlichkeit mit PHP-Code hat das immer noch. In diesem Beispiel wird alles das, was zwischen {if check_block(2)} und {/if} steht, nur dann ausgegeben, wenn der Block 2 auf der aktuellen Seite Inhalte, also aktive Sektionen hat. Es kann natürlich immer noch sein, daß eine aktive Sektion dennoch nichts ausgibt…

Prüfen, ob eine Sektion Inhalte hat

Der Unterschied zwischen Block und Sektion ist, daß ein Block mehrere Sektionen (=Module) beinhalten kann. Analog zu obigem Markup prüft check_section(<Nummer>), ob die mit <Nummer> angegebene Sektion aktiv ist.

    {if check_section(2)}
        ...erscheint nur, wenn die Sektion mit der ID 2 aktiv ist...
    {/if}

Die Sektionsnummer findet man im Backend beim Bearbeiten des Seiteninhalts.

Falls man es trotzdem noch braucht: Seitentitel, Schlüsselwörter, Beschreibung...

Dank des Markup {get_page_headers()} müssen Seitentitel & Co. nicht mehr einzeln in den Seitenkopf eingetragen werden. Aber vielleicht braucht man sie auch mal an anderer Stelle. Daher existieren folgende Markups (weiterhin, aus Sicht von Website Baker):

{page_title()}
Seitentitel
{page_description()}
Seitenbeschreibung
{page_keywords()}
Schlüsselwörter
{$WEBSITE_TITLE}
Der globale Titel, den man im Backend unter Einstellungen → SEO Einstellungen → Webseitentitel eingetragen hat
{$DEFAULT_CHARSET}
Zeichenkodierung
addons/tpl/markups.txt · Zuletzt geändert: 2014/11/25 00:00 (Externe Bearbeitung)