diff --git a/functions.php b/functions.php index e1f7fc4..9747ea9 100755 --- a/functions.php +++ b/functions.php @@ -113,9 +113,267 @@ function mois2 ($mois) { /* -ce-mois-ci.php +Retourne la liste des images d'un album Zenphoto +page-ce-mois-ci.php:259 */ -function displayRetina ($filename,$album) { +function imagesFromZPAlbum ($album, $connexion) { + + $table = array(); + $table['images'] = $connexion['zp_prefix'] . "images"; + $table['albums'] = $connexion['zp_prefix'] . "albums"; + + // ****** Mysqli ****** // + /* + $conn = new mysqli($connexion['host'], $connexion['user'], $connexion['password'], $connexion['db_zenphoto']); + if ($conn->connect_error) { + trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); + exit(); + } + $conn->set_charset("utf8"); + + $excquery = "SELECT `id` FROM `" . $table['albums'] . "` WHERE `folder` = '" . $album . "'"; + + if ($result = $conn->query($excquery)) { + $result->data_seek(0); + $row = $result->fetch_row(); + $id_album = $row[0]; + $result->close(); + } + + $pictquery = "SELECT `filename`, `EXIFModel`, `EXIFDateTimeOriginal`, `EXIFExposureTime`, `EXIFFNumber`, `EXIFISOSpeedRatings`, `EXIFFocalLength`, `EXIFGPSLatitude`, `EXIFGPSLatitudeRef`, `EXIFGPSLongitude`, `EXIFGPSLongitudeRef`, `EXIFGPSAltitude`, `EXIFGPSAltitudeRef`, `desc`, `title` FROM `" . $table['images'] . "` WHERE `albumid` = ? ORDER BY `date` DESC"; + + $stmt = $conn->prepare($pictquery); + if($stmt === false) { + trigger_error('Wrong SQL: ' . $pictquery . ' Error: ' . $conn->error, E_USER_ERROR); + } + else { + $stmt->bind_param('i', $id_album); + $stmt->execute(); + $fichier = $stmt->get_result()->fetch_all(); + } + $stmt->close(); + */ + /* + Array + ( + [0] => Array + ( + [0] => 11_2018.jpg + [1] => Canon EOS-1D Mark IV + [2] => 2018:11:04 11:05:09 + [3] => 1/2000 sec + [4] => f/7,1 + [5] => 500 + [6] => 700 mm + [7] => + [8] => + [9] => + [10] => + [11] => + [12] => + [13] => + [14] => 11_2018 + ) + */ + + // ****** /Mysqli ****** // + + + // ****** PDO ****** // + + $charset = 'utf8'; + $host = $connexion['host']; + $dbname = $connexion['db_zenphoto']; + + $dsn = "mysql:host=$host;dbname=$dbname;charset=$charset"; + $options = [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]; + try { + $pdo = new PDO($dsn, $connexion['user'], $connexion['password'], $options); + } catch (\PDOException $e) { + throw new \PDOException($e->getMessage(), (int)$e->getCode()); + } + + $excquery = "SELECT `id` FROM `" . $table['albums'] . "` WHERE `folder` = '" . $album . "'"; + $stmt = $pdo->query($excquery); + while ($row = $stmt->fetch()) { + //echo $row['id'] . "\n"; + $id_album = $row['id']; + } + + $pictquery = "SELECT `filename`, `EXIFModel`, `EXIFDateTimeOriginal`, `EXIFExposureTime`, `EXIFFNumber`, `EXIFISOSpeedRatings`, `EXIFFocalLength`, `EXIFLensInfo`, `EXIFGPSLatitude`, `EXIFGPSLatitudeRef`, `EXIFGPSLongitude`, `EXIFGPSLongitudeRef`, `EXIFGPSAltitude`, `EXIFGPSAltitudeRef`, `desc`, `title` FROM `" . $table['images'] . "` WHERE `albumid` = ? ORDER BY `date` DESC"; + + $stmt = $pdo->prepare($pictquery); + $stmt->execute([$id_album]); + $fichier = $stmt->fetchAll(PDO::FETCH_ASSOC); + + /* + + Ajouter: EXIFLensInfo + + + Array + ( + [0] => Array + ( + [filename] => 11_2018.jpg + [EXIFModel] => Canon EOS-1D Mark IV + [EXIFDateTimeOriginal] => 2018:11:04 11:05:09 + [EXIFExposureTime] => 1/2000 sec + [EXIFFNumber] => f/7,1 + [EXIFISOSpeedRatings] => 500 + [EXIFFocalLength] => 700 mm + [EXIFGPSLatitude] => + [EXIFGPSLatitudeRef] => + [EXIFGPSLongitude] => + [EXIFGPSLongitudeRef] => + [EXIFGPSAltitude] => + [EXIFGPSAltitudeRef] => + [desc] => + [title] => 11_2018 + ) + */ + + //preprint($fichier); + + // ****** /PDO ****** // + + return $fichier; + } + +/* +page-ce-mois-ci.php +*/ +function displayRetina ($file,$album) { + + global $ppage; + + //preprint($file); + + /* + Array + ( + [filename] => 10_2018.jpg + [EXIFModel] => Canon EOS 5D Mark III + [EXIFDateTimeOriginal] => 2018:10:17 19:09:12 + [EXIFExposureTime] => 1/250 sec + [EXIFFNumber] => f/4 + [EXIFISOSpeedRatings] => 4000 + [EXIFFocalLength] => 500 mm + [EXIFLensInfo] => EF500mm f/4L IS USM + [EXIFGPSLatitude] => + [EXIFGPSLatitudeRef] => + [EXIFGPSLongitude] => + [EXIFGPSLongitudeRef] => + [EXIFGPSAltitude] => + [EXIFGPSAltitudeRef] => + [desc] => + [title] => 10_2018 + ) + */ + + if ($ppage == "1") { + $fullpath = "../../zenphoto/"; + } + else { + $fullpath = "../../../zenphoto/"; + } + $name = explode(".", $file['filename']); + + $thumbpath = "../zenphoto/cache/" . $album . "/"; + $a = $path . $filename; + + $file_sd = $thumbpath . $name[0] . "_200_thumb.jpg"; + $file_hd = $thumbpath . $name[0] . "_400_thumb.jpg"; + +//echo $file_sd; +//echo $file_hd; + + /* + $file_sd = $path . $file[0] . "_180_watermark.jpg"; + $file_hd = $path . $file[0] . "_360_watermark.jpg"; + */ + + $th_sd = false; + $th_hd = false; + + $thumb = array(); + + if (file_exists($file_sd)) { + $th_sd = true; + $size_sd = getimagesize($file_sd, $info); + $thumb['sd'] = array( + 'url' => "../../" . $file_sd, + 'width' => $size_sd[0], + 'height' => $size_sd[1] + ); + } + if (file_exists($file_hd)) { + $th_hd = true; + $size_hd = getimagesize($file_hd, $info); + $thumb['hd'] = array( + 'url' => "../../" . $file_hd, + 'width' => $size_hd[0], + 'height' => $size_hd[1] + ); + } + + if (($th_sd == true) && ($th_hd == true)) { + $standard = $thumb['sd']['url'] . ' 200w, ' . $thumb['hd']['url'] . ' 400w'; + } + elseif ($th_sd == true) { + $standard = $thumb['sd']['url'] . ' 200w'; + } + elseif ($th_hd == true) { + $standard = $thumb['hd']['url'] . ' 400w'; + } + + + $display = '
Titre
-Légende
- + + + + " alt="Image du mois" title="" /--> - - - -Légende
- + - connect_error) { - trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); - exit(); - } - $conn->set_charset("utf8"); - - $excquery = "SELECT `id` FROM `" . $table['albums'] . "` WHERE `folder` = '" . $album . "'"; - - if ($result = $conn->query($excquery)) { - $result->data_seek(0); - $row = $result->fetch_row(); - $id_album = $row[0]; - $result->close(); - } - - $conn->close(); - - // Récupérer toutes les fichiers de l'album 'photos-du-mois' ($fichier[]) - - $conn = new mysqli($dbhost, $dbuser, $dbpassword, $zptable); - if ($conn->connect_error) { - trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); - exit(); - } - $conn->set_charset("utf8"); - - $pictquery = "SELECT `filename` FROM `" . $table['images'] . "` WHERE `albumid` = ? ORDER BY `date` DESC"; - - $stmt = $conn->prepare($pictquery); - //echo $pictquery; - if($stmt === false) { - trigger_error('Wrong SQL: ' . $pictquery . ' Error: ' . $conn->error, E_USER_ERROR); - } - else { - $stmt->bind_param('i', $id_album); - $stmt->execute(); - $stmt->bind_result($filename); - while ($stmt->fetch()) { - $fichier[] = $filename; - $i++; - //echo $filename; - } - } - $stmt->close(); - - // -?> - ? Utilisation: cliquer sur une vignette, puis....