diff options
| -rw-r--r-- | public/css/modif_page.css | 6 | ||||
| -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 |
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 @@ | |||
| 29 | flex-wrap: wrap; | 29 | flex-wrap: wrap; |
| 30 | justify-content: space-evenly; | 30 | justify-content: space-evenly; |
| 31 | } | 31 | } |
| 32 | .edit_page_zone, .edit_bloc_zone | 32 | .edit_page_zone, .edit_bloc_zone, .delete_page_zone |
| 33 | { | 33 | { |
| 34 | background-color: #f0f0f0f0; | 34 | background-color: #f0f0f0f0; |
| 35 | margin: 5px; | 35 | margin: 5px; |
| @@ -71,4 +71,8 @@ | |||
| 71 | .modify_bloc img | 71 | .modify_bloc img |
| 72 | { | 72 | { |
| 73 | vertical-align: middle; | 73 | vertical-align: middle; |
| 74 | } | ||
| 75 | .delete_page_zone | ||
| 76 | { | ||
| 77 | text-align: center; | ||
| 74 | } \ No newline at end of file | 78 | } \ 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); | |||
| 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 |
