Navi: unterschiedliches Design verschiedener Menüzweige

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Antworten
automatix
ConPresso-User
Beiträge: 30
Registriert: 10.10.2008 12:12
Hat sich bedankt: 1 Mal

Navi: unterschiedliches Design verschiedener Menüzweige

Beitrag von automatix »

Hallo allerseits!

Folgender Sachverhalt: Es gibt ein 3-Ebenen-Menü mit 5 elementen auf der orbersten Ebene. Nun sollen die Elemente der obersten Ebene mit deren Unterpunkten unterschiedlich aussehen, z.B.: der erste Navi-Zweig hat nen roten Untergrund, der zweite einen günen, der dritte einen blauen u.s.w.
Element 1 (rot)
- Element 1.1 (hell-rot)
- Element 1.2 (hell-rot)
- Element 1.3 (hell-rot)
Element 2 (grün)
- Element 2.1 (hell-grün)
- Element 2.2 (hell-grün)
- Element 2.3 (hell-grün)
Element 3 (blau)
- Element 3.1 (hell-blau)
- Element 3.2 (hell-blau)
- Element 3.3 (hell-blau)
...
Element n ...
Ist das mit Conpresso überhaupt realisierbar? Wie kann man das umsetzen?

Danke.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Wenn Du bereit bist die 5 Hauptpunkte als fix zu betrachten, dann kann man den jeweilen Punkt als fixen Link erstellen und dann mittels printNavigation() die jeweiligen Unterpunkte einblenden. Was vergleichbares habe ich gerade gemacht, dabei ging es aber um die Mischung von graphischen Hauptpunkten mit "normalen" Textlinks für die Unterpunkte.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
automatix
ConPresso-User
Beiträge: 30
Registriert: 10.10.2008 12:12
Hat sich bedankt: 1 Mal

Beitrag von automatix »

Ja, das wäre eine gute Lösung. Nun gibt's aber ein weiteres Problem, und zwar: Ein Zweig soll sich komplett aufklappen, wenn er (bzw. das entsprechende Element der obrsten Ebene) aktiv ist. Im Normalfall würde die Einstellung bei mir sein:

Code: Alles auswählen

<?php printNavigation('', 0, 4, 0, true); ?>
z.B. mit folgendem Ergebnis:

Element 1
Element 2
- Element 2.1
- Element 2.2
- - Element 2.2.1
- - Element 2.2.2
- - Element 2.2.3
- Element 2.3

Element 3
Element 4
Element 5

Nun hat man die erste Ebene statisch definiert, so sieht der Code aus:

Code: Alles auswählen

			<div id="navi">
				<ul>
					<li>
						<a href="http://myhomepage.loc/_rubric/index.php?rubric=Hunde">Hunde</a>
						<?php printNavigation('', 0, 3, 2, true); ?>
					</li>
				</ul>
				<ul>
					<li>
						<a href="http://myhomepage.loc/_rubric/index.php?rubric=Katzen">Katzen</a>
						<?php printNavigation('', 0, 2, 3, true); ?>
					</li>
				</ul>
				<ul>
					<li>
						<a href="http://myhomepage.loc/_rubric/index.php?rubric=Pferde">Pferde</a>
						<?php printNavigation('', 0, 2, 4, true); ?>
					</li>
				</ul>
				<ul>
					<li>
						<a href="http://myhomepage.loc/_rubric/index.php?rubric=Fische">Fische</a>
						<?php printNavigation('', 0, 2, 5, true); ?>
					</li>
				</ul>
				<ul>
					<li>
						<a href="http://myhomepage.loc/_rubric/index.php?rubric=Affen">Affen</a>
						<?php printNavigation('', 0, 2, 6, true); ?>
					</li>
				</ul>
			</div>
...mit dem Ergebnis, dass:
1. die zweite Ebene immer sichtbar ist;
2. die dritte Ebene eines Zweigs wird nur dann sichtbar, wenn das entsprechende übergeordnete Element aktiv ist.

Hast Du eine Idee, wie man erreicht, dass dieses "halbstatische" Menü sich wie das ursprüngliche verhält?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Da wo true steht sollte false stehen, wenn Du alle Unterebenen sehen willst.

So ist die Funktion im Code definiert:

Code: Alles auswählen

// $navi = getNavigation();
// $activeRubric = $cpoRubric['id'];
// $levels: how many levels to display
// $parent: which element to start with
// $activeOnly: do not print inactive sublevels
function printNavigation($navi = '', $activeRubric = 0, $levels = 99, $parent = 0, $activeOnly = false, $target = '')
Ansonsten solltest Du dieser Anleitung
http://community.conpresso.de/viewtopic ... 3859#13859
folgend prüfen, ob die mittels activeElemets ermittelte [0]te ID gleich der Rubrik-ID ist und erst dann die Navigation ausgeben.

Du kannst Dein Beispiel auch optimieren, wenn Du ganz an den Angfang
$navigationsPunke = getNavigation();
schreibst und dann immer
printNavigation($navigationsPunke, ...
statt
printNavigation('', ...
verwendest.

Wenn Du wie vorgeschlagen erst noch durch activeElements prüfst, ob überhaupt was auszugeben ist, dann muß das natürlich nicht sein.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
automatix
ConPresso-User
Beiträge: 30
Registriert: 10.10.2008 12:12
Hat sich bedankt: 1 Mal

Beitrag von automatix »

Vielen Dank für die ausführliche Antwort!

Ich habe jetzt das Problem etwas anders gelöst, und zwar indem ich die printnavigation.inc.php etwas geändert habe, so dass beim Generieren der Navi den Top-Level-Elementen IDs vergeben werden, über die man dann diese Menüpunkte ansprechen kann.
JJ
ConPresso-Newbie
Beiträge: 2
Registriert: 20.03.2009 12:26

Beitrag von JJ »

automatix hat geschrieben:
Ich habe jetzt das Problem etwas anders gelöst, und zwar indem ich die printnavigation.inc.php etwas geändert habe, so dass beim Generieren der Navi den Top-Level-Elementen IDs vergeben werden, über die man dann diese Menüpunkte ansprechen kann.
Das würde mich sehr interessieren, da ich den Top-Level-Elementen mittels CSS verschiedene Bilder zuweisen und dabei auch class="actice" nutzen möchte.
Damit ich jedoch jedem Top-Lvl-Element ein bestimmtes Bild zuordnen kann, benötige ich eindeutige IDs.

Ich habe Forum schon durchwühlt und mich an den verschiedenen Lösungsansätze probiert.

Über ein hilfreiches Feedback würde ich mich sehr freuen!
Antworten