Page 1 of 1

Horizontale und Vertikale Navigation

Posted: Thu 31. Aug 2006, 09:28
by frabon69
Hallo zusammen, ich setze eine Vertikale und eine Horizontale Navigation ein, gibt es eine Möglichkeit die Horizontale Navigation mit anderen Menüpunkten (links) auszustatten als die Vertikale Navigation, und wenn ja wie gehe ich da vor? Zur Zeit zeigen beide Navigationen die gleichen Menüpunkte an.

Viele Grüsse
Frank

Posted: Thu 31. Aug 2006, 11:45
by flip-flop
Hi frabon69,

hier ist eine kleine Anleitung: http://www.phpwcms.de/forum/viewtopic.php?p=71549#71549
ergänzend dazu kannst du auch die neue Menüvariante NAV_LIST_UL (ab V1.2.8 ) testen und ausbauen: http://www.phpwcms.de/forum/viewtopic.php?p=71754#71754

Eine fertige CSS-Datei zu NAV_LIST_UL: http://www.phpwcms.de/forum/viewtopic.php?t=12716

Grundlage Level und ID
------------------------------------------------------

Code: Select all

 ------------------------------------
 L  E  V  E  L
.:  :  :  :
.0  1  2  3   <- LEVEL-Nr.
.:  :  :  :
-+ home   :                    ID=0
-+--+ category_01              ID=01
-+--+ category_02              ID=02
-+--+--+ category_02_01        ID=04
-+--+--+--+ category_02_01_01  ID=06
-+--+--+--+ category_02_01_02  ID=07
-+--+--+ category_02_01        ID=05
-+--+--+ category_02_02        ID=08
-+--+ category_03              ID=03
-+--+ category_04              ID=09
.:  :  :  :
.0  1  2  3   <- LEVEL Nr.
 ------------------------------------
----------
Levelbasiert: Die Ebene wird relativ adressiert.
Der Vorteil ist, dass ich einen RT in die Vorlage schreibe und alle vom Client gerade aktivierten Ebenen damit angezeigt werden können, die auf das Schema passen.
Der Nachteil ist, dass ich keine Ebene anzeigen kann, die nicht gerade vom Client aufgerufen ist.

ID-basiert: Die Ebene wird absolut adressiert.
Der Vorteil ist, dass diese Ebene immer angezeigt wird, gleich wo der Client sich gerade auf der Seite befindet.
Der Nachteil ist, dass ich bei verscheidenen Ebenensträngen für diesen TAG mehrere Vorlagen brauche.
----------

NAV_LIST_UL
------------------------------------------------------
Diese Variante dient als horizontale NAVI oben.

Code: Select all

<div class="hauptmenu">
{NAV_LIST_UL:HCSS,,1,,active,,,[|]}
</div>
(Wobei ich heute (07.12.07) die horizontale Variant im o.g. Link "CSS-Datei" bevorzugen würde).

Und diese Variante als vertikale NAVI links oder rechts, mit einem Einstiegslevel.
Wobei LEV das numerische Level ist, ab dem die vertikale NAVI angezeigt werden soll.
Level = Spaltenwert 0, 1, 2, .... (relativ Navigation)
ID= Nummeraler Wert der Seitenebene in Seitenstruktur (Maus über das Blättchen bewegen) (absolute Navigation)

if(isset($GLOBALS['LEVEL_ID'][LEV])) {
$level_id = $GLOBALS['LEVEL_ID'][LEV];

Code: Select all

[PHP]
if(isset($GLOBALS['LEVEL_ID'][1])) {
$level_id = $GLOBALS['LEVEL_ID'][1];
echo '<div class="untermenu">'.LF;
echo '<h1>Filme</h1>'.LF;
echo '{NAV_LIST_UL:VCSS,'.$level_id.',1,,active,,,#|}';
echo '</div>';
}
[/PHP]
Gruß Knut

Formatierung Horizontale Navigation

Posted: Thu 31. Aug 2006, 14:29
by frabon69
Hallo zusammen,
denke habe alles soweit verstanden. Jetzt stellt sich mir aber noch die Frage wo ich die Formatierung für meine neue Navigation festlege, so das diese genau so aussieht wie meine Vertikale.

gruss
frank

Posted: Thu 31. Aug 2006, 16:53
by flip-flop
In den entsprechenden CSS-Dateien. Entweder in der forntend.css, oder wenn der RT (Replacment Tag) eine eigene CSS-Datei mitbringt, jeweils in dieser Datei. Diese Dateien werden dann in der Sektion html head: dazugelinkt.
--------
<link rel="stylesheet" type="text/css" href="phpwcms_template/inc_css/meine_datei.css">
--------
Für die Formatierung bedarf es dann ein wenig CSS-Wissen". Hat den Vorteil, das du absolut frei bist, und je nach Kenntnisstand richtig zaubern kannst.

Ich weiß nun nicht, wofür du dich entschieden hast.

Knut

Posted: Fri 1. Sep 2006, 09:16
by Oliver Georgi
Die 1.2.8er Version nutzt für das Einbetten von (Custom) CSS Dateien zur Laufzeit nicht mehr das <link> Tag sondern ausschließlich die @import Anweisung. Dann kann jeder Custom Code eben genau zur Laufzeit das CSS einbinden, dass benötigt wird.

Die switchFontSize.php zeigt das beispielhaft.

Code: Select all

$block['css'][] = 'myCSS.css'
heißt: binde die CSS Datei "myCSS.css", die sich in phpwcms_template/inc_css befindet, ein. Es können dort auch Unterordner benutzt werden.

Code: Select all

$block['css'][] = 'myCSSFolder/myCSS.css'
Will man ganz sicher gehen, dass die CSS Datei auch wirklich nur 1x eingebunden wird, so schreibe man:

Code: Select all

$block['css']['myCSS'] = 'myCSS.css'
Das gilt, für den Ordner frontend_render.

Um aus eigenen Funktionen dieses Verhalten zu beeinflussen, muss man auf die Globale zugreifen

Code: Select all

$GLOBALS['block']['css'][] = 'myCSS.css'
Oliver