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