0 && $str == round($str));
}
function myUrlEncode($string) {
$entities = array( '%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');
$replacements = array( '!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
//return str_replace($entities, $replacements, urlencode($string));
return str_replace($entities, $replacements, rawurlencode($string));
}
function startsWith($haystack, $needle){
$length = strlen($needle);
return (substr($haystack, 0, $length) === $needle);
}
/// Abfrage der ausgewählten Bilder einer Galerie
function getPickedImages($aMysqlConn, $aGalId){
$retPickedImages = array();
/// Erstmal bisher ausgewählte Bilder abfragen ...
$queryPickedImages = sprintf(
"SELECT * FROM cwsvjudo.galImgPicker WHERE galId = '%s';",
$aMysqlConn->real_escape_string($aGalId)
);
// die($queryPickedImages);
$resultsPickedImages = $aMysqlConn->query($queryPickedImages);
/// @todo Wie kann ich hier sinnvoll einen Fehler zurückliefern? Nullpointer?
if( !$resultsPickedImages ){
$retMessage['error'] .= "Fehler ('".$aMysqlConn->error."') bei Datenbankabfrage '".$queryPickedImages."'
";
die( "Fehler ('".$aMysqlConn->error."') bei Datenbankabfrage '".$queryPickedImages."'
");
}
else{
while( $pickedImagesResult = $resultsPickedImages->fetch_assoc() ){
$retPickedImages = array_merge($retPickedImages, explode(',', $pickedImagesResult['pickedImages']) );
}
}
//echo("retPickedImages: ");print_r($retPickedImages); die();
return array_unique( $retPickedImages );
}/// Ende getPickedImages
/// Hilfsfunktion zum Anpassen der htmlDescription
function descrName($aName){
$retVal = "Bilder der Judoka des Chemnitzer WSV beim Wettkampf ".$aName;
if( strpos($aName, "Sommerabschlussgrillen") >= 0 ) $retVal = "Bilder der Judoka des Chemnitzer WSV beim ".$aName;
if( strpos($aName, "Jahrendefeier") >= 0 ) $retVal = "Bilder der Judoka des Chemnitzer WSV bei der ".$aName;
return $retVal;
}/// Ende descrName
/// Wählt aus den Gallerybildern eine Anzahl zum anzeigen aus
function displayImagesList($galleryData, $options = array() ){
if( is_positive_integer( $options['imageLimit']) )
return array_rand( $shiaiGalleryData['images'], $options['imageLimit']);
return $shiaiGalleryData['images'];
// folgend nur die alte Bildauswahl mit Favourites (zum Abschreiben bei
// zukünftigen Erweiterungen)
///// Überschreiben der imgList mit den ausgewählten Bildern
//$allImgList = $imgList; // Sicherungskopie
//if( count($pickedImages) > 24 )
//$pickedImages = array_rand( $pickedImages, 24);
//else{
//$restImages = array_diff( $allImgList, $pickedImages );
//foreach( array_rand( $restImages, min(24, count($restImages))-count($pickedImages) ) as $k ) {
//$pickedImages[] = $restImages[$k];
//}
//}
//$imgList = $pickedImages;
//// echo("imgList: "); print_r($imgList);
///// @todo ein Sortieren nach dem ursprünglichen Index fehlt
//usort($imgList, function($a, $b) use($allImgList){return array_search($a, $allImgList) > array_search($b, $allImgList);} );
//$imgList = array_values( $imgList );// Zum reNummerieren
//// echo("imgList: "); print_r($imgList);
//if( $showAllMode == "true") $imgList = $allImgList;
//$imgInfos = array();
//foreach( $imgList as $imgName ){
//if(startsWith($imgName, "images/")){
//array_push( $imgInfos, @getimagesize(str_replace("images", "thumbs", str_replace(".jpg", ".png", $imgName))));
//}
//else{
//array_push( $imgInfos, @getimagesize("thumbs/".str_replace(".jpg", ".png", $imgName)));
//}
//}
}
////
// Main
////
$basePath = $_SERVER['DOCUMENT_ROOT'];
$requestPath = $_SERVER['REQUEST_URI'];
if( $_GET['showAll'] == "true" )
$showAllMode = "true";
else
$showAllMode = "false";
// eine allgemeine Konfigurationsdatei
if( file_exists("config.inc.php") )
include_once("config.inc.php");
// für's erste werden die Verzeichnisse direkt aufgerufen
// - @toDo: Das letzte muss kein Verzeichnis sein!
// - @toDo: Fehlerbehandlung??
// - für's erste gehen wir davon aus, dass ein korrektes Verzeichnis
// übergeben wurde
$dirBreadcrumbs = explode( "/", $_SERVER["REQUEST_URI"] );
if( $dirBreadcrumbs[1] != "photoalben" ){
echo("warning: wrong path!\n");
var_dump($_SERVER);
var_dump($dirBreadcrumbs);
}
// Wettkampfname und Wettkampfdatum wurden früher™ mal in der
// 'config.inc.php' des Galerieordners
if(file_exists($requestPath."config.inc.php")){
include_once($requestPath."config.inc.php");
if($wkName)
$shiaiGalleryData['name'] = $wkName;
}
// So soll es mal werden: Die Daten der Galerie in einer jsonDatei
if(file_exists($requestPath."/shiaiGallery.json"))
$shiaiGalleryData = json_decode(
get_file_contents( $requestPath."shiaiGallery.json"),
true
);
// Sollte jetzt die Galerie noch leer sein, dann ist anzunehmen,
// dass noch keine definiert wurden (weder per json, noch durch
// inc.php). Damit nie nichts angezeigt wird, laden wir sie aus dem
// Verzeichnis.
// @toDo: Übergangslösung! Es sollte möglich sein, eine leere Galerie
// zu erzeugen. Es sollte ein allgemeinerer ImageSuchAlgorithmus her!
if( empty( $shiaiGalleryData['images'] ) ){
$imgList = glob( $basePath.$requestPath."images/*.jpg" );
// Wie es scheint ist sind die Dateinamen auf dem bplaced in "ISO-8859-1"
// Die Dateinamen auf dem Server (so wie sie die glob-Funktion
// liefert) müssen nicht in "UTF-8" sein! deshalb eine
// Konvertierung, denn das htmlDokument soll dann in "UTF-8" sein.
array_walk(
$imgList,
function (&$value, $key, $basePath) {
$value = iconv( "ISO-8859-1", "UTF-8", $value);
// @toDo: evtl. hier schon die Dateinamen urlEncoden ?
// $value=implode('/', array_map('myUrlEncode', explode('/', $value)));
$value = str_replace($basePath, "", $value);
},
$basePath
);
$shiaiGalleryData['images'] = array_map(
function($value){
return array(
'imgSrc' => $value,
'tbnSrc' => str_replace( "/images/", "/thumbs/", str_replace( ".jpg", ".png", $value))
);
},
$imgList
);
}
//var_dump($shiaiGalleryData);
//exit();
if( $showAllMode == "true" ){
$imgList = displayImagesList($shiaiGalleryData['images']);
}
else
$imgList = displayImagesList($shiaiGalleryData['images'], array('imagesLimit'=>24));
array_walk(
$imgList,
function (&$value, $key, $basePath) {
// $value = iconv( "ISO-8859-1", "UTF-8", $value);
// @toDo: evtl. hier schon die Dateinamen urlEncoden ?
$value['imgSrc']=implode('/', array_map('myUrlEncode', explode('/', $value['imgSrc'])));
$value['tbnSrc']=implode('/', array_map('myUrlEncode', explode('/', $value['tbnSrc'])));
// $value = str_replace($basePath, "", $value);
},
$basePath
);
if( empty($shiaiGalleryData['name']) )
$shiaiGalleryData['name'] = "ohne Namen";
?>
[ Bilder]
Auf die jeweiligen Bilder klicken um eine größere Ansicht zu bekommen.