Subversion Repositories eFlore/Applications.cel

Rev

Rev 958 | Rev 996 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
416 aurelien 1
<?php
819 jpm 2
// declare(encoding='UTF-8');
416 aurelien 3
/**
936 aurelien 4
* PHP Version 5
5
*
6
* @category  PHP
7
* @package   jrest
8
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
9
* @copyright 2010 Tela-Botanica
10
* @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
*
930 aurelien 19
 * Service de liaisons de mots clés à des observations.
20
 * Le service lie une ou plusieurs mots clés à une ou plusieurs observations
936 aurelien 21
*
22
*/
819 jpm 23
class InventoryKeyWordObsLink extends Cel {
936 aurelien 24
 
819 jpm 25
	public function getElement($uid) {
26
 
27
	}
930 aurelien 28
 
29
	public function createElement($pairs) {
30
 
416 aurelien 31
		// Controle detournement utilisateur
819 jpm 32
		session_start();
930 aurelien 33
		$this->controleUtilisateur($pairs['ce_utilisateur']);
819 jpm 34
 
930 aurelien 35
		if (!isset($pairs['mots_cles']) || !isset($pairs['observations']) || !isset($pairs['ce_utilisateur'])) {
819 jpm 36
			return;
37
		}
930 aurelien 38
 
39
		$observations = explode(',',$pairs['observations']);
40
		$mots_cles = explode(',',$pairs['mots_cles']);
41
 
42
		$gestionnaire_observation = new RechercheObservation($this->config);
43
		$ids_obs = $gestionnaire_observation->obtenirIdObservationsPourOrdre($pairs['ce_utilisateur'],$observations);
936 aurelien 44
 
45
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');
958 aurelien 46
		$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$ids_obs, $mots_cles);
930 aurelien 47
 
936 aurelien 48
		return $liaison_mot_cle;
416 aurelien 49
	}
50
 
819 jpm 51
	public function deleteElement($uid){
52
		$retour = false;
53
 
54
		// Controle detournement utilisateur
55
		session_start();
930 aurelien 56
		$this->controleUtilisateur($uid[0]);
57
 
936 aurelien 58
		if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || !$this->estUnIdentifiantMotCle($uid[2])) {
930 aurelien 59
			return;
60
		}
819 jpm 61
 
936 aurelien 62
		$ordre_observations = explode(',',$uid[1]);
930 aurelien 63
		$id_utilisateur = $uid[0];
64
 
65
		$gestionnaire_observation = new RechercheObservation($this->config);
66
		$ids_obs = $gestionnaire_observation->obtenirIdObservationsPourOrdre($id_utilisateur,$ordre_observations);
67
 
936 aurelien 68
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');
958 aurelien 69
 
70
		$mots_cles = $gestionnaire_mots_cles->nettoyerMotsCles($uid[2]);
71
		$mots_cles = explode(',',$mots_cles);
72
 
970 aurelien 73
		$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_obs, $mots_cles);
416 aurelien 74
 
936 aurelien 75
		return $suppression_liaison_mot_cle;
769 aurelien 76
	}
936 aurelien 77
 
769 aurelien 78
	private function estUnIdentifiantMotCle($chaine) {
819 jpm 79
		return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
936 aurelien 80
	}
416 aurelien 81
}
82
?>