From a924af3503797508a13a88ba40b810c2eee5855c Mon Sep 17 00:00:00 2001 From: marko Date: Fri, 8 Mar 2019 14:03:16 +0100 Subject: [PATCH] Neuentwicklung der imgGallery MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ein neues template new file: gallery.template.php - die alten dateien für die imgGallery new file: imgPicker.php new file: index.php.tmpl new file: indexDev.php.tmpl new file: view.php.tmpl --- .../src/imgGallery/gallery.template.php | 419 ++++++++++++++++++ .../src/imgGallery/imgPicker.php | 191 ++++++++ .../src/imgGallery/index.php.tmpl | 364 +++++++++++++++ .../src/imgGallery/indexDev.php.tmpl | 349 +++++++++++++++ .../src/imgGallery/view.php.tmpl | 95 ++++ 5 files changed, 1418 insertions(+) create mode 100644 homepage/redesign2018/markdownExperiment/src/imgGallery/gallery.template.php create mode 100644 homepage/redesign2018/markdownExperiment/src/imgGallery/imgPicker.php create mode 100644 homepage/redesign2018/markdownExperiment/src/imgGallery/index.php.tmpl create mode 100644 homepage/redesign2018/markdownExperiment/src/imgGallery/indexDev.php.tmpl create mode 100644 homepage/redesign2018/markdownExperiment/src/imgGallery/view.php.tmpl diff --git a/homepage/redesign2018/markdownExperiment/src/imgGallery/gallery.template.php b/homepage/redesign2018/markdownExperiment/src/imgGallery/gallery.template.php new file mode 100644 index 0000000..3b1c554 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/src/imgGallery/gallery.template.php @@ -0,0 +1,419 @@ + 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"; + +?> + + + + <?php echo $wkName?> - Bilderalbum<?php echo( !empty($showAllMode)?($showAllMode == "true" ? " - alle Bilder" : "") : "");?> + + + "> + + + + + + + + + + + + + + + + + + + + + Zur Galerieübersicht + +
+ +
+ + +

+ Photoalbum [] +

+ +

+ [ Bilder] +

+ + + + +

+ Auf die jeweiligen Bilder klicken um eine größere Ansicht zu bekommen. +

