Subversion Repositories eFlore/Applications.cel

Rev

Rev 996 | Rev 1872 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 996 Rev 1152
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
-
 
3
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
3
/**
4
/**
4
* PHP Version 5
5
* PHP Version 5
5
*
6
*
6
* @category  PHP
7
* @category  PHP
7
* @package   jrest
8
* @package   jrest
8
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
9
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
9
* @copyright 2010 Tela-Botanica
10
* @copyright 2010 Tela-Botanica
10
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @version   SVN: <svn_id>
12
* @version   SVN: <svn_id>
12
* @link      /doc/jrest/
13
* @link      /doc/jrest/
13
*/
14
*/
14
 
15
 
15
/**
16
/**
16
* in : utf8
17
* in : utf8
17
* out : utf8
18
* out : utf8
18
* 
19
* 
19
 * Service de liaisons de mots clés à des images.
20
 * Service de liaisons de mots clés à des images.
20
 * Le service lie une ou plusieurs mots clés à une ou plusieurs images
21
 * Le service lie une ou plusieurs mots clés à une ou plusieurs images
21
*
22
*
22
*/
23
*/
23
class InventoryKeyWordImageLink extends Cel {
24
class InventoryKeyWordImageLink extends Cel {
24
			
25
			
25
	public function getElement($uid) {
26
	public function getElement($uid) {
26
	
27
	
27
	}
28
	}
28
	
29
	
29
	public function createElement($pairs) {
30
	public function createElement($pairs) {
30
		
31
		
31
		// Controle detournement utilisateur
32
		// Controle detournement utilisateur
32
		$this->controleUtilisateur($pairs['ce_utilisateur']);
33
		$this->controleUtilisateur($pairs['ce_utilisateur']);
33
	
34
	
34
		if (!isset($pairs['mots_cles']) || !isset($pairs['images']) || !isset($pairs['ce_utilisateur'])) {
35
		if (!isset($pairs['mots_cles']) || !isset($pairs['images']) || !isset($pairs['ce_utilisateur'])) {
35
			return;
36
			return;
36
		}
37
		}
37
		
38
		
38
		$pairs['images'] = rtrim($pairs['images'],',');
39
		$pairs['images'] = rtrim($pairs['images'],',');
39
		$id_images = explode(',',$pairs['images']);
40
		$id_images = explode(',',$pairs['images']);
40
		
41
		
41
		$pairs['mots_cles'] = rtrim($pairs['mots_cles'],',');
42
		$pairs['mots_cles'] = rtrim($pairs['mots_cles'],',');
42
		$mots_cles = explode(',',$pairs['mots_cles']);
43
		$mots_cles = explode(',',$pairs['mots_cles']);
43
		
44
		
44
		// Pour le moment on ne peut que supprimer les mots clés et ajouter les nouveaux à cause du fonctionnement
45
		// Pour le moment on ne peut que supprimer les mots clés et ajouter les nouveaux à cause du fonctionnement
45
		// de l'arbre de mots clés des images
46
		// de l'arbre de mots clés des images
46
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'images');
47
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'images');
47
		$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerToutesLiaisonsPourIdImageOuObs($pairs['ce_utilisateur'], $id_images);
48
		$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerToutesLiaisonsPourIdImageOuObs($pairs['ce_utilisateur'], $id_images);
48
		$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$id_images, $mots_cles);
49
		$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$id_images, $mots_cles);
49
				
50
				
50
		return $liaison_mot_cle;
51
		return $liaison_mot_cle;
51
	}
52
	}
52
 
53
 
53
	public function deleteElement($uid){
54
	public function deleteElement($uid){
54
		$retour = false;
55
		$retour = false;
55
		
56
		
56
		// Controle detournement utilisateur
57
		// Controle detournement utilisateur
57
		$this->controleUtilisateur($uid[0]);
58
		$this->controleUtilisateur($uid[0]);
58
	
59
	
59
		if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || !$this->estUnIdentifiantMotCle($uid[2])) {
60
		if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || !$this->estUnIdentifiantMotCle($uid[2])) {
60
			return;
61
			return;
61
		}
62
		}
62
		
63
		
63
		$id_images = explode(',',$uid[1]);
64
		$id_images = explode(',',$uid[1]);
64
		$id_utilisateur = $uid[0];
65
		$id_utilisateur = $uid[0];
65
				
66
				
66
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'images');
67
		$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'images');
67
		
68
		
68
		$mots_cles = $gestionnaire_mots_cles->nettoyerMotsCles($uid[2]);
69
		$mots_cles = $gestionnaire_mots_cles->nettoyerMotsCles($uid[2]);
69
		$mots_cles = explode(',',$mots_cles);
70
		$mots_cles = explode(',',$mots_cles);
70
		
71
		
71
		$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $id_images, $mots_cles);
72
		$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $id_images, $mots_cles);
72
 
73
 
73
		return $suppression_liaison_mot_cle;
74
		return $suppression_liaison_mot_cle;
74
	}
75
	}
75
 
76
 
76
	private function estUnIdentifiantMotCle($chaine) {
77
	private function estUnIdentifiantMotCle($chaine) {
77
		return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
78
		return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
78
	}	
79
	}	
79
}
80
}
80
?>
81
?>