Seite 1 von 2

Hauptnavigation: alle Kategorien gleichzeitig anzeigen?

Verfasst: Di 30. Mär 2004, 13:46
von Bobby Shaftoe
Hallo Gemeinde,

mein Kunde möchte gerne, dass zu jedem Zeitpunkt sämtliche Kategorien im Menuebaum der Hauptnavigation sichtbar sind. Es sollen also nicht nur die Unterkategorien der Hauptkategorie angezeigt werden, in der man sich gerade befindet, sondern auch die Unterkategorien, aller anderen Hauptkategorien. Mein Kunde meint, dass damit den ungeübten Usern die Suche nach bestimmten Inhalten leichter fällt - und da muss ich ihm teilweise recht geben.

Ich hoffe, dass ich mein Problem verständlich klar gemacht habe. Eine Suche im Forum nach "Baum" oder "aufklappen" hat leider nichts ergeben, andere Suchbegriffe zu diesem Problem sind mir nicht eingefallen.

Ich bin leider nicht so firm in PHP aber ich denke, dass diese Anpassung nicht besonders aufwändig ist. Kann mir jemand auf die Sprünge helfen?

Verfasst: Fr 2. Apr 2004, 11:05
von Bobby Shaftoe
*bump*

ist meine frage zu ungenau oder kann mir wirklich niemand helfen? die problematik dürfte doch eigentlich öfter in der praxis auftauchen - niemand da, der vor dem selben problem stand und eine lösung hat?

Verfasst: Fr 2. Apr 2004, 11:34
von Halchteranerin
Hallo,

helfen kann ich Dir leider nicht. Als ich 'meine' Site nach Contenido migriert habe, wollte ich sie auch ziemlich genau abbilden, und das haette den 'ausgeklappten' Menues entsprochen. Das war aber mit der Standardinstallation nicht moeglich, ich hatte auch im Forum nichts dazu gefunden, das Anschauen des PHP-Zeugs hat mir leider nicht geholfen (da ich kaum Ahnung von PHP habe), und ich verzichtete darauf. Im Nachhinein muss ich sagen, dass ich das auch ok finde, denn wenn ich alle Menuepunkte die ganze Zeit ausgeklappt gehabt haette, waere es irgendwann, je nach Anzahl der Untermenues, unuebersichtlich geworden.

Und Du sagst auch, dass Du dem Kunden nur teilweise recht gibst. Eine Alternative (falls sich niemand findet, der diese Aenderung programmiert) waere, eine Sitemap anzubieten, denn da waeren alle Menuepunkte mit den Unterpunkten enthalten, und wenn sich ein Besucher auf der Seite 'verlaufen' hat, kann er immer noch zur Sitemap wechseln, aber die Hauptnavigation bleibt uebersichtlich.

Gruss
Christa

Verfasst: Fr 2. Apr 2004, 12:25
von scipio
Ich arbeite daran. Man muss nur das Modul Hauptnavi umstricken, zudem hab ich die NavTemplates 1,2 + 3 umgemodelt. Kann aber nur nach und nach weitermachen.

http://www.sotonic.de

Verfasst: Fr 2. Apr 2004, 14:30
von Bobby Shaftoe
danke euch beiden.
mein kunde hat lediglich zwei menueebenen, deshalb bleibt die übersichtlichkeit im rahmen. es handelt sich um eine sprachschule in frankreich mit internationalem publikum, deshalb kann man über die zielgruppe wenig aussagen. schon allein begriffe wie "sitemap" dürften einige der kunden überfordern, die sind froh, wenn sie im internet-cafe überhaupt auf die seite kommen. deshalb kann ich die bedenken meines kunden gut nachvollziehen, obwohl ich selbst es auch nicht so machen würde. aber ich seh's an meinem vater: der mann ist mitte 60 und ich hab ihm nach vier jahren sporadischer computerbenutzung immer noch nicht abgewöhnen können, dass man im WWW keinen doppelklick braucht :shock: :lol:

scipio, es wäre sehr nett von dir, wenn du hier was posten kannst, falls du brauchbare ergebnisse hast. ich hab selbst schon rumprobiert, aber dafür reichen meine php-kenntnisse einfach nicht aus.

Verfasst: Fr 2. Apr 2004, 15:03
von scipio
Also, auf sotonic.de steht jetzt alles untereinander. Nur beim Punkt "Kommunalwahl" zerschießt es meine Artikelliste. Den Bug muss ich noch suchen.

Zudem muss ich noch ne Funktion einbauen, die externe Links in einem neuen Fenster anzeigt und die 2 Unter-Ebenen anders darstellen.

Da komm ich aber erst wieder am Montag zu.

Verfasst: Mo 5. Apr 2004, 11:55
von scipio
Also, in meiner Umgebung läuft es. Ich habe auch keine Zeit mehr, das Ding zu verfeinern. Ich habe an der Standard-Hauptnavigation lediglich den OUTPUT-Bereich verändert:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Navigation ALL
* Author      :     Jürgen Brings
* Created     :     02-04-2004
* Modified    :     02-04-2004
************************************************/

/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');

$navitems = array();

/* Template Instance */
$tpl = new Template;

                $sql2 = "SELECT DISTINCT
                            TREE.idcat,
                            LANG.name,
                            TREE.level

                        FROM
                            ".$cfg["tab"]["cat_tree"]." AS TREE,
                            ".$cfg["tab"]["cat"]." AS CAT,
                            ".$cfg["tab"]["cat_lang"]." AS LANG
                        WHERE
                            TREE.idcat = LANG.idcat AND
                            TREE.level > 0 AND
                            LANG.visible   = '1' AND
                            CAT.parentid  = 'CMS_VALUE[0]'    
                           
                        ORDER
                            BY TREE.idtree";

$db2  = new DB_Contenido; 
$db2->query($sql2);

while ($db2->next_record()) {

$navitems[$db2->f("idcat")] = array("idcat" => $db2->f("idcat"),"name"=> $db2->f("name"),"level"=> $db2->f("level"));

}


foreach ($navitems as $key => $data) {

if ($data['level']==1) {
    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'ID', '_'.$data['idcat']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
    $tpl->next();

    if ($idcat == $data['idcat']) {
        $tpl->generate('templates/navfirst_on.html');
    } else {
        $tpl->generate('templates/navfirst_off.html');
    }
 } // endif

if ($data['level']==2) {

 /* 2. Navigations Ebene */
            $tpl->reset();
            $tpl->set('d', 'NAME',  $data['name']);
            $tpl->set('d', 'ID', '_'.$data['idcat']);
            $tpl->set('d', 'TARGET', $data['target']);
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
            $tpl->next();

            if ($idcat == $data['idcat']){
                $tpl->generate('templates/navsecond_on.html');
            } else {
                $tpl->generate('templates/navsecond_off.html');
            }

} // endiff

if ($data['level']==3) {

                    /* 3. Navigations Ebene */
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'ID', '_'.$data['idcat']);
                    $tpl->set('d', 'TARGET', $data['target']);
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
                    $tpl->next();

                    if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }

} // endiff

}

?>
Zudem habe ich andere Nav-Templates, die ich aber erst heute Abend beifügen kann, da ich meine Festplatte vergessen habe *grrrr*.

Heute und morgen noch auf http://www.sotonic.de zu sehen, danach gehe ich auf meine alte Navigation zurück.

Im laufenden Betrieb können natürlich noch einige Feinheiten benötigt werden. Wenn ja, ggf. posten. Wenn ich Zeit habe, kann man die noch einbauen. Oder es findet sich ein anderer ;-)

Ach ja, die Variable 'TARGET' ist ohne Inhalt, da ich diese Option bei mir nicht einsetze und ich mir nicht die Mühe gemacht habe zu checken, woher ich welche Werte ziehen muss.

Verfasst: Mo 5. Apr 2004, 16:29
von Bobby Shaftoe
cool, bei mir hats auf anhieb geklappt!
danke, scipio! :D

