Beispiele zur Funktion printNavigation()

Allgemeine Diskussionen zu ConPresso 4. Handhabung, Möglichkeiten, Verständnisfragen.
Achtung: Bitte benutzt wenn möglich die themenspezifischen Foren!
Benutzeravatar
drowning by numbers
ConPresso-Newbie
Beiträge: 20
Registriert: 10.08.2006 15:25

Beitrag von drowning by numbers »

Ja ich glaub das wird langsam zu offtopic, aber danke für den Tipp, sieht aus als würde der IE den Code jetzt auch direkt mal raffen :o
Null Ahnung
ConPresso-Checker
Beiträge: 118
Registriert: 26.08.2006 21:39
Hat sich bedankt: 2 Mal

Beitrag von Null Ahnung »

Noch eine "dumme" Anfängerfrage!
Ich habe das Menü Beispiel 6
ich möchte gerne, dass jeweils das (unter Menü) in einer anderen Hintergrundfarbe dargesteltl wird, wegen der Übersichtlichkeit. Könnt ihr einem Anfänger dabei helfen?
Ich habe das hier eingegeben, allerdings ist dann der Hintergrund immer glleich. von Untermenü sollte es in #333399 angezeigt werden.
Danke!

Code: Alles auswählen

 <style>
    #navigation6 {border: 1px solid #000; padding: 1em;}

    #navigation6 ul {margin: 0; padding: 0; list-style-type: none;}

    #navigation6 a {
        padding: 0.5em;
        margin: 0.5em 0;
        display: block;
        width: 200px;
        background: #330099;
        color: #fff;
        border-left: 1em #ee0 solid;
        text-decoration: none;
    }
    #navigation6 a:hover {
        border-left: 1em #0ee solid;
    }
</style>
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Schau Dir doch mal Beispiel 2 an.
Da kannst Du sehen, wie man die Untermenüs anders formatiert.
In dem Fall eine andere Einrückung, in Deinem Fall eben eine andere Hintergrundfarbe.
Du müsstest also was in der Art machen

Code: Alles auswählen

#navigation6 li li a {
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
Null Ahnung
ConPresso-Checker
Beiträge: 118
Registriert: 26.08.2006 21:39
Hat sich bedankt: 2 Mal

Beitrag von Null Ahnung »

MarkusR hat geschrieben:Schau Dir doch mal Beispiel 2 an.
Da kannst Du sehen, wie man die Untermenüs anders formatiert.
In dem Fall eine andere Einrückung, in Deinem Fall eben eine andere Hintergrundfarbe.
Du müsstest also was in der Art machen

#navigation6 li li a {
DANKE hat geklappt!
Prima
LG
Benutzeravatar
Feuer112
ConPresso-User
Beiträge: 56
Registriert: 02.10.2006 15:08
Hat sich bedankt: 8 Mal
Danksagung erhalten: 3 Mal

Beitrag von Feuer112 »

Hallo Balu,

ich möchte gerne Beispiel 6 bei mir realisieren. Wie muss die Printnavigation aussehen, das die Unternavigation zwischen der Hauptnavigation aufklappt?? Also alles vertikal:

Ebene 1
Ebene 1.1 --> Unternaviagtion soll andere Farben erhalten
Ebene 1.2
Ebene 2
Ebene 3

Die zweite Ebene ist laut deinem Code immer abhängig von einer aktiven ersten Ebene.

Ist es jedoch trotzdem möglich das bei einem klick auf die erste Ebene sich nur die dazugehörigen Unterebenen in der Navigation öffnet, der Rubrikseiteninhalt jedoch gleich bleibt. Möglich ware auch, dass die Rubriksiete = erste Unterebene wird
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Feuer112 hat geschrieben:Ist es jedoch trotzdem möglich das bei einem klick auf die erste Ebene sich nur die dazugehörigen Unterebenen in der Navigation öffnet, der Rubrikseiteninhalt jedoch gleich bleibt. Möglich ware auch, dass die Rubriksiete = erste Unterebene wird
In der regel ist jeder Navigationspunkt eine Rubrik, daher wird auch immer eine Rubrik geöffnet, wenn man auf einen Navigationspunkt klickt.

