summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/controller/post.php32
-rw-r--r--src/model/entities/NodeData.php4
-rw-r--r--src/view/FooterBuilder.php6
-rw-r--r--src/view/templates/main.php40
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);
6use App\Entity\Node; 6use App\Entity\Node;
7use App\Entity\NodeData; 7use App\Entity\NodeData;
8use App\Entity\Page; 8use App\Entity\Page;
9use App\Entity\Image;
10use Doctrine\Common\Collections\ArrayCollection;
9 11
10if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) 12if($_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