Rev 1872 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** @package jrest* @author Aurélien Peronnet <aurelien@tela-botania.org>* @copyright 2010, 2013 Tela-Botanica* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL** Service de liaisons de mots clés à des observations.* Le service lie une ou plusieurs mots clés à une ou plusieurs observations*/class InventoryKeyWordObsLink 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['observations']) || !isset($pairs['ce_utilisateur'])) {return;}$ids_obs = explode(',',$pairs['observations']);$mots_cles = explode(',',$pairs['mots_cles']);$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$ids_obs, $mots_cles);return $liaison_mot_cle;}public function deleteElement($uid){// Controle detournement utilisateur$this->controleUtilisateur($uid[0]);if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || ! self::estUnIdentifiantMotCle($uid[2])) {return FALSE;}return self::unlinkKeyword($this->config, 'obs', explode(',',$uid[1]), $uid[0], $uid[2]);}static function unlinkKeyword($config, $type /* = obs|images */, Array $obsIds, $uid, $keywordIds /* comma-separated string */) {if($type != 'obs' && $type != 'images') return FALSE;$gestionnaire_mots_cles = new LiaisonMotsCles($config, $type);$mots_cles = explode(',', LiaisonMotsCles::nettoyerMotsCles($keywordIds));return $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($uid, $obsIds, $mots_cles);}static function estUnIdentifiantMotCle($chaine) {return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);}}