renderer = $renderer; $this->regionTable = $regionTable; $this->antenneTable = $antenneTable; $this->userTable = $userTable; $this->flashService = $flashService; $this->container = $container; } public function __invoke(Request $request) { $role = $request->getAttribute('user')->role; $user_id = $request->getAttribute('user')->id; if ($role < 3) { if ($request->getMethod() === 'GET') { // $username = $this->session->get('username', []); if ($role == 2) { $antennes_suivies = $request->getAttribute('user')->suiviantenne; $liste_ant_suiv = str_replace('|',',',$antennes_suivies); $listeAntennes = $this->antenneTable->findAnyAntennes('tri_alpha',$liste_ant_suiv); } else { $listeAntennes = $this->antenneTable->findAllAntennes('tri_alpha'); } $listeRegions = $this->regionTable->findAll(); } $params = $request->getQueryParams(); // On récupère l'id de la région cliquée $slug = $request->getAttribute('slug') ?: $_SESSION['connecte']; //$region_id = $this->regionTable->findBy('slug', $slug)->id ?: 1; $page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1 $sess = $_SESSION; if ($request->getMethod() === 'POST') { $params = $request->getParsedBody(); $antenne_id = strstr( $params['antenne'], '|', true); $date = $params['datepicker']; $time = '00:00:00'; $date_us = substr($date,6,4).'-'.substr($date,3,2).'-'.substr($date,0,2); $date_us .= ' '.$time; $madate = date("Y-m-d H:i:s", strtotime($date_us)); $validator = (new Validator($params)) ->required('antenne', 'region'); if ($validator->isValid()) { $antenneParams = [ 'id' => $antenne_id, 'region_id' => $params['region'], 'gmarcheAt' => $madate, 'edito1' => $params['contenu1'], 'edito2' => $params['contenu2'], 'edito3' => $params['contenu3'], 'edito4' => $params['contenu4'] ]; $this->antenneTable->update($antenne_id, $antenneParams); $this->flashService->success("L'antenne a bien été mise à jour"); return new RedirectResponse($request->getUri()->getPath()); } $errors = $validator->getErrors(); } return $this->renderer->render('@antenne/edit', compact('sess', 'page', 'listeRegions', 'listeAntennes')); } else { $this->flashService->success("Vous n'avez pas accès à cette fonction"); return new RedirectBackResponse($request); } } }