Seite 2 von 2

Verfasst: 01.08.2005 13:52
von Fabse
Schumi hat geschrieben:Richtig ist:

Code: Alles auswählen

 $template->assign_var('NUM' => '<b>' . $i . '</b>');
Nö das stimmt nicht ;)
Richtig ist:

Code: Alles auswählen

$template->assign_vars(array('NUM' => ' <b>' . $i . '</b> '));
Aber ich hab das Problem jetzt gefunden.
Irgendwas dürfte in der .tpl Datei nicht stimmen.
Und zwar hier:

Code: Alles auswählen

!-- BEGIN switch_num -->
  {NUM}
<!-- END switch_num -->
<!-- BEGIN switch_not_num -->
  hw {NUMS}
<!-- END switch_not_num -->
Aba ich weiß nicht was da falsch ist. Kann mir jmd helfen?

Gruß, Fabse

Verfasst: 01.08.2005 14:02
von Schumi
Die Variablennamen setzen sich zusammen aus Blocknamen und Variablenname, d.h. wenn du in dem Block <!-- BEGIN switch_not_num --> die Variable NUMS hast, musst du diese über {switch_not_num.NUMS} ansprechen.

Verfasst: 01.08.2005 14:19
von Fabse
Wir trotzdem noch nichts ausgegeben :(

Verfasst: 01.08.2005 19:30
von Pyramide
Schumi hat geschrieben:Zumindest die Variablenzuordnung ist fehlerhaft.

Code: Alles auswählen

 $template->assign_var('NUM', ' <b>' . $i . '</b> ');
Richtig ist:

Code: Alles auswählen

 $template->assign_var('NUM' => '<b>' . $i . '</b>');
Warum hält sich dieses Gerücht eigentlich so hartnäckig? Wenn man mal in den Code mal angucken würde, würde man folgendes finden:

Code: Alles auswählen

 196      /**
 197       * Root-level variable assignment. Adds to current assignments, overriding
 198       * any existing variable assignment with the same name.
 199       */
 200  	function assign_vars($vararray)
 201      {
 202          reset ($vararray);
 203          while (list($key, $val) = each($vararray))
 204          {
 205              $this->_tpldata['.'][0][$key] = $val;
 206          }
 207  
 208          return true;
 209      }
 210  
 211      /**
 212       * Root-level variable assignment. Adds to current assignments, overriding
 213       * any existing variable assignment with the same name.
 214       */
 215  	function assign_var($varname, $varval)
 216      {
 217          $this->_tpldata['.'][0][$varname] = $varval;
 218  
 219          return true;
 220      }
Also: eine einzelne Variable kann man per assign_var('NAME', 'Wert') zuweisen, beliebig viele per assign_vars(array('NAME1' => 'Wert1', 'NAME2' => 'Wert2')).


@Fabse: Da du die Template-Blöcke verschachtelst, musst du dies auch in der PHP Datei angeben. Also z.B. $template->assign_block_vars('switch_pages.pages.switch_num', array()).

Guck dir am besten mal das herunterladbare Beispiel aus dem KB-Artikel über die Template-Syntax an.

Verfasst: 02.08.2005 01:03
von Fabse
Yeah.. es funktioniert!

Vielen Vielen Dank!

Gruß, Fabse