Bludit CMS

Bludit CMS Workbench - Codeschnipsel, um das eigene Bludit CMS anzupassen



Smarty Textkonvertierung HTML

Teil 5 - Deutschen sonderzeichen wie ü und ä müssen zwingend in HTML konforme Zeichen umgewandelt werden. Die Smarty Modifier erlauben solche manipulationen im Template.

Deutsche Texte die Sonderzeichen wie "öäü" enthalten, können mit der Template Engine Smarty und dem Templatepattern dieser Beitragsreihe noch nicht automatisch konvertiert werden, damit Sie dies nicht ständig beim schreiben des Beitrags von Hand erledigen müssen, sollte Sie das folgende Coding in Ihre index.php übernehmen.

index.php

Fügen Sie in die Datei index.php eine neue Funktion ein (übrigens, sehen Sie mir bitte nach wenn ich diese immer als Methoden bezeichne, denn nichts anderes sind Funktionen, es sind Methoden!):

01  <?php
02 require_once('libs/Smarty.class.php');
03 $smarty = new Smarty();
04
05 function remove_special_chars ($text) {
06 $specialChars   = array("ö", "ä", "ü", "Ö", "Ä", "Ü", "ß");
07 $specialReplace = array("&ouml;","&auml;","&uuml;","&Ouml;","&Auml;","&Uuml;","&szlig;");
08 $text = str_replace($specialChars, $specialReplace, $text);
09 return $text;
10 }
11 ...
12 ... <- den Rest des Codes kennen Sie aus dem vorherigen Artikel

Diese neue Funktion nimmt einen String entgegen und wandelt alle speziellen Zeichen aus dem ARRAY $specialChars in die korrespondierenden Zeichen des Arrays $specialReplace um.

artikel.tpl

Damit die Template Engine Smarty die neue Methode nutzt, muss diese im Artikel-Template mit angegeben werden. editieren Sie die artikel.tpl im Ordner templates und stellen Sie jeder Template-Variable mittels Pipe "|" die neue Methode nach, dies nennt sich Modifikator.

...  ...
021 <body>
... ...
029 <div class="jumbotron">
030 <h1 class="display-4">{$titel_tmpl|remove_special_chars}</h1>
031 <hr class="my-4">
032 <p class="lead">{$anleser_tmpl|remove_special_chars}</p>
033 </div>
...
050 </body>
051 </html>

Smarty ruft beim interpretieren des Templates die neue Methode auf und übergibt ihr automatisch den Inhalt des Platzhalters. Die Syntax:

{$anleser_tmpl|remove_special_chars}

ruft folglich die neue Methode (function) remove_special_chars() in der Datei index.php auf und übergibt ihr den Inhalt aus der Variablen $anleser_tmpl. Die Methode liefert den bereinigten String ohne "öüä" mit &ouml; &uuml; und &auml; an ihren Aufrufer zurück.

Anmerkung - Durch eigene "functions" (Methoden) können Sie Ihrem Template mehr Intelligenz verleihen und machen es leistungsfähiger. Neue "functions" können Sie mit Pipe | anfügen, Sie können sogar weitere "functions" mit dem Pipe-Operator anhängen {$anleser_tmpl|function_a|function_b|function_c}, Smarty wird sie alle abarbeiten.




Empfehlungen


Smarty Template Engine

Teil 1 - des Template-Workshops mit Smarty zeigt Ihnen was Smarty eigentlich ist und kann. Verschaffen Sie sich einen Überblick für eigene Projekte.


Smarty installieren

Teil 2 - des Template-Workshops zur Template-Engine. Installieren Sie Smarty auf dem Webserver Ihres Providers. Legen Sie ein paar grundlegende Ordner an um loszulegen.


Smarty, multipler Content

Teil 4 - der Templatebau-Reihe für das überaus populäre Template-System Smarty. Legen Sie nun Ordner für Ihre Texte des Contant an, um verschiedene Inhalte laden zu können.


Smarty Template-Abfragen

Teil 7 - Implementieren Sie im Template einfache Kontrollstrukturen, um bestimmte Bereiche im Template ein- oder auszuschalten.


Smarty Template anlegen

Teil 3 - des Template-Workshops in dem Sie ein erstes Template anlegen und Daten anzeigen lassen können - die erste Webseite zeigt sich.


Smarty Textbausteine, Code

Teil 6 - Trennen Sie den Programmcode vom Text. Dieser Beitrag zeigt Ihnen wie Sie dies mit wenigen Zeilen Code realisieren können.




Es wurden noch keine Kommentare verfasst, sei der erste!

About

Tipps. Tricks, Snippets, Hacks und Codings zum CMS Bludit, Automad, WordPress, Joomla, GetSimple, Typesetter, Nibbleblog oder den angesagten Template Engines wie Smarty.


Impressum - Datenschutz - Copyright - RSS - Kontakt

Leser heute

2661