+
+ + + +" ); + //echo( "" ); + //} +?> + "); + } +?> + +Eingaben absenden" ); + //echo( "" ); + //} +?> + + + + + + + + +
+ + diff --git a/homepage/redesign2018/markdownExperiment/src/imgGallery/imgPicker.php b/homepage/redesign2018/markdownExperiment/src/imgGallery/imgPicker.php new file mode 100644 index 0000000..34236ed --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/src/imgGallery/imgPicker.php @@ -0,0 +1,191 @@ +real_escape_string($aGalId), + $aMysqlConn->real_escape_string($anUserId) + ); + + $resultsPickedImages = $aMysqlConn->query($queryPickedImages); + if( !$resultsPickedImages ){ + $retMessage['error'] .= "Fehler ('".$aMysqlConn->error."') bei Datenbankabfrage '".$queryPickedImages."'
"; + } + /// @todo Eigentlich sollte hier ja nur ein Ergebnis zurückgeliefert werden, das sollte auch überprüft werden + else{ + while( $pickedImagesResult = $resultsPickedImages->fetch_assoc() ){ + $galPickedImages = array_merge($galPickedImages, explode(',', $pickedImagesResult['pickedImages']) ); + } + } + + /// @todo Anzahl der ausgewählten Bilder auf 6 beschränken + if( empty($galPickedImages) ){ + if( count($galPickedImages) < 6 ){ + $queryAddImages = sprintf( + "INSERT INTO cwsvjudo.galImgPicker (galId, userId, pickedImages) values ('%s', '%s', '%s');", + $aMysqlConn->real_escape_string($aGalId), + $aMysqlConn->real_escape_string($anUserId), + $aMysqlConn->real_escape_string(join(",", $somePickedImages)) + ); + + $resultAddImages = $aMysqlConn->query($queryAddImages); + if( $resultAddImages ){ + $retMessage['info'] .= "(".join(",", $somePickedImages).") ausgewählt!
"; + } + else{ + $retMessage['error'] .= "Fehler: Konnte die Query '".$queryAddImages."' nicht ausführen ('".$aMysqlConn->error."')!
"; + } + } + else{ + $retMessage['error'] .= "Fehler: Es dürfen maximal 6 Bilder ausgewählt werden
"; + } + } + else{ + $retMessage['error'] .= "Fehler: Es wurden bereits Bilder ausgewählt (".join(",", $galPickedImages).")!
"; + $retMessage['error'] .= "Neue Auswahl: (".join(",", $somePickedImages).")
"; + $retMessage['error'] .= "
"; + $retMessage['error'] .= " "; + foreach($somePickedImages as $img){ + $retMessage['error'] .= " "; + } + $retMessage['error'] .= " "; + $retMessage['error'] .= "
"; + } +return $retMessage; +} + +/// Ändern eines bereits erstellten Eintrages +function changePickedImages($aMysqlConn, $aGalId, $anUserId, $somePickedImages){ + +$retMessage = array(); +$galPickedImages = array(); + +/// Erstmal bisher ausgewählte Bilder abfragen ... + $queryPickedImages = sprintf( + "SELECT * FROM cwsvjudo.galImgPicker WHERE galId = '%s' AND userId = '%s';", + $aMysqlConn->real_escape_string($aGalId), + $aMysqlConn->real_escape_string($anUserId) + ); + + $resultsPickedImages = $aMysqlConn->query($queryPickedImages); + if( !$resultsPickedImages ){ + $retMessage['error'] .= "Fehler ('".$aMysqlConn->error."') bei Datenbankabfrage '".$queryPickedImages."'
"; + } + /// @todo Eigentlich sollte hier ja nur ein Ergebnis zurückgeliefert werden, das sollte auch überprüft werden + else{ + while( $pickedImagesResult = $resultsPickedImages->fetch_assoc() ){ + $galPickedImages = array_merge($galPickedImages, explode(',', $pickedImagesResult['pickedImages']) ); + } + } + + if( empty($galPickedImages) ) + $retMessage['error'] .= "Fehler: Kein Eintrag zum Ändern gefunden!"; + else{ + if( count($galPickedImages) < 6 ){ + $queryAddImages = sprintf( + "UPDATE cwsvjudo.galImgPicker pickedImages = '%s' WHERE galId = '%s' AND userId = '%s';", + $aMysqlConn->real_escape_string(join(",", $somePickedImages)), + $aMysqlConn->real_escape_string($aGalId), + $aMysqlConn->real_escape_string($anUserId) + ); + + $resultAddImages = $aMysqlConn->query($queryAddImages); + if( $resultAddImages ){ + $retMessage['info'] .= "Gewählten Bilder auf (".join(",", $somePickedImages).") geändert!
"; + } + else{ + $retMessage['error'] .= "Fehler: Konnte die Query '".$queryAddImages."' nicht ausführen ('".$aMysqlConn->error."')!
"; + } + } + else{ + $retMessage['error'] .= "Fehler: Es dürfen maximal 6 Bilder ausgewählt werden
"; + } + } +return $retMessage; +} + + + $loginStatus = "false"; + $galleryId = "0"; + $galPickedImages = array(); + +// Falls der serverseitige Logincookie nicht gesetzt ist ... + session_start(); + session_regenerate_id(); + if( empty($_SESSION['login']) ){ + $loginStatus = "false"; + $messages['info'] .= "Info: Der Bilderauswahlmodus ist nur möglich, wenn man angemeldet ist!
"; + } + else{ + $loginStatus = "true"; + /// @todo Testen, ob eine intZahl vorliegt + /// @todo Testen, ob wir in der richtigen Galerie sind + if( !empty($_POST['galId'] ) ) $galleryId = $_POST['galId']; + + $messages['info'] .= "Info: Der Bilderauswahlmodus für Galerie ".$galleryId." ist aktiv!
"; + +// Datenbankverbindung herstellen +/// @todo Ist die Db-Verbindung dann global? + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + + if($mysqlConn->connect_error){ + $message['error'] .= "Fehler: Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "
"; + } + else{/// bereits gewählte Bilder abfragen + $queryPickedImages = sprintf( + "SELECT * FROM galImgPicker WHERE galId = '%s' AND userId = '%s';", + $mysqlConn->real_escape_string($galleryId), + $mysqlConn->real_escape_string($_SESSION['user']['userId']) + + ); + + $pickedImagesResults = $mysqlConn->query($queryPickedImages); + if( !$pickedImagesResults ){ + $messages['error'] .= "Fehler bei Datenbankabfrage '".$queryPickedImages."'
"; + } + /// @todo Eigentlich sollte hier ja nur ein Ergebnis zurückgeliefert werden + else{ + while( $pickedImagesResult = $pickedImagesResults->fetch_assoc() ){ + //print_r($pickedImagesResult); + //print_r($pickedImagesResult['pickedImages']); + $galPickedImages = array_merge($galPickedImages, explode(',', $pickedImagesResult['pickedImages']) ); + } + } + + $addRetMessages = addPickedImages($mysqlConn, $galleryId, $_SESSION['user']['userId'], $_POST['pickedImages']); + + $mysqlConn->close(); + } + } + + + +?> + + + +
+ +
+ + + + + + + diff --git a/homepage/redesign2018/markdownExperiment/src/imgGallery/index.php.tmpl b/homepage/redesign2018/markdownExperiment/src/imgGallery/index.php.tmpl new file mode 100644 index 0000000..c5e5452 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/src/imgGallery/index.php.tmpl @@ -0,0 +1,364 @@ +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 + + $loginStatus = "false"; + $chooseMode = "false"; + $showAllMode = "false"; + $messages = array(); + $galleryId = "0"; + $pickedImages = array(); + + // Wie es scheint ist sind die Dateinamen auf bplaced in "ISO-8859-1" + array_walk( + $imgList, + function (&$value, $key) { + $value = iconv( "UTF-8", "ISO-8859-1",$value); + //$value = urlencode($value); + //$value = urlencode($value); + //$value = myUrlEncode($value); + //$value=implode('/', array_map('rawurlencode', explode('/', $value))); + $value=implode('/', array_map('myUrlEncode', explode('/', $value))); + }); + + +// echo("imgList: "); print_r($imgList); +// foreach($imgList as $img){ +// echo(" ".$img." startsWith images/ :".startsWith($img, "images/")."\n"); +// } + +/// Übergebene galleryId abfragen + if( !empty($_GET['galId'] ) ) $galleryId = $_GET['galId']; + /// @todo Woher erhalte ich die galleryID, wenn sie nicht übergeben wird? + +/* +/// Nachschauen, ob alle Bilder gezeigt werden sollen + if( $_GET['showAll'] == "true" ) + $showAllMode = "true"; +// Testen, ob wir im Bilderauswahlmodus sind... + if($_GET['chooseMode'] == "true"){ + $showAllMode = "true"; // Im Bildauswahlmodus sollten auch alle Bilder angezeigt werden + $chooseMode = "true"; + // Falls ja, dann teste, ob man angemeldet ist + /// @todo brauche ich das, wenn ich nur testen will, ob bereits angemeldet ist? -> anscheinend ja! + session_start(); + session_regenerate_id(); + // Falls der serverseitige Logincookie nicht gesetzt ist + if( empty($_SESSION['login']) ){ + $loginStatus = "false"; + $messages['info'] .= "Info: Der Bilderauswahlmodus ist nur möglich, wenn man angemeldet ist!
"; + } + else{ + $loginStatus = "true"; + /// @todo Testen, ob eine intZahl vorliegt + /// @todo Testen, ob wir in der richtigen Galerie sind + $messages['info'] .= "Info: Der Bilderauswahlmodus für Galerie ".$galleryId." ist aktiv!
"; + } + } + + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + + if($mysqlConn->connect_error){ + $message['error'] .= "Fehler: Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "
"; + } + else{ + $pickedImages = getPickedImages( $mysqlConn, $galleryId ); + $mysqlConn->close(); + } +*/ +/// Überschreiben der imgList mit den ausgewählten Bildern + $allImgList = $imgList; // Sicherungskopie + //echo("imgList:");print_r($imgList); +// echo("pickedImages: "); print_r($pickedImages); + + if( count($pickedImages) > 24 ) + $pickedImages = array_rand( $pickedImages, 24); + else{ + $restImages = array_diff( $allImgList, $pickedImages ); + //echo("restImages: "); print_r($restImages); + //echo("count(restImages): ".count($restImages)); + //echo("count(24-count($pickedImages)): ".(24-count($pickedImages))); + foreach( array_rand( $restImages, min(24, count($restImages))-count($pickedImages) ) as $k ) { + $pickedImages[] = $restImages[$k]; + } +// echo("pickedImages: "); print_r($pickedImages); + } + $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))); + } + } + +?> + + + + <?php echo $wkName?> - Bilderalbum<?php echo( !empty($showAllMode)?($showAllMode == "true" ? " - alle Bilder" : "") : "");?> + + + + "> + + + + + + + + + + + + + + + + + + + + + Zur Galerieübersicht + +
+ +
+ + +

+ Photoalbum [] +

+ +

+ [ Bilder] +

+ + > + +

+ Auf die jeweiligen Bilder klicken um eine größere Ansicht zu bekommen. +

+
+ + + +" ); + echo( "" ); + } +?> + "); + } +?> + +Eingaben absenden" ); + echo( "" ); + } +?> + + + + + + + + +
+ + diff --git a/homepage/redesign2018/markdownExperiment/src/imgGallery/indexDev.php.tmpl b/homepage/redesign2018/markdownExperiment/src/imgGallery/indexDev.php.tmpl new file mode 100644 index 0000000..12d70a0 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/src/imgGallery/indexDev.php.tmpl @@ -0,0 +1,349 @@ +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 + + $loginStatus = "false"; + $chooseMode = "false"; + $showAllMode = "false"; + $messages = array(); + $galleryId = "0"; + $pickedImages = array(); + +// echo("imgList: "); print_r($imgList); +// foreach($imgList as $img){ +// echo(" ".$img." startsWith images/ :".startsWith($img, "images/")."\n"); +// } + +/// Übergebene galleryId abfragen + if( !empty($_GET['galId'] ) ) $galleryId = $_GET['galId']; + /// @todo Woher erhalte ich die galleryID, wenn sie nicht übergeben wird? + +/// Nachschauen, ob alle Bilder gezeigt werden sollen + if( $_GET['showAll'] == "true" ) + $showAllMode = "true"; + +// Testen, ob wir im Bilderauswahlmodus sind... + if($_GET['chooseMode'] == "true"){ + $showAllMode = "true"; // Im Bildauswahlmodus sollten auch alle Bilder angezeigt werden + $chooseMode = "true"; + // Falls ja, dann teste, ob man angemeldet ist + /// @todo brauche ich das, wenn ich nur testen will, ob bereits angemeldet ist? -> anscheinend ja! + session_start(); + session_regenerate_id(); + // Falls der serverseitige Logincookie nicht gesetzt ist + if( empty($_SESSION['login']) ){ + $loginStatus = "false"; + $messages['info'] .= "Info: Der Bilderauswahlmodus ist nur möglich, wenn man angemeldet ist!
"; + } + else{ + $loginStatus = "true"; + /// @todo Testen, ob eine intZahl vorliegt + /// @todo Testen, ob wir in der richtigen Galerie sind + $messages['info'] .= "Info: Der Bilderauswahlmodus für Galerie ".$galleryId." ist aktiv!
"; + } + } + + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + + if($mysqlConn->connect_error){ + $message['error'] .= "Fehler: Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "
"; + } + else{ + $pickedImages = getPickedImages( $mysqlConn, $galleryId ); + $mysqlConn->close(); + } + +/// Überschreiben der imgList mit den ausgewählten Bildern + $allImgList = $imgList; // Sicherungskopie + //echo("imgList:");print_r($imgList); +// echo("pickedImages: "); print_r($pickedImages); + + if( count($pickedImages) > 24 ) + $pickedImages = array_rand( $pickedImages, 24); + else{ + $restImages = array_diff( $allImgList, $pickedImages ); + //echo("restImages: "); print_r($restImages); + //echo("count(restImages): ".count($restImages)); + //echo("count(24-count($pickedImages)): ".(24-count($pickedImages))); + foreach( array_rand( $restImages, min(24, count($restImages))-count($pickedImages) ) as $k ) { + $pickedImages[] = $restImages[$k]; + } +// echo("pickedImages: "); print_r($pickedImages); + } + $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))); + } + } + +?> + + + + + <?php echo $wkName?> - Bilderalbum<?php echo( !empty($showAllMode)?($showAllMode == "true" ? " - alle Bilder" : "") : "");?> + + + "> + + + + + + + + + + + + + + + + + + + + + Zur Galerieübersicht"; + else echo "Zur Galerieübersicht"; + ?> + +
+ +
+ + +

