diff options
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"; |
