Seite 1 von 1
w3concepts_alist_v1, Tumnails werden kleiner
Verfasst: Sa 11. Feb 2006, 17:42
von Uwe
Hallo,
ich habe ein Problem mit der tollen Artikelliste von Kummer. Die Thumbnails werden immer kleiner (
http://www.samydesign.de/front_content.php?idcat=13). Ich habe bereits mehrfach die Thumbs gelöscht, das Template neu zugewiesen. Es werden auch unterschiedliche Grössen generiert, mal so, mal so.
Angegeben habe ich die Grösse 125px. So beginnt die Liste auch. Aber nach einigen Schleifen werden die Thmbs kleiner (125px, 94, 43, 32, 18 ) ????
4.6.4.
Kann mir da jemand helfen??
Viele Grüsse aus dem sonnigen Süden der Republik, Uwe
Verfasst: Sa 11. Feb 2006, 17:52
von Halchteranerin
hast du fuer die Bilder und die Thumbnails unterschiedliche Verzeichnisse angegeben?
Verfasst: Sa 11. Feb 2006, 17:55
von Uwe
Ja, die Thumbs gehen ins Verzeichnis upload/auto_thumbs, die bilder leigen in anderen Ordnern zb. upload/werke/leopard
Verfasst: Sa 11. Feb 2006, 18:02
von Uwe
Hier mal der output:
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 = "upload/"; // relativ zum root-verzeichnis (mit slash am anfang und am ende)
$thumbnailpfad = "upload/auto_thumbs/"; //relativ zum root-verzeichnis (mit slash am anfang und am ende)
$mandantenpfad = "/kunden/xxxx/samydesign.de/";
// 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 '<table cellpadding="0" cellspacing="0" width="100%" border="0">';
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=\"\"><h1><a href=\"$link\" class=\"artikellisteHeadline\">".urldecode($db2->f("value"))."</a></h1></td>";
echo "<td class=\"\"><!-- ".$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($mandantenpfad.$bilddateiname)) {
$src_image_size = getimagesize($mandantenpfad.$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($mandantenpfad.$uploadpfad.$db2->f("dirname").$db2->f("filename"));
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG($mandantenpfad.$uploadpfad.$db2->f("dirname").$db2->f("filename"));
} else {
$src_im = imagecreatefromgd($mandantenpfad.$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,$mandantenpfad.$bilddateiname,100);
}
$bild_vorhanden = true;
}
}
if ($bild_vorhanden) {
$width = "CMS_VALUE[7]";
$width += 5;
$src_image_size = getimagesize($mandantenpfad.$bilddateiname);
echo "<tr>
<td class=\"\" style=\"width:{$width}px;\"><a href=\"$link\"><img border=\"0\" src=\"$bilddateiname\" {$src_image_size[3]}/></a></td>
<td valign=top class=\"\">$newsubheadline</td></tr>
<tr><td align=\"right\" colspan=\"2\"><a href=\"$link\">» mehr / more...</a></td>
</tr>
<tr><td colspan=\"2\" bgcolor=\"#333333\"><img src=\"images/space.gif\" width=\"1\" height=\"1\" alt=\"spacer\"></td></tr>";
} else {
echo "<tr><td class=\"\" colspan=\"2\">$newsubheadline</td></tr>";
echo "<tr><td colspan=\"2\" bgcolor=\"#333333\"><img src=\"images/space.gif\" width=\"1\" height=\"1\" alt=\"spacer\"></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> </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> </td>';
}
echo '</tr></table></p>';
}
?>
Verfasst: Sa 11. Feb 2006, 18:33
von Uwe
Und noch was, die Thumbs werden mit jedem reload der Seite grösser, so lange, bis es passt (5 mal) ??
Hat jemand ein Tipp?
Verfasst: Sa 11. Feb 2006, 19:08
von rezeptionist
wenn es die gleich ist wie in dem Thread schau mal ans ende des Threads (wusste doch das da mal was war)
http://contenido.org/forum/viewtopic.ph ... er+kleiner
Verfasst: So 12. Feb 2006, 15:55
von Uwe
Danke für den Tipp, am Sortierschlüssel liegts nicht. Ich denke, dass die Anderen auch so lange rumprobiert haben, bis es (durch mehrfachen reload) sich erledigt hatte.
Wie auch bei mir, wenn ich aber den Thumbnail-Ordner leere, geht's wieder von vorne los.
Nun, da sich das Problem durch mehrfaches Neuladen der Seite (etwas unelegant) löst, kann ich noch damit leben. Aber natürlich würde mich eine Erklärung für diese Geschichte schon interessieren. es fällt mir schwer einem Programm zu vertrauen, welches ein gewisses Eigenleben besitzt
Viele Grüsse und Danke,
Uwe
Verfasst: So 12. Feb 2006, 15:59
von rezeptionist
Lach ja das mit dem eigenleben ist so ne sache aber als alternative bzw zu empfehlen ist die Artikelliste von HerrB Easy to use
http://www.contenido.de/forum/viewtopic.php?t=10957
Und bei der kannst du so ziemlich alles tasern lassen was es auf diner Seite gibt und eines kann ich dir sagen das einzige was bei der Liste lebt das ist HerrB

und er rockt lach . Versuch mal di Alternativ.
Verfasst: So 12. Feb 2006, 16:15
von Uwe
Das scheint ja ein richtiger Alleskönner zu sein.
Was mich dabei noch interessiert ist diese Sache mit dem Startartikel. Ich habe die cfg-Variable ja auf true gestellt. Was bewirkt denn eigentlich diese Variable überhaupt?
Verfasst: So 12. Feb 2006, 18:41
von HerrB
ch habe die cfg-Variable ja auf true gestellt. Was bewirkt denn eigentlich diese Variable überhaupt?
Die Speicherung der Eigenschaft "Bin Startartikel" hat sich mit V4.6.x geändert. Mit der Variable auf true erwarten und setzen die verschiedenen Funktionen die Eigenschaft an der alten Stelle, mit false nur noch an der neuen.
Es sei erwähnt, dass alte Module augenscheinlich auch mit dem Wert false - laufen. Jedoch nur bis zu dem Zeitpunkt, bis zu dem der Startartikel anders oder neu definiert wird.
Außerdem ist - wenn man die Einstellung auf false ändern möchte - das Konvertierungs-Skript unter contenido/tools via Browser auszuführen. Mehr steht in der ReadMe.txt des Installationspakets.
Gruß
HerrB