Wenn du möchtest, dass sich OHNE Aufruf einer neuen Rubrik ein Navigationszweig aufklappt, dann kannst du das mithilfe von CSS (Pseudoattribut :hover) oder Javascript realisieren. Dabei wäre möglicherweise eine Umprogrammierung der _include/printnavigation.php nötig.

Wichtig ist, wenn du nur immer die Unterpunkte zur aktuellen Rubrik sehen möchtest, musst du das Argument $activeOnly beim Aufruf der Printnavigation auf TRUE setzen.
Wenn du allerdings mit CSS oder Javascript ein variables Menü bauen möchtest, dann musst du $activeOnly auf FALSE setzen. Es werden also alle Punkte ausgegeben, d.h. wie bei einer normalen Sitemap.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
comanche
ConPresso-User
Beiträge: 65
Registriert: 01.01.1970 01:00
Hat sich bedankt: 2 Mal

Re: Beispiel 4: Nur eine Unternavigation

Beitrag von comanche »

balu hat geschrieben:Beispiel 4: Nur eine Unternavigation
Natuerlich sollte man nicht vergessen, auch eine Unternavigation auszugeben :-).

Bild

Die Funktion printNavigation() erlaubt das Setzen ...
Schönes Beispiel, das sogar ICH einbinden kann :D Danke dafür!

Nun aber doch noch eine Frage dazu:
Ich möchte nicht nur die Anzeige der 2. Ebene (Unterrubriken) ein-/oder ausblenden, sondern müsste auch noch nachfolgenden HTML-Code von der Anzeige der 2. Ebene abhängig machen. Es soll nach der Anzeige der Navigation die "Anweisung A" oder – wenn keine Unterrubriken existieren – ausschließlich die "Anweisung B" ausgegeben werden:

Code: Alles auswählen

<?php 
$ae = getActiveElements();
if (isset($ae[1])) {
printNavigation('', 0, 1, $ae[1]); 
Anweisung A;
} else  {
Anweisung B;
}
?> 
Dies funktioniert aber nur, wenn die angezeigte Haupt-Rubrik NICHT in der Navigation existiert. Beispielsweise existiert eine Hauptrubrik "Aktuelles", die keine Unterrubriken (2. Ebene) besitzt. Wird diese Rubrik angezeigt, soll die ELSE-Anweisung ausgeführt werden.

Ja, ja, man merkt schon, dass ich kein Programmierer bin ...

Grüße,
Andreas

edit: typo
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hallo Andreas,

Programmierer gibt es hier ja einige, also will ich mal schauen, ob ich Dir dabei nicht helfen kann :-).

Die Zeile "if (isset($ae[1])) {" prueft eigentlich nur, ob die aktuelle Rubrik im Navigationsbaum vorhanden ist (in diesem Fall ist die erste Ebene der Navigation immer mit einem Wert belegt).

Wenn Du pruefen willst, ob die erste Ebene auch "Kindelemente" hat, musst Du etwas anders vorgehen:

Code: Alles auswählen

<?php
$ae = getActiveElements();
if (isset($ae[1])) {
    printNavigation('', 0, 1, $ae[1]);

    $n = getNavigation();
    $childs = 0;
    foreach ($n as $v) {
        if ($v['id']!=$ae[1]) continue;
        $childs = $v['childs'];
        break;
    }
}

if ($childs>0) {
    // Anweisung "A";
} else {
    // Anweisung "B";
}
?>
Ich habe das nicht getestet. Probier es einfach mal und melde Dich dann :)

Balu
comanche
ConPresso-User
Beiträge: 65
Registriert: 01.01.1970 01:00
Hat sich bedankt: 2 Mal

Beitrag von comanche »

Hallo Balu,

entschuldige bitte, dass ich so spät reagiere :oops:

