phpBB Template Klasse

Projekte der phpBB.de-Community und Feedback zu phpBB.de.
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag 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
Benutzeravatar
Schumi
Ehemaliges Teammitglied
Beiträge: 4925
Registriert: 07.10.2002 12:37

Beitrag 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.
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Wir trotzdem noch nichts ausgegeben :(
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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.
KB:knigge
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Yeah.. es funktioniert!

Vielen Vielen Dank!

Gruß, Fabse
Antworten

Zurück zu „Community Talk“