diff options
Diffstat (limited to 'src/controller/ArticleController.php')
| -rw-r--r-- | src/controller/ArticleController.php | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index 7dc7f49..2364c50 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php | |||
| @@ -73,38 +73,39 @@ class ArticleController | |||
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | // nouvel article | 75 | // nouvel article |
| 76 | if($json['id'][0] === 'n') // ici $id est un bloc | 76 | if($json['id'][0] === 'n'){ // ici $id est un bloc |
| 77 | { | ||
| 78 | $section_id = (int)substr($id, 1); // id du bloc <section> | 77 | $section_id = (int)substr($id, 1); // id du bloc <section> |
| 79 | if(!$model->findNodeById($section_id)){ // erreur mauvais id | 78 | if(!$model->findNodeById($section_id)){ // erreur mauvais id |
| 80 | echo json_encode(['success' => false, 'error' => 'article_not_saved, bad id']); | 79 | echo json_encode(['success' => false, 'error' => 'article_not_saved, bad id']); |
| 81 | die; | 80 | die; |
| 82 | } | 81 | } |
| 83 | $model->makeSectionNode(); | 82 | $model->makeSectionNode(); |
| 84 | $node = $model->getNode(); // = <section> | 83 | $section = $model->getNode(); |
| 85 | 84 | ||
| 86 | if(is_array($content)){ // cas d'une nouvelle "news" | 85 | // ajout d'une news |
| 87 | if($node->getPage()->getEndOfPath() !== $json['from']){ // erreur mauvais from | 86 | if(is_array($content)){ |
| 87 | if($section->getPage()->getEndOfPath() !== $json['from']){ // erreur mauvais from | ||
| 88 | echo json_encode(['success' => false, 'error' => 'article_not_saved, bad from']); | 88 | echo json_encode(['success' => false, 'error' => 'article_not_saved, bad from']); |
| 89 | die; | 89 | die; |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | $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' | 92 | $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' |
| 93 | $article = new Article($content['i'], $date, $content['t'], $content['p']); | 93 | $article = new Article($content['i'], $date, $content['t'], $content['p']); |
| 94 | $article_node = new Node('new', count($node->getChildren()) + 1, $node, $node->getPage(), $article); | 94 | $article_node = new Node('new', count($section->getChildren()) + 1, $section, $section->getPage(), $article); |
| 95 | } | 95 | } |
| 96 | else{ // autres cas | 96 | // ajout d'un post |
| 97 | else{ | ||
| 97 | $timestamp = time(); | 98 | $timestamp = time(); |
| 98 | $date = new \DateTime; | 99 | $date = new \DateTime; |
| 99 | $date->setTimestamp($timestamp); | 100 | $date->setTimestamp($timestamp); |
| 100 | 101 | ||
| 101 | $article = new Article($content, $date); // le "current" timestamp est obtenu par la BDD | 102 | $article = new Article($content, $date); |
| 102 | $placement = $json['placement'] === 'first' ? 0 : count($node->getChildren()) + 1; // | 103 | $placement = $json['placement'] === 'first' ? 0 : count($section->getChildren()) + 1; // |
| 103 | $article_node = new Node('post', $placement, $node, $node->getPage(), $article); | 104 | $article_node = new Node('post', $placement, $section, $section->getPage(), $article); |
| 104 | 105 | ||
| 105 | if($json['placement'] === 'first'){ | 106 | if($json['placement'] === 'first'){ |
| 106 | $node->addChild($article_node); | 107 | $section->addChild($article_node); |
| 107 | $node->reindexPositions(); // régénère les positions (0 devient 1, 1 devient 2...) | 108 | $section->sortChildren(true); // mettre $article_node au début du tableau puis régénérer les positions (0 devient 1, 1 devient 2...) |
| 108 | } | 109 | } |
| 109 | } | 110 | } |
| 110 | 111 | ||
| @@ -119,7 +120,7 @@ class ArticleController | |||
| 119 | 120 | ||
| 120 | if($model->makeArticleNode($id)) // une entrée est trouvée | 121 | if($model->makeArticleNode($id)) // une entrée est trouvée |
| 121 | { | 122 | { |
| 122 | $node = $model->getArticleNode(); // article | 123 | $node = $model->getArticleNode(); |
| 123 | switch($json['id'][0]){ | 124 | switch($json['id'][0]){ |
| 124 | case 'i': | 125 | case 'i': |
| 125 | $node->getArticle()->setContent($content); | 126 | $node->getArticle()->setContent($content); |
