findFileName($numArticle); $_SESSION['target'] = $Article->fileName; // 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($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($albumCode, $suppression) { $page_actuelle = "discographie"; $title = "Discographie"; // modèle $Albums = new Album($page_actuelle); $Albums->makeFileList(); // nouvel album if($albumCode == '') { unset($_SESSION['target']); $title = "Ajouter un album"; // formulaires vides $vignette = ['', '', '']; $texte = ''; } else { // album ciblé $Albums->albumCode = $albumCode; // suppression if($suppression) { $Albums->delete(); header('Location: index.php?page=' . $page_actuelle); exit(); } // modification else { $_SESSION['target'] = $Albums->albumCode; $title = "Modifier un album"; $texte = $Albums->readOneHTML($albumCode); $vignette = $Albums->getVignetteJSON(); } } // traitements PHP pour l'éditeur // sécurisation du contenu pré-existant inséré dans l'éditeur if(!empty($albumCode) && !$suppression && !empty($texte)) { require('controller/ckeditor.php'); $texte = preparationCKeditor($texte); } // préremplir le champ // c'est normallement impossible // contenu de tous les fichiers JSON (= tableau de chaines) $albumsJSON = $Albums->readAll(); // noms des fichiers JSON $albumNamesJSON = $Albums->fileList; $annees = []; for($i = 0; $i < count($albumsJSON); $i++) { // une case supplémentaire contient le "albumCode" $albumsJSON[$i][3] = pathinfo($albumNamesJSON[$i])['filename']; $annees[$i] = $albumsJSON[$i][1]; } // tri d'un tableau multidimensionnel array_multisort($annees, $albumsJSON); // lien vers le HTML ou ancre? $avecLien = []; $linkDiscoChrono = []; for($i = 0; $i < count($albumsJSON); $i++) { // cas particulier où le dossier "html" est vide if(!empty($Albums->fileList)) { if(file_exists('data/discographie/html/' . $albumsJSON[$i][3] . '.html')) { $lienAlbum[$i] = 'page=album&album_name=' . $albumsJSON[$i][0] . '&album_code=' . $albumsJSON[$i][3]; $avecLien[$i] = true; $linkDiscoChrono[$i] = 'linkChrono'; // css } else { $lienAlbum[$i] = 'page=discographie#' . $albumsJSON[$i][0]; $avecLien[$i] = false; $linkDiscoChrono[$i] = 'noLinkChrono'; // css } $lienBoutonModif[$i] = 'page=discographie&action=edition&album_code=' . $albumsJSON[$i][3]; } } // 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'); }