Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 12. Mai 2015 16:32

flashpiet
hat von CMS/ms gehört
Registriert: 12. Mai 2015
Beiträge: 2

Cataloger Bildpfade erzeugen 302-Weiterleitung

Hallo zusammen,

ich nutze für ein Kundenprojekt CMS Made simple und das Cataloger-Modul.
Mein Ausgabetemplate für den Cataloger sieht so aus:

[== Deutsch ==]
{section name=numloop loop=$items}
<div class="citiesthumbs"><a title="High Class {$items[numloop].title}" href="{$items[numloop].link}"><img src="{$items[numloop].image}" title="City Guide {$items[numloop].title}" alt="City Guide {$items[numloop].title}" width="192" height="144" />{$items[numloop].bildunterschrift}</a></div>
{/section}

Das Problem ist, dass im Quellcode nicht der direkte Pfad zum Bild steht, sondern sowas wie
http://www.meine-website.com/modules/Cataloger/Cataloger.Image.php?i=cityguide-amsterdam_s_1_283_0.jpg&amp;ac=90959"

Google wertet das aber als 302-Weiterleitung und das ist nicht gut fürs Ranking.
Wie kann ich den Pfad direkt angeben lassen? Über eine Zwischenvariable die ich dann an das src Attribut von img übergebe?

Bitte Euch um Hilfestellung.

LG
Peter

Offline

#2 12. Mai 2015 18:31

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Die Sache ist die, der Cataloger versucht automatisch verkleinerte Bilder zu generieren und anzuzeigen. Dazu ruft er das Bild nicht direkt auf, sondern ein php-Script.

Es gibt leider keine Möglichkeit, direkt an das skalierte Bild heranzukommen, ohne den PHP-Code des Moduls zu ändern. Denn im Template weiß er Cataloger noch nicht, ob das skalierte Bild existiert. Das prüft er erst, wenn das Bild aufgerufen wird. Daher gibt es im Template auch noch keine URL zum skalierten Bild sondern stattdessen die URL zum php-Script.

Es gibt im Template zwar die URL zum Original-Bild (anstelle von {$items[numloop].image} -> {$items[numloop].image_src} verwenden), wenn Du das aber anstelle des skalierten Bildes verwendest, dann hast Du die Bilder immer in Original-Größe, was Dir Google evtl. auch wieder um die Ohren hauen wird.

Der Cataloger ist mittlerweile auch etwas in die Jahre gekommen. Ich habe Zweifel, dass der Entwickler noch aktiv daran arbeitet. Die letzte Version ist von 2012 und die letzte Änderung im SVN von 2013. Kann Dir also nicht sagen inwiefern ein Feature-Request etwas bringt.

Was man ändern müsste, wäre in der Datei "Cataloger.Image.php" die Umleitung auf das skalierte Bild. Stattdessen kann man das Bild auch direkt selber ausgeben. Ändere dazu in der Datei "Cataloger.Image.php" die Zeilen 56 - 76:

	$dest = "Location: ".$config['uploads_url'].
		$catmod->getAssetPath('i').'/'.$spec.'.jpg';
	if ($newImage || $anticache)
		{
		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
		header("Cache-Control: no-cache, cachehack=".time());
		header("Cache-Control: no-store, must-revalidate");
		header("Cache-Control: post-check=-1, pre-check=-1", false);
		$dest .= '?ac=';
		for ($i=0;$i<5;$i++)
			{
			$dest .= rand(0,9);
			}
		}
	if ($debug) error_log($dest);
	header($dest);
	return;

in fogendes:

	# Mod by NaN: output the image directly -> avoid 302 redirects
	
	#$dest = "Location: ".$config['uploads_url'].
	#	$catmod->getAssetPath('i').'/'.$spec.'.jpg';
	#if ($newImage || $anticache)
	#	{
	#	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	#	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
	#	header("Cache-Control: no-cache, cachehack=".time());
	#	header("Cache-Control: no-store, must-revalidate");
	#	header("Cache-Control: post-check=-1, pre-check=-1", false);
	#	$dest .= '?ac=';
	#	for ($i=0;$i<5;$i++)
	#		{
	#		$dest .= rand(0,9);
	#		}
	#	}
	#if ($debug) error_log($dest);
	#header($dest);
	#return;
	
	$file = $config['uploads_path'] . $catmod->getAssetPath('i') . '/' . $spec.'.jpg';
	header_remove();
	while(ob_end_clean());
	header('Content-Type: image/jpeg');
	header('Content-Disposition: inline; filename=' . basename($file));
	header('Content-Length: ' . $sized['size']);
	readfile($config['uploads_path'].$catmod->getAssetPath('i').'/'.$spec.'.jpg');
	exit;
	#---

Ich hab's jetzt allerdings nicht getestet.
Wäre daher auf Dein Feedback angewiesen.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 12. Mai 2015 20:38

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Das geht mit Cataloger auch durchaus anders.
Ich betreue eine Website mit 600 Artikeln und je mind. 8 weiteren Fotos. Da war mir damals schnell klar, dass ich es anders machen muss.

Ich setze dort SuperSizer ein, der die Bilder verkleinert und zwischenspeichert.

Z. B. in einer Detailtemplate auf das erste Bild zugreifen:

<img src="{$image_1_url}" alt="{$title}" title="{$title}" />