+ Photoalbum [] +

+ +

+ [ Bilder] +

+ + > + +

+ Auf die jeweiligen Bilder klicken um eine größere Ansicht zu bekommen. +

+
+ + + + + +" ); + echo( "" ); + } +?> + "); + } +?> + +Eingaben absenden" ); + echo( "" ); + } +?> + + + + + + + + +
+ + + + Besucher online: {V_VISITORS_CURRENTLY_ONLINE} + Besucher bisher: {V_PAGE_VIEWS_THIS_PAGE} + + +TEMPLATE; +$chCounter_page_title = "Photoalbum ".$wkName; +$chCounter_visible=1; include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');?> + + + diff --git a/homepage/redesign2018/markdownExperiment/src/imgGallery/view.php.tmpl b/homepage/redesign2018/markdownExperiment/src/imgGallery/view.php.tmpl new file mode 100644 index 0000000..103c076 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/src/imgGallery/view.php.tmpl @@ -0,0 +1,95 @@ + 0, "Bilder leider nicht verfügbar!"); + $currIndex = intval( $_GET["index"] ); + if( $currIndex < 0 ) $currIndex = 0; + if( $currIndex >= $imgSize) $currIndex = $imgSize-1; +?> + + + + <?php echo $wkName;?> Einzelansicht [<?php echo $currIndex;?>/<?php echo $imgSize;?>] + + + + + + + + + + + + + + +

+ + + + + + + + +