YAML-Spalten im Template (Teil 2)

Spalten ins Layout einbinden

Von: Santscho

Um was gehts? — Implementieren der Spaltentemplates | Anwendung

a

ACHTUNG! Jetzt wird es gleich sehr gefährlich im Template-Reaktor! Deshalb wird zuerst ein Backup des Templates erstellt, um den absoluten Supergau zu vermeiden (oder um sich viel Arbeit zu ersparen, falls man einen Fehler einbaut).

ADMINVorlagenVorlage kopieren

Das Duplikat mit _BACKUP kennzeichnen.

Bordmittel runterladen

Um möglichst Fehler zu vermeiden, lädt man die folgende Text-Datei runter und öffnet sie in einem Texteditor. Die enthaltenen Code-Schnippsel sind dazu gedacht, Inhalt-Templates wie hier im Tutorial beschrieben zu erstellen (Content, Block 1, Block 2). In der Datei sind nur Bereiche zwischen gestrichelten Linien zum kopieren/einfügen bestimmt.

Spalten-Bezeichnungen im Seitenlayout definieren

Bloecke_definieren.png

Spalten-Bezeichnungen einfügen

Das erste Code-Schnippsel der Textdatei einfügen unter:  ADMINSeitenlayoutBlöcke Eigene:

Spalten-Bereiche und Spalten-Container im Template definieren

template_spaltendefinitionen.png

Spalten-Bezeichnungen einfügen

Nachdem die Spalten-Bezeichnungen gemacht wurden, erhält die YAML-phpwcms-Vorlage automatische weitere Inhaltsbereiche, die nach den zuvor eingefügten Bezeichnungen im Seitenlayout benannt sind.

Weitere Code-Schnippsel der Textdatei, wie im Bildschirmfoto gezeigt, einfügen unter:  ADMINVorlagenYAML-Vorlage (Original-Template, nicht das Backup! Backup gemacht?)

Warum müssen diese Blocks mit Code gefüllt werden?

Würde man diese Container-Definitionen direkt im Hauptteil der Vorlage einfügen, würde das auch funktionieren. Aber durch Anwendung dieser Benutzer-Blöcke wird phpwcms beigebracht, dass die Spalten im Browser nur gerendert werden dürfen, wenn diese auch einen Inhalt (CP) besitzen. Werden zum Beispiel die Spalten mit Spaltenlinien versehen, würden diese im Browser erscheinen, auch wenn gar nichts in den Spalten vorhanden ist. Auch Spalten-Hintergrundfarben und margins (Abstände) würden gerendert werden.

Zuordnen der Bereiche im Template

spalten_code.png

Spalten dem xhtml-Code zuweisen

Nun wie Bildschirmfoto die orange markierte Zeile auswählen und mit dem letzten Code-Schnippsel der Text-Datei ersetzen. Zur Erinnerung: Massgebend für das Aufsuchen der betreffenden Stelle ist nicht die Spaltenbezeichnung (col_1, col_2, col_3), da diese je nach YAML-Template vertauscht sein können. Massgebend ist der RT {%CONTENT} .

Nun noch die Vorlage speichern und fertig.

Sicherheits-Kontrolle

Im Browserfenster führt man nun ein "Refresh" aus und kontrolliert, ob alle Seiten noch korrekt dargestellt werden. Falls nicht: im Backup alles aus dem Bereich Haupt: kopieren und in der defekten Vorlage wieder einfügen.

Es wird spannend! – Contentparts den Spalten zuweisen

spalten_im_CP.png

Die gewünschte Ziel-Spalte im CP auswählen.

Nun können die Spalten bequem im Template mit Content-Parts gefüllt werden. Am Besten erstellt man einen Test-Artikel und teilt den Spalten diverse CP's zu. — Lernen durch machen!

Fehler in der Druck-Ansicht (phpwcms < r242)

Wer eine phpwcms-Version unter r242 verwendet, sollte die Datei yaml_printfix.php in das frontend_render Verzeichnis kopieren. Dieses Skript unterdrückt die Ausgabe der RTs von nicht verwendeten "Custom-Blocks" in der druckerfreundlichen Seitenausgabe.

yaml_printfix.php kopieren nach templateinc_scriptfrontend_render