Seite 1 von 1

$tpl->generate ???

Verfasst: Mi 7. Nov 2007, 19:32
von wosch
Ich brauche mal ein wenig Nachhilfe.
Im Output eines Modules wird das Template geniert.
Normalerweise kenne ich es so:

Code: Alles auswählen

$tpl->generate('templates/name.html');
Aber man findet auch diese Schreibweise:

Code: Alles auswählen

$tpl->generate('templates/name.html', 0, 0);
In der Klasse class.template.php steht folgendes:

Code: Alles auswählen

function generate($template, $return = 0, $note = 0)
Welches ist die "richtige" Schreibweise, bzw. was sind die Unterschiede dieser Schreibweisen?

Verfasst: Mi 7. Nov 2007, 20:09
von MyAccount
Ich glaube das mit dem 0,0 unterbindet die Kommentare einer Modul-Ausgabe.
<!-- Modul blabla -->
Probiere es halt einfach mal aus. ;)

Verfasst: Mi 7. Nov 2007, 20:31
von kummer

Code: Alles auswählen

function generate($template, $return = 0, $note = 0)
das bedeutet lediglich, dass - wenn die übergabewerte $return und $note fehlen - jeweils eine 0 gesetzt wird. dass also...

Code: Alles auswählen

$tpl->generate('pfad',  0, 0);
und

Code: Alles auswählen

$tpl->generate('pfad');
gleichbedeutend sind. es ist die php-form von polymorphie. wenn bei einer funktion den parametern werte zugewiesen werden, sind sie optional.

Verfasst: Mi 7. Nov 2007, 21:21
von wosch
Danke für die Erklärungen.

Da ich ein fauler Mensch bin schreibe ich es weiterhin ohne 0, 0 :wink:

Verfasst: Do 8. Nov 2007, 16:26
von delinquent
Der Sinn der Sache ist, dass, wenn "return" = true ist, der Inhalt in eine Variable kopiert werden kann und keine direkte Ausgabe erfolgt. "note" = true unterbindet Kommentare <!-- Generated by Contenido -->.

Das hat mir im IE schon einige Male die Navigation zerschossen. Deshalb benutze ich manchmal

Code: Alles auswählen

$output = $tpl->generate("templates/irgendwas.html", true, false);
Außerdem kannst Du dann einfacher Templates in Templates setzen:

Code: Alles auswählen

$tpl2->set('s', 'CONTENT', $tpl1->generate("templates/content.html", true));
Vielleicht hilft das ja weiter...