blattertech informatikLukas BlatterNiederlenzerstrasse 21
5600 Lenzburg/AGSwitzerland

079 569 25 90
https://www.blattertech.ch

Adresse anzeigen

Blog

Smarty: Systempfad

23. Januar 2017 |  CMS MADE SIMPLE |  SNIPPLETS |  SMARTYKommentare (0)

Für diverse Operationen mit Dateien benötigt es den Systempfad und nicht die URL. Wenn aber nur die URL zur Verfügung steht, muss dies zuvor in den Systempfad umgewandelt werden.

Dies lässt sich mit Smarty3-Bordmitteln schnell und effizient erledigen, und bedarf keines eigenen Plugins. Die URL sei dabei in der Variable $iurl enthalten (z.Bsp. https://www.domain.net/uploads/images/logo1.gif)

{$ipath = "{$smarty.server.DOCUMENT_ROOT}{$iurl|parse_url:$smarty.const.PHP_URL_PATH}"}

Ausgabe der Variable mit {$ipath}

/users/w1234567/www/uploads/images/logo1.gif

Quelle forum.cmsmadesimple.de


Smarty: Exif-Daten von Bildern auslesen und anzeigen

19. Januar 2017 |  SMARTY |  SNIPPLETS |  CMS MADE SIMPLEKommentare (0)

Will man zu einer Gallery Detaildaten zu den Bilder wie Auflösung, Brennweite und Belichtungsdauer bis hin zu den GPS-Koordinaten uvm. anzeigen, so kann dies mit der PHP Funktion exif_read_data() umgesetzt werden. Diese Funktion liest sämtliche vorhandenen Exif-Daten eines Bildes aus und liefert sie in einem Array zurück. Die Exif-Daten sind die Meta-Daten der Bilder.

In CMS Made Simple wird dies wie folgt eingebaut

{$exif = exif_read_data({$ipath}, 'IFD0')}

Hinter $ipath verbirgt sich der Systempfad des Bildes, NICHT die URL. Wie eine URL in den Systempfad konvertiert werden kann, ist hier beschrieben: https://www.cmsmadesimple.de/forum/view … hp?id=4963

Vor dem praktischen Einsatz solltet ihr allerdings eure Bilder prüfen, welche EXIF-Daten vorhanden sind. Diese sind zwar grundsätzlich standardisiert, aber da hat jeder Kamera-Hersteller so seine eigenen Vorstellungen, was geschrieben wird.


CMSMS: Smarty Code aus einem String entfernen

6. Oktober 2013 |  SMARTY |  CMS MADE SIMPLEKommentare (0)

Vor kurzem musste ich aus einem Text den allenfalls enthaltenen Smartycode entfernen. Dies geht mit folgendem Regex Snippet:

{$entry->content|regex_replace:"/\{[^\]]*\}/":''|tbTruncateBetter:500:' ...'}

In diesem Beispiel kürze ich mit tbTruncateBetter (ein Plugin des ToolBox Moduls) einen Text auf 500 Zeichen. Nun kann in diesem Text ein Smarty-Tag wie z.B. {Gallery dir ="/irgend/eine/gallery"}  vorkommen. Diese möchte ich in der gekürzten Übersicht natürlich nicht laden. Deshalb habe ich vor den Aufruf von tbTruncateBetter das Regex eingefügt, welches den Smarty-Tag entfernt.

Nochmals kurz:

{$variable|regex_replace:"/\{[^\]]*\}/":''}

 


Bilder für einen Slider / Gallery direkt mit Smarty auslesen

4. Oktober 2012 |  SMARTY |  SNIPPLETS |  CMS MADE SIMPLEKommentare (0)

Statt die für einen Slider benötigten Bilder mit einem Plugin oder einem UDT zu ermitteln, kann dies auch mit reinen Smarty-Funktionen erledigt werden. Mit der PHP Funktion "glob" kann der Inhalt eines Ordners gefiltert nach Dateiendung durchsucht werden.

{assign var='slider' value='uploads/slider/*.jpg'|glob}
{capture}{$slider|@shuffle}{/capture}
{foreach from=$slider item='one' name=oneitem}
<div><img src='{root_url}/{$one}' width='852' height='100' alt='' /></div>
{/foreach}

Copyright Link im Footer mit Jahreszahl

10. Januar 2012 |  CMS MADE SIMPLE |  SNIPPLETS |  SMARTYKommentare (0)

Die meisten Webseiten enthalten einen Footer mit einem Copyright. Ist in diesem eine Jahreszahl enthalten, so sollte diese auch aktuell gehalten werden. Hier eine Lösung wie dies mit Smarty sehr einfach gelöst werden kann:

<p>&copy; copyright 2010 - {'Y'|date}, <a href="http://www.blattertech.ch">blattertech informatik</a>, alle Rechte vorbehalten.</p>

Smarty: Verschiedene Werte mit Assign kombinieren

6. November 2011 |  SMARTY |  CMS MADE SIMPLEKommentare (0)

Bevor ich's wieder vergesse, da ich es zu wenig brauche. Man kann in Smarty mit Assign Problemlos Variablen und weitere Werte kombinieren. Dazu ist das ` Zeichen notwendig:

{assign var="domain" value="http://`$smarty.server.SERVER_NAME`"}

Die Ausgabe von $domain ist somit: http://www.blattertech.ch


Smarty: Ein String mit explode in ein Array umwandeln

4. November 2011 |  SMARTY |  SNIPPLETS |  CMS MADE SIMPLEKommentare (2)

Mit der PHP Funktion explode kann ein String mittels eines Trennzeichens in ein Array umgewandelt werden. Ein Beispiel:

$string = "Apfel,Birne,Feige,Pflaume";

In diesem String ist das Trennzeichen das Komma. Somit wird mit explode ein Array mit 4 Einträgen erstellt. In Smarty umgesetzt sieht dies so aus:


Smarty Array und foreach Schleifen

11. Juni 2011 |  SMARTY |  SNIPPLETS |  CMS MADE SIMPLEKommentare (2)

Mit Smarty werden die Daten in der Regel mit einem ein oder mehrstufen Array übergeben. Um ein Array auszugeben benutzt man in der Regel den foreach Befehl. In diesem Beitrag behandle ich die verschiedenen Möglichkeiten die man mit Smarty beim durchlaufen einer foreach Schleife

Erstes und letztes Element einer foreach Schleife

first ist TRUE wenn die aktuelle Iteration das erste Element ist und last ist TRUE wenn die aktuelle Iteration die letzte Element ist: