Seite 2 von 3

Re: Sorry fürs doppelposting....Fehler gefunden!

Verfasst: 20.07.2005 19:36
von D@ve
t2004 hat geschrieben:<!-- BEGIN list -->
{list.DATE}{list.REASON}{list.MOD}{list.KILL}
<!-- END list -->

So wäre es in der TPL richtig
So steht es in der KB auch drin... Wer lesen kann ist klar im Vorteil :D

Gruß, Dave

Re: Sorry fürs doppelposting....Fehler gefunden!

Verfasst: 20.07.2005 19:40
von Pyramide
D@ve hat geschrieben:So steht es in der KB auch drin... Wer lesen kann ist klar im Vorteil :D
Und in meinem Beitrag auch schon...
Pyramide hat geschrieben:Richtig wäre es in etwa so:

Code: Alles auswählen

<!-- BEGIN list -->
{list.DATE}
<!-- END list -->

Verfasst: 21.07.2005 12:29
von t2004
Ich habe es sehr wohl gelesen in der KB, aber ich wußte nicht, das diese Kommentare so wichtig für die Darstellung sind...naja, nun weiß ich es.

mfg

Verfasst: 21.07.2005 12:50
von Blutgerinsel
t2004 hat geschrieben:Ich habe es sehr wohl gelesen in der KB, aber ich wußte nicht, das diese Kommentare so wichtig für die Darstellung sind...naja, nun weiß ich es.
Interessante Logik......Zumal auch in etlichen Template Dateien von diesem Muster nicht abgewichen wird....

Verfasst: 21.07.2005 14:35
von t2004
Blutgerinsel hat geschrieben:
t2004 hat geschrieben:Ich habe es sehr wohl gelesen in der KB, aber ich wußte nicht, das diese Kommentare so wichtig für die Darstellung sind...naja, nun weiß ich es.
Interessante Logik......Zumal auch in etlichen Template Dateien von diesem Muster nicht abgewichen wird....
Na und?! in etlichen PHP-Dateien sind Kommentare eingefügt die allesamt nichts mit der eigentlichen Programmierung zutun haben und daher auch aussenvor sind beim Code-Verarbeiten! Da ich grundsätzlich keine Kommentare benutze habe ich diese auch hier weggelassen, steht nirgendwo dabei, das diese Kommentare wichtig sind damit es funktioniert!

Also spare Dir besser deinen Kommentar zu meiner Logik, da ich das sehr persönlich nehme! Immerhin greife ich Dich auch in keiner Weise an, obwohl Du schon einmal an den inhaltlichen Sinn eines meiner Postings gezweifelt hast, obwohl jenes besagte Posting dem User mit dem Problem letzendlich geholfen hat (auch wenn es nicht elegant geschrieben war).

Wenn ich Dein Posting hier fehl interpretiert haben sollte, dann können wir die mißverständnisse gerne per PN klären.

@Mod: Thema kann denke ich geclosed werden, da das Problem behoben wurde.

Verfasst: 22.07.2005 00:59
von mristau2k5
Ich fasse mal zusammen, wenns noch nicht klar sein sollte *Gg*

Code: Alles auswählen

while($row = $db->sql_fetchrow($warnings)){
   $template->assign_block_vars('list', array(
   'DATE' => "test",//<tr><td>".$row['user_date']."</td>",
   'REASON' => "<td>".$row['user_reason']."</td>",
   'MOD' => "<td>".$row['user_god']."</td>",
   'KILL' => sprintf ("<td><input type='submit' name='".$row['warn_id']."' Value='Löschen'></td></tr><br>\n")
));
das ist der richtige Code zum eintragen der Schleife ins Template

und das muss im Template selber stehen.

Code: Alles auswählen

<!-- BEGIN list -->
{list.DATE}{list.REASON}{list.MOD}{list.KILL}
<!-- END list -->
noch ne kleine Anmerkung, ich würde jeweils nur den Inhalt aus der Datenbank in die template-Variablen eintragen und das ganze html-geraffel in der template-datei machen, etwa in dieser Art:

Code: Alles auswählen

php-Datei:

while($row = $db->sql_fetchrow($warnings)){
  $template->assign_block_vars('list', array(
    'DATE' => $row['user_date'],
    'REASON' => $row['user_reason'],
    'MOD' => $row['user_god'],
    'KILL' => $row['warn_id']
  ));
}

tpl-Datei

<!-- BEGIN list -->
<tr><td width="190px">{list.DATE}</td><td width="240px"> {list.REASON}</td><td width="160px">{list.MOD}</td><td width="160px"><input type="submit" name="{list.KILL}" Value="Löschen"></td></tr>
<!-- END list -->
Ansonsten müsste das Skript den ganzen statischen HTML-Code, der bei allen gleich ist, für jeden einzeln neu einfügen. Mit dieser Lösung ist wirklich nur das dynamische einzufügen. Ausserdem kann man das Design leichter ändern, das ist ja schließlich der Sinn des Template-Systems *Gg*

Verfasst: 22.07.2005 03:10
von Blutgerinsel
Ein Block wird durch eine Startmarke und eine Endmarke festgelegt....

Nach diesen Block wird mittels eines regulären Ausdrucks gesucht und solange durch diee Funktion gejagt bis der Ausdruck nicht mehr matcht.....

Stichwort Rekursion......

Muster könnte z.B.
<-- BEGIN (.*) -->(.*)<-- END (\1) -->
sein

Besonderheit beim PHPBB Template ist weiterhin das
{list.DATE}

Die Blockvariable muss explizit der Blockname mitgeteilt werden....Unsinnig und aus der Mode.....

Nachteil dieses Schemas ist auch das bei einem verschachtelten Block z.B. das eine Zuordnung in der Form von {blocka.blockb.BLUBB} gemacht werden muss.....

Noch Fragen? Ausdrückliche PM Genehmigung

Verfasst: 22.07.2005 05:21
von Pyramide
mristau2k5 hat geschrieben:

Code: Alles auswählen

while($row = $db->sql_fetchrow($warnings)){
   $template->assign_block_vars('list', array(
   'DATE' => "test",//<tr><td>".$row['user_date']."</td>",
   'REASON' => "<td>".$row['user_reason']."</td>",
   'MOD' => "<td>".$row['user_god']."</td>",
   'KILL' => sprintf ("<td><input type='submit' name='".$row['warn_id']."' Value='Löschen'></td></tr><br>\n")
));
das ist der richtige Code zum eintragen der Schleife ins Template
HTML gehört normalerweise ins Template.
Blutgerinsel hat geschrieben:Die Blockvariable muss explizit der Blockname mitgeteilt werden....Unsinnig und aus der Mode.....
Der Sinn der Sache ist, daß sich eine Block-Variable nicht mit einer Globalen oder einer aus einem anderen Block überschneidet (z.B. Titel des Forums, des Themas und des einzelnen Beitrags). Und Mode ist ja wohl beim Programmieren das unwichtigste was es gibt.

Verfasst: 22.07.2005 08:29
von t2004
Werde mir die vorgschlagenen Änderungen sicherlich noch durchführen...ersteinmal jedoch bin ich froh, das ich das Prinzip von der Anweisung assign_block_vars begriffen habe und das sich mein Problem dadurch lösen lies (alles andere kann ich immer noch machen ;)).

Nochmals Danke an alle Erklärer

mfg

Verfasst: 22.07.2005 13:24
von mristau2k5
@ Pyramide

Das hab ich ja darunter auch noch geschrieben, der erste Teil war erstmal die sinngemäß richtige Version von seinem Code, darunter habe ich dann reingeschrieben, wie es eigentlich besser wäre. *Ggg*