Verfasst: Di 6. Apr 2004, 06:52
von scipio
Hier die Nav-Templates, die ich auf <div> umgestellt habe. Die Standard-Templates arbeiten mit einer Tabelle, die im Output aber <table>-Tags benötigen.

http://www.sotonic.de/contenido/cms/upl ... ion-JB.zip

Die Bilder gehören in das Upload-Verzeichnis, dort in einen Ordner "style", alles über die Dateiverwaltung.

Das Ergebnis sieht dann so aus:

Bild

Schalte jetzt wieder um auf meine alte Navigation ;-)

Hauptnavigation

Verfasst: Mo 28. Jun 2004, 16:25
von Knipser
Hallo scipio,

sehr schön deine Lösung um eine Navigation komplett aufgeklappt darzustellen. Genau das habe ich gesucht! Leider zeigt mir das Modul nicht nur die Punkte die in der Hauptnavigation dargestellt werden sondern auch alle anderen Punkte die in der Hilfsnavigation angezeigt werden. Lässt sich das unproblematisch beheben? Bin dir für jede Hilfe dankbar

Eberhard



scipio hat geschrieben:Also, in meiner Umgebung läuft es. Ich habe auch keine Zeit mehr, das Ding zu verfeinern. Ich habe an der Standard-Hauptnavigation lediglich den OUTPUT-Bereich verändert:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Navigation ALL
* Author      :     Jürgen Brings
* Created     :     02-04-2004
* Modified    :     02-04-2004
************************************************/

/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');

$navitems = array();

/* Template Instance */
$tpl = new Template;

                $sql2 = "SELECT DISTINCT
                            TREE.idcat,
                            LANG.name,
                            TREE.level

                        FROM
                            ".$cfg["tab"]["cat_tree"]." AS TREE,
                            ".$cfg["tab"]["cat"]." AS CAT,
                            ".$cfg["tab"]["cat_lang"]." AS LANG
                        WHERE
                            TREE.idcat = LANG.idcat AND
                            TREE.level > 0 AND
                            LANG.visible   = '1' AND
                            CAT.parentid  = 'CMS_VALUE[0]'    
                           
                        ORDER
                            BY TREE.idtree";

$db2  = new DB_Contenido; 
$db2->query($sql2);

while ($db2->next_record()) {

$navitems[$db2->f("idcat")] = array("idcat" => $db2->f("idcat"),"name"=> $db2->f("name"),"level"=> $db2->f("level"));

}


foreach ($navitems as $key => $data) {

if ($data['level']==1) {
    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'ID', '_'.$data['idcat']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
    $tpl->next();

    if ($idcat == $data['idcat']) {
        $tpl->generate('templates/navfirst_on.html');
    } else {
        $tpl->generate('templates/navfirst_off.html');
    }
 } // endif

if ($data['level']==2) {

 /* 2. Navigations Ebene */
            $tpl->reset();
            $tpl->set('d', 'NAME',  $data['name']);
            $tpl->set('d', 'ID', '_'.$data['idcat']);
            $tpl->set('d', 'TARGET', $data['target']);
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
            $tpl->next();

            if ($idcat == $data['idcat']){
                $tpl->generate('templates/navsecond_on.html');
            } else {
                $tpl->generate('templates/navsecond_off.html');
            }

} // endiff

if ($data['level']==3) {

                    /* 3. Navigations Ebene */
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'ID', '_'.$data['idcat']);
                    $tpl->set('d', 'TARGET', $data['target']);
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
                    $tpl->next();

                    if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }

} // endiff

}

?>

Zudem habe ich andere Nav-Templates, die ich aber erst heute Abend beifügen kann, da ich meine Festplatte vergessen habe *grrrr*.

Heute und morgen noch auf http://www.sotonic.de zu sehen, danach gehe ich auf meine alte Navigation zurück.

