diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/controller/post.php | 32 | ||||
-rw-r--r-- | src/model/entities/NodeData.php | 4 | ||||
-rw-r--r-- | src/view/FooterBuilder.php | 6 | ||||
-rw-r--r-- | src/view/templates/main.php | 40 |
4 files changed, 62 insertions, 20 deletions
diff --git a/src/controller/post.php b/src/controller/post.php index 6fac796..2aa7780 100644 --- a/src/controller/post.php +++ b/src/controller/post.php | |||
@@ -6,6 +6,8 @@ declare(strict_types=1); | |||
6 | use App\Entity\Node; | 6 | use App\Entity\Node; |
7 | use App\Entity\NodeData; | 7 | use App\Entity\NodeData; |
8 | use App\Entity\Page; | 8 | use App\Entity\Page; |
9 | use App\Entity\Image; | ||
10 | use Doctrine\Common\Collections\ArrayCollection; | ||
9 | 11 | ||
10 | if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | 12 | if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) |
11 | { | 13 | { |
@@ -29,7 +31,7 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
29 | trim(htmlspecialchars($_POST["page_name"])), | 31 | trim(htmlspecialchars($_POST["page_name"])), |
30 | trim(htmlspecialchars($_POST["page_name_path"])), | 32 | trim(htmlspecialchars($_POST["page_name_path"])), |
31 | true, true, false, | 33 | true, true, false, |
32 | $previous_page->getPosition(), | 34 | $previous_page->getPosition(), |
33 | $parent); // peut et DOIT être null si on est au 1er niveau | 35 | $parent); // peut et DOIT être null si on est au 1er niveau |
34 | 36 | ||
35 | // on a donné à la nouvelle entrée la même position qu'à la précédente, | 37 | // on a donné à la nouvelle entrée la même position qu'à la précédente, |
@@ -56,6 +58,12 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
56 | 'title' => trim(htmlspecialchars($_POST["page_name"])), | 58 | 'title' => trim(htmlspecialchars($_POST["page_name"])), |
57 | 'description' => trim(htmlspecialchars($_POST["page_description"]))], | 59 | 'description' => trim(htmlspecialchars($_POST["page_description"]))], |
58 | $node); | 60 | $node); |
61 | |||
62 | $bulk_data = $entityManager | ||
63 | ->createQuery('SELECT n FROM App\Entity\Image n WHERE n.file_name LIKE :name') | ||
64 | ->setParameter('name', '%favicon%') | ||
65 | ->getResult(); | ||
66 | $data->setImages(new ArrayCollection($bulk_data)); | ||
59 | 67 | ||
60 | $entityManager->persist($page); | 68 | $entityManager->persist($page); |
61 | $entityManager->persist($node); | 69 | $entityManager->persist($node); |
@@ -66,6 +74,28 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
66 | header("Location: " . new URL(['page' => $page->getPagePath(), 'action' => 'modif_page'])); | 74 | header("Location: " . new URL(['page' => $page->getPagePath(), 'action' => 'modif_page'])); |
67 | die; | 75 | die; |
68 | } | 76 | } |
77 | |||
78 | /* -- suppression d'une page -- */ | ||
79 | elseif(isset($_POST['page_id']) && $_POST['page_id'] !== null | ||
80 | && isset($_POST['submit_hidden']) && $_POST['submit_hidden'] === '') | ||
81 | { | ||
82 | $page = $entityManager->find('App\Entity\Page', (int)$_POST['page_id']); | ||
83 | $nodes = $entityManager->getRepository('App\Entity\Node')->findBy(['page' => $page]); | ||
84 | $data = []; | ||
85 | foreach($nodes as $node){ | ||
86 | $data[] = $entityManager->getRepository('App\Entity\NodeData')->findOneBy(['node' => $node]); | ||
87 | $entityManager->remove($node); | ||
88 | } | ||
89 | foreach($data as $one_data){ | ||
90 | $entityManager->remove($one_data); | ||
91 | } | ||
92 | $entityManager->remove($page); // suppression en BDD | ||
93 | |||
94 | $entityManager->flush(); | ||
95 | header("Location: " . new URL); | ||
96 | die; | ||
97 | } | ||
98 | |||
69 | 99 | ||
70 | /* -- mode Modification d'une page -- */ | 100 | /* -- mode Modification d'une page -- */ |
71 | 101 | ||
diff --git a/src/model/entities/NodeData.php b/src/model/entities/NodeData.php index 8f0f511..70da5cf 100644 --- a/src/model/entities/NodeData.php +++ b/src/model/entities/NodeData.php | |||
@@ -67,4 +67,8 @@ class NodeData | |||
67 | { | 67 | { |
68 | return $this->images; | 68 | return $this->images; |
69 | } | 69 | } |
70 | public function setImages(Collection $images): void | ||
71 | { | ||
72 | $this->images = $images; | ||
73 | } | ||
70 | } | 74 | } |
diff --git a/src/view/FooterBuilder.php b/src/view/FooterBuilder.php index 084e122..14f9cd7 100644 --- a/src/view/FooterBuilder.php +++ b/src/view/FooterBuilder.php | |||
@@ -28,16 +28,16 @@ class FooterBuilder extends AbstractBuilder | |||
28 | if($_SESSION['admin']) | 28 | if($_SESSION['admin']) |
29 | { | 29 | { |
30 | $empty_admin_zone = 'empty_admin_zone'; | 30 | $empty_admin_zone = 'empty_admin_zone'; |
31 | $link_edit_page = new URL(['page' => CURRENT_PAGE]); | ||
31 | if(MainBuilder::$modif_mode){ | 32 | if(MainBuilder::$modif_mode){ |
32 | $mode = 'modification de page'; | 33 | $mode = 'modification de page'; |
33 | $div_admin = 'logged_in modif_mode'; | 34 | $div_admin = 'logged_in modif_mode'; |
34 | $link_edit_page = new URL(['page' => CURRENT_PAGE]); | ||
35 | $link_edit_label = 'Sortir du mode modification'; | 35 | $link_edit_label = 'Sortir du mode modification'; |
36 | } | 36 | } |
37 | else{ | 37 | else{ |
38 | $mode = 'administrateur'; | 38 | $mode = 'administrateur'; |
39 | $div_admin = 'logged_in'; | 39 | $div_admin = 'logged_in'; |
40 | $link_edit_page = new URL(['page' => CURRENT_PAGE, 'action' => 'modif_page']); | 40 | $link_edit_page->addParams(['action' => 'modif_page']); |
41 | $link_edit_label = 'Modifier la page'; | 41 | $link_edit_label = 'Modifier la page'; |
42 | } | 42 | } |
43 | $link_new_page = new URL(['page' => 'nouvelle_page']); | 43 | $link_new_page = new URL(['page' => 'nouvelle_page']); |
@@ -51,8 +51,8 @@ class FooterBuilder extends AbstractBuilder | |||
51 | 51 | ||
52 | $zone_admin = '<div class="admin_buttons_zone"> | 52 | $zone_admin = '<div class="admin_buttons_zone"> |
53 | <p>Vous êtes en mode ' . $mode . ".</p>\n" . | 53 | <p>Vous êtes en mode ' . $mode . ".</p>\n" . |
54 | '<div><a href="' . $link_edit_page . '"><button>' . $link_edit_label . '</button></a></div>' . "\n" . | ||
55 | '<div><a href="' . $link_new_page . '"><button>Nouvelle page</button></a></div>' . "\n" . | 54 | '<div><a href="' . $link_new_page . '"><button>Nouvelle page</button></a></div>' . "\n" . |
55 | '<div><a href="' . $link_edit_page . '"><button>' . $link_edit_label . '</button></a></div>' . "\n" . | ||
56 | '<div><a href="' . $link_change_paths . '"><button>Menu et chemins</button></a></div>' . "\n" . | 56 | '<div><a href="' . $link_change_paths . '"><button>Menu et chemins</button></a></div>' . "\n" . |
57 | '<div><a href="' . $link_change_password . '"><button>Changer de mot de passe</button></a></div>' . "\n" . | 57 | '<div><a href="' . $link_change_password . '"><button>Changer de mot de passe</button></a></div>' . "\n" . |
58 | '<div><a href="' . $link_logout . '"><button>Déconnexion</button></a></div>' . "\n" . | 58 | '<div><a href="' . $link_logout . '"><button>Déconnexion</button></a></div>' . "\n" . |
diff --git a/src/view/templates/main.php b/src/view/templates/main.php index 7ff03a8..c2b631d 100644 --- a/src/view/templates/main.php +++ b/src/view/templates/main.php | |||
@@ -24,22 +24,30 @@ | |||
24 | </div> | 24 | </div> |
25 | </div> | 25 | </div> |
26 | <div class="edit_bloc_zone"> | 26 | <div class="edit_bloc_zone"> |
27 | <div class="new_bloc"> | 27 | <div class="new_bloc"> |
28 | <p>Ajouter un bloc de page</p> | 28 | <p>Ajouter un bloc de page</p> |
29 | <form method="post" action="<?= new URL(['page' => CURRENT_PAGE]) ?>"> | 29 | <form method="post" action="<?= new URL(['page' => CURRENT_PAGE]) ?>"> |
30 | <p><label for="bloc_title">Titre</label> | 30 | <p><label for="bloc_title">Titre</label> |
31 | <input type="text" id="bloc_title" name="bloc_title" required></p> | 31 | <input type="text" id="bloc_title" name="bloc_title" required></p> |
32 | <p><label for="bloc_select">Type</label> | 32 | <p><label for="bloc_select">Type</label> |
33 | <select id="bloc_select" name="bloc_select" required> | 33 | <select id="bloc_select" name="bloc_select" required> |
34 | <?= $options ?> | 34 | <?= $options ?> |
35 | </select> | 35 | </select> |
36 | <input type="hidden" name="bloc_title_hidden"> | 36 | <input type="hidden" name="bloc_title_hidden"> |
37 | <input type="submit" value="Valider"></p> | 37 | <input type="submit" value="Valider"></p> |
38 | </form> | 38 | </form> |
39 | </div> | ||
40 | <div class="modify_bloc"> | ||
41 | <p>Modifier un bloc</p> | ||
42 | <?= $bloc_edit ?> | ||
43 | </div> | 39 | </div> |
40 | <div class="modify_bloc"> | ||
41 | <p>Modifier un bloc</p> | ||
42 | <?= $bloc_edit ?> | ||
43 | </div> | ||
44 | </div> | ||
45 | <div class="delete_page_zone"> | ||
46 | <form method="post" action="<?= new URL ?>"> | ||
47 | <label>Supprimer cette page</label> | ||
48 | <input type="hidden" name="page_id" value="<?= Director::$page_path->getLast()->getId() ?>"> | ||
49 | <input type="hidden" name="submit_hidden"> | ||
50 | <input type="submit" value="Valider" onclick="return confirm('Voulez-vous vraiment supprimer cette page?');"> | ||
51 | </form> | ||
44 | </div> | 52 | </div> |
45 | </section> \ No newline at end of file | 53 | </section> \ No newline at end of file |