From 29df6f1362745eabf4fbcaedf309eb63795152fa Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 29 Nov 2021 03:25:19 +0100 Subject: discographie --- controller/admin.php | 92 ++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 50 deletions(-) (limited to 'controller/admin.php') diff --git a/controller/admin.php b/controller/admin.php index 90924e0..e319c80 100644 --- a/controller/admin.php +++ b/controller/admin.php @@ -1,15 +1,15 @@ findFileName($numArticle); - $_SESSION['nomFichier'] = $Article->fileName; + $_SESSION['target'] = $Article->fileName; // suppression if($suppression) @@ -42,10 +42,10 @@ function melaineEdit($numArticle, $suppression) $articles = array_reverse($Article->readAll()); // lourd // sécurisation du contenu pré-existant inséré dans l'éditeur - if($numArticle >= 0 && !$suppression) + if($numArticle > 0 && !$suppression) { require('controller/ckeditor.php'); - $texte = preparationCKeditor($numArticle, $texte); + $texte = preparationCKeditor($texte); } // NB: penser à ajouter au template la fonctionnalité "autosave" @@ -61,104 +61,96 @@ function melaineEdit($numArticle, $suppression) require('view/template.php'); } -function discoEdit($numArticle, $albumCode, $suppression) +function discoEdit($albumCode, $suppression) { $page_actuelle = "discographie"; $title = "Discographie"; // modèle - $Album = new Album($page_actuelle); - $Album->makeFileList(); + $Albums = new Album($page_actuelle); + $Albums->makeFileList(); // nouvel album - if($numArticle == 0) + if($albumCode == '') { + unset($_SESSION['target']); $title = "Ajouter un album"; + + // formulaires vides + $vignette = ['', '', '']; $texte = ''; } else { - // nom de l'article ciblé (objet et session) - $Album->findFileName($numArticle); - $_SESSION['nomFichier'] = $Album->fileName; + // album ciblé + $Albums->albumCode = $albumCode; // suppression if($suppression) { - $Album->delete(); + $Albums->delete(); header('Location: index.php?page=' . $page_actuelle); exit(); } // modification else { + $_SESSION['target'] = $Albums->albumCode; $title = "Modifier un album"; - $texte = $Album->readOneAlbum($albumCode); - $vignette = json_decode($Album->getVignette(), true); + $texte = $Albums->readOneHTML($albumCode); + $vignette = $Albums->getVignetteJSON(); } } // traitements PHP pour l'éditeur // sécurisation du contenu pré-existant inséré dans l'éditeur - if($numArticle >= 0 && !$suppression) + if(!empty($albumCode) && !$suppression && !empty($texte)) { require('controller/ckeditor.php'); - $texte = preparationCKeditor($numArticle, $texte); + $texte = preparationCKeditor($texte); } + // préremplir le champ + // c'est normallement impossible + // contenu de tous les fichiers JSON (= tableau de chaines) - $albumsJSON = $Album->readAll(); + $albumsJSON = $Albums->readAll(); // noms des fichiers JSON - $albumNamesJSON = $Album->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); + // 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]; $annees[$i] = $albumsJSON[$i][1]; - $i++; } - print_r($albumsJSON); - //exit(); + // tri d'un tableau multidimensionnel array_multisort($annees, $albumsJSON); - // on passe maintenant au contenu HTML - $Album->format = 'html'; - $Album->makeFileList(); - $albumNamesHTML = $Album->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; $avecLien = []; - foreach($albumsJSON as $oneAlbum) + $linkDiscoChrono = []; + 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]; - $lienBoutonModif[$i] = 'discographie&action=edition&album_code=' . $nomJSONsansExt; + $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]; } } -- cgit v1.2.3