Standard-Bilder-Galerie Contenido 4.6.15

Gesperrt
caps-log
Beiträge: 94
Registriert: Fr 5. Dez 2003, 09:56
Wohnort: Waiblingen
Kontaktdaten:

Standard-Bilder-Galerie Contenido 4.6.15

Beitrag von caps-log »

Hallo zusammen,
ich möchte zu der Stadard-Bilder-Galerie von Contenido ein Problem schildern, das ich mir derzeit recht erklären kann:

Für die Website einer Kundin verwende ich die Standard-Bildergalerie, damit lassen sich Bildsammlungen hervorragend veröffentlichen.
Beim Verwalten der Bilder gibt es jedoch in folgendem Fall Probleme:

Wenn man eine bestehende Bilderreihe durch ein neues Bild ergänzen möchte, wird das neue Bild zwar in der Dateiverwaltung namentlich in der korrekten Reihenfolge angezeigt, nicht aber im output der Galerie, dh. im Artikel selbst, der die Galeriefunktion verwedet. Die Dateien sind alphabetischer Reihenfolge benannt, das neue Bild wird aber an letzter Stelle angezeigt.

Siehe Testartikel: http://www.bildbouquet.de/cms/front_con ... ?idart=200

Das Bild e_wasser.jpeg wurde als letztes hochgeladen.
In der Dateiverwaltung wird es wie bereits erwähnt namentlich korrekt nach d_himmel.jpeg angezeigt, im Artikel selbst jedoch erscheint das Bild wie man leicht erkennen kann hinten.

Die einzige Lösung ist bisher, alle Bilder der Galerie zu löschen und neu hochzuladen, was vor allem aufgrund der Bildbeschreibungen, auf denen eine zukünftige Suchfunktion zugreifen soll, sehr ärgerlich ist, da man diese jedes mal neu anlegen müsste.

Ich vermute das Problem hat mit der Caching-Funktion zu tun, die den Bildern eigene Namen zuteilt. In diesem Fall heisst das neu hochgeladene Bild nicht e_wasser.jpeg, sondern http://www.bildbouquet.de/cms/cache/5cd ... 42a9d8.jpg

Wisst Ihr ne Lösung für diese Problematik? Kann man das Caching (Insbesondere die Generierung der Dateinamen) beeinflussen, damit die Darstellung korrekt in der gewünschten Reihenfolge erfolgt?

Antwort sehr willkommen!
Gruss, Torsten
Hebt man den Blick,
so sieht man keine Grenzen.
(Aus Japan)

torsten w. licker
caps-log.de/sign
BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Re: Stadard-Bilder-Galerie Contenido 4.6.15

Beitrag von BagHira »

Poste doch bitte mal den Output des Modules.
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+
caps-log
Beiträge: 94
Registriert: Fr 5. Dez 2003, 09:56
Wohnort: Waiblingen
Kontaktdaten:

Re: Stadard-Bilder-Galerie Contenido 4.6.15

Beitrag von caps-log »

Hi Holger,
hier der output:

Code: Alles auswählen

<?php
/***********************************************
* Bildergalerie Output
*
* Author      :     Timo A. Hummel
* Copyright   :     four for business AG
* Created     :     30-09-2005
************************************************/

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;

