public function modifPublicationAction()
 {
     $token = VerifUser::tokenAction();
     if ($token == null) {
         $this->redirect()->toRoute('home');
     }
     $langue = $this->getEvent()->getRouteMatch()->getParam('langue');
     $idPublication = $this->getEvent()->getRouteMatch()->getParam('id_publication');
     //récupère id de la publication correspondante
     $adminModel = new AdminModel();
     $publicationModel = new PublicationModel();
     $form = new PublicationForm();
     //formulaire de modification de rubrique
     $publicationToModif = null;
     $msgSuccess = null;
     $errorExt = null;
     $listeRubriques = SendLayout::fetchAllRubriques($this, 'modifpubli', $langue, $token);
     try {
         $publicationToModif = $publicationModel->findOne($token, $idPublication);
     } catch (\Exception $e) {
         SendLayout::traiteExceptionsOnePublication($this, $listeRubriques, 'modifpubli', $idPublication, $langue, $token, $e->getMessage());
         return new ViewModel(array('form' => $form, 'langue' => $langue, 'publicationToModif' => $publicationToModif, 'listeCategories' => $this->getCategories(), 'pubNotFound' => $e->getMessage()));
     }
     $request = $this->getRequest();
     if ($request->isPost()) {
         $publicationModif = new Publication();
         $form->setInputFilter($publicationModif->getInputFilter());
         $other = $request->getPost()->toArray();
         $file = $this->params()->fromFiles('pdf');
         $data = array_merge($other, array('pdf' => $file['name']));
         $form->setData($data);
         if ($form->isValid()) {
             $publicationModif->exchangeArray($form->getData());
             $publicationModif->id = $idPublication;
             $valid = new ValidationUploadedFile();
             if ($file['name'] != '') {
                 if ($valid->validatorsFile($file, 'pdf') == true) {
                     $valid->moveFile($file);
                     $publicationModif->pdf = 'useruploads/files/' . $file['name'];
                 } else {
                     $publicationModif->pdf = null;
                     $errorExt = 'error extension';
                 }
             } else {
                 $publicationModif->pdf = null;
             }
             try {
                 $adminModel->modifPublication($token, $publicationModif);
             } catch (\Exception $e) {
                 return new ViewModel(array('form' => $form, 'publicationToModif' => $publicationToModif, 'listeCategories' => $this->getCategories(), 'langue' => $langue, 'exModifPublication' => $e->getMessage()));
             }
             if (!isset($errorExt)) {
                 $msgSuccess = 'modifpublication';
                 $this->redirect()->toRoute('admin', array('langue' => $langue), array('query' => array('successMdfP' => $msgSuccess)));
             }
         }
     }
     //Envoi des variables au layout
     SendLayout::sendGeneral($this, $listeRubriques, 'modifpubli', $langue, $token);
     $this->layout()->setVariable('id_publication', $idPublication);
     if (!isset($errorExt)) {
         return new ViewModel(array('form' => $form, 'langue' => $langue, 'publicationToModif' => $publicationToModif, 'listeCategories' => $this->getCategories()));
     }
     return new ViewModel(array('form' => $form, 'publicationToModif' => $publicationToModif, 'listeCategories' => $this->getCategories(), 'errorMsgExtension' => 'L\'extension du fichier doit être pdf.', 'langue' => $langue));
 }