Modul :: ImageResizeHTML, Version 1.1.2

mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Re: Modul :: ImageResizeHTML, Version 1.1.2

Beitrag von mfweb »

micro2001 hat geschrieben:kann man das Modul irgendwo noch herunterladen. Unter editio.ch funktioniert der Download-Link nicht mehr.
Jep, -> Contenido Wiki: AtqImageResizeHTML

Grüße
mfweb

EDIT: Link repariert ...
Zuletzt geändert von mfweb am Sa 4. Apr 2009, 16:07, insgesamt 1-mal geändert.
Immer mal ein Blick wert: Contenido Wiki ... auch schreibender Zugriff ist erlaubt!
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: Modul :: ImageResizeHTML, Version 1.1.2

Beitrag von malsdgtac »

Ich bin immer wieder davon fasziniert, was hier für coole Lösungen angeboten werden - vielen Dank dafür.

Ich habe das Modul etwas angepasst. Zum einen hat sich die Datenbankabfrage für die Bildbeschreibung geändert (da hat sich wohl inzwischen die Datenbankstruktur geändert), weiters wollte ich die Bildbeschreibung mehrsprachig und zwei verschiedene Texte - einen in der Lightbox und einen in der Seite einbauen. Dazu sollte das Bild noch rechts bzw. links vom Text stehen. Hört sich kompliziert an, ich habs aber geschafft :-)

Na und weil ich's bekommen hab, bekommt ihr es auch ;-)

Zu ändern ist dafür nur in atelierq.imageResize.class.inc.php etwas. Einfach den Code

Code: Alles auswählen

	function getFilledMask($parts, $imageSourceHtml, $mask, $match) {

		global $cfgClient, $client;
		
		$returnValue = $mask;

		/*
		 * Alle übertragenen Platzhalter ersetzen.
		 */
		foreach ($parts as $key => $value) {
			$returnValue = str_replace('{' . $key . '}', $value, $returnValue);
		}
		
		/*
		 * Description aus der Datenbank auslesen und in der Maske ersetzen.
		 */
		$this->db->query("" .
				"SELECT description " .
				"FROM con_upl " .
				"WHERE CONCAT('{$cfgClient[$client]['upload']}', dirname, filename) = '{$imageSourceHtml}' " .
				"");
				
		if ($this->db->next_record()) {
			$returnValue = str_replace('{description}', urldecode($this->db->f('description')), $returnValue);
		} else {
			$returnValue = str_replace('{description}', '', $returnValue);
		}
		
		$returnValue = str_replace('{origSrc}', $imageSourceHtml, $returnValue);
		
		/*
		 * Alle im Image-Tag allenfalls sonst noch vorhandenen Tags auslesen und - sofern
		 * in der Maske vorhanden - ersetzen.
		 */
		for ($i = 0; $i < count($match[1]); $i++) {
			$returnValue = str_replace('{' . $match[1][$i] . '}', $match[2][$i], $returnValue);
		}
		
		/*
		 * Allenfalls immer noch vorhandene Platzhalter, die nicht haben ersetzt werden können, sind zu löschen.
		 */
		$returnValue = preg_replace('/{.*?}/', '', $returnValue);

		return $returnValue;
	}

}
mit dem folgenden ersetzen:

Code: Alles auswählen

	function getFilledMask($parts, $imageSourceHtml, $mask, $match) {

		global $cfgClient, $client, $lang;
		
		$returnValue = $mask;

		/*
		 * Alle übertragenen Platzhalter ersetzen.
		 */
		foreach ($parts as $key => $value) {
			$returnValue = str_replace('{' . $key . '}', $value, $returnValue);
		}
		
		/*
		 * Description aus der Datenbank auslesen und in der Maske ersetzen.
		 */
		 
		 
		 
		$bildsource = str_replace($cfgClient[$client]['path']['htmlpath']."upload/", "", $imageSourceHtml);
		$trenner = strrpos($bildsource, "/");
		$bild = substr($bildsource, $trenner+1);
		$bildordner = substr($bildsource, 0, $trenner+1);
		

		$this->db->query("SELECT idupl FROM smac_upl WHERE filename = '".$bild."' AND dirname = '".$bildordner."'");
		$this->db->next_record();
		$bildid = $this->db->f('idupl');
		
		$this->db->query("SELECT keywords, internal_notice FROM smac_upl_meta WHERE idupl = '".$bildid."' AND idlang = '".$lang."'");
		
		if ($this->db->next_record()) {
			$returnValue = str_replace('{description}', htmlentities(urldecode($this->db->f('keywords'))), $returnValue);
			$kurzbeschreibung = urldecode($this->db->f('internal_notice'));
		} else {
			$returnValue = str_replace('{description}', '', $returnValue);
		}

		
		$returnValue = str_replace('{origSrc}', $imageSourceHtml, $returnValue);
		
		/*
		 * Alle im Image-Tag allenfalls sonst noch vorhandenen Tags auslesen und - sofern
		 * in der Maske vorhanden - ersetzen.
		 */
		for ($i = 0; $i < count($match[1]); $i++) {
			$returnValue = str_replace('{' . $match[1][$i] . '}', $match[2][$i], $returnValue);
		}
		
		$returnValue = "<div class='inlinebild ".$parts['class']."' style='width:".$parts['width']."px;'>".$returnValue."<div class='trenner'></div><div class='beschreibung'>".$kurzbeschreibung."</div></div>";
		
		/*
		 * Allenfalls immer noch vorhandene Platzhalter, die nicht haben ersetzt werden können, sind zu löschen.
		 */
		$returnValue = preg_replace('/{.*?}/', '', $returnValue);
		return $returnValue;
	}
}
Um die Bilder dann rechts bzw. links zu platzieren verwende ich folgendes CSS

Code: Alles auswählen

.inlinebild.links {
	float:left;
	padding: 0 1em 1em 0;
}

.inlinebild.rechts {
	float:right;
	padding: 0 0 1em 1em;
}

.beschreibung {
	float:left;
	color:#939393;
	font-size:80%;
	line-height:1.1em;
}
Ach ja - und der Beschreibungstext für die Lightbox wird in Bildeigenschaften unter "Keywords", die Bildbeschreibung für die Seite unter "Interne Notiz" angegeben.

Vielleicht kannst ja jemand brauchen.
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Re: Modul :: ImageResizeHTML, Version 1.1.2

Beitrag von mfweb »

smac hat geschrieben:Ich habe das Modul etwas angepasst. Zum einen hat sich die Datenbankabfrage für die Bildbeschreibung geändert (da hat sich wohl inzwischen die Datenbankstruktur geändert), weiters wollte ich die Bildbeschreibung mehrsprachig und zwei verschiedene Texte - einen in der Lightbox und einen in der Seite einbauen.
Das wäre doch etwas, was du im Wiki für die Nachwelt noch festhalten könntest, etwa unter "Ergänzung" oder Ähnliches auf der Seite des Originalmoduls. ;-)

Grüße
mfweb
Immer mal ein Blick wert: Contenido Wiki ... auch schreibender Zugriff ist erlaubt!
Gesperrt