if ($_REQUEST['view']=='') {
	/* Read all gallery files */
	$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]);
	  }
	}
	
	/* Calculate effective variables */
	$iFileCount = count($aGalleryFiles);
	$iPages = ceil($iFileCount / $iImagesPerPage);
	
	$aImagesToDisplay = array_slice($aGalleryFiles, ($iCurrentPage - 1) * $iImagesPerPage, $iImagesPerPage);
	
	$oImageTpl = new Template;
	$oGalleryTpl = new Template;
	$oEmptyImageTpl = new Template;
	
	$aRenderedImages = array();
	
	$iRow = 0;
	$iImagesRendered = 0;
	
	foreach ($aImagesToDisplay as $sImageToDisplay)
	{
	  /* Do Scaling */
	  $sScaledImage = cApiImgScale($sImageToDisplay, $iWidth, $iHeight);
	
	  $link = 'front_content.php?idcatart='.$idcatart.'&start='.$_REQUEST['start'].'&view='.urlencode(str_replace($cfgClient[$client]['path']['frontend'],'',$sImageToDisplay));

	  $description = ig_getImageDescription($sImageToDisplay);
	  if ($description=='') {
	  	$description = '&nbsp;';
	  }
	  
	  $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", "DOWNLOAD_LINK", $download_link);
	  $oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);
	  $oImageTpl->set("s", "PREVIEW_CAPTION", mi18n("Bildvorschau"));
	  
	  $aRenderedImages[] = $oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_image.html", true, false);
	
	  $iImagesRendered++;
	
	  if ($iImagesRendered == $iColumns)
	  {
	    $oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages));
	    $oGalleryTpl->next();
	    $iImagesRendered = 0;
	    $aRenderedImages = array();
	  }
	}
	
	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) && $iCurrentPage)
	{
	  $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);
    }
} else {
	$sImageToDisplay = $cfgClient[$client]['path']['frontend'].$_REQUEST['view'];
	$sScaledImage = cApiImgScale($sImageToDisplay, $iDetailWidth, 1000);

	$description = ig_getImageDescription($sImageToDisplay);
	if ($description=='') {
		$description = '&nbsp;';
	}

	$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("Zurück"));
	$oImageTpl->set("s", "DESCRIPTION", $description);
	$oImageTpl->set("s", "DOWNLOAD_LINK", $download_link);
	$oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);
	
	$oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_detail.html", false, false);
}

function ig_getImageDescription($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).'/';
		$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;
}
?>




BagHira hat geschrieben:Poste doch bitte mal den Output des Modules.
Hebt man den Blick,
so sieht man keine Grenzen.
(Aus Japan)

torsten w. licker
caps-log.de/sign
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Hallo caps-log,

das Modul ist einfach nicht zum Sortieren gemacht. Es ist schlichtweg nicht berücksichtigt und nur reiner Zufall wenns es sortiert rauskommt. So kann man das ändern:

ganz am Ende des Outputs eine neue Funktion einfügen:

Code: Alles auswählen

function sortFiles($file1, $file2)
{
    strnatcasecmp(basename($file1),basename($file2));
}
und direkt unter:

Code: Alles auswählen

