diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/controller/ArticleController.php | 26 | ||||
| -rw-r--r-- | src/controller/PageManagementController.php | 7 | ||||
| -rw-r--r-- | src/view/MainBuilder.php | 6 | ||||
| -rw-r--r-- | src/view/NewBuilder.php | 20 | ||||
| -rw-r--r-- | src/view/NewsBlockBuilder.php | 2 | ||||
| -rw-r--r-- | src/view/PostBlockBuilder.php | 13 | ||||
| -rw-r--r-- | src/view/PostBuilder.php | 1 | ||||
| -rw-r--r-- | src/view/templates/head.php | 1 |
8 files changed, 48 insertions, 28 deletions
diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index b8af290..5cebad6 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php | |||
| @@ -16,15 +16,15 @@ class ArticleController | |||
| 16 | { | 16 | { |
| 17 | $id = $json['id']; | 17 | $id = $json['id']; |
| 18 | $director = new Director($entityManager); | 18 | $director = new Director($entityManager); |
| 19 | $content = $json['content']; | ||
| 19 | 20 | ||
| 20 | // cas d'une nouvelle "news" | 21 | // nettoyage |
| 21 | if(is_array($json['content'])){ | 22 | if(is_array($content)){ // cas d'une nouvelle "news" |
| 22 | foreach($json['content'] as $one_input){ | 23 | foreach($content as $one_input){ |
| 23 | $one_input = Security::secureHTML($one_input); | 24 | $one_input = Security::secureHTML($one_input); |
| 24 | } | 25 | } |
| 25 | $content = $json['content']; | ||
| 26 | } | 26 | } |
| 27 | else{ | 27 | else{ // autres cas |
| 28 | $content = Security::secureHTML($json['content']); | 28 | $content = Security::secureHTML($json['content']); |
| 29 | } | 29 | } |
| 30 | 30 | ||
| @@ -39,21 +39,25 @@ class ArticleController | |||
| 39 | $director->makeSectionNode(); | 39 | $director->makeSectionNode(); |
| 40 | $node = $director->getNode(); // = <section> | 40 | $node = $director->getNode(); // = <section> |
| 41 | 41 | ||
| 42 | if(is_array($content)){ | 42 | if(is_array($content)){ // cas d'une nouvelle "news" |
| 43 | $date = new \DateTime($content['d']); | 43 | $date = new \DateTime($content['d']); |
| 44 | $article = new Article($content['i'], $date, $content['t'], $content['p']); | 44 | $article = new Article($content['i'], $date, $content['t'], $content['p']); |
| 45 | $article_node = new Node('new', 'i' . (string)$date->getTimestamp(), [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); | 45 | $article_node = new Node('new', 'i' . (string)$date->getTimestamp(), [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); |
| 46 | |||
| 47 | // id_node tout juste généré | ||
| 48 | //$article_node->getId(); | ||
| 49 | } | 46 | } |
| 50 | else{ | 47 | else{ // autres cas |
| 51 | $timestamp = time(); | 48 | $timestamp = time(); |
| 52 | $date = new \DateTime; | 49 | $date = new \DateTime; |
| 53 | $date->setTimestamp($timestamp); | 50 | $date->setTimestamp($timestamp); |
| 54 | 51 | ||
| 55 | $article = new Article($content, $date); // le "current" timestamp est obtenu par la BDD | 52 | $article = new Article($content, $date); // le "current" timestamp est obtenu par la BDD |
| 56 | $article_node = new Node('post', 'i' . (string)$timestamp, [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); | 53 | |
| 54 | $placement = $json['placement'] === 'first' ? 0 : count($node->getChildren()) + 1; // | ||
| 55 | $article_node = new Node('post', 'i' . (string)$timestamp, [], $placement, $node, $node->getPage(), $article); | ||
| 56 | |||
| 57 | if($json['placement'] === 'first'){ | ||
| 58 | $node->addChild($article_node); | ||
| 59 | $node->reindexPositions(); // régénère les positions (0 devient 1, 1 devient 2...) | ||
| 60 | } | ||
| 57 | } | 61 | } |
| 58 | 62 | ||
| 59 | $entityManager->persist($article_node); | 63 | $entityManager->persist($article_node); |
diff --git a/src/controller/PageManagementController.php b/src/controller/PageManagementController.php index 4528810..75967eb 100644 --- a/src/controller/PageManagementController.php +++ b/src/controller/PageManagementController.php | |||
| @@ -286,7 +286,12 @@ class PageManagementController | |||
| 286 | $director->getNode()->getNodeData()->setPresentation($presentation); | 286 | $director->getNode()->getNodeData()->setPresentation($presentation); |
| 287 | 287 | ||
| 288 | $entityManager->flush(); | 288 | $entityManager->flush(); |
| 289 | echo json_encode(['success' => true, 'presentation' => $json['presentation'], 'cols_min_width' => $director->getNode()->getNodeData()->getColsMinWidth()]); | 289 | |
| 290 | $response_data = ['success' => true, 'presentation' => $json['presentation']]; | ||
| 291 | if($json['presentation'] === 'grid'){ | ||
| 292 | $response_data['cols_min_width'] = $director->getNode()->getNodeData()->getColsMinWidth(); | ||
| 293 | } | ||
| 294 | echo json_encode($response_data); | ||
| 290 | } | 295 | } |
| 291 | else{ | 296 | else{ |
| 292 | echo json_encode(['success' => false]); | 297 | echo json_encode(['success' => false]); |
diff --git a/src/view/MainBuilder.php b/src/view/MainBuilder.php index fc80cd1..b07fa81 100644 --- a/src/view/MainBuilder.php +++ b/src/view/MainBuilder.php | |||
| @@ -85,10 +85,10 @@ class MainBuilder extends AbstractBuilder | |||
| 85 | <button onclick="renamePageBloc(' . $child_node->getId() . ')">Renommer</button> | 85 | <button onclick="renamePageBloc(' . $child_node->getId() . ')">Renommer</button> |
| 86 | </p>'. "\n"; | 86 | </p>'. "\n"; |
| 87 | // déplacement d'un bloc | 87 | // déplacement d'un bloc |
| 88 | $bloc_edit .= '<div style="display: flex; flex-wrap: wrap;"> | 88 | $bloc_edit .= '<div> |
| 89 | <p> | 89 | <p> |
| 90 | <img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'up\', \'' . CURRENT_PAGE . '\')" src="assets/arrow-up.svg"> | 90 | <img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'up\')" src="assets/arrow-up.svg"> |
| 91 | <img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'down\', \'' . CURRENT_PAGE . '\')" src="assets/arrow-down.svg"> | 91 | <img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'down\')" src="assets/arrow-down.svg"> |
| 92 | </p>' . "\n"; | 92 | </p>' . "\n"; |
| 93 | // suppression d'un bloc | 93 | // suppression d'un bloc |
| 94 | $bloc_edit .= '<form method="post" action="' . new URL(['page' => CURRENT_PAGE]) . '"> | 94 | $bloc_edit .= '<form method="post" action="' . new URL(['page' => CURRENT_PAGE]) . '"> |
diff --git a/src/view/NewBuilder.php b/src/view/NewBuilder.php index 2d66238..332d92b 100644 --- a/src/view/NewBuilder.php +++ b/src/view/NewBuilder.php | |||
| @@ -69,27 +69,27 @@ class NewBuilder extends AbstractBuilder | |||
| 69 | if($_SESSION['admin']) | 69 | if($_SESSION['admin']) |
| 70 | { | 70 | { |
| 71 | if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ | 71 | if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ |
| 72 | $title_js = 'onclick="openEditor(\'' . $id_title . '\', \'article\')"'; | 72 | $title_js = 'onclick="openEditor(\'' . $id_title . '\')"'; |
| 73 | $modify_title = '<p id="edit-' . $id_title . '"><button ' . $title_js . '><img class="action_icon" src="assets/edit.svg">Titre</button></p>' . "\n"; | 73 | $modify_title = '<p id="edit-' . $id_title . '"><button ' . $title_js . '><img class="action_icon" src="assets/edit.svg">Titre</button></p>' . "\n"; |
| 74 | $close_js_title = 'onclick="closeEditor(\'' . $id_title . '\', \'article\', \'preview\')"'; | 74 | $close_js_title = 'onclick="closeEditor(\'' . $id_title . '\')"'; |
| 75 | $close_editor_title = '<p id="cancel-' . $id_title . '" class="hidden"><button ' . $close_js_title . '>Annuler</button></p>'; | 75 | $close_editor_title = '<p id="cancel-' . $id_title . '" class="hidden"><button ' . $close_js_title . '>Annuler</button></p>'; |
| 76 | $submit_js_title = 'onclick="submitArticle(\'' . $id_title . '\', \'article\')"'; | 76 | $submit_js_title = 'onclick="submitArticle(\'' . $id_title . '\')"'; |
| 77 | $submit_title = '<p id="submit-' . $id_title . '" class="hidden"><button ' . $submit_js_title . '>Valider</button></p>'; | 77 | $submit_title = '<p id="submit-' . $id_title . '" class="hidden"><button ' . $submit_js_title . '>Valider</button></p>'; |
| 78 | $title_buttons = '<div class="button_zone">' . $modify_title . $close_editor_title . $submit_title . '</div>'; | 78 | $title_buttons = '<div class="button_zone">' . $modify_title . $close_editor_title . $submit_title . '</div>'; |
| 79 | 79 | ||
| 80 | $preview_js = 'onclick="openEditor(\'' . $id_preview . '\', \'article\')"'; | 80 | $preview_js = 'onclick="openEditor(\'' . $id_preview . '\')"'; |
| 81 | $modify_preview = '<p id="edit-' . $id_preview . '"><button ' . $preview_js . '><img class="action_icon" src="assets/edit.svg">Aperçu</button></a></p>' . "\n"; | 81 | $modify_preview = '<p id="edit-' . $id_preview . '"><button ' . $preview_js . '><img class="action_icon" src="assets/edit.svg">Aperçu</button></a></p>' . "\n"; |
| 82 | $close_js_preview = 'onclick="closeEditor(\'' . $id_preview . '\', \'article\', \'preview\')"'; | 82 | $close_js_preview = 'onclick="closeEditor(\'' . $id_preview . '\')"'; |
| 83 | $close_editor_preview = '<p id="cancel-' . $id_preview . '" class="hidden"><button ' . $close_js_preview . '>Annuler</button></p>'; | 83 | $close_editor_preview = '<p id="cancel-' . $id_preview . '" class="hidden"><button ' . $close_js_preview . '>Annuler</button></p>'; |
| 84 | $submit_js_preview = 'onclick="submitArticle(\'' . $id_preview . '\', \'article\')"'; | 84 | $submit_js_preview = 'onclick="submitArticle(\'' . $id_preview . '\')"'; |
| 85 | $submit_preview = '<p id="submit-' . $id_preview . '" class="hidden"><button ' . $submit_js_preview . '>Valider</button></p>'; | 85 | $submit_preview = '<p id="submit-' . $id_preview . '" class="hidden"><button ' . $submit_js_preview . '>Valider</button></p>'; |
| 86 | $preview_buttons = '<div class="button_zone">' . $modify_preview . $close_editor_preview . $submit_preview . '</div>'; | 86 | $preview_buttons = '<div class="button_zone">' . $modify_preview . $close_editor_preview . $submit_preview . '</div>'; |
| 87 | 87 | ||
| 88 | $article_js = 'onclick="openEditor(\'' . $id . '\', \'article\')"'; | 88 | $article_js = 'onclick="openEditor(\'' . $id . '\')"'; |
| 89 | $modify_article = '<p id="edit-' . $id . '"><button ' . $article_js . '><img class="action_icon" src="assets/edit.svg">Article</button></p>' . "\n"; | 89 | $modify_article = '<p id="edit-' . $id . '"><button ' . $article_js . '><img class="action_icon" src="assets/edit.svg">Article</button></p>' . "\n"; |
| 90 | $close_js_article = 'onclick="closeEditor(\'' . $id . '\', \'article\')"'; | 90 | $close_js_article = 'onclick="closeEditor(\'' . $id . '\')"'; |
| 91 | $close_editor_article = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js_article . '>Annuler</button></p>'; | 91 | $close_editor_article = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js_article . '>Annuler</button></p>'; |
| 92 | $submit_js_article = 'onclick="submitArticle(\'' . $id . '\', \'article\')"'; | 92 | $submit_js_article = 'onclick="submitArticle(\'' . $id . '\')"'; |
| 93 | $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js_article . '>Valider</button></p>'; | 93 | $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js_article . '>Valider</button></p>'; |
| 94 | $article_buttons = '<div class="button_zone">' . $modify_article . $close_editor_article . $submit_article . '</div>'; | 94 | $article_buttons = '<div class="button_zone">' . $modify_article . $close_editor_article . $submit_article . '</div>'; |
| 95 | 95 | ||
| @@ -105,7 +105,7 @@ class NewBuilder extends AbstractBuilder | |||
| 105 | if(self::$new_article_mode){ | 105 | if(self::$new_article_mode){ |
| 106 | $delete_article = ''; | 106 | $delete_article = ''; |
| 107 | // valider la création d'un nouvel article | 107 | // valider la création d'un nouvel article |
| 108 | $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\', \'' . Director::$page_path->getLast()->getEndOfPath() . '\')"'; | 108 | $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\')"'; |
| 109 | $submit_article = '<p id="save-' . $id . '"><button ' . $submit_js . '><img class="action_icon" src="assets/edit.svg"><span class="delete_button">Tout<br>enregistrer</span></button></p>' . "\n"; | 109 | $submit_article = '<p id="save-' . $id . '"><button ' . $submit_js . '><img class="action_icon" src="assets/edit.svg"><span class="delete_button">Tout<br>enregistrer</span></button></p>' . "\n"; |
| 110 | } | 110 | } |
| 111 | // mode article existant | 111 | // mode article existant |
diff --git a/src/view/NewsBlockBuilder.php b/src/view/NewsBlockBuilder.php index 861949a..4716c63 100644 --- a/src/view/NewsBlockBuilder.php +++ b/src/view/NewsBlockBuilder.php | |||
| @@ -53,7 +53,7 @@ class NewsBlockBuilder extends AbstractBuilder | |||
| 53 | $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; | 53 | $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; |
| 54 | $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>'; | 54 | $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>'; |
| 55 | 55 | ||
| 56 | $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; | 56 | $submit_js = 'onclick="submitArticle(\'' . $id . '\', clone' . $this->id_node . ')"'; |
| 57 | $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>'; | 57 | $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>'; |
| 58 | 58 | ||
| 59 | $html = ''; | 59 | $html = ''; |
diff --git a/src/view/PostBlockBuilder.php b/src/view/PostBlockBuilder.php index 8ad0498..017e78e 100644 --- a/src/view/PostBlockBuilder.php +++ b/src/view/PostBlockBuilder.php | |||
| @@ -29,6 +29,7 @@ class PostBlockBuilder extends AbstractBuilder | |||
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | // ajouter un article | 31 | // ajouter un article |
| 32 | // => fait un peu double emploi avec PostBuilder | ||
| 32 | $new_article = ''; | 33 | $new_article = ''; |
| 33 | if($_SESSION['admin']) | 34 | if($_SESSION['admin']) |
| 34 | { | 35 | { |
| @@ -52,12 +53,20 @@ class PostBlockBuilder extends AbstractBuilder | |||
| 52 | 53 | ||
| 53 | $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; | 54 | $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; |
| 54 | $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>'; | 55 | $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>'; |
| 56 | |||
| 57 | $position = '<div id="radio-' . $id . '" class="hidden" style="margin: 5px; font-size: 90%;"> | ||
| 58 | Placement:<br> | ||
| 59 | <input type="radio" id="radio_first-' . $id . '" name="article_placement-' . $id . '" value="first" onchange="setArticlePlacement(\'' . $id . '\')"> | ||
| 60 | <label for="radio_start">en premier</label><br> | ||
| 61 | <input type="radio" id="radio_last-' . $id . '" name="article_placement-' . $id . '" value="last" onchange="setArticlePlacement(\'' . $id . '\')"> | ||
| 62 | <label for="radio_end">en dernier</label> | ||
| 63 | </div>'; | ||
| 55 | 64 | ||
| 56 | $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; | 65 | $submit_js = 'onclick="submitArticle(\'' . $id . '\', clone' . $this->id_node . ')"'; |
| 57 | $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>'; | 66 | $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>'; |
| 58 | 67 | ||
| 59 | $html = ''; | 68 | $html = ''; |
| 60 | $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; | 69 | $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article . $position; |
| 61 | 70 | ||
| 62 | // squelette d'un nouvel article | 71 | // squelette d'un nouvel article |
| 63 | ob_start(); | 72 | ob_start(); |
diff --git a/src/view/PostBuilder.php b/src/view/PostBuilder.php index 03a6990..ae5cc9b 100644 --- a/src/view/PostBuilder.php +++ b/src/view/PostBuilder.php | |||
| @@ -30,6 +30,7 @@ class PostBuilder extends AbstractBuilder | |||
| 30 | $share_button = '<p class="share" ' . $share_js . '><img class="action_icon" src="assets/share.svg"></p>' . "\n"; | 30 | $share_button = '<p class="share" ' . $share_js . '><img class="action_icon" src="assets/share.svg"></p>' . "\n"; |
| 31 | 31 | ||
| 32 | // modifier un article | 32 | // modifier un article |
| 33 | // => fait un peu double emploi avec PostBlockBuilder | ||
| 33 | $admin_buttons = ''; | 34 | $admin_buttons = ''; |
| 34 | if($_SESSION['admin']) | 35 | if($_SESSION['admin']) |
| 35 | { | 36 | { |
diff --git a/src/view/templates/head.php b/src/view/templates/head.php index b74335e..83a0e7c 100644 --- a/src/view/templates/head.php +++ b/src/view/templates/head.php | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | <link rel="icon" type="image/png" href="<?= $favicon ?>" alt="<?= $alt ?>"> | 7 | <link rel="icon" type="image/png" href="<?= $favicon ?>" alt="<?= $alt ?>"> |
| 8 | <meta name="description" content="<?= $description ?>"> | 8 | <meta name="description" content="<?= $description ?>"> |
| 9 | <meta name="viewport" content="width=device-width"> | 9 | <meta name="viewport" content="width=device-width"> |
| 10 | <script>window.Config = {page: "<?= CURRENT_PAGE ?>"};</script> | ||
| 10 | <?= $css ?> | 11 | <?= $css ?> |
| 11 | <?= $js ?> | 12 | <?= $js ?> |
| 12 | </head> \ No newline at end of file | 13 | </head> \ No newline at end of file |
