zorg Smarty Template Doku

Smarty Grundlagen

HTML: http://selfhtml.teamone.de/html/index.htm
smarty (Template Engine): http://smarty.php.net/manual/de/


In smarty gibt es folgende Sprachkonstrukte: (Grundsätzlich sind alle smarty-Befehle in geschweifte Klammern { } gefasst)

Variablen Beispiele: {$var} {$var[2]} {$var.id} {$var->id}
Variablen beginnen mit einem $. Es gibt Arrays ({$var[2]}), Assoziative Arrays ({$var.id]} und Objekte ({$var->id}). Auf Objekten können keine Funktionen aufgerufen werden.

Eine normale Variable wird folgendermassen erzeugt: {assign var="meine_var" value="ein Wert"}

Es ist auch möglich, mit Smarty Arrays zu erzeugen. Mehr dazu bei der Array Funktion.

Modifikatoren Beispiele: {$var|mod} {$var|mod1|mod2} {$var|mod:param} {$var|mod:p1:p2}
Modifikatoren passen vor der Ausgabe die Variabel-Werte an. (Die Variable selbst wird nicht geändert) Modifikatoren werden mittels Pipe | hinter den Variabel-Namen gehängt. Es können auch mehrere Modifikatoren angehängt werden. Dem Modifikator können (durch : getrennt) auch eines oder mehrere Argumente übergeben werden.

Funktionen Beispiele: {func} {func param="probier das mal"} {func param="Hans" id=6}
Die Reihenfolge der Argumente spielt keine Rolle. Wie bei HTML ist es empfehlenswert, die Argument-Werte in Anführungszeichen zu setzen. Bei Zahlen oder einzelnen Wörtern funktioniert es aber auch ohne.

Blöcke Beispiele: {block}...{/block} {block param="hans"}...{/block}
Blöcke müssen immer von einem öffnenden und schliessenden Tag umgeben sein. Wie bei Funktionen können einem Block im öffnen Tag Parameter übergeben werden.

Zusätzlich gibt es auch noch Funktionen zur Ablaufkontrolle wie if oder loops. Wie diese verwendet werden, siehe smarty-Website.


zorg Smarty Features

Packages:

[Error: Access denied on 28]



Mathematische Funktionen

Ganz einfach...
{$var1+5} = x
{$var1-$var2} = x
{$var1/5} = x
{$var1*$var2} = x

Komplexer...
{$var1+$var2*$var3} = x
{assign var="var1" value=25}
{assign var="var2" value=5}
{$var1/$var2}
= 5
{assign var="var3" value="`$var1+$var2`"} = x
{$truncate_var|truncate:"`$truncate_count/$truncate_factor-1`"} = x (gekürzt)


Datums-Funktionen

Beispiele: {$timestamp-var|modifier}
{$smarty.now} = aktueller Zeitstempel (1714974692)
|date_format = formatiert das Datum schön kurz (May 6, 2024)
|datename = ähnlich wie oben, nur eigene Zorg-Funktion (07:51)
|date_format:"(definitionen)" = gemäss Smarty-Doku
{$smarty.now|date_format:"%d.%m.%Y %H:%M"} = 06.05.2024 07:51
{$smarty.now|date_format:"%A, %d. %B %Y"} = Monday, 06. May 2024


Variablen

Template {$tpl.x}
x ersetzen mit:
id ID des aktuellen Templates
created Erstelldatum
owner User (id), der das Template erstellt hat
last_update Datum der letzten Aenderung
update_user User (id), der die letzte Aenderung gemacht hat.
root ID des obersten Templates in der Include-Hierarchie


User {$user->x}
x ersetzen mit:
id User ID
username Benutzername (ohne Clan Tag)
clantag Clan Tag
password User passwort
email Benutzer E-Mail Adresse
lastlogin Letzer Login (Timestamp)
currentlogin Aktueller login (Timestamp)
activity letzte Aktivität (Timestamp)
ausgeloggt_bis Datum bis wann der User sich ausgeloggt hat
image Benutzer bild (vollständiger Pfad, falls kein Bild: none.jpg)
typ Benutzer typ
member Member (bool)
maxdepth Forumanzeigeschwelle
show_comments Comments in Templates einblenden (=1)
...oder ausblenden (=0)