if (is_array($aGalleryFiles))
{
einfügen:

Code: Alles auswählen

/*Sort the array /*
usort($aGalleryFiles,"sortFiles");
Bis dann
Tono
caps-log
Beiträge: 94
Registriert: Fr 5. Dez 2003, 09:56
Wohnort: Waiblingen
Kontaktdaten:

Fehlermeldung im output des moduls

Beitrag von caps-log »

Hi tono,
ich krieg leider hier ne Fehlermeldung nach der Änderung des Moduls...
Hab die Änderung rückgängig gemacht, kann diese aber jederzeit wieder zuweisen, da ich zu Testzwecken ein neues Modul für die Galerie angelegt habe...

Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /var/www/web1896/html/bildbouquet/cms/front_content.php(884) : eval()'d code on line 222

Vieleicht ist es ja schnell zu beheben...

Gruss,
Torsten
tono hat geschrieben:Hallo caps-log,

das Modul ist einfach nicht zum Sortieren gemacht. Es ist schlichtweg nicht berücksichtigt und nur reiner Zufall wenns es sortiert rauskommt. So kann man das ändern:

ganz am Ende des Outputs eine neue Funktion einfügen:

Code: Alles auswählen

function sortFiles($file1, $file2)
{
    strnatcasecmp(basename($file1),basename($file2));
}
und direkt unter:

Code: Alles auswählen

if (is_array($aGalleryFiles))
{
einfügen:

Code: Alles auswählen

/*Sort the array /*
usort($aGalleryFiles,"sortFiles");
Hebt man den Blick,
so sieht man keine Grenzen.
(Aus Japan)

torsten w. licker
caps-log.de/sign
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: Fehlermeldung im output des moduls

Beitrag von tono »

caps-log hat geschrieben: Vieleicht ist es ja schnell zu beheben...
Ist es nicht. Der Fehler ist bei mir nicht reproduzierbar. :?: :?:

Machs mal wie hier beschrieben, nicht das Zeug aus der Email, wer weiß was da mit dem encoding schiefgegangen ist.
Bis dann
Tono
caps-log
Beiträge: 94
Registriert: Fr 5. Dez 2003, 09:56
Wohnort: Waiblingen
Kontaktdaten:

Sortierfunktion in der Bildergalerie

Beitrag von caps-log »

ah okay...
ich probier das dann nochmal mal...
tono hat geschrieben:
caps-log hat geschrieben: Vieleicht ist es ja schnell zu beheben...
Ist es nicht. Der Fehler ist bei mir nicht reproduzierbar. :?: :?:

Machs mal wie hier beschrieben, nicht das Zeug aus der Email, wer weiß was da mit dem encoding schiefgegangen ist.
Hebt man den Blick,
so sieht man keine Grenzen.
(Aus Japan)

torsten w. licker
caps-log.de/sign
caps-log
Beiträge: 94
Registriert: Fr 5. Dez 2003, 09:56
Wohnort: Waiblingen
Kontaktdaten:

Re: Fehlermeldung im output des moduls

Beitrag von caps-log »

Hi Tono,

habe die Code-Ergänzungen im Modul manuell gemacht, jetzt tut die Anzeige auch ohne Error-Meldung.

Die Bilder werden aber noch nicht richtig angezeigt...

Muss ich ewas bestimmtes beachten, oder sollte ich das System besser mal auf die neueste Version updaten?

Gruss, torsten

tono hat geschrieben:
caps-log hat geschrieben: Vieleicht ist es ja schnell zu beheben...
Ist es nicht. Der Fehler ist bei mir nicht reproduzierbar. :?: :?:

Machs mal wie hier beschrieben, nicht das Zeug aus der Email, wer weiß was da mit dem encoding schiefgegangen ist.
Hebt man den Blick,
so sieht man keine Grenzen.
(Aus Japan)

torsten w. licker
caps-log.de/sign
hoprah
Beiträge: 28
Registriert: Di 15. Apr 2008, 13:57
Kontaktdaten:

Beitrag von hoprah »

Hi,

versuch doch mal folgende Variante - die Zeile mit der Sortierung an dieser Stelle - so wird es bei mir zumindest richtig sortiert:

Code: Alles auswählen

.........
	/* Calculate effective variables */
   natsort($aGalleryFiles);
	$iFileCount = count($aGalleryFiles);
	$iPages = ceil($iFileCount / $iImagesPerPage);
.........
Das müsste eigentlich reichen....

Welche Sortierungsvariante Du wählst musst Du testen....

Gruß
Hotte
caps-log
Beiträge: 94
Registriert: Fr 5. Dez 2003, 09:56
Wohnort: Waiblingen
Kontaktdaten:

Stadard-Bilder-Galerie mit sortierter Reihenfolge

Beitrag von caps-log »

Hey Cool!
Das hat jetzt geklappt, die Bilder werden alphabetisch angezeigt!
:-)
dickes Danke an tono und hoprah!

Hier mochmal der komplette Output für das Modul mit Bildsortierung:

---------------------------------------------------

Code: Alles auswählen

<?php
/***********************************************
* Bildergalerie Output
*
* Author : Timo A. Hummel
* Copyright : four for business AG
* Created : 30-09-2005
* Modified : 29-05-2008 Tobias Klonk (added Sorting by Filename)
* Modified : 31-05-2008 hoprah (modified Sorting by Filename)
************************************************/

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;

