Ich habe folgendes Problem: Für einen Kunden habe ich Contenido 4.8.12 eingerichtet und die Standard-Bildgalerie verwendet. Bilder & Thumbs werden auch wie gewünscht angezeigt. Soweit so gut! Allerdings möchte ich gern unter dem Bild sowohl den MEDIENNAME als auch die DESCRIPTION ausgeben. Leider kommt aber über dem Bild nur
{DESCRIPTION}
{MEDIANAME}
Unter dem Bild wird zwar die Description angezeigt, aber der Medienname nicht. Kurios, oder?
Hat jemand eine Ahnung, woran das liegen könnte?
Und hier der Code vom Modul Output:
Code: Alles auswählen
<?php
/***********************************************
* Bildergalerie Output mit Vor/Zurück
*
* Author : Timo A. Hummel
* Copyright : four for business AG
* Created : 30-09-2005
* modified : 19.02.2006 Klövekorn (vor und zurück in der Bilderansicht)
************************************************/
cInclude("includes", "functions.api.images.php");
/* Gallery variables */
$bRecursive = false;
$sPath = "CMS_VALUE[5]";
if ($sPath=='') {
$sPath = $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "bildergalerie/";
} else {
$sPath = $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "CMS_VALUE[5]";
}
/*
$iRows = "CMS_VALUE[3]";
if ($iRows == 0)
{$iRows = 2;}
$iColumns = "CMS_VALUE[2]";
if ($iColumns == 0) {$iColumns = 2;}
*/
/*
if (isset($start)) {$iCurrentPage = $start;
} else {
$iCurrentPage = 1;
}
*/
$iWidth = "CMS_VALUE[0]";
$iHeight = "CMS_VALUE[1]";
if ($iWidth == 0) {$iWidth = 300;}
if ($iHeight == 0) { $iHeight = 300;}
$iDetailWidth = "CMS_VALUE[4]";
if ($iDetailWidth == 0) {$iDetailWidth = 300;}
$aValidExtensions = array("jpg", "jpeg", "gif", "png");
$iImagesPerPage = $iRows * $iColumns;
//aus dem ersten REQUEST-Teil verschobener Code:
$aGalleryFiles = scanDirectory($sPath, $bRecursive);
if (is_array($aGalleryFiles))
{// Filter out non-images:
foreach ($aGalleryFiles as $key => $aGalleryFile)
{
$sExtension = strtolower(getFileExtension($aGalleryFile));
if (!in_array($sExtension, $aValidExtensions))
{
unset($aGalleryFiles[$key]);
}
} //ende foreach
/* Calculate effective variables */
$iFileCount = count($aGalleryFiles); //die anzahl der bilder
// $iPages = ceil($iFileCount / $iImagesPerPage); //liefert die Ganzzahl, die gleich oder größer Number ist
$aImagesToDisplay = array_slice($aGalleryFiles, ($iCurrentPage - 1) * $iFileCount,$iFileCount);//$iImagesPerPage, $iImagesPerPage);
$oImageTpl = new Template;
$oGalleryTpl = new Template;
$oEmptyImageTpl = new Template;
$aRenderedImages = array();
$iRow = 0;
$iImagesRendered = 0;
$i = 0;
}
//ende verschobener Code
/* Read all gallery files */
foreach ($aImagesToDisplay as $sImageToDisplay)
{// Do Scaling
$sScaledImage = cApiImgScale($sImageToDisplay, $iWidth, $iHeight);
// setzt den Link zusammen um auf die Großansicht zu gehen: "front_content.php/.../view=...
//$link = 'front_content.php?idcat='.$idcatart.'&start='.$_REQUEST['start'].'&view='.urlencode(str_replace($cfgClient[$client]['path']['frontend'],'',$sImageToDisplay));
$link = 'front_content.php?idcat='.$idcatart.'&view='.urlencode(str_replace($cfgClient[$client]['path']['frontend'],'',$sImageToDisplay));
$media_name = ig_getMedienName($sImageToDisplay);
//macht den textlink:
$description = ig_getImageDescription($sImageToDisplay);
if ($description=='')
{
$description = ' ';
$array_des_pfades = explode("/",$sImageToDisplay);
$bildname_pos = count($array_des_pfades)-1;
}
//$download_link = str_replace($cfgClient[$client]['path']['frontend'],$cfgClient[$client]['path']['htmlpath'],$sImageToDisplay);
$download_size = ig_GetReadableFileSize($sImageToDisplay);
$oImageTpl->reset();
$oImageTpl->set("s", "FILE", $sScaledImage);
$oImageTpl->set("s", "WIDTH", $iWidth);
$oImageTpl->set("s", "HEIGHT", $iHeight);
$oImageTpl->set("s", "LINK", $link);
$oImageTpl->set("s", "DESCRIPTION", $description);
//$oImageTpl->set("s", "MEDIANAME", $media_name);
$oImageTpl->set("s", "MEDIANAME", $media_name);
$oImageTpl->set("s", "DOWNLOAD_LINK", $download_link);
$oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);
/*$oImageTpl->set("s", "DOWNLOAD_CAPTION", mi18n("runter laden"));*/
$oImageTpl->set("s", "PREVIEW_CAPTION", mi18n("$array_des_pfades[$bildname_pos]"));
$aRenderedImages[] = $oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_image.html", true, false); //Rendered Image ist das Thumbnailbild selbst
$iImagesRendered++;
if ($iImagesRendered == $iFileCount)//$iColumns)
{
$oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages));
$oGalleryTpl->next();
$iImagesRendered = 0;
$aRenderedImages = array();
}
} //Ende foreach "scaling"
// ohne diesen Block keine Thumbs:
if (count($aRenderedImages) < $iColumns && count($aRenderedImages) > 0)
{
$iEmptyCells = $iColumns - count($aRenderedImages);
$oEmptyImageTpl->set("s", "WIDTH", $iWidth);
$oEmptyImageTpl->set("s", "HEIGHT", $iHeight);
$sEmptyCells = str_repeat($oEmptyImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_empty.html", true, false),$iEmptyCells);
$oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages) . $sEmptyCells);
$oGalleryTpl->next();
}
$aLinks = array();
/*
if ($iCurrentPage > 1)
{
$oPreviousTpl = new Template;
$oPreviousTpl->set("s", "LINK", $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&start=%s", $idcatart, $iCurrentPage - 1));
$oPreviousTpl->set("s", "TITLE", mi18n("Zurück"));
$aLinks[] = $oPreviousTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_link.html", true, false);
}
if ($iCurrentPage < $iPages)
{
$oNextTpl = new Template;
$oNextTpl->set("s", "LINK", $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&start=%s", $idcatart, $iCurrentPage + 1));
$oNextTpl->set("s", "TITLE", mi18n("Vor"));
$aLinks[] = $oNextTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_link.html", true, false);
}
*/
//$oGalleryTpl->set("s", "NAVIGATION", implode("", $aLinks));
$oGalleryTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery.html", false, false);
// }
//generierung des Detailbildes
// vorheriges/nächstes Bild bestimmen
//das $_REQUEST analysieren:
$request_view_uebergabe = $_REQUEST['view'];
$requestpfad = explode('/', $request_view_uebergabe);
$letztes_element_request = count($requestpfad)-1;
$request_bild = $requestpfad[$letztes_element_request];
foreach ($aImagesToDisplay as $arrayelement)
{
//ins view-Format konvertieren:
$pfadarray = explode('/', $arrayelement);
$letztes_element = count($pfadarray)-1;
$bild = $pfadarray[$letztes_element];
$allebilder[] = $bild;
}
//Diese Funktion gibt den Index des aktuellen Bildes aus:
function bildfinder($array)
{
global $request_bild;
while(list($k,$val) = each($array))
{
if (preg_match("/$request_bild/",$val)) return $k;
}
return FALSE;
}
//Anwendung der Funktion bildfinder:
$k = bildfinder($allebilder);
$vorbildindex = $k-1;
$nachbildindex = $k+1;
if ($nachbildindex == $iFileCount) {$nachbildindex = 0;}
if ($vorbildindex < 0) {$vorbildindex = $iFileCount-1;}
$vorbild = "upload/CMS_VALUE[5]/".$allebilder[$vorbildindex];
$nachbild = "upload/CMS_VALUE[5]/".$allebilder[$nachbildindex];
$vorbild = 'front_content.php?idcatart='.$idcatart.'&start='.$_REQUEST['start'].'&view='.urlencode(str_replace($cfgClient[$client]['path']['frontend'],'',$vorbild));
$nachbild = 'front_content.php?idcatart='.$idcatart.'&start='.$_REQUEST['start'].'&view='.urlencode(str_replace($cfgClient[$client]['path']['frontend'],'',$nachbild));
//ende vorher,nachher
$sImageToDisplay = $cfgClient[$client]['path']['frontend'].$_REQUEST['view']; //der pfad beginnt bei "kunden4c"
$sScaledImage = cApiImgScale($sImageToDisplay, $iDetailWidth, 1000);
#$description = $bild;//ig_getImageDescription($sImageToDisplay);
$description = ig_getImageDescription($sImageToDisplay);
if ($description=='')
{
$description = ' ';
}
$download_link = str_replace($cfgClient[$client]['path']['frontend'],$cfgClient[$client]['path']['htmlpath'],$sImageToDisplay);
$download_size = ig_GetReadableFileSize($sImageToDisplay);
$oImageTpl = new Template;
$oImageTpl->set("s", "IMG",$sScaledImage);
//$oImageTpl->set("s", "BACKLINK",'front_content.php?idcat='.$idcat.'&idart='.$idart.'&start='.$_REQUEST['start']);
$oImageTpl->set("s", "BACKCAPTION",mi18n("Übersicht"));
#$oImageTpl->set("s", "DESCRIPTION", $request_bild);
$oImageTpl->set("s", "DESCRIPTION", $description);
$oImageTpl->set("s", "MEDIANAME", $media_name);
$oImageTpl->set("s", "DOWNLOAD_LINK", $download_link);
$oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);
$oImageTpl->set("s", "ZURUECK", mi18n("Vorheriges Bild"));
$oImageTpl->set("s", "WEITER", mi18n("Nächstes Bild"));
$oImageTpl->set("s", "VORHERIGES", $vorbild);
$oImageTpl->set("s", "NAECHSTES", $nachbild);
/*$oImageTpl->set("s", "DOWNLOAD_CAPTION", mi18n("runter laden")); */
//$oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_detail.html", false, false);
$oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery.html", false, false);
function ig_getImageDescription($idupl)
{
global $cfg, $cfgClient, $db, $client, $lang;
$cApiClient = new cApiClient($client);
$language_separator = $cApiClient->getProperty('language','separator');
if(is_numeric($idupl))
{//ID is a number
$query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;
}
else
{//ID is a string
$path_parts = pathinfo($idupl);
$upload = $cfgClient[$client]['upl']['frontendpath'];
$len = strlen($upload);
$pos = strpos($idupl,$upload);
$dirname = substr($path_parts['dirname'],$pos+$len).'/';
$query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE (dirname = '".$dirname."') AND (filename='".$path_parts['basename']."') AND (filetype='".$path_parts['extension']."')";
}
$db->query($query);
if($db->next_record())
{
return htmlspecialchars(urldecode($db->f("description")));
}
else
{
return '';
}
}
function ig_GetReadableFileSize($path)
{
$filesize = filesize($path);
$unit = "bytes";
if ($filesize > 1024) {
$filesize = ($filesize / 1024);
$unit = "kB"; }
if ($filesize > 1024) {
$filesize = ($filesize / 1024);
$unit = "MB"; }
if ($filesize > 1024) {
$filesize = ($filesize / 1024);
$unit = "GB"; }
if ($filesize > 1024) {
$filesize = ($filesize / 1024);
$unit = "TB"; }
$filesize = round($filesize, 0);
return $filesize." ".$unit;
}
function ig_getMedienName($idupl) {
global $cfg, $cfgClient, $db, $client, $lang;
$cApiClient = new cApiClient($client);
$language_separator = $cApiClient->getProperty('language','separator');
if ($language_separator == "") {
//Sanity, if module used in client without set client setting
$language_separator = "§§§";
$cApiClient->setProperty('language','separator', $language_separator);
}
if( is_numeric($idupl) ) {
//ID is a number
$query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;
} else {
//ID is a string
$path_parts = pathinfo($idupl);
$upload = $cfgClient[$client]['upl']['frontendpath'];
$len = strlen($upload);
$pos = strpos($idupl,$upload);
$dirname = substr($path_parts['dirname'],$pos+$len).'/';
$danis = $dirname.$path_parts['basename'];
$query = "SELECT value FROM ".$cfg["tab"]["properties"]." WHERE itemid = '".$dirname.$path_parts['basename']."' AND name = 'medianame'";
}
$db->query($query);
if( $db->next_record() ) {
return htmlspecialchars(urldecode($db->f("value")));
} else {
return '';
}
}
?>