New file |
0,0 → 1,56 |
<?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); |
} |
|
} |