diff options
author | polo <ordipolo@gmx.fr> | 2025-04-21 20:36:10 +0200 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2025-04-21 20:36:10 +0200 |
commit | eb3e1eb8c8365d3b3d1d39f24314ba420255afc2 (patch) | |
tree | 5e3d747b0e4d5e747052e9afed76f3a0f0986379 /src/controller/ajax.php | |
parent | ca3949aca0c7c1af476c8eec93b4920d5aff21ec (diff) | |
download | cms-eb3e1eb8c8365d3b3d1d39f24314ba420255afc2.zip |
page menu et chemin, partie1
Diffstat (limited to 'src/controller/ajax.php')
-rw-r--r-- | src/controller/ajax.php | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/src/controller/ajax.php b/src/controller/ajax.php index a4b61e4..c774bf3 100644 --- a/src/controller/ajax.php +++ b/src/controller/ajax.php | |||
@@ -6,7 +6,7 @@ declare(strict_types=1); | |||
6 | use App\Entity\Article; | 6 | use App\Entity\Article; |
7 | use App\Entity\Node; | 7 | use App\Entity\Node; |
8 | 8 | ||
9 | // détection des requêtes de tinymce | 9 | // détection des requêtes de tinymce ou touchant aux articles |
10 | if($_SERVER['CONTENT_TYPE'] === 'application/json' && isset($_GET['action'])) | 10 | if($_SERVER['CONTENT_TYPE'] === 'application/json' && isset($_GET['action'])) |
11 | { | 11 | { |
12 | // récupération des données | 12 | // récupération des données |
@@ -204,6 +204,48 @@ if(strpos($_SERVER['CONTENT_TYPE'], 'multipart/form-data') !== false && isset($_ | |||
204 | die; | 204 | die; |
205 | } | 205 | } |
206 | 206 | ||
207 | if($_SERVER['CONTENT_TYPE'] === 'application/json' && isset($_GET['menu_edit'])) | ||
208 | { | ||
209 | // récupération des données | ||
210 | $data = file_get_contents('php://input'); | ||
211 | $json = json_decode($data, true); | ||
212 | |||
213 | if($_GET['menu_edit'] === 'switch_positions' && isset($json['id1']) && isset($json['id2'])) | ||
214 | { | ||
215 | //$menu = new Menu($entityManager); | ||
216 | Director::$menu_data = new Menu($entityManager); | ||
217 | |||
218 | $id1 = $json['id1']; | ||
219 | $id2 = $json['id2']; | ||
220 | |||
221 | // vérifier qu'ils ont le même parent | ||
222 | $page1 = Director::$menu_data->findPageById((int)$id1); | ||
223 | $page2 = Director::$menu_data->findPageById((int)$id2); | ||
224 | |||
225 | // double le contrôle fait en JS | ||
226 | if($page1->getParent() === $page2->getParent()) // comparaison stricte d'objet (même instance du parent?) | ||
227 | { | ||
228 | // inversion | ||
229 | $tmp = $page1->getPosition(); | ||
230 | $page1->setPosition($page2->getPosition()); | ||
231 | $page2->setPosition($tmp); | ||
232 | Director::$menu_data->sortChildren(true); // modifie tableau children | ||
233 | $entityManager->flush(); | ||
234 | |||
235 | // menu utilisant les nouvelles données | ||
236 | //Director::$page_path = new Path(); | ||
237 | $nav_builder = new NavBuilder(); // builder appelé sans envoi du noeud correspondant | ||
238 | |||
239 | echo json_encode(['success' => true, 'path1' => '', 'path2' => '', 'nav' => $nav_builder->render()]); | ||
240 | } | ||
241 | else{ | ||
242 | echo json_encode(['success' => false]); | ||
243 | } | ||
244 | |||
245 | die; | ||
246 | } | ||
247 | } | ||
248 | |||
207 | // détection des requêtes de type XHR, pas d'utilité pour l'instant | 249 | // détection des requêtes de type XHR, pas d'utilité pour l'instant |
208 | /*elseif(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){ | 250 | /*elseif(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){ |
209 | echo "requête XHR reçue par le serveur"; | 251 | echo "requête XHR reçue par le serveur"; |