Hallo emergence!
Nett, daß sich doch noch jemand erbarmt

)
Ich habe Deinen Vorschlag umgesetzt.
Leider nicht mit dem gewünschten Erfolg:
Wenn ich die <ol></ol> ausserhalb der <!-- BEGIN:BLOCK --> <!-- END:BLOCK --> in die Templates setze, bekomme ich immer ein <ol></ol> um die Listenpunkte.
Oder hätte ich da im Modul etwas dafür definieren müssen? (Wenn ja, was, wie?)
Meine Templates sehen dann aus, wie folgt:
Die erste <ol>-Definition hatte ich schon im Modul gesetzt:
Code: Alles auswählen
/* Create Navigation Array */
nav($sel_idcat);
/* Start Output buffer */
ob_start();
echo '<div id="navcontainer-left">
<ol id="navlist-left">[<-ol->_L1]';
foreach ($navitems as $key => $data) {
und dann am Ende:
} // end if
} // end foreach
echo '[<-/ol->_L1]</ol>';// end navlist-left
echo '</div>';
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>
Templates:
Code: Alles auswählen
navfirst_off.html:
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
navfirst_on.html:
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
navsecond_off.html:
<ol>
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
</ol>
navsecond_on.html:
<ol>
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
</ol>
navthird_off.html:
<ol>
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
</ol>
navthird_off.html:
<ol>
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
</ol>
Erzeugter Quelltext:
Code: Alles auswählen
<div id="navcontainer-left">
<ol>
<li><a href="xxx">1. Ebene 01-off</a></li>
<li><a href="xxx">2. Ebene 01-on</a></li>
<ol>
<li><a href="xxx">1. Ebene 02-off</a></li>
</ol>
<ol>
<li><a href="xxx">2. Ebene 02-off</a></li>
</ol>
<ol>
<li><a href="xxx">3. Ebene 02-off</a></li>
</ol>
<ol>
<li><a href="xxx">1. Ebene 03-on</a></li>
</ol>
<ol>
<li><a href="xxx">2. Ebene 03-off</a></li>
</ol>
<ol>
<li><a href="xxx">4. Ebene 02-off</a></li>
</ol>
<ol>
<li><a href="xxx">5. Ebene 02-off</a></li>
</ol>
<ol>
<li><a href="xxx">6. Ebene 02-off</a></li>
</ol>
<ol>
<li><a href="xxx">7. Ebene 02-off</a></li>
</ol>
<li><a href="xxx">3. Ebene 01-off</a></li>
<li><a href="xxx">4. Ebene 01-off</a></li>
<li><a href="xxx">5. Ebene 01-off</a></li>
<li><a href="xxx">6. Ebene 01-off</a></li>
</ol>
</div>
Dann habe ich die <ol></ol> wieder herausgenommem und ins Modul gesetzt:
Templates:
Code: Alles auswählen
navfirst_off.html:
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
navfirst_on.html:
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a>
<!-- END:BLOCK -->
navsecond_off.html:
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
navsecond_on.html:
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a>
<!-- END:BLOCK -->
navthird_off.html:
<!-- BEGIN:BLOCK -->
<li><a target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
navthird_on.html:
<!-- BEGIN:BLOCK -->
<li><a class="nav-kontext_on" target="{TARGET}" href="{HREF}">{NAME}</a></li>
<!-- END:BLOCK -->
Modulveränderung:
Code: Alles auswählen
/* Create Navigation Array */
nav($sel_idcat);
/* Start Output buffer */
ob_start();
echo '<div id="navcontainer-left">
<ol id="navlist-left">[<-ol->_L1]';
foreach ($navitems as $key => $data) {
/* 1. Navigations Ebene */
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if ($idcat == $data['idcat'] || is_array($data['sub'])) {
$tpl->generate('templates/navfirst_on.html');
} else {
$tpl->generate('templates/navfirst_off.html');
}
if (is_array($data['sub'])) {
echo '<ol class="subnavlist-left">[<-ol->_L2]';
foreach ($data['sub'] as $key => $data) {
/* 2. Navigations Ebene */
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if ($idcat == $data['idcat'] || is_array($data['sub'])) {
$tpl->generate('templates/navsecond_on.html');
} else {
$tpl->generate('templates/navsecond_off.html');
}
if (is_array($data['sub'])) {
echo '<ol class="subnavlist-left">[<-ol->_L3]';
foreach ($data['sub'] as $key => $data) {
/* 3. Navigations Ebene */
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if ($idcat == $data['idcat']) {
$tpl->generate('templates/navthird_on.html');
} else {
$tpl->generate('templates/navthird_off.html');
}
} // end foreach
echo '[<-/ol->_L3]</ol>';// end subnavlist-left
echo '[<-/li->_L2-on]</li>';// end navlist-left
} // end if
} // end foreach
echo '[<-/ol->_L2]</ol>';// end subnavlist-left
echo '[<-/li->_L1-on]</li>';// end navlist-left
} // end if
} // end foreach
echo '[<-/ol->_L1]</ol>';// end navlist-left
echo '</div>';
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>
Erzeugter Quelltext:
Code: Alles auswählen
<!--start modul-->
<div id="navcontainer-left">
<ol>
<li><a href="xxx">1. Ebene 01-off</a></li>
<li><a href="xxx">2. Ebene 01-off</a></li>
<ol class="subnavlist-left">
<li><a href="xxx">1. Ebene 02-off</a></li>
<li><a href="xxx">2. Ebene 02-off</a></li>
<li><a href="xxx">3. Ebene 02-off</a>
<ol>
<li><a href="xxx">1. Ebene 03-on</a></li>
<li><a href="xxx">2. Ebene 03-off</a></li>
</ol>
</li>
<li><a href="xxx">4. Ebene 02-off</a></li>
<li><a href="xxx">5. Ebene 02-off</a></li>
<li><a href="xxx">6. Ebene 02-off</a></li>
<li><a href="xxx">7. Ebene 02-off</a></li>
</ol>
</li>
<li><a href="xxx">3. Ebene 01-off</a></li>
<li><a href="xxx">4. Ebene 01-off</a></li>
<li><a href="xxx">5. Ebene 01-off</a></li>
<li><a href="xxx">6. Ebene 01-off</a></li>
</ol>
</div>
Hat nur einen Schönheitsfehler:
Wenn ich einen Menuepunkt auswähle, der keine Unterpunkte hat, wird trotzdem (natürlich) das <ol></ol> erzeugt ;-((
Müßte da nicht eine dritte Abfrage her?
Status: aktiv aber ohne Unterpunkte?
Und wenn? Wie?
Wenn Du Dir das Ganze ansehen möchtest:
http://www.dilight.com/front_content.php
Die farbigen Hyroglyphen habe ich reingesetzt, damit man ohne jedesmal den Qeulltext durchwühlen zu müssen, sieht was wo passiert.
(Die habe ich oben jeweils aus den Quelltexten der Übersichtlichkeit halber entfernt.)
Fällt Dir etwas geniales dazu ein?
Grüße,
Karin.