Warning: getimagesize(): Read error! [gelöst]

wosch

Beitrag von wosch » Mi 21. Mär 2007, 22:03

maum hat geschrieben:@Link: ehm ich glaub der führt zu einem falschen Thread....Contenido in anderen Sprachen?
Verstehe ich nicht warum, stimmt aber.
Hier der richtige Link:
http://www.contenido.de/forum/viewtopic.php?t=1261
maum hat geschrieben:Ich habe das News-Modul vorher schon ohne Bilder benutzt, ohne Probleme.
Dann wird der Link wahrscheinlich die Lösung zu deinem Problem sein. :wink:

EDIT:
maum hat geschrieben:Besitzt aber 0kb.
Das würde aber wiederum auf Rechtevergabe im Ordner cache hinweisen.
Prüf mal mit einem FTP-Programm, z.B. WinSCP3, NICHT mit WS_FTP, die Rechte an dem Ordner.
Zuletzt geändert von wosch am Mi 21. Mär 2007, 22:08, insgesamt 1-mal geändert.

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Mi 21. Mär 2007, 22:06

ehm...irgendwie funktioniert das mit dem Link nicht...ich komme wieder auf den besagten Thread

zu version V4.2


hmm sag mir wie der thread heißt und ich tipps in die suche :D

wosch

Beitrag von wosch » Mi 21. Mär 2007, 22:12

Ich werd nicht wieder, ich habe die URL direkt mit der maus über den Beitrag und "Verknüpfung kopieren" genommen.

Also dann auch die dumme Art:
Forum -> Beitrag: Version 4.6.x -> Thema: Tips & Tricks 4.6.x anklicken
-> Beitrag: -> Lösung für getimagesize-Problem: url access disabled

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Mi 21. Mär 2007, 22:14

Okay super danke...ehm den thread hab ich schon gelesen, nur mein Problem...besagte zeile finde ich nicht in meinem NEWS-Modul...

vielleicht bin auch einfach nur blind

in dem Modul Illustration habe ich es schon geändert

ich kopiere mal hier den Output-Teil
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : News
* Author(s) : Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
************************************************/

cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');

if (!is_object($tpl)) {
$tpl = new Template;
}

$tpl->reset();

$sql = "SELECT
htmlpath, frontendpath
FROM
".$cfg["tab"]["clients"]."
WHERE
idclient = ".$client." ";

$db->query($sql);

if ($db->next_record()) {
$htmlpath = $db->f('htmlpath');
$frontendpath = $db->f('frontendpath');
}

// selected category
$selcat = "CMS_VALUE[1]";
//echo "sel $selcat<br>";
$template = "teaser-standard.html";
//echo "tpl $template<br>";
// anzahl der zeichen text
$mxtext = 200;

$limit = "CMS_VALUE[15]";

$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
$cms_sort_direction = 'desc';
}

if ("CMS_VALUE[3]" == "sortdate") {
$order = 'lastmodified';
} else {
$order = 'artsort';
}

$newsheadline = "CMS_VALUE[4]";

$tpl->set('s', 'TITLE', $newsheadline);

