×
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>mutante
    mNo edit summary
    imported>Cosmea
    m (typo, links added)
     
    (One intermediate revision by one other user not shown)
    Line 1: Line 1:
    Smarty ist eine recht stark verbreitete und dadurch ziemlich ausgereifte [[open source]] [[template engine]] für [[PHP]].
    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 im [[PHP]]-Quellcode nur noch Werte die der Designer dann später leicht nutzen kann. zb so:


    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);
    $Smarty->assign("varnamefuertemplate", $phpvariable);


    (wobei $phpvariable auch zB ein array sein kann). im template (extra files, die auf .tpl enden und hauptsächlich reinen [[HTML]]-code enthalten) kann man dann z.b. schreiben:
    (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"
    "Hallo {$name}, du bist eingelogt"


    oder listen machen mit:<pre><table><tr><td>nr</td><td>name</td></tr> {foreach item=foo from=$var</pre>
    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-code "aktiviert" wird steht oben {include file="kopf.tpl"} und unten analog fuss.tpl und ggf zb auch

    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"}
    {include file="menu.tpl" aktiv="seite23"}


    (im template menu.tpl kann dann mit {if aktiv=="SeiteX"}<div=highlight>{/if} oder so der entsprechende eintrag hervor
    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 andere sachen als |urlencode machen. aber es gibt auch schon x andere wie zB |truncate mit x parametern um lange text im preview zu kürzen und "..." hinten dran zu hängen oder |default="foo" um zB in formularen leicht default-werte für noch nicht ausgefüllte felder zu machen


    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.
    "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."





    ==links==


    * http://smarty.php.net/
    * http://smarty.php.net/


    * [http://smarty.php.net/whyuse.php Why use it?]
    * [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.