Subversion Repositories eFlore/Applications.cel

Rev

Rev 1840 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1840 Rev 1914
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
-
 
3
/**
2
/**
4
* PHP Version 5
-
 
5
*
-
 
6
* @category  PHP
-
 
7
* @package   jrest
3
 * @package   jrest
8
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
4
 * @author    Aurélien Peronnet <aurelien@tela-botania.org>
9
* @copyright 2010 Tela-Botanica
5
 * @copyright 2010, 2013 Tela-Botanica
10
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
6
 * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @version   SVN: <svn_id>
-
 
12
* @link      /doc/jrest/
-
 
13
*/
-
 
14
 
-
 
15
/**
-
 
16
* in : utf8
-
 
17
* out : utf8
-
 
18
* 
7
 *
19
 * Service de liaisons de mots clés à des observations.
8
 * Service de liaisons de mots clés à des observations.
20
 * Le service lie une ou plusieurs mots clés à une ou plusieurs observations
9
 * Le service lie une ou plusieurs mots clés à une ou plusieurs observations
21
*
10
 */
22
*/
11
 
23
class InventoryKeyWordObsLink extends Cel {
12
class InventoryKeyWordObsLink extends Cel {
24
			
13
			
25
	public function getElement($uid) {
-
 
26
	
-
 
27
	}
14
	public function getElement($uid) { }
28
	
15
	
29
	public function createElement($pairs) {
16
	public function createElement($pairs) {
30
		
17
		
31
		// Controle detournement utilisateur
18
		// Controle detournement utilisateur
32
		$this->controleUtilisateur($pairs['ce_utilisateur']);
19
		$this->controleUtilisateur($pairs['ce_utilisateur']);
33
	
20
	
34
		if (!isset($pairs['mots_cles']) || !isset($pairs['observations']) || !isset($pairs['ce_utilisateur'])) {
21
		if (!isset($pairs['mots_cles']) || !isset($pairs['observations']) || !isset($pairs['ce_utilisateur'])) {
35
			return;
22
			return;
36
		}
23
		}
37
		
24
		
38
		$ids_obs = explode(',',$pairs['observations']);
25
		$ids_obs = explode(',',$pairs['observations']);
39
		$mots_cles = explode(',',$pairs['mots_cles']);
26
		$mots_cles = explode(',',$pairs['mots_cles']);
40
		
27
		
41
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');
28
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');
42
		$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$ids_obs, $mots_cles);
29
		$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$ids_obs, $mots_cles);
43
				
30
				
44
		return $liaison_mot_cle;
31
		return $liaison_mot_cle;
45
	}
32
	}
46
 
33
 
47
	public function deleteElement($uid){
34
	public function deleteElement($uid){
48
		$retour = false;
-
 
49
		
-
 
50
		// Controle detournement utilisateur
35
		// Controle detournement utilisateur
51
		$this->controleUtilisateur($uid[0]);
36
		$this->controleUtilisateur($uid[0]);
52
	
37
	
53
		if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || !$this->estUnIdentifiantMotCle($uid[2])) {
38
		if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || ! self::estUnIdentifiantMotCle($uid[2])) {
54
			return;
39
			return FALSE;
55
		}
-
 
56
		
-
 
57
		$ids_obs = explode(',',$uid[1]);
-
 
58
		$id_utilisateur = $uid[0];
-
 
59
		
-
 
60
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');
-
 
61
		
40
		}
62
		$mots_cles = $gestionnaire_mots_cles->nettoyerMotsCles($uid[2]);
-
 
63
		$mots_cles = explode(',',$mots_cles);
41
		return self::unlinkKeyword($this->config, 'obs', explode(',',$uid[1]), $uid[0], $uid[2]);
64
		
-
 
-
 
42
	}
-
 
43
 
-
 
44
	static function unlinkKeyword($config, $type /* = obs|images */, Array $obsIds, $uid, $keywordIds /* comma-separated string */) {
65
		$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_obs, $mots_cles);
45
		if($type != 'obs' && $type != 'images') return FALSE;
-
 
46
		
-
 
47
		$gestionnaire_mots_cles = new LiaisonMotsCles($config, $type);
66
 
48
		$mots_cles = explode(',', LiaisonMotsCles::nettoyerMotsCles($keywordIds));
67
		return $suppression_liaison_mot_cle;
49
		return $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($uid, $obsIds, $mots_cles);
68
	}
50
	}
69
 
51
 
-
 
52
	static function estUnIdentifiantMotCle($chaine) {
70
	private function estUnIdentifiantMotCle($chaine) {
53
		return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
71
		return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
-
 
72
	}	
54
	}
73
}
55
 
74
?>
56
}