Navi 2. ebene anzeigen

Gesperrt
bachi
Beiträge: 161
Registriert: Di 20. Apr 2004, 12:22
Wohnort: Würzburg
Kontaktdaten:

Navi 2. ebene anzeigen

Beitrag von bachi »

Hallo, ich hab ne simple Frage, ich hab ein Navimodul (für Vers4.4.4) was 3 Ebenen anzeigt. Wo stelle ich nun in Contenido (im Artikel selbst oder in der Kategorie... oder sonst wo) ein, dass die zweite und dritte Ebene angezeigt wird, sprich die Unterseiten auftauchen wenn ich den Oberpunkt anklickte? Hmmm ich raffs bzw. finds nicht.
Danke für die Hilfe vorab.
grüße :roll:
C 4.5.2 - 4.6
www.myworkstyle.de
www.hsgweb.de
--
::: It´s not a bug - it´s a feature!!! :::
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

das standard modul ist dafür nicht geeignet...
schau mal da ob das vielleicht brauchbar für dich ist...
http://www.contenido.de/forum/viewtopic ... ight=dhtml
*** make your own tools (wishlist :: thx)
bachi
Beiträge: 161
Registriert: Di 20. Apr 2004, 12:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von bachi »

Hi emergence, das ist nicht unbedingt was ich will.
Was ich nicht verstehe, die Unterseiten wurden mit dem selben Modul auf JEDEN Fall schon mal angezeigt. (Freitag erstellt und alles ging... Montag Seite aufgemacht und keine Unterseiten im Hauptnavi da...Kotz) so was raff ich einfach nicht.
Hier nochmal das Modul, es war das, wo du mir hilfreicherweise den Input repariert hast:

Code: Alles auswählen

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

    <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
Output:

Code: Alles auswählen

<?php

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

// template klasse includen
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');

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


// template instanz
$tpl = new Template;

function nav($idcat) {

        global $navitems, $client, $lang, $db, $cfg;

        $sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat='$idcat'";

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

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

        if ( $parentid == 0 ) {
           if ( $idcat != CMS_VALUE[0] ){

              $navitems=array();
              $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='CMS_VALUE[0]' ORDER BY A.idtree";

                      $db->query($sql);

                      while ($db->next_record()) {
                             $navitems[$db->f("idcat")] = array("idcat"=>$db->f("idcat"),
                                                                 "name"=>$db->f("name"));
                      }

           }
           return true;
        }

        $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' ORDER BY A.idtree";

        $db->query($sql);

        while ($db->next_record()) {

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

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

        nav($parentid);

}



$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='$sel_idcat' ORDER BY A.idtree";

$db->query($sql);

while ( $db->next_record() ) {
       $navitems[$db->f("idcat")] = array("idcat"=>$db->f("idcat"),
                                         "name"=>$db->f("name"));
}

nav($sel_idcat);

/**
 * array $navitems enthält alle daten
 * die für das aufbauen der navigation
 * notwendig sind.
 */
echo '<table cellspacing="0" cellpadding="0" border="0">';

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

    // 1. navi ebene
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'].'&client='.$client.'&lang='.$lang));
    $tpl->next();

    if ($idcat == $data['idcat'] || is_array($data['sub'])) {
        $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. navi ebene
            // 1. navi ebene
            $tpl->reset();
            $tpl->set('d', 'NAME',  $data['name']);
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'].'&client='.$client.'&lang='.$lang));
            $tpl->next();

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

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

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

                    // 3. navi ebene
                    // 1. navi ebene
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'].'&client='.$client.'&lang='.$lang));
                    $tpl->next();

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

                } // end foreach

            } // end if

        } // end foreach

    } // end if

} // end foreach

echo '</table>';

?>
Das ist doch ein Modul für drei Ebenen, oder?

Auf einer anderen HP von mir nutze ich es auch und es klappt prima. Ich hab auch mit der Baumstruktur schon viel probiert. Momentan habe ich alle Punkte erster Ebene in einzelnen Bäumen angelegt. Hat dazu vielleicht noch einer eine Idee? Soll ich vielleicht einen Baum mit "Home" als obere Ebene anlegen und die eigentlichen Menüpunkt drunter anordnen als zweite Ebene? (Hab ich allerdings auch schon probiert)
Hmmm ich bin für jede Hilfe / Idee zu haben. Danke
und Grüße
Matthias
C 4.5.2 - 4.6
www.myworkstyle.de
www.hsgweb.de
--
::: It´s not a bug - it´s a feature!!! :::
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm, im input bereich
?>
zwischen dem query bedeutet was ?

wie das ging schon mal ? zeigt dir diese navigation nur bei einem menüpunkt oder einer kategorie nichts mehr an ? oder geht sie allgemein nicht mehr ?
ist der artikel, die kategorie konfiguriert ?
*** make your own tools (wishlist :: thx)
Gesperrt