227 lines
5.9 KiB
PHP
Executable File
227 lines
5.9 KiB
PHP
Executable File
<?php
|
|
if (!isset($_GET['chemin'])) {
|
|
|
|
header('Location: index.php?chemin=');
|
|
|
|
}
|
|
|
|
function creerMiniature($cheminComplet, $adresseImage, $nomImage) {
|
|
if (!file_exists($cheminComplet . "/400/" . $nomImage)) {
|
|
$image = imagecreatefromjpeg($adresseImage);
|
|
$dimensions = getimagesize($adresseImage);
|
|
$nouvHauteur = ((400 * $dimensions[1]) / $dimensions[0]);
|
|
$imageSrt = imagecreatetruecolor(400, $nouvHauteur);
|
|
imagecopyresampled($imageSrt, $image, 0, 0, 0, 0, 400, $nouvHauteur, $dimensions[0], $dimensions[1]);
|
|
imagejpeg($imageSrt, $cheminComplet . "/400/" . $nomImage);
|
|
imagedestroy($imageSrt);
|
|
imagedestroy($image);
|
|
}
|
|
if (!file_exists($cheminComplet . "/800/" . $nomImage)) {
|
|
$image = imagecreatefromjpeg($adresseImage);
|
|
$dimensions = getimagesize($adresseImage);
|
|
$nouvHauteur = ((800 * $dimensions[1]) / $dimensions[0]);
|
|
$imageSrt = imagecreatetruecolor(800, $nouvHauteur);
|
|
imagecopyresampled($imageSrt, $image, 0, 0, 0, 0, 800, $nouvHauteur, $dimensions[0], $dimensions[1]);
|
|
imagejpeg($imageSrt, $cheminComplet . "/800/" . $nomImage);
|
|
imagedestroy($imageSrt);
|
|
imagedestroy($image);
|
|
}
|
|
}
|
|
if (!function_exists('array_key_last')) {
|
|
|
|
function array_key_last($array) {
|
|
$key = NULL;
|
|
|
|
if (is_array($array)) {
|
|
|
|
end($array);
|
|
$key = key($array);
|
|
}
|
|
|
|
return $key;
|
|
}
|
|
} ?>
|
|
|
|
|
|
<!DOCTYPE HTML>
|
|
<html lang="fr">
|
|
<head>
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
|
|
|
|
|
|
<title>Super·F·lux<?php
|
|
$nomDossiers = preg_split("#/#", $_GET['chemin']); // Sépare le chemin en une liste de dossiers qui le composent
|
|
foreach ($nomDossiers as $niveauDossier => $nomDossier) {
|
|
if (isset($nomDossier)) {
|
|
if (!is_null($nomDossier)) {
|
|
echo " > " . $nomDossier;
|
|
}
|
|
}
|
|
}
|
|
?></title>
|
|
<meta name="author" content="Cécile Chevallier">
|
|
<meta name="publisher" content="Miraty">
|
|
<meta name="distribution" content="global">
|
|
<meta name="robots" content="index, follow">
|
|
<meta name="keywords" lang="fr" content="superflux">
|
|
<meta name="description" content="Super·F·lux, photographies de Cécile Chevallier sous CC BY-SA 4.0">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<style>
|
|
<?php require("lessphp/lessc.inc.php");
|
|
$less = new lessc;
|
|
echo $less->compileFile("style.less"); ?>
|
|
</style>
|
|
|
|
<!-- Lightbox https://lokeshdhakar.com/projects/lightbox2/ -->
|
|
<link href="lightbox/dist/css/lightbox.min.css" rel="stylesheet">
|
|
<script src="lightbox/dist/js/lightbox-plus-jquery.min.js"></script>
|
|
<script>
|
|
lightbox.option({
|
|
'resizeDuration': 0,
|
|
'fadeDuration': 200
|
|
})
|
|
</script>
|
|
|
|
</head>
|
|
<body>
|
|
<header>
|
|
|
|
<h1><a href="index.php" title="Retour à la page d'accueil">Super·F·lux</a></h1>
|
|
|
|
|
|
|
|
<?php
|
|
$nomDossiers = preg_split("#/#", $_GET['chemin']); // Sépare le chemin en une liste de dossiers qui le composent
|
|
foreach ($nomDossiers as $niveauDossier => $nomDossier) { ?>
|
|
<h<?php echo $niveauDossier + 2; ?>><a href="index.php?chemin=<?php
|
|
|
|
if (array_key_last($nomDossiers) == $niveauDossier) {
|
|
echo $_GET['chemin'];
|
|
} else {
|
|
echo rtrim(stristr($_GET['chemin'], $nomDossiers[$niveauDossier + 1], TRUE), "/");
|
|
}
|
|
|
|
?>"><?php echo $nomDossier; ?></a></h<?php echo $niveauDossier + 2; ?>>
|
|
<?php
|
|
}
|
|
|
|
|
|
?>
|
|
</header>
|
|
|
|
<main>
|
|
|
|
|
|
<?php if (preg_match("#\.\.#", $_GET['chemin'])) {
|
|
exit("Par sécurité, .. ne peut être utilisé dans un chemin");
|
|
|
|
} else {
|
|
$cheminComplet = "catalogue/" . $_GET['chemin'] . "";
|
|
|
|
if (!file_exists($cheminComplet . "/400")) {
|
|
mkdir($cheminComplet . "/400");
|
|
}
|
|
|
|
if (!file_exists($cheminComplet . "/800")) {
|
|
mkdir($cheminComplet . "/800");
|
|
}
|
|
|
|
$listeElements = new DirectoryIterator($cheminComplet);
|
|
|
|
$nbElementsAffiches = 0;
|
|
foreach($listeElements as $listeElements) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ((!$listeElements->isDot()) AND ($listeElements->getFilename() !== "400") AND ($listeElements->getFilename() !== "800")) { // Ignore les éléments "." et ".." ainsi que les dossiers d'images redimensionnées
|
|
|
|
$adresseImage = $cheminComplet . "/" . $listeElements->getFilename();
|
|
|
|
if (is_dir($adresseImage)) { ?>
|
|
|
|
<div class="element dossier">
|
|
<a href="index.php?chemin=<?php if (!empty($_GET['chemin'])) {
|
|
echo $_GET['chemin'] . "/" . $listeElements->getFilename();
|
|
} else {
|
|
echo $listeElements->getFilename();
|
|
}
|
|
|
|
|
|
?>">
|
|
<img src="<?php echo $cheminComplet . "/" . $listeElements->getFilename() . "/400/index.jpg"; ?>">
|
|
<div class="nomElementDossier"><?php echo $listeElements->getFilename(); ?></div>
|
|
</a>
|
|
</div>
|
|
|
|
<?php
|
|
} else if (is_file($adresseImage)) {
|
|
creerMiniature($cheminComplet, $adresseImage, $listeElements->getFilename())
|
|
?>
|
|
<div class="element image<?php
|
|
$dimensions = getimagesize($adresseImage);
|
|
|
|
if ($dimensions[0] > $dimensions[1]) {
|
|
echo " paysage";
|
|
} else {
|
|
echo " portrait";
|
|
}
|
|
|
|
|
|
?>">
|
|
<a href="<?php echo $cheminComplet . "/" . $listeElements->getFilename(); ?>" data-title="Image créée par Cécile Chevallier et diffusée sous CC BY-SA 4.0." data-lightbox="<?php echo $listeElements->getFilename(); ?>">
|
|
<img src="<?php
|
|
|
|
if ($dimensions[0] > $dimensions[1]) {
|
|
echo $cheminComplet . "/800/" . $listeElements->getFilename();
|
|
} else {
|
|
echo $cheminComplet . "/400/" . $listeElements->getFilename();
|
|
}
|
|
?>" alt=""/>
|
|
|
|
</a>
|
|
</div>
|
|
<?php
|
|
} else {
|
|
echo $cheminComplet . $listeElements->getFilename();
|
|
echo "ERREUR PHP : L'élément n'est ni un fichier ni un dossier !";
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|
|
<?php
|
|
$nbElementsAffiches++;
|
|
|
|
|
|
} } } ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</main>
|
|
|
|
<footer>
|
|
<br>
|
|
Images créées par Cécile Chevallier et diffusées sous CC BY-SA 4.0.
|
|
<br>
|
|
<a href="https://code.antopie.org/miraty/superflux">Site Web</a> créé par <a href="https://www.antopie.org">Miraty</a> sous <a href="LICENSE.html">AGPLv3+</a>.
|
|
</footer>
|
|
|
|
|
|
</body>
|
|
</html>
|