Herzlichen Dank für das Script. Funktioniert wunderbar! *freu* Jetzt kann ich die gewünschten HTML-Elemente ein-/ausblenden :lol:

Viele Grüße,
Andreas
like_it
ConPresso-User
Beiträge: 42
Registriert: 21.04.2006 15:46
Wohnort: Wien
Kontaktdaten:

Beitrag von like_it »

Gibt es eine Möglichkeit, wenn man in der Navigation einen Artikel als Externe URL einpflegt, dass diese auch als "aktive" erkannt wird?

Bzw. welche Möglichkeiten gibt es noch, direkt vom Menü in einen Artikel zu linken?

lg, Michael
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Hallo Michael,

hier wurde das schon mal diskutiert: http://community.conpresso.de/viewtopic.php?t=2137

Gruß Matthias
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
joehomm
ConPresso-Newbie
Beiträge: 6
Registriert: 01.01.2006 11:46

Beitrag von joehomm »

So, nun möchte ich dieses Thema nochmal hochholen.

In einer im Moment in Entwicklung stehenden Seite möchte ich auch mit printnavigation() arbeiten.

Ich benutze das Beispiel5
Also zum einen ein "Hauptmenü" welches die verschiedenen Oberpunkte darstellt und zudem dann ein "Untermenü", in dem die Unterpunkte der im Moment aktiven Rubrik angezeigt werden.

Hier das "Hauptmenu"

Code: Alles auswählen

<?php
    include_once(CPO_BASEDIR.'_include/printnavigation.inc.php');
    printNavigation('', 0, 1);
?>
Und hier das "Untermenü"

Code: Alles auswählen

         <?php 
        printNavigation() 
          */ 
         $ae = getActiveElements(); 
         if (isset($ae[1])) { 
             printNavigation('', 0, 1, $ae[1]); 
         } 
         ?> 
Das klappt auch alles solange es sich um die zweite Ebene handelt.
Nun soll aber teilweise auch noch eine dritte Ebene dazu kommen.
Diese darf aber ganz normal wie z.B. in Beispiel 3 unter dem Punkt des Untermenüs eingeblendet werden, also nicht erst nachdem der Unterpunkt geklickt wurde.

So, und nun stellt sich die Frage, wie das zu bewerkstelligen ist?

Vielen Dank schonmal für Eure Hilfe.

Grüße
JoE
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Gib für $levels doch mal etwas größer 1 ein, dann wird auch mehr als die zweite Ebene gezeigt.
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
joehomm
ConPresso-Newbie
Beiträge: 6
Registriert: 01.01.2006 11:46

Beitrag von joehomm »

Oh je ....

Ich sag nix mehr, vielen, vielen Dank. :oops:

Grüße
JoE
paco
ConPresso-Newbie
Beiträge: 1
Registriert: 03.08.2008 17:28

Navigation Beispiel 5

Beitrag von paco »

Hallo zusammen,

ich habe auch das Beispiel 5 aber mir wird keine 2 Ebene angezeigt.

Das Ziel soll sein, das es mir bei aktiver Ebene 1, Menüpunkt 1 (2, 3 usw)die 2 Ebene des jeweiligen Menüpunktes(falls vorhanden) angezeigt wird. Also Wenn Menüpunkt 1, Ebene 1 aktiv ist, dann soll die Ebene 2 des Menüpunkt 1 erscheinen.

Danke für Eure Hilfe.

Code: Alles auswählen

<div id="navi">
		<?php printNavigation('', 0, 1); ?>
	</div>

	<div class="clear">
	</div>
	
	<div id="subnavi">
		<?php 
         $ae = getActiveElements(); 
         if (isset($ae[1])) {                        // nur ausgeben, wenn es eine aktive erste Ebene gibt 
             printNavigation('', 0, 1, $ae[1]); // es wird wieder nur eine Ebene ausgegeben (die zweite) 
         } 
         ?> 

    </div>

	<div class="clear">
	</div>
Antworten