Seite 1 von 1

w3concepts.alist.mod2.v1 + sprachversionen

Verfasst: Mo 4. Jul 2005, 12:26
von micha667
hi zusammen,
ich hab ein kleines problem mit der liste w3concepts.alist.mod2.v1 und der verwendung von 2 sprachversionen. während eine andere version der liste nur die artikel der jeweiligen sprache korrekt anzeigt, werden sie bei dieser version mit den kat-titel in klammern gedoppelt.

d.h. es wird z.B.

artikel 1 (aktuelles) // aus DE
artikel 1 (news) //aus ENG

angezeigt, wobei aber beide links auf die dt. version verweisen, also nur die englische kat-bezeichnung zusätzlich verwendet wird.

hat jemand ne ahnung, wie ich das abstellen kann?

zum bessern verständnis der link auf den testwebspace:
http://dedi144.your-server.de/www31/con ... hp?idcat=3

für hinweise schonmal vorab besten dank

gruß
micha

Verfasst: Mi 6. Jul 2005, 19:03
von emergence
damit mans leichter findet welches modul gemeint ist:
http://w3concepts.net/1/1/51/89.html

nachtrag

Verfasst: Mi 20. Jul 2005, 09:58
von micha667
hab mir das heute wieder vorgenommen. hab´ den part, der die unstimmigkeit verursacht, ausfindig gemacht.

um´s nochmal zusammen zufassen:

die version der obigen liste, die zusätzlich die "Kategorie" in Klammern mit ausgibt, doppelt bei 2 Sprachversionen in der Ausgabe alle Einträge, schreibt also in jeder Sprachversion z.b. sowohl die DE als auch die ENG Kat-Bezeichnung hinter den Eintrag. (Die Links der Einträge verweisen dabei aber alle auf die DE-version)

(http://dedi144.your-server.de/www31/con ... hp?idcat=3 )

Hab die Stelle mal im Code mit Sternchen gekennzeichnet. Ich hab allerdings auf Anhieb keine Ahnung, wie ich ich die Abfrage auf eine Sprache beschränke. Ein Ändern des $lang in der WHERE Abfrage hat keine Wirkung.


Code: Alles auswählen

case -2:
            $sql_1 = "
                SELECT count(*) AS anzahl
                FROM {$cfg['tab']['cat']} AS a,
                     {$cfg['tab']['cat']} AS b,
                     {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            c.parentid = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ";
            $sql_2 = "
                SELECT f.name, c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
                FROM {$cfg['tab']['cat']} AS a,
                {$cfg['tab']['cat']} AS b,
                {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
        ****LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON c.idcat = f.idcat****
                WHERE
                    (
                        (
                            c.parentid = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl
                ";
            break;
wäre echt nett, wenn einer der Cracks mal drüberschauen könnte. Evtl. ist es ja nur ne Kleinigkeit

danke + Gruß
Micha

Verfasst: Do 21. Jul 2005, 11:48
von micha667
bin drauf gekommen.

wen´s interessiert:
beim listen-modul, das zusätzlich den kat-namen hinter den hochgereichten artikeln anzeigt, muß bei verwendung von mehreren sprachversionen in das jeweilige "$sql_2" noch ein:

AND f.idlang = $lang

vor das

AND e.idlang = $lang

bei der WHERE-abfrage, was ja dann doch irgendwie logisch ist ;-)

Verfasst: Do 21. Jul 2005, 12:14
von Halchteranerin
schoen, dass du auch die Loesung gepostet hast! :) Vielleicht hilft es ja auch anderen ...