Sprachenproblem mit Menü

Gesperrt
holunda
Beiträge: 71
Registriert: Di 4. Mai 2004, 10:14
Kontaktdaten:

Sprachenproblem mit Menü

Beitrag von holunda »

Hab ein kleines Porblem:
habe folgendes "0 Level Menü" also die erte Ebene:

Code: Alles auswählen

<?php

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

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

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

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

        // If parentid equals 0 break,
        // first level reached.
        if($parentid==0){
           if($idcat!=1){
              $navitems=array();
              //search for the idcat where I´m the parent
              $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='1' 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;
        }

        // select idcats on the same level
        // they have the same parent id
        $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"));
        }

        // Add the old navigation array to the new one,
        // because it is an item of the new one on place $idcat
        $tmp_nav[$idcat]["sub"] = $navitems;
        $navitems = $tmp_nav;

        nav($parentid);

}


if(!isset($idcat)){
     //set the start idcat
     $idcat = 1;
}

//search for the idcat where I´m the parent
$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' 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($idcat);

/**
* array $navitems enthält alle daten
* die für das aufbauen der navigation
* notwendig sind.
*/
echo "<ul id=\"navigation\">";

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/navigation_active.html');
    } else {
        $tpl->generate('templates/navigation_inactive.html');
    }

    } // end foreach

echo "</ul>";
?> 
wenn ich nun die sprache wechsle sehe ich aber keine menü mehr.,
Kateogorien + Startartikel sind erstellt und online. Woran kanns liegen?

Verwende 4.5.2 Alpha.
grüße
Alex
holunda
Beiträge: 71
Registriert: Di 4. Mai 2004, 10:14
Kontaktdaten:

Beitrag von holunda »

wäre wirklich dringend,
bitte melden

mfg
Alex
holunda
Beiträge: 71
Registriert: Di 4. Mai 2004, 10:14
Kontaktdaten:

Beitrag von holunda »

finde einfach den fehler nicht, er zeigt mir weder die Hauptnavigation (1.Ebene) noch die Subnavigation (2.Ebene) an.

Muss man irgendwas an den Modulen verändern?
oder am Template bei einer anderen Sprache.
Blicke da irgendwie noch nicht durch.

hier nochmal die Codes:
Hauptnavi

Code: Alles auswählen

<?php

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

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

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

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

        // If parentid equals 0 break,
        // first level reached.
        if($parentid==0){
           if($idcat!=1){
              $navitems=array();
              //search for the idcat where I´m the parent
              $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='1' 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;
        }

        // select idcats on the same level
        // they have the same parent id
        $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"));
        }

        // Add the old navigation array to the new one,
        // because it is an item of the new one on place $idcat
        $tmp_nav[$idcat]["sub"] = $navitems;
        $navitems = $tmp_nav;

        nav($parentid);

}


if(!isset($idcat)){
     //set the start idcat
     $idcat = 1;
}

//search for the idcat where I´m the parent
$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' 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($idcat);

/**
* array $navitems enthält alle daten
* die für das aufbauen der navigation
* notwendig sind.
*/
echo "<ul id=\"navigation\">";

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/navigation_active.html');
    } else {
        $tpl->generate('templates/navigation_inactive.html');
    }

    } // end foreach

echo "</ul>";
?> 
und die Subnavi:

Code: Alles auswählen

<?php


/**
* array $navitems enthält alle daten
* die für das aufbauen der navigation
* notwendig sind.
*/
foreach ($navitems as $key => $data) {

    // ------------ 1. navi ebene mit Ausgabe der aktiven Kategorie----------
 
        if ($idcat == $data['idcat'] || is_array($data['sub'])) {
        $tpl->generate('');
    }     
    if (is_array($data['sub'])) {

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

            //---------------- 2. navi ebene ---------------------------
echo "<a href=\"front_content.php?idcat=" . $data['idcat'] . "\">" . $data['name'] . "</a><br />";
           

        } // end foreach

    } // end if

} // end foreach

?> 
Das ganze ist zu sehen auf http://www.kellerwirt.com/cms/.
lang 1 = deutsch 2 = englisch

Für Hilfe wäre ich sehr dankbar.
lG
Alex
holunda
Beiträge: 71
Registriert: Di 4. Mai 2004, 10:14
Kontaktdaten:

Beitrag von holunda »

Hat wirklich keiner eine Idee?
Iss wirklich super dringend und von alleine komm ich einfach nicht dahinter ..

Ein kleiner Tipp wäre schon super.
neyo
Beiträge: 20
Registriert: Mi 23. Mär 2005, 13:30
Kontaktdaten:

Beitrag von neyo »

Habe genau das gleiche Problem! Irgendjemand eine Idee?

Bei mir ist englisch nur die 3 nicht die 2. Deutsch natürlich die 1

CYA
neyo
Beiträge: 20
Registriert: Mi 23. Mär 2005, 13:30
Kontaktdaten:

Beitrag von neyo »

Mein Problem hat sich erledigt!

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

Beitrag von HerrB »

Dieses Modul ist wirklich, öhm, suboptimal. Der Grund für eure Probleme liegt in dem $idcat = 1, was häufiger im Code vorkommt. $idcat ist nur im Beispielmandanten die erste Kategorie im ersten Baum.

Auf die schnelle könnte man probieren, die gewünschte idcat einzutragen (d.h. die Kategorie-ID der ersten Kategorie des gewünschten Baumes zu ermitteln und einzutragen, $idcat = xy und weiter oben if ($idcat!=xy).

Aber ob dieses Teil funktioniert, wage ich zu bezweifeln, das ist ein steinaltes Teil.

Allerdings meinte holunda, er habe V4.5.2 (dieser Post liegt aber bei Misc 4.4.x). Wenn Du die V4.5.2 hast, würde ich Dir empfehlen, auf die V4.5.3 zu wechseln und das Hauptnavigationsmodul des Beispielmandanten aus V4.5.3 zu verwenden.

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
Gesperrt