Hauptnavigation: alle Kategorien gleichzeitig anzeigen?

Bobby Shaftoe
Beiträge: 32
Registriert: Di 22. Jul 2003, 14:38
Kontaktdaten:

Hauptnavigation: alle Kategorien gleichzeitig anzeigen?

Beitrag von Bobby Shaftoe » Di 30. Mär 2004, 13:46

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?

Bobby Shaftoe
Beiträge: 32
Registriert: Di 22. Jul 2003, 14:38
Kontaktdaten:

Beitrag von Bobby Shaftoe » Fr 2. Apr 2004, 11:05

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

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 2. Apr 2004, 11:34

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

scipio
Beiträge: 104
Registriert: Mo 9. Feb 2004, 18:03
Wohnort: Grevenbroich - NRW
Kontaktdaten:

Beitrag von scipio » Fr 2. Apr 2004, 12:25

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

Bobby Shaftoe
Beiträge: 32
Registriert: Di 22. Jul 2003, 14:38
Kontaktdaten:

Beitrag von Bobby Shaftoe » Fr 2. Apr 2004, 14:30

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.

scipio
Beiträge: 104
Registriert: Mo 9. Feb 2004, 18:03
Wohnort: Grevenbroich - NRW
Kontaktdaten:

Beitrag von scipio » Fr 2. Apr 2004, 15:03

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.

scipio
Beiträge: 104
Registriert: Mo 9. Feb 2004, 18:03
Wohnort: Grevenbroich - NRW
Kontaktdaten:

Beitrag von scipio » Mo 5. Apr 2004, 11:55

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.
Zuletzt geändert von scipio am Di 6. Apr 2004, 06:59, insgesamt 1-mal geändert.

Bobby Shaftoe
Beiträge: 32
Registriert: Di 22. Jul 2003, 14:38
Kontaktdaten:

Beitrag von Bobby Shaftoe » Mo 5. Apr 2004, 16:29

cool, bei mir hats auf anhieb geklappt!
danke, scipio! :D

scipio
Beiträge: 104
Registriert: Mo 9. Feb 2004, 18:03
Wohnort: Grevenbroich - NRW
Kontaktdaten:

Beitrag von scipio » Di 6. Apr 2004, 06:52

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

Knipser
Beiträge: 28
Registriert: Mo 16. Feb 2004, 09:53
Kontaktdaten:

Hauptnavigation

Beitrag von Knipser » Mo 28. Jun 2004, 16:25

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.

mine
Beiträge: 23
Registriert: Do 8. Jul 2004, 16:42
Kontaktdaten:

Hauptnavigation drop down

Beitrag von mine » Mi 21. Jul 2004, 13:57

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

?>

diefl
Beiträge: 34
Registriert: Mi 29. Jun 2005, 16:04
Kontaktdaten:

Problem bei mehreren Mandanten

Beitrag von diefl » Mi 29. Jun 2005, 16:07

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?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 29. Jun 2005, 16:59

"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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

annett
Beiträge: 46
Registriert: Mi 22. Jun 2005, 10:52
Kontaktdaten:

Beitrag von annett » Di 5. Jul 2005, 07:18

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

Lula
Beiträge: 28
Registriert: Sa 5. Jun 2004, 20:58
Kontaktdaten:

Beitrag von Lula » Mo 12. Sep 2005, 16:15

Hab das gleiche Problem ... gibts ne Lösung????

Gesperrt