416 |
aurelien |
1 |
<?php
|
|
|
2 |
/**
|
1872 |
raphael |
3 |
* @package jrest
|
|
|
4 |
* @author Aurélien Peronnet <aurelien@tela-botania.org>
|
|
|
5 |
* @copyright 2010, 2013 Tela-Botanica
|
|
|
6 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
|
|
7 |
*
|
930 |
aurelien |
8 |
* Service de liaisons de mots clés à des observations.
|
|
|
9 |
* Le service lie une ou plusieurs mots clés à une ou plusieurs observations
|
1872 |
raphael |
10 |
*/
|
|
|
11 |
|
819 |
jpm |
12 |
class InventoryKeyWordObsLink extends Cel {
|
936 |
aurelien |
13 |
|
1872 |
raphael |
14 |
public function getElement($uid) { }
|
819 |
jpm |
15 |
|
930 |
aurelien |
16 |
public function createElement($pairs) {
|
|
|
17 |
|
416 |
aurelien |
18 |
// Controle detournement utilisateur
|
930 |
aurelien |
19 |
$this->controleUtilisateur($pairs['ce_utilisateur']);
|
819 |
jpm |
20 |
|
930 |
aurelien |
21 |
if (!isset($pairs['mots_cles']) || !isset($pairs['observations']) || !isset($pairs['ce_utilisateur'])) {
|
819 |
jpm |
22 |
return;
|
|
|
23 |
}
|
930 |
aurelien |
24 |
|
1302 |
aurelien |
25 |
$ids_obs = explode(',',$pairs['observations']);
|
930 |
aurelien |
26 |
$mots_cles = explode(',',$pairs['mots_cles']);
|
|
|
27 |
|
936 |
aurelien |
28 |
$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');
|
958 |
aurelien |
29 |
$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$ids_obs, $mots_cles);
|
930 |
aurelien |
30 |
|
936 |
aurelien |
31 |
return $liaison_mot_cle;
|
416 |
aurelien |
32 |
}
|
|
|
33 |
|
819 |
jpm |
34 |
public function deleteElement($uid){
|
|
|
35 |
// Controle detournement utilisateur
|
930 |
aurelien |
36 |
$this->controleUtilisateur($uid[0]);
|
|
|
37 |
|
1872 |
raphael |
38 |
if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || ! self::estUnIdentifiantMotCle($uid[2])) {
|
|
|
39 |
return FALSE;
|
930 |
aurelien |
40 |
}
|
1872 |
raphael |
41 |
return self::unlinkKeyword($this->config, 'obs', explode(',',$uid[1]), $uid[0], $uid[2]);
|
|
|
42 |
}
|
|
|
43 |
|
|
|
44 |
static function unlinkKeyword($config, $type /* = obs|images */, Array $obsIds, $uid, $keywordIds /* comma-separated string */) {
|
|
|
45 |
if($type != 'obs' && $type != 'images') return FALSE;
|
819 |
jpm |
46 |
|
1872 |
raphael |
47 |
$gestionnaire_mots_cles = new LiaisonMotsCles($config, $type);
|
|
|
48 |
$mots_cles = explode(',', LiaisonMotsCles::nettoyerMotsCles($keywordIds));
|
|
|
49 |
return $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($uid, $obsIds, $mots_cles);
|
|
|
50 |
}
|
416 |
aurelien |
51 |
|
1872 |
raphael |
52 |
static function estUnIdentifiantMotCle($chaine) {
|
|
|
53 |
return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
|
769 |
aurelien |
54 |
}
|
936 |
aurelien |
55 |
|
416 |
aurelien |
56 |
}
|