summaryrefslogtreecommitdiff
path: root/src/view
diff options
context:
space:
mode:
Diffstat (limited to 'src/view')
-rw-r--r--src/view/AbstractBuilder.php6
-rw-r--r--src/view/ArticleBuilder.php14
-rw-r--r--src/view/BlogBuilder.php41
-rw-r--r--src/view/GaleryBuilder.php41
-rw-r--r--src/view/GridBuilder.php47
-rw-r--r--src/view/templates/article.php1
-rw-r--r--src/view/templates/blog.php8
-rw-r--r--src/view/templates/galery.php7
-rw-r--r--src/view/templates/grid.php6
9 files changed, 120 insertions, 51 deletions
diff --git a/src/view/AbstractBuilder.php b/src/view/AbstractBuilder.php
index cd2b361..285ebc3 100644
--- a/src/view/AbstractBuilder.php
+++ b/src/view/AbstractBuilder.php
@@ -7,6 +7,12 @@ abstract class AbstractBuilder
7{ 7{
8 protected const VIEWS_PATH = '../src/view/templates/'; 8 protected const VIEWS_PATH = '../src/view/templates/';
9 protected string $html = ''; 9 protected string $html = '';
10 protected int $id_node;
11
12 protected function __construct(Node $node)
13 {
14 $this->id_node = $node->getId();
15 }
10 16
11 protected function useChildrenBuilder(Node $node): void 17 protected function useChildrenBuilder(Node $node): void
12 { 18 {
diff --git a/src/view/ArticleBuilder.php b/src/view/ArticleBuilder.php
index f86f9bd..1f5dbb8 100644
--- a/src/view/ArticleBuilder.php
+++ b/src/view/ArticleBuilder.php
@@ -25,29 +25,29 @@ class ArticleBuilder extends AbstractBuilder
25 // partage 25 // partage
26 $share_link = new URL(['page' => CURRENT_PAGE], $id); 26 $share_link = new URL(['page' => CURRENT_PAGE], $id);
27 $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"'; 27 $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"';
28 $share_button = '<a class="share" href="' . $share_link . '" ' . $share_js . '><img class="action_icon" src="assets/share.svg"></a>' . "\n"; 28 $share_button = '<p class="share" ' . $share_js . '><img class="action_icon" src="assets/share.svg"></p>' . "\n";
29 29
30 // modifier un article 30 // modifier un article
31 $admin_buttons = ''; 31 $admin_buttons = '';
32 if($_SESSION['admin']) 32 if($_SESSION['admin'])
33 { 33 {
34 $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; 34 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
35 $modify_article = '<p id="edit-' . $id . '"><a href="#"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></a></p>' . "\n"; 35 $modify_article = '<p id="edit-' . $id . '"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n";
36 36
37 $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"'; 37 $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"';
38 $up_button = '<p id="position_up-' . $id . '"><a href="#"><img class="action_icon" src="assets/arrow-up.svg" ' . $up_js . '></a></p>' . "\n"; 38 $up_button = '<p id="position_up-' . $id . '"><img class="action_icon" src="assets/arrow-up.svg" ' . $up_js . '></p>' . "\n";
39 39
40 $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"'; 40 $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"';
41 $down_button = '<p id="position_down-' . $id . '"><a href="#"><img class="action_icon" src="assets/arrow-down.svg" ' . $down_js . '></a></p>' . "\n"; 41 $down_button = '<p id="position_down-' . $id . '"><img class="action_icon" src="assets/arrow-down.svg" ' . $down_js . '></p>' . "\n";
42 42
43 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; 43 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"';
44 $delete_article = '<p id="delete-' . $id . '"><a href="#"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></a></p>' . "\n"; 44 $delete_article = '<p id="delete-' . $id . '"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></p>' . "\n";
45 45
46 $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; 46 $close_js = 'onclick="closeEditor(\'' . $id . '\')"';
47 $close_editor = '<p id="cancel-' . $id . '" class="hidden"><a href="#"><button ' . $close_js . '>Annuler</button></a></p>'; 47 $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>';
48 48
49 $submit_js = 'onclick="submitArticle(\'' . $id . '\')"'; 49 $submit_js = 'onclick="submitArticle(\'' . $id . '\')"';
50 $submit_article = '<p id="submit-' . $id . '" class="hidden"><a href="#"><button ' . $submit_js . '>Valider</button></a></p>'; 50 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>';
51 51
52 $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; 52 $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
53 } 53 }
diff --git a/src/view/BlogBuilder.php b/src/view/BlogBuilder.php
index 8c2125f..ca020b2 100644
--- a/src/view/BlogBuilder.php
+++ b/src/view/BlogBuilder.php
@@ -7,6 +7,7 @@ class BlogBuilder extends AbstractBuilder
7{ 7{
8 public function __construct(Node $node) 8 public function __construct(Node $node)
9 { 9 {
10 parent::__construct($node);
10 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; 11 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
11 12
12 if(file_exists($viewFile)) 13 if(file_exists($viewFile))
@@ -18,26 +19,44 @@ class BlogBuilder extends AbstractBuilder
18 19
19 // ajouter un article 20 // ajouter un article
20 $new_article = ''; 21 $new_article = '';
21 $new_article_admin_buttons = '';
22 if($_SESSION['admin']) 22 if($_SESSION['admin'])
23 { 23 {
24 $id = 'new'; 24 $id = 'n' . $this->id_node;
25
26 //$link = new URL(['page' => CURRENT_PAGE, 'action' => 'open_editor']);
27 $js = 'onclick="openEditor(\'' . $id . '\')"'; 25 $js = 'onclick="openEditor(\'' . $id . '\')"';
28 //$new_article = '<article><a href="' . $link . '"><button>Nouvel article</button></a></article>'; 26
29 $new_article = '<article><p id="new"></p>' . "\n" . 27 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>';
30 '<p id="new-' . $id . '"><a href="#"><button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>'; 28 $html = '';
29
30 $new_button = '<p id="new-' . $id . '">' . "\n" .
31 '<button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></p>';
32
33 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
34 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n";
35
36 $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"';
37 $up_button = '<p id="position_up-' . $id . '" class="hidden"><img class="action_icon" src="assets/arrow-up.svg" ' . $up_js . '></p>' . "\n";
38
39 $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"';
40 $down_button = '<p id="position_down-' . $id . '" class="hidden"><img class="action_icon" src="assets/arrow-down.svg" ' . $down_js . '></p>' . "\n";
41
42 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"';
43 $delete_article = '<p id="delete-' . $id . '" class="hidden"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></p>' . "\n";
31 44
32 $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; 45 $close_js = 'onclick="closeEditor(\'' . $id . '\')"';
33 $close_editor = '<div class="article_admin_zone"><p id="cancel-' . $id . '" class="hidden"><a href="#"><button ' . $close_js . '>Annuler</button></a></p>'; 46 $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>';
34 47
35 $submit_js = 'onclick="submitArticle(\'' . $id . '\')"'; 48 $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"';
36 $submit_article = '<p id="submit-' . $id . '" class="hidden"><a href="#"><button ' . $submit_js . '>Valider</button></a></p></div></article>'; 49 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>';
37 50
38 $new_article_admin_buttons = $close_editor . $submit_article; 51 $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
52
53 // squelette d'un nouvel article
54 ob_start();
55 require self::VIEWS_PATH . 'article.php';
56 $new_article = ob_get_clean();
39 } 57 }
40 58
59 // articles existants
41 $this->useChildrenBuilder($node); 60 $this->useChildrenBuilder($node);
42 $content = $this->html; 61 $content = $this->html;
43 62
diff --git a/src/view/GaleryBuilder.php b/src/view/GaleryBuilder.php
index 89be2b1..a895d70 100644
--- a/src/view/GaleryBuilder.php
+++ b/src/view/GaleryBuilder.php
@@ -7,6 +7,7 @@ class GaleryBuilder extends AbstractBuilder
7{ 7{
8 public function __construct(Node $node) 8 public function __construct(Node $node)
9 { 9 {
10 parent::__construct($node);
10 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; 11 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
11 12
12 if(file_exists($viewFile)) 13 if(file_exists($viewFile))
@@ -18,26 +19,44 @@ class GaleryBuilder extends AbstractBuilder
18 19
19 // ajouter un article 20 // ajouter un article
20 $new_article = ''; 21 $new_article = '';
21 $new_article_admin_buttons = '';
22 if($_SESSION['admin']) 22 if($_SESSION['admin'])
23 { 23 {
24 $id = 'new'; 24 $id = 'n' . $this->id_node;
25
26 //$link = new URL(['page' => CURRENT_PAGE, 'action' => 'open_editor']);
27 $js = 'onclick="openEditor(\'' . $id . '\')"'; 25 $js = 'onclick="openEditor(\'' . $id . '\')"';
28 //$new_article = '<article><a href="' . $link . '"><button>Nouvel article</button></a></article>'; 26
29 $new_article = '<article><p id="new"></p>' . "\n" . 27 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>';
30 '<p id="new-' . $id . '"><a href="#"><button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>'; 28 $html = '';
29
30 $new_button = '<p id="new-' . $id . '">' . "\n" .
31 '<button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></p>';
32
33 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
34 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n";
35
36 $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"';
37 $up_button = '<p id="position_up-' . $id . '" class="hidden"><img class="action_icon" src="assets/arrow-up.svg" ' . $up_js . '></p>' . "\n";
38
39 $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"';
40 $down_button = '<p id="position_down-' . $id . '" class="hidden"><img class="action_icon" src="assets/arrow-down.svg" ' . $down_js . '></p>' . "\n";
41
42 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"';
43 $delete_article = '<p id="delete-' . $id . '" class="hidden"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></p>' . "\n";
31 44
32 $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; 45 $close_js = 'onclick="closeEditor(\'' . $id . '\')"';
33 $close_editor = '<div class="article_admin_zone"><p id="cancel-' . $id . '" class="hidden"><a href="#"><button ' . $close_js . '>Annuler</button></a></p>'; 46 $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>';
34 47
35 $submit_js = 'onclick="submitArticle(\'' . $id . '\')"'; 48 $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"';
36 $submit_article = '<p id="submit-' . $id . '" class="hidden"><a href="#"><button ' . $submit_js . '>Valider</button></a></p></div></article>'; 49 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>';
37 50
38 $new_article_admin_buttons = $close_editor . $submit_article; 51 $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
52
53 // squelette d'un nouvel article
54 ob_start();
55 require self::VIEWS_PATH . 'article.php';
56 $new_article = ob_get_clean();
39 } 57 }
40 58
59 // articles existants
41 $this->useChildrenBuilder($node); 60 $this->useChildrenBuilder($node);
42 $content = $this->html; 61 $content = $this->html;
43 62
diff --git a/src/view/GridBuilder.php b/src/view/GridBuilder.php
index 6e16d46..e183e6f 100644
--- a/src/view/GridBuilder.php
+++ b/src/view/GridBuilder.php
@@ -7,6 +7,7 @@ class GridBuilder extends AbstractBuilder
7{ 7{
8 public function __construct(Node $node) 8 public function __construct(Node $node)
9 { 9 {
10 parent::__construct($node);
10 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; 11 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
11 12
12 if(file_exists($viewFile)) 13 if(file_exists($viewFile))
@@ -18,32 +19,50 @@ class GridBuilder extends AbstractBuilder
18 19
19 // ajouter un article 20 // ajouter un article
20 $new_article = ''; 21 $new_article = '';
21 $new_article_admin_buttons = '';
22 if($_SESSION['admin']) 22 if($_SESSION['admin'])
23 { 23 {
24 $id = 'new'; 24 $id = 'n' . $this->id_node;
25 $js = 'onclick="openEditor(\'' . $id . '\')"'; 25 $js = 'onclick="openEditor(\'' . $id . '\')"';
26 26
27 if(Director::$page_path->getLast()->getEndOfPath() === 'accueil') 27 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>';
28 { 28 $html = '';
29 $new_article = '<article><p id="new"></p>' . "\n" . 29
30 '<p><a href="' . new URL(['page' => 'article']) . '"><button><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>'; 30 if(CURRENT_PAGE === 'accueil'){
31 $new_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'article', 'id' => $id]) . '">
32 <button><img class="action_icon" src="assets/book-open.svg">Nouvel article</button></a></p>';
31 } 33 }
32 else 34 else{
33 { 35 $new_button = '<p id="new-' . $id . '">' . "\n" .
34 $new_article = '<article><p id="new"></p>' . "\n" . 36 '<button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></p>';
35 '<p id="new-' . $id . '"><a href="#"><button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>';
36 } 37 }
38
39 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
40 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n";
41
42 $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"';
43 $up_button = '<p id="position_up-' . $id . '" class="hidden"><img class="action_icon" src="assets/arrow-up.svg" ' . $up_js . '></p>' . "\n";
37 44
45 $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"';
46 $down_button = '<p id="position_down-' . $id . '" class="hidden"><img class="action_icon" src="assets/arrow-down.svg" ' . $down_js . '></p>' . "\n";
47
48 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"';
49 $delete_article = '<p id="delete-' . $id . '" class="hidden"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></p>' . "\n";
50
38 $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; 51 $close_js = 'onclick="closeEditor(\'' . $id . '\')"';
39 $close_editor = '<div class="article_admin_zone"><p id="cancel-' . $id . '" class="hidden"><a href="#"><button ' . $close_js . '>Annuler</button></a></p>'; 52 $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>';
40 53
41 $submit_js = 'onclick="submitArticle(\'' . $id . '\')"'; 54 $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"';
42 $submit_article = '<p id="submit-' . $id . '" class="hidden"><a href="#"><button ' . $submit_js . '>Valider</button></a></p></div></article>'; 55 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>';
43 56
44 $new_article_admin_buttons = $close_editor . $submit_article; 57 $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
58
59 // squelette d'un nouvel article
60 ob_start();
61 require self::VIEWS_PATH . 'article.php';
62 $new_article = ob_get_clean();
45 } 63 }
46 64
65 // articles existants
47 $this->useChildrenBuilder($node); 66 $this->useChildrenBuilder($node);
48 $content = $this->html; 67 $content = $this->html;
49 68
diff --git a/src/view/templates/article.php b/src/view/templates/article.php
index f3ab32f..c57c1cb 100644
--- a/src/view/templates/article.php
+++ b/src/view/templates/article.php
@@ -10,5 +10,4 @@
10 <?= $admin_buttons ?> 10 <?= $admin_buttons ?>
11 </div> 11 </div>
12 </div> 12 </div>
13
14</article> \ No newline at end of file 13</article> \ No newline at end of file
diff --git a/src/view/templates/blog.php b/src/view/templates/blog.php
index 35cac8b..e2066c8 100644
--- a/src/view/templates/blog.php
+++ b/src/view/templates/blog.php
@@ -1,6 +1,10 @@
1<section class="blog"> 1<section class="blog" id="<?= $this->id_node ?>">
2 <h3><?= $title ?></h3> 2 <h3><?= $title ?></h3>
3<?= $new_article ?> 3<?= $new_article ?>
4<?= $new_article_admin_buttons ?> 4 <script>
5 var clone<?= $this->id_node ?> = document.currentScript.previousElementSibling.cloneNode(true);
6 </script>
7 <div>
5<?= $content ?> 8<?= $content ?>
9 </div>
6</section> \ No newline at end of file 10</section> \ No newline at end of file
diff --git a/src/view/templates/galery.php b/src/view/templates/galery.php
index 306526f..246c4dd 100644
--- a/src/view/templates/galery.php
+++ b/src/view/templates/galery.php
@@ -1,9 +1,10 @@
1<section class="galery"> 1<section class="galery" id="<?= $this->id_node ?>">
2 <h3><?= $title ?></h3> 2 <h3><?= $title ?></h3>
3<?= $new_article ?> 3<?= $new_article ?>
4<?= $new_article_admin_buttons ?> 4 <script>
5 var clone<?= $this->id_node ?> = document.currentScript.previousElementSibling.cloneNode(true);
6 </script>
5 <div class="galery_photos"> 7 <div class="galery_photos">
6 <a><p></p></a>
7<?= $content ?> 8<?= $content ?>
8 </div> 9 </div>
9 <script>enableGaleryScroller();</script> 10 <script>enableGaleryScroller();</script>
diff --git a/src/view/templates/grid.php b/src/view/templates/grid.php
index a09ed40..f9e441d 100644
--- a/src/view/templates/grid.php
+++ b/src/view/templates/grid.php
@@ -1,7 +1,9 @@
1<section class="grid"> 1<section class="grid" id="<?= $this->id_node ?>">
2 <h3><?= $title ?></h3> 2 <h3><?= $title ?></h3>
3<?= $new_article ?> 3<?= $new_article ?>
4<?= $new_article_admin_buttons ?> 4 <script>
5 var clone<?= $this->id_node ?> = document.currentScript.previousElementSibling.cloneNode(true);
6 </script>
5 <div class="grid_columns"> 7 <div class="grid_columns">
6<?= $content ?> 8<?= $content ?>
7 </div> 9 </div>