22-03-2022
This commit is contained in:
45
css/sls.css
45
css/sls.css
@@ -41,6 +41,7 @@ a:link, a:visited {
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**/
|
||||||
.myGallery .caption {
|
.myGallery .caption {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
@@ -59,7 +60,6 @@ a:link, a:visited {
|
|||||||
color: rgb(255, 255, 255);
|
color: rgb(255, 255, 255);
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
font-size: 1.2em
|
font-size: 1.2em
|
||||||
/*font: Ubuntu, sans-serif;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.myGallery .item:hover .caption {
|
.myGallery .item:hover .caption {
|
||||||
@@ -165,3 +165,46 @@ body {
|
|||||||
.exif {
|
.exif {
|
||||||
color: #999;
|
color: #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* insert_bdd.php */
|
||||||
|
|
||||||
|
.styled-table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin: 25px 0;
|
||||||
|
font-size: 0.9em;
|
||||||
|
font-family: sans-serif;
|
||||||
|
min-width: 400px;
|
||||||
|
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.styled-table thead tr {
|
||||||
|
background-color: #009879;
|
||||||
|
color: #ffffff;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.styled-table th, .styled-table td {
|
||||||
|
padding: 12px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.styled-table tbody tr {
|
||||||
|
border-bottom: 1px solid #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.styled-table tbody tr:nth-of-type(even) {
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.styled-table tbody tr:last-of-type {
|
||||||
|
border-bottom: 2px solid #009879;
|
||||||
|
}
|
||||||
|
|
||||||
|
.styled-table tbody tr.active-row {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #009879;
|
||||||
|
}
|
||||||
|
|
||||||
|
.styled-table img {
|
||||||
|
width: 150px
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ function month($w) {
|
|||||||
//setlocale(LC_TIME, 'fr_FR');
|
//setlocale(LC_TIME, 'fr_FR');
|
||||||
$m = date('m', strtotime($w)); // month
|
$m = date('m', strtotime($w)); // month
|
||||||
$y = date('Y', strtotime($w)); // year
|
$y = date('Y', strtotime($w)); // year
|
||||||
//echo $m . "-" . $y;
|
//echo $w . "- month: " . $m . "- year: " . $y;
|
||||||
|
|
||||||
// or any other locales like pl_PL, cs_CZ, fr_FR, zh, zh_Hans, ...
|
// or any other locales like pl_PL, cs_CZ, fr_FR, zh, zh_Hans, ...
|
||||||
$locale = 'fr_FR';
|
$locale = 'fr_FR';
|
||||||
@@ -26,6 +26,10 @@ function month($w) {
|
|||||||
DateTime::createFromFormat('n', (string)$month_number)
|
DateTime::createFromFormat('n', (string)$month_number)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
array_unshift($months_locale,"");
|
||||||
|
unset($months_locale[0]);
|
||||||
|
//_pr($months_locale);
|
||||||
$my = ucfirst($months_locale[(int)$m]) . " " . $y;
|
$my = ucfirst($months_locale[(int)$m]) . " " . $y;
|
||||||
//echo $my;
|
//echo $my;
|
||||||
return $my;
|
return $my;
|
||||||
@@ -38,16 +42,40 @@ function month($w) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function gps2Num($coordPart){
|
function gps2Num($coordPart){
|
||||||
|
/*
|
||||||
|
Array
|
||||||
|
(
|
||||||
|
[0] => 46/1
|
||||||
|
[1] => 408587/10000
|
||||||
|
[2] => 0/0
|
||||||
|
)
|
||||||
|
Array
|
||||||
|
(
|
||||||
|
[0] => 5/1
|
||||||
|
[1] => 562596/10000
|
||||||
|
[2] => 0/0
|
||||||
|
)
|
||||||
|
*/
|
||||||
|
|
||||||
$parts = explode('/', $coordPart);
|
$parts = explode('/', $coordPart);
|
||||||
|
//echo $parts[0].'-'.$parts[1].'<br>';
|
||||||
if(count($parts) <= 0)
|
if(count($parts) <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
if(count($parts) == 1)
|
if(count($parts) == 1)
|
||||||
return $parts[0];
|
return $parts[0];
|
||||||
return floatval($parts[0]) / floatval($parts[1]);
|
if($parts[1] != 0)
|
||||||
|
return floatval($parts[0]) / floatval($parts[1]);
|
||||||
|
else return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_gps($exif) {
|
function get_gps($exif) {
|
||||||
|
|
||||||
if($exif && isset($exif['GPS'])){
|
if($exif && isset($exif['GPS'])){
|
||||||
|
/*
|
||||||
|
echo $exif['FILE']['FileName'];
|
||||||
|
_pr($exif['GPS']['GPSLatitude']);
|
||||||
|
_pr($exif['GPS']['GPSLongitude']);
|
||||||
|
*/
|
||||||
$GPSLatitudeRef = isset($exif['GPS']['GPSLatitudeRef']) ? $exif['GPS']['GPSLatitudeRef'] : '';
|
$GPSLatitudeRef = isset($exif['GPS']['GPSLatitudeRef']) ? $exif['GPS']['GPSLatitudeRef'] : '';
|
||||||
$GPSLatitude = isset($exif['GPS']['GPSLatitude']) ? $exif['GPS']['GPSLatitude'] : '';
|
$GPSLatitude = isset($exif['GPS']['GPSLatitude']) ? $exif['GPS']['GPSLatitude'] : '';
|
||||||
$GPSLongitudeRef = isset($exif['GPS']['GPSLongitudeRef']) ? $exif['GPS']['GPSLongitudeRef'] : '';
|
$GPSLongitudeRef = isset($exif['GPS']['GPSLongitudeRef']) ? $exif['GPS']['GPSLongitudeRef'] : '';
|
||||||
@@ -58,7 +86,7 @@ function get_gps($exif) {
|
|||||||
$lat_minutes = count($GPSLatitude) > 1 ? gps2Num($GPSLatitude[1]) : 0;
|
$lat_minutes = count($GPSLatitude) > 1 ? gps2Num($GPSLatitude[1]) : 0;
|
||||||
$lat_seconds = count($GPSLatitude) > 2 ? gps2Num($GPSLatitude[2]) : 0;
|
$lat_seconds = count($GPSLatitude) > 2 ? gps2Num($GPSLatitude[2]) : 0;
|
||||||
|
|
||||||
$lon_degrees = count($GPSLongitude) > 0 ? gps2Num($GPSLongitude[0]) : 0;
|
$lon_degrees = count($GPSLongitude) > 0 ? gps2Num($GPSLongitude[0]) : 0;
|
||||||
$lon_minutes = count($GPSLongitude) > 1 ? gps2Num($GPSLongitude[1]) : 0;
|
$lon_minutes = count($GPSLongitude) > 1 ? gps2Num($GPSLongitude[1]) : 0;
|
||||||
$lon_seconds = count($GPSLongitude) > 2 ? gps2Num($GPSLongitude[2]) : 0;
|
$lon_seconds = count($GPSLongitude) > 2 ? gps2Num($GPSLongitude[2]) : 0;
|
||||||
|
|
||||||
@@ -68,7 +96,7 @@ function get_gps($exif) {
|
|||||||
$latitude = $lat_direction * ($lat_degrees + ($lat_minutes / 60) + ($lat_seconds / (60*60)));
|
$latitude = $lat_direction * ($lat_degrees + ($lat_minutes / 60) + ($lat_seconds / (60*60)));
|
||||||
$longitude = $lon_direction * ($lon_degrees + ($lon_minutes / 60) + ($lon_seconds / (60*60)));
|
$longitude = $lon_direction * ($lon_degrees + ($lon_minutes / 60) + ($lon_seconds / (60*60)));
|
||||||
|
|
||||||
$alt = explode('/', $exif['GPS']["GPSAltitude"]);
|
$alt = explode('/', $GPSAltitude);
|
||||||
$altitude = (isset($alt[1])) ? ($alt[0] / $alt[1]) : $alt[0];
|
$altitude = (isset($alt[1])) ? ($alt[0] / $alt[1]) : $alt[0];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -77,11 +105,13 @@ function get_gps($exif) {
|
|||||||
$altitude = '';
|
$altitude = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//echo $latitude . " - " . $longitude . " - " . $altitude;
|
||||||
|
|
||||||
return array('latitude'=>$latitude, 'longitude'=>$longitude, 'altitude'=>$altitude);
|
return array('latitude'=>$latitude, 'longitude'=>$longitude, 'altitude'=>$altitude);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Fonction create_thumb(): Création des vigntettes
|
/* Fonction create_thumb(): Création des vignettes
|
||||||
|
|
||||||
insert_bdd.php
|
insert_bdd.php
|
||||||
*/
|
*/
|
||||||
@@ -188,4 +218,20 @@ function geo_single_fracs2dec($fracs) {
|
|||||||
geo_frac2dec($fracs[2]) / 3600;
|
geo_frac2dec($fracs[2]) / 3600;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**/
|
||||||
|
function host() {
|
||||||
|
$pv_sslport=443;
|
||||||
|
//$pv_serverport=80;
|
||||||
|
//$pv_servername="sur-le-sentier.fr";
|
||||||
|
|
||||||
|
$pv_URIprotocol = isset($_SERVER["HTTPS"]) ? (($_SERVER["HTTPS"]==="on" || $_SERVER["HTTPS"]===1 || $_SERVER["SERVER_PORT"]===$pv_sslport) ? "https://" : "http://") : (($_SERVER["SERVER_PORT"]===$pv_sslport) ? "https://" : "http://");
|
||||||
|
if ($_SERVER['HTTP_HOST'] == "sur-le-sentier.fr") {
|
||||||
|
$host = $pv_URIprotocol . $_SERVER['HTTP_HOST'] . "/";
|
||||||
|
}
|
||||||
|
elseif ($_SERVER['HTTP_HOST'] == "airbook.local") {
|
||||||
|
$host = $pv_URIprotocol . $_SERVER['HTTP_HOST'] . "/sls/";
|
||||||
|
}
|
||||||
|
return $host;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
140
insert_bdd.php
140
insert_bdd.php
@@ -1,7 +1,25 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Insert photos in Sqlite base</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="css/sls.css" />
|
||||||
|
<link rel='stylesheet' href='css/lc_lightbox.min.css' />
|
||||||
|
<link rel='stylesheet' href='css/open_close_fx.css' />
|
||||||
|
<link rel='stylesheet' href='css/minimal.css' />
|
||||||
|
|
||||||
|
<?php include 'functions.php'; ?>
|
||||||
|
<script src='https://code.jquery.com/jquery-3.2.1.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
include 'functions.php';
|
|
||||||
|
|
||||||
$base = 'db_photo.sqlite3';
|
$base = 'db_photo.sqlite3';
|
||||||
|
|
||||||
// Taille des vignettes
|
// Taille des vignettes
|
||||||
@@ -11,6 +29,8 @@ $th_h = 300;
|
|||||||
//Get a list of file paths using the glob function.
|
//Get a list of file paths using the glob function.
|
||||||
$fileList = glob('photos/img/*');
|
$fileList = glob('photos/img/*');
|
||||||
|
|
||||||
|
echo '<h3>Creation de la base <i>' . $base . '</i> et de la table <i>photo</i> (si nécessaire)...</h3>';
|
||||||
|
|
||||||
// Création de la base et de la table photos
|
// Création de la base et de la table photos
|
||||||
$conn = new PDO("sqlite:db_photo.sqlite3");
|
$conn = new PDO("sqlite:db_photo.sqlite3");
|
||||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
@@ -37,7 +57,8 @@ $query = "CREATE TABLE IF NOT EXISTS photos (
|
|||||||
UNIQUE(filename)
|
UNIQUE(filename)
|
||||||
)";
|
)";
|
||||||
$conn->exec($query);
|
$conn->exec($query);
|
||||||
$conn = null;
|
|
||||||
|
echo '<h3>Lecture des fichiers images dans le dossier <i>photos/img/</i>...</h3>';
|
||||||
|
|
||||||
$i = 1;
|
$i = 1;
|
||||||
|
|
||||||
@@ -86,9 +107,6 @@ foreach($fileList as $file){
|
|||||||
'alt' => $gps['altitude']
|
'alt' => $gps['altitude']
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//_pr($photos);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($iptc = getimagesize($file, $info)) {
|
if ($iptc = getimagesize($file, $info)) {
|
||||||
@@ -100,18 +118,18 @@ foreach($fileList as $file){
|
|||||||
$titre = (isset($iptc["2#105"][0])) ? $iptc["2#105"][0] : '';
|
$titre = (isset($iptc["2#105"][0])) ? $iptc["2#105"][0] : '';
|
||||||
$createur = (isset($iptc["2#080"][0])) ? $iptc["2#080"][0] : '';
|
$createur = (isset($iptc["2#080"][0])) ? $iptc["2#080"][0] : '';
|
||||||
$mots_cles = (isset($iptc["2#025"])) ? $iptc["2#025"] : '';
|
$mots_cles = (isset($iptc["2#025"])) ? $iptc["2#025"] : '';
|
||||||
foreach ($mots_cles as $m) {
|
if (!empty($mots_cles)) {
|
||||||
$mots .= $m . ",";
|
foreach ($mots_cles as $key => $val) {
|
||||||
}
|
$mots .= $val . ",";
|
||||||
$mots = substr($mots, 0, -1);
|
}
|
||||||
|
$mots = substr($mots, 0, -1);
|
||||||
|
}
|
||||||
|
|
||||||
$photos[$i]['legende'] = $legende;
|
$photos[$i]['legende'] = $legende;
|
||||||
$photos[$i]['copyright'] = $copyright;
|
$photos[$i]['copyright'] = $copyright;
|
||||||
$photos[$i]['titre'] = $titre;
|
$photos[$i]['titre'] = $titre;
|
||||||
$photos[$i]['createur'] = $createur;
|
$photos[$i]['createur'] = $createur;
|
||||||
$photos[$i]['mots_cles'] = $mots;
|
$photos[$i]['mots_cles'] = $mots;
|
||||||
|
|
||||||
//_pr($photos);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -119,15 +137,40 @@ foreach($fileList as $file){
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
//_pr($photos);
|
$query5 = "SELECT MAX(id) FROM photos";
|
||||||
|
//$conn->$stmt->execute($query5);
|
||||||
|
$stmt = $conn->prepare($query5);
|
||||||
|
$stmt->execute();
|
||||||
|
//$resultat = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
/*
|
||||||
|
Array
|
||||||
|
(
|
||||||
|
[0] => Array
|
||||||
|
(
|
||||||
|
[MAX(id)] => 5
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
*/
|
||||||
|
$resultat = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||||
|
/*
|
||||||
|
Array
|
||||||
|
(
|
||||||
|
[MAX(id)] => 5
|
||||||
|
)
|
||||||
|
*/
|
||||||
|
//_pr($resultat);
|
||||||
|
$nb_avant = $resultat['MAX(id)'];
|
||||||
|
|
||||||
|
|
||||||
|
echo '<h3>Création des vignettes dans le dossier <i>photos/thumb/</i> et insertion dans la base...</h3>';
|
||||||
|
|
||||||
// Insertion des photos dans la base
|
// Insertion des photos dans la base
|
||||||
// Création des vignettes
|
// Création des vignettes
|
||||||
try {
|
try {
|
||||||
$conn2 = new PDO('sqlite:db_photo.sqlite3');
|
|
||||||
$query2 = "INSERT OR IGNORE INTO photos (filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords) VALUES (:filename, :date, :lens, :exposure, :iso, :width, :height, :html, :aperture, :model, :lat, :long, :alt, :legende, :copyright, :titre, :createur, :keywords)";
|
$query2 = "INSERT OR IGNORE INTO photos (filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords) VALUES (:filename, :date, :lens, :exposure, :iso, :width, :height, :html, :aperture, :model, :lat, :long, :alt, :legende, :copyright, :titre, :createur, :keywords)";
|
||||||
|
|
||||||
$stmt = $conn2->prepare($query2);
|
$stmt = $conn->prepare($query2);
|
||||||
$stmt->bindParam(':filename', $file);
|
$stmt->bindParam(':filename', $file);
|
||||||
$stmt->bindParam(':date', $da);
|
$stmt->bindParam(':date', $da);
|
||||||
$stmt->bindParam(':lens', $obj);
|
$stmt->bindParam(':lens', $obj);
|
||||||
@@ -175,31 +218,72 @@ try {
|
|||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn2 = null;
|
|
||||||
}
|
}
|
||||||
catch(PDOException $e) {
|
catch(PDOException $e) {
|
||||||
echo $e->getMessage();
|
echo $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Affichage depuis la bdd */
|
/* Affichage depuis la bdd des dernières images ajoutées */
|
||||||
/**/
|
/* */
|
||||||
try {
|
try {
|
||||||
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos WHERE id > ? ORDER BY date DESC";
|
||||||
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos WHERE id >= ? AND id <= ? ORDER BY date DESC";
|
//$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos WHERE lat != '' OR long != '' ORDER BY date DESC";
|
||||||
|
|
||||||
$stmt = $conn4->prepare($query4);
|
$stmt = $conn->prepare($query4);
|
||||||
|
$stmt->bindValue(1, $nb_avant, SQLITE3_INTEGER); // (1,3...) 1=1ere valeur 3=valeur
|
||||||
# id 1 -> 3
|
# id 1 -> 3
|
||||||
$stmt->execute(array(1, 3));
|
//$stmt->execute(array(1, 3)); // WHERE id >= ? AND id <= ? ORDER BY date DESC";
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
//$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
_pr($result);
|
//_pr($result);
|
||||||
|
|
||||||
$conn4 = null;
|
echo '<h3>Lecture des photos ajoutées:</h3>';
|
||||||
|
echo '<div id="add_to_bdd">';
|
||||||
|
echo '<table class="styled-table">';
|
||||||
|
echo '<thead>';
|
||||||
|
echo '<th>Thumb</th><th>Filename</th><th>Date</th><th>Lens</th><th>Exposure</th><th>Iso</th><th>Width</th><th>Height</th><th>Html</th><th>Aperture</th><th>Model</th><th>Lat</th><th>Long</th><th>Alt</th><th>Legende</th><th>Copyright</th><th>Titre</th><th>Createur</th><th>Keywords</th>';
|
||||||
|
echo '</thead>';
|
||||||
|
echo '<tbody>';
|
||||||
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||||
|
$thumbnail = host() . str_replace("photos/img", "photos/thumb", $row['filename']);
|
||||||
|
$full = host() . $row['filename'];
|
||||||
|
//echo ' | ' . $row['filename'] . ' | ' . $row['date'] . ' | ' . $row['lens'] . ' | ' . $row['exposure'] . ' | ' . $row['iso'] . ' | ' . $row['width'] . ' | ' . $row['height'] . ' | ' . $row['html'] . ' | ' . $row['aperture'] . ' | ' . $row['model'] . ' | ' . $row['lat'] . ' | ' . $row['long'] . ' | ' . $row['alt'] . ' | ' . $row['legende'] . ' | ' . $row['copyright'] . ' | ' . $row['titre'] . ' | ' . $row['createur'] . " |\r\n";
|
||||||
|
echo '<tr><td>' . '<a href="' . $full . '"><img src="'.$thumbnail.'" /></a>' . '</td><td>' . $row['filename'] . '</td><td>' . $row['date'] . '</td><td>' . $row['lens'] . '</td><td>' . $row['exposure'] . '</td><td>' . $row['iso'] . '</td><td>' . $row['width'] . '</td><td>' . $row['height'] . '</td><td>' . $row['html'] . '</td><td>' . $row['aperture'] . '</td><td>' . $row['model'] . '</td><td>' . $row['lat'] . '</td><td>' . $row['long'] . '</td><td>' . $row['alt'] . '</td><td>' . $row['legende'] . '</td><td>' . $row['copyright'] . '</td><td>' . $row['titre'] . '</td><td>' . $row['createur'] . '</td><td>' . $row['keywords'] . '</td></tr>';
|
||||||
|
}
|
||||||
|
echo '</tbody></table>';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
$conn = null;
|
||||||
}
|
}
|
||||||
catch(PDOException $e) {
|
catch(PDOException $e) {
|
||||||
echo $e->getMessage();
|
echo $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
<script type='text/javascript'>
|
||||||
|
$(document).ready(function() {
|
||||||
|
|
||||||
|
var $obj = lc_lightbox('#add_to_bdd a', {
|
||||||
|
open_close_time : 200,
|
||||||
|
ol_time_diff : 100,
|
||||||
|
wrap_class : 'lcl_zoomin_oc',
|
||||||
|
skin : 'minimal',
|
||||||
|
txt_hidden : true,
|
||||||
|
fullscreen : false,
|
||||||
|
fs_img_behavior : 'smart',
|
||||||
|
browser_fs_mode : true,
|
||||||
|
rclick_prevent : true,
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src='js/lc_lightbox.min.js' type='text/javascript'></script>
|
||||||
|
<script src='js/alloy_finger.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
93
maps.php
Normal file
93
maps.php
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Photo du mois</title>
|
||||||
|
<link rel="stylesheet" href="css/sls.css">
|
||||||
|
|
||||||
|
<link rel='stylesheet' href='css/lc_lightbox.min.css' />
|
||||||
|
<link rel='stylesheet' href='css/open_close_fx.css' />
|
||||||
|
<link rel='stylesheet' href='css/minimal.css' />
|
||||||
|
<style>
|
||||||
|
#map{
|
||||||
|
width: 100%;
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<?php include 'functions.php'; ?>
|
||||||
|
|
||||||
|
<script src='https://code.jquery.com/jquery-3.2.1.min.js'></script>
|
||||||
|
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB7cAx3NSH4dPM3Sx2oQeud7Zr-KaGXmLk"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<h1 class="_h1"><?php echo gettext("Photo du mois"); ?></h1>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$page = 1;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos WHERE lat != '' ORDER BY date DESC LIMIT ? OFFSET ?";
|
||||||
|
//nb d'archive par page
|
||||||
|
$limit = 13;
|
||||||
|
$offset = $limit * ($page -1);
|
||||||
|
//echo "offset: " . $offset;
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute(array($limit, $offset));
|
||||||
|
|
||||||
|
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
$rowcount = count($result);
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
_pr($result);
|
||||||
|
|
||||||
|
$imgLat = $result[0]['lat'];
|
||||||
|
$imgLng = $result[0]['long'];
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var myCenter = new google.maps.LatLng(<?php echo $imgLat; ?>, <?php echo $imgLng; ?>);
|
||||||
|
function initialize(){
|
||||||
|
var mapProp = {
|
||||||
|
center:myCenter,
|
||||||
|
zoom:10,
|
||||||
|
mapTypeId:google.maps.MapTypeId.ROADMAP
|
||||||
|
};
|
||||||
|
|
||||||
|
var map = new google.maps.Map(document.getElementById("map"),mapProp);
|
||||||
|
|
||||||
|
var marker = new google.maps.Marker({
|
||||||
|
position:myCenter,
|
||||||
|
animation:google.maps.Animation.BOUNCE
|
||||||
|
});
|
||||||
|
|
||||||
|
marker.setMap(map);
|
||||||
|
}
|
||||||
|
google.maps.event.addDomListener(window, 'load', initialize);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div id="map"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<p><em><small>@ 2022</small></em></p>
|
||||||
|
|
||||||
|
<script src='js/lc_lightbox.min.js'></script>
|
||||||
|
<script src='js/alloy_finger.min.js'></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
150
maps2.php
Normal file
150
maps2.php
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Photo du mois</title>
|
||||||
|
<link rel="stylesheet" href="css/sls.css">
|
||||||
|
|
||||||
|
<link rel='stylesheet' href='css/lc_lightbox.min.css' />
|
||||||
|
<link rel='stylesheet' href='css/open_close_fx.css' />
|
||||||
|
<link rel='stylesheet' href='css/minimal.css' />
|
||||||
|
<style>
|
||||||
|
#map{
|
||||||
|
width: 100%;
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
#mapCanvas {
|
||||||
|
width: 100%;
|
||||||
|
height: 650px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<?php include 'functions.php'; ?>
|
||||||
|
|
||||||
|
<script src='https://code.jquery.com/jquery-3.2.1.min.js'></script>
|
||||||
|
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB7cAx3NSH4dPM3Sx2oQeud7Zr-KaGXmLk"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<h1 class="_h1"><?php echo gettext("Photo du mois"); ?></h1>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$page = 1;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos WHERE lat != '' ORDER BY date DESC LIMIT ? OFFSET ?";
|
||||||
|
//nb d'archive par page
|
||||||
|
$limit = 13;
|
||||||
|
$offset = $limit * ($page -1);
|
||||||
|
//echo "offset: " . $offset;
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute(array($limit, $offset));
|
||||||
|
|
||||||
|
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
$rowcount = count($result);
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
//_pr($result);
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div id="mapCanvas"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function initMap() {
|
||||||
|
var map;
|
||||||
|
var bounds = new google.maps.LatLngBounds();
|
||||||
|
var mapOptions = {
|
||||||
|
mapTypeId: 'roadmap'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Display a map on the web page
|
||||||
|
map = new google.maps.Map(document.getElementById("mapCanvas"), mapOptions);
|
||||||
|
map.setTilt(100);
|
||||||
|
|
||||||
|
// Multiple markers location, latitude, and longitude
|
||||||
|
var markers = [
|
||||||
|
<?php
|
||||||
|
$a = "";
|
||||||
|
for( $i = 0; $i < $rowcount; $i++) {
|
||||||
|
$a .= '["'.$result[$i]['filename'].'", '.$result[$i]['lat'].', '.$result[$i]['long'].'],' . "\r\n";
|
||||||
|
}
|
||||||
|
$a = substr_replace($a, '', -3, 1);
|
||||||
|
echo $a;
|
||||||
|
?>
|
||||||
|
];
|
||||||
|
|
||||||
|
// Info window content
|
||||||
|
var infoWindowContent = [
|
||||||
|
<?php
|
||||||
|
$b = "";
|
||||||
|
for( $i = 0; $i < $rowcount; $i++) {
|
||||||
|
$b .= '[\'<div class="info_content"><h3>' . $result[$i]['filename'] . '</h3><p>' . $result[$i]['lat'] . '</p></div>\'],' . "\r\n";
|
||||||
|
}
|
||||||
|
$b = substr_replace($b, '', -3, 1);
|
||||||
|
echo $b;
|
||||||
|
?>
|
||||||
|
];
|
||||||
|
|
||||||
|
// Add multiple markers to map
|
||||||
|
var infoWindow = new google.maps.InfoWindow(), marker, i;
|
||||||
|
|
||||||
|
// Place each marker on the map
|
||||||
|
for( i = 0; i < markers.length; i++ ) {
|
||||||
|
|
||||||
|
var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
|
||||||
|
bounds.extend(position);
|
||||||
|
marker = new google.maps.Marker({
|
||||||
|
position: position,
|
||||||
|
map: map,
|
||||||
|
icon: markers[i][3],
|
||||||
|
title: markers[i][0]
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add info window to marker
|
||||||
|
|
||||||
|
google.maps.event.addListener(marker, 'click', (function(marker, i) {
|
||||||
|
return function() {
|
||||||
|
infoWindow.setContent(infoWindowContent[i][0]);
|
||||||
|
infoWindow.open(map, marker);
|
||||||
|
}
|
||||||
|
})(marker, i));
|
||||||
|
|
||||||
|
|
||||||
|
// Center the map to fit all markers on the screen
|
||||||
|
map.fitBounds(bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set zoom level
|
||||||
|
var boundsListener = google.maps.event.addListener((map), 'bounds_changed', function(event) {
|
||||||
|
this.setZoom(6);
|
||||||
|
google.maps.event.removeListener(boundsListener);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load initialize function
|
||||||
|
google.maps.event.addDomListener(window, 'load', initMap);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p><em><small>@ 2022</small></em></p>
|
||||||
|
|
||||||
|
<script src='js/lc_lightbox.min.js'></script>
|
||||||
|
<script src='js/alloy_finger.min.js'></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
275
photo-du-mois-lc-lite.php
Normal file
275
photo-du-mois-lc-lite.php
Normal file
@@ -0,0 +1,275 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Photo du mois</title>
|
||||||
|
<link rel="stylesheet" href="css/sls.css">
|
||||||
|
|
||||||
|
<link rel='stylesheet' href='css/lc_lightbox.min.css' />
|
||||||
|
<link rel='stylesheet' href='css/open_close_fx.css' />
|
||||||
|
<link rel='stylesheet' href='css/minimal.css' />
|
||||||
|
|
||||||
|
<?php include 'functions.php'; ?>
|
||||||
|
|
||||||
|
<script src='https://code.jquery.com/jquery-3.2.1.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<h1 class="_h1"><?php echo gettext("Photo du mois"); ?></h1>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (!isset($_GET['page'])) $page = 1;
|
||||||
|
// sinon on recupere la valeur numerique reçue en paramètre
|
||||||
|
else $page = intval($_GET['page']);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos ORDER BY date DESC LIMIT ? OFFSET ?";
|
||||||
|
//nb d'archive par page
|
||||||
|
$limit = 13;
|
||||||
|
$offset = $limit * ($page -1);
|
||||||
|
//echo "offset: " . $offset;
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute(array($limit, $offset));
|
||||||
|
|
||||||
|
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
$rowcount = count($result);
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
$photo_du_mois = $result[0];
|
||||||
|
$z = $photo_du_mois['date'];
|
||||||
|
|
||||||
|
$photo_du_mois['titre'] = "Titre";
|
||||||
|
$photo_du_mois['legende'] = "Légende";
|
||||||
|
|
||||||
|
if (!empty($photo_du_mois['titre'])) {
|
||||||
|
$x = $photo_du_mois['titre'];
|
||||||
|
$y = $photo_du_mois['legende'];
|
||||||
|
}
|
||||||
|
elseif (!empty($photo_du_mois['legende'])) {
|
||||||
|
$x = $photo_du_mois['legende'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$x = basename($photo_du_mois['filename']);
|
||||||
|
$y = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
$month_exif = $photo_du_mois['model'] . " \u{30FB} " . $photo_du_mois['lens'] . " \u{30FB} " . $photo_du_mois['exposure'] . " \u{30FB} " . $photo_du_mois['aperture'] . " \u{30FB} " . $photo_du_mois['iso'] . " ISO";
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p class="month"><?php echo month($z); ?></p>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
//_pr($photo_du_mois);
|
||||||
|
echo '<div class="cadre" id="lcl_month">';
|
||||||
|
echo '<a href ="' . $photo_du_mois['filename'] . '" title="' . $x . '" data-lcl-txt="' . $y .'" data-lcl-author="' . $month_exif . '">';
|
||||||
|
// data-lcl-author=
|
||||||
|
echo '<img src="' . $photo_du_mois['filename'] . '" class="trois" />';
|
||||||
|
|
||||||
|
echo "</a>";
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
if (!empty($photo_du_mois['titre']) || !empty($photo_du_mois['legende'])) {
|
||||||
|
?>
|
||||||
|
<p class="titrePhoto"><?php echo $photo_du_mois['titre']; ?></p>
|
||||||
|
<p class="legendePhoto"><?php echo $photo_du_mois['legende']; ?></p>
|
||||||
|
<?php }
|
||||||
|
|
||||||
|
echo '<div class="exif">';
|
||||||
|
//echo $photo_du_mois['model'] . " \u{30FB} " . $photo_du_mois['lens'] . " \u{30FB} ";
|
||||||
|
//echo $photo_du_mois['exposure'] . " \u{30FB} " . $photo_du_mois['aperture'] . " \u{30FB} " . $photo_du_mois['iso'] . " ISO";
|
||||||
|
echo $month_exif;
|
||||||
|
echo '</div>';
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="myGallery" id="lcl_gallery">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
/**/
|
||||||
|
for ($i = 1; $i <= ($rowcount -1); $i++) {
|
||||||
|
$file = $result[$i]['filename'];
|
||||||
|
$date = $result[$i]['date'];
|
||||||
|
$objectif = $result[$i]['lens'];
|
||||||
|
$exposure = $result[$i]['exposure'];
|
||||||
|
$iso = $result[$i]['iso'];
|
||||||
|
$width = $result[$i]['width'];
|
||||||
|
$height = $result[$i]['height'];
|
||||||
|
$html = $result[$i]['html'];
|
||||||
|
$aperture = $result[$i]['aperture'];
|
||||||
|
$model = $result[$i]['model'];
|
||||||
|
|
||||||
|
$lat = $result[$i]['lat'];
|
||||||
|
$long = $result[$i]['long'];
|
||||||
|
$alt = $result[$i]['alt'];
|
||||||
|
|
||||||
|
$legende = $result[$i]['legende'];
|
||||||
|
$copy = $result[$i]['copyright'];
|
||||||
|
$titre = $result[$i]['titre'];
|
||||||
|
$createur = $result[$i]['createur'];
|
||||||
|
$keywords = $result[$i]['keywords'];
|
||||||
|
//$keywords = str_replace(',', ' - ', $keywords);
|
||||||
|
$keywords = "\u{1F3F7} " . str_replace(',', " \u{30FB} ", $keywords);
|
||||||
|
|
||||||
|
if (!empty($titre)) {
|
||||||
|
$x = $titre;
|
||||||
|
$y = $legende;
|
||||||
|
}
|
||||||
|
elseif (!empty($legende)) {
|
||||||
|
$x = $legende;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$x = basename($file);
|
||||||
|
$y = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$exif = $model . " \u{30FB} " . $objectif . " \u{30FB} " . $exposure . " \u{30FB} " . $aperture . " \u{30FB} " . $iso . "ISO";
|
||||||
|
|
||||||
|
$thumb = str_replace("photos/img", "photos/thumb", $file);
|
||||||
|
echo '<div class="item">';
|
||||||
|
echo '<a href ="' . $file . '" title="' . $x . '" data-lcl-txt="' . $y .'" data-lcl-author="' . $exif . '">';
|
||||||
|
echo '<img src="' . $thumb . '" alt="' . $x . '" />';
|
||||||
|
echo "</a>";
|
||||||
|
echo '<span class="caption">' . month($date) . '</span>';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
$rowcount = 5 - 10 - 15 => add 0
|
||||||
|
$rowcount = 4 - 9 - 14 => add 1
|
||||||
|
$rowcount = 3 - 8 - 13 => add 2
|
||||||
|
$rowcount = 2 - 7 - 12 => add 3
|
||||||
|
$rowcount = 1 - 6 - 11 => add 4
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($rowcount % 4 == 0) $blank = 1;
|
||||||
|
elseif ($rowcount % 3 == 0) $blank = 2;
|
||||||
|
elseif ($rowcount % 2 == 0) $blank = 3;
|
||||||
|
elseif ($rowcount % 1 == 0) $blank = 4;
|
||||||
|
|
||||||
|
for ($i = 1; $i <= $blank; $i++) {
|
||||||
|
echo '<div class="item">';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type='text/javascript'>
|
||||||
|
$(document).ready(function() {
|
||||||
|
/* var $obj = lc_lightbox('#lcl_elems_wrapper a');*/
|
||||||
|
var $obj = lc_lightbox('#lcl_gallery a', {
|
||||||
|
img_zoom : true,
|
||||||
|
|
||||||
|
/* */
|
||||||
|
open_close_time : 200, // durée de l'animation pour l'ouverture et la fermeture de la lightbox
|
||||||
|
ol_time_diff : 100, // animation de superposition avance (à l'ouverture) et retard (à la fermeture) à la fenêtre
|
||||||
|
fading_time : 50, // durée de l'animation de fondu des éléments
|
||||||
|
slideshow_time : 4000, // durée de l'intervalle du diaporama
|
||||||
|
animation_time : 100,
|
||||||
|
counter : false, // s'il faut afficher le compteur d'éléments
|
||||||
|
progressbar : false, // s'il faut afficher une barre de progression lors de l'exécution du diaporama
|
||||||
|
max_width : '95%', // largeur maximale de la lightbox
|
||||||
|
max_height : '95%', // hauteur maximale de la lightbox
|
||||||
|
wrap_class : 'lcl_fade_oc', // Classes personnalisées ajoutées au wrapper: effet à l'ouverture de la lb (lcl_fade_oc | lcl_zoomin_oc | lcl_rtl_oc)
|
||||||
|
skin : 'minimal', // minimal | light | dark
|
||||||
|
data_position : 'over', // Spécifie où les données des éléments seront affichées. Les modes disponibles sont :over, under|rside|lside
|
||||||
|
cmd_position : 'inner', // Déclare où les commandes doivent être affichées : inner|outer
|
||||||
|
nav_btn_pos : 'normal', // Régle les flèches et la position de lecture/pause. Options disponibles: normal|middle
|
||||||
|
shox_title : true, // s'il faut afficher les titres
|
||||||
|
show_descr : false, // s'il faut afficher les descriptions
|
||||||
|
show_author : true, // s'il faut afficher les auteurs
|
||||||
|
thumbs_nav : false, // permet la navigation par vignettes (nécessite des éléments affiche ou images)
|
||||||
|
fullscreen : true, // Autoriser ou non le mode plein écran
|
||||||
|
fs_img_behavior : 'smart', //Comportement de l'image en plein écran : fit|fill|smart
|
||||||
|
fs_only : 500, // s'il faut utiliser uniquement l'ouverture de la lightbox en mode plein écran (utile pour les appareils mobiles) : false | (integer)
|
||||||
|
browser_fs_mode : true, // utiliser ou non le mode plein écran du navigateur
|
||||||
|
txt_toggle_cmd : true, // s'il faut afficher le bouton de basculement du texte de l'élément
|
||||||
|
download : true, // whether to show element's file download button
|
||||||
|
touchswipe : true, // permet les interactions tactiles (nécessite AlloyFinger)
|
||||||
|
rclick_prevent : true, // s'il faut éviter le clic droit sur les éléments de la lightbox
|
||||||
|
});
|
||||||
|
|
||||||
|
var $obj = lc_lightbox('#lcl_month a', {
|
||||||
|
img_zoom : true,
|
||||||
|
deeplink : true,
|
||||||
|
open_close_time : 200,
|
||||||
|
ol_time_diff : 100,
|
||||||
|
wrap_class : 'lcl_zoomin_oc',
|
||||||
|
skin : 'minimal',
|
||||||
|
txt_hidden : true,
|
||||||
|
fullscreen : true,
|
||||||
|
fs_img_behavior : 'smart',
|
||||||
|
browser_fs_mode : true,
|
||||||
|
rclick_prevent : true,
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT COUNT(*) AS count FROM photos";
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||||
|
$numRows = $result['count'];
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// calcul du nombre de pages (arrondi a l'entier supérieur)
|
||||||
|
$nbpages = ceil($numRows / 12);
|
||||||
|
$prec = $page - 1;
|
||||||
|
$suiv = $page + 1;
|
||||||
|
|
||||||
|
echo '<div class="navPage">' . gettext("Page: ");
|
||||||
|
if ($page >= 2) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$prec.'" title="'.gettext("Previous Page").'">« '.gettext("prev").'</a> ';
|
||||||
|
for ($i = 1; $i <= $nbpages; $i++) {
|
||||||
|
if ($i != $page) {
|
||||||
|
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" title="'.gettext("Page").' '.$i.'">'.$i.' </a> ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<span class='gras'>".$i."</span> ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($page < $nbpages) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suiv.'" title="'.gettext("Next Page").'">'.gettext("next").' »</a> ';
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p><em><small>@ 2022</small></em></p>
|
||||||
|
|
||||||
|
<script src='js/lc_lightbox.lite.min.js' type='text/javascript'></script>
|
||||||
|
<script src='js/alloy_finger.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
274
photo-du-mois-lc.php
Normal file
274
photo-du-mois-lc.php
Normal file
@@ -0,0 +1,274 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Photo du mois</title>
|
||||||
|
<link rel="stylesheet" href="css/sls.css">
|
||||||
|
|
||||||
|
<link rel='stylesheet' href='css/lc_lightbox.min.css' />
|
||||||
|
<link rel='stylesheet' href='css/open_close_fx.css' />
|
||||||
|
<link rel='stylesheet' href='css/minimal.css' />
|
||||||
|
<?php include 'functions.php'; ?>
|
||||||
|
|
||||||
|
<script src='https://code.jquery.com/jquery-3.2.1.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<h1 class="_h1"><?php echo gettext("Photo du mois"); ?></h1>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (!isset($_GET['page'])) $page = 1;
|
||||||
|
// sinon on recupere la valeur numerique reçue en paramètre
|
||||||
|
else $page = intval($_GET['page']);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos ORDER BY date DESC LIMIT ? OFFSET ?";
|
||||||
|
//nb d'archive par page
|
||||||
|
$limit = 13;
|
||||||
|
$offset = $limit * ($page -1);
|
||||||
|
//echo "offset: " . $offset;
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute(array($limit, $offset));
|
||||||
|
|
||||||
|
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
$rowcount = count($result);
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
$photo_du_mois = $result[0];
|
||||||
|
$z = $photo_du_mois['date'];
|
||||||
|
|
||||||
|
$photo_du_mois['titre'] = "Titre";
|
||||||
|
$photo_du_mois['legende'] = "Légende";
|
||||||
|
|
||||||
|
if (!empty($photo_du_mois['titre'])) {
|
||||||
|
$x = $photo_du_mois['titre'];
|
||||||
|
$y = $photo_du_mois['legende'];
|
||||||
|
}
|
||||||
|
elseif (!empty($photo_du_mois['legende'])) {
|
||||||
|
$x = $photo_du_mois['legende'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$x = basename($photo_du_mois['filename']);
|
||||||
|
$y = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
$month_exif = $photo_du_mois['model'] . " \u{30FB} " . $photo_du_mois['lens'] . " \u{30FB} " . $photo_du_mois['exposure'] . " \u{30FB} " . $photo_du_mois['aperture'] . " \u{30FB} " . $photo_du_mois['iso'] . " ISO";
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p class="month"><?php echo month($z); ?></p>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
//_pr($photo_du_mois);
|
||||||
|
echo '<div class="cadre" id="lcl_month">';
|
||||||
|
echo '<a href ="' . host() . $photo_du_mois['filename'] . '" title="' . $x . '" data-lcl-txt="' . $y .'" data-lcl-author="' . $month_exif . '">';
|
||||||
|
// data-lcl-author=
|
||||||
|
echo '<img src="' . host() . $photo_du_mois['filename'] . '" class="trois" />';
|
||||||
|
|
||||||
|
echo "</a>";
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
if (!empty($photo_du_mois['titre']) || !empty($photo_du_mois['legende'])) {
|
||||||
|
?>
|
||||||
|
<p class="titrePhoto"><?php echo $photo_du_mois['titre']; ?></p>
|
||||||
|
<p class="legendePhoto"><?php echo $photo_du_mois['legende']; ?></p>
|
||||||
|
<?php }
|
||||||
|
|
||||||
|
echo '<div class="exif">';
|
||||||
|
//echo $photo_du_mois['model'] . " \u{30FB} " . $photo_du_mois['lens'] . " \u{30FB} ";
|
||||||
|
//echo $photo_du_mois['exposure'] . " \u{30FB} " . $photo_du_mois['aperture'] . " \u{30FB} " . $photo_du_mois['iso'] . " ISO";
|
||||||
|
echo $month_exif;
|
||||||
|
echo '</div>';
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="myGallery" id="lcl_gallery">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
/**/
|
||||||
|
for ($i = 1; $i <= ($rowcount -1); $i++) {
|
||||||
|
$file = $result[$i]['filename'];
|
||||||
|
$date = $result[$i]['date'];
|
||||||
|
$objectif = $result[$i]['lens'];
|
||||||
|
$exposure = $result[$i]['exposure'];
|
||||||
|
$iso = $result[$i]['iso'];
|
||||||
|
$width = $result[$i]['width'];
|
||||||
|
$height = $result[$i]['height'];
|
||||||
|
$html = $result[$i]['html'];
|
||||||
|
$aperture = $result[$i]['aperture'];
|
||||||
|
$model = $result[$i]['model'];
|
||||||
|
|
||||||
|
$lat = $result[$i]['lat'];
|
||||||
|
$long = $result[$i]['long'];
|
||||||
|
$alt = $result[$i]['alt'];
|
||||||
|
|
||||||
|
$legende = $result[$i]['legende'];
|
||||||
|
$copy = $result[$i]['copyright'];
|
||||||
|
$titre = $result[$i]['titre'];
|
||||||
|
$createur = $result[$i]['createur'];
|
||||||
|
$keywords = $result[$i]['keywords'];
|
||||||
|
//$keywords = str_replace(',', ' - ', $keywords);
|
||||||
|
$keywords = "\u{1F3F7} " . str_replace(',', " \u{30FB} ", $keywords);
|
||||||
|
|
||||||
|
if (!empty($titre)) {
|
||||||
|
$x = $titre;
|
||||||
|
$y = $legende;
|
||||||
|
}
|
||||||
|
elseif (!empty($legende)) {
|
||||||
|
$x = $legende;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$x = basename($file);
|
||||||
|
$y = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$exif = $model . " \u{30FB} " . $objectif . " \u{30FB} " . $exposure . " \u{30FB} " . $aperture . " \u{30FB} " . $iso . "ISO";
|
||||||
|
|
||||||
|
$thumb = str_replace("photos/img", "photos/thumb", $file);
|
||||||
|
echo '<div class="item">';
|
||||||
|
echo '<a href ="' . host() . $file . '" title="' . $x . '" data-lcl-txt="' . $y .'" data-lcl-author="' . $exif . '">';
|
||||||
|
echo '<img src="' . host() . $thumb . '" alt="' . $x . '" />';
|
||||||
|
echo "</a>";
|
||||||
|
echo '<span class="caption">' . month($date) . '</span>';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
$rowcount = 5 - 10 - 15 => add 0
|
||||||
|
$rowcount = 4 - 9 - 14 => add 1
|
||||||
|
$rowcount = 3 - 8 - 13 => add 2
|
||||||
|
$rowcount = 2 - 7 - 12 => add 3
|
||||||
|
$rowcount = 1 - 6 - 11 => add 4
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($rowcount % 4 == 0) $blank = 1;
|
||||||
|
elseif ($rowcount % 3 == 0) $blank = 2;
|
||||||
|
elseif ($rowcount % 2 == 0) $blank = 3;
|
||||||
|
elseif ($rowcount % 1 == 0) $blank = 4;
|
||||||
|
|
||||||
|
for ($i = 1; $i <= $blank; $i++) {
|
||||||
|
echo '<div class="item">';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type='text/javascript'>
|
||||||
|
$(document).ready(function() {
|
||||||
|
/* var $obj = lc_lightbox('#lcl_elems_wrapper a');*/
|
||||||
|
var $obj = lc_lightbox('#lcl_gallery a', {
|
||||||
|
img_zoom : true,
|
||||||
|
|
||||||
|
/* */
|
||||||
|
open_close_time : 200, // durée de l'animation pour l'ouverture et la fermeture de la lightbox
|
||||||
|
ol_time_diff : 100, // animation de superposition avance (à l'ouverture) et retard (à la fermeture) à la fenêtre
|
||||||
|
fading_time : 50, // durée de l'animation de fondu des éléments
|
||||||
|
slideshow_time : 4000, // durée de l'intervalle du diaporama
|
||||||
|
animation_time : 100,
|
||||||
|
counter : false, // s'il faut afficher le compteur d'éléments
|
||||||
|
progressbar : false, // s'il faut afficher une barre de progression lors de l'exécution du diaporama
|
||||||
|
max_width : '95%', // largeur maximale de la lightbox
|
||||||
|
max_height : '95%', // hauteur maximale de la lightbox
|
||||||
|
wrap_class : 'lcl_fade_oc', // Classes personnalisées ajoutées au wrapper: effet à l'ouverture de la lb (lcl_fade_oc | lcl_zoomin_oc | lcl_rtl_oc)
|
||||||
|
skin : 'minimal', // minimal | light | dark
|
||||||
|
data_position : 'over', // Spécifie où les données des éléments seront affichées. Les modes disponibles sont :over, under|rside|lside
|
||||||
|
cmd_position : 'inner', // Déclare où les commandes doivent être affichées : inner|outer
|
||||||
|
nav_btn_pos : 'normal', // Régle les flèches et la position de lecture/pause. Options disponibles: normal|middle
|
||||||
|
shox_title : true, // s'il faut afficher les titres
|
||||||
|
show_descr : false, // s'il faut afficher les descriptions
|
||||||
|
show_author : true, // s'il faut afficher les auteurs
|
||||||
|
thumbs_nav : false, // permet la navigation par vignettes (nécessite des éléments affiche ou images)
|
||||||
|
fullscreen : true, // Autoriser ou non le mode plein écran
|
||||||
|
fs_img_behavior : 'smart', //Comportement de l'image en plein écran : fit|fill|smart
|
||||||
|
fs_only : 500, // s'il faut utiliser uniquement l'ouverture de la lightbox en mode plein écran (utile pour les appareils mobiles) : false | (integer)
|
||||||
|
browser_fs_mode : true, // utiliser ou non le mode plein écran du navigateur
|
||||||
|
txt_toggle_cmd : true, // s'il faut afficher le bouton de basculement du texte de l'élément
|
||||||
|
download : true, // whether to show element's file download button
|
||||||
|
touchswipe : true, // permet les interactions tactiles (nécessite AlloyFinger)
|
||||||
|
rclick_prevent : true, // s'il faut éviter le clic droit sur les éléments de la lightbox
|
||||||
|
});
|
||||||
|
|
||||||
|
var $obj = lc_lightbox('#lcl_month a', {
|
||||||
|
img_zoom : true,
|
||||||
|
deeplink : true,
|
||||||
|
open_close_time : 200,
|
||||||
|
ol_time_diff : 100,
|
||||||
|
wrap_class : 'lcl_zoomin_oc',
|
||||||
|
skin : 'minimal',
|
||||||
|
txt_hidden : true,
|
||||||
|
fullscreen : true,
|
||||||
|
fs_img_behavior : 'smart',
|
||||||
|
browser_fs_mode : true,
|
||||||
|
rclick_prevent : true,
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT COUNT(*) AS count FROM photos";
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||||
|
$numRows = $result['count'];
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// calcul du nombre de pages (arrondi a l'entier supérieur)
|
||||||
|
$nbpages = ceil($numRows / 12);
|
||||||
|
$prec = $page - 1;
|
||||||
|
$suiv = $page + 1;
|
||||||
|
|
||||||
|
echo '<div class="navPage">' . gettext("Page: ");
|
||||||
|
if ($page >= 2) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$prec.'" title="'.gettext("Previous Page").'">« '.gettext("prev").'</a> ';
|
||||||
|
for ($i = 1; $i <= $nbpages; $i++) {
|
||||||
|
if ($i != $page) {
|
||||||
|
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" title="'.gettext("Page").' '.$i.'">'.$i.' </a> ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<span class='gras'>".$i."</span> ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($page < $nbpages) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suiv.'" title="'.gettext("Next Page").'">'.gettext("next").' »</a> ';
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p><em><small>@ 2022</small></em></p>
|
||||||
|
|
||||||
|
<script src='js/lc_lightbox.min.js' type='text/javascript'></script>
|
||||||
|
<script src='js/alloy_finger.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
221
photo-du-mois-lg.php
Normal file
221
photo-du-mois-lg.php
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Document</title>
|
||||||
|
<link rel="stylesheet" href="css/sls.css">
|
||||||
|
|
||||||
|
<link type="text/css" rel="stylesheet" href="dist/css/lightgallery-bundle.css" />
|
||||||
|
|
||||||
|
<?php include 'functions.php'; ?>
|
||||||
|
|
||||||
|
<!-- Or use the minified version -->
|
||||||
|
<script src="dist/lightgallery.min.js"></script>
|
||||||
|
|
||||||
|
<!-- lightgallery plugins -->
|
||||||
|
<script src="dist/lg-thumbnail.min.js"></script>
|
||||||
|
<script src="dist/lg-zoom.min.js"></script>
|
||||||
|
<script src="dist/lg-fullscreen.min.js"></script>
|
||||||
|
<script src="dist/lg-autoplay.min.js"></script>
|
||||||
|
<script src="dist/lg-relative-caption.min.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1 class="_h1"><?php echo gettext("Photo du mois"); ?></h1>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (!isset($_GET['page'])) $page = 1;
|
||||||
|
// sinon on recupere la valeur numerique reçue en paramètre
|
||||||
|
else $page = intval($_GET['page']);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos ORDER BY date DESC LIMIT ? OFFSET ?";
|
||||||
|
//nb d'archive par page
|
||||||
|
$limit = 13;
|
||||||
|
$offset = $limit * ($page -1);
|
||||||
|
//echo "offset: " . $offset;
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute(array($limit, $offset));
|
||||||
|
|
||||||
|
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
$rowcount = count($result);
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
$photo_du_mois = $result[0];
|
||||||
|
$z = $photo_du_mois['date'];
|
||||||
|
|
||||||
|
$photo_du_mois['titre'] = "Titre";
|
||||||
|
$photo_du_mois['legende'] = "Légende";
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p class="month"><?php echo month($z); ?></p>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
//_pr($photo_du_mois);
|
||||||
|
echo '<div class="cadre">';
|
||||||
|
echo '<img src="' . $photo_du_mois['filename'] . '" class="trois" />';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
if (!empty($photo_du_mois['titre']) || !empty($photo_du_mois['legende'])) {
|
||||||
|
?>
|
||||||
|
<p class="titrePhoto"><?php echo $photo_du_mois['titre']; ?></p>
|
||||||
|
<p class="legendePhoto"><?php echo $photo_du_mois['legende']; ?></p>
|
||||||
|
<?php }
|
||||||
|
|
||||||
|
echo '<div class="exif">';
|
||||||
|
echo $photo_du_mois['model'] . " \u{30FB} " . $photo_du_mois['lens'] . " \u{30FB} ";
|
||||||
|
echo $photo_du_mois['exposure'] . " \u{30FB} " . $photo_du_mois['aperture'] . " \u{30FB} " . $photo_du_mois['iso'] . " ISO";
|
||||||
|
echo '</div>';
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="myGallery" id="lightgallery">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
/**/
|
||||||
|
for ($i = 1; $i <= ($rowcount -1); $i++) {
|
||||||
|
$file = $result[$i]['filename'];
|
||||||
|
$date = $result[$i]['date'];
|
||||||
|
$objectif = $result[$i]['lens'];
|
||||||
|
$exposure = $result[$i]['exposure'];
|
||||||
|
$iso = $result[$i]['iso'];
|
||||||
|
$width = $result[$i]['width'];
|
||||||
|
$height = $result[$i]['height'];
|
||||||
|
$html = $result[$i]['html'];
|
||||||
|
$aperture = $result[$i]['aperture'];
|
||||||
|
$model = $result[$i]['model'];
|
||||||
|
|
||||||
|
$lat = $result[$i]['lat'];
|
||||||
|
$long = $result[$i]['long'];
|
||||||
|
$alt = $result[$i]['alt'];
|
||||||
|
|
||||||
|
$legende = $result[$i]['legende'];
|
||||||
|
$copy = $result[$i]['copyright'];
|
||||||
|
$titre = $result[$i]['titre'];
|
||||||
|
$createur = $result[$i]['createur'];
|
||||||
|
$keywords = $result[$i]['keywords'];
|
||||||
|
//$keywords = str_replace(',', ' - ', $keywords);
|
||||||
|
$keywords = "\u{1F3F7} " . str_replace(',', " \u{30FB} ", $keywords);
|
||||||
|
|
||||||
|
if (!empty($titre)) $x = $titre;
|
||||||
|
elseif (!empty($legende)) $x = $legende;
|
||||||
|
else $x = basename($file);
|
||||||
|
|
||||||
|
$exif = $model . " \u{30FB} " . $objectif . " \u{30FB} " . $exposure . " \u{30FB} " . $aperture . " \u{30FB} " . $iso ;
|
||||||
|
// $x = $x . "\r\n" . $exif;
|
||||||
|
|
||||||
|
|
||||||
|
$thumb = str_replace("photos/img", "photos/thumb", $file);
|
||||||
|
//echo '<div class="item">';
|
||||||
|
echo '<a href ="' . $file . '" data-lg-size="' . $width . '-' . $height . '" data-sub-html=".caption">';
|
||||||
|
//echo '<a href ="' . $file . '">';
|
||||||
|
echo '<img src="' . $thumb . '" alt="' . $x . '" />';
|
||||||
|
echo '<div class="caption"><h4>' . $x . '</h4><p>' . $legende . '</p></div>';
|
||||||
|
|
||||||
|
echo "</a>";
|
||||||
|
//echo '<span class="caption">' . month($date) . '</span>';
|
||||||
|
//echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
$rowcount = 5 - 10 - 15 => add 0
|
||||||
|
$rowcount = 4 - 9 - 14 => add 1
|
||||||
|
$rowcount = 3 - 8 - 13 => add 2
|
||||||
|
$rowcount = 2 - 7 - 12 => add 3
|
||||||
|
$rowcount = 1 - 6 - 11 => add 4
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($rowcount % 4 == 0) $blank = 1;
|
||||||
|
elseif ($rowcount % 3 == 0) $blank = 2;
|
||||||
|
elseif ($rowcount % 2 == 0) $blank = 3;
|
||||||
|
elseif ($rowcount % 1 == 0) $blank = 4;
|
||||||
|
|
||||||
|
/*
|
||||||
|
for ($i = 1; $i <= $blank; $i++) {
|
||||||
|
echo '<div class="item">';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
lightGallery(document.getElementById('lightgallery'), {
|
||||||
|
plugins: [lgZoom, lgThumbnail, lgFullscreen, lgAutoplay, lgRelativeCaption],
|
||||||
|
allowMediaOverlap: true,
|
||||||
|
licenseKey: '0000-0000-000-0000',
|
||||||
|
fullScreen: true,
|
||||||
|
progressBar: false,
|
||||||
|
slideShowInterval: 4000,
|
||||||
|
speed: 500,
|
||||||
|
subHtmlSelectorRelative: true,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT COUNT(*) AS count FROM photos";
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||||
|
$numRows = $result['count'];
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// calcul du nombre de pages (arrondi a l'entier supérieur)
|
||||||
|
$nbpages = ceil($numRows / 12);
|
||||||
|
$prec = $page - 1;
|
||||||
|
$suiv = $page + 1;
|
||||||
|
|
||||||
|
echo '<div class="navPage">' . gettext("Page: ");
|
||||||
|
if ($page >= 2) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$prec.'" title="'.gettext("Previous Page").'">« '.gettext("prev").'</a> ';
|
||||||
|
for ($i = 1; $i <= $nbpages; $i++) {
|
||||||
|
if ($i != $page) {
|
||||||
|
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" title="'.gettext("Page").' '.$i.'">'.$i.' </a> ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<span class='gras'>".$i."</span> ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($page < $nbpages) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suiv.'" title="'.gettext("Next Page").'">'.gettext("next").' »</a> ';
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p><em><small>@ 2022</small></em></p>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
215
photo-du-mois-ng.php
Normal file
215
photo-du-mois-ng.php
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Document</title>
|
||||||
|
<link rel="stylesheet" href="css/sls.css">
|
||||||
|
<script src='https://code.jquery.com/jquery-3.2.1.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
<!-- nanogallery2 -->
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/nanogallery2@3/dist/css/nanogallery2.min.css" rel="stylesheet" type="text/css">
|
||||||
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/nanogallery2@3/dist/jquery.nanogallery2.min.js"></script>
|
||||||
|
|
||||||
|
<?php include 'functions.php'; ?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<h1 class="_h1"><?php echo gettext("Photo du mois"); ?></h1>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (!isset($_GET['page'])) $page = 1;
|
||||||
|
// sinon on recupere la valeur numerique reçue en paramètre
|
||||||
|
else $page = intval($_GET['page']);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT filename, date, lens, exposure, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, titre, createur, keywords FROM photos ORDER BY date DESC LIMIT ? OFFSET ?";
|
||||||
|
//nb d'archive par page
|
||||||
|
$limit = 13;
|
||||||
|
$offset = $limit * ($page -1);
|
||||||
|
//echo "offset: " . $offset;
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute(array($limit, $offset));
|
||||||
|
|
||||||
|
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
$rowcount = count($result);
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
$photo_du_mois = $result[0];
|
||||||
|
$z = $photo_du_mois['date'];
|
||||||
|
|
||||||
|
$photo_du_mois['titre'] = "Titre";
|
||||||
|
$photo_du_mois['legende'] = "Légende";
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p class="month"><?php echo month($z); ?></p>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
//_pr($photo_du_mois);
|
||||||
|
echo '<div class="cadre">';
|
||||||
|
echo '<img src="' . $photo_du_mois['filename'] . '" class="trois" />';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
if (!empty($photo_du_mois['titre']) || !empty($photo_du_mois['legende'])) {
|
||||||
|
?>
|
||||||
|
<p class="titrePhoto"><?php echo $photo_du_mois['titre']; ?></p>
|
||||||
|
<p class="legendePhoto"><?php echo $photo_du_mois['legende']; ?></p>
|
||||||
|
<?php }
|
||||||
|
|
||||||
|
echo '<div class="exif">';
|
||||||
|
echo $photo_du_mois['model'] . " \u{30FB} " . $photo_du_mois['lens'] . " \u{30FB} ";
|
||||||
|
echo $photo_du_mois['exposure'] . " \u{30FB} " . $photo_du_mois['aperture'] . " \u{30FB} " . $photo_du_mois['iso'] . " ISO";
|
||||||
|
echo '</div>';
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<!--div class="myGallery" id="lcl_elems_wrapper"-->
|
||||||
|
<div class="myGallery" id="nanogallery2" data-nanogallery2 = '{
|
||||||
|
"thumbnailHeight": 300,
|
||||||
|
"thumbnailWidth": 300,
|
||||||
|
"itemsBaseURL": "https://airbook.local/sls/"
|
||||||
|
}' >
|
||||||
|
|
||||||
|
<?php
|
||||||
|
/**/
|
||||||
|
for ($i = 1; $i <= ($rowcount -1); $i++) {
|
||||||
|
$file = $result[$i]['filename'];
|
||||||
|
$date = $result[$i]['date'];
|
||||||
|
$objectif = $result[$i]['lens'];
|
||||||
|
$exposure = $result[$i]['exposure'];
|
||||||
|
$iso = $result[$i]['iso'];
|
||||||
|
$width = $result[$i]['width'];
|
||||||
|
$height = $result[$i]['height'];
|
||||||
|
$html = $result[$i]['html'];
|
||||||
|
$aperture = $result[$i]['aperture'];
|
||||||
|
$model = $result[$i]['model'];
|
||||||
|
|
||||||
|
$lat = $result[$i]['lat'];
|
||||||
|
$long = $result[$i]['long'];
|
||||||
|
$alt = $result[$i]['alt'];
|
||||||
|
|
||||||
|
$legende = $result[$i]['legende'];
|
||||||
|
$copy = $result[$i]['copyright'];
|
||||||
|
$titre = $result[$i]['titre'];
|
||||||
|
$createur = $result[$i]['createur'];
|
||||||
|
$keywords = $result[$i]['keywords'];
|
||||||
|
//$keywords = str_replace(',', ' - ', $keywords);
|
||||||
|
$keywords = "\u{1F3F7} " . str_replace(',', " \u{30FB} ", $keywords);
|
||||||
|
|
||||||
|
if (!empty($titre)) {
|
||||||
|
$x = $titre;
|
||||||
|
$y = $legende;
|
||||||
|
}
|
||||||
|
elseif (!empty($legende)) {
|
||||||
|
$x = $legende;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$x = basename($file);
|
||||||
|
$y = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$exif = $model . " \u{30FB} " . $objectif . " \u{30FB} " . $exposure . " \u{30FB} " . $aperture . " \u{30FB} " . $iso ;
|
||||||
|
// $x = $x . "\r\n" . $exif;
|
||||||
|
|
||||||
|
|
||||||
|
$thumb = str_replace("photos/img", "photos/thumb", $file);
|
||||||
|
echo '<div class="item">';
|
||||||
|
//echo '<a href ="' . $file . '" data-lg-size="' . $width . '">';
|
||||||
|
echo '<a href ="' . $file . '">';
|
||||||
|
echo '<img src="' . $thumb . '" alt="' . $x . '" />';
|
||||||
|
//echo "bla";
|
||||||
|
echo "</a>";
|
||||||
|
//echo '<span class="caption">' . month($date) . '</span>';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
$rowcount = 5 - 10 - 15 => add 0
|
||||||
|
$rowcount = 4 - 9 - 14 => add 1
|
||||||
|
$rowcount = 3 - 8 - 13 => add 2
|
||||||
|
$rowcount = 2 - 7 - 12 => add 3
|
||||||
|
$rowcount = 1 - 6 - 11 => add 4
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($rowcount % 4 == 0) $blank = 1;
|
||||||
|
elseif ($rowcount % 3 == 0) $blank = 2;
|
||||||
|
elseif ($rowcount % 2 == 0) $blank = 3;
|
||||||
|
elseif ($rowcount % 1 == 0) $blank = 4;
|
||||||
|
|
||||||
|
for ($i = 1; $i <= $blank; $i++) {
|
||||||
|
echo '<div class="item">';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||||
|
$query4 = "SELECT COUNT(*) AS count FROM photos";
|
||||||
|
|
||||||
|
$stmt = $conn4->prepare($query4);
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||||
|
$numRows = $result['count'];
|
||||||
|
|
||||||
|
$conn4 = null;
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
echo $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// calcul du nombre de pages (arrondi a l'entier supérieur)
|
||||||
|
$nbpages = ceil($numRows / 12);
|
||||||
|
$prec = $page - 1;
|
||||||
|
$suiv = $page + 1;
|
||||||
|
|
||||||
|
echo '<div class="navPage">' . gettext("Page: ");
|
||||||
|
if ($page >= 2) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$prec.'" title="'.gettext("Previous Page").'">« '.gettext("prev").'</a> ';
|
||||||
|
for ($i = 1; $i <= $nbpages; $i++) {
|
||||||
|
if ($i != $page) {
|
||||||
|
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" title="'.gettext("Page").' '.$i.'">'.$i.' </a> ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<span class='gras'>".$i."</span> ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($page < $nbpages) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suiv.'" title="'.gettext("Next Page").'">'.gettext("next").' »</a> ';
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p><em><small>@ 2022</small></em></p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -179,7 +179,7 @@ try {
|
|||||||
else $x = basename($file);
|
else $x = basename($file);
|
||||||
|
|
||||||
$exif = $model . " \u{30FB} " . $objectif . " \u{30FB} " . $exposure . " \u{30FB} " . $aperture . " \u{30FB} " . $iso ;
|
$exif = $model . " \u{30FB} " . $objectif . " \u{30FB} " . $exposure . " \u{30FB} " . $aperture . " \u{30FB} " . $iso ;
|
||||||
$x = $x . "\r\n" . $exif;
|
// $x = $x . "\r\n" . $exif;
|
||||||
|
|
||||||
|
|
||||||
$thumb = str_replace("photos/img", "photos/thumb", $file);
|
$thumb = str_replace("photos/img", "photos/thumb", $file);
|
||||||
|
|||||||
Reference in New Issue
Block a user