Seite 1 von 1

Navi: Anzeige nur wenn Startartikel die kleinste idart hat

Verfasst: Sa 5. Feb 2005, 15:06
von chobbert
Hallo zusammen,

ich benutze auf einer 4.5er Installation das mitgelieferter Modul "Hauptnavigation":

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Navigation 1.2
* Author      :     Jan Lengowski
* Copyright   :     Contenido - four for business
************************************************/
Die gewünschten Kategorien sind online, Startartikel sind gesetzt. Wenn der Startartikel der Artikel mit der kleinsten idart in dieser Kategorie ist, wird die Kategorie angezeigt. Wenn man jedoch einen anderen Artikel auswählt, wird sie nicht mehr angezeigt.

Was hat sich hier zu früheren Versionen geändert? Ist das Modul für die 4.5 geeignet?


Schöne Grüße

Robert

Verfasst: Sa 5. Feb 2005, 15:12
von emergence
wenn ich mich nicht ganz täusche gibts da einen bug in der 4.5.2alpha
ich hab mal was bei den anmerkungen reingeschrieben wie das zu beheben ist... leider kann ich dir auf die schnelle nicht sagen wo sich der thread befindet....

Verfasst: So 6. Feb 2005, 13:24
von chobbert
Hallo,

der Fehler besteht wohl darin, daß das Feld is_start in der cat_art nicht auf 1 gesetzt wird, wenn ein anderer Artikel zum Startartikel gemacht wird. Das hast Du wohl auch schon einmal in http://www.contenido.org/forum/viewtopi ... artarticle
beschrieben - allerdings für eine ältere Version.

Da mir der systeminterne Aufbau nicht so geläufig ist, hab ich mir im Modul einen Workaround geschaffen.

Anstatt

Code: Alles auswählen

                /* 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."'";   
verwende ich nun

Code: Alles auswählen

                            /* 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,
                                        ".$cfg["tab"]["cat_lang"]." AS d
                                    WHERE
                                        b.idcat     = '".$db->f("idcat")."' AND
                                        c.idclient  = '".$client."' AND
                                        c.idcat     = b.idcat AND
                                        a.idart     = b.idart AND
                                        a.idlang    = '".$lang."' AND
                                        d.startidartlang = a.idartlang";
wodurch die Navigation korrekt angezeigt wird.



Schöne Grüße

Robert

Verfasst: Mo 7. Feb 2005, 17:24
von emergence