makeFileList(); // nouvel article if($numArticle == 0) { $title = "Ajouter un article"; $texte = ''; } else { // nom de l'article ciblé (objet et session) $Article->findFileName($numArticle); $_SESSION['nomFichier'] = $Article->getFileName(); // suppression if($suppression) { $Article->delete(); header('Location: index.php?page=' . $page_actuelle); exit(); } // modification else { $title = "Modifier un article"; $texte = $Article->readOne(); // entrée de l'éditeur } } // pour l'affichage des articles $articles = array_reverse($Article->readAll()); // lourd // sécurisation du contenu pré-existant inséré dans l'éditeur if($numArticle >= 0 && !$suppression) { require('controller/ckeditor.php'); $texte = preparationCKeditor($numArticle, $texte); } // NB: penser à ajouter au template la fonctionnalité "autosave" // https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/saving-data.html // morceaux en HTML à assembler // variable $editeurHTML, contient $texte require('view/template-formulaires.php'); // variables $css, $js, $header et $content, // $content contient $articles et $editeurHTML require('view/melaine.php'); // fin de l'assemblage require('view/template.php'); } function discoEdit($numArticle, $suppression) { $page_actuelle = "discographie"; $title = "Discographie"; // modèle $Album = new OneArticle($page_actuelle); $Album->makeFileList(); // nouvel album if($numArticle == 0) { $title = "Ajouter un album"; $texte = ''; } else { // nom de l'article ciblé (objet et session) $Album->findFileName($numArticle); $_SESSION['nomFichier'] = $Album->getFileName(); // suppression if($suppression) { $Album->delete(); header('Location: index.php?page=' . $page_actuelle); exit(); } // modification else { $title = "Modifier un album"; $texte = $Album->readOne(); // entrée de l'éditeur } } // traitements PHP pour l'éditeur // sécurisation du contenu pré-existant inséré dans l'éditeur if($numArticle >= 0 && !$suppression) { require('controller/ckeditor.php'); $texte = preparationCKeditor($numArticle, $texte); } // contenu de tous les fichiers JSON (= tableau de chaines) $albumsJSON = $Album->readAll(); // noms des fichiers JSON $albumNamesJSON = $Album->getFileList(); // changer les chaines JSON en tableaux: titre, année, pochette $i = 0; $annees = array(); foreach($albumsJSON as $oneAlbum) { $albumsJSON[$i] = json_decode($oneAlbum, true); // ajout des noms des fichiers JSON $albumsJSON[$i][3] = $albumNamesJSON[$i]; $annees[$i] = $albumsJSON[$i][1]; $i++; } // tri d'un tableau multidimensionnel array_multisort($annees, $albumsJSON); // on passe maintenant au contenu HTML $Album->setFormat('html'); $Album->makeFileList(); $albumNamesHTML = $Album->getFileList(); // 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) { // nom sans extension $chemin = pathinfo($oneAlbum[3]); $nomJSONsansExt = $chemin['filename']; // au cas où la discographie ne contient aucun html if(!empty($albumNamesHTML)) { if(file_exists('data/discographie/html/' . $nomJSONsansExt . '.html')) { $lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0]; $avecLien[$i] = true; } else { $lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0]; $avecLien[$i] = false; } $i++; } } // morceaux en HTML à assembler // variable $editeurHTML, contient $texte require('view/template-formulaires.php'); // variables $css, $js, $header et $content, // $content contient ???? et $editeurHTML require('view/discographie.php'); // fin de l'assemblage require('view/template.php'); }