Im laufenden Betrieb können natürlich noch einige Feinheiten benötigt werden. Wenn ja, ggf. posten. Wenn ich Zeit habe, kann man die noch einbauen. Oder es findet sich ein anderer ;-)

Ach ja, die Variable 'TARGET' ist ohne Inhalt, da ich diese Option bei mir nicht einsetze und ich mir nicht die Mühe gemacht habe zu checken, woher ich welche Werte ziehen muss.

Hauptnavigation drop down

Verfasst: Mi 21. Jul 2004, 13:57
von mine
Hallo,

ich habe das selbe Problem. Ich habe dieses Modul eingebaut und schaff es nicht die Hilfsnavigation weg zu bekommen.
Kann mir jemand helfen, bin schon beim verzweifeln?

Mein Code:

Code: Alles auswählen

/**
 * Navigation
 *
 * INPUT
 *
 * @autor Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 */

?>
<table cellspacing="0" cellpadding="0" cellpadding="4">

    <tr>
        <td class="text">Baum wählen:</td>
        <td>
            <select name="CMS_VAR[0]">
            <option value="0">-- kein --</option>
            <?php

                $sql = "SELECT
                            A.idcat,
                            C.name
                        FROM
                            ".$cfg["tab"]["cat_tree"]." AS A,
                            ".$cfg["tab"]["cat"]." AS B,
                            ".$cfg["tab"]["cat_lang"]." AS C
                        WHERE
                            A.idcat     = B.idcat AND
                            B.idcat     = C.idcat AND
                            C.idlang    = '".$lang."' AND
                            B.idclient  = '".$client."' AND
                            C.visible   = 1 AND
                            A.level     = '0'
                        ORDER BY
                            A.idtree";

                $db->query($sql);

                while ( $db->next_record() ) {

                    if ( "CMS_VALUE[0]" == $db->f("idcat") ) {
                        echo '<option selected="selected" value="'.$db->f("idcat").'">'.$db->f("name").'</option>';

                    } else {
                        echo '<option value="'.$db->f("idcat").'">'.$db->f("name").'</option>';

                    }
                }

            ?>
            </select>
        </td>
    </tr>

</table>

<?php

Code: Alles auswählen

<?php 
echo '<table  id="nav"><tr>'; 

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     Navigation ALL 
* Author      :     Jürgen Brings 
* Created     :     02-04-2004 
* Modified    :     02-04-2004 
************************************************/ 

/* Include Template Class */ 
include_once($cfg["path"]["contenido"] . 'classes/class.template.php'); 

$navitems = array(); 

/* Template Instance */ 
$tpl = new Template; 

                $sql2 = "SELECT DISTINCT 
                            A.idcat, 
                            C.name, 
                            A.level 

                        FROM 
                            ".$cfg["tab"]["cat_tree"]." AS A, 
                            ".$cfg["tab"]["cat"]." AS B, 
                            ".$cfg["tab"]["cat_lang"]." AS C 
                        WHERE 
                            A.idcat = C.idcat AND 
                            A.level > 0 AND 
                            C.visible   = '1' AND 
                            B.parentid  = 'CMS_VALUE[0]'   

                        ORDER 
                            BY A.idtree"; 

$db2  = new DB_Contenido; 
$db2->query($sql2); 

while ($db2->next_record()) { 

$navitems[$db2->f("idcat")] = array("idcat" => $db2->f("idcat"),"name"=> $db2->f("name"),"level"=> $db2->f("level"), "target" => $target); 


} 


