* @copyright 2010 Tela-Botanica * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @version SVN: * @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); } } ?>