Subversion Repositories eFlore/Applications.cel

Rev

Rev 970 | Rev 1152 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
* PHP Version 5
*
* @category  PHP
* @package   jrest
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
* @copyright 2010 Tela-Botanica
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version   SVN: <svn_id>
* @link      /doc/jrest/
*/
 
/**
* in : utf8
* out : utf8
* 
 * Service de liaisons de mots clés à des images.
 * Le service lie une ou plusieurs mots clés à une ou plusieurs images
*
*/
class InventoryKeyWordImageLink extends Cel {
                        
        public function getElement($uid) {
        
        }
        
        public function createElement($pairs) {
                
                // Controle detournement utilisateur
                $this->controleUtilisateur($pairs['ce_utilisateur']);
        
                if (!isset($pairs['mots_cles']) || !isset($pairs['images']) || !isset($pairs['ce_utilisateur'])) {
                        return;
                }
                
                $pairs['images'] = rtrim($pairs['images'],',');
                $id_images = explode(',',$pairs['images']);
                
                $pairs['mots_cles'] = rtrim($pairs['mots_cles'],',');
                $mots_cles = explode(',',$pairs['mots_cles']);
                
                // Pour le moment on ne peut que supprimer les mots clés et ajouter les nouveaux à cause du fonctionnement
                // de l'arbre de mots clés des images
                $gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'images');
                $suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerToutesLiaisonsPourIdImageOuObs($pairs['ce_utilisateur'], $id_images);
                $liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$id_images, $mots_cles);
                                
                return $liaison_mot_cle;
        }

        public function deleteElement($uid){
                $retour = false;
                
                // Controle detournement utilisateur
                $this->controleUtilisateur($uid[0]);
        
                if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || !$this->estUnIdentifiantMotCle($uid[2])) {
                        return;
                }
                
                $id_images = explode(',',$uid[1]);
                $id_utilisateur = $uid[0];
                                
                $gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'images');
                
                $mots_cles = $gestionnaire_mots_cles->nettoyerMotsCles($uid[2]);
                $mots_cles = explode(',',$mots_cles);
                
                $suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $id_images, $mots_cles);

                return $suppression_liaison_mot_cle;
        }

        private function estUnIdentifiantMotCle($chaine) {
                return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
        }       
}
?>