From 29df6f1362745eabf4fbcaedf309eb63795152fa Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 29 Nov 2021 03:25:19 +0100 Subject: discographie --- controller/visitor.php | 55 ++++++++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 35 deletions(-) (limited to 'controller/visitor.php') diff --git a/controller/visitor.php b/controller/visitor.php index 0e79ee2..6c6146b 100644 --- a/controller/visitor.php +++ b/controller/visitor.php @@ -1,7 +1,7 @@ makeFileList(); + $Albums = new Album($page_actuelle); + $Albums->makeFileList(); // contenu de tous les fichiers JSON (= tableau de chaines) - $albumsJSON = array_reverse($AllAlbums->readAll()); + $albumsJSON = $Albums->readAll(); // noms des fichiers JSON - $albumNamesJSON = $AllAlbums->fileList; + $albumNamesJSON = $Albums->fileList; - // changer les chaines JSON en tableaux: titre, année, pochette - $i = 0; - $annees = array(); - foreach($albumsJSON as $oneAlbum) + $annees = []; + for($i = 0; $i < count($albumsJSON); $i++) { - $albumsJSON[$i] = json_decode($oneAlbum, true); - $annees[$i] = $albumsJSON[$i][1]; + // une case supplémentaire contient le "albumCode" + $albumsJSON[$i][3] = pathinfo($albumNamesJSON[$i])['filename']; - // ajout des noms des fichiers JSON - $albumsJSON[$i][3] = $albumNamesJSON[$i]; - - $i++; + $annees[$i] = $albumsJSON[$i][1]; } + // tri d'un tableau multidimensionnel array_multisort($annees, $albumsJSON); - // on passe maintenant au contenu HTML - $AllAlbums->format = 'html'; - $AllAlbums->makeFileList(); - $albumNamesHTML = $AllAlbums->fileList; - // lien vers le HTML ou ancre? - // pour chaque album, détecter le fichier html - // si non, ne fournir qu'un lien d'ancre pour la liste d'album - $i = 0; + $lienAlbum = []; $avecLien = []; $linkDiscoChrono = []; - foreach($albumsJSON as $oneAlbum) + for($i = 0; $i < count($albumsJSON); $i++) { - // nom sans extension - $chemin = pathinfo($oneAlbum[3]); - $nomJSONsansExt = $chemin['filename']; - - // au cas où la discographie ne contient aucun html - if(!empty($albumNamesHTML)) + // cas particulier où le dossier "html" est vide + if(!empty($Albums->fileList)) { - if(file_exists('data/discographie/html/' . $nomJSONsansExt . '.html')) + if(file_exists('data/discographie/html/' . $albumsJSON[$i][3] . '.html')) { - $lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0]; + $lienAlbum[$i] = 'page=album&album_name=' . $albumsJSON[$i][0] . '&album_code=' . $albumsJSON[$i][3]; $avecLien[$i] = true; $linkDiscoChrono[$i] = 'linkChrono'; // css } else { - $lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0]; + $lienAlbum[$i] = 'page=discographie#' . $albumsJSON[$i][0]; $avecLien[$i] = false; $linkDiscoChrono[$i] = 'noLinkChrono'; // css } - $i++; + $lienBoutonModif[$i] = 'page=discographie&action=edition&album_code=' . $albumsJSON[$i][3]; } } @@ -122,7 +107,7 @@ function album($albumCode, $albumName) $page_actuelle = 'discographie'; $title = $albumName; - $album = Album::readOneAlbum($albumCode); // simple, efficace + $album = Album::readOneHTML($albumCode); // simple, efficace // variables $css, $header et $content require('view/album.php'); -- cgit v1.2.3