superflux/index.php

128 rivejä
3.8 KiB
PHP

2019-12-07 12:08:09 +01:00
<?php require "debut.inc.php"; ?>
2019-06-24 19:34:44 +02:00
2019-12-07 12:08:09 +01:00
<?php
2019-06-24 19:34:44 +02:00
function creerMiniature($cheminComplet, $adresseImage, $nomImage) {
if (!file_exists($cheminComplet . "/400/" . $nomImage)) {
2021-04-05 16:29:11 +02:00
$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);
2019-06-24 19:34:44 +02:00
}
if (!file_exists($cheminComplet . "/800/" . $nomImage)) {
2021-04-05 16:29:11 +02:00
$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);
2019-06-24 19:34:44 +02:00
}
}
2020-01-18 23:03:01 +01:00
?>
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
<main>
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
<section class="gallerie">
2019-06-24 19:34:44 +02:00
<?php if (preg_match("#\.\.#", $_GET['chemin'])) {
exit("Par sécurité, .. ne peut être utilisé dans un chemin");
} else {
2020-01-18 23:03:01 +01:00
$cheminComplet = "catalogue/" . $_GET['chemin'] . "";
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
if (!file_exists($cheminComplet . "/400")) {
mkdir($cheminComplet . "/400");
}
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
if (!file_exists($cheminComplet . "/800")) {
mkdir($cheminComplet . "/800");
}
if (!file_exists($cheminComplet . "/comms")) {
mkdir($cheminComplet . "/comms");
}
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
$listeElements = new DirectoryIterator($cheminComplet);
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
$nbElementsAffiches = 0;
foreach($listeElements as $listeElements) {
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
if ((!$listeElements->isDot()) AND ($listeElements->getFilename() !== "400") AND ($listeElements->getFilename() !== "800") AND ($listeElements->getFilename() !== "comms")) { // Ignore les éléments "." et ".." ainsi que les dossiers d'images redimensionnées
2019-06-24 19:34:44 +02:00
$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();
}
?>">
2021-04-05 16:29:11 +02:00
<img loading="lazy" src="<?php echo $cheminComplet . "/" . $listeElements->getFilename() . "/400/index.jpg"; ?>">
2019-06-24 19:34:44 +02:00
<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(); ?>">
2021-04-05 16:29:11 +02:00
<img loading="lazy" src="<?php
2019-06-24 19:34:44 +02:00
if ($dimensions[0] > $dimensions[1]) {
echo $cheminComplet . "/800/" . $listeElements->getFilename();
} else {
echo $cheminComplet . "/400/" . $listeElements->getFilename();
}
?>" alt=""/>
</a>
</div>
<?php
} else {
2021-04-05 16:29:11 +02:00
echo $adresseImage;
2019-06-24 19:34:44 +02:00
echo "ERREUR PHP : L'élément n'est ni un fichier ni un dossier !";
}
?>
<?php
$nbElementsAffiches++;
} } } ?>
2020-01-18 23:03:01 +01:00
</section>
2019-06-24 19:34:44 +02:00
</main>
2019-12-07 12:08:09 +01:00
<?php require "fin.inc.php"; ?>