Navigation nur ab 2. Ebener

Gesperrt
Eggy
Beiträge: 9
Registriert: Sa 28. Feb 2009, 18:00
Kontaktdaten:

Navigation nur ab 2. Ebener

Beitrag von Eggy »

Gibt es ein Navigationsmodul in dem

- Hauptnavigation nicht angezaigt wird
- 1. Ebene nur angezeigt wird (Formatierung 1)
- 2. Ebene zum auswählen ist? (Formatierung 2)
Das Leben könnte so schön sein....
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Navigation nur ab 2. Ebener

Beitrag von GaMbIt_ »

Jepp...
Wenn ich Dich richtig verstanden hab geht das sehr einfach mit der Navigation:Universell
Nützliche Contenido Infos gibts hier: Contenido Wiki
Eggy
Beiträge: 9
Registriert: Sa 28. Feb 2009, 18:00
Kontaktdaten:

Re: Navigation nur ab 2. Ebener

Beitrag von Eggy »

War ein sehr guter Tipp mit der Navigation Universell, ich hab nur ein Problem:
Auf der Startseite klappt es wunderbar und sieht aus wie es soll, aber auf tiefenen Leveln sehe ich keine Menüpunkte mehr obwohl ich immer das gleiche Template etc. verwende.
Das Leben könnte so schön sein....
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Navigation nur ab 2. Ebener

Beitrag von GaMbIt_ »

Das Modul lässt sich mannigfaltig konfigurieren...

Zeig uns doch mal Deinen Code...
Nützliche Contenido Infos gibts hier: Contenido Wiki
Eggy
Beiträge: 9
Registriert: Sa 28. Feb 2009, 18:00
Kontaktdaten:

Re: Navigation nur ab 2. Ebene

Beitrag von Eggy »

Hier ist er:

