neues modul :: picture

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

sorry, das war ein fehler meinerseits. die konfiguration findet nur während der definition statt. hier deshalb das angepasste modul. ich bin nicht dazu gekommen, alles zu überprüfen. das muss ich leider euch überlassen.

so wie das ganze jetzt ist, können die module - bis auf die bildaufrufe - identisch sein. also mit der klassendefinition. diese wird einfach nur dann ausgeführt, wenn das noch nicht geschehen ist.

hier also der neue output-code:

Code: Alles auswählen

<?php
/**
  * $Revision: 1.1 $
  * $Source: D:/cvs/cvsrepo/test/ContenidoModule462/picture/output.php,v $
  * $Date: 2005/11/29 19:05:46 $
  */

/**
 * picture
 * @author Andreas Kummer
 * @copyright Copyright &copy; 2005, w3concepts AG
 */

if (!class_exists('picture')) {
	
	class picture {
	
		/**
		 * Klassenkonstruktor.
		 * @param String  Absoluter Pfad zum Bild.
		 */
		function picture($bildpfad, $bildbreite, $bildhoehe, $bildzielpfad) {
	
			global $cfgClient, $client;
			
			if (empty($bildpfad)) return false;
			
			$this->bildpfad = $bildpfad;
			$this->link = $link;
	
			/*
			 * Initialwerte fest legen
			 */
			$this->setIniValues($bildbreite, $bildhoehe, $bildzielpfad);
			
			/*
			 * Datenbankverbind initialisieren
			 */
			$this->db = new DB_contenido();
	
			/*
			 * Bildpfad und Dateiname ermitteln
			 */
			$dirname = dirname($bildpfad)."/";
			$dirname = str_replace ($cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'],'',$dirname);
			$filename = basename($bildpfad);
			
			/*
			 * Bildpfad setzen
			 */
			$this->path = $this->createImage($dirname,$filename);
			
			/*
			 * Popup-Titel setzen
			 */
			$this->setPopupTitle();
		}
		
		function setIniValues($bildbreite, $bildhoehe, $bildzielpfad) {
	
			global $cfgClient, $client;
			
			// $bildzielpfad = "CMS_VALUE[0]";
			$this->bildzielpfad['frontend'] = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'].$bildzielpfad;
			$this->bildzielpfad['backend'] = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$bildzielpfad;
	
			// $this->bildhoehe = "CMS_VALUE[1]";
			// $this->bildbreite = "CMS_VALUE[2]";
			$this->bildhoehe = $bildhoehe;
			$this->bildbreite = $bildbreite;
			
			if (empty($this->bildhoehe)) $this->bildhoehe = 100;
			if (empty($this->bildbreite)) $this->bildbreite = 100;
		}
		
		function setPopupTitle() {
			
			global $cfg, $idart, $lang;
			
			$this->db->query("SELECT pagetitle FROM {$cfg['tab']['art_lang']} WHERE idart = $idart AND idlang = $lang");
					
			$this->db->next_record();
			
			$this->title = $this->db->f('pagetitle');
		}
	
		function createImage($dirname, $filename) {
	
			global $cfgClient, $client;
	
			$src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
			
			$this->srchoehe = $src_image_size[1];
			$this->srcbreite = $src_image_size[0];
	
			if ($src_image_size[0]/$this->bildbreite < $src_image_size[1]/$this->bildhoehe) {
				$resizeFactor = $src_image_size[1]/$this->bildhoehe;
			} else {
				$resizeFactor = $src_image_size[0]/$this->bildbreite;
			}
	
			$this->bildhoehe = round($src_image_size[1]/$resizeFactor);
			$this->bildbreite = round($src_image_size[0]/$resizeFactor);
			
			$bilddateiname = "{$this->bildbreite}_{$this->bildhoehe}_$filename.jpg";
	
	         if (!file_exists("{$this->bildzielpfad['backend']}$bilddateiname")) {
	         	
	         	$dst_im = imagecreatetruecolor($this->bildbreite,$this->bildhoehe);
	
				if ($src_image_size[2] == 1) {
					$src_im = imagecreatefromGIF($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
				} elseif ($src_image_size[2] == 2) {
					$src_im = ImageCreateFromJPEG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
				} elseif ($src_image_size[2] == 3) {
					$src_im = ImageCreateFromPNG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
				} else {
					$src_im = imagecreatefromgd($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
				}
	                    
				imagecopyresampled ($dst_im,$src_im,0,0,0,0,$this->bildbreite,$this->bildhoehe,$src_image_size[0],$src_image_size[1]);
				imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100);
	         }
	
			return $this->bildzielpfad['frontend'].$bilddateiname;
		}
		
		function outputPicture($link,$target,$imgDescr = null, $linkDescr = null) {
			
			global $edit;
			
			if ($edit) {
				$this->outputPictureEdit($link, $target, $imgDescr, $linkDescr);
				return false;
			}
			
			if (empty($link) || empty($this->bildpfad)) return false;
			
			$img = "<img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\">";
			$breite = $this->bildbreite;
	
			if ($link != "http://") {
				$img = sprintf('<a href="%s" target="%s">%s</a>',$link, $target, $img);
			} elseif ($this->bildpfad != '') {
				$img = "<a href=\"javascript:popup({$this->srcbreite},{$this->srchoehe},'{$this->bildpfad}&title={$this->title}');\"><img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\" /></a>";
			}
			
			if (empty($imgDescr)) {
				echo '<div style="margin-bottom:10px;"><div style="width:'.$breite.'px;border:1px solid #000; padding:1px;">'.$img.'</div></div>';
			} else {
				echo '<div style="margin-bottom:10px;"><div style="width:'.$breite.'px;border:1px solid #000; padding:1px;">'.$img.'</div><div class="imgDescr">'.$imgDescr.'</div></div>';
			}
		}
		
		function outputPictureEdit($link, $target, $imgDescr, $linkDescr) {
			
			if (!empty($this->path)) {
				echo "<img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\">";
			}
			echo "<br />";
			echo $imgDescr;
			echo "<br />";
			echo $linkDescr;
			echo "<br />";
			
		}
	}
}

if (!$edit) {
	echo '<script type="text/javascript" src="js/pictureResized.js"></script>'."\n";
}

$bild1 = new picture("CMS_IMG[2]", "CMS_VALUE[2]", "CMS_VALUE[1]", "CMS_VALUE[0]"); // initialisierung
$bild1->outputPicture("CMS_LINK[2]","CMS_LINKTARGET[2]","CMS_IMGDESCR[2]","CMS_LINKDESCR[2]");

$bild2 = new picture("CMS_IMG[3]", "CMS_VALUE[2]", "CMS_VALUE[1]", "CMS_VALUE[0]"); // initialisierung
$bild2->outputPicture("CMS_LINK[3]","CMS_LINKTARGET[3]","CMS_IMGDESCR[3]","CMS_LINKDESCR[3]");

$bild3 = new picture("CMS_IMG[4]", "CMS_VALUE[2]", "CMS_VALUE[1]", "CMS_VALUE[0]"); // initialisierung
$bild3->outputPicture("CMS_LINK[4]","CMS_LINKTARGET[4]","CMS_IMGDESCR[4]","CMS_LINKDESCR[4]");	

$bild4 = new picture("CMS_IMG[5]", "CMS_VALUE[2]", "CMS_VALUE[1]", "CMS_VALUE[0]"); // initialisierung
$bild4->outputPicture("CMS_LINK[5]","CMS_LINKTARGET[5]","CMS_IMGDESCR[5]","CMS_LINKDESCR[5]");	
?>
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

kummer hat geschrieben:deshalb das angepasste modul. ich bin nicht dazu gekommen, alles zu überprüfen. das muss ich leider euch überlassen.
hallo andi

sry für die verspätete meldung, und merci vielmal für den prompten response ;)

ich habe das modul mittlerweile in 2 verschiedenen templates einmal 2x einmal 3x eingesetzt und bisher keine fehler, funktioniert
SUUUUUUUUUUUUUUUUUUUUUUPER

danke
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

hallo community
hallo andi

eigentlich bin ich mir fast sicher es liegt mal wieder am IE und eventuell meinen lokalen einstellungen, sicher bin ich mir aber nicht.

das popup beim click auf's image funzt im FF super im IE wird das popup entsprechend der bildgrösse geöffnet aber dann gibt es nur:
The requested document was not found on this server.
blank page :(

läuft bei eich der popup im IE einwandfrei?

bitte um hilfe, seh wahrscheinlich den wald vor bäumen nicht mehr :(
merci und
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

kk nachtrag: habe mal die standard oscommerce popup funktion im IE gechecked, funzt!

dann liegst also doch am modul.

habe mir also sowohl den modulcode als auch die pictureResized.js und .php angschaut, basic, und ich kann beim besten willen nicht nachvollziehen warum der IE wieder kotzt

wenn ich die linkadresse im IE kopiere (rightclick Verküpfung kopieren) dann scheint mir diese auch korrekt, beispiel:

Code: Alles auswählen

javascript:popup(600,500,'http://sub.domain.de/cms/upload/devStuff/1.jpg&title=');
hab auch schon versucht den title zu entfernen, same same

rufe ich die url direkt auf, also

Code: Alles auswählen

http://sub.domain.de/cms/upload/devStuff/1.jpg
dann wird das image ohne probs gefunden

any ideas?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

EDIT :

war ein schmarrn überlege wie ich es hinbekommen habe sorry
greets
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

rezeptionist hat geschrieben:... überlege wie ich es hinbekommen habe sorry
das stimmt mich doch freudig, darf cih deinen worten entnehmen du hattest das selbe problem und ... mitllerweile läufts?!

ich liebe dieses board !!!
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

ja habe aber eben bei dem kunden nachgeschaut und hm nicht auffälliges gesehen ich versuchs mal local
greets
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

So also local gehts habe den output von dieser Seite hiet und den Inpu der ersten seite des Threads genommen genauso die

pictureResized.php
pictureResized.js

in mandantenverzeichniss js ordner und auf den ersten versuch ging es sofort

leere mal con_code und browsercache weisst ja IE unser Freund

EDIT

Überprüfe nochmal alle Pfade vom Modul in der Konfiguration ALLE
Zuletzt geändert von rezeptionist am Di 7. Feb 2006, 01:29, insgesamt 1-mal geändert.
greets
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

rezeptionist hat geschrieben:ja habe aber eben bei dem kunden nachgeschaut und hm nicht auffälliges gesehen ich versuchs mal local
keine eile ich muss eh bald den zug nach 'beddington' station nehmen, flimmert schon wieder alles hier :?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

hallo rezeptionist
hallo andi
servus community

hier im board habe ich nochmal gesucht und nix gefunden, dass mein problem behebt :( auch im web finde ich keine plausible erklärung warum der IE zuckt :(

please help
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

Hallo Guido

hm also habe es zum zweite mal gemacht

das ist mein link

Code: Alles auswählen

javascript:;popup(640,480,'http://localhost/cms/upload/bildergalerie/P1030817.jpg&title=Demo-Seite');
und habe sogar alle konfigurationen rausgeworfen außer die am eigentlichen Artikel aber es geht

hm hast du meinen letzten Post ganz gelesen habe ihn noch ergänzt
greets
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

sorry hatte deinen nachtrag nicht gesehen


kannst du vieleicht mal gucken/testen ob auf meiner entwicklungsumgebung du bei klick auf das grosse bild ein entsprechndes rsultat erhälst link

wenn man über das bild hovered sthet in der browser statuszeile der korrekte pfad :(

und wie gesagt den anhang '&title=' habe ich auch scho probiert zu entfernen

also werde ich jetzt alles nochmal auf ner vanilla4.6.4 testen

meisstens liegts ja doch an dem kerl vor dem bildschirm ;)
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

also bei mir gehts online laut deinem link auch nicht habe beim vergleich mit einem projekt von mir festgestellt das der Titel bei mir da ist und bei dir nicht

hm jetzt ma ganz blöd gib mal bei deinen Artikel eigenschaften in denen das bild liegt Seitentitel usw an
greets
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

Ich habe dir per e-mail mal das modul geschickt wie es bei mir funktioniert (ohne php und js datei)

*ding* sie haben post :wink:
greets
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

danke dir , aber irgendwie habe ich die im spamordner übershen und gekilled :S

kannste bitte nochmal senden

edit:

got it thx ;)

werde dann mal testen und feedback geben
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Gesperrt