Oder alle Bilder die zum Artikel gehören in einer Schleife mit SuperSizer ausgeben:

<ul>
{section name=ind loop=$image_url_array}
<li>
 {assign var="moreimg" value=$src_image_url_array[ind]|replace:"$root_url":""}
 <a href="{$src_image_url_array[ind]}">
  <img src="{supersizer path=$moreimg width='80' height='80' crop='true' url=1}" width="80" height="80" title="{$title}" alt="{$title}" />
 </a>
</li>
{/section}
</ul>

Siehe hier: http://bit.ly/1zYxog6

Der Code ist schon 7 Jahre alt und sollte auch mal modernisiert werden. Kann man heute besser machen.
Aber es funktioniert! Und Google meckert nicht.

Offline

#4 12. Mai 2015 21:22

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

ToolBox oder CGSmartImage können dafür auch eingesetzt werden. Supersizer ist ein hässliches Plugin welches soweit mir bekannt mit der 1.11er nicht mehr wirklich funktioniert.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#5 14. Mai 2015 13:11

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Wenn ich mich recht erinnere gab es 2010 nicht wirklich eine Alternative zu Supersizer, aber heute fange ich an immer mehr mit tbImage zu machen.
CGSmartImage ist mir durch den Autor zu risikoreich.

Nur aus Interesse: Warum ist SuperSizer ein hässliches Plugin?

Offline

#6 14. Mai 2015 13:17

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Hast du mal den Code angeschaut? Die Verschachteltung in der programmierten Klasse ist dermassen intensiv, dass ich selber Anpassungen nicht hingebracht habe. Wenn ich mich richtig erinnere, reagierte Supersizer nicht so wie ich es wünschte, wenn kein Bild gefunden wurde. Dies anzupassen war sehr aufwändig, da der Code schlecht lesbar umgesetzt wurde.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#7 19. Mai 2015 15:46

flashpiet
hat von CMS/ms gehört
Registriert: 12. Mai 2015
Beiträge: 2

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

hallo Jungs,

vielen Dank für Euer tolles Feedback. Ich war leider längere Zeit außer Gefecht, daher jetzt erst die späte Antwort wink

Ich werde Eure Vorschläge austesten und Euch sagen was letztendlich funktioniert hat.

LG
Peter

Offline

#8 20. Mai 2015 23:30

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

NaN schrieb:

Der Cataloger ist mittlerweile auch etwas in die Jahre gekommen. Ich habe Zweifel, dass der Entwickler noch aktiv daran arbeitet. Die letzte Version ist von 2012 und die letzte Änderung im SVN von 2013. Kann Dir also nicht sagen inwiefern ein Feature-Request etwas bringt.

http://forum.cmsmadesimple.org/viewtopi … =7&t=71852

Servus,
Alex

Offline

#9 20. Mai 2015 23:38

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Klenkes schrieb:

Wenn ich mich recht erinnere gab es 2010 nicht wirklich eine Alternative zu Supersizer, aber heute fange ich an immer mehr mit tbImage zu machen.
CGSmartImage ist mir durch den Autor zu risikoreich.

Du würdest ja eh keinen support für cgsmartimage bekommen ;-)
(wie wir alle hier)

Toolbox - da weiss man was man hat, und der Entwickler ist ein normaler Mensch (glaubich ;-)) mit dem man reden kann ...

Nochmals DANKE an Nockenfell für die Toolbox - mittlerweile unverzichtbar.

Servus,
Alex

Offline

#10 20. Mai 2015 04:52

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

faglork schrieb:

Toolbox - da weiss man was man hat, und der Entwickler ist ein normaler Mensch (glaubich ;-)) mit dem man reden kann ...

Nochmals DANKE an Nockenfell für die Toolbox - mittlerweile unverzichtbar.

Nee ich bin ein Roboter und ein Arschloch devil

Danke für die Blumen ops


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#11 20. Mai 2015 06:29

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Optimal wäre, wenn man die Toolbox "irgendwie" auf CGSimpleSmarty (also Module, bei denen die gleichen Funktionalitäten vorhanden sind) mappen könnte - also, dem System wird vorgegaukelt, CGSimpleSmarty sei vorhanden (manche Module setzen das ja für den Betrieb voraus), aber tatsächlich/unter der Haube werden die tb Funktionen angesprungen wink.

Pff, coole Modul-Idee ... ein CGKiller, ähmm ... CGWrapper  devil

Offline

#12 20. Mai 2015 07:58

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Dieses "irgendwie" sieht am Ende so aus, dass man ein Modul mit Namen CGSimpleSmarty schreiben müsste, was dann aber die Toolbox aufruft (oder einfach die ToolBox erweitert). Ich weiß nicht, ob man sowas öffentlich vertreiben darf. Wegen Copyright und so.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#13 20. Mai 2015 08:45

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: Cataloger Bildpfade erzeugen 302-Weiterleitung

Stelle ich mir nicht ganz einfach vor. Bei Plugins funktioniert das, da diese registriert werden können. Bei Modulen müsste hier der Modul-Wrapper überschrieben werden. Theoretisch mit einer PE-Edition machbar. Wichtig ist dann allerdings, dass die entsprechenden Funktionen jeweils Zeitnah nachgebaut werden.

Ich würde dann eher für eine PE-Edition mit integrierter ToolBox plädieren, so das einige Funktionen zum Systemstandard gehören.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline