phpbar.de logo

Mailinglisten-Archive

[php] phplib: verschachtelte Templates

[php] phplib: verschachtelte Templates

Heiko Schubert heiko.schubert_(at)_tmt.de
Sat, 02 Sep 2000 22:10:39 GMT


Hallo Alex,

danke für Deine Antwort. Dein Vorschlag funktioniert wunderbar, aber 
jetzt verstehe ich weniger als vorher:


> while ($q->next_record()) {

>    $semester_typ  = $q->f("semester_typ");
>    $t->set_var("SEMESTER_TYP",$semester_typ);
>    $qquery = "SELECT * FROM semester WHERE semester_typ='$semester_typ'
> ";
>    $qq->query($qquery);
>    if ($qq->num_rows()>0) {
>          $t->set_var("MONTH_ROWS",""); //NEU NEU NEU

Die Zeile ist mir klar, hatte ich doch bei einigen Experimenten die 
Ausgabe der Monate hinbekommen. Nur wurde beim ersten Semester dir richtigen,

1
2
3

 dann beim zweiten die vom vorigen und die dem Semester entsprechenden 
angezeigt.

1
2
3
und
4
5
6

wobei nur 456 richtig wären. Also so weit kann ich Dir noch folgen ...

>       while ($qq->next_record()) {
>          $semester_month   = $qq->f("semester_month");
>          $t->set_var("SEMESTER_MONTH",$semester_month);

>          $t->parse("MONTH_ROWS","MONTH_ROW", true);
diese Zeile verstehe ich nicht. Ich habe sie zwar aus den Bsp-Sourcen 
übernommen, aber klar ist sie mir deshalb noch lange nicht. Was passiert 
da genau?

Meine "Vermutung":
der Teil aus der ihtml-Datei wird zu einer neuen "Datei", welche ihr 
handle in "MONTH_ROWS" ablegt.


>       } // end of while
>    }

>    $t->parse("OUT_MONTH","MONTH_ROWS");  //NEU NEU NEU

... und hier verstehe ich gar nichts mehr. "MONTH_ROWS" wird zu 
"OUT_MONTH" - warum noch mal parsen? Und warum dann mit dem default-Wert 
"false"?

Meine Vermutung:
Oben (bei meiner ersten Frage) wird der Platzhalter durch einen reellen 
Wert ersetzt. Das "true" besagt, daß die Ersetzung weiter geht und nicht 
nach dem ersten Wert beendet ist. Nun habe ich also eine Zeile, die bei 
dem zweiten "parse" zu mit der vorherigen (sollte eine existieren) 
verknüpft wird - die Liste wird also erstellt.

Ist dem so, oder liege ich (wie ich vermute) völlig falsch?

>    $t->parse("SEMESTER_ROWS","SEMESTER_ROW", true);
wieder "raten":
die einzelnen Semester werden zu einer Liste zusammengefügt. Das Handle 
"SEMESTER_ROWS" zeigt auf das Ergebnis dieser Zusammenfügung.

Nur: Warum wird hier anders als bei MONTH verfahren? Müßte hier nicht 
auch ein:

    $t->parse("SEMESTER_ROWS","SEMESTER_ROW", true);
von einem 
    $t->parse("OUT","SEMESTER_ROW");

folgen?


> Keine anderen parses hier. Deren Funktionsprinzip hast Du noch nicht
> ganz begriffen (ich brauchte auch ne Weile). 

Mein Reden - genau da liegt das Problem. Aber aus den paar Zeilen Doku 
werde ich einfach nicht schlau. Kannst Du mir vielleicht mit ein paar 
Tips auf die Sprünge helfen?

> Für Erklärungen hab ich jetzt aber leider keine Zeit...

... es eilt ja nicht - vielleicht hast Du ja irgendwann ein paar Minuten?


Ansonsten wünsche ich noch ein schönes Wochenende und danke noch einmal 
für Deine Hilfe!

Bye,
	Heiko


php::bar PHP Wiki   -   Listenarchive