diff options
Diffstat (limited to 'public/index.php')
| -rw-r--r-- | public/index.php | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..f674f0f --- /dev/null +++ b/public/index.php | |||
| @@ -0,0 +1,128 @@ | |||
| 1 | <?php | ||
| 2 | // index.php | ||
| 3 | |||
| 4 | $page = isset($_GET['page']) ? $_GET['page'] : 'accueil'; | ||
| 5 | $from = isset($_GET['from']) ? $_GET['from'] : 'accueil'; // pour revenir au même endroit après un submit | ||
| 6 | $id_article = isset($_GET['id']) && !empty($_GET['id']) ? $_GET['id'] : ''; | ||
| 7 | |||
| 8 | |||
| 9 | require '../src/service/ckeditor5/CKEditor.php'; | ||
| 10 | $ckeditor = new CKEditor(); | ||
| 11 | $ckeditor->setLanguage('fr'); // attention, exécute une autre fonction qui peut échouer | ||
| 12 | $ckeditor->setStorageMode('files'); | ||
| 13 | $ckeditor->setPage($page); | ||
| 14 | |||
| 15 | |||
| 16 | // routage | ||
| 17 | |||
| 18 | // upload images AJAX | ||
| 19 | if(isset($_GET['action']) && $_GET['action'] === 'upload_image_editor') | ||
| 20 | { | ||
| 21 | $ckeditor->checkAjaxRequest(); | ||
| 22 | } | ||
| 23 | |||
| 24 | // submit normal | ||
| 25 | if(isset($_GET['action']) && $_GET['action'] === 'submit_editor' && isset($_POST["contenu"])) // HTML envoyé par l'éditeur | ||
| 26 | { | ||
| 27 | $ckeditor->setFrom($from); | ||
| 28 | $html_from_editor = $ckeditor->checkSubmitPOST(); | ||
| 29 | |||
| 30 | if($id_article == '') // nouvel article | ||
| 31 | { | ||
| 32 | $id_article = time(); | ||
| 33 | } | ||
| 34 | |||
| 35 | if($ckeditor->getStorageMode() === 'database') | ||
| 36 | { | ||
| 37 | // => modèle | ||
| 38 | } | ||
| 39 | elseif($ckeditor->getStorageMode() === 'files') | ||
| 40 | { | ||
| 41 | file_put_contents(CKEditor::DATA_PATH . '/html/' . $id_article . '.html', $html_from_editor); | ||
| 42 | } | ||
| 43 | |||
| 44 | header('Location: index.php?page=' . $ckeditor->getFrom()); | ||
| 45 | die; | ||
| 46 | } | ||
| 47 | |||
| 48 | // modèle - récupération des articles | ||
| 49 | $id_array = []; // noms des id en BBD ou des fichiers | ||
| 50 | $articles_content = []; // contenu HTML | ||
| 51 | |||
| 52 | if(isset($_GET['action']) && $_GET['action'] === 'open_editor' && $id_article == '') | ||
| 53 | { | ||
| 54 | $articles_content = $ckeditor->openEditor() . "\n"; | ||
| 55 | } | ||
| 56 | else | ||
| 57 | { | ||
| 58 | $articles_content = $ckeditor->displayNewArticleButton() . "\n"; | ||
| 59 | } | ||
| 60 | |||
| 61 | if($ckeditor->getStorageMode() === 'database') | ||
| 62 | { | ||
| 63 | // => modèle | ||
| 64 | } | ||
| 65 | elseif($ckeditor->getStorageMode() === 'files') | ||
| 66 | { | ||
| 67 | foreach(scandir(CKEditor::DATA_PATH . '/html/') as $file_name) | ||
| 68 | { | ||
| 69 | if(str_ends_with($file_name, '.html')) // filtre . et .. et d'éventuels autres fichiers | ||
| 70 | { | ||
| 71 | $id_array[] = rtrim($file_name, '.html'); | ||
| 72 | } | ||
| 73 | } | ||
| 74 | |||
| 75 | // suppression et rechargement | ||
| 76 | if(isset($_GET['action']) && $_GET['action'] === 'delete_article') | ||
| 77 | { | ||
| 78 | if(in_array($id_article, $id_array)) | ||
| 79 | { | ||
| 80 | unlink(CKEditor::DATA_PATH . '/html/' . $id_article . '.html'); | ||
| 81 | //$ckeditor->deleteSideEffects(); | ||
| 82 | } | ||
| 83 | header('Location: index.php?page=' . $from); | ||
| 84 | die; | ||
| 85 | } | ||
| 86 | |||
| 87 | // affichage | ||
| 88 | foreach($id_array as $id) | ||
| 89 | { | ||
| 90 | $texte = trim(file_get_contents(CKEditor::DATA_PATH . '/html/' . $id . '.html')); | ||
| 91 | //$texte = addslashes($texte); // échappe ', ", \ et NULL, je sais pas si c'est bien | ||
| 92 | |||
| 93 | // vue - afficher des articles et éventuellement l'éditeur dans un des articles | ||
| 94 | if(isset($_GET['action']) && $_GET['action'] === 'open_editor') | ||
| 95 | { | ||
| 96 | if($id === $id_article) | ||
| 97 | { | ||
| 98 | $texte = addcslashes($texte, "'"); // échapper les simples quotes pour javascript | ||
| 99 | $articles_content .= $ckeditor->openEditor($id, $texte) . "\n"; | ||
| 100 | } | ||
| 101 | else | ||
| 102 | { | ||
| 103 | $articles_content .= $ckeditor->displayArticle($id, $texte) . "\n"; | ||
| 104 | } | ||
| 105 | } | ||
| 106 | else | ||
| 107 | { | ||
| 108 | $articles_content .= $ckeditor->displayArticle($id, $texte) . "\n"; | ||
| 109 | } | ||
| 110 | } | ||
| 111 | } | ||
| 112 | // vue | ||
| 113 | ?> | ||
| 114 | <!DOCTYPE html> | ||
| 115 | <html lang="fr"> | ||
| 116 | <head> | ||
| 117 | <meta charset="utf-8"> | ||
| 118 | <title></title> | ||
| 119 | <link rel="icon" type="image/png" href=""> | ||
| 120 | <?= $ckeditor->getCSSOutsideEditorTag() ?> | ||
| 121 | <?= $ckeditor->getCSSEditorTag() ?> | ||
| 122 | </head> | ||
| 123 | <body> | ||
| 124 | <div> | ||
| 125 | <?= $articles_content ?> | ||
| 126 | </div> | ||
| 127 | </body> | ||
| 128 | </html> | ||
