PHPLib templates - geschachtelte blöcke

Tex

Grünschnabel
hier erstmal mein code-beispiel:

PHP:
<?php
 
include ("template.inc.php");
$tpl = new Template();
 
$tpl-> set_file ("forum","templates/forum.htm");

$tpl->set_block("forum","kategorien","kategorien_handle");
for($i=0;$i<5;$i++)
{
$tpl->set_var(array(
"KATEGORIE" => "Test"
));

$tpl->parse("kategorien_handle","kategorien", true);
}
 
$tpl->parse("out", "forum");
$tpl->p("out");

?>

mein problem ist nicht ganz einfach zu erklären. ich habe einen block kategorien , in dem sich die kategorien immer wiederholen.

zb:

Kategorie 1<br>
Kategorie 2<br>
Kategorie 3<br>

jetzt möchte ich aber, dass das ganze mit einem 2. block geschachtelt werden kann.

zb:
Kategorie 1<br>
Unterpunkt 1<br>
Unterpunkt 2<br>
Unterpunkt 3<br>

Kategorie 2<br>
Unterpunkt 1<br>
...

hat jemand eine ahnung, wie das mit phplib gehen könnte?
 
Also ich hab zwar keine erfahrung mit phplib, aber mit phpbb welches das phplib template system nachgebaut hat.

Bei phpbb gings so:

PHP:
for($i=0;$i<5;$i++)
{
$template->assign_block_vars("kategorien", array(
"KATEGORIE" => "Test")
);
for($j=0;$j<3;$j++)
{
$template->assign_block_vars("unterpunkt", array(
"UNTERPUKT" => "Test")
);
}
}

naja, so sehen die funktionen bei phpbb aus, ich denk bei phplib sind se anders aber die form im template ist identisch, denn das sieht dann so aus:

<!-- BEGIN kategorien -->
{kategorien.KATEGORIE}
<!-- BEGIN kategorien.unterpunkt -->
{kategorien.unterpunkt.UNTERPUKT}
<!-- END kategorien.unterpunkt -->
<!-- END kategorien -->

So ist die theorie, wie die funktionen genau aussehen weiss ich auch nich, aber dass steht bestimmt in den docs von phplib... schau dir die mal an.
 
Zuletzt bearbeitet:
Hallo, dieser Beitrag ist zwar schon etwas älter, aber ich denke, dass ich eine passende Frage hierzu habe.

Es geht um Verschachtelte Blöcke, die ich ausblenden will, wenn kein inhalt da ist.

in meinem Template sieht das in etwa so aus:

Code:
<!-- BEGIN block1 -->
   inhalt1<br />
   <!-- BEGIN block2 -->
   <br />
   <br />
   <br />
    {content_2}
   <!-- END block2 -->
<!-- END block1 -->

Das ganze funktioniert auch recht gut. Nun habe ich das problem, dass wenn ich keinen content_2 habe ich den kompletten block2 ausblenden möchte - der Platzhalter {content_2} wird schon ausgeblendet. Kann mir jemand sagen, wie ich das mache?

Vielen Dank
Alexander
 
Zurück