Teil 6 Textbausteine erzeugen und im Smarty Template Parser lesen

Der Programmcode wird in diesem Beitrag vom Text getrennt und es werden reine eigenständige Textbausteile als Flatfile-DB erzeugt die das Template einliest.

Juli 5, 2023 - Lesezeit: 3 Minuten

Teil 6 - Trennen Sie den Programmcode vom Text. Dieser Beitrag zeigt Ihnen wie Sie dies mit wenigen Zeilen Code realisieren und reine Textbausteine erzeugen.

Das bisherige PHP-Rahmenwerk um die freie Template Engine Smarty funktioniert schon sehr gut. Etwas nachteilig ist allerdings noch die Tatsache, das die Textbausteine immer noch mit wenigen PHP-Variablen vermischt sind. In diesem Teil der Beitragsreihe geht es darum, den Text vollständig von den Templatevariablen zu trennen.

01  <?php
02    $titel_var   =
03    "Das ist der Titel Beitrag A";
04
05    $anleser_var =
06    "Beitrag A ist der erste Beispieleitrag";
07
08    $inhalt_var  =
09    "<p>Der Inhalt des Beitrags A - der Haupttext.</p>";
10
11    $autor_var   = "Oliver Lohse";
12    $mail_var    = "moc.liamg@tset‎";
13    $datum_var   = "12-2019";
14    $footer_var  = "(c) Oliver Lohse";
15  ?>

So oder ähnlich (Coding oben) sieht der Content Ihres Templates aus, der Beitragstext ist bestimmten Templatevariablen zugewiesen in denen er später zur Laufzeit angezeigt werden soll. Die Mischung aus PHP und Beitragstext ist etwas hinderlich beim schreiben von Inhalt, daher müssen Sie dies jetzt anpassen. Der neue Dateiaufbau ist nun wie folgt:

01  Das ist der Titel Ihrer Seite
02  ---
03  Hier kommt der Anleser des Beitrags
04  ---
05  Der eigentliche vollständige Beitragstext
06  ---
07  Name des Autors
08  ---
09  Datum
10  ---
11  Mailadresse
12  ---
13  URL des vorangegangenen Beitrags
14  ---
15  URL des folgenden Beitrags
16  ---
17  URL zum Index bzw. Home

Alle PHP relevanten Attribute sind aus dem Inhalt der Datei verschwunden. Die Zuweisung der Textbausteine zu den Templatevariablen muss an anderer Stelle erfolgen, er findet ab sofort in der index.php statt.

01  <?php
02      require_once('libs/Smarty.class.php');
03      $smarty = new Smarty();
04    
05      $smarty->template_dir = 'templates';
06      $smarty->compile_dir  = 'templates_c';
07      $smarty->config_dir   = 'configs';
08  
09    // ---------------------------------------------------------------------------
10    // In Abhaengigkeit vom Eingabeparameter einen anderen Text einbinden
11    // Ein Default-Beitrag wird zuerst geladen falls keine Eingabe erfolgt
12    // dies wird dann vom darauffolgenden IF ueberschrieben.
13    // ---------------------------------------------------------------------------
14    if(isset($_GET['artikel'])) {
15      $artikel = $_GET['artikel'];
16    } else {
17      $artikel = 'home';
18    }
19  
20    $fileContent = file_get_contents ("texte/".$artikel.".php");
21    $textBausteine = explode("---", $fileContent);
22  
23    // ---------------------------------------------------------------------------
24    // Die Template-Vars (links ) mit den Smarty-Template-Vars (rechts)
25    // verbinden
26    // ---------------------------------------------------------------------------
27  
28    $footer_var = '© Developed by Oliver Lohse with Smarty Template Engine and Bootstrap CSS';
29
30    $smarty->assign('titel_tmpl',        $textBausteine[0]);
31    $smarty->assign('anleser_tmpl',      $textBausteine[1]);
32    $smarty->assign('inhalt_tmpl',       $textBausteine[2]);
33    $smarty->assign('autor_tmpl',        $textBausteine[3]);
34    $smarty->assign('datum_tmpl',        $textBausteine[4]);
35    $smarty->assign('mail_tmpl',         $textBausteine[5]);
36    $smarty->assign('beitrag_back_tmpl', $textBausteine[6]);
37    $smarty->assign('beitrag_next_tmpl', $textBausteine[7]);
38    $smarty->assign('home_tmpl',         $textBausteine[8]);
39
40    $smarty->assign('footer_tmpl',       $footer_var);
41  
42    // ---------------------------------------------------------------------------
43    // Das Template starten
44    // ---------------------------------------------------------------------------
45    $smarty->display('artikel.php');
46  
47  ?>

Die Zeile 20 und 21 liest die Datei, die bekanntlich als Parameter an die index.php übergeben wird, als vollständigen String ein. Der anschließende explode splittet den Inhalt anhand des Delimiters --- in je einen Array-Slot auf. Jeder einzelne Slot des Arrays wird dann von Zeile 30 bis 38 den Templatevariablen zugewiesen.