if (strlen($selcat) > 0 AND $selcat != '0') {
$options = array ('idcat' => $selcat, "start" => false, "order" => $order, "direction" => $cms_sort_direction);

$list = new ArticleCollection($options);

$count = $list->count;

if ($count > 0) {
if (is_numeric($limit) AND strlen($limit) > 0) {
if ($limit < $list->count) {
$limit_art = $limit;
} else {
$limit_art = $list->count;
}
} else {
$limit_art = $list->count;
}

for ($i = 0; $i < $limit_art; $i ++) {

$article = $list->nextArticle();

$article_id = $article->getField('idart');

$teaser_img = '';
if ($noimg != 'true') {
$text_html = $article->getContent('CMS_HTML', 1);

$regEx = "/<img[^>]*?>.*?/i";
$match = array ();
preg_match($regEx, $text_html, $match);

$regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
$img = array ();
preg_match($regEx, $match[0], $img);
$img_src = preg_split("/\//", $img[0]);

$img_name = $img_src[count($img_src) - 1];
$img_name = preg_replace("/\"/", "", $img_name);
$img_split = preg_split("/\./", $img_name);
$img_type = $img_split[count($img_split) - 1];

$img_split2 = preg_split("/_/", $img_split[0]);

$name = $img_name;

if (count($img_split2) > 1) {
$img_x = $img_split2[count($img_split2) - 1];
$img_y = $img_split2[count($img_split2) - 2];

if (is_numeric($img_x) AND is_numeric($img_y)) {
$suffix = "_".$img_x."_".$img_y.".".$img_type;
$name = preg_replace("/$suffix/", "", $img_name);
$name = $name.".[a-zA-Z]{3}";
}
}

$img_teaser = '';

if (strlen($name) > 0) {
$sql = "SELECT
*
FROM
".$cfg["tab"]["upl"]."
WHERE
filename REGEXP '$name' ";

//echo "<pre>"; print_r($sql); echo "</pre>";

$db->query($sql);

if ($db->next_record()) {
$filename = $db->f('filename');
$dirname = $db->f('dirname');
}

$img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;

$img_size = "CMS_VALUE[14]";

$img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
} // end if strlen

if (strlen($img_teaser) > 0) {
$teaser_img = '<img src="'.$img_teaser.'" class="teaser_img">';
} else {
$teaser_img = '';
}

} // end if noimg

$headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
$headline = str_replace($replace, " ", $headline);

/* $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
$subheadline = str_replace($replace, " ", $subheadline);*/

$teaserheadline = /*$subheadline."&nbsp;-&nbsp;".*/
$headline;
$href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
$teasertext = $article->getField('summary');

if (strlen(trim($teasertext)) == 0) {
$teasertext = strip_tags($article->getContent('CMS_HTML', 1));
$teasertext2 = $teasertext;
$teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
if ($teasertext!=$teasertext2) {
$teasertext.= '...';
}

} // end if

$teasertext = $teasertext."&nbsp;";

$tpl->set('d', 'HEADLINE', $teaserheadline);
$tpl->set('d', 'TEXT', $teasertext);
$tpl->set('d', 'HREF', $href);
$tpl->set('d', 'IMG', $teaser_img);
$tpl->set('d', 'MORE', mi18n("mehr"));

$tpl->next();

} // end for

$tpl->generate('templates/'.$template);

}
}
?>

wosch

Beitrag von wosch » Mi 21. Mär 2007, 22:20

Wenn du die Stelle nicht findest kann ich morgen mal mein korrigiertes Modul (ist nur der Output) posten.
Ist schon spät, ich mag nicht mehr den Aufwand treiben heute das Modul aus Contenido zu kopieren, sorry dafür.
Ich habe aber einige Änderungen / Erweiterungen darin gemacht, ggf. mußt du die auskommentieren, und nur die Änderungen vergleichen die ich gemacht habe.

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Mi 21. Mär 2007, 22:21

Okay. Das wäre super.

Aber schon mal echt ein riesen Dankeschön für die Mühe und für die schnellen Antworten!!!

wosch

Beitrag von wosch » Do 22. Mär 2007, 09:24

So, hier das Modul, nur Output, News mit korrigiertem GetImagesize

Modul Output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      News
* Author(s)   :     Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
************************************************/

cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');

if (!is_object($tpl)) {
	$tpl = new Template;
}

$tpl->reset();

$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]." 
        WHERE
            idclient = ".$client." ";

$db->query($sql);

if ($db->next_record()) {
	$htmlpath = $db->f('htmlpath');
	$frontendpath = $db->f('frontendpath');
}

// selected category
$selcat = "CMS_VALUE[1]";
//echo "sel $selcat<br>";
$template = "newsliste_1.html";
//echo "tpl $template<br>";
// anzahl der zeichen text
$mxtext = 300;

$limit = "CMS_VALUE[15]";

$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
	$cms_sort_direction = 'desc';
}

if ("CMS_VALUE[3]" == "sortdate") {
	$order = 'lastmodified';
} else {
	$order = 'artsort';
}

$newsheadline = "CMS_VALUE[4]";

$tpl->set('s', 'TITLE', $newsheadline);

if (strlen($selcat) > 0 AND $selcat != '0') { 
   if ("CMS_VALUE[17]" != '') { 
      $options = array ('idcat' => $selcat, "start" => true, "order" => $order, "direction" => $cms_sort_direction); 
   } else { 
      $options = array ('idcat' => $selcat, "start" => false, "order" => $order, "direction" => $cms_sort_direction); 
   }

	$list = new ArticleCollection($options);

	$count = $list->count;

	if ($count > 0) {
		if (is_numeric($limit) AND strlen($limit) > 0) {
			if ($limit < $list->count) {
				$limit_art = $limit;
			} else {
				$limit_art = $list->count;
			}
		} else {
			$limit_art = $list->count;
		}

		for ($i = 0; $i < $limit_art; $i ++) {

			$article = $list->nextArticle();

			$article_id = $article->getField('idart');

			$teaser_img = '';
			if ($noimg != 'true') {
				$text_html = $article->getContent('CMS_HTML', 1);

				$regEx = "/<img[^>]*?>.*?/i";
				$match = array ();
				preg_match($regEx, $text_html, $match);

				$regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
				$img = array ();
				preg_match($regEx, $match[0], $img);
				$img_src = preg_split("/\//", $img[0]);

				$img_name = $img_src[count($img_src) - 1];
				$img_name = preg_replace("/\"/", "", $img_name);
				$img_split = preg_split("/\./", $img_name);
				$img_type = $img_split[count($img_split) - 1];

				$img_split2 = preg_split("/_/", $img_split[0]);

				$name = $img_name;

				if (count($img_split2) > 1) {
					$img_x = $img_split2[count($img_split2) - 1];
					$img_y = $img_split2[count($img_split2) - 2];

					if (is_numeric($img_x) AND is_numeric($img_y)) {
						$suffix = "_".$img_x."_".$img_y.".".$img_type;
						$name = preg_replace("/$suffix/", "", $img_name);
						$name = $name.".[a-zA-Z]{3}";
					}
				}

				$img_teaser = '';

				if (strlen($name) > 0) {
					$sql = "SELECT
													*
												FROM
													".$cfg["tab"]["upl"]." 
												WHERE
													filename REGEXP '$name' ";

					//echo "<pre>"; print_r($sql); echo "</pre>";

					$db->query($sql);

					if ($db->next_record()) {
						$filename = $db->f('filename');
						$dirname = $db->f('dirname');
					}

					$img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;

					$img_size = "CMS_VALUE[14]";

					$img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
				} // end if strlen

				if (strlen($img_teaser) > 0) {
					$teaser_img = '<img src="'.$img_teaser.'" class="teaser_img">';
				} else {
					$teaser_img = '';
				}

			} // end if noimg 		

			$headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
			$headline = str_replace($replace, " ", $headline);

			/*			$subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
						$subheadline = str_replace($replace, " ", $subheadline);*/

			$teaserheadline = /*$subheadline."&nbsp;-&nbsp;".*/
			$headline;
			$href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
			$teasertext = $article->getField('summary');
			$teasertitel = $article->getField('pagetitle');

			if (strlen(trim($teasertext)) == 0) {
				$teasertext = strip_tags($article->getContent('CMS_HTML', 1));
				$teasertext2 = $teasertext;
				$teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
				if ($teasertext!=$teasertext2) {
					$teasertext.= '...';
				}
				
			} // end if   			

			$teasertext = $teasertext."&nbsp;";

			$tpl->set('d', 'HEADLINE', $teaserheadline);
			$tpl->set('d', 'TEXT', $teasertext);
			$tpl->set('d', 'TITELDATUM', $teasertitel);
			$tpl->set('d', 'HREF', $href);
			$tpl->set('d', 'IMG', $teaser_img);
			$tpl->set('d', 'MORE', mi18n("Mehr ..."));

			$tpl->next();

		} // end for

		$tpl->generate('templates/'.$template);

	}
}
?>
Ziemlich weit oben findest du diese Zeile:

Code: Alles auswählen

$template = "newsliste_1.html";
da mußt du den Namen deines Templates teaser-standard.html einsetzen.

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Do 22. Mär 2007, 14:12

Riesen Danke!

Habe teaser-standard.html dort eingesetzt und output modul kopiert....jedoch sind die fehlermeldungen immer noch nicht weg. *ganz verwirrt schau*

