×
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: Difference between revisions

    Content added Content deleted
    imported>Took
    No edit summary
     
    imported>Cosmea
    m (typo, links added)
     
    (8 intermediate revisions by one other user not shown)
    Line 1: Line 1:
    Smarty ist eine recht weit verbreitete und dadurch ziemlich ausgereifte [[open source]] [[template engine]] für [[PHP]].
    http://smarty.php.net/


    "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."
    Eine recht stark verbreitete und dadurch ziemlich ausgereifte opensource template engine


    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==

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

    (wobei $phpvariable auch zB ein array sein kann). <br>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:<pre> <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></pre>



    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 <pre>{if aktiv=="SeiteX"}<div=highlight>{/if}</pre> oder so der entsprechende Eintrag hervorgehoben werden.



    Sehr nett sind auch so Sachen wie <pre><a href="/foo/bar/user_{$name|urlencode}>{$name}</a></pre>

    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==

    * http://smarty.php.net/

    * [http://smarty.php.net/whyuse.php Why use it?]

    * [http://smarty.incutio.com/ Smarty-wiki]

    * [http://hasin.wordpress.com/2006/06/10/smarty-cheat-sheet-version-20/ Smarty Cheat Sheet]


    {{stub}}
    {{stub}}

    [[Category:Programming Languages]]

    Latest revision as of 20:22, 24 October 2006

    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.