Anmerkung - Sie können als Text-Trenner statt des --- auch jedes andere Spezialzeichen nutzen, wichtig ist, das dieses nicht im regulären Text auftauchen sollte.

Schlagworte:

Beiträge in der Kategorie "Smarty":

Erstellen Sie ein Webseite mit der Template-Engine Smarty ohne aufwändigen Programm Code. Ein trivialer Beitragsloop wiederholt sich in festen Strukturen.

Werten Sie in eigenen Templates mit der Template-Engine Smarty, Variablen aus und steuern dadurch die individuelle Ausgabe des Content Ihrer Webseite.

So verhindern Sie die Ausgabe von Warnungen und Meldungen in der Template Engine Smarty. Besonder hilfreich während der Entwicklung in kleinen Projekten.

Lesen Sie mit der Template Engine Smarty die Konfigurationsdatei config/config.conf und werten individuelle Variablen für die Steuerung des Templates aus.

Möchten Sie in Smarty Templates Bedingungen abfragen, dann können Sie den IF Befehl des Smarty Parsers nutzen, um die Ausgabe des Templates zu steuern.

Der Programmcode wird in diesem Beitrag vom Text getrennt und es werden reine eigenständige Textbausteile als Flatfile-DB erzeugt die das Template einliest.

Konvertierung der Texte und ersetzen von speziellen HTML Characters in Unicode unter Nutzung so genannter Modifikatoren bzw. Modifier im Templateparser Smarty

Laden Sie mit der kostenlosen Template-Engine Smarty verschiedene Textbausteine aus einem Content Ordner und zeigen deren Inhalte auf der Webseite an.

Legen Sie ein erstes sehr einfaches TPL Template für die Template-Engine Smarty an und lassen den Inhalt eines Artikels und Beitrags laden und rendern.

Nachdem Sie die kostenlose Template-Engine Smarty herunter geladen haben, installieren Sie die Programme auf den Webserver und beginnen mit dem Templating.

Die Template-Engine Smarty ist sehr beliebt für sehr sichere Webseiten. Dieser Workshop führt Sie in die Welt von Smarty ein und startet mit der Installation

Kategorien

Automad

Das kostenlose Flat File CMS Automad bietet bereits nach der Installation auf dem Server das beste Layout unter allen CMS am Markt.

Bludit

Das kostenlose Flatfile CMS Bludit ist das beliebteste Content Management System, das dem großen WordPress sehr nahe kommt, jedoch deutlich mehr Sicherheit bietet.

CMS

In dieser Rubrik geht es um übergreifenden Themen aus dem Bereich der Content Management Systeme.

Coast

Coast ist ein CMS aus deutscher Feder und ist mit einem exzellenten HTML/PHP Frontend-Editor zu vergleichen, die Daten werden direkt in der HTML-Datei gespeichert.

GetSimple

Das kostenlose Content Management System GetSimple verspricht genau das, was der Name andeutet, ein stabiles Flat File CMS auf der Basis von XML-Dateien.

GRAV

Das kostenlose Content Management System GRAV gehört zu den komplexesten CMS, da es den größten Funktionsumfang mitbringt.

Handlebars.JS

Handlebars.js ist eine kostenlose JavaScript Template-Engine mit der einfache Webseiten oder Prototypen leicht und schnell erzeugt werden können.

htaccess

Die .htaccess ist die wohl wichtigste und mächtigste Datei, über die der Server seinen Umgang mit den Daten und Besuchern steuert.

Java

Java ist die strategische Programmiersprache für verteilte Anwendungen im Internet oder auch in der Client-Server Architektur und sogar auf dem Host.

Monstra

Das CMS Monstra ist ein überaus gelungenes und sauber entwickeltes CMS mit Admin-Backend und Flat File Datenbank.

PHP

PHP ist die strategische Programmiersprache des Internets, mit PHP geht alles und ohne PHP nichts! Allerdings ist PHP nicht auf lokalen Client-Umgebungen verbreitet (aber möglich).

Pico

Das CMS Pico ist derzeit das ausgereifteste und einfachste headless CMS für den Einsatz großer Mengen an MarkDown-Files (Content).

Smarty

Smarty ist eine Template-Engine auf Basis der Programmiersprache PHP und ist in der Lage HTML-Vorlagen (Templates) dynamisch mit Content zu versorgen.

Typemill

Typemill ist zunächst ein ganz normales Flat File CMS, entfaltet jedoch sein wahres Potenzial mit einigen besonderen Plugins, die es zum kraftvollen Publishing-Tool macht.

WonderCMS

WonderCMS ist das mit Abstand kleinste CMS das es derzeit kostenlos gibt. WonderCMS kommt mit einem PHP-Script und einer JSON-Datenbank aus und bietet ein Backend.

WordPress

Das datenbankbasierte Content Management System WordPress ist das beliebteste CMS und hält die meisten Installationen - ist allerdings auch das am meisten attackierte System.

Derzeit sind noch keine passenden Beiträge vorhanden.