jan
/
sjqg
Archived
1
0
Fork 0

add sorting by weight option in galleryinfo.ini files (fixes #61)

This commit is contained in:
Jan Dittberner 2009-07-31 20:00:13 +00:00
parent 62d1ba55fe
commit 4090ea5881
1 changed files with 44 additions and 32 deletions

View File

@ -187,6 +187,33 @@ function getGalleryLabel($galleryname) {
return $label;
}
function cmpGalleryByWeight($a, $b) {
if (($a[0] == $b[0]) && (strcmp($a[1], $b[1]) == 0)) {
return 0;
}
if ($a[0] == $b[0]) {
return strcmp($a[1], $b[1]);
}
return ($a[0] < $b[0]) ? -1 : 1;
}
function getOrderedGalleries() {
global $configuration;
$galleries = array();
foreach (glob(realpath($configuration['gallerydir']) . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR) as $directory) {
$basename = basename($directory);
if (galleryExists($basename)) {
$inidata = getGalleryConfig($basename);
$weight = (array_key_exists('weight', $inidata[GALLERYSEC])) ?
intval($inidata[GALLERYSEC]['weight']) : 0;
$galleries[] = array($weight, $basename);
}
}
usort($galleries, 'cmpGalleryByWeight');
return $galleries;
}
/**
* Liefert die aktuelle Galerie. Die Galerie kann entweder im
* GET-Parameter @c galleryname stehen, als Wert @a default in der
@ -203,20 +230,8 @@ function getCurrentGallery() {
galleryExists($_GET["galleryname"])) {
return $_GET["galleryname"];
}
$filepath = realpath($configuration['gallerydir'] . DIRECTORY_SEPARATOR . 'galleryinfo.ini');
if (!empty($filepath)) {
$inidata = getGalleryConfig();
if (galleryExists($inidata[GALLERYSEC]["default"])) {
return $inidata[GALLERYSEC]["default"];
}
}
foreach (glob(realpath($configuration['gallerydir']) . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR) as $directory) {
$basename = basename($directory);
if (galleryExists($basename)) {
return $basename;
}
}
return null;
$galleries = getOrderedGalleries();
return (count($galleries) > 0) ? $galleries[0][1] : null;
}
/**
@ -354,25 +369,22 @@ function getGalleryLinks() {
global $configuration;
$retval = array();
foreach (glob(realpath($configuration['gallerydir']) . DIRECTORY_SEPARATOR . '*',
GLOB_ONLYDIR) as $directory) {
$basename = basename($directory);
if (galleryExists($basename)) {
$urlparams = array();
$urlparams['galleryname'] = $basename;
if (array_key_exists('theme', $_GET)) {
$urlparams['theme'] = $_GET['theme'];
}
$parts = array();
foreach ($urlparams as $key => $value) {
$parts[] = sprintf("%s=%s", $key, urlencode($value));
}
$url = sprintf('index.php?%s',
implode(ini_get('arg_separator.output'), $parts));
$retval[] = array('gallery' => $basename,
'label' => getGalleryLabel($basename),
'url' => htmlspecialchars($url));
$galleries = getOrderedGalleries();
foreach ($galleries as $gallery) {
$urlparams = array();
$urlparams['galleryname'] = $gallery[1];
if (array_key_exists('theme', $_GET)) {
$urlparams['theme'] = $_GET['theme'];
}
$parts = array();
foreach ($urlparams as $key => $value) {
$parts[] = sprintf("%s=%s", $key, urlencode($value));
}
$url = sprintf('index.php?%s',
implode(ini_get('arg_separator.output'), $parts));
$retval[] = array('gallery' => $gallery[1],
'label' => getGalleryLabel($gallery[1]),
'url' => htmlspecialchars($url));
}
return $retval;
}