if ($_REQUEST['view']=='') {
/* Read all gallery files */
$aGalleryFiles = scanDirectory($sPath, $bRecursive);

if (is_array($aGalleryFiles))
{

/* Calculate effective variables */
natsort($aGalleryFiles);
$iFileCount = count($aGalleryFiles);
$iPages = ceil($iFileCount / $iImagesPerPage);


/* Filter out non-images */
foreach ($aGalleryFiles as $key => $aGalleryFile)
{
$sExtension = strtolower(getFileExtension($aGalleryFile));

if (!in_array($sExtension, $aValidExtensions))
{
unset($aGalleryFiles[$key]);
}
}

/* Calculate effective variables */
$iFileCount = count($aGalleryFiles);
$iPages = ceil($iFileCount / $iImagesPerPage);

$aImagesToDisplay = array_slice($aGalleryFiles, ($iCurrentPage - 1) * $iImagesPerPage, $iImagesPerPage);

$oImageTpl = new Template;
$oGalleryTpl = new Template;
$oEmptyImageTpl = new Template;

$aRenderedImages = array();

$iRow = 0;
$iImagesRendered = 0;

foreach ($aImagesToDisplay as $sImageToDisplay)
{
/* Do Scaling */
$sScaledImage = cApiImgScale($sImageToDisplay, $iWidth, $iHeight);

$link = 'front_content.php?idcatart='.$idcatart.'&start='.$_REQUEST['start'].'&view='.urlencode(str_replace($cfgClient[$client]['path']['frontend'],'',$sImageToDisplay));

$description = ig_getImageDescription($sImageToDisplay);
if ($description=='') {
$description = '&nbsp;';
}

$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", "DOWNLOAD_LINK", $download_link);
$oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);
$oImageTpl->set("s", "PREVIEW_CAPTION", mi18n("Bildvorschau"));

$aRenderedImages[] = $oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_image.html", true, false);

$iImagesRendered++;

if ($iImagesRendered == $iColumns)
{
$oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages));
$oGalleryTpl->next();
$iImagesRendered = 0;
$aRenderedImages = array();
}
}

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) && $iCurrentPage)
{
$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);
}
} else {
$sImageToDisplay = $cfgClient[$client]['path']['frontend'].$_REQUEST['view'];
$sScaledImage = cApiImgScale($sImageToDisplay, $iDetailWidth, 1000);

$description = ig_getImageDescription($sImageToDisplay);
if ($description=='') {
$description = '&nbsp;';
}

$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("Zurück"));
$oImageTpl->set("s", "DESCRIPTION", $description);
$oImageTpl->set("s", "DOWNLOAD_LINK", $download_link);
$oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);

$oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_detail.html", false, false);
}

function ig_getImageDescription($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).'/';
$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 sortFiles($file1, $file2)
{
    strnatcasecmp(basename($file1),basename($file2));
}
?>

----------------------------------------------




hoprah hat geschrieben:Hi,

versuch doch mal folgende Variante - die Zeile mit der Sortierung an dieser Stelle - so wird es bei mir zumindest richtig sortiert:

Code: Alles auswählen

.........
	/* Calculate effective variables */
   natsort($aGalleryFiles);
	$iFileCount = count($aGalleryFiles);
	$iPages = ceil($iFileCount / $iImagesPerPage);
.........
Das müsste eigentlich reichen....

Welche Sortierungsvariante Du wählst musst Du testen....

Gruß
Hotte
Hebt man den Blick,
so sieht man keine Grenzen.
(Aus Japan)

torsten w. licker
caps-log.de/sign
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

@Torsten:

Ich habe in deinen Posts oben den Code mal mit den entsprechenden BBCode-Tags ausgezeichnet, da das die Lesbarkeit etwas erhöht.
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Freut mich, dass es klappt, ich möchte aber auf 2 Punkte hinweisen:

1. Wenn Du jetzt natsort benutzt um das Array zu sortieren kannst Du die Definition der Funktion "sortFiles" am Ende weider rausnehmen.

2. Die Funktion natsort wird nicht richtig arbeiten, wenn die Bilder aus mehreren Unterverzeichnissen stammen. Dann wird nach Verzeichnissname und Dateiname sortiert.

Und warum es nicht geht, wenn Du an der gleichen Stelle sortFiles statt natsort hinschreibst kann ich mir nicht erklären. :?
Bis dann
Tono
Gesperrt