Code: Alles auswählen

 <?php

    /***********************************************
    * CONTENIDO MODUL - OUTPUT
    *
    * Modulname :     Navigation 1.2
    * Author        :     Jan Lengowski
    * Copyright    :     Contenido - four for business
    * Created      :     15-05-2003
    * Modified      :     04-2005, Christian Meilinger
    ************************************************/

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

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

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

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

    /* Parrentid at static navtree to which dynamic navtree has to be connected */
    $navitemsparentid = 0;

    $navlevel = "CMS_VALUE[1]";

    /**
    * Check if a category is child
    * of another category
    *
    * @return boolean true/false
    * @author Jan Lengowski <Jan.Lengowski@4fb.de>
    * @copyright four for business AG 2003
    */
    function catIsChildOf($id, $idparent) {

        global $cfg, $client, $lang;

        $db = new DB_Contenido;

        $parent = $id;

        while ( $parent != 0 ) {

            $sql = "SELECT
                        a.parentid
                    FROM
                        ".$cfg["tab"]["cat"]." AS a,
                        ".$cfg["tab"]["cat_lang"]." AS b
                    WHERE
                        a.idclient  = '".$client."' AND
                        b.idlang    = '".$lang."' AND
                        a.idcat     = b.idcat AND
                        a.idcat   = '".$parent."'";

            $db->query($sql);
            $db->next_record();

            $parent = $db->f("parentid");

            if ($parent == $idparent) {
                return true;
            }

        }

        return false;

    }

    if ( catIsChildOf($idcat, 'CMS_VALUE[0]') ) {
        $sel_idcat = $idcat;
    } else {
        $sel_idcat = 'CMS_VALUE[0]';
    }


    /* Get IDCat from first child for submenue */
    $sql = "SELECT idcat FROM ".$cfg["tab"]["cat"]." WHERE parentid = '$sel_idcat'";

    $db->query($sql);
    $db->next_record();

    if ($db->f("idcat") != 0) {
      $sel_idcat = $db->f("idcat");
    }


    /**
    * Recursive function for creating
    * the dynamic part of the navigation array
    * @param Int $idcat Category id
    */
    function nav($idcat) {

            global $navitems, $navitemsparentid, $navlevel, $client, $lang, $cfg;

            $db  = new DB_Contenido;
            $db2 = new DB_Contenido;

            $navi_temp = array();

            /* If no parent or level below limit, end function */
           $sql = "SELECT
                          B.parentid
                      FROM
                          ".$cfg["tab"]["cat_tree"]." AS A,
                          ".$cfg["tab"]["cat"]." AS B
                      WHERE
                          A.idcat     = B.idcat   AND
                          B.idcat     = '$idcat'   AND
                          A.level     > '$navlevel'";

            $db->query($sql);
            $db->next_record();

            $parentid = $db->f("parentid");

            if ( $parentid == 0 ) {

               if ($navitems != array()) {
                  $navitemsparentid = $idcat;
               } else {
                  $navitemsparentid = 0;
               }

               return true;
            }

            /* Navigationsitems der Brüder sammeln */
            $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
                        B.idclient  = '$client' AND
                        C.idlang    = '$lang'   AND
                        C.visible   = '1'       AND
                        B.parentid  = '$parentid' AND
                        A.level      > '$navlevel'
                    ORDER BY
                        A.idtree";

            $db->query($sql);

            while ($db->next_record()) {

                    /* Check for external redirects... */
                    $sql = "SELECT
                                a.external_redirect AS ext
                            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
                                b.is_start  = '1' AND
                                c.idclient  = '".$client."' AND
                                c.idcat     = b.idcat AND
                                a.idart     = b.idart AND
                                a.idlang    = '".$lang."'";

                    $db2->query($sql);
                    $db2->next_record();

                    $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

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

            $navi_temp[$idcat]["sub"] = $navitems;
            $navitems = $navi_temp;

            /* Function call */
            nav($parentid);

            return true;

    }  // end function

    /* Create dynamic part of Navigation Array */
    nav($sel_idcat);


    /**
    * Recursive function for creating
    * the fixed part of the navigation array
    * @param Int $idcat Category id
    */
    function navfixed($idcat) {

            global $navlevel, $navitems, $navitemsparentid, $client, $lang, $cfg;

            $db  = new DB_Contenido;
            $db2 = new DB_Contenido;

            $navarray = array();

            /* Collect navigationsitems of children */
            $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
                        B.idclient  = '$client' AND
                        C.idlang    = '$lang'   AND
                        C.visible   = '1'       AND
                        B.parentid  = '$idcat' AND
                        A.level <= '$navlevel'
                    ORDER BY
                        A.idtree";

            $db->query($sql);

            while ($db->next_record()) {

                    /* Check for external redirects... */
                    $sql = "SELECT
                                a.external_redirect AS ext
                            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
                                b.is_start  = '1' AND
                                c.idclient  = '".$client."' AND
                                c.idcat     = b.idcat AND
                                a.idart     = b.idart AND
                                a.idlang    = '".$lang."'";

                    $db2->query($sql);
                    $db2->next_record();

                    $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

                    $navarray[$db->f("idcat")] = array("idcat"      => $db->f("idcat"),
                                                                        "name"      => $db->f("name"),
                                                                        "target"    => $target,
                                                                        "sub"        => array());

                    $navarray[$db->f("idcat")]["sub"] = navfixed($db->f("idcat"));

                    /* Connect dynamic part of nav with static part */
                    if ($db->f("idcat") == $navitemsparentid) {
                       $navarray[$db->f("idcat")]["sub"] = $navitems;
                    }

            }

            return $navarray;

    }  // end function

    /* Create Navigation Array */
    $navitems = navfixed('CMS_VALUE[0]');

    /* Start Output buffer */
    ob_start();

    //echo '<ul id="Navigation">';

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

        /* 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');
        }

        if (is_array($data['sub'])) {

            foreach ($data['sub'] as $key => $data) {

                /* 2. Navigations Ebene */
                $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->set('d', 'ID', '_'.$data['idcat']);
                $tpl->next();

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

                if (is_array($data['sub'])) {

    //            echo '<ul id="Navigation">';

                    foreach ($data['sub'] as $key => $data) {

                        /* 3. Navigations Ebene */
                        $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');
                        } else {
                            $tpl->generate('templates/navthird_off.html');
                        }

                        if (is_array($data['sub'])) {

    //                    echo '<ul id="Navigation">';

                            foreach ($data['sub'] as $key => $data) {

                                /* 4. Navigations Ebene */
                                $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');
                                } else {
                                    $tpl->generate('templates/navfourth_off.html');
                                }

                            } // end foreach

    //                    echo '</ul>';

                        } // end if

                    } // end foreach

    //            echo '</ul>';

                } // 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;

    ?>
Das Leben könnte so schön sein....
Eggy
Beiträge: 9
Registriert: Sa 28. Feb 2009, 18:00
Kontaktdaten:

Re: Navigation nur ab 2. Ebener

Beitrag von Eggy »

Kann ich das Modul so umstellen, dass es immer von der Hauptnavigation aus anzeigt, also sich quasi das Menu nicht verändert?
Mein PHP ist leider nicht das Beste, daher wäre es super, wenn mir jemand helfen könnte.
Danke im Voraus
Eggy
Das Leben könnte so schön sein....
Gesperrt