Brauche Hilfe bei einem Bildmodul

Gesperrt
cubig
Beiträge: 49
Registriert: Fr 2. Apr 2004, 09:28
Kontaktdaten:

Brauche Hilfe bei einem Bildmodul

Beitrag von cubig »

Hallo Leute,

ich bräuchte mal ganz dringend Hilfe.
Dieses Modul erzeugt eine Artikelliste mit einem Thumbnail vornedran.
Bei dem Modul von kummer (nochmals danke!) bekomme ich in der artikelliste kein thumbnail angezeigt. Irgendwie tauchen da Probleme auf.

Weiß jemand Rat?


Input:

Code: Alles auswählen

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


$selected = "CMS_VALUE[0]"; 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"><tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[0]\">"; 

if($selected!="0" && $selected!=""){ 
    echo"<option value=\"0\">--- kein ---</option>"; 
} else { 
    echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
} 

$sql = " 
    SELECT a.idcat, a.level, c.name 
    FROM {$cfg['tab']['cat_tree']} AS a, 
         {$cfg['tab']['cat']} AS b, 
         {$cfg['tab']['cat_lang']} AS c 
    WHERE 
        a.idcat = b.idcat 
        AND b.idcat = c.idcat 
        AND c.idlang='$lang' 
        AND b.idclient='$client' 
        AND c.visible = 1 
    ORDER BY a.idtree 
    "; 

$db->query($sql); 

while ($db->next_record()) { 
    $spaces = "|"; 
    $levels = $db->f("level"); 
    for ($i = 0; $i < $levels; $i ++) { 
        $spaces = $spaces . "--"; 
    } 
    $spaces .= ">"; 

    if ($selected == $db->f("idcat")) { 
        echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } else { 
        echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } 
} 

echo "</select></td></tr>"; 

echo "<tr><td>Anzahl Artikel je Seite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" size=\"3\" /></td>"; 

echo "<tr><td>Startartikel anzeigen?</td>"; 
$startartikel = "CMS_VALUE[2]"; 
if ($startartikel != '') { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\" checked=\"checked\"/></td>"; 
} else { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\"/></td>"; 
} 

echo "<tr><td>Anzahl angezeigte Zeichen der Subheadline:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"5\" /></td>"; 

echo "<tr><td>Text für Previous-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"15\" /></td>"; 

echo "<tr><td>Text für Next-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"15\" /></td>"; 

echo "<tr><td>Thumbnail-Breite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\" size=\"5\" /></td>"; 

echo "<tr><td>Artikel anzeigen bis:</td>"; 
echo "<td><select name=\"CMS_VAR[6]\">"; 
$ebene = "CMS_VALUE[6]"; 
for ($i=0;$i>-3;$i--) { 
    if ($i == $ebene) { 
        echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>"; 
    } else { 
        echo"<option value=\"$i\">Ebene $i</option>"; 
    } 
} 

echo "</table>";
und das
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 
************************************************/ 

    // manuelle konfiguration des moduls 
    $uploadpfad = "/cms/upload/"; // relativ zum root-verzeichnis (mit slash am anfang und am ende) 
    $thumbnailpfad = "/cms/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' 
                OR b.type = 'CMS_IMG' 
            ) 
            ORDER BY b.type, a.typeid ASC 
            "; 

        // print "<p>$sql</p>"; 

        $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=\"artlist_headline\"><a href=\"$link\" class=\"artlist_headlinelink\">".urldecode($db2->f("value"))."</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 .= "..."; 
        } else { 
            $newsubheadline = strip_tags(urldecode($db2->f("value"))); 
        } 

        $bild_vorhanden = false; 
        while ($db2->next_record()) { 
            if ($db2->f("type") == 'CMS_IMG' && $db2->f("typeid") == 1 && $db2->f("filename") != '') { 
                $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; 
                        $bildbreiteDev = round($src_image_size[0] * $bildhoehe / $src_image_size[1]); 
                    } else { 
         $bildbreiteDev = $bildbreite; 
          } 

                    $dst_im = imagecreatetruecolor($bildbreiteDev,$bildhoehe); 
          $weiss  = ImageColorAllocate ($dst_im, 255, 255, 255); 
          imagefill ($dst_im,0,0,$weiss); 

                    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")); 
                    } elseif ($src_image_size[2] == 3) { 
                        $src_im = ImageCreateFromPNG($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,$bildbreiteDev,$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 += 10; 
            $src_image_size = getimagesize($cfg['path']['frontend'].$bilddateiname); 
            echo "<tr><td class=\"artlist_subheadline\" colspan=\"2\">$newsubheadline</td><td class=\"artlist_subheadline\" style=\"width:{$width}px; padding-left:10px; text-align:right;\"><a href=\"$link\"><img src=\"$bilddateiname\" {$src_image_size[3]}/></a></td></tr>"; 
        } else { 
            echo "<tr><td class=\"artlist_subheadline\" colspan=\"3\">$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("/$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("/$client/$lang/$idcat/$idart/$displaylimit.html")."\">{$navigationslink['next']}</a></td>"; 
        } else { 
            echo '<td>&nbsp;</td>'; 
        } 
        echo '</tr></table></p>'; 
    } 