Zorg Smarty Variablen

Expression Category Description Members only
{$color} Layout Array mit allen Standardfarben (wechselt zwischen Tag und Nacht)
{$event_newest} Events Zeigt neusten Event an
{$nextevents} Events Zeigt nächsten kommenden Event an
{$eventyears} Events Zeigt alle Jahre an, in denen Events erfasst sind
{$rezept_newest} Rezepte Zeigt neustes Rezept an
{$categories} Rezepte Zeigt Liste von Rezept-Kategorien an
{$num_errors} System Zeigt Anzahl geloggter SQL-Errors an
{$sun} Layout Zeigt an ob Sonne "up" oder "down" ist
{$sunset} Layout Zeit des nächsten SonnenUNTERgangs
{$sunrise} Layout Zeit des nächsten SonnenAUFgangs
{$country} Layout ISO-Code des ermittelten Landes des aktuellen Besuchers
{$country_image} Layout Bildpfad zur Länderflagge des ermittelten Landes
{$request} URL Handling associative array: page = requested page / params = url parameter / url = page+params
{$url} URL Handling Gesamte aktuell aufgerufene URL (inkl. Query-Parameter)
{$self} URL Handling Self = Aktuelle Seiten-URL
{$user} Usersystem Array mit allen User-Informationen des aktuellen Besuchers
{$usertyp} Usersystem Array mit allen vorhandenen Usertypen: alle, user, member und special
{$user_mobile} Usersystem Zeigt an ob aktueller Besucher mittels Mobiledevice die Seite aufgerufen hat
{$user_ip} Usersystem IP-Adresse des aktuellen Besuchers
{$comments_default_maxdepth} Layout Standart angezeigte Tiefe an Kommentaren z.B. im Forum
{$online_users} Usersystem Array mit allen zur Zeit eingeloggten Usern
{$num_new_events} Events Zeigt Anzahl neu erstellter Events an Ja
{$login_error} Usersystem Ist leer oder enthält Fehlermeldung eines versuchten aber fehlgeschlagenen Logins eines Benutzers
{$code_info} Code Info Holt die aktuellen Code Infos (Version, last commit, etc.) aus dem Git HEAD
{$smarty_menus} Smarty Array mit allen verfügbaren Smarty-Menutemplates Ja


Modifier

Vor die Pipe | kommt jeweils ein Variablen-Name. Nach der Pipe kommt der Modifier. Dieser ändert die Variable.

{$timestamp|dateformat}
Gibt einem Timestamp ein schönes Datums-Format.

{$userid|username}
Konvertiert User-ID zu Username.

{$groupid|usergroup}
Gibt den Namen der entsprechenden Usergroup aus. Usergroups sind die Gruppen, an welche die Lese- und Schreibrechte eines Templates erteilt werden.

{$string|truncate:30}
Kürzt einen String (Text) oder eine Zahl auf die mit :XY angegebene Länge. Weitere Beispiele:
{$string|truncate:30:"..."} - Kürzt auf 30 Zeichen und setzt "..." an
{$string|truncate:30:"---":true} - Kürzt auf 27 Zeichen und setzt "---" an (= 30 Zeichen lang)


Zorg Smarty Modifikatoren

