Alle Menupunkte der Unternavigation öffnen

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

Alle Menupunkte der Unternavigation öffnen

Beitrag von diefl » Fr 21. Okt 2011, 18:39

Hallo,

ich weiß nicht, ob das das richtige Forum ist.
Ich verwende Contenido 4.8.15 und dort eine geteilte Navigation.
Bei dem Modul der Subnavigation hätte ich es gerne so, das alle Menupunkte immer geöffnet sind - also Ebene 2,3,4 ....

Mein Moduklcode für das Hauptmenu

Code: Alles auswählen

<?php
echo '<ul>';
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Hauptnavigation
* Author(s)   :     Jan Lengowski, Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
************************************************/

#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation

#Includes
cInclude("frontend", "includes/functions.navigation.php");
#hier steht das neue cInclude
cInclude("frontend", "includes/functions.hauptnavi.php");

#If no tree is selected, use client setting
$start_cat = "1";
if ($start_cat=='') {
    $cApiClient = new cApiClient($client);
        $start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}

if ( !is_object($db2) ) {
    $db2 = new DB_Contenido;
}


if ( catIsChildOf($idcat, $start_cat) ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = $start_cat;
}

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

/**
 * Array storing alle the
 * navigation data
 */
$navitems = array();


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



$sql = "SELECT
            A.idcat,
            C.name,
                    C.public,
                       C.idcatlang
        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
            B.idclient  = '$client' AND
            C.idlang    = '$lang'   AND
            C.visible   = '1'       AND
            B.parentid  = '$sel_idcat'
        ORDER BY
            A.idtree";

$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext,
                    a.idartlang AS idartlang
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        #$db2->next_record();
                $flag = false;
                while ($db2->next_record()&&!$flag) {
                if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
                {
                                $flag = true;
                    $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

                    $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                                       "name"   => $db->f("name"),
                                                                 "public" => $db->f("public"),
                                                                               "idcatlang" => $db->f("idcatlang"),
                                                       "target" => $target);
                }
                }
}

/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
    $cApiClient = new cApiClient($client);
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}

nav($sel_idcat);

/* Start Output buffer */
ob_start();
$oldpoint = 1;

foreach ($navitems as $key => $data) {
$point = $oldpoint++;
if ($point == 1)
               {$point = '';}
               else
               {$point = '';}
    /* 1. Navigation level */
        if (checkCatPermission($data['idcatlang'],$data['public'])) {
            $tpl->reset();
            $tpl->set('d', 'POINT',  $point);
            $tpl->set('d', 'NAME',  $data['name']);
            $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/menuoben_on.html');
                }elseif(is_array($data['sub'])){
                $tpl->generate('templates/menuoben_on.html');
            } else {
                $tpl->generate('templates/menuoben_off.html');
            }


    } // end if
} // end foreach

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;

echo '</ul>';
?>
Mein Modulcode für das Submenu

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Hauptnavigation
* Author(s)   :     Jan Lengowski, Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
************************************************/

#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation

#Includes
cInclude("frontend", "includes/functions.navigation.php");
#hier steht das neue cInclude
cInclude("frontend", "includes/functions.hauptnavi.php");

#If no tree is selected, use client setting
$start_cat = "1";
if ($start_cat=='') {
    $cApiClient = new cApiClient($client);
        $start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}

if ( !is_object($db2) ) {
    $db2 = new DB_Contenido;
}


if ( catIsChildOf($idcat, $start_cat) ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = $start_cat;
}

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

/**
 * Array storing alle the
 * navigation data
 */
$navitems = array();


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



$sql = "SELECT
            A.idcat,
            C.name,
                    C.public,
                       C.idcatlang
        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
            B.idclient  = '$client' AND
            C.idlang    = '$lang'   AND
            C.visible   = '1'       AND
            B.parentid  = '$sel_idcat'
        ORDER BY
            A.idtree";

$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext,
                    a.idartlang AS idartlang
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        #$db2->next_record();
                $flag = false;
                while ($db2->next_record()&&!$flag) {
                if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
                {
                                $flag = true;
                    $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

                    $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                                       "name"   => $db->f("name"),
                                                                 "public" => $db->f("public"),
                                                                               "idcatlang" => $db->f("idcatlang"),
                                                       "target" => $target);
                }
                }
}

