Standard-Bilder-Galerie Contenido 4.6.15
Standard-Bilder-Galerie Contenido 4.6.15
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
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
so sieht man keine Grenzen.
(Aus Japan)
torsten w. licker
caps-log.de/sign
-
- Beiträge: 486
- Registriert: Do 23. Feb 2006, 19:42
- Wohnort: Tirschenreuth / Oberpfalz / Bayern
- Kontaktdaten:
Re: Stadard-Bilder-Galerie Contenido 4.6.15
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+
Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.
Handgewickelte Glasperlen Facebook Google+
Re: Stadard-Bilder-Galerie Contenido 4.6.15
Hi Holger,
hier der output:
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 = ' ';
}
$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 = ' ';
}
$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
so sieht man keine Grenzen.
(Aus Japan)
torsten w. licker
caps-log.de/sign
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:
und direkt unter:
einfügen:
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));
}
Code: Alles auswählen
if (is_array($aGalleryFiles))
{
Code: Alles auswählen
/*Sort the array /*
usort($aGalleryFiles,"sortFiles");
Bis dann
Tono
Tono
Fehlermeldung im output des moduls
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
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:und direkt unter:Code: Alles auswählen
function sortFiles($file1, $file2) { strnatcasecmp(basename($file1),basename($file2)); }
einfügen:Code: Alles auswählen
if (is_array($aGalleryFiles)) {
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
so sieht man keine Grenzen.
(Aus Japan)
torsten w. licker
caps-log.de/sign
Re: Fehlermeldung im output des moduls
Ist es nicht. Der Fehler ist bei mir nicht reproduzierbar.caps-log hat geschrieben: Vieleicht ist es ja schnell zu beheben...


Machs mal wie hier beschrieben, nicht das Zeug aus der Email, wer weiß was da mit dem encoding schiefgegangen ist.
Bis dann
Tono
Tono
Sortierfunktion in der Bildergalerie
ah okay...
ich probier das dann nochmal mal...
ich probier das dann nochmal mal...
tono hat geschrieben:Ist es nicht. Der Fehler ist bei mir nicht reproduzierbar.caps-log hat geschrieben: Vieleicht ist es ja schnell zu beheben...![]()
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
so sieht man keine Grenzen.
(Aus Japan)
torsten w. licker
caps-log.de/sign
Re: Fehlermeldung im output des moduls
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
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:Ist es nicht. Der Fehler ist bei mir nicht reproduzierbar.caps-log hat geschrieben: Vieleicht ist es ja schnell zu beheben...![]()
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
so sieht man keine Grenzen.
(Aus Japan)
torsten w. licker
caps-log.de/sign
Hi,
versuch doch mal folgende Variante - die Zeile mit der Sortierung an dieser Stelle - so wird es bei mir zumindest richtig sortiert:
Das müsste eigentlich reichen....
Welche Sortierungsvariante Du wählst musst Du testen....
Gruß
Hotte
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);
.........
Welche Sortierungsvariante Du wählst musst Du testen....
Gruß
Hotte
Stadard-Bilder-Galerie mit sortierter Reihenfolge
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:
---------------------------------------------------
----------------------------------------------
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 = ' ';
}
$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 = ' ';
}
$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:
Das müsste eigentlich reichen....Code: Alles auswählen
......... /* Calculate effective variables */ natsort($aGalleryFiles); $iFileCount = count($aGalleryFiles); $iPages = ceil($iFileCount / $iImagesPerPage); .........
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
so sieht man keine Grenzen.
(Aus Japan)
torsten w. licker
caps-log.de/sign
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.
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
Tono