From 1f811930f393782782025a2f47edb094be935d53 Mon Sep 17 00:00:00 2001 From: marko Date: Sun, 1 Jul 2018 15:01:09 +0200 Subject: [PATCH] Bildergalerie als Backup von der bplaced-Seite neue Datei: phpLib/imgGallery/imgPicker.php neue Datei: phpLib/imgGallery/index.php.tmpl neue Datei: phpLib/imgGallery/indexDev.php.tmpl neue Datei: phpLib/imgGallery/view.php.tmpl --- .../phpLib/imgGallery/imgPicker.php | 191 +++++++++ .../phpLib/imgGallery/index.php.tmpl | 365 ++++++++++++++++++ .../phpLib/imgGallery/indexDev.php.tmpl | 349 +++++++++++++++++ .../phpLib/imgGallery/view.php.tmpl | 95 +++++ 4 files changed, 1000 insertions(+) create mode 100644 homepage/redesign2018/markdownExperiment/phpLib/imgGallery/imgPicker.php create mode 100644 homepage/redesign2018/markdownExperiment/phpLib/imgGallery/index.php.tmpl create mode 100644 homepage/redesign2018/markdownExperiment/phpLib/imgGallery/indexDev.php.tmpl create mode 100644 homepage/redesign2018/markdownExperiment/phpLib/imgGallery/view.php.tmpl diff --git a/homepage/redesign2018/markdownExperiment/phpLib/imgGallery/imgPicker.php b/homepage/redesign2018/markdownExperiment/phpLib/imgGallery/imgPicker.php new file mode 100644 index 0000000..34236ed --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/phpLib/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/phpLib/imgGallery/index.php.tmpl b/homepage/redesign2018/markdownExperiment/phpLib/imgGallery/index.php.tmpl new file mode 100644 index 0000000..f09b982 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/phpLib/imgGallery/index.php.tmpl @@ -0,0 +1,365 @@ +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 + 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/phpLib/imgGallery/indexDev.php.tmpl b/homepage/redesign2018/markdownExperiment/phpLib/imgGallery/indexDev.php.tmpl new file mode 100644 index 0000000..12d70a0 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/phpLib/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/phpLib/imgGallery/view.php.tmpl b/homepage/redesign2018/markdownExperiment/phpLib/imgGallery/view.php.tmpl new file mode 100644 index 0000000..103c076 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/phpLib/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;?>] + + + + + + + + + + + + + + +

+ + + + + + + + +