aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/controller/ArticleController.php26
-rw-r--r--src/controller/PageManagementController.php7
-rw-r--r--src/view/MainBuilder.php6
-rw-r--r--src/view/NewBuilder.php20
-rw-r--r--src/view/NewsBlockBuilder.php2
-rw-r--r--src/view/PostBlockBuilder.php13
-rw-r--r--src/view/PostBuilder.php1
-rw-r--r--src/view/templates/head.php1
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