diff options
| author | polo <ordipolo@gmx.fr> | 2025-09-18 00:27:20 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-09-18 00:27:20 +0200 |
| commit | fa3c582a2bd91433399a5b275616052028a5a011 (patch) | |
| tree | 64a5c2c0eb54dc033fb5ed78ed69745bd492aa05 /src/controller | |
| parent | 027af942de75f7c5bc519fabfa5fa11de9bc89ea (diff) | |
| download | cms-fa3c582a2bd91433399a5b275616052028a5a011.tar.gz cms-fa3c582a2bd91433399a5b275616052028a5a011.tar.bz2 cms-fa3c582a2bd91433399a5b275616052028a5a011.zip | |
news positionnées en fonction de leur date, suppression de leurs boutons position, améliorations routage page article, bouton share en bas pour les news
Diffstat (limited to 'src/controller')
| -rw-r--r-- | src/controller/ArticleController.php | 11 | ||||
| -rw-r--r-- | src/controller/ViewController.php | 25 |
2 files changed, 24 insertions, 12 deletions
diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index cb132cf..411c1dc 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php | |||
| @@ -36,14 +36,19 @@ class ArticleController | |||
| 36 | if($json['id'][0] === 'n') // ici $id est un bloc | 36 | if($json['id'][0] === 'n') // ici $id est un bloc |
| 37 | { | 37 | { |
| 38 | $section_id = (int)substr($id, 1); // id du bloc <section> | 38 | $section_id = (int)substr($id, 1); // id du bloc <section> |
| 39 | if(!$director->findNodeById($section_id)){ | 39 | if(!$director->findNodeById($section_id)){ // erreur mauvais id |
| 40 | echo json_encode(['success' => false, 'error' => 'article_not_saved']); | 40 | echo json_encode(['success' => false, 'error' => 'article_not_saved, bad id']); |
| 41 | die; | 41 | die; |
| 42 | } | 42 | } |
| 43 | $director->makeSectionNode(); | 43 | $director->makeSectionNode(); |
| 44 | $node = $director->getNode(); // = <section> | 44 | $node = $director->getNode(); // = <section> |
| 45 | 45 | ||
| 46 | if(is_array($content)){ // cas d'une nouvelle "news" | 46 | if(is_array($content)){ // cas d'une nouvelle "news" |
| 47 | if($node->getPage()->getEndOfPath() !== $json['from']){ // erreur mauvais from | ||
| 48 | echo json_encode(['success' => false, 'error' => 'article_not_saved, bad from']); | ||
| 49 | die; | ||
| 50 | } | ||
| 51 | |||
| 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' | 52 | $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' |
| 48 | $article = new Article($content['i'], $date, $content['t'], $content['p']); | 53 | $article = new Article($content['i'], $date, $content['t'], $content['p']); |
| 49 | $article_node = new Node('new', [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); | 54 | $article_node = new Node('new', [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); |
diff --git a/src/controller/ViewController.php b/src/controller/ViewController.php index 668fa25..f66baff 100644 --- a/src/controller/ViewController.php +++ b/src/controller/ViewController.php | |||
| @@ -33,17 +33,24 @@ class ViewController extends AbstractBuilder // ViewController est aussi le prem | |||
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | // page article: mode création et erreurs d'id | 35 | // page article: mode création et erreurs d'id |
| 36 | if($_SESSION['admin'] && $request->query->has('page') && $request->query->get('page') === 'article'){ | 36 | if($request->query->has('page') && $request->query->get('page') === 'article'){ |
| 37 | if(!$request->query->has('id')){ | 37 | if($_SESSION['admin']){ |
| 38 | return new Response($this->html, 302); | 38 | if(!$request->query->has('id')){ |
| 39 | } | ||
| 40 | else{ | ||
| 41 | if($request->query->get('id')[0] === 'n'){ // mode création d'article (vérification de l'id du bloc dans ArticleController) | ||
| 42 | NewBuilder::$new_article_mode = true; | ||
| 43 | } | ||
| 44 | elseif(self::$root_node->getNodeByName('main')->getAdoptedChild() === null){ // id inconnu | ||
| 45 | return new Response($this->html, 302); | 39 | return new Response($this->html, 302); |
| 46 | } | 40 | } |
| 41 | else{ | ||
| 42 | // mode création d'article | ||
| 43 | // l'id du bloc et 'from=' sont vérifiés dans ArticleController::editorSubmit | ||
| 44 | if($request->query->get('id')[0] === 'n' && $request->query->has('from') && !empty($request->query->get('from'))){ | ||
| 45 | NewBuilder::$new_article_mode = true; | ||
| 46 | } | ||
| 47 | elseif(self::$root_node->getNodeByName('main')->getAdoptedChild() === null){ // id inconnu | ||
| 48 | return new Response($this->html, 302); | ||
| 49 | } | ||
| 50 | } | ||
| 51 | } | ||
| 52 | elseif($request->query->get('id')[0] === 'n'){ // accès page nouvelle article interdit sans être admin | ||
| 53 | return new Response($this->html, 302); | ||
| 47 | } | 54 | } |
| 48 | } | 55 | } |
| 49 | 56 | ||
