2019-06-24 19:34:44 +02:00
< ? 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 >
2019-06-24 19:41:52 +02:00
< 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 >.
2019-06-24 19:34:44 +02:00
</ footer >
</ body >
</ html >