Bearbeiten von „Smarty Template Engine“

Aus UUGRN

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 24: Zeile 24:
 
  <body>
 
  <body>
 
   &lt;h1>Der Simpler Test&lt;/h1>
 
   &lt;h1>Der Simpler Test&lt;/h1>
   &lt;p>Hier sollte jetzt der Inhalt aus $tpl_var_foo echscheinen: &lt;strong>#foo#</strong></p>
+
   &lt;p>Hier sollte jetzt der Inhalt aus $tpl_var_foo echscheinen: &lt;strong>#foo#</strong&gt;&lt;/p>
 
  </body>  
 
  </body>  
 
  </html>
 
  </html>
Zeile 42: Zeile 42:
  
 
Smarty setzt das HTML-Template erst nach PHP um. D.H. aus leicht verständlichem (auch für Webdesigner) HTML wird ein gemisch aus PHP und HTML. Dieses ergebnis wird in einer seperaten Datei Abgespeichert. Solange sich das HTML Template nicht änder wird dies auch nicht mehr geparst sondern direkt das erzeugte PHP-Skript erzeugt.
 
Smarty setzt das HTML-Template erst nach PHP um. D.H. aus leicht verständlichem (auch für Webdesigner) HTML wird ein gemisch aus PHP und HTML. Dieses ergebnis wird in einer seperaten Datei Abgespeichert. Solange sich das HTML Template nicht änder wird dies auch nicht mehr geparst sondern direkt das erzeugte PHP-Skript erzeugt.
 
===Listing 2 - Simpel Beispiel mit Smarty===
 
 
'''foo.php'''
 
<?php
 
require_once('/home/rothbe/public_html/smarty_vortrag/Smarty-2.6.13/libs/Smarty.class.php');
 
$tpl_var_foo = 'bar';
 
$tpl_file = 'foo.tpl.html';
 
$smarty = new Smarty;
 
$smarty->assign('foo',$tpl_var_foo);
 
//  SMARTY CONFIG
 
$smarty_home = '/home/rothbe/public_html/smarty_vortrag/smarty_simple/';
 
$smarty->template_dir = $smarty_home.'templates';
 
$smarty->compile_dir = $smarty_home.'templates_c';
 
// >> ENDE SMARTY CONFIG <<
 
$smarty->display($tpl_file);
 
?>
 
 
'''templates/foo.tpl.html'''
 
<?xml version="1.0" encoding="utf-8"?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
  <title>ein Simple Test</title>
 
</head>
 
<body>
 
  &lt;h1>Der Simple Test&lt;/h1>
 
  &lt;p>Hier sollte jetzt der Inhalt aus $tpl_var_foo echscheinen: &lt;strong>{$foo}</strong></p>
 
</body>
 
</html>
 
 
aus templates/foo.tpl.html macht Smarty beim ersten ausruf die Datei '''templates_c/%%E9^E9C^E9C15D49%%foo.tpl.html.php'''
 
<?php /* Smarty version 2.6.13, created on 2006-04-22 02:06:28
 
        compiled from foo.tpl.html */ ?>
 
<?php echo '<?xml'; ?>
 
version="1.0" encoding="utf-8"<?php echo '?>'; ?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
  <title>ein Simple Test</title>
 
</head>
 
<body>
 
  &lt;h1>Der Simple Test</h1>
 
  &lt;p>Hier sollte jetzt der Inhalt aus $tpl_var_foo echscheinen: &lt;strong><?php echo $this->_tpl_vars['foo']; ?>
 
</strong></p>
 
</body>
 
</html>
 
 
Die Ausgabe an den Browser ist die Selbe wie in Listign 1
 
 
 
==Programmieren mit Smarty==
 
===Grundlegende Syntax im HTML Template===
 
Smarty Funktionen und Variablen werden in der Regel mit { } umschlossen alles dazwischen wird von der Smarty Classe interpretiert.
 
 
====Kommentare====
 
