×
Create a new article
Write your page title here:
We currently have 3,189 articles on s23. Type your article name above or create one of the articles listed here!



    s23
    3,189Articles

    Smarty ist eine recht weit verbreitete und dadurch ziemlich ausgereifte open source template engine für PHP.

    "One of Smartys primary design goals is to facilitate the separation of application code from presentation. Typically, the application code is maintained by programmers. The presentation templates are maintained by template designers."


    Man setzt also im PHP-Quellcode nur noch Werte, die der Designer dann später leicht nutzen kann. Damit wird die Trennung von Code und Layout/Ausgabe ermöglicht.

    Beispiele[edit]

    $Smarty->assign("varnamefuertemplate", $phpvariable);
    

    (wobei $phpvariable auch zB ein array sein kann).
    In den templates (extra files, die auf .tpl enden und hauptsächlich reinen HTML-Code enthalten) kann man dann z.b. schreiben:

    "Hallo {$name}, du bist eingelogt"
    

    oder Listen machen mit:

     <table><tr><td>nr</td><td>name</td></tr> {foreach item=foo 
    from=$varnamefuertemplate}<tr><td>{$foo.id}</td><td>{$foo.name}</td></tr>{/foreach}</table>


    Auch unterstützt Smarty den Designer, indem es 'includes' ermöglicht. So braucht man nicht immer den gesamten Quellcode in eine Datei packen, sondern in der .tpl-Datei, die dann am Ende des php-codes "aktiviert" wird, steht oben {include file="kopf.tpl"} und unten analog fuss.tpl und ggf. auch

    {include file="menu.tpl" aktiv="seite23"}
    

    Im template menu.tpl kann dann beispielsweise mit

    {if aktiv=="SeiteX"}<div=highlight>{/if}

    oder so der entsprechende Eintrag hervorgehoben werden.


    Sehr nett sind auch so Sachen wie

    <a href="/foo/bar/user_{$name|urlencode}>{$name}</a>

    Da kann man dann auch leicht eigene Sachen implementieren, die anderes als |urlencode machen.

    Aber es gibt auch schon x andere, wie z.B. |truncate mit x Parametern, um lange Texte im preview zu kürzen und "..." hinten dran zu hängen oder |default="foo", um z.B. in Formularen leicht default-Werte für noch nicht ausgefüllte Felder zu machen.



    links[edit]

    Template loop detected: Template:Stub

    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.