diff options
Diffstat (limited to 'src/controller/PageManagementController.php')
| -rw-r--r-- | src/controller/PageManagementController.php | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/src/controller/PageManagementController.php b/src/controller/PageManagementController.php index c45f3f3..ca1f887 100644 --- a/src/controller/PageManagementController.php +++ b/src/controller/PageManagementController.php | |||
| @@ -68,8 +68,6 @@ class PageManagementController | |||
| 68 | true, true, false, | 68 | true, true, false, |
| 69 | $previous_page->getPosition(), | 69 | $previous_page->getPosition(), |
| 70 | $parent); // peut et DOIT être null si on est au 1er niveau | 70 | $parent); // peut et DOIT être null si on est au 1er niveau |
| 71 | $page->useDefaultCSS(); | ||
| 72 | $page->useDefaultJS(); | ||
| 73 | 71 | ||
| 74 | // on a donné à la nouvelle entrée la même position qu'à la précédente, | 72 | // on a donné à la nouvelle entrée la même position qu'à la précédente, |
| 75 | // addChild l'ajoute à la fin du tableau "children" puis on trie | 73 | // addChild l'ajoute à la fin du tableau "children" puis on trie |
| @@ -126,11 +124,10 @@ class PageManagementController | |||
| 126 | die; | 124 | die; |
| 127 | } | 125 | } |
| 128 | 126 | ||
| 129 | if($_POST["bloc_select"] === 'calendar' || $_POST["bloc_select"] === 'form'){ | 127 | if(in_array($_POST["bloc_select"], ['calendar', 'form'])){ |
| 130 | $page->setCSS(array_merge($page->getCSS(), [$_POST["bloc_select"]])); | 128 | $page->addCSS($_POST["bloc_select"]); |
| 131 | |||
| 132 | if($_POST["bloc_select"] === 'form'){ | 129 | if($_POST["bloc_select"] === 'form'){ |
| 133 | $page->setJS(array_merge($page->getJS(), [$_POST["bloc_select"]])); | 130 | $page->addJS($_POST["bloc_select"]); |
| 134 | } | 131 | } |
| 135 | $entityManager->persist($page); | 132 | $entityManager->persist($page); |
| 136 | } | 133 | } |
| @@ -146,7 +143,7 @@ class PageManagementController | |||
| 146 | $data->setPresentation('grid'); | 143 | $data->setPresentation('grid'); |
| 147 | } | 144 | } |
| 148 | elseif($_POST["bloc_select"] === 'galery'){ | 145 | elseif($_POST["bloc_select"] === 'galery'){ |
| 149 | $data->setPresentation('mosaic'); // mieux que carousel pour commencer | 146 | $data->setPresentation('mosaic'); // un jour on mettra carousel |
| 150 | } | 147 | } |
| 151 | // else = null par défaut | 148 | // else = null par défaut |
| 152 | 149 | ||
| @@ -163,19 +160,37 @@ class PageManagementController | |||
| 163 | $model->makeMenuAndPaths(); | 160 | $model->makeMenuAndPaths(); |
| 164 | $model->findUniqueNodeByName('main'); | 161 | $model->findUniqueNodeByName('main'); |
| 165 | $model->findItsChildren(); | 162 | $model->findItsChildren(); |
| 166 | //$model->findNodeById((int)$_POST['delete_bloc_id']); | ||
| 167 | $main = $model->getNode(); | 163 | $main = $model->getNode(); |
| 168 | $bloc = null; | 164 | |
| 165 | $block = null; | ||
| 166 | $type = ''; | ||
| 167 | $nb_same_type = 0; | ||
| 169 | foreach($main->getChildren() as $child){ | 168 | foreach($main->getChildren() as $child){ |
| 170 | if($child->getId() === (int)$_POST['delete_bloc_id']){ | 169 | if($child->getId() === (int)$_POST['delete_bloc_id']){ |
| 171 | $bloc = $child; | 170 | $block = $child; |
| 172 | break; | 171 | $type = $block->getName(); |
| 172 | } | ||
| 173 | if($child->getName() === $type){ | ||
| 174 | $nb_same_type++; | ||
| 173 | } | 175 | } |
| 174 | } | 176 | } |
| 175 | if(!empty($bloc)){ // si $bloc est null c'est que le HTML a été modifié volontairement | 177 | |
| 176 | $main->removeChild($bloc); // réindex le tableau $children au passage | 178 | // nettoyage fichiers CSS et JS si on retire le derner bloc de ce type |
| 179 | if($nb_same_type === 1 && in_array($block->getName(), ['calendar', 'form'])){ | ||
| 180 | $page = $block->getPage(); | ||
| 181 | $page->removeCSS($block->getName()); | ||
| 182 | if($block->getName() === 'form'){ | ||
| 183 | $page->removeJS($block->getName()); | ||
| 184 | } | ||
| 185 | } | ||
| 186 | |||
| 187 | if(!empty($block)){ // si $block est null c'est que le HTML a été modifié volontairement | ||
| 188 | $main->removeChild($block); // réindex le tableau $children au passage | ||
| 177 | $main->reindexPositions(); | 189 | $main->reindexPositions(); |
| 178 | $entityManager->remove($bloc); // suppression en BDD | 190 | if(isset($page)){ |
| 191 | $entityManager->persist($page); | ||
| 192 | } | ||
| 193 | $entityManager->remove($block); | ||
| 179 | $entityManager->flush(); | 194 | $entityManager->flush(); |
| 180 | } | 195 | } |
| 181 | 196 | ||
