PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablen in Templates "einschleusen"


Aerox95
09.03.2006, 09:09
Hallo,

gibts eigentliche eine Möglichkeit Variablen die nicht in einem Array gespeichert werden in ein Template "einzuschleusen"?

Mein Problem ist halt dass ich in einem Template Variablen benutzen möchte, aber die die funktion fetch_template() nur einige wenige vbulletin-variablen globalisiert, kann ich diese variablen im template nicht nutzen ohne im vb-code rumzustricken.

Wie gehen die Entwickler hier diese Sache so an? Alle Variablen in einem betimmten Array speichern ($vbulletin z.B.)? Vielleicht steh ich ja total auf dem Schlauch ;-)


Also wenn es keine Möglichkeit gibt Variablen ins Template zu bekommen fände ich es cool wenn es für die Funktion fetch_template() noch einen weiteren Parameter des Typs Array gäbe indem man die Variablen die in der fetch_template() globalisiert werden sollen "registrieren" kann, also einfach angeben

$meinVariablenName = "ichBinDerWert :)";
$doGlobal = array();
$doGlobal[] = "meinVariablenName";
und dann

eval('print_output("' . fetch_template($templatename, 0, true, $doGlobal) . '");');


Was denkt ihr welche Chancen ein solcher Änderungswunsch auf Umsetzung hätte? ;-)


Gruß,
Christian

skycatcher
10.03.2006, 09:47
Ich glaub der einfachste weg in vB3.5+ ist das plugin system zu benutzen. Also einen hook im global_start zu setzen. Bin mir auch noch nicht 100% sicher wie alles funktioniert, aber ich arbeite langsam darauf hinzu lol.

Hier mal was gefundenes mit php dateien:

http://www.vbulletin.com/forum/showthread.php?t=173937

Boothby
11.03.2006, 10:22
Die Funtion fetch_template gibt nur ungeparsten Text zurück, der anschließend durch eval() ausgeführt wird. Du kannst ja mal spaßenshalber statt eval einfach echo verwenden. Dann sieht man es besser. ;)
Deshalb besteht keine Notwendigkeit, in fetch_template() Variablen in den global scope zu setzen. Falls du das dennoch irgendwie benötigst kannst du auch das $GLOBALS-Array verwenden.