Expression Category Description Members only
{$var|datename} Datum und Zeit {$timestamp|datename} konviertiert einen timestamp in ein anständiges datum/zeit Format
{$var|stripslashes} Variablen Modifier für die Funktion stripslashes() wie in PHP
{$var|strstr} Variablen Modifier für die Funktion strstr() wie in PHP
{$var|stristr} Variablen Modifier für die Funktion stristr() wie in PHP (Gross-/Kleinschreibung ignorieren)
{$var|sizebytes} Variablen stellt z.B: ein "kB" dahinter und konvertiert die zahl.
{$var|quantity} Variablen {$anz|quantity:Zug:Züge}
{$var|number_quotes} Variablen Registriert für Smarty den Modifier number_quotes() aus PHP
{$var|htmlentities} Variablen Registriert für Smarty den Modifier htmlentities() aus PHP
{$var|base64decodeurl} URL Handling Dekodiert die spezielle URL-safe base64 Strings für {$url} Variablen; Beispiel: {$url|base64encodeurl}
{$var|base64decode} Variablen Registriert für Smarty den Modifier base64_decode() aus PHP
{$var|base64encodeurl} URL Handling Spezielle URL-safe base64_decode() für {$url} Variablen; Beispiel: {$url|base64encodeurl}
{$var|base64encode} Variablen Registriert für Smarty den Modifier base64_encode() aus PHP
{$var|concat} Variablen Registriert für Smarty den Modifier concat() aus PHP
{$var|ltrim} Variablen Registriert für Smarty den Modifiert ltrim() aus PHP
{$var|maxwordlength} Variablen Registriert für Smarty den Modifier maxwordlength() aus PHP, 1.param = word length
{$var|name} Usersystem usersystem
{$var|username} Usersystem {$userid|username} konvertiert userid zu username
{$var|userpic} Usersystem {$userid|userpic:0} zeigt Userpic für eine User-ID, 1.param = Username anzeigen ja/nein
{$var|usergroup} Usersystem {$id|usergroup} für tpl schreib / lese rechte
{$var|userpage} Usersystem {$userid|userpage:0} , 1.param = username (0) or userpic (1)
{$var|check_userimage} Usersystem {$userid|@check_userimage} - ersetzt $userid mit Array["typ","pfad"],
{$var|ismobile} Usersystem {$userid|ismobile} ermittelt ob letzter Login eines Users per Mobile war
{$var|strip_anchor} URL Handling link
{$var|change_url} URL Handling newquerystring
{$var|print_r} Variablen ACHTUNG {$myarray|@print_r} verwenden!
{$var|implode} Variablen String glue
{$var|floor} Mathematische Funktionen util
{$var|print_array} Variablen {print_array arr=$hans} gibt die Elemente eines Smarty {$array} aus
{$var|smarty_modifier_rendertime} System Smarty Template Rendering-Time

Layout

{include file=1}
Fügt ein anderes Template an dieser Stelle ein. 'file' gibt die tpl-id an, welche unten rechts auf jeder Seite zu sehen ist.

{spc i=3}
Fügt eine bestimmte Anzahl (hier 3) 'Unbreakable Spaces' ein

{link tpl=1 param="htmlparameter=geek"}...{/link}
Fügt einen Link zum Template tpl (hier 1) ein. Die tpl-id könnt ihr auf jeder Seite unten rechts sehen. Mittels param="..." könnt ihr weitere eigene URL-parameter anfügen.

