From 9a710b5d1008f41fdff8a30226a2a5b378def29c Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 11 May 2025 21:39:31 +0200 Subject: =?UTF-8?q?suppression=20d'une=20page,=20assets=20g=C3=A9r=C3=A9s?= =?UTF-8?q?=20=C3=A0=20la=20cr=C3=A9ations=20de=20pages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/css/modif_page.css | 6 +++++- src/controller/post.php | 32 +++++++++++++++++++++++++++++++- src/model/entities/NodeData.php | 4 ++++ src/view/FooterBuilder.php | 6 +++--- src/view/templates/main.php | 40 ++++++++++++++++++++++++---------------- 5 files changed, 67 insertions(+), 21 deletions(-) diff --git a/public/css/modif_page.css b/public/css/modif_page.css index c494221..d743e9e 100644 --- a/public/css/modif_page.css +++ b/public/css/modif_page.css @@ -29,7 +29,7 @@ flex-wrap: wrap; justify-content: space-evenly; } -.edit_page_zone, .edit_bloc_zone +.edit_page_zone, .edit_bloc_zone, .delete_page_zone { background-color: #f0f0f0f0; margin: 5px; @@ -71,4 +71,8 @@ .modify_bloc img { vertical-align: middle; +} +.delete_page_zone +{ + text-align: center; } \ No newline at end of file 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); use App\Entity\Node; use App\Entity\NodeData; use App\Entity\Page; +use App\Entity\Image; +use Doctrine\Common\Collections\ArrayCollection; if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) { @@ -29,7 +31,7 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) trim(htmlspecialchars($_POST["page_name"])), trim(htmlspecialchars($_POST["page_name_path"])), true, true, false, - $previous_page->getPosition(), + $previous_page->getPosition(), $parent); // peut et DOIT être null si on est au 1er niveau // 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) 'title' => trim(htmlspecialchars($_POST["page_name"])), 'description' => trim(htmlspecialchars($_POST["page_description"]))], $node); + + $bulk_data = $entityManager + ->createQuery('SELECT n FROM App\Entity\Image n WHERE n.file_name LIKE :name') + ->setParameter('name', '%favicon%') + ->getResult(); + $data->setImages(new ArrayCollection($bulk_data)); $entityManager->persist($page); $entityManager->persist($node); @@ -66,6 +74,28 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) header("Location: " . new URL(['page' => $page->getPagePath(), 'action' => 'modif_page'])); die; } + + /* -- suppression d'une page -- */ + elseif(isset($_POST['page_id']) && $_POST['page_id'] !== null + && isset($_POST['submit_hidden']) && $_POST['submit_hidden'] === '') + { + $page = $entityManager->find('App\Entity\Page', (int)$_POST['page_id']); + $nodes = $entityManager->getRepository('App\Entity\Node')->findBy(['page' => $page]); + $data = []; + foreach($nodes as $node){ + $data[] = $entityManager->getRepository('App\Entity\NodeData')->findOneBy(['node' => $node]); + $entityManager->remove($node); + } + foreach($data as $one_data){ + $entityManager->remove($one_data); + } + $entityManager->remove($page); // suppression en BDD + + $entityManager->flush(); + header("Location: " . new URL); + die; + } + /* -- mode Modification d'une page -- */ 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 { return $this->images; } + public function setImages(Collection $images): void + { + $this->images = $images; + } } 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 if($_SESSION['admin']) { $empty_admin_zone = 'empty_admin_zone'; + $link_edit_page = new URL(['page' => CURRENT_PAGE]); if(MainBuilder::$modif_mode){ $mode = 'modification de page'; $div_admin = 'logged_in modif_mode'; - $link_edit_page = new URL(['page' => CURRENT_PAGE]); $link_edit_label = 'Sortir du mode modification'; } else{ $mode = 'administrateur'; $div_admin = 'logged_in'; - $link_edit_page = new URL(['page' => CURRENT_PAGE, 'action' => 'modif_page']); + $link_edit_page->addParams(['action' => 'modif_page']); $link_edit_label = 'Modifier la page'; } $link_new_page = new URL(['page' => 'nouvelle_page']); @@ -51,8 +51,8 @@ class FooterBuilder extends AbstractBuilder $zone_admin = '

Vous êtes en mode ' . $mode . ".

\n" . - '
' . "\n" . '
' . "\n" . + '
' . "\n" . '
' . "\n" . '
' . "\n" . '
' . "\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 @@
-
-

Ajouter un bloc de page

-
-

-

-

- - -

-
-
-
-

Modifier un bloc

- +
+

Ajouter un bloc de page

+
+

+

+

+ + +

+
+
+

Modifier un bloc

+ +
+
+
+
+ + + + +
\ No newline at end of file -- cgit v1.2.3