Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 416 Rev 631
1
<?php
1
<?php
2
 
2
 
3
/**
3
/**
4
 
4
 
5
 Aurelien Peronnet aurelienperonnet@gmail.com 2008
5
 Aurelien Peronnet aurelienperonnet@gmail.com 2008
6
 
6
 
7
 Ce logiciel est r?gi par la licence CeCILL soumise au droit fran?ais et
7
 Ce logiciel est r?gi par la licence CeCILL soumise au droit fran?ais et
8
 respectant les principes de diffusion des logiciels libres. Vous pouvez
8
 respectant les principes de diffusion des logiciels libres. Vous pouvez
9
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
9
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
10
 de la licence CeCILL telle que diffus?e par le CEA, le CNRS et l'INRIA
10
 de la licence CeCILL telle que diffus?e par le CEA, le CNRS et l'INRIA
11
 sur le site "http://www.cecill.info".
11
 sur le site "http://www.cecill.info".
12
 En contrepartie de l'accessibilit? au code source et des droits de copie,
12
 En contrepartie de l'accessibilit? au code source et des droits de copie,
13
 de modification et de redistribution accord?s par cette licence, il n'est
13
 de modification et de redistribution accord?s par cette licence, il n'est
14
 offert aux utilisateurs qu'une garantie limit?e.  Pour les m?mes raisons,
14
 offert aux utilisateurs qu'une garantie limit?e.  Pour les m?mes raisons,
15
 seule une responsabilit? restreinte p?se sur l'auteur du programme,  le
15
 seule une responsabilit? restreinte p?se sur l'auteur du programme,  le
16
 titulaire des droits patrimoniaux et les conc?dants successifs.
16
 titulaire des droits patrimoniaux et les conc?dants successifs.
17
 
17
 
18
 A cet ?gard  l'attention de l'utilisateur est attir?e sur les risques
18
 A cet ?gard  l'attention de l'utilisateur est attir?e sur les risques
19
 associ?s au chargement,  ? l'utilisation,  ? la modification et/ou au
19
 associ?s au chargement,  ? l'utilisation,  ? la modification et/ou au
20
 d?veloppement et ? la reproduction du logiciel par l'utilisateur ?tant
20
 d?veloppement et ? la reproduction du logiciel par l'utilisateur ?tant
21
 donn? sa sp?cificit? de logiciel libre, qui peut le rendre complexe ?
21
 donn? sa sp?cificit? de logiciel libre, qui peut le rendre complexe ?
22
 manipuler et qui le r?serve donc ? des d?veloppeurs et des professionnels
22
 manipuler et qui le r?serve donc ? des d?veloppeurs et des professionnels
23
 avertis poss?dant  des  connaissances  informatiques approfondies.  Les
23
 avertis poss?dant  des  connaissances  informatiques approfondies.  Les
24
 utilisateurs sont donc invit?s ? charger  et  tester  l'ad?quation  du
24
 utilisateurs sont donc invit?s ? charger  et  tester  l'ad?quation  du
25
 logiciel ? leurs besoins dans des conditions permettant d'assurer la
25
 logiciel ? leurs besoins dans des conditions permettant d'assurer la
26
 s?curit? de leurs syst?mes et ou de leurs donn?es et, plus g?n?ralement,
26
 s?curit? de leurs syst?mes et ou de leurs donn?es et, plus g?n?ralement,
27
 ? l'utiliser et l'exploiter dans les m?mes conditions de s?curit?.
27
 ? l'utiliser et l'exploiter dans les m?mes conditions de s?curit?.
28
 
28
 
29
 Le fait que vous puissiez acc?der ? cet en-t?te signifie que vous avez
29
 Le fait que vous puissiez acc?der ? cet en-t?te signifie que vous avez
30
 pris connaissance de la licence CeCILL, et que vous en avez accept? les
30
 pris connaissance de la licence CeCILL, et que vous en avez accept? les
31
 termes.
31
 termes.
32
 
32
 
33
 */
33
 */
34
 
34
 
35
 
35
 
36
// in : utf8
36
// in : utf8
37
// out : utf8
37
// out : utf8
38
/*
38
/*
39
 * InventoryImageLink.php
39
 * InventoryImageLink.php
40
 *
40
 *
41
 * Cas d'utilisation :
41
 * Cas d'utilisation :
42
 * Service de liaisons d'images à des observations
42
 * Service de liaisons d'images à des observations
43
 *
43
 *
44
 * 2: Le service lie une ou plusieurs images à une ou plusieurs observations
44
 * 2: Le service lie une ou plusieurs images à une ou plusieurs observations
45
 * 3: Le service renvoie les observations liées à une image
45
 * 3: Le service renvoie les observations liées à une image
46
 */
46
 */
47
 
47
 
