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 : ""));
     }
 }