w3concepts_alist_v1 - Contendido 4.5.2

Gesperrt
DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

w3concepts_alist_v1 - Contendido 4.5.2

Beitrag von DEDE » Mo 14. Feb 2005, 12:00

Hallo allerseits,

irre Verwirrendes Problem:
w3concepts_alist_v1 zeigt Atratartikel obwohl nicht ausgewählt.

Das tut es allerdings nur bei Neuanlage oder Änderung eines
Artikels.

Kpoiert man eine Kategorie in welcher dies modul in einem Artikel
bereits eigerichtet ist, liest es (wenn man nichts an der Konfiguration ändert)
den Startartikel (wie dort eingestellt) NICHT aus.

Ich blick nicht durch.

Hier der Code:

Code: Alles auswählen

<?php 
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     w3concepts.alist.mod6.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     08-07-2004 
* Modified    :     08-07-2004 
************************************************/ 

    // manuelle konfiguration des moduls 
    $uploadpfad = "/b90gruene/upload/"; // relativ zum root-verzeichnis (mit slash am anfang und am ende)
    $thumbnailpfad = "/b90gruene/upload/bilder/auto_thumbnails/"; //relativ zum root-verzeichnis (mit slash am anfang und am ende)

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

    $bildbreite = "CMS_VALUE[7]"; 

    $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 
                    AND e.idlang = $lang 
                    $nurstartartikel 
                "; 
            $sql_2 = " 
                SELECT 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 
                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; 
        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 
                    AND e.idlang = $lang 
                    $nurstartartikel 
                "; 
            $sql_2 = " 
                SELECT 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 
                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 
                    AND e.idlang = $lang 
                    $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 
                    AND e.idlang = $lang 
                    $nurstartartikel 
                "; 
            $sql_2 = " 
                SELECT 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 
                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 
                    AND e.idlang = $lang 
                    $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 '<p><table cellpadding="0" cellspacing="0" style="width:100%"><tr style="height:1px;"><td></td><td style="width:200px;"></td><td style="width:50px;"></td></tr>'; 

    while ($db->next_record()) { 
        
        $sql = " 
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a 
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype 
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl 
            WHERE 
            a.idartlang = ".$db->f("idartlang")." 
            AND ( 
                b.type = 'CMS_HTMLHEAD' 
            ) 
            ORDER BY b.type, a.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")); 
        // $link = $sess->url("/$client/$lang/".$db->f("idcat")."/".$db->f("idart").".html"); 

        echo "<tr><td colspan=\"2\" class=\"teaser\"><a href=\"$link\" class=\"teaser\">".urldecode($db2->f("value"))."</a></td>"; 
        echo "<td class=\"content\" align=\"right\" valign=\"middle\">".$db->f("erstellungsdatum")."</td></tr>"; 

        $sql = " 
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a 
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype 
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl 
            WHERE 
            a.idartlang = ".$db->f("idartlang")." 
            AND ( 
                b.type = 'CMS_HTML' 
            ) 
            ORDER BY b.type, a.typeid ASC 
            "; 

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

        // den artikel 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 .= "..."; 
        } else { 
            $newsubheadline = strip_tags(urldecode($db2->f("value"))); 
        } 

        $sql = " 
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a 
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype 
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl 
            WHERE 
            a.idartlang = ".$db->f("idartlang")." 
            AND ( 
                b.type = 'CMS_IMG' 
            ) 
            ORDER BY b.type, a.typeid ASC 
            "; 

        $db2->query($sql); 
        $bild_vorhanden = false; 
        while ($db2->next_record()) { 
            if ($db2->f("type") == 'CMS_IMG' && $db2->f("typeid") == 2) { 
                $bilddateiname = "{$thumbnailpfad}{$bildbreite}_".$db2->f("filename").".jpg"; 
                if (!file_exists($cfg['path']['frontend'].$bilddateiname)) { 

                    $src_image_size = getimagesize($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename")); 

                    $bildhoehe = round($src_image_size[1] * $bildbreite / $src_image_size[0]); 
                    if ($bildhoehe > $bildbreite) { 
                        $bildhoehe = $bildbreite; 
                        $bildbreite = round($src_image_size[0] * $bildhoehe / $src_image_size[1]); 
                    } 

                    $dst_im = imagecreatetruecolor($bildbreite,$bildhoehe); 

                    if ($src_image_size[2] == 1) { 
                        $src_im = imagecreatefromGIF($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename")); 
                    } elseif ($src_image_size[2] == 2) { 
                        $src_im = @ImageCreateFromJPEG($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename")); 
                    } else { 
                        $src_im = imagecreatefromgd($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename")); 
                    } 
                    
                    imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]); 
                    imagejpeg ($dst_im,$cfg['path']['frontend'].$bilddateiname,100); 
                } 
                $bild_vorhanden = true; 
            } 
        } 

        if ($bild_vorhanden) { 
            $width = "CMS_VALUE[7]"; 
            $width += 5; 
            $src_image_size = getimagesize($cfg['path']['frontend'].$bilddateiname); 
            echo "<tr><td class=\"content\" style=\"width:{$width}px;\"><a href=\"$link\"><img src=\"$bilddateiname\" {$src_image_size[3]}/></a></td><td class=\"content\" colspan=\"2\">$newsubheadline</td></tr>"; 
            echo "<tr><td colspan=\"3\" width=340px><img src=\"upload/imgsrc/green2pixel.gif\" width=339px height=2 border=0></td></tr>";
        } else { 
            echo "<tr><td class=\"content\" colspan=\"3\">$newsubheadline</td></tr>";
            echo "<tr><td colspan=\"3\" width=340px><img src=\"upload/imgsrc/green2pixel.gif\" width=339px height=2 border=0></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>"; 
            echo "<td style=\"text-align:left\"><a href=\"".$sess->url("/$client/$lang/$idcat/$idart/$displaylimit.html")."\">{$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>"; 
            echo "<td style=\"text-align:right\"><a href=\"".$sess->url("/$client/$lang/$idcat/$idart/$displaylimit.html")."\">{$navigationslink['next']}</a></td>"; 
        } else { 
            echo '<td>&nbsp;</td>'; 
        } 
        echo '</tr></table></p>'; 
    } 
?>
Ideen .. DICKEN DANK

Dede

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Re: w3concepts_alist_v1 - Contendido 4.5.2

Beitrag von emergence » Di 15. Feb 2005, 09:41

DEDE hat geschrieben: irre Verwirrendes Problem:
w3concepts_alist_v1 zeigt Atratartikel obwohl nicht ausgewählt.

Das tut es allerdings nur bei Neuanlage oder Änderung eines
Artikels.

Kpoiert man eine Kategorie in welcher dies modul in einem Artikel
bereits eigerichtet ist, liest es (wenn man nichts an der Konfiguration ändert)
den Startartikel (wie dort eingestellt) NICHT aus.
ähm wie ? kannst du das einfacher beschreiben ?
um es mit deinen worten zu sagen
Ich blick nicht durch.
*** make your own tools (wishlist :: thx)

DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Beitrag von DEDE » Di 15. Feb 2005, 15:01

Nun, diesem Modul kannst Du ja sagen, ob es den Startartikel
anzeigen darf oder eben nicht.

Ich habe es so eingestellt gehabt, dass es ihn nicht anzeigen sollte.

Das funktionierte bis vor ein paar Tagen.

Dann legte ich eine neue Ketagroei an, einen neuen Artikel mit diesem
Modul im Template und promt ... listet er mir den Startartikel.
Obwohl er nicht soll.

Nun bin ich an bestehende funktionierende Artikel mit diesem Template rangegangen und habe dort einfach mal was in der Konfiguration geändert (zuruck statt zurueck). Eben was zum Speichern und habe nichts
am Haken (am nicht gesetzten Haken) zum Thema "Startartikel anzeigen"
gemacht.
Kein Haken ... gespeichert ... und er listet den Startartilkel ... hrrrnnnf

sooo, und weil ich die Faxen dicke hatte, hab ich mir statt dessen das Modul "modul für 4.5.2 alpha :: w3concepts.alist.thumbs.v1" http://contenido.org/forum/viewtopic.php?p=41488#41488
eingebaut ... und da isses ja eh ohne Startartikel.

Also ... Workaround tat!
Kleine Frage:
Wie sinnvoll ist es, die Snapshots für 4.5.2 einzuspielen? Oder sollte man dann besser auf ein Final warten?

Frohen Gruss aus dem verschneiten Eglharting

dede

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 15. Feb 2005, 15:20

ähm sinnvoll
so kann ich das nicht beantworten

in der 4.5.x serie hat sich etwas bei der startartikel funktionalität geändert...
da läufst du bei nicht angepassten modulen genau in das problem das du hattest.

man kann natürlich auch alle module mit der alten funktionalität verwenden wenn man in der config.php isstartcombatible auf true setzt...

die sache ist nun entweder oder...
es gehen entweder nur die module für die 4.4.x oder für die 4.5.x
gemischt funktioniert es nicht....
*** make your own tools (wishlist :: thx)

DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Beitrag von DEDE » Mi 16. Feb 2005, 10:10

Witzig daran ist jetzt allerding, dass ich isstartcompatible auf true gesetzt hatte ... vor langer Zeit
Und es funktionierte ja auch.

Und nun funktioniert das neue 4.5.2er Modul ... nu ich bin verwirrt.

Dede :shock:

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 16. Feb 2005, 10:34

DEDE hat geschrieben:Und nun funktioniert das neue 4.5.2er Modul ... nu ich bin verwirrt.
wieso verwirrt ?
wenn das modul den parameter berücksichtigt funktioniert es in in der 4.5.x bei $cfg["is_start_compatible"] true und false...
die module der 4.4.x werden nur dann einwandfrei funktionieren wenn der $cfg parameter auf true gesetzt ist...
wenn der $cfg parameter auf false ist müssen module die nach startartikel selektieren und für die 4.4.x geschrieben worden sind angepasst werden.
*** make your own tools (wishlist :: thx)

DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Beitrag von DEDE » Mi 16. Feb 2005, 11:01

ahhhhhh. Ok nun ... na dann .. klar. Logisch hhrrrnnnf
:idea:
Hab Dank!

Nu nochmal ganz kurz die Nachfrage wegen der Snapshots und Deiner
Einschätzung:
Sollte ich die 4.5.2 Snapshots machen oder eher auf eine Final warten?
Frohen Gruss

es schneit es schneit!

Dede

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 16. Feb 2005, 11:41

DEDE hat geschrieben:Nu nochmal ganz kurz die Nachfrage wegen der Snapshots und Deiner
Einschätzung:
Sollte ich die 4.5.2 Snapshots machen oder eher auf eine Final warten?
ich würde dir empfehlen zuerst zu testen und dann selbst zu entscheiden...
wenn du dich etwas mit php auskennst kann ich es dir durchaus empfehlen... falls nicht dann solltest du auf die final warten...
*** make your own tools (wishlist :: thx)

Gesperrt