Problem w3concepts_alist_v1 - doppelte Anzeige

Gesperrt
master111
Beiträge: 43
Registriert: Fr 10. Sep 2004, 11:37
Wohnort: München
Kontaktdaten:

Problem w3concepts_alist_v1 - doppelte Anzeige

Beitrag von master111 »

PROBLEM GELÖST!!! Die Sprachen waren Schuld. Danke für den Tipp.

Hallo,

ich habe w3concepts_alist_v1 mit Contenido 4.4.5 laufen.

Doch leider werden die Artikel immer doppelt angezeigt. Warum??

BSP: http://www.malteser-graefelfing.de (im unteren Teil)

Modul output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     w3concepts_alist_v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     06-05-2004
* Modified    :     06-05-2004
************************************************/

    // konfiguration

    $categorie = "CMS_VALUE[0]";

    $angezeigte_anzahl = "CMS_VALUE[1]";
    if ($angezeigte_anzahl == '') $angezeigte_anzahl = 10;

    $startartikel = "CMS_VALUE[2]";
    if ($startartikel == '') $startartikel = false;

    $subheadline = "CMS_VALUE[3]";
    if ($subheadline == '') $subheadline = 200;

    $navigationslink['previous'] = "CMS_VALUE[4]";
    if ($navigationslink['previous'] == '') $navigationslink['previous'] = '[:: rückwärts ]';

    $navigationslink['next'] = "CMS_VALUE[5]";
    if ($navigationslink['next'] == '') $navigationslink['next'] = '[ vorwärts ::]';

    $ebene = "CMS_VALUE[6]";

    $limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);

    $db = new DB_Contenido;
    $db2 = new DB_Contenido;

    // wenn startartikel true ist, werden die startartikel dargestellt, sonst nicht
    $nurstartartikel = ($startartikel)?(''):('AND d.is_start = 0');

    // liest die anzahl betroffener artikel aus der datenbank
    switch ($ebene) {
        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
                    $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
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl
                ";
            break;
        case -1:
            $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 b.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            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
                    $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.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
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl
                    ";
            break;
        case 0:
            $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 b.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            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
                    $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 f.idcat = d.idcat
                WHERE
                    (
                        (
                            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
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl
                    ";
            break;
    }

    $db->query($sql_1);
    $db->next_record();
    $anzahl_artikel = $db->f("anzahl");

    $db->query($sql_2);

    echo '<table width="396" border="0" align="center" cellpadding="0" cellspacing="0">';

    while ($db->next_record()) {
       
        $sql = "
            SELECT value FROM {$cfg['tab']['content']}
            WHERE
            idartlang = ".$db->f("idartlang")."
            AND idtype = 1
            ORDER BY typeid ASC
            ";

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

        $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")."&idart=".$db->f("idart"));

/* URSPRÜNGLICH:<td width=\"290\" style=\"padding-top: 2px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px;\">•• ".$db->f('name')." <br> */


	  echo "<tr valign=\"top\" class=\"content_main\">       
          <td width=\"369\">

            <img src=\"images/symbols/pfeil_art_liste.gif\" width=\"13\" height=\"10\" border=\"0\">	<a href=\"$link\" class=\"link_menue\" title=\"".$db->f('name')."\">".strip_tags(urldecode($db2->f("value")))."</a></td></tr>";



        // echo "<tr><td class=\"artlist_headline\"><a href=\"$link\" class=\"artlist_headlinelink\">".urldecode($db2->f("value"))." (".$db->f('name').")</a></td>";
        // echo "<td class=\"artlist_date\">".$db->f("erstellungsdatum")."</td></tr>";

        $db2->next_record();

        // die subheadline auf die gewünschte länge reduzieren (trennung nur
        // nach bzw. vor einem ganzen wort
        if (strlen($db2->f("value")) > $subheadline) {
            $newsubheadline = '';
            $worte = explode (" ",strip_tags(urldecode($db2->f("value"))));
            $zulang = false;
            foreach ($worte as $wort) {
                if (strlen($newsubheadline." ".$wort) >= $subheadline) $zulang = true;
                $newsubheadline = (!$zulang)?($newsubheadline." ".$wort):($newsubheadline);
            }
            $newsubheadline .= "";     // $newsubheadline .= "...";
        } else {
            $newsubheadline = strip_tags(urldecode($db2->f("value")));
        }


	 /* echo "<tr valign=\"top\" class=\"content_main\">
          <td colspan=\"0\" style=\"padding-top: 2px; padding-bottom: 10px; padding-left: 2px; padding-right: 2px; border-width:0px; border-color:#CC0033; border-bottom-style:none; border-left-style:none; border-top-style:none; border-right-style:none;\">$newsubheadline</td>
        </tr>"; */




        // echo "<tr><td class=\"content_main\" colspan=\"2\">$newsubheadline</td></tr>";

    }

    echo '</table>';

/*
    if ($limit > 0 || $anzahl_artikel > $limit + $angezeigte_anzahl) {
        echo '<table cellpadding="0" cellspacing="0" style="width:100%"><tr>';
        if ($limit > 0) {
            $displaylimit = ($limit - $angezeigte_anzahl >= 0)?($limit - $angezeigte_anzahl):(0);
            echo "<td style=\"text-align:left\"><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['previous']}</a></td>";
        } else {
            echo '<td>&nbsp;</td>';
        }
        if ($anzahl_artikel > $limit + $angezeigte_anzahl) {
            $displaylimit = $limit + $angezeigte_anzahl;
            echo "<td style=\"text-align:right\"><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['next']}</a></td>";
        } else {
            echo '<td>&nbsp;</td>';
        }
        echo '</tr></table>';
        echo '</p>';
    } */


?>
Vielen Dank!!

DoMi[/url]
Zuletzt geändert von master111 am Fr 29. Jul 2005, 19:52, insgesamt 1-mal geändert.
Jetzt mit contenido - und jeden Tag besser:
http://www.malteser-graefelfing.de
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

@kummer
immer diese komplizierten queries...

was soll bitte das query

Code: Alles auswählen

SELECT count(*) AS anzahl ...
bringen ?
*** make your own tools (wishlist :: thx)
master111
Beiträge: 43
Registriert: Fr 10. Sep 2004, 11:37
Wohnort: München
Kontaktdaten:

keine tipps möglich?

Beitrag von master111 »

hi,

wisst ihr auch nicht was da los ist oder muss ich noch angaben liefern? welche?

vielen dank!!!
DoMi
Jetzt mit contenido - und jeden Tag besser:
http://www.malteser-graefelfing.de
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

sorry in diesem fall kann ich dir leider nicht helfen...
ich verwende die artikellisten leider nicht...
*** make your own tools (wishlist :: thx)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

emergence hat geschrieben:@kummer
immer diese komplizierten queries...

was soll bitte das query

Code: Alles auswählen

SELECT count(*) AS anzahl ...
bringen ?
damit wird die anzahl rückgabewerte ermittelt. das ist nötig für das blättern, da die datenbankklasse von contenido über die anzahl der rückgabewerte keine auskunft gibt. mindestens meines wissens. deshalb muss der query zweimal abgesetzt werden:

* einmal für die anzahl records herauszufinden
* und einmal für die daten dann tatsächlich zu erhalten
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: keine tipps möglich?

Beitrag von kummer »

master111 hat geschrieben:wisst ihr auch nicht was da los ist oder muss ich noch angaben liefern? welche?
hast du mehr als eine sprache in verwendung? oder eventuell mehrere mandanten?
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
master111
Beiträge: 43
Registriert: Fr 10. Sep 2004, 11:37
Wohnort: München
Kontaktdaten:

mandanten

Beitrag von master111 »

ja es sind 2 mandanten im einsatz. liegt es daran? wie muss das angepasst werden?

schönen dank!!
DoMi
Jetzt mit contenido - und jeden Tag besser:
http://www.malteser-graefelfing.de
ViktorQ
Beiträge: 9
Registriert: Di 5. Okt 2004, 21:18
Kontaktdaten:

Re: keine tipps möglich?

Beitrag von ViktorQ »

kummer hat geschrieben:
master111 hat geschrieben:wisst ihr auch nicht was da los ist oder muss ich noch angaben liefern? welche?
hast du mehr als eine sprache in verwendung? oder eventuell mehrere mandanten?
Hallo kummer, ich habe das selbe Problem. jedoch mit 2 Sprachen und einem Mandanten. habe das Aktuellste Modul (w3concepts.alist.mod4) von deiner Seite eingebaut, jedoch ohne weiteren Erfolg.

Ich habe schon mehrere Forenbeiträge durchgeschaut und es kamm nur immer "ich hab das mit der Multilang hinbekommen" aber es schreibt niemand wie, und was sein Problem war. Vieleicht kannst du mir ja weiter Helfen oder die jenigen die es hinbekommen haben.

MfG
ViktorQ
Gesperrt