Subversion Repositories eFlore/Applications.coel-consultation

Rev

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

Rev 195 Rev 221
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * DAO des Collections pour le module Collections.
4
 * DAO des Collections pour le module Collections.
5
 *
5
 *
6
 * @package	Collection
6
 * @package	Collection
7
 * @category	php 5.2
7
 * @category	php 5.2
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright	2010 Tela-Botanica
9
 * @copyright	2010 Tela-Botanica
10
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version	SVN: $Id: CollectionDao.php 195 2014-01-22 13:29:20Z aurelien $
12
 * @version	SVN: $Id: CollectionDao.php 221 2014-06-19 08:51:27Z aurelien $
13
 *
13
 *
14
 */
14
 */
15
class CollectionDao extends Dao {
15
class CollectionDao extends Dao {
16
	const SERVICE_COLLECTION = 'CoelCollection';
16
	const SERVICE_COLLECTION = 'CoelCollection';
17
	const SERVICE_COLLECTION_A_PERSONNE = 'CoelCollectionAPersonne';
17
	const SERVICE_COLLECTION_A_PERSONNE = 'CoelCollectionAPersonne';
18
	const SERVICE_COLLECTION_A_PUBLICATION = 'CoelCollectionAPublication';
18
	const SERVICE_COLLECTION_A_PUBLICATION = 'CoelCollectionAPublication';
19
	const SERVICE_COLLECTION_A_COMMENTAIRE = 'CoelCollectionACommentaire';
19
	const SERVICE_COLLECTION_A_COMMENTAIRE = 'CoelCollectionACommentaire';
-
 
20
	const ROLE_EXPERT = '30763';
-
 
21
	const ROLE_CONTRIBUTEUR = '2134';
20
	
22
	
21
	/**
23
	/**
22
	 * Retourne l'ensemble des information sur une collection.
24
	 * Retourne l'ensemble des information sur une collection.
23
	 * 
25
	 * 
24
	 * @param integer l'id de la collection.
26
	 * @param integer l'id de la collection.
25
	 * @return array un tableau contenant les informations sur la collection.
27
	 * @return array un tableau contenant les informations sur la collection.
26
	 */
28
	 */
27
	public function getCollection($id) {
29
	public function getCollection($id) {
28
		$url = $this->url_jrest.self::SERVICE_COLLECTION."/$id/*";
30
		$url = $this->url_jrest.self::SERVICE_COLLECTION."/$id/*";
29
		$json = $this->envoyerRequeteConsultation($url);
31
		$json = $this->envoyerRequeteConsultation($url);
30
		$donnees = json_decode($json, true);
32
		$donnees = json_decode($json, true);
31
		return $donnees['collections'];
33
		return $donnees['collections'];
32
	}
34
	}
33
	
35
	
34
	/**
36
	/**
35
	 * Retourne le nombre de collections correspondant à un id strucutre précis.
37
	 * Retourne le nombre de collections correspondant à un id strucutre précis.
36
	 * 
38
	 * 
37
	 * @param integer l'id d'une structure.
39
	 * @param integer l'id d'une structure.
38
	 * @return array un tableau contenant les collections correspondant à l'id structure.
40
	 * @return array un tableau contenant les collections correspondant à l'id structure.
39
	 */
41
	 */
40
	public function getNbreParIdStructure($id_structure) {
42
	public function getNbreParIdStructure($id_structure) {
41
		$url = $this->url_jrest.self::SERVICE_COLLECTION."/NbreParIdStructure/$id_structure";
43
		$url = $this->url_jrest.self::SERVICE_COLLECTION."/NbreParIdStructure/$id_structure";
42
		$json = $this->envoyerRequeteConsultation($url);
44
		$json = $this->envoyerRequeteConsultation($url);
43
		$donnees = json_decode($json, true);
45
		$donnees = json_decode($json, true);
44
		return $donnees;
46
		return $donnees;
45
	}
47
	}
46
	
48
	
47
	/**
49
	/**
48
	 * Retourne les collection correspondant à un id strucutre précis.
50
	 * Retourne les collection correspondant à un id strucutre précis.
49
	 * 
51
	 * 
50
	 * @param integer l'id d'une structure.
52
	 * @param integer l'id d'une structure.
51
	 * @return array un tableau contenant les collections correspondant à l'id structure.
53
	 * @return array un tableau contenant les collections correspondant à l'id structure.
52
	 */
54
	 */
53
	public function getParIdStructure($id_structure) {
55
	public function getParIdStructure($id_structure) {
54
		$url = $this->url_jrest.self::SERVICE_COLLECTION."/ParIdStructure/$id_structure";
56
		$url = $this->url_jrest.self::SERVICE_COLLECTION."/ParIdStructure/$id_structure";
55
		$json = $this->envoyerRequeteConsultation($url);
57
		$json = $this->envoyerRequeteConsultation($url);
56
		$donnees = json_decode($json, true);
58
		$donnees = json_decode($json, true);
57
		return $donnees;
59
		return $donnees;
58
	}
60
	}
59
	
61
	
60
	/**
62
	/**
61
	 * Retourne l'ensemble des personnes liées à une collection.
63
	 * Retourne l'ensemble des personnes liées à une collection.
62
	 * 
64
	 * 
63
	 * @param integer l'id de la collection.
65
	 * @param integer l'id de la collection.
64
	 * @return array un tableau contenant les informations sur les personnes liées à la collection.
66
	 * @return array un tableau contenant les informations sur les personnes liées à la collection.
65
	 */
67
	 */
66
	public function getPersonnesLiees($id_collection) {
68
	public function getPersonnesLiees($id_collection) {
67
		$this->addOrdre('cp_nom');
69
		$this->addOrdre('cp_nom');
68
		$donnees = $this->getCollectionAPersonne($id_collection);
70
		$donnees = $this->getCollectionAPersonne($id_collection);
69
		return $donnees['collectionsAPersonne'];
71
		return $donnees['collectionsAPersonne'];
70
	}
72
	}
-
 
73
	
-
 
74
	public function getPersonnesLieesExpertes($id_collection) {
-
 
75
		$this->addOrdre('cp_nom');
-
 
76
		$donnees = $this->getCollectionAPersonne($id_collection, self::ROLE_EXPERT);
-
 
77
		return $donnees['collectionsAPersonne'];
-
 
78
	}
-
 
79
	
-
 
80
	public function getPersonnesLieesContributrices($id_collection) {
-
 
81
		$this->addOrdre('cp_nom');
-
 
82
		$donnees = $this->getCollectionAPersonne($id_collection, self::ROLE_CONTRIBUTEUR);
-
 
83
		return $donnees['collectionsAPersonne'];
-
 
84
	}
71
	
85
	
72
	/**
86
	/**
73
	 * Retourne le nombre de personnes liées à une collection.
87
	 * Retourne le nombre de personnes liées à une collection.
74
	 * 
88
	 * 
75
	 * @param integer l'id de la collection.
89
	 * @param integer l'id de la collection.
76
	 * @return integer le nombre de personnes liées à la collection.
90
	 * @return integer le nombre de personnes liées à la collection.
77
	 */
91
	 */
78
	public function getNbrePersonnesLiees($id_collection) {
92
	public function getNbrePersonnesLiees($id_collection) {
79
		$donnees = $this->getCollectionAPersonne($id_collection);
93
		$donnees = $this->getCollectionAPersonne($id_collection);
80
		return $donnees['nbElements'];
94
		return $donnees['nbElements'];
81
	}
95
	}
82
	
96
	
83
	private function getCollectionAPersonne($id_collection) {
97
	private function getCollectionAPersonne($id_collection, $role = null) {
-
 
98
		$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PERSONNE."/$id_collection";
84
		$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PERSONNE."/$id_collection";
99
		$url .= ($role != null) ? '/'.$role : '';
85
		$json = $this->envoyerRequeteConsultation($url);
100
		$json = $this->envoyerRequeteConsultation($url);
86
		$donnees = json_decode($json, true);
101
		$donnees = json_decode($json, true);
87
		return $donnees;
102
		return $donnees;
88
	}
103
	}
89
	
104
	
90
	/**
105
	/**
91
	 * Retourne l'ensemble des publications liées à une collection.
106
	 * Retourne l'ensemble des publications liées à une collection.
92
	 * 
107
	 * 
93
	 * @param integer l'id de la collection.
108
	 * @param integer l'id de la collection.
94
	 * @return array un tableau contenant les informations sur les publications liées à la collection.
109
	 * @return array un tableau contenant les informations sur les publications liées à la collection.
95
	 */
110
	 */
96
	public function getPublicationsLiees($id_collection) {
111
	public function getPublicationsLiees($id_collection) {
97
		$donnees = $this->getCollectionAPublication($id_collection);
112
		$donnees = $this->getCollectionAPublication($id_collection);
98
		return $donnees['collectionsAPublication'];
113
		return $donnees['collectionsAPublication'];
99
	}
114
	}
-
 
115
	
-
 
116
	/**
-
 
117
	 * Retourne l'ensemble des publications liées à une collection.
-
 
118
	 *
-
 
119
	 * @param integer l'id de la collection.
-
 
120
	 * @return array un tableau contenant les informations sur les publications liées à la collection.
-
 
121
	 */
-
 
122
	public function getPublicationsSourcesLiees($id_collection) {
-
 
123
		$donnees = $this->getCollectionAPublication($id_collection, "1");
-
 
124
		return $donnees['collectionsAPublication'];
-
 
125
	}
100
	
126
	
101
	/**
127
	/**
102
	 * Retourne le nombre de publications liées à une collection.
128
	 * Retourne le nombre de publications liées à une collection.
103
	 * 
129
	 * 
104
	 * @param integer l'id de la collection.
130
	 * @param integer l'id de la collection.
105
	 * @return integer le nombre de publications liées à la collection.
131
	 * @return integer le nombre de publications liées à la collection.
106
	 */
132
	 */
107
	public function getNbrePublicationsLiees($id_collection) {
133
	public function getNbrePublicationsLiees($id_collection) {
108
		$donnees = $this->getCollectionAPublication($id_collection);
134
		$donnees = $this->getCollectionAPublication($id_collection);
109
		return $donnees['nbElements'];
135
		return $donnees['nbElements'];
110
	}
136
	}
111
	
137
	
112
	private function getCollectionAPublication($id_collection) {
138
	private function getCollectionAPublication($id_collection, $source = null) {
-
 
139
		$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PUBLICATION."/$id_collection";
113
		$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PUBLICATION."/$id_collection";
140
		$url .= ($source != null) ? '/'.$source : '';
114
		$json = $this->envoyerRequeteConsultation($url);
141
		$json = $this->envoyerRequeteConsultation($url);
115
		$donnees = json_decode($json, true);
142
		$donnees = json_decode($json, true);
116
		return $donnees;
143
		return $donnees;
117
	}
144
	}
118
	
145
	
119
	/**
146
	/**
120
	 * Retourne l'ensemble des commentaires publics liés à une collection.
147
	 * Retourne l'ensemble des commentaires publics liés à une collection.
121
	 * 
148
	 * 
122
	 * @param integer l'id de la collection.
149
	 * @param integer l'id de la collection.
123
	 * @return array un tableau contenant les informations sur les publications liées à la collection.
150
	 * @return array un tableau contenant les informations sur les publications liées à la collection.
124
	 */
151
	 */
125
	public function getCommentairesLies($id_collection) {
152
	public function getCommentairesLies($id_collection) {
126
		$donnees = $this->getCollectionACommentaire($id_collection);
153
		$donnees = $this->getCollectionACommentaire($id_collection);
127
		return $donnees['collectionsACommentaire'];
154
		return $donnees['collectionsACommentaire'];
128
	}
155
	}
129
	
156
	
130
	/**
157
	/**
131
	 * Retourne le nombre de commentaires publics liés à une collection.
158
	 * Retourne le nombre de commentaires publics liés à une collection.
132
	 * 
159
	 * 
133
	 * @param integer l'id de la collection.
160
	 * @param integer l'id de la collection.
134
	 * @return integer le nombre de commentaires publics liés à la collection.
161
	 * @return integer le nombre de commentaires publics liés à la collection.
135
	 */
162
	 */
136
	public function getNbreCommentairesLies($id_collection) {
163
	public function getNbreCommentairesLies($id_collection) {
137
		$donnees = $this->getCollectionACommentaire($id_collection);
164
		$donnees = $this->getCollectionACommentaire($id_collection);
138
		return $donnees['nbElements'];
165
		return $donnees['nbElements'];
139
	}
166
	}
140
	
167
	
141
	private function getCollectionACommentaire($id_collection) {
168
	private function getCollectionACommentaire($id_collection) {
142
		$commentaire_public = '1';
169
		$commentaire_public = '1';
143
		$url = $this->url_jrest.self::SERVICE_COLLECTION_A_COMMENTAIRE."/$id_collection/$commentaire_public";
170
		$url = $this->url_jrest.self::SERVICE_COLLECTION_A_COMMENTAIRE."/$id_collection/$commentaire_public";
144
		$json = $this->envoyerRequeteConsultation($url);
171
		$json = $this->envoyerRequeteConsultation($url);
145
		$donnees = json_decode($json, true);
172
		$donnees = json_decode($json, true);
146
		return $donnees;
173
		return $donnees;
147
	}
174
	}
148
}
175
}
149
?>
176
?>