Hmm muss ich vielleich doch die Cashe-Datei löschen oder irgendwelche Rechte vergeben`? Nur wie gesagt Cache-Objekt kann ich nicht öffnen, warum auch immer.

Vielleicht kannst Du mir doch noch einen Tipp geben oder hast Du noch eine Vermutung?

Ansonsten kann ich Dir mal per PM den Link zu der Webseite geben und Du siehst dann, wie es aussieht, falls Du magst.

wosch

Beitrag von wosch » Do 22. Mär 2007, 14:32

maum hat geschrieben:Vielleicht kannst Du mir doch noch einen Tipp geben oder hast Du noch eine Vermutung?

Ansonsten kann ich Dir mal per PM den Link zu der Webseite geben und Du siehst dann, wie es aussieht, falls Du magst.
Ja, du kannst mir mal die URL per PM mailen.

Irgendwie werde ich das Gefühl nicht los das du das hier nicht gelesen hast:
wosch hat geschrieben:
maum hat geschrieben:Besitzt aber 0kb.
Das würde aber wiederum auf Rechtevergabe im Ordner cache hinweisen.
Prüf mal mit einem FTP-Programm, z.B. WinSCP3, NICHT mit WS_FTP, die Rechte an dem Ordner.
Wenn der Cache nicht beschreibbar ist kann auch nichts dort abgelegt werden. Und die News-Liste legt dort die scalierten Vorschaubilder ab.
Außerdem sind in dem Thread 2 Fehler beschrieben.
Das mit dem GetImageSize-Fehler und eben dieser Fehler mit dem Cache.

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Do 22. Mär 2007, 17:19

Das habe ich tatsächlich nicht gesehen. Sorry!

Ich versuche das mal.

wosch

Beitrag von wosch » Do 22. Mär 2007, 17:44

Hi maum,

so, ich hab mir das gerade mal angesehen auf der Webseite.
Zu 98% liegt es an den Rechten des Ordners Cache.

Hier ein Shot wie es WinSCP3 anzeigt:
Bild
Du siehst das für den Ordner rwxrwxrwx anzeigt wird, das entspricht 777 bzw. 0777

Diese Rechte setzen kann man mit allen, glaube ich jedenfalls, FTP-Programmen, nur Anzeigen welche gerade gesetzt sind können nur wenige.

Wenn bei dir das FTP-Prog fest vorgegeben ist wird dir nichts weiter überbleiben als die Bedienungsanleitung des Prog. zu lesen.
RTFM nennt man das wohl 8)
Und es dann zu probieren.

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Do 22. Mär 2007, 17:54

Oh super Danke für den screenshot...ich werd mich mal durchwurschteln, jetzt weiß ich wenigstens wonach ich schauen muss....:D

Ich poste dann hier mal das Ergebnis.

Riesen Danke.

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Do 22. Mär 2007, 18:03

Bild

also ich wusste ich habe es schon mal gesehen...also die rechte/permissions sind angegeben :D ...problem nur ist...dass ich im root-verzeichnis keinen cache-ordner habe...wie kann das sein?..

unter cms, welcher nicht das verzeichnis für webseit-dateien sondern für den beispielmandanten ist...dort gibt es diese ominöse datei, die leider bei naja nicht angezeigt wird....über webDav wohl


EDIT: soo ich habe den cache-ordner nun gefunden...im pear-ordner...ist das üblich, dass der dort ist?....die rechte-angabe steht nicht auf 777....muss nun rausbekommen, wie man die dort ändert....das werd ich auch schon

Nochmals DANKE.

wosch

Beitrag von wosch » Do 22. Mär 2007, 18:29

Ordner cms/cache ist gemeint !!!

maum
Beiträge: 12
Registriert: Mi 21. Mär 2007, 15:35
Kontaktdaten:

Beitrag von maum » Do 22. Mär 2007, 18:31

OH... :( shit....na gut, dann habe ich noch das Problem, dass er bei naja nicht angezigt wird....grml...ich mag diesen FTP-Client nicht... na gut...dann werd ich mal zum rechenzentrum

Danke für Deinen Support!

Gesperrt