diff options
Diffstat (limited to 'src/controller/ArticleController.php')
-rw-r--r-- | src/controller/ArticleController.php | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index 5cebad6..cb132cf 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php | |||
@@ -15,6 +15,10 @@ class ArticleController | |||
15 | if(json_last_error() === JSON_ERROR_NONE) | 15 | if(json_last_error() === JSON_ERROR_NONE) |
16 | { | 16 | { |
17 | $id = $json['id']; | 17 | $id = $json['id']; |
18 | if(in_array($id[0], ['t', 'p', 'i', 'd'])){ | ||
19 | $id = substr($id, 1); | ||
20 | } | ||
21 | |||
18 | $director = new Director($entityManager); | 22 | $director = new Director($entityManager); |
19 | $content = $json['content']; | 23 | $content = $json['content']; |
20 | 24 | ||
@@ -29,7 +33,7 @@ class ArticleController | |||
29 | } | 33 | } |
30 | 34 | ||
31 | // nouvel article | 35 | // nouvel article |
32 | if($id[0] === 'n') | 36 | if($json['id'][0] === 'n') // ici $id est un bloc |
33 | { | 37 | { |
34 | $section_id = (int)substr($id, 1); // id du bloc <section> | 38 | $section_id = (int)substr($id, 1); // id du bloc <section> |
35 | if(!$director->findNodeById($section_id)){ | 39 | if(!$director->findNodeById($section_id)){ |
@@ -40,9 +44,9 @@ class ArticleController | |||
40 | $node = $director->getNode(); // = <section> | 44 | $node = $director->getNode(); // = <section> |
41 | 45 | ||
42 | if(is_array($content)){ // cas d'une nouvelle "news" | 46 | if(is_array($content)){ // cas d'une nouvelle "news" |
43 | $date = new \DateTime($content['d']); | 47 | $date = new \DateTime($content['d'] . ':' . (new \DateTime)->format('s')); // l'input type="datetime-local" ne donne pas les secondes, on les ajoute: 'hh:mm' . ':ss' |
44 | $article = new Article($content['i'], $date, $content['t'], $content['p']); | 48 | $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); | 49 | $article_node = new Node('new', [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); |
46 | } | 50 | } |
47 | else{ // autres cas | 51 | else{ // autres cas |
48 | $timestamp = time(); | 52 | $timestamp = time(); |
@@ -50,9 +54,8 @@ class ArticleController | |||
50 | $date->setTimestamp($timestamp); | 54 | $date->setTimestamp($timestamp); |
51 | 55 | ||
52 | $article = new Article($content, $date); // le "current" timestamp est obtenu par la BDD | 56 | $article = new Article($content, $date); // le "current" timestamp est obtenu par la BDD |
53 | |||
54 | $placement = $json['placement'] === 'first' ? 0 : count($node->getChildren()) + 1; // | 57 | $placement = $json['placement'] === 'first' ? 0 : count($node->getChildren()) + 1; // |
55 | $article_node = new Node('post', 'i' . (string)$timestamp, [], $placement, $node, $node->getPage(), $article); | 58 | $article_node = new Node('post', [], $placement, $node, $node->getPage(), $article); |
56 | 59 | ||
57 | if($json['placement'] === 'first'){ | 60 | if($json['placement'] === 'first'){ |
58 | $node->addChild($article_node); | 61 | $node->addChild($article_node); |
@@ -63,13 +66,11 @@ class ArticleController | |||
63 | $entityManager->persist($article_node); | 66 | $entityManager->persist($article_node); |
64 | $entityManager->flush(); | 67 | $entityManager->flush(); |
65 | 68 | ||
66 | echo json_encode(['success' => true, 'article_id' => $article_node->getArticleTimestamp()]); | 69 | echo json_encode(['success' => true, 'article_id' => $article_node->getId()]); |
67 | die; | 70 | die; |
68 | } | 71 | } |
69 | // modification article | 72 | // modification article |
70 | else{ | 73 | //else{} |
71 | $id[0] = 'i'; // id de l'article node | ||
72 | } | ||
73 | 74 | ||
74 | if($director->makeArticleNode($id)) // une entrée est trouvée | 75 | if($director->makeArticleNode($id)) // une entrée est trouvée |
75 | { | 76 | { |
@@ -87,9 +88,8 @@ class ArticleController | |||
87 | case 'd': | 88 | case 'd': |
88 | echo json_encode(['success' => false, 'message' => 'l\'action editor_submit ne supporte pas les dates, utiliser date_submit.']); | 89 | echo json_encode(['success' => false, 'message' => 'l\'action editor_submit ne supporte pas les dates, utiliser date_submit.']); |
89 | die; | 90 | die; |
90 | default: | 91 | default: // modif article simple (id sans lettre devant) |
91 | echo json_encode(['success' => false, 'message' => 'identifiant non utilisable']); | 92 | $node->getArticle()->setContent($content); |
92 | die; | ||
93 | } | 93 | } |
94 | $entityManager->flush(); | 94 | $entityManager->flush(); |
95 | echo json_encode(['success' => true]); | 95 | echo json_encode(['success' => true]); |
@@ -141,10 +141,9 @@ class ArticleController | |||
141 | $section = $director->getNode(); | 141 | $section = $director->getNode(); |
142 | 142 | ||
143 | $section->sortChildren(true); // régénère les positions avant inversion | 143 | $section->sortChildren(true); // régénère les positions avant inversion |
144 | |||
145 | $article2 = null; | 144 | $article2 = null; |
146 | foreach($section->getChildren() as $child){ | 145 | foreach($section->getChildren() as $child){ |
147 | if($child->getArticleTimestamp() === $json['id2']) // type string | 146 | if((string)$child->getId() === $json['id2']) // type string |
148 | { | 147 | { |
149 | $article2 = $child; | 148 | $article2 = $child; |
150 | break; | 149 | break; |
@@ -163,8 +162,7 @@ class ArticleController | |||
163 | 162 | ||
164 | static public function dateSubmit(EntityManager $entityManager, array $json): void | 163 | static public function dateSubmit(EntityManager $entityManager, array $json): void |
165 | { | 164 | { |
166 | $id = $json['id']; | 165 | $id = substr($json['id'], 1); |
167 | $id[0] = 'i'; | ||
168 | $date = new DateTime($json['date']); | 166 | $date = new DateTime($json['date']); |
169 | 167 | ||
170 | $director = new Director($entityManager); | 168 | $director = new Director($entityManager); |