Christian Lechner

SmoothGallery und Umlaute …

auf Facebook teilen auf Tumblr teilen auf StumbleUpon teilen

Da ich gerade an einer Typo3 Seite arbeite (nicht diese Seite hier ;) ) und ich dazu eine Galerie benötige, habe ich einige Extensions durchprobiert. Meine Wahl ist schlussendlich auf die SmoothGallery gefallen, da sie folgendes bietet: Thumbnail-Erstellung, Slideshow-Funktion, Lightbox, …

Doch da die Dateinamen der Bilder Umlaute enthalten, tut sich der Apache-Server etwas schwer (böse Umlaute! :D ).
Um ihm auf die Sprünge zu helfen setzen wir im Ordner der Galerie, standardmäßig rgsmoothgallery im Unterordner pi1 in der Datei class.tx_rgsmoothgallery_pi1.php die folgende Funktion ein:

// Ergänzung: Umlaute!
function umlaute($path)
{
$umlaute = array(
"Ä" => "%c4",
"ä" => "%e4",
"Ö" => "%d6",
"ö" => "%f6",
"Ü" => "%dc",
"ü" => "%fc",
"ß" => "%df"
);
foreach ($umlaute as $umlaut => $ok)
{
$path = str_replace($umlaut, $ok, $path);
}
return $path;
}

Diese Funktion muss nun vier mal aufgerufen werden:

1. für die Lightbox: $lightbox = umlaute($lightbox);

$lightbox =  ($lightbox=='#' || $lightbox=='' || $this->config['lightbox']!=1) ? 'javascript:void(0)' :  $this->cObj->IMG_RESOURCE($imgTSConfigLightbox);
$lightbox = str_replace(' ', '%20', $lightbox); // search for empty chars, thx maxhb
$lightbox = umlaute($lightbox);
$lightBoxImage='';

2. für die Thumbnails: $thumbImage = ‘<img src=”‘.umlaute($this-/>cObj->IMG_RESOURCE($imgTSConfigThumb)).’”

if ($thumb) {
$imgTSConfigThumb = $this->conf['thumb.'];
$imgTSConfigThumb['file'] = $path;
$thumbImage = '';
}

3. und 4. für das große Bild, einmal wenn’s nur ein einziges Bild gibt und ein zweites Mal falls es doch mehr Bilder gibt ;) : $bigImage = umlaute($bigImage);

// if just 1 image should be returned
    if ($limitImages==1) {
	$bigImage = umlaute($bigImage);
    	return '';
    }
    $bigImage = umlaute($bigImage);
    // build the image element
    $singleImage .= '
'.$text. $lightBoxImage.' '.$thumbImage.'
';


Kommentar verfassen