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.