?>
prinzipiel funktioniert das modul.

auch nachdem ich schon verschiedene varianten ausprobiert habe wie ich das bild einbinde; einmal über einen separaten container und einmal im quelltext des eigentlichen textes. -> kein erfolg.

habe ich irgendeine einstellung übersehen?

das gibt mir die datenbank als internen fehler aus wenn ich auf den link klicke den er als Liste generiert:



[09-Aug-2004 12:18:24] PHP Warning: fopen(move_articles.php.job): failed to open stream: Permission denied in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 306
[09-Aug-2004 12:18:24] PHP Warning: fputs(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 307
[09-Aug-2004 12:18:24] PHP Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 308
[09-Aug-2004 12:18:24] PHP Warning: fopen(move_old_stats.php.job): failed to open stream: Permission denied in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 306
[09-Aug-2004 12:18:24] PHP Warning: fputs(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 307
[09-Aug-2004 12:18:24] PHP Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 308
[09-Aug-2004 12:18:24] PHP Warning: fopen(session_cleanup.php.job): failed to open stream: Permission denied in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 306
[09-Aug-2004 12:18:24] PHP Warning: fputs(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 307
[09-Aug-2004 12:18:24] PHP Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 308
[09-Aug-2004 12:18:24] PHP Warning: fopen(optimize_database.php.job):
failed to open stream: Permission denied in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 306
[09-Aug-2004 12:18:24] PHP Warning: fputs(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 307
[09-Aug-2004 12:18:24] PHP Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web49/html/contenido/includes/pseudo-cron.inc.php on line 308
Vieleicht kann jemand was damit anfangen....


Vielen Dank für alle die sich die Zeit nehmen.
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Dein Verzeichnis cronjobs oder die darin enthaltenen Dateien haben nicht ausreichend Rechte (versuch's mit 777). Ob Dein Problem mit dem Modul (nur) daran liegt, weiss ich nicht. Versuch's einfach mit Aendern der Rechte erstmal.
cubig
Beiträge: 49
Registriert: Fr 2. Apr 2004, 09:28
Kontaktdaten:

Beitrag von cubig »

danke für die schnelle hilfe.

leider hat das ändern der rechte nichts gebracht. ich bekomme einfach kein picture in der liste angezeigt....

vieleicht weiß noch jemand einen anderen rat....

Thanx
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

steht noch etwas anderes im errorlog? Bzw. kommen die obigen Fehlermeldungen noch? (am besten errorlog leeren und dann nochmal versuchen, das Modul zu benutzen)
cubig
Beiträge: 49
Registriert: Fr 2. Apr 2004, 09:28
Kontaktdaten:

Beitrag von cubig »

Habe das Problem nicht gelöst, aber durch ein anderes Modul ersetzt:

http://www.contenido.de/forum/viewtopic ... rn&start=0

Das funzt prima.

Vielen Dank für alles die sich um mein Problem gekümmert haben!

cubig
Gesperrt