Seite 1 von 1

Bilder sortieren bei w3concepts.picgallery.v1

Verfasst: So 19. Jun 2005, 11:23
von Mana
Hi @ll,

bin nicht so der PHP-Crack, kann mir jemand sagen, wie ich in der w3concepts.picgallery.v1 einstellen kann, dass die Bilder absteigend nach Datum sortiert ausgegeben werden?
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.picgallery.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-15-2004
* Modified : 06-18-2004
************************************************/

// konfiguration

$pic['bilderpfad'] = "CMS_VALUE[1]"."/";
$pic['thumbnailpfad'] = "CMS_VALUE[2]"."/";

$pic['absbilderpfad'] = $cfgClient[$client]["path"]["frontend"].$pic['bilderpfad'];
$pic['absthumbnailpfad'] = $cfgClient[$client]["path"]["frontend"].$pic['thumbnailpfad'];

$pic['htmlthumbnailpfad'] = $cfgClient[$client]["path"]["htmlpath"].$pic['thumbnailpfad'];
$pic['htmlbilderpfad'] = $cfgClient[$client]["path"]["htmlpath"].$pic['bilderpfad'];

$pic['breite'] = "CMS_VALUE[3]";
if ($pic['breite'] == '') $pic['breite'] = 100;

$pic['hoehe'] = "CMS_VALUE[4]";
if ($pic['hoehe'] == '') $pic['hoehe'] = 100;

$pic['spalten'] = "CMS_VALUE[5]";
if ($pic['spalten'] == '') $pic['spalten'] = 3;

$pic['zeilen'] = "CMS_VALUE[6]";
if ($pic['zeilen'] == '') $pic['zeilen'] = 3;

$pic['anzahl'] = $pic['spalten'] * $pic['zeilen'];

$pic['previous'] = "CMS_VALUE[7]";
if ($pic['previous'] == '') $pic['previous'] = '[:: rückwärts ]';

$pic['next'] = "CMS_VALUE[8]";
if ($pic['next'] == '') $pic['next'] = '[ vorwärts ::]';

// einlesen des bildverzeichnisses
$handle=opendir($pic['absbilderpfad']);
while ($file = readdir ($handle)) {
if ($file != "." && $file != ".." &&$file !="thumbs") {
$bild[] = $file;
}
}
closedir($handle);
sort($bild);

$current = $_GET['tran'];
if ($current == '') $current = 0;

$next = $current + ($pic['spalten'] * $pic['zeilen']);
if ($next >= count($bild)) $next = false;

$previous = $current - ($pic['spalten'] * $pic['zeilen']);
if ($previous < 0) $previous = false;

echo '<p><table cellpadding="0" cellpacing="0" class="bildergalerie">';

for ($i=0;$i<$pic['zeilen'];$i++) {
echo '<tr class="zeile">';

for ($j=0;$j<$pic['spalten'];$j++) {
echo '<td class="zelle">';

$bildnummer = $i * $pic['spalten'] + $j + $current;

if ($bildnummer < count($bild)) {

// bildmasse ermitteln
$src_image_size = getimagesize("{$pic['absbilderpfad']}{$bild[$bildnummer]}");

// prüfen, ob thumbnail bereits vorhanden ist
if (!file_exists("{$pic['absthumbnailpfad']}{$pic['breite']}.{$pic['hoehe']}.{$bild[$bildnummer]}.jpg")) {

// ermitteln ob das bild auf bestimmte höhe oder bestimmte breite zu reduzieren ist
// sowie ermitteln, um welchen faktor das bild zu verkleinern ist
if ($src_image_size[0]/$src_image_size[1] > $pic['breite']/$pic['hoehe']) {
$verkleinerungsfaktor = $pic['breite']/$src_image_size[0];
} else {
$verkleinerungsfaktor = $pic['hoehe']/$src_image_size[1];
}

// berechnen der thumbnailgrösse
$bildhoehe = round($src_image_size[1] * $verkleinerungsfaktor);
$bildbreite = round($src_image_size[0] * $verkleinerungsfaktor);

// thumbnail erstellen
$dst_im = imagecreatetruecolor($bildbreite,$bildhoehe);
if ($src_image_size[2] == 1) {
$src_im = imagecreatefromGIF("{$pic['absbilderpfad']}{$bild[$bildnummer]}");
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG("{$pic['absbilderpfad']}{$bild[$bildnummer]}");
} else {
$src_im = @imagecreatefromgd("{$pic['absbilderpfad']}{$bild[$bildnummer]}");
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
imagejpeg ($dst_im,"{$pic['absthumbnailpfad']}{$pic['breite']}.{$pic['hoehe']}.{$bild[$bildnummer]}.jpg",100);

}

// bildpfad an browser ausgeben
echo "<a href=\"#\" onClick=\"window.open('{$cfgClient[$client]["path"]["htmlpath"]}popupviewer.php?uri={$pic['htmlbilderpfad']}{$bild[$bildnummer]}','bild','width={$src_image_size[0]},height={$src_image_size[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;\">";
echo "<img src=\"{$pic['htmlthumbnailpfad']}{$pic['breite']}.{$pic['hoehe']}.{$bild[$bildnummer]}.jpg\"/ border=\"0\"/ alt=\"{$bild[$bildnummer]}\">";

echo "</a>";

}

echo '</td>';
}

echo '</tr>';
}

echo '</table></p>';

echo '<table class="bildergalerie"><tr class="zeile"><td class="zelle">';
if ($next !== false) {
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&tran=$next");
echo "<a href=\"$link\">{$pic['next']}</a>";
}
echo '</td><td class="zelle">';
if ($previous !== false) {
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&tran=$previous");
echo "<a href=\"$link\">{$pic['previous']}</a>";
}
echo '</td></tr></table>';
?>
Danke für eure Hilfe


Mana

Verfasst: Mo 20. Jun 2005, 10:25
von xmurrix
Hallo,

ersetze folgenden den Code:

Code: Alles auswählen

// einlesen des bildverzeichnisses 
$handle=opendir($pic['absbilderpfad']); 
while ($file = readdir ($handle)) { 
	if ($file != "." && $file != ".." &&$file !="thumbs") { 
		$bild[] = $file; 
	} 
} 
closedir($handle); 
sort($bild); 
gegen

Code: Alles auswählen

//Auslesen der Bilder aus der DB (Sortierung: Absteigend nach Erstellungsdatum)
$sql = 'SELECT filename FROM'.$cfg['tab']['upl'].' WHERE dirname = "'.$pic['thumbnailpfad'].'" ORDER BY created DESC';
$db->query($sql);
while ($db->next_record()) {
	$file = $pic['absbilderpfad'].$db->f('filename');
	if (is_file($file)) {
		$bild[] = $file;
	}
}
Das geht nur, wenn auch die Bilder innerhalb des Client-Upload-Verzeichnisses abgelegt sind.

Grüße
xmurrix