Navigation in verschiedenen Ebenen

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]

  • category_02_01
  • category_02_02
  • category_02_03


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

  • $phpwcms['allow_cntPHP_rt'] = 1;



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)

Annahme der Struktur (IDs sind erfunden):

------------------------------------
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.
------------------------------------

Darstellung der Ausgabe mit:

<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)).

Level-Lift:

Level-Lift

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>

Ausgabe der aktiven Unterebene

Z.B. category_02 = aktiv (in diesem Bsp. durch die horiz. Navi veranlasst)

  • category_02_01
  • category_02_02
  • category_02_03
------------------------------------
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:

  • category_02_01
    • category_02_01_01
    • category_02_01_02
  • category_02_02
  • category_02_03
------------------------------------
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.
------------------------------------

Zusammenfassung:

<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 |

  • category_02_01
  • category_02_02
  • category_02_03


oder (bei aktiven Ebenen category_02 und category_02_01)

| home | category_01 | [category_02] | category_03 | category_04 |

  • category_02_01
    • category_02_01_01
    • category_02_01_02
  • category_02_02
  • category_02_03
deutsch/navigationen/nav_list_ul-beispiele/navi-verschiedene-ebenen.txt · Last modified: 2018/06/03 18:09 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0