NAVIGATION
Annahme: Die erste Navigationsebene soll horizontal dargestellt werden, beispielsweise im Kopfbereich der Seite. Die darunterliegenden Ebenen sollen vertikal dargestellt werden, beipielsweise auf der linken Seite der Homepage.
Horizontal mit aktiver Ebene category_02
| home | category_01 | [category_02] | category_03 | category_04 |
Vertikale Ausgabe der Unterebene von der aktiven Elternebene (parent) [category_02]
Docu: –
Forum: NAV_LIST_UL in verschiedenen Ebenen (mit Hilfe des Level-Lift)
Autor: K.Heermann (flip-flop) http://planmatrix.de 2009/05/13
CMS-Version: >= V1.3.0
Version: –
Update: –
Bedingung: → /config/phpwcms/conf.inc.php
Um das Problem zu lösen werden zwei Navigationen aufgerufen, die eine für den horizontalen, die andere für den vertikalen Bereich.
Wichtig dazu ist hier ein Parameter der horiz. Navigation.
Hier wird die Ausgabe nur einer Ebene erlaubt ({NAV_LIST_UL:F,0,1,act_path,active}).
Um die Parameter nachzulesen bitte NAV_LIST_UL (Parameter).
Eine komplettes CSS-Set: NAV_LIST_UL (CSS)
------------------------------------ L E V E L .: : : : .0 1 2 3 <- LEVEL-Nr. .: : : : -+ home : ID=0 -+--+ category_01 ID=01 -+--+--+ category_01_01 ID=10 -+--+--+ category_01_02 ID=11 -+--+ category_02 ID=02 -+--+--+ category_02_01 ID=04 -+--+--+--+ category_02_01_01 ID=06 -+--+--+--+ category_02_01_02 ID=07 -+--+--+ category_02_02 ID=05 -+--+--+ category_02_03 ID=08 -+--+ category_03 ID=03 -+--+ category_04 ID=09 .: : : : .0 1 2 3 <- LEVEL Nr. ------------------------------------
<div class=“nlu_navi1”>
{NAV_LIST_UL:FP,0,1,act_path,active}
</div> → nur die erste Ebene (Tiefe=1) nach “Home (ID=0)” (hier mit dem parent-Schalter “P” um Home selbst auch darzustellen)
Darstellung: | home | category_01 | [category_02] | category_03 | category_04 |
Und strukturell:
------------------------------------ L E V E L .: : : : .0 1 2 3 <- LEVEL-Nr. .: : : : -+ home : ID=0 -+--+ category_01 ID=01 -+--+ category_02 ID=02 (wenn aktiv, siehe unten) -+--+ category_03 ID=03 -+--+ category_04 ID=09 .: : : : .0 1 2 3 <- LEVEL Nr. ------------------------------------
Ohne den Paramter “P” sähe das so aus:
<div class=“nlu_navi1”>
{NAV_LIST_UL:FP,0,1,act_path,active}
</div> → nur die erste Ebene (Tiefe=1) nach “Home (ID=0)” (hier ohne den parent-Schalter “P”, → Home wird nicht dargestellt)
Darstellung: | category_01 | [category_02] | category_03 | category_04 |
Und strukturell:
------------------------------------ L E V E L .: : : : .0 1 2 3 <- LEVEL-Nr. .: : : : -+--+ category_01 ID=01 -+--+ category_02 ID=02 (wenn aktiv, siehe unten) -+--+ category_03 ID=03 -+--+ category_04 ID=09 .: : : : .0 1 2 3 <- LEVEL Nr. ------------------------------------
Nun fehlt noch die Ausgabe der Unterebenen, dazu wird der Level-Liftt verwendet. (Darstellung der Navigation ab einer bestimmten Ebene (Level)).
Dieser php-Schnipsel wird an der Stelle in der Vorlage platziert, an der dieser Navigationsteil erscheinen soll. (In unserem Fall ist das die Ausgabe ab der ersten Ebene → LEVEL_ID'][1]).
[PHP] if(isset($GLOBALS['LEVEL_ID'][1])) { $level_id = $GLOBALS['LEVEL_ID'][1]; echo '<div class="nlu_navi1">'.LF; echo '{NAV_LIST_UL:F,'.$level_id.',,act_path,active}'; echo '</div>'; } [/PHP]
Wobei LEVEL_ID'][X] die auszugebende Ebene darstellt (Ausgabe ab dieser Ebene ….).
Dieser zweite Navigationsaufruf ({NAV_LIST_UL:….}) ist also eingebettet in ein kleines Steuerungssystem das die Ebenen abfragt.
<note important> conf.inc.php → $phpwcms['allow_cntPHP_rt'] = 1; allow PHP replacement tags and includes in content parts </note>
Z.B. category_02 = aktiv (in diesem Bsp. durch die horiz. Navi veranlasst)
------------------------------------ L E V E L .: : : : .0 1 2 3 <- LEVEL-Nr. .: : : : -+--+--+ category_02_01 ID=04 -+--+--+ category_02_02 ID=05 -+--+--+ category_02_03 ID=08 .: : : : .0 1 2 3 <- LEVEL Nr. ------------------------------------
Z.B. bei category_02 = aktiv → act_path (horizontal) und category_02_01 = aktiv:
------------------------------------ L E V E L .: : : : .0 1 2 3 <- LEVEL-Nr. .: : : : -+--+--+ category_02_01 ID=04 (aktiv) -+--+--+--+ category_02_01_01 ID=06 -+--+--+--+ category_02_01_02 ID=07 -+--+--+ category_02_02 ID=05 -+--+--+ category_02_03 ID=08 .: : : : .0 1 2 3 <- LEVEL Nr. ------------------------------------
<div class=“nlu_navi1”> {NAV_LIST_UL:FP,0,1,act_path,active} </div>
und
[PHP] if(isset($GLOBALS['LEVEL_ID'][1])) { $level_id = $GLOBALS['LEVEL_ID'][1]; echo '<div class="nlu_navi1">'.LF; echo '{NAV_LIST_UL:F,'.$level_id.',,act_path,active}'; echo '</div>'; } [/PHP]
ergibt (bei aktiver Ebene category_02)
| home | category_01 | [category_02] | category_03 | category_04 |
oder (bei aktiven Ebenen category_02 und category_02_01)
| home | category_01 | [category_02] | category_03 | category_04 |