444 lines
20 KiB
PHP
444 lines
20 KiB
PHP
<?php require ("3-protect.php");
|
|
//session_start();
|
|
include 'localize.php';
|
|
$domain = 'sentier';
|
|
localize($domain);
|
|
include 'functions.php';
|
|
|
|
$base = 'db_photo.sqlite3';
|
|
$perpage = 20;
|
|
|
|
$conn = new PDO("sqlite:db_photo.sqlite3");
|
|
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
|
if (!isset($_GET['page'])) $page = 1;
|
|
else $page = intval($_GET['page']);
|
|
|
|
/*
|
|
// Suppression d'images
|
|
|
|
if (isset($_SESSION["user"])) {
|
|
if ((isset($_POST["suppress"])) && ($_POST["suppress"] == "suppress")) {
|
|
if (isset($_POST['coche']) && (! empty($_POST['coche']))) {
|
|
$rr = "";
|
|
foreach($_POST['coche'] as $key => $value) {
|
|
$r = "id = " . $value . " OR ";
|
|
$rr .= $r;
|
|
}
|
|
|
|
$req_delete = substr($rr, 0, strlen($rr)-4);
|
|
|
|
try {
|
|
$req = "DELETE FROM Photos WHERE (" . $req_delete . ")";
|
|
$stmt = $conn->prepare($req);
|
|
$stmt->execute();
|
|
$nb = $stmt->rowCount();
|
|
}
|
|
catch(PDOException $e) {
|
|
echo $e->getMessage();
|
|
}
|
|
|
|
$msg = (($nb > 0) ? "<h3 class='greenstyle'>" . $nb . gettext(' photos successfully deleted !') . "</h3>" : "");
|
|
$request_delete = $req;
|
|
}
|
|
else {
|
|
$msg = "<h3 class='redstyle'>" . gettext('Empty request !') . "</h3>" ;
|
|
}
|
|
|
|
}
|
|
}
|
|
*/
|
|
|
|
$gps = (isset($_SESSION['query']['gps'])) ? $_SESSION['query']['gps'] : "off";
|
|
|
|
$dir = (new AdvancedFilesystemIterator('photos/img/'))->match('/heic|HEIC|jpg|jpeg|JPG|JPEG|webp|WEBP$/');
|
|
|
|
|
|
$request = array(
|
|
'lens' => 'SELECT DISTINCT lens FROM photos WHERE lens <> "" ORDER BY lens',
|
|
'model' => 'SELECT DISTINCT model FROM photos WHERE model <> "" ORDER BY model',
|
|
'iso' => 'SELECT DISTINCT iso FROM photos WHERE iso <> "" ORDER BY iso',
|
|
'speed' => 'SELECT DISTINCT speed FROM photos WHERE speed <> "" ORDER BY speed',
|
|
'keywords' => 'SELECT DISTINCT keywords FROM photos WHERE keywords <> ""',
|
|
'strftime("%Y", dateoriginal)' => 'SELECT DISTINCT strftime("%Y", dateoriginal) FROM photos WHERE dateoriginal <> "" ORDER BY dateoriginal DESC'
|
|
);
|
|
|
|
|
|
$select = array();
|
|
$i = 0;
|
|
foreach ($request as $key => $val){
|
|
$query = $conn->query($val);
|
|
$select[$i] = $query->fetchAll(PDO::FETCH_ASSOC);
|
|
$select[$i] = array_column($select[$i],$key);
|
|
if ($i == 4){
|
|
$mc = array();
|
|
foreach($select[$i] as $row){
|
|
$x = explode(",", $row);
|
|
foreach ($x as $y){
|
|
if ((! str_starts_with($y, "_")) && (! str_ends_with($y, "_"))) {
|
|
$mc [] = $y;
|
|
}
|
|
}
|
|
}
|
|
$motcles = array_unique($mc);
|
|
usort($motcles, 'strcasecmp'); // 'strcasecmp'
|
|
$select[$i] = $motcles;
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
?>
|
|
<!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><?php echo gettext('View photos in Sqlite base'); ?></title>
|
|
|
|
<link rel="stylesheet" href="css/sls.css" />
|
|
<link rel='stylesheet' href='lc-lightbox/css/lc_lightbox.min.css' />
|
|
<link rel='stylesheet' href='lc-lightbox/css/open_close_fx.css' />
|
|
<link rel='stylesheet' href='lc-lightbox/skins/minimal.css' />
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
|
|
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<?php
|
|
echo '<h1>' . gettext('View database') . ': ' . $base . '</h1><br />';
|
|
|
|
// Affichage des photos
|
|
|
|
try {
|
|
$columns = array('dateoriginal','lens','model','iso','lat');
|
|
$column = isset($_GET['column']) && in_array($_GET['column'], $columns) ? $_GET['column'] : $columns[0];
|
|
$sort_order = isset($_GET['order']) && strtolower($_GET['order']) == 'desc' ? 'DESC' : 'ASC';
|
|
|
|
$req1 = "";
|
|
$req2 = "";
|
|
$req3 = "";
|
|
$req4 = "";
|
|
$req5 = "";
|
|
$req6 = "";
|
|
$req7 = "";
|
|
|
|
if (!empty($_POST['lens'])) $req1 = "lens = '" . $_POST['lens'] . "'";
|
|
if (!empty($_POST['model'])) $req2 = "model = '" . $_POST['model'] . "'";
|
|
if (!empty($_POST['iso'])) $req3 = "iso = '" . $_POST['iso'] . "'";
|
|
if (!empty($_POST['speed'])) $req4 = "speed = '" . $_POST['speed'] . "'";
|
|
if (!empty($_POST['keyword'])) $req5 = "keywords LIKE '%" . str_replace("'","''", $_POST['keyword']) . "%'";
|
|
if (!empty($_POST['all']) && ($_POST['all'] == "all")) $req = "";
|
|
if (isset($_POST['operator'])) $operator = " " . $_POST['operator'] . " ";
|
|
if (!empty($_POST['gps'])) $req6 = "lat != '' AND long != ''";
|
|
if (!empty($_POST['date'])) $req7 = "strftime('%Y', dateoriginal) = '" . $_POST['date'] . "'";
|
|
|
|
|
|
if (($req1 != "") || ($req2 != "") || ($req3 != "") || ($req4 != "") || ($req5 != "")) {
|
|
$req = "WHERE " . ($req1 != "" ? $req1 . $operator : "") . ($req2 != "" ? $req2 . $operator : "") . ($req3 != "" ? $req3 . $operator : "") . ($req4 != "" ? $req4 . $operator : "") . ($req5 != "" ? $req5 . $operator : "");
|
|
$req = substr_replace($req, " ", (strlen($req) - strlen($operator)), strlen($operator));
|
|
}
|
|
elseif ($req6 != "") {
|
|
$req = "WHERE " . $req6 . " ";
|
|
}
|
|
elseif ($req7 != "") {
|
|
$req = "WHERE " . $req7 . " ";
|
|
}
|
|
else $req = "";
|
|
|
|
|
|
$query2 = "SELECT * FROM photos " . $req . "ORDER BY " . $column . " " . $sort_order . " " . "LIMIT ? OFFSET ?";
|
|
|
|
/* 1ere requete pour compter les resultats:*/
|
|
/*
|
|
$sql = "SELECT COUNT(*) FROM photos " . $req;
|
|
$statement = $conn->prepare($sql);
|
|
$statement->execute();
|
|
$ct = $statement->fetch(PDO::FETCH_NUM); // Return array indexed by column number
|
|
$count = $ct;
|
|
reset($ct); // Resets array cursor and returns first value (the count)
|
|
$count = current($ct);
|
|
//$count = $count[0];
|
|
echo $count;
|
|
*/
|
|
|
|
$query ="WITH cnt(total) as (SELECT COUNT(*) from photos " . $req . ") SELECT * FROM photos,cnt " . $req . "ORDER BY " . $column . " " . $sort_order . " " . "LIMIT ? OFFSET ?";
|
|
// WITH cnt(total) as (SELECT COUNT(*) from photos WHERE speed = '1.6s' ) SELECT * FROM photos,cnt WHERE speed = '1.6s' ORDER BY dateoriginal ASC LIMIT ? OFFSET ?
|
|
|
|
$offset = $perpage * ($page -1);
|
|
|
|
$stmt = $conn->prepare($query);
|
|
$stmt->execute(array($perpage, $offset)); // (1,3...) 1=1ere valeur 3=valeur
|
|
|
|
// nb de resultats de la requete
|
|
$count = $stmt->fetchColumn(34); // total => 35
|
|
$stmt->execute(array($perpage, $offset));
|
|
|
|
|
|
if (empty($_POST)) {
|
|
echo '<h3 class="greenstyle">' . count($dir) . gettext(' images found in folder') . ' <i><a href="photos/img/">photos/img/</a></i> ...</h3>';
|
|
// Display request !!
|
|
echo '<pre><code>' . $query2 . '</code></pre>';
|
|
}
|
|
elseif ((isset($_POST['suppress'])) && ($_POST["suppress"] == "suppress")) {
|
|
|
|
echo $msg;
|
|
|
|
if (isset($_POST['coche']) && (! empty($_POST['coche']))) {
|
|
echo '<pre><code>' . $request_delete . '</code></pre>';
|
|
}
|
|
|
|
}
|
|
else {
|
|
$found = sprintf(ngettext("%d image found with the following query:","%d images found with the following query:", $count), $count);
|
|
echo '<h3 class="greenstyle">' . $found . '</h3>';
|
|
//echo '<h3 class="greenstyle">' . $count . gettext(' images founds with the following request:') . '</h3>';
|
|
// Display request !!
|
|
echo '<pre><code>' . $query2 . '</code></pre>';
|
|
}
|
|
$up_or_down = str_replace(array('ASC','DESC'), array('up','down'), $sort_order);
|
|
$asc_or_desc = $sort_order == 'ASC' ? 'desc' : 'asc';
|
|
$add_class = ' class="highlight"';
|
|
?>
|
|
|
|
<form id="keywordSelect" name="keywordSelect" action="view_bdd2.php" method="post" class="myForm" >
|
|
<fieldset>
|
|
<legend>APN</legend>
|
|
|
|
|
|
<select name="keyword" id="keyword" class="classic">
|
|
<option value=""><?php echo gettext('keywords'); ?></option>
|
|
<?php
|
|
for( $i = 0; $i < count($select[4]); $i++) {
|
|
echo '<option>' . $select[4]["$i"] . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
<select name="model" id="model" class="classic">
|
|
<option value=""><?php echo gettext('model'); ?></option>
|
|
<?php
|
|
for( $i = 0; $i < count($select[1]); $i++) {
|
|
echo '<option>' . $select[1]["$i"] . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
<select name="lens" id="lens" class="classic">
|
|
<option value=""><?php echo gettext('lens'); ?></option>
|
|
<?php
|
|
for( $i = 0; $i < count($select[0]); $i++) {
|
|
echo '<option>' . $select[0]["$i"] . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
<select name="iso" id="iso" class="classic">
|
|
<option value=""><?php echo gettext('iso'); ?></option>
|
|
<?php
|
|
for( $i = 0; $i < count($select[2]); $i++) {
|
|
echo '<option>' . $select[2]["$i"] . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
<select name="speed" id="speed" class="classic">
|
|
<option value=""><?php echo gettext('speed'); ?></option>
|
|
<?php
|
|
for( $i = 0; $i < count($select[3]); $i++) {
|
|
echo '<option>' . $select[3]["$i"] . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
<span class="operateur"><?php echo gettext('Operator:'); ?></span>
|
|
<input type="radio" id="operator1" name="operator" value="AND" checked>
|
|
<label for="ope1"><?php echo gettext('AND'); ?></label>
|
|
<input type="radio" id="operator2" name="operator" value="OR">
|
|
<label for="ope1"><?php echo gettext('OR'); ?></label>
|
|
|
|
|
|
<button type="submit" class="myButton">OK</button>
|
|
|
|
</fieldset>
|
|
</form>
|
|
|
|
|
|
<form id="allSelect" name="allSelect" action="view_bdd2.php" method="post" class="myForm" >
|
|
<fieldset>
|
|
<legend>All</legend>
|
|
<button type="submit" name = "all" value="all" class="myButton all"> <?php echo gettext('All photos'); ?> </button>
|
|
</fieldset>
|
|
</form>
|
|
|
|
<form id="dateSelect" name="dateSelect" action="view_bdd2.php" method="post" class="myForm" >
|
|
<fieldset>
|
|
<legend>Divers</legend>
|
|
<select name="date" id="date" class="classic">
|
|
<option value=""><?php echo gettext('year'); ?></option>
|
|
<?php
|
|
for( $i = 0; $i < count($select[5]); $i++) {
|
|
echo '<option>' . $select[5]["$i"] . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
|
|
<input type="checkbox" id="gps" name="gps">
|
|
<label for="gps">gps</label>
|
|
|
|
|
|
<button type="submit" name = "all" value="all" class="myButton all"> <?php echo gettext('OK'); ?> </button>
|
|
</fieldset>
|
|
</form>
|
|
|
|
<?php
|
|
echo '<div id="view_bdd">';
|
|
echo '<p></p>';
|
|
echo '<form id="viewSelect" name="viewSelect" action="view_bdd2.php" method="post" class="myForm" >';
|
|
|
|
echo '<button type="submit" formaction="edit_bdd.php" name="edit" value="edit" class="myButton all">' . gettext('Edit') . '</button>';
|
|
//echo '<button type="submit" name="suppress" value="suppress" class="myButton all">' . gettext('Suppress') . '</button>';
|
|
echo '<button type="submit" formaction="delete_bdd.php" name="suppress" value="suppress" class="myButton all">' . gettext('Suppress') . '</button>';
|
|
|
|
echo '<table class="styled-table">';
|
|
echo '<thead>';
|
|
echo ((isset($_SESSION["user"])) ? '<th>' . gettext('Select') . '</th>' : '') . '<th>' . gettext('Id') . '</th><th>' . gettext('Thumb') . '</th><th>' . gettext('Filename') . ' (' . gettext('Size') . ')</th><th><a class="sort" href="view_bdd.php?column=date&order=' . $asc_or_desc . '">' . gettext('Date') . ' <i class="fas fa-sort' . ($column == 'date' ? '-' . $up_or_down : '') . '"></i></a></th><th><a href="view_bdd.php?column=lens&order=' . $asc_or_desc . '">' . gettext('Lens') . ' <i class="fas fa-sort' . ($column == 'lens' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Speed') . '</th><th>' . gettext('Aperture') . '</th><th>' . gettext('Exposure corr.') . '</th><th><a href="view_bdd.php?column=iso&order=' . $asc_or_desc . '">' . gettext('Iso') . ' <i class="fas fa-sort' . ($column == 'iso' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Width') . '</th><th>' . gettext('Height') . '</th>';
|
|
echo '<th><a href="view_bdd.php?column=model&order=' . $asc_or_desc . '">' . gettext('Model') . ' <i class="fas fa-sort' . ($column == 'Model' ? '-' . $up_or_down : '') . '"></i></a></th><th><a href="view_bdd.php?column=lat&order=' . $asc_or_desc . '">' . gettext('Latitude') . ' <i class="fas fa-sort' . ($column == 'lat' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Longitude') . '</th><th>' . gettext('Alttitude') . '</th><th>' . gettext('Legende') . '</th><th>' . gettext('Copyright') . '</th><th>' . gettext('Title') . '</th>';
|
|
echo '<th>' . gettext('Creator') . '</th><th>' . gettext('Keywords') . '</th><th>' . gettext('Metering') . '</th><th>' . gettext('Flash') . '</th><th>' . gettext('Focal') . '</th><th>' . gettext('Wb') . '</th><th>' . gettext('Program') . '</th>';
|
|
echo '</thead>';
|
|
echo '<tbody>';
|
|
|
|
$nRows = 0;
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
$thumbnail = host() . str_replace("photos/img", "photos/thumb", $row['filename']);
|
|
$full = host() . $row['filename'];
|
|
$lb = data_for_lightbox($row);
|
|
|
|
echo '<tr>' . ((isset($_SESSION["user"])) ? '<td>' . '<input type="checkbox" id="edit" name="coche[]" value="' . $row['id'] . '" >' . '</td>' : '') . '<td>' . $row['id'] . '</td><td>' . '<a href="' . $full . '" title="' . htmlspecialchars($lb['title']) . '" data-lcl-txt="' . htmlspecialchars($lb['description']) . '" data-lcl-author="' . htmlspecialchars($lb['creator']) . '"><img src="'.$thumbnail.'" alt="' . htmlspecialchars($lb['title']) . '" /></a>' . '</td><td>' . $row['filename'] . '<br />(' . $row['filesize'] . ')</td><td>' . $row['dateoriginal'] . '</td><td>' . $row['lens'] . '</td><td>' . $row['speed'] . '</td><td>' . $row['aperture'] . '</td> <td>' . $row['correctexpo'] . '</td><td>' . $row['iso'] . '</td><td>' . $row['width'] . '</td><td>' . $row['height'] . '</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['title'] . '</td><td>' . $row['creator'] . '</td><td>' . $row['keywords'] . '</td><td>' . $row['metering'] . '</td><td>' . $row['flash'] . '</td><td>' . $row['focal'] . '</td><td>' . $row['wb'] . '</td><td>' . $row['program'] . '</td></tr>';
|
|
$nRows++;
|
|
}
|
|
|
|
if ($nRows == 0) echo '<tr><td colspan="25" class="noimg">' . gettext("No image found !") .'</td></tr>';
|
|
|
|
echo '</tbody></table>';
|
|
if (isset($_SESSION["user"])) {
|
|
echo '<button type="submit" formaction="edit_bdd.php" name="edit" value="edit" class="myButton all">' . gettext('Edit') . '</button>';
|
|
//echo '<button type="submit" name="suppress" value="suppress" class="myButton all">' . gettext('Suppress') . '</button>';
|
|
echo '<button type="submit" formaction="delete_bdd.php" name="suppress" value="suppress" class="myButton all">' . gettext('Suppress') . '</button>';
|
|
}
|
|
echo '</form>';
|
|
echo '</div>';
|
|
|
|
}
|
|
catch(PDOException $e) {
|
|
echo $e->getMessage();
|
|
}
|
|
?>
|
|
|
|
<script type='text/javascript'>
|
|
|
|
$(document).ready(function() {
|
|
|
|
var $obj = lc_lightbox('td a', {
|
|
img_zoom : true, // whether to enable zooming system
|
|
|
|
author_by_txt : '<?php echo gettext("by"); ?>', // which text is used before the author name, by default is "by"
|
|
|
|
slideshow : true, // whether to enable slideshow
|
|
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
|
|
animation_time : 100,
|
|
slideshow_time : 4000, // durée de l'intervalle du diaporama
|
|
autoplay : false, // autoplay slideshow - bool
|
|
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
|
|
ol_opacity : 0.7, // overlay opacity / value between 0 and 1
|
|
ol_color : '#111', // background color of the overlay
|
|
ol_pattern : false, // overlay patterns - insert the pattern name or false
|
|
|
|
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
|
|
ins_close_pos : 'normal', // set closing button position for inner commands - normal/corner
|
|
nav_btn_pos : 'normal', // Régle les flèches et la position de lecture/pause. Options disponibles: normal|middle
|
|
|
|
txt_hidden : true, // whether to hide texts on lightbox opening - bool or int (related to browser's smaller side)
|
|
shox_title : true, // s'il faut afficher les titres
|
|
show_descr : true, // 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
|
|
autoplay_videos : false, // bool / whether to autoplay videos (NB: modern browsers ignore this for deeplinked elements. Not applied if video has poster)
|
|
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
|
|
});
|
|
});
|
|
|
|
</script>
|
|
|
|
<?php
|
|
|
|
try {
|
|
//$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
|
$query4 = "SELECT COUNT(*) AS count FROM photos " . $req;
|
|
|
|
$stmt = $conn->prepare($query4);
|
|
$stmt->execute();
|
|
|
|
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
$numRows = $result['count'];
|
|
|
|
//$stmt = $conn->reset();
|
|
$conn = null;
|
|
|
|
}
|
|
catch(PDOException $e) {
|
|
echo $e->getMessage();
|
|
}
|
|
|
|
// calcul du nombre de pages (arrondi a l'entier supérieur)
|
|
$nbpages = ceil($numRows / $perpage);
|
|
$prec = $page - 1;
|
|
$suiv = $page + 1;
|
|
|
|
if ($numRows > 0) {
|
|
echo '<div class="navPage">' . gettext("Page") . ': ';
|
|
if ($page >= 2) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$prec.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Previous Page").'">« '.gettext("prev").'</a> ';
|
|
for ($i = 1; $i <= $nbpages; $i++) {
|
|
if ($i != $page) {
|
|
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Page").' '.$i.'">'.$i.' </a> ';
|
|
}
|
|
else {
|
|
echo "<span class='gras'>".$i."</span> ";
|
|
}
|
|
}
|
|
if ($page < $nbpages) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suiv.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Next Page").'">'.gettext("next").' »</a> ';
|
|
echo '</div>';
|
|
}
|
|
?>
|
|
|
|
<?php $logout = (isset($_SESSION["user"])) ? '<a class="" href="4-logout.php" role="button">' . gettext("Log out") . '</a></p>' : ''; ?>
|
|
|
|
<p class="navPage"><a href="index.php" title="<?php echo gettext("Home"); ?>"><?php echo gettext("Home"); ?></a> | <a href="photo-du-mois.php" title="<?php echo gettext("Picture of the month"); ?>"><?php echo gettext("Picture of the month"); ?></a> | <a href="maps.php" title="<?php echo gettext("Maps"); ?>"><?php echo gettext("Maps"); ?></a> | <a href="admin.php" title="<?php echo gettext("Admin page"); ?>"><?php echo gettext("Admin page"); ?></a> | <?php echo $logout; ?></p>
|
|
|
|
<p><em><small>© 2013-<?php echo date('Y'); ?> sur-le-sentier.fr</small></em></p>
|
|
|
|
<script src='lc-lightbox/js/lc_lightbox.min.js' type='text/javascript'></script>
|
|
<script src='lc-lightbox/lib/AlloyFinger/alloy_finger.min.js' type='text/javascript'></script>
|
|
|
|
</body>
|
|
|
|
</html>
|