Seite 1 von 1

Standard-Bilder-Galerie Contenido 4.6.15

Verfasst: Do 29. Mai 2008, 15:55
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

Re: Stadard-Bilder-Galerie Contenido 4.6.15

Verfasst: Do 29. Mai 2008, 18:20
von BagHira
Poste doch bitte mal den Output des Modules.

Re: Stadard-Bilder-Galerie Contenido 4.6.15

Verfasst: Do 29. Mai 2008, 19:35
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.

Verfasst: Do 29. Mai 2008, 20:03
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");

Fehlermeldung im output des moduls

Verfasst: Do 29. Mai 2008, 21:29
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");

Re: Fehlermeldung im output des moduls

Verfasst: Do 29. Mai 2008, 22:35
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.

Sortierfunktion in der Bildergalerie

Verfasst: Do 29. Mai 2008, 23:16
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.

Re: Fehlermeldung im output des moduls

Verfasst: Sa 31. Mai 2008, 00:17
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.

Verfasst: Sa 31. Mai 2008, 01:32
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

Stadard-Bilder-Galerie mit sortierter Reihenfolge

Verfasst: Sa 31. Mai 2008, 07:51
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

Verfasst: Sa 31. Mai 2008, 11:37
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.

Verfasst: So 1. Jun 2008, 22:06
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. :?