Seite 1 von 2

Service Navigation Vertikal / Kategorie fehlt

Verfasst: Di 8. Mär 2005, 15:00
von Beleuchtfix
Hallo, ich habe heute nach dem "Umhangen" von der Baumstruktur einige Problme mit der Servicenavigation vertikal.

Die Sitemap wird nicht angezeigt, wenn sie als letztes Element im Baum hängt, schiebe ich sie eine Stufe höher, dann ist sie wieder da. Schiebe ich den Artikel wieder runter, ist sie wieder weg.

Hier ist der SQL Abfragecode.

Code: Alles auswählen

   <?php 

include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php"); 

$catStart = "CMS_VALUE[0]"; 

if ($catStart != "") { 
  $catIds = conDeeperCategoriesArray($catStart); 

 
// Ausgabe der Liste
        echo '<ul id="nav-obre">';

// <table width="190" height="27" border="0" cellpadding="0" cellspacing="0">'; 

  if ( is_array($catIds) ) { 

    foreach($catIds as $key=>$val) { 
      // Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist 
      // und nicht angezeigt werden soll. 
      if ($key != 0) { 


// Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist 
      // und nicht angezeigt werden soll. 
      if ($key != 0) { 

        $sql = "SELECT CAT.idcat AS idcat, name FROM ". 
               $cfg["tab"]["cat"]." AS CAT, ". 
               $cfg["tab"]["cat_lang"]." AS CATLANG 
               WHERE CAT.idcat = ".$val." 
               AND CAT.idcat = CATLANG.idcat 
               AND CATLANG.idlang = '$lang'
               AND visible=1 "
;  //         AND C.visible=1 " neu eingefügt (FB)
        $db->query($sql); 

        while ( $db->next_record() ) { 
          echo '
		  
		<li>
		<a class="obre" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>
		</li>
		'; 
        } // end while 
      } // if 
    }  // end foreach 
  } // end if (is_array) 

  echo '<ul>



'; 

} 
?>
Der Artikel ist weiterhin online, in der Sitemap werden die Seiten angezeigt.

Ist das ein Contenido Fehler beim Umhängen oder ein Fehler in der Abfrage.

Gruß
Florian

_________________
Contenido 4.4.4

Verfasst: Di 8. Mär 2005, 16:26
von emergence
wenn du das sql statement im phpmyadmin ausführst kriegst du dann alle daten ?

Verfasst: Di 8. Mär 2005, 19:53
von Beleuchtfix
Das ist gar nicht so einfach, wenn man Contenido nicht von Innen kennt. :o

Ich habe die Abfrage jetzt geändert in

Code: Alles auswählen

       SELECT CAT.idcat AS idcat,  name FROM 
               con_cat AS CAT, 
               con_cat_lang  AS CATLANG,
               con_cat_tree AS CATTREE
               WHERE CAT.idcat = 201
               AND CAT.idcat = CATLANG.idcat 
               AND CATTREE.idcat = CAT.idcat 
               AND CATLANG.idlang = '$lang'
               AND CATTREE.level = '1'
               AND CATLANG.visible = '1'
Ganz klappt es noch nicht, ich vermute, dass ich für name noch etwas ersetzen muss. Weiss du, was da rein kommt.
Danke Florian

Verfasst: Di 8. Mär 2005, 19:56
von Halchteranerin
Beleuchtfix hat geschrieben:Ganz klappt es noch nicht, ich vermute, dass ich für name noch etwas ersetzen muss.
nein, name ist eine Spalte in der Tabelle con_cat_lang.

Verfasst: Di 8. Mär 2005, 19:58
von Halchteranerin
$lang musst du noch ersetzen, sehe ich gerade ...

Verfasst: Di 8. Mär 2005, 20:18
von Beleuchtfix
OK, lang wars.
Also wenn ich die idcat der Sitemap eingebe, dann bekomme ich 201 Sitemap angezeigt.
Das ganze while ( $db->next_record() ) klappt natürlich nicht.

Hilft das weiter, oder soll ich sonst noch etwas suchen?

Verfasst: Mi 9. Mär 2005, 12:19
von Beleuchtfix
Ich habe jetzt am Anfang einmal das ganze Modul gepostet, da ich festgestellt habe, dass die eigentlich SQL Abfrage wohl das richtige Ergebnis liefert. Also muss wohl der Fehler in der Steuerung der Abfrage liegen.

Das normale Hauptnavigationsmodul zeigt den Baum immer richtig an.

Wahrscheinlich gehört dieser Thread damit unter Module und nicht unter Bugs (sorry)

Gruß
Florian

Verfasst: Mi 9. Mär 2005, 12:29
von emergence
na dann -> verschoben

Verfasst: Mi 9. Mär 2005, 13:17
von Beleuchtfix
Also, ich komme im Testen weiter:
Funktion conDeeperCategoriesArray liefert mir nicht alle Kategorien :!:

Die Hauptnavigations benutzt diese Funkion nicht sondern catIsChildOf.

Vieleicht doch ein Bug :wink:
Gruß
Florian

Verfasst: Mi 9. Mär 2005, 13:57
von emergence
ist schon möglich das die funktion nicht 100%ig korrekt arbeitet...
ich nehm mal den auszug der möglicherweise etwas damit zu tun hat...

Code: Alles auswählen

     $i = 0;

    while ( $db->next_record() ) {

        if ($db->f("parentid") < $idcat_start) {        // ending part of tree
            $i = 0;
        }

        if ($db->f("idcat") == $idcat_start) {        // starting part of tree
            $i = 1;
        }

        if ($i == 1) {
            $catstring[] = $db->f("idcat");
        }

    }
    return $catstring;
intressant find ich aber wirklich nur den teil

Code: Alles auswählen

        if ($db->f("parentid") < $idcat_start) {        // ending part of tree
            $i = 0;
        }
wenn die parentid kleiner ist als der angebene startwert wird diese kategorie nicht beim array ergänzt... ob das funktioniert ??

du könntest zuerst noch testen wie das query aussieht das die funktion liefert... und das im phpmyadmin testen... wäre auch möglich das dort schon die kategorie fehlt... glaub ich aber fast nicht...

Verfasst: Mi 9. Mär 2005, 14:26
von emergence
irgendwie sehe ich da nen denkfehler in der routine

ich hab die funktion etwas umgeschrieben...
versuchs mal damit

Code: Alles auswählen

function conDeeperCategoriesArray($idcat_start)
{
    global $db, $client, $cfg;

    $sql = "SELECT
                *
            FROM
                ".$cfg["tab"]["cat_tree"]." AS A,
                ".$cfg["tab"]["cat"]." AS B
            WHERE
                A.idcat  = B.idcat AND
                idclient = '".$client."'
            ORDER BY
                idtree";

    $db->query($sql);

    $i = 0;

    while ( $db->next_record() ) {

        if ($i==1 && $db->f("level") <= $idcat_level) {  // ending part of tree
            $i = 0;
        }

        if ($db->f("idcat") == $idcat_start) {           // starting part of tree
            $i = 1;
            $idcat_level = $db->f("level");
        }

        if ($i == 1) {
            $catstring[] = $db->f("idcat");
        }

    }

    return $catstring;
}
wenn es damit geht ist das ein contenido bug...

Fehler in der function conDeeperCategoriesArray

Verfasst: Mi 9. Mär 2005, 15:32
von Beleuchtfix
Hallo Emergence
Vielen Dank für die schnelle und komeptente Hilfe. Das wars (und damit dann auch ein Bug).

Ich habe die Funktion ausgetauscht, und jetzt zeigt die Kategorie richtig an.

Gruß
Florian

Verfasst: Mi 9. Mär 2005, 15:38
von emergence
na dann verschieb ich das mal nach bugs 4.4 obwohl es die 4.5.x serie auch betrifft...

Verfasst: Mi 9. Mär 2005, 15:39
von Halchteranerin
Du kannst ja bei Bugs 4.5 einen Beitrag mit einem Link hierher setzen. :wink:

Verfasst: Mi 9. Mär 2005, 15:41
von emergence
auch nicht schlecht ich kann es gar nicht in die bugs 4.4 verschieben...
dieses forum steht da nicht mehr zur auswahl...
gut nehmen wir halt bugs 4.5