{link url="gallery.php?show=albumThumbs" param="albID=41"}...{/link}
Fügt einen Link zu einer definierten URL (url=...) ein und übergibt noch zusätzliche Parameter (hier zum Album#41 [APOD]).

{button tpl=1 param="htmlparameter=geek"}...{/button}
Wie Link, aber als Button.

{edit_link}[edit]{/edit_link}
Fügt einen Link ein, durch welchem das aktuelle Template direkt im Editor geöffnet wird (sinnvoll bei Templates ohne Footer oder Templates, die anderswo included werden)

Zorg Smarty Blöcke

Expression Category Description Members only
{zorg} Layout {zorg title="Titel"}...{/zorg} displays the zorg layout (including header, menu and footer) Nein
{link} HTML {link tpl=x param="urlparams"}text{/a} default tpl = das aktuelle Nein
{new_link} Smarty Template shows a link to the editor with new tpl. Nein
{button} HTML {button tpl=x param="urlparams"}button-text{/button} Nein
{form} HTML {form param="urlparams" formid=23 upload=1}..{/form} Nein
{table} HTML layout, table Nein
{tr} HTML layout, table > tr Nein
{td} HTML layout, table > tr > td Nein
{menubar} Layout menu Nein
{menuitem} Layout menu Nein
{edit_link} Smarty Template {edit_link tpl=x} link zum tpl-editor, default ist aktuelles tpl Nein
{substr} Variablen {substr from=2 to=-1}text{/substr} // gleich wie php-fnc substr(text, from, to) Nein
{trim} Variablen text modification Nein
{member} Layout {member}..{/member} {member noborder=1}..{/member} Nein
{mail_infoblock} Verein Mailer - Info Block {mail_infoblock topic="headline"}...{/mail_infoblock} Nein
{mail_button} Verein Mailer - Call-to-Action-Button {mail_button style="NULL|secondary" position="left|center|right" action="mail|link" href="url"}button-text{/mail_button} Nein
{telegram_button} Verein Mailer - Telegram Messenger Button {telegram_button}button-text{/telegram} Nein
{swissqrbillcode} zorg Swiss QR Bill - QR-Code {swissqrbillcode size="s|m|l" user=23 betrag=23.00}zorg Verein Mitgliederbeitrag{/swissqrbillcode} Ja
{check_artikel_image} Tauschbörse Renders content only if Tauschbörse Artikel-Image exists. Usage: {check_artikel_image id=$angebot.id}{/check_artikel_image} Nein

Funktionen


Fügt ein Comments-Bereich ein, in welchem alle ihre Comments posten können.



{top_pics album=x limit=y options=z}
Zeigt eine Liste der am besten bewerteten Gallery-Pics an. Alle zusätzlichen Parameter (album, limit, options) sind optional.

album = album-id (0 = alle Alben, oder einfach weglassen)
limit = maximale Anzahl Bilder
options = Darstellung der auszugebenden Liste festlegen (weglassen um unformatierte Bilder auszugeben.):     "rating-list" = Tabelle mit Rating-Nr.

Beispiel: {top_pics limit=10 options=rating-list} - zeigt die 10 am besten bewerteten Bilder in einer Tabellen-Liste an


{user_pics user=id limit=y options=z}
Zeigt eine Liste der Bilder an, auf welchen der definierte Benutzer (gem. User ID) markiert ist.

user = User-ID
limit = maximale Anzahl Bilder (0 = alle Bilder, oder einfach weglassen)
(TO-DO!) options = Darstellung der auszugebenden Liste festlegen (weglassen um unformatierte Bilder auszugeben.):     "no-style" = Tabelle mit Rating-Nr.

Beispiel: {user_pics user=117 limit=10} - zeigt die ersten 10 Bilder an, auf welchen der User mit ID 117 markiert ist


{unread_comments}
Zeigt die persönlichen unread comments an.


{latest_comments anzahl=8}
Zeigt eine tabellarische Übersicht der letzten Kommentare.


{latest_threads}
Zeigt eine tabellarische Übersicht der letzten Threads.


{latest_updates anzahl=4}
Zeit eine tabellarische Übersicht der zuletzt geänderten Smarty-Templates.


{daily_pic}
Zeigt das "Pic of the Day" als Hyperlink-Image Element an,


{apod}
Zeigt das "Astronomy Pic of the Day" als Hyperlink-Image Element an.


{assign_array var="mein_array" value="array(x)/range(x)"}
Erlaubt es mit Smarty ein Array zu erzeugen

range(min,max)* = min ist die erste Zahl, max die letzte
*Achtung: range() ist nur als Parameter bei assign_array erlaubt!
   range(1,5) = erzeugt "1,2,3,4,5"

   array('x','y','z') = erzeugt ein normales Array
   array('x','y',array('a'=>'abc')) = erzeugt ein multidimenstionales Array


Ausgabe des Arrays:
{section name="element" loop=$mein_array}
   {$mein_array[element]} // Gibt alle Elemente des Arrays ($mein_array) aus
{/section}


Zorg Smarty Funktionen

Expression Category Description Members only
{menuname}
=> Compiler Function!
Layout Compiler Funktion: echo() eines Menus basierend auf dessen Menuname (retourniert PHP) Nein
{addle_highscore} Addle Addle Nein
{apod} APOD Astronomy Picture of the Day (APOD) Nein
{assign_chatmessages} Chat Chat Nein
{assign_yearevents} Events events Nein
{assign_event} Events events Nein
{assign_visitors} Events events Nein
{assign_rezepte} Rezepte rezepte Nein
{assign_rezept} Rezepte rezepte Nein
{assign_rezept_score} Rezepte rezepte Nein
{url} URL Handling <a href={link id=x word="x" param="urlparams"}> default tpl ist das akutelle Nein
{spc} HTML {space i=5} Nein
{error} System {error msg="Fehler!"} Nein
{state} System {state msg="Update erfolgreich"} Nein
{gettext} File Manager files / filemanager Nein
{comments} Commenting {comments} fügt comments zu diesem tpl an. Nein
{latest_comments} Commenting {latest_comments anzahl=10 board=t title="Tabellen-Titel"} // letzte comments aus board (optional) Nein
{latest_threads} Forum {latest_threads} Nein
{unread_comments} Forum {unread_comments board=t title="Tabellen-Titel"} Nein
{forum_boards} Forum {forum_boards boards=$user->forum_boards_unread updatable=true/false} Nein
{3yearold_threads} Forum {3yearold_threads} Nein
{commentingsystem} Commenting forum, comments Nein
{random_pic} Gallery {random_pic} displays a random thumb out of the gallery Nein
{daily_pic} Gallery {daily_pic} displays the pic of the day Nein
{random_albumpic} Gallery Gets a random Pic of a specific Gallery Album.
Parameters supported: abum_id=[1-9], show_title=[true/false*], image_quality=[normal*|high] (* Defaults)
Nein
{top_pics} Gallery gallery Nein
{user_pics} Gallery gallery Nein
{assign_users_on_pic} Gallery gallery Nein
{menu} Layout menu Nein
{random_quote} Quotes {random_quote} display a random quote Nein
{daily_quote} Quotes {daily_quote} display a daily quote Nein
{poll} Polls {poll id=23} Nein
{get_stl_games} STL {get_stl_games} Shoot the lamber: lädt Link zu offene Spielzügen & Link zu offenen STL-Spielen für den User Nein
{latest_updates} Smarty Templates {latest_updates} table mit den letzten smarty-updates Nein
{edit_url} Smarty Templates {edit_url tpl=x} tpl ist optional. default: aktuelles tpl. Nein
{spaceweather} Space spaceweather Nein
{get_peter_zuege} Peter {get_peter_zuege} Lädt ein Array das die Anzahl offener Peter Züge eines Users, und die game_id eines Peter Spiels mit offenem Zug, enthält Nein
{sql_errors} System sql errors Nein
{assign_stocklist} Stockbroker Stockbroker Nein
{assign_stock} Stockbroker Stockbroker Nein
{assign_searchedstocks} Stockbroker Stockbroker Nein
{update_kurs} Stockbroker Stockbroker Nein
{getkursbought} Stockbroker Stockbroker Nein
{getkurs} Kategorie Stockbroker Nein
{num_new_tauschangebote} Tauschbörse Tauschbörse Nein
{assign_artikel} Tauschbörse Tauschbörse Nein
{url_params} URL Handling system Nein
{sizeof} Smarty Templates system Nein
{get_changed_url} URL Handling system Nein
{htmlentities} Variablen Registriert für Smarty die Funktion htmlentities() aus PHP Nein
{base64encode} Variablen Registriert für Smarty die Funktion base64_encode() aus PHP Nein
{onlineusers} Usersystem usersystem Nein
{loginform} Usersystem usersystem Nein
{formfielduserlist} Usersystem usersystem Nein
{datename} Datum und Zeit stellt ein Datum leserlich dar Nein
{rand} Variablen {rand min=2 max=10 assign=var} Nein
{assign_array} Variablen erlaubt es, mit Smarty Arrays zu erzeugen Nein
{assign_event_hasjoined} Events events Ja
{event_hasjoined} Events events Ja
{assign_rezept_voted} Rezepte rezepte Ja
{logerror} PHP Error Log errorhandling Nein
{url_exists} URL Handling Utilities Funktion urlExists() um eine URL/Pfad zu validieren. Usage: {url_exists url="[url]" assign="[smarty-variable]"} Nein

Comments