vLIB Einführung

vLIB Logo

3. TMPL_IF mit Boolean und Konstanten

Oft wird die HTML-Ausgabe nach verschiedenen Zuständen entschieden. Ist der User ein Administrator oder ein einfacher Benutzer beispielsweise. Oder wenn eine bestimmte Variable gesetzt ist, muss ein bestimmtes Wort in roter Farbe geschrieben werden.

PHP-Skript
   require_once 'vlib/vlibTemplate.php';

   $tmpl = new vlibTemplate('tmpl/tmpl_if.htm');

   $boolean = (isset($_GET['if_condition'])) ? 1 : 0;

   $tmpl->setvar('boolean', $boolean);
   $tmpl->setvar('if_condition', $_GET['if_condition']);

   $tmpl->pparse();
$boolean = (isset($_GET['if_condition'])) ? 1 : 0;
Dies ist eine vereinfachte IF-Struktur, die überprüft ob der GET-Parameter "if_condition" in der URL gesetzt wurde oder nicht. Wenn dieser Parameter einen Wert enthält, wird "$boolean" zu 1 ansonsten zu 0. Informationen zu den sogenannten "Superglobals" und zu Formularverarbeitung kann man bei php.net finden.
$tmpl->setvar('boolean', $boolean);
Die Methode "setvar" setzt die Templatevariable "boolean", die im CSS-Teil des Templates die Farbe (CSS-Eigenschaft "color") auf lila oder grau setzt.
$tmpl->setvar('if_condition', $_GET['if_condition']);
Damit die IF-Struktur im Template auf den GET-Parameter "if_condition" reagieren kann, muss dass Template diesen Wert übergeben bekommen. Der Parameter kann einfach über "tmpl_if.php?if_condition=10" übergeben werden.
Template
   (...)
         <style type="text/css">
         body
         { 
            font-family: Arial;
            font-size: 0.9em;
            color: <tmpl_if name='boolean'>purple<tmpl_else>gray</tmpl_if>;
         }
         pre { color: black; font-size: 1.1em; }
      </style>
   </head>
   
   <body>
   
   <p>This text is gray without "if_condition" set. Click
   <a href="tmpl_if.php?if_condition=1">here</a> to make it purple. 
   <tmpl_if name='if_condition' op='>' value='5'><span 
   style="color: green">"if_condition" is more than 5.</span><tmpl_else>
   "if_condition" is not set or below (equal to) 5.</tmpl_if></p>
<tmpl_if name='boolean'>
Dies ist die einfachste Form einer TMPL_IF. Diese funktioniert folgenderdermaßen: Wenn die Templatevariable "boolean" auf 1 gesetzt wurde, wird die CSS-Eigenschaft "color" auf purple gesetzt. Ist "boolean" gleich 0, dann wird über TMPL_ELSE gray verwendet.
<tmpl_if name='if_condition' op='>' value='5'>
Ein TMPL_IF kann auch Vergleichsoperatoren enthalten. Im "value" sind nur Konstanten und keine anderen Templatevariablen möglich. Mehr zu Vergleichsoperatoren ...