/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
    $cApiClient = new cApiClient($client);
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}

nav($sel_idcat);

/* Start Output buffer */
ob_start();
echo "<ul class=\"sub\">";
foreach ($navitems as $key => $data) {

            /* 2. Navigation level */
            
            if (is_array($data['sub'])) {
                foreach ($data['sub'] as $key => $data) {
                                if (checkCatPermission($data['idcatlang'],$data['public'])) {
                            $tpl->reset();
                            $tpl->set('d', 'NAME',  $data['name']);
                            $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');
                                        }elseif(is_array($data['sub'])){
                                        $tpl->generate('templates/navsecond_on.html');
                            } else {
                                $tpl->generate('templates/navsecond_off.html');
                            }

                                    /* 3. Navigation level */
                            if (is_array($data['sub'])) {
                            echo "<ul class=\"sub2\">";
                                foreach ($data['sub'] as $key => $data) {
                                                        if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                            $tpl->reset();
                                            $tpl->set('d', 'NAME',  $data['name']);
                                            $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');
                                                                }elseif(is_array($data['sub'])){
                                                                $tpl->generate('templates/navthird_on.html');
                                                               
                                            } else {
                                                $tpl->generate('templates/navthird_off.html');
                                               
                                            }

                                            /* 4. Navigation level */
                                                    if (is_array($data['sub'])) {
                                                     
                                                        foreach ($data['sub'] as $key => $data) {
                                                                                if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                                                    $tpl->reset();
                                                                    $tpl->set('d', 'NAME',  $data['name']);
                                                                    $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/navfourth_on.html');
                                                                                        }elseif(is_array($data['sub'])){
                                                                                        $tpl->generate('templates/navfourth_open.html');
                                                                    } else {
                                                                        $tpl->generate('templates/navfourth_off.html');
                                                                    }

                                                                    /* 5. Navigation level */
                                                                            if (is_array($data['sub'])) {
                                                                                foreach ($data['sub'] as $key => $data) {
                                                                                                        if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                                                                            $tpl->reset();
                                                                                            $tpl->set('d', 'NAME',  $data['name']);
                                                                                            $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/navfifth_on.html');
                                                                                            } else {
                                                                                                $tpl->generate('templates/navfifth_off.html');
                                                                                            }
                                                                                            } // end if
                                                                                } // end foreach
                                                                            } // end if
                                                                    } // end if
                                                        } // end foreach
                                                    } // end if
                                            } // end if
                                } // end foreach
                                 echo "</ul>";
                            } // end if
                    } // end if
                } // end foreach   
            } // end if
} // end foreach
echo "</ul>";

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */

echo $html;
?>

Wie kann ich das anpassen - und falls nicht - gibt es ein Modul, das man entsrepechend anpassen könnte?
Danke für eure Hilfe!

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Alle Menupunkte der Unternavigation öffnen

Beitrag von Spider IT » Sa 22. Okt 2011, 09:15

Hallo diefl,

die "Navigation Universell" nutzt ein externes Script (separate Datei) um die Ebenen aufzulisten, da kannst du im Modul nichts ändern.
Wenn du aber generell alle Ebenen anzeigen willst, dann nimm doch das Modul "Sitemap", das macht das standardmäßig schon.
Die Ausgabe besteht aus Listen, die kannst du per CSS umformatieren.

Gruß
René

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

Re: Alle Menupunkte der Unternavigation öffnen

Beitrag von diefl » Mo 24. Okt 2011, 08:07

Ja, danke für den Tipp, da habe ich auch schon dran gedacht.
Wenn ich die Sitemap für die Unternavigation nutze, wirds vermutlich etwas aufwändig für den Redakteur, da er das für jede Kategorie neu konfigurieren muss.

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Alle Menupunkte der Unternavigation öffnen

Beitrag von Spider IT » Mo 24. Okt 2011, 11:00

Dann lass dir doch das Level (Menüebene) als Klasse mit ausgeben und blende die erste Ebene per CSS aus ;)

Gruß
René

Gesperrt