From 787d03e48471ba62cd830379428f04d996f0b74b Mon Sep 17 00:00:00 2001 From: polo Date: Thu, 17 Feb 2022 18:13:00 +0100 Subject: model update --- controller/admin.php | 372 ++++++++++++++++++++++++++++----------------------- 1 file changed, 207 insertions(+), 165 deletions(-) (limited to 'controller/admin.php') diff --git a/controller/admin.php b/controller/admin.php index e319c80..7f22711 100644 --- a/controller/admin.php +++ b/controller/admin.php @@ -1,165 +1,207 @@ -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'); -} +fileCode = $fileCode; + $_SESSION['target'] = $Articles->fileCode; + + // suppression + if($suppression) + { + $Articles->delete(); + + // redirection immédiate avant affichage + header('Location: index.php?page=' . $page_actuelle); + exit(); + } + // modification + else + { + $title = "Modifier un article"; + $texte = $Articles->readOne(); // entrée de l'éditeur + } + } + + // ajout des données dans $Articles->fileList['content'] + if(!empty($Articles->fileList)) + { + $Articles->readAll(); + $Articles->fileList = array_reverse($Articles->fileList); + } + + // sécurisation du contenu pré-existant inséré dans l'éditeur + if(!empty($fileCode) && !$suppression) + { + $fileCodeArgument = '&article=' . $fileCode; + require('controller/ckeditor.php'); + $texte = preparationCKeditor($texte); + } + else + { + $fileCodeArgument = ''; + } + + + // 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($fileCode, $suppression) +{ + $page_actuelle = "discographie"; + $title = "Discographie"; + + // modèle + $Albums = new Album($page_actuelle); + $Albums->makeFileList(); + //var_dump($Albums); + // contenu: JSON, HTML, noms et chemins des fichiers + $Albums->readAll(); + $Albums->fileList = array_reverse($Albums->fileList); + //var_dump($Albums); + //var_dump($Albums->fileList); + + // nouvel album + if($fileCode == '') + { + //echo($_SESSION['target'] . "
"); + //unset($_SESSION['target']); + $title = "Ajouter un album"; + + // formulaires vides + $vignette = ['', '', '']; + $texte = ''; + } + else + { + // album ciblé + $Albums->fileCode = $fileCode; + + // suppression + if($suppression) + { + $Albums->delete(); + header('Location: index.php?page=' . $page_actuelle); + exit(); + } + // modification + else + { + $_SESSION['target'] = $fileCode; + $title = "Modifier un album"; + + for($i = 0; $i < $Albums->fileListCount; $i++) + { + if($fileCode == $Albums->fileList[$i]['fileCode']) + { + // json + $vignette[0] = $Albums->fileList[$i]['titre']; + $vignette[1] = $Albums->fileList[$i]['annee']; + $vignette[2] = $Albums->fileList[$i]['pochette']; + // html + $texte = $Albums->fileList[$i]['HTMLcontent']; + + // image affichée à côté des formulaires + $imageFormulaire = 'data/' . $page_actuelle . '/images/' . $vignette[2]; + } + } + } + } + + // traitements PHP pour l'éditeur + // sécurisation du contenu pré-existant inséré dans l'éditeur + if(!empty($fileCode) && !$suppression && !empty($texte)) + { + // dans l'adresse dans la balise
+ $fileCodeArgument = '&article=' . $fileCode; + + require('controller/ckeditor.php'); + $texte = preparationCKeditor($texte); + } + else + { + $fileCodeArgument = ''; + } + + // préremplir le champ + // c'est normallement impossible + + + // tri des albums avec l'année dans le .json + + // noms des fichiers JSON + //$albumNamesJSON = $Albums->fileList; + //$annees = []; + for($i = 0; $i < $Albums->fileListCount; $i++) + { + // une case supplémentaire contient le "fileCode" + //$albumsJSON[$i][3] = pathinfo($albumNamesJSON[$i])['filename']; + //$albumsJSON[$i][3] = pathinfo($Albums->fileList[$i]['fileCode'])['filename']; + + //$annees[$i] = $albumsJSON[$i][1]; + } + //var_dump($annee); die(); + + // tri d'un tableau multidimensionnel + //array_multisort($annees, $albumsJSON); + + + + // liens dans la page et le menu chronologie + // ce dernier comporte une ancre lorsque le html n'existe pas + /*$lienAlbum = []; + $avecLien = []; + $linkDiscoChrono = [];*/ + for($i = 0; $i < $Albums->fileListCount; $i++) + { + if(file_exists('data/discographie/html/' . $Albums->fileList[$i]['fileCode'] . '.html')) + { + $lienAlbum[$i] = 'page=album&album_name=' . $Albums->fileList[$i]['titre'] . '&file_code=' . $Albums->fileList[$i]['fileCode']; + $avecLien[$i] = true; + $linkDiscoChrono[$i] = 'linkChrono'; // css + } + else + { + $lienAlbum[$i] = 'page=discographie#' . $Albums->fileList[$i]['titre']; + $avecLien[$i] = false; + $linkDiscoChrono[$i] = 'noLinkChrono'; // css + } + $lienBoutonModif[$i] = 'page=discographie&action=edition&file_code=' . $Albums->fileList[$i]['fileCode']; + } + + // 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'); +} -- cgit v1.2.3