foreach ($navitems as $key => $data) { 

if ($data['level']==1) { 
    /* 1. Navigations Ebene */ 
    $tpl->reset(); 
    $tpl->set('d', 'NAME',  $data['name']); 
    $tpl->set('d', 'ID', '_'.$data['idcat']); 
    $tpl->set('d', 'TARGET', $data['target']); 
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
    $tpl->next(); 

    if ($idcat == $data['idcat']) { 
        $tpl->generate('templates/test/navfirst_on.html'); 
    } else { 
        $tpl->generate('templates/test/navfirst_off.html'); 
    } 
echo '<ul>'; 

} // endif 




if ($data['level']==2) { 


/* 2. Navigations Ebene */ 
            $tpl->reset(); 
            $tpl->set('d', 'NAME',  $data['name']); 
            $tpl->set('d', 'ID', '_'.$data['idcat']); 
            $tpl->set('d', 'TARGET', $data['target']); 
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
            $tpl->next(); 

            if ($idcat == $data['idcat']){ 
                $tpl->generate('templates/test/navsecond_on.html'); 
            } else { 
                $tpl->generate('templates/test/navsecond_off.html'); 
            } 

} // endiff 



if ($data['level']==3) { 
echo '<ul>'; 
                    /* 3. Navigations Ebene */ 
                    $tpl->reset(); 
                    $tpl->set('d', 'NAME',  $data['name']); 
                    $tpl->set('d', 'ID', '_'.$data['idcat']); 
                    $tpl->set('d', 'TARGET', $data['target']); 
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
                    $tpl->next(); 

                    if ($idcat == $data['idcat']) { 
                        $tpl->generate('templates/test/navthird_on.html'); 
                    } else { 
                        $tpl->generate('templates/test/navthird_off.html'); 
                    } 
echo '</ul>'; 

} // endiff 


} 

echo '</ul></ul></tr></table>'; 

?>

Problem bei mehreren Mandanten

Verfasst: Mi 29. Jun 2005, 16:07
von diefl
Also, das funktioniert ja eigentlich ziemlich gut - nur bei mehreren Mandanten passiert folgendes: Es werden alle Navigationspunkte von allen Mandanten angezeigt. Wie lässt isch das vermeiden?

Verfasst: Mi 29. Jun 2005, 16:59
von HerrB
"Scharfes Hinsehen" :wink:

Die Abfrage im Output enthält eine Tabelle namens cat_lang und darin findet sich ... die Spalte idlang. Ich habe noch eine Überprüfung auf den Mandanten integriert, sischer ist sischer.

Folgendes sollte also helfen (Output):

Code: Alles auswählen

                $sql2 = "SELECT DISTINCT 
                            A.idcat, 
                            C.name, 
                            A.level 

                        FROM 
                            ".$cfg["tab"]["cat_tree"]." AS A, 
                            ".$cfg["tab"]["cat"]." AS B, 
                            ".$cfg["tab"]["cat_lang"]." AS C 
                        WHERE 
                            A.idcat = C.idcat AND 
                            A.level > 0 AND 
                            C.visible   = '1' AND 
                            B.parentid  = 'CMS_VALUE[0]'
                        ORDER 
                            BY A.idtree";
durch

Code: Alles auswählen

                $sql2 = "SELECT DISTINCT 
                            A.idcat, 
                            C.name, 
                            A.level 

                        FROM 
                            ".$cfg["tab"]["cat_tree"]." AS A, 
                            ".$cfg["tab"]["cat"]." AS B, 
                            ".$cfg["tab"]["cat_lang"]." AS C 
                        WHERE 
                            A.idcat = C.idcat AND 
                            A.level > 0 AND 
                            C.visible   = '1' AND 
                            C.idlang = '$lang' AND 
                            B.idclient = '$client' AND 
                            B.parentid  = 'CMS_VALUE[0]'
                        ORDER 
                            BY A.idtree";
ersetzen.

Gruß
HerrB

Verfasst: Di 5. Jul 2005, 07:18
von annett
Zu dem Thema wird immer wieder auf diesen Beitrag verwiesen,
funktioniert ja auch soweit, nur bei mir werden immer noch alle
Navigationsbäume ausgegeben, wenn man mehrere hat.
Oder hab ich da was falsch gemacht? Hat inzwischen jemand eine Lösung
gefunden? Wäre super wenn ihr mir weiterhelfen könntet... danke

Gruß Annett

Verfasst: Mo 12. Sep 2005, 16:15
von Lula
Hab das gleiche Problem ... gibts ne Lösung????