/**
  * FICHIER - Edition de favoris
  */
 public function processEditerFavori()
 {
     $classeurDAO = _ioDAO('classeur|classeur');
     if (is_null($ppo->classeur = $classeurDAO->get(_request('classeurId', null)))) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('')));
     } elseif (Kernel::getLevel('MOD_CLASSEUR', $ppo->classeur->id) < PROFILE_CCV_MEMBER) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('classeur||voirContenu', array('classeurId' => $ppo->classeur->id))));
     }
     // Récupération du dossier pour définition du path
     $dossierDAO = _ioDAO('classeur|classeurdossier');
     if (!is_null($ppo->dossierId = _request('dossierId', null)) && $ppo->dossierId != 0) {
         $ppo->dossier = $dossierDAO->get($ppo->dossierId);
         // Ajout d'un favori dans un casier non autorisé
         if ($ppo->dossier->casier) {
             return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('')));
         }
         $ppo->path = $ppo->dossier->getPath();
     } else {
         $ppo->path = '/' . $ppo->classeur->titre . '/';
     }
     // Récupération de l'identifiant du favori (si modification)
     $favoriId = _request('favoriId', null);
     if (!is_null($favoriId)) {
         $fichierDAO = _ioDAO('classeur|classeurfichier');
         $ppo->favori = $fichierDAO->get($favoriId);
         // Contrôle d'accès
         if (Kernel::getLevel('MOD_CLASSEUR', $ppo->classeur->id) < PROFILE_CCV_MEMBER && ($ppo->favori->user_type != _currentUser()->getExtra('type') || $ppo->favori->user_id != _currentUser()->getExtra('id'))) {
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('classeur||voirContenu', array('classeurId' => $ppo->classeur->id))));
         }
         // Récupération de l'url du favori
         _classInclude('classeur|classeurservice');
         $ppo->lien = $ppo->favori->getLienFavori();
     }
     if (CopixRequest::isMethod('post')) {
         _classInclude('classeur|classeurservice');
         $fichierDAO = _ioDAO('classeur|classeurfichier');
         $ppo->lien = _request('favori_adresse', null);
         if (is_null($favoriId = _request('favoriId', null))) {
             $ppo->favori = _record('classeur|classeurfichier');
         } else {
             $ppo->favori = $fichierDAO->get($favoriId);
         }
         $ppo->favori->classeur_id = $ppo->classeur->id;
         $ppo->favori->dossier_id = !is_null($dossierId = _request('dossierId', null)) ? $dossierId : 0;
         $ppo->favori->titre = _request('favori_titre', null);
         $ppo->favori->commentaire = null;
         $ppo->favori->fichier = Kernel::simpleName($ppo->favori->titre) . '.web';
         $ppo->favori->taille = 0;
         $ppo->favori->type = 'Favori';
         $ppo->favori->cle = classeurService::createKey();
         $ppo->favori->date_upload = date('Y-m-d H:i:s');
         $ppo->favori->user_type = _currentUser()->getExtra('type');
         $ppo->favori->user_id = _currentUser()->getExtra('id');
         // Traitement des erreurs
         $ppo->erreurs = array();
         if (_request('favori_titre', null) == '') {
             $ppo->erreurs[] = CopixI18N::get('classeur|classeur.error.noTitle');
         }
         if (_request('favori_adresse', null) == '' || _request('favori_adresse', null) == 'http://') {
             $ppo->erreurs[] = CopixI18N::get('classeur|classeur.error.noAddress');
         }
         if (!empty($ppo->erreurs)) {
             $modParentInfo = Kernel::getModParentInfo('MOD_CLASSEUR', $ppo->classeur->id);
             $ppo->TITLE_PAGE = $modParentInfo['nom'];
             return _arPPO($ppo, array('template' => 'editer_favori.tpl'));
         }
         if (is_null($ppo->favori->id)) {
             $fichierDAO->insert($ppo->favori);
             $confirmMessage = CopixI18N::get('classeur|classeur.message.confirmCreation');
         } else {
             $fichierDAO->update($ppo->favori);
             $confirmMessage = CopixI18N::get('classeur|classeur.message.confirmUpdate');
         }
         // Création du fichier
         $contenu = classeurService::generateWebFile($ppo->lien);
         $extension = strtolower(strrchr($ppo->favori->fichier, '.'));
         $nomFichier = $ppo->favori->id . '-' . $ppo->favori->cle . $extension;
         $pathFichier = realpath('./static/classeur') . '/' . $ppo->classeur->id . '-' . $ppo->classeur->cle . '/' . $nomFichier;
         if ($handler = fopen($pathFichier, 'w+')) {
             if (fwrite($handler, $contenu)) {
                 $ppo->favori->taille = filesize($pathFichier);
                 $fichierDAO->update($ppo->favori);
             }
             fclose($handler);
         }
         if ($ppo->favori->dossier_id != 0) {
             $dossierDAO = _ioDAO('classeur|classeurdossier');
             $dossier = $dossierDAO->get($ppo->favori->dossier_id);
             classeurService::updateFolderInfos($dossier);
         }
         return _arRedirect(CopixUrl::get('classeur||voirContenu', array('classeurId' => $ppo->classeur->id, 'dossierId' => $ppo->favori->dossier_id, 'confirmMessage' => $confirmMessage)));
     }
     $modParentInfo = Kernel::getModParentInfo('MOD_CLASSEUR', $ppo->classeur->id);
     $ppo->TITLE_PAGE = $modParentInfo['nom'];
     return _arPPO($ppo, array('template' => 'editer_favori.tpl'));
 }