Um Kommentare im HTML Quelltext zu hinterlegen nutzt man folgende Sysntax
 
 
{* Dies ist ein einzeiliger Kommentar *}
 
 
{* dies ist ein mehrzeiliger
 
    Kommentar.
 
*}
 
 
====Variablen====
 
Variablen beginnen immer wie auch in PHP mit einem ''$''
 
 
{$foo}        <-- Zeigt einfache Variable an (kein Array oder Objekt)
 
{$foo[4]}    <-- Zeigt 5. Element von einem Array an, deren Schlussel bei 0 beginnen
 
{$foo.bar}    <-- Zeigt das Element zum Schlüssel "bar" des Arrays an (wie PHPs $foo['bar'])
 
{$foo.$bar}  <-- Zeigt das Element eines variablen Schlüssels an (wie PHPs $foo[$bar])
 
{$foo->bar}  <-- Zeigt eine Eigenschaft "bar" des Objekts $foo an
 
{$foo->bar()} <-- Zeigt den Rückgabewert der Objectmethode "bar" an
 
{#foo#}      <-- Zeift die Konfigurationsvariable "foo" an
 
{$smarty.config.foo} <-- Synonym für {#foo#}
 
{$foo[bar]}  <-- Syntax zum zugriff auf Element in einer Section-Schleife, siehe {section}
 
{assign var=foo value="baa"}{$foo} <--  Gibt "baa" aus, siehe {assign}
 
(Quelle Smarty Dokumentation)
 
 
neben den Oben gezeigten gibt es noch weitere zugelassene Schreibweisen siehe dazu [http://www.smarty.net/manual/de/language.syntax.variables.php Smarty Dokumentation]
 
 
neben den Variablen gibt es Variablen die von Smarty automatisch zur Verfügung gestellt werden. z.B.
 
''$smarty.get'' oder ''$smarty.post'' dabei kann man auf übergebene Variablen von Formularen oder GET Parameter zugreifen. z.B.:
 
{$smarty.post.foo}
 
Weitere Smarty Variablen sind:
 
*$smarty.cookies
 
*$smarty.server
 
*$smarty.env
 
*$smarty.session --> eq $_SESSION
 
*$smarty.request --> eq $_REQUEST
 
*$smarty.now --> Aktueller Zeitstempel eq time()
 
*$smarty.version
 
und viele weitere siehe dazu [http://www.smarty.net/manual/de/language.syntax.variables.php Smarty Dokumentation]
 
 
===Funktionen und Modifikatoren===
 
Inerhalb von einem Smarty Template stehen eine Reihe von Funktionen und Modifikatoren zur verfügung.
 
alle im Über blick unter http://www.smarty.net/manual/de/language.modifiers.php und http://www.smarty.net/manual/de/language.builtin.functions.php
 
 
===="Eingebaute Funktionen"====
 
=====IF und ELSE Abfragen=====
 
mit {if},{elseif},{else} können aufgrund von zugwiesenen Template Variablen IF und ELSE Abfragen durchgeführt werden.
 
 
'''Listing 3'''
 
 
== Weblinks ==
 
* {{Homepage|www.smarty.net}}
 
 
 
[[Kategorie:PHP]]
 
[[Kategorie:Anwendungsbeispiel]]
 

Bitte kopiere keine Inhalte, die nicht Deine eigenen sind!

Du gibst uns hiermit Deine Zusage, dass
  • Du den Text nicht aus Wikipedia kopiert hast
  • Du den Text selbst verfasst hast
  • oder der Text entweder
    • Allgemeingut (public domain) ist
    • oder der Copyright-Inhaber seine Zustimmung gegeben hat.
Wichtig
  • Benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Copyright-Inhabers!
  • Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der 'Diskussion:'-Seite darauf hin.
  • Bitte beachte, dass alle UUGRN-Beiträge automatisch unter der der Creative Commons Lizenz stehen.
  • Falls Du nicht möchtest, dass Deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf "Artikel Speichern".

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Folgende Vorlagen werden auf dieser Seite verwendet: