-simplication: $images_du_mois est un tableau qui rassemble les chemins SD et HD, les exifs pour toutes des les images de l’album *photo-du-mois* -utilisation de PDO pour les requêtes MySQL -utilisation de kk-lightbox comme Lightbox
500 lines
14 KiB
PHP
Executable File
500 lines
14 KiB
PHP
Executable File
<?php load_theme_textdomain('toppic-child', get_template_directory() . '-child/languages'); ?>
|
|
<?php
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* ENQUEUES STYLES
|
|
/*-----------------------------------------------------------------------------------*/
|
|
|
|
function kktfwp_parent_styles() {
|
|
//wp_enqueue_style( 'kk-reset', get_theme_file_uri('/css/reset.css'), array(), KKFW_VERSION );
|
|
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css', array( 'kk-icons', 'kk-reset', 'kk-default' ), wp_get_theme()->get('Version') );
|
|
}
|
|
|
|
add_action( 'wp_enqueue_scripts', 'kktfwp_parent_styles' );
|
|
|
|
/*
|
|
* Filter for disabling the update notice in admin panel
|
|
*
|
|
*/
|
|
|
|
//add_filter( 'kkHideUpdateNotice', 'kkHideUpdateNotice' );
|
|
|
|
function kkHideUpdateNotice() {
|
|
return true;
|
|
}
|
|
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* WRITE YOUR OWN FUNCTIONS BELOW
|
|
/*-----------------------------------------------------------------------------------*/
|
|
|
|
/* Returns the name of one random file from within a directory
|
|
livre-d-or.php:39:
|
|
*/
|
|
|
|
function getRandomFile($start_dir) {
|
|
|
|
chdir($start_dir);
|
|
$dir = opendir('.');
|
|
while (($myfile = readdir($dir)) !==false) {
|
|
if ($myfile != '.' && $myfile != '..' && is_file($myfile) && $myfile != 'resource.frk') {
|
|
$files[] = $myfile;
|
|
}
|
|
}
|
|
closedir($dir);
|
|
chdir('../');
|
|
srand ((float) microtime() * 10000000);
|
|
$file = array_rand($files);
|
|
return $files[$file];
|
|
}
|
|
|
|
function show_bookmark_list(){ ?>
|
|
<ul>
|
|
<?php
|
|
$args = array(
|
|
'title_before' => '<h3>',
|
|
'title_after' => '</h3>',
|
|
);
|
|
wp_list_bookmarks( $args ); ?>
|
|
</ul>
|
|
<?php
|
|
}
|
|
add_shortcode('show_bookmark_list', 'show_bookmark_list');
|
|
|
|
|
|
/*
|
|
ce-mois.php
|
|
ce-mois-ci.php
|
|
*functions.php - date_archive()
|
|
*/
|
|
function mois2 ($mois) {
|
|
switch ($mois)
|
|
{
|
|
case 00:
|
|
$mois = "00";
|
|
break;
|
|
case 1:
|
|
$mois = __('January','toppic-child');
|
|
break;
|
|
case 2:
|
|
$mois = __('February','toppic-child');
|
|
break;
|
|
case 3:
|
|
$mois = __('March','toppic-child');
|
|
break;
|
|
case 4:
|
|
$mois = __('April','toppic-child');
|
|
break;
|
|
case 5:
|
|
$mois = __('May','toppic-child');
|
|
break;
|
|
case 6:
|
|
$mois = __('June','toppic-child');
|
|
break;
|
|
case 7:
|
|
$mois = __('July','toppic-child');
|
|
break;
|
|
case 8:
|
|
$mois = __('August','toppic-child');
|
|
break;
|
|
case 9:
|
|
$mois = __('September','toppic-child');
|
|
break;
|
|
case 10:
|
|
$mois = __('October','toppic-child');
|
|
break;
|
|
case 11:
|
|
$mois = __('November','toppic-child');
|
|
break;
|
|
case 12:
|
|
$mois = __('December','toppic-child');
|
|
break;
|
|
}
|
|
return $mois;
|
|
}
|
|
|
|
|
|
/*
|
|
Retourne la liste des images d'un album Zenphoto
|
|
page-ce-mois-ci.php:259
|
|
*/
|
|
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 = '<div class="album">';
|
|
$display .= '<div class="holder">';
|
|
$display .= '<a href="' . $fullpath . 'albums/'.$album.'/'.$file['filename'].'" title="'.date_archive($file['filename']).'" class="kk-lightbox">';
|
|
/*
|
|
$display .= '<picture data-picture data-alt="">';
|
|
$display .= '<!--[if IE 9]><video style="display: none;"><![endif]-->';
|
|
$display .= '<source class="image_standard" srcset="' . $standard . '">';
|
|
|
|
$display .= '<!--[if IE 9]></video><![endif]-->';
|
|
$display .= '<img srcset="' . $thumb['sd']['url'] . '" width="' . $thumb['sd']['width'] . '" height="' . $thumb['sd']['height'] . '"alt="">';
|
|
$display .= '</picture>';
|
|
|
|
$display .= '<img width="" height=""
|
|
src="../../../zenphoto/cache/photos-du-mois/10_2016_200_thumb.jpg"
|
|
class="" alt=""
|
|
srcset="../../../zenphoto/cache/photos-du-mois/10_2016_200_thumb.jpg 200w,
|
|
../../../zenphoto/cache/photos-du-mois/10_2016_400_thumb.jpg 400w"
|
|
sizes="(max-width: 200px) 100vw, 200px" />';
|
|
|
|
$display .= '<img width="' . $thumb['sd']['width'] . '" height="' . $thumb['sd']['height'] . '"
|
|
src="' . $thumb['sd']['url'] . '"
|
|
class="" alt=""
|
|
srcset="' . $standard . '"
|
|
sizes="(max-width: 200px) 100vw, 200px" />';
|
|
*/
|
|
$display .= "<img width='" . $thumb['sd']['width'] . "' height='" . $thumb['sd']['height'] . "' src='" . $thumb['sd']['url'] . "' class='' alt='' srcset='" . $standard . "' sizes='(max-width: 200px) 100vw, 200px' />";
|
|
|
|
$display .= '</a>';
|
|
$display .= '</div>';
|
|
$display .= '<div class="albumdesc">';
|
|
$display .= '<a href="../../zenphoto/index.php?album='.$album.'&image='.$filename.'" title= "'.date_archive($file['filename']).'" class="">';
|
|
$display .= '<span class="exif">'.date_archive($file['filename']).'</span>';
|
|
$display .= '</a></div>';
|
|
$display .= '</div>' . "\r\n";
|
|
|
|
//echo "display: " . $display;
|
|
|
|
return $display;
|
|
}
|
|
|
|
|
|
function displayRetina_bak ($filename,$album) {
|
|
|
|
global $ppage;
|
|
|
|
if ($ppage == "1") {
|
|
$fullpath = "../../zenphoto/";
|
|
}
|
|
else {
|
|
$fullpath = "../../../zenphoto/";
|
|
}
|
|
$file = explode(".", $filename);
|
|
|
|
$thumbpath = "../zenphoto/cache/" . $album . "/";
|
|
$a = $path . $filename;
|
|
|
|
$file_sd = $thumbpath . $file[0] . "_200_thumb.jpg";
|
|
$file_hd = $thumbpath . $file[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 = '<div class="album">';
|
|
$display .= '<div class="holder">';
|
|
$display .= '<a href="' . $fullpath . 'albums/'.$album.'/'.$filename.'" title="'.date_archive($filename).'" class="kk-lightbox">';
|
|
/*
|
|
$display .= '<picture data-picture data-alt="">';
|
|
$display .= '<!--[if IE 9]><video style="display: none;"><![endif]-->';
|
|
$display .= '<source class="image_standard" srcset="' . $standard . '">';
|
|
|
|
$display .= '<!--[if IE 9]></video><![endif]-->';
|
|
$display .= '<img srcset="' . $thumb['sd']['url'] . '" width="' . $thumb['sd']['width'] . '" height="' . $thumb['sd']['height'] . '"alt="">';
|
|
$display .= '</picture>';
|
|
|
|
$display .= '<img width="" height=""
|
|
src="../../../zenphoto/cache/photos-du-mois/10_2016_200_thumb.jpg"
|
|
class="" alt=""
|
|
srcset="../../../zenphoto/cache/photos-du-mois/10_2016_200_thumb.jpg 200w,
|
|
../../../zenphoto/cache/photos-du-mois/10_2016_400_thumb.jpg 400w"
|
|
sizes="(max-width: 200px) 100vw, 200px" />';
|
|
|
|
$display .= '<img width="' . $thumb['sd']['width'] . '" height="' . $thumb['sd']['height'] . '"
|
|
src="' . $thumb['sd']['url'] . '"
|
|
class="" alt=""
|
|
srcset="' . $standard . '"
|
|
sizes="(max-width: 200px) 100vw, 200px" />';
|
|
*/
|
|
$display .= "<img width='" . $thumb['sd']['width'] . "' height='" . $thumb['sd']['height'] . "' src='" . $thumb['sd']['url'] . "' class='' alt='' srcset='" . $standard . "' sizes='(max-width: 200px) 100vw, 200px' />";
|
|
|
|
$display .= '</a>';
|
|
$display .= '</div>';
|
|
$display .= '<div class="albumdesc">';
|
|
$display .= '<a href="../../zenphoto/index.php?album='.$album.'&image='.$filename.'" title= "'.date_archive($filename).'" class="">';
|
|
$display .= '<span class="exif">'.date_archive($filename).'</span>';
|
|
$display .= '</a></div>';
|
|
$display .= '</div>' . "\r\n";
|
|
|
|
//echo "display: " . $display;
|
|
|
|
return $display;
|
|
}
|
|
|
|
/*
|
|
*functions.php - displayRetina() displayRetina()
|
|
*/
|
|
function date_archive ($chaine) {
|
|
$pieces = explode(".", $chaine);
|
|
$b = explode("_", $pieces[0]);
|
|
$mois = $b[0];
|
|
$an = $b[1];
|
|
$chaine = mois2($mois) . ' '. $an;
|
|
return $chaine;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function preprint($s, $return=false) {
|
|
$x = "<pre>";
|
|
$x .= print_r($s, 1);
|
|
$x .= "</pre>";
|
|
if ($return) return $x;
|
|
else print $x;
|
|
}
|