public function createAction($r_controller = null, $r_action = null, $r_id = null) { $mapServerConfig = $this->getDI()->getConfig()->mapserver; $fileName = $mapServerConfig->mapfileCacheDir . $mapServerConfig->contextesCacheDir . $this->request->getPost("code") . ".map"; //Ne pas créer le contexte si il y en a déjà un avec le même code if (file_exists($fileName)) { $this->flash->error("Le fichier {$fileName} existe déjà!"); return $this->dispatcher->forward(array("controller" => $this->ctlName, "action" => "new", "param" => !is_null($r_id) ? "/" . $r_controller . "/" . $r_action . "/" . $r_id : "")); } $idContexteADupliquer = $this->request->getPost('id_contexte_a_dupliquer'); //On désire dupliquer un contexte if ($idContexteADupliquer) { if (!$this->peutDupliquerContexte($idContexteADupliquer)) { $this->flash->error("Vous n'avez pas la permission de dupliquer le contexte {$idContexteADupliquer}."); return $this->dispatcher->forward(array("controller" => $this->ctlName, "action" => "new", "param" => !is_null($r_id) ? "/" . $r_controller . "/" . $r_action . "/" . $r_id : "")); } } $this->traiterCodeOnlineRessource(); $igoContexte = new IgoContexte(); $igoContexte->mode = $this->request->getPost("mode"); $igoContexte->position = $this->request->getPost("position"); $igoContexte->zoom = $this->request->getPost("zoom"); $igoContexte->code = $this->request->getPost("code"); $igoContexte->nom = $this->request->getPost("nom"); $igoContexte->description = $this->request->getPost("description"); $igoContexte->mf_map_def = $this->request->getPost("mf_map_def"); $igoContexte->date_modif = $this->request->getPost("date_modif"); $igoContexte->json = $this->request->getPost("json"); $igoContexte->mf_map_projection = $this->request->getPost("mf_map_projection"); $igoContexte->profil_proprietaire_id = $this->request->getPost("profil_proprietaire_id"); if ($igoContexte->profil_proprietaire_id == "") { $igoContexte->profil_proprietaire_id = null; } //Valider la sélection ou pas du profil propriétaire if (!$this->validationProfilProprietaire($igoContexte->profil_proprietaire_id, $messageErreurProfilProprietaire)) { foreach ($messageErreurProfilProprietaire as $message) { $this->flash->error($message); } return $this->dispatcher->forward(array("controller" => $this->ctlName, "action" => "new", "param" => !is_null($r_id) ? "/" . $r_controller . "/" . $r_action . "/" . $r_id : "")); } $igoContexte->mf_map_meta_onlineresource = $this->request->getPost("mf_map_meta_onlineresource"); $igoContexte->generer_onlineresource = $this->request->getPost("generer_onlineResource"); try { if (!$igoContexte->save()) { foreach ($igoContexte->getMessages() as $message) { $this->flash->error($message); } return $this->dispatcher->forward(array("controller" => $this->ctlName, "action" => "new", "param" => !is_null($r_id) ? "/" . $r_controller . "/" . $r_action . "/" . $r_id : "")); } if ($idContexteADupliquer) { $this->dupliquerContexte($idContexteADupliquer, $igoContexte->id); } $this->flash->success(Text::camelize(str_replace("igo_", "", $this->ctlName)) . " " . $igoContexte->id . " créé avec succès"); } catch (\Exception $e) { $this->flash->error($e->getMessage()); return $this->dispatcher->forward(array("controller" => $this->ctlName, "action" => "new", "param" => !is_null($r_id) ? "/" . $r_controller . "/" . $r_action . "/" . $r_id : "")); } }