48
 Class InventoryKeyWordObsLink extends DBAccessor {
48
 Class InventoryKeyWordObsLink extends DBAccessor {
49
 
49
 
50
	var $config;
50
	var $config;
51
 
51
 
52
	function InventoryKeyWordObsLink($config) {
52
	function InventoryKeyWordObsLink($config) {
53
 
53
 
54
		$this->config=$config;
54
		$this->config=$config;
55
	}
55
	}
56
 
56
 
57
	// met à jour les associations entre images et observations
57
	// met à jour les associations entre images et observations
58
	function updateElement($uid,$pairs)
58
	function updateElement($uid,$pairs)
59
	{
59
	{
60
		// Controle detournement utilisateur
60
		// Controle detournement utilisateur
61
	    session_start();
61
	    session_start();
62
	 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {
62
	 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {
63
	 		print "Acces interdit";
63
	 		print "Acces interdit";
64
 			return;
64
 			return;
65
     	}
65
     	}
66
 
66
 
67
     	$DB=$this->connectDB($this->config,'database_cel');
67
     	$DB=$this->connectDB($this->config,'database_cel');
68
 
68
 
69
     	if(!isset($pairs['mots_cles']) || !isset($uid[1])) {
69
     	if(!isset($pairs['mots_cles']) || !isset($uid[1])) {
70
     		return;
70
     		return;
71
     	}
71
     	}
72
 
72
 
73
     	if(isset($pairs['action'])) {
73
     	if(isset($pairs['action'])) {
74
     		$action = $pairs['action'];
74
     		$action = $pairs['action'];
75
     	}
75
     	}
76
 
76
 
77
     	$valeur = $pairs['mots_cles'];
77
     	$valeur = $pairs['mots_cles'];
78
 
78
     	
-
 
79
     	$valeur = str_replace('null','',$valeur);
79
     	$valeur = trim($valeur, "null");
80
     	$valeur = trim($valeur, "null");
80
       	$valeur = trim($valeur, ";;");
81
       	$valeur = trim($valeur, ";;");
81
 
82
 
82
     	$query="UPDATE cel_inventory SET " ;
83
     	$query="UPDATE cel_inventory SET " ;
83
		$query .= "mots_cles = CONCAT(IFNULL(mots_cles,''),'".$DB->escapeSimple($valeur).";') ";
84
		$query .= "mots_cles = CONCAT(IFNULL(mots_cles,''),'".$DB->escapeSimple($valeur).";') ";
84
		$query .= "WHERE ordre IN (".$uid[1].") AND identifiant = '".$DB->escapeSimple($uid[0])."'";
85
		$query .= "WHERE ordre IN (".$uid[1].") AND identifiant = '".$DB->escapeSimple($uid[0])."'";
85
 
86
 
86
		echo $query;
87
		echo $query;
87
 
88
 
88
		$res =& $DB->query($query);
89
		$res =& $DB->query($query);
89
 
90
 
90
        if (PEAR::isError($res)) {
91
        if (PEAR::isError($res)) {
91
        	$this->logger("CEL_bugs","Erreur d'ajout de plusieurs observations :".$res->getMessage()." ".$query);
92
        	$this->logger("CEL_bugs","Erreur d'ajout de plusieurs observations :".$res->getMessage()." ".$query);
92
        	die($res->getMessage());
93
        	die($res->getMessage());
93
        }
94
        }
94
        echo $query;
95
        echo $query;
95
 
96
 
96
        return	true;
97
        return	true;
97
	}
98
	}
98
 
99
 
99
	function deleteElement($uid){
100
	function deleteElement($uid){
100
 
101
 
101
	 	// Controle detournement utilisateur
102
	 	// Controle detournement utilisateur
102
	    session_start();
103
	    session_start();
103
	 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {
104
	 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {
104
	 		print "Acces interdit";
105
	 		print "Acces interdit";
105
 			return;
106
 			return;
106
     	}
107
     	}
107
 
108
 
108
     	$DB=$this->connectDB($this->config,'database_cel');
109
     	$DB=$this->connectDB($this->config,'database_cel');
109
 
110
 
110
     	if(!isset($uid[2]) || !isset($uid[1])) {
111
     	if(!isset($uid[2]) || !isset($uid[1])) {
111
     		echo 'pas de mots clés';
112
     		echo 'pas de mots clés';
112
     		return;
113
     		return;
113
     	}
114
     	}
114
 
115
 
115
     	$valeur = $uid[2] ;
116
     	$valeur = $uid[2] ;
116
 
117
 
117
     	$valeur = trim($valeur, "null");
118
     	$valeur = trim($valeur, "null");
118
       	$valeur = trim($valeur, ";;");
119
       	$valeur = trim($valeur, ";;");
119
 
120
 
120
     	$query="UPDATE cel_inventory SET " ;
121
     	$query="UPDATE cel_inventory SET " ;
121
		$chaine = $DB->escapeSimple($valeur);
122
		$chaine = $DB->escapeSimple($valeur);
122
 
123
 
123
		$query .= "mots_cles = REPLACE(REPLACE(mots_cles,'".$chaine."',''),';;',';') ";
124
		$query .= "mots_cles = REPLACE(REPLACE(mots_cles,'".$chaine."',''),';;',';') ";
124
		$query .= "WHERE ordre IN (".$uid[1].") AND identifiant = '".$DB->escapeSimple($uid[0])."'";
125
		$query .= "WHERE ordre IN (".$uid[1].") AND identifiant = '".$DB->escapeSimple($uid[0])."'";
125
 
126
 
126
		$res =& $DB->query($query);
127
		$res =& $DB->query($query);
127
 
128
 
128
        if (PEAR::isError($res)) {
129
        if (PEAR::isError($res)) {
129
        	$this->logger("CEL_bugs","Erreur de suppression des mots clés de plusieurs observations :".$res->getMessage()." ".$query);
130
        	$this->logger("CEL_bugs","Erreur de suppression des mots clés de plusieurs observations :".$res->getMessage()." ".$query);
130
        	die($res->getMessage());
131
        	die($res->getMessage());
131
        }
132
        }
132
 
133
 
133
        return true;
134
        return true;
134
 
135
 
135
 
136
 
136
	}
137
	}
137
 
138
 
138
}
139
}
139
?>
140
?>