4 |
jpm |
1 |
<?php
|
|
|
2 |
/*vim: set expandtab tabstop=4 shiftwidth=4: */
|
|
|
3 |
// +------------------------------------------------------------------------------------------------------+
|
|
|
4 |
// | PHP version 4.1 |
|
|
|
5 |
// +------------------------------------------------------------------------------------------------------+
|
|
|
6 |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
|
|
|
7 |
// +------------------------------------------------------------------------------------------------------+
|
|
|
8 |
// | This library is free software; you can redistribute it and/or |
|
|
|
9 |
// | modify it under the terms of the GNU Lesser General Public |
|
|
|
10 |
// | License as published by the Free Software Foundation; either |
|
|
|
11 |
// | version 2.1 of the License, or (at your option) any later version. |
|
|
|
12 |
// | |
|
|
|
13 |
// | This library is distributed in the hope that it will be useful, |
|
|
|
14 |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
15 |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
|
|
16 |
// | Lesser General Public License for more details. |
|
|
|
17 |
// | |
|
|
|
18 |
// | You should have received a copy of the GNU Lesser General Public |
|
|
|
19 |
// | License along with this library; if not, write to the Free Software |
|
|
|
20 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
|
|
21 |
// +------------------------------------------------------------------------------------------------------+
|
1289 |
neiluj |
22 |
// CVS : $Id: pap_site.fonct.php,v 1.8 2007-04-04 15:15:22 neiluj Exp $
|
4 |
jpm |
23 |
/**
|
|
|
24 |
* Bibliothèque de fonctions concernant les sites.
|
|
|
25 |
*
|
|
|
26 |
* Bibliothèque de fonctions permettant de manipuler les tables :
|
|
|
27 |
* - gen_site,
|
|
|
28 |
* - gen_site_auth,
|
|
|
29 |
* - gen_site_auth_bdd,
|
|
|
30 |
* - gen_site_auth_ldap,
|
|
|
31 |
* - gen_site_categorie,
|
|
|
32 |
* - gen_site_categorie_valeur.
|
|
|
33 |
*
|
|
|
34 |
*@package Papyrus
|
|
|
35 |
*@subpackage Fonctions
|
|
|
36 |
//Auteur original :
|
|
|
37 |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
|
|
38 |
//Autres auteurs :
|
|
|
39 |
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
|
|
|
40 |
*@copyright Tela-Botanica 2000-2004
|
1289 |
neiluj |
41 |
*@version $Revision: 1.8 $ $Date: 2007-04-04 15:15:22 $
|
4 |
jpm |
42 |
// +------------------------------------------------------------------------------------------------------+
|
|
|
43 |
*/
|
|
|
44 |
|
|
|
45 |
// +------------------------------------------------------------------------------------------------------+
|
|
|
46 |
// | LISTE de FONCTIONS |
|
|
|
47 |
// +------------------------------------------------------------------------------------------------------+
|
350 |
jpm |
48 |
|
|
|
49 |
/** Fonction GEN_lireInfoSites() - Renvoie un tableau contenant les lignes de la table gen_site
|
|
|
50 |
*
|
|
|
51 |
* Retourne un tableau contenant les lignes de la table gen_site pour les sites "classiques".
|
|
|
52 |
*
|
|
|
53 |
* @param mixed une instance de la classse Pear DB.
|
|
|
54 |
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
|
|
|
55 |
* @param integer le type de site (par défaut 102 = site "principal")
|
|
|
56 |
* @return array un tableau contenant les lignes de la table gen_site pour les sites "principaux".
|
|
|
57 |
*/
|
|
|
58 |
function GEN_lireInfoSites(&$bdd, $mode = DB_FETCHMODE_OBJECT, $type_site = 102)
|
|
|
59 |
{
|
|
|
60 |
$aso_sites = array();
|
|
|
61 |
|
|
|
62 |
$requete = 'SELECT gen_site.* '.
|
|
|
63 |
'FROM gen_site, gen_site_relation '.
|
|
|
64 |
'WHERE gs_id_site = gsr_id_site_01 '.
|
|
|
65 |
'AND gsr_id_site_01 = gsr_id_site_02 '.
|
|
|
66 |
'AND gsr_id_valeur = '.$type_site.' '; // 102 = par défaut site "principal"
|
|
|
67 |
|
|
|
68 |
$resultat = $bdd->query($requete);
|
|
|
69 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
|
|
70 |
|
|
|
71 |
if ($resultat->numRows() > 0) {
|
|
|
72 |
while ($ligne = $resultat->fetchRow($mode)) {
|
|
|
73 |
array_push($aso_sites, $ligne);
|
|
|
74 |
}
|
|
|
75 |
}
|
|
|
76 |
$resultat->free();
|
|
|
77 |
|
|
|
78 |
return $aso_sites;
|
|
|
79 |
}
|
4 |
jpm |
80 |
|
125 |
jpm |
81 |
/** Fonction GEN_lireInfoSitePrincipal() - Renvoie un objet contenant une ligne de la table gen_site
|
4 |
jpm |
82 |
*
|
125 |
jpm |
83 |
* Retourne la ligne de la table gen_site concernant le site principal ayant pour identifiant la valeur
|
4 |
jpm |
84 |
* passée en paramètre.
|
|
|
85 |
*
|
|
|
86 |
* @param mixed une instance de la classse Pear DB.
|
350 |
jpm |
87 |
* @param string l'identifiant du site.
|
|
|
88 |
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
|
4 |
jpm |
89 |
* @return mixed un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur.
|
|
|
90 |
*/
|
350 |
jpm |
91 |
function GEN_lireInfoSitePrincipal(&$objet_pear_db, $site_id, $mode = DB_FETCHMODE_OBJECT)
|
4 |
jpm |
92 |
{
|
|
|
93 |
|
|
|
94 |
$requete = 'SELECT * '.
|
|
|
95 |
'FROM gen_site, gen_site_relation '.
|
125 |
jpm |
96 |
'WHERE gs_id_site = '.$site_id.' '.
|
4 |
jpm |
97 |
'AND gs_id_site = gsr_id_site_01 '.
|
|
|
98 |
'AND gsr_id_site_01 = gsr_id_site_02 '.
|
1289 |
neiluj |
99 |
'AND gsr_id_valeur = 102'; // 102 = site "principal"
|
4 |
jpm |
100 |
|
|
|
101 |
$resultat = $objet_pear_db->query($requete);
|
|
|
102 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
|
|
103 |
|
|
|
104 |
if ($resultat->numRows() != 1) {
|
|
|
105 |
// Impossible de récupérer des informations sur le site principal ayant pour code alpha $code_alpha
|
|
|
106 |
return false;
|
|
|
107 |
}
|
|
|
108 |
|
350 |
jpm |
109 |
$info_site_principal = $resultat->fetchRow($mode);
|
4 |
jpm |
110 |
$resultat->free();
|
|
|
111 |
|
|
|
112 |
return $info_site_principal;
|
|
|
113 |
}
|
|
|
114 |
|
125 |
jpm |
115 |
/** Fonction GEN_lireInfoSitePrincipalCodeAlpha() - Renvoie un objet contenant une ligne de la table gen_site
|
|
|
116 |
*
|
|
|
117 |
* Retourne la ligne de la table gen_site concernant le site principal ayant pour code alphanumérique la valeur
|
|
|
118 |
* passée en paramètre.
|
|
|
119 |
* Ancien nom : getProjectInfos()
|
|
|
120 |
*
|
|
|
121 |
* @param mixed une instance de la classse Pear DB.
|
|
|
122 |
* @param string le code alphanumérique du site.
|
1124 |
jp_milcent |
123 |
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du site.
|
125 |
jpm |
124 |
* @return mixed un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur.
|
|
|
125 |
*/
|
350 |
jpm |
126 |
function GEN_lireInfoSitePrincipalCodeAlpha(&$objet_pear_db, $code_alpha, $mode = DB_FETCHMODE_OBJECT)
|
125 |
jpm |
127 |
{
|
|
|
128 |
|
|
|
129 |
$requete = 'SELECT * '.
|
|
|
130 |
'FROM gen_site, gen_site_relation '.
|
|
|
131 |
'WHERE gs_code_alpha = "'.$code_alpha.'" '.
|
|
|
132 |
'AND gs_id_site = gsr_id_site_01 '.
|
|
|
133 |
'AND gsr_id_site_01 = gsr_id_site_02 '.
|
2080 |
Jean-Pasca |
134 |
'AND gsr_id_valeur = 102 '. // 102 = site "principal"
|
|
|
135 |
'AND gs_id_site NOT IN ('.// Nous tenons pas compte des sites traduits!
|
|
|
136 |
' SELECT gsr_id_site_02 '.
|
|
|
137 |
' FROM gen_site_relation '.
|
|
|
138 |
' WHERE gsr_id_site_01 != gsr_id_site_02 '.
|
|
|
139 |
' AND gsr_id_valeur = 1 )';
|
125 |
jpm |
140 |
|
|
|
141 |
$resultat = $objet_pear_db->query($requete);
|
|
|
142 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
|
|
143 |
|
|
|
144 |
if ($resultat->numRows() != 1) {
|
|
|
145 |
// Impossible de récupérer des informations sur le site principal ayant pour code alpha $code_alpha
|
|
|
146 |
return false;
|
|
|
147 |
}
|
|
|
148 |
|
350 |
jpm |
149 |
$info_site_principal = $resultat->fetchRow($mode);
|
125 |
jpm |
150 |
$resultat->free();
|
|
|
151 |
|
|
|
152 |
return $info_site_principal;
|
|
|
153 |
}
|
|
|
154 |
|
1124 |
jp_milcent |
155 |
/** Fonction GEN_lireInfoSiteI18nCodeAlpha() - Renvoie un objet contenant une ligne de la table gen_site
|
125 |
jpm |
156 |
*
|
|
|
157 |
* Retourne la ligne de la table gen_site concernant un site ayant pour code alphanumérique et identifiant
|
|
|
158 |
* i18n les valeurs passées en paramètres.
|
|
|
159 |
* Ancien nom :getSiteI18nInfos():
|
|
|
160 |
*
|
|
|
161 |
* @param mixed une instance de la classse Pear DB.
|
|
|
162 |
* @param string le code alphanumérique du site recherché.
|
1124 |
jp_milcent |
163 |
* @param string l'identifiant i18n possédé par le site recherché.
|
|
|
164 |
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du site.
|
125 |
jpm |
165 |
* @return mixed un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur.
|
|
|
166 |
*/
|
1124 |
jp_milcent |
167 |
function GEN_lireInfoSiteI18nCodeAlpha(&$objet_pear_db, $code_alpha, $i18n, $mode = DB_FETCHMODE_OBJECT)
|
125 |
jpm |
168 |
{
|
|
|
169 |
$requete = 'SELECT * '.
|
1132 |
jp_milcent |
170 |
'FROM gen_site '.
|
125 |
jpm |
171 |
'WHERE gs_code_alpha = "'.$code_alpha.'" '.
|
|
|
172 |
'AND gs_ce_i18n = "'.$i18n.'" ';
|
|
|
173 |
|
|
|
174 |
$resultat = $objet_pear_db->query($requete);
|
|
|
175 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
|
|
176 |
|
|
|
177 |
if ($resultat->numRows() != 1) {
|
|
|
178 |
return false;
|
|
|
179 |
}
|
|
|
180 |
|
1124 |
jp_milcent |
181 |
$info_site = $resultat->fetchRow($mode);
|
125 |
jpm |
182 |
$resultat->free();
|
|
|
183 |
|
|
|
184 |
return $info_site;
|
204 |
jpm |
185 |
}
|
|
|
186 |
|
|
|
187 |
/** Fonction GEN_retournerTableauTypeSiteExterne() - Renvoie un tableau des types site externe
|
|
|
188 |
*
|
|
|
189 |
* Retourne un tableau de tableaux associatifs contenant les valeurs des types des sites externes.
|
|
|
190 |
*
|
|
|
191 |
* @param mixed une instance de la classse Pear DB.
|
|
|
192 |
* @return mixed un tableau de tableaux associatifs contenant les valeurs des types des sites externes
|
|
|
193 |
*/
|
350 |
jpm |
194 |
function GEN_retournerTableauTypeSiteExterne(&$objet_pear_db)
|
204 |
jpm |
195 |
{
|
|
|
196 |
$requete = 'SELECT * '.
|
|
|
197 |
'FROM gen_site_categorie_valeur '.
|
|
|
198 |
'WHERE gscv_id_categorie = 3 ';// 3 = type de site externe
|
|
|
199 |
|
|
|
200 |
$resultat = $objet_pear_db->query($requete);
|
|
|
201 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
|
|
202 |
|
|
|
203 |
if ($resultat->numRows() == 0) {
|
|
|
204 |
return false;
|
|
|
205 |
}
|
|
|
206 |
$tab_type = array();
|
|
|
207 |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
|
|
|
208 |
$aso_type_site_externe = array('id' => $ligne->gscv_id_valeur, 'intitule' => $ligne->gscv_intitule_valeur);
|
|
|
209 |
array_push($tab_type, $aso_type_site_externe);
|
|
|
210 |
}
|
|
|
211 |
$resultat->free();
|
|
|
212 |
|
|
|
213 |
return $tab_type;
|
4 |
jpm |
214 |
}
|
|
|
215 |
|
1029 |
jp_milcent |
216 |
/** Fonction GEN_retournerSiteCodeNum() - Renvoie le code num d'un site en fonction du code Alphanumérique
|
|
|
217 |
*
|
|
|
218 |
* Retourne le code numérique d'un site en fonction du code alphanumérique.
|
|
|
219 |
*
|
|
|
220 |
* @param mixed une instance de la classe Pear DB.
|
|
|
221 |
* @param string le code alphanumérique d'un site.
|
2076 |
Jean-Pasca |
222 |
* @param string le code de la langue pour l'i18n (fr, en, ...).
|
1029 |
jp_milcent |
223 |
* @return mixed le code numérique du site sinon false.
|
|
|
224 |
*/
|
2089 |
drzraf |
225 |
function GEN_retournerSiteCodeNum($db, $code_alphanum, $i18n = null)
|
1029 |
jp_milcent |
226 |
{
|
|
|
227 |
//----------------------------------------------------------------------------
|
|
|
228 |
// Recherche des informations sur le menu
|
|
|
229 |
$requete = 'SELECT gs_code_num '.
|
|
|
230 |
'FROM gen_site '.
|
2076 |
Jean-Pasca |
231 |
'WHERE gs_code_alpha = "'.$code_alphanum.'" '.
|
|
|
232 |
(is_null($i18n) ? '' : 'AND gs_ce_i18n = "'.$i18n.'" ');
|
1029 |
jp_milcent |
233 |
|
|
|
234 |
$resultat = $db->query($requete);
|
|
|
235 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
|
|
236 |
|
|
|
237 |
if ($resultat->numRows() != 1) {
|
|
|
238 |
return false;
|
|
|
239 |
}
|
|
|
240 |
|
|
|
241 |
//----------------------------------------------------------------------------
|
|
|
242 |
// Récupération des infos
|
|
|
243 |
$info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
|
|
244 |
$code_num = $info_site->gs_code_num;
|
|
|
245 |
$resultat->free();
|
|
|
246 |
|
|
|
247 |
return $code_num;
|
|
|
248 |
}
|
|
|
249 |
|
|
|
250 |
/** Fonction GEN_retournerSiteCodeAlpha() - Renvoie le code alphanumérique d'un site en fonction du code numérique
|
|
|
251 |
*
|
|
|
252 |
* Retourne le code alphanumérique d'un site en fonction du code numérique.
|
|
|
253 |
*
|
|
|
254 |
* @param mixed une instance de la classse Pear DB.
|
|
|
255 |
* @param string le code numérique d'un site.
|
2076 |
Jean-Pasca |
256 |
* @param string le code de la langue pour l'i18n (fr, en, ...).
|
1029 |
jp_milcent |
257 |
* @return mixed le code alphanumérique du site sinon false.
|
|
|
258 |
*/
|
2089 |
drzraf |
259 |
function GEN_retournerSiteCodeAlpha($db, $code_num, $i18n = null)
|
1029 |
jp_milcent |
260 |
{
|
2076 |
Jean-Pasca |
261 |
|
|
|
262 |
//----------------------------------------------------------------------------
|
1029 |
jp_milcent |
263 |
// Recherche des informations sur le menu
|
|
|
264 |
$requete = 'SELECT gs_code_alpha '.
|
|
|
265 |
'FROM gen_site '.
|
2076 |
Jean-Pasca |
266 |
'WHERE gs_code_num = '.$code_num.' '.
|
|
|
267 |
(is_null($i18n) ? '' : 'AND gs_ce_i18n = "'.$i18n.'" ');
|
1029 |
jp_milcent |
268 |
|
|
|
269 |
$resultat = $db->query($requete);
|
|
|
270 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
|
|
271 |
|
|
|
272 |
if ($resultat->numRows() != 1) {
|
|
|
273 |
return false;
|
|
|
274 |
}
|
|
|
275 |
|
|
|
276 |
//----------------------------------------------------------------------------
|
|
|
277 |
// Récupération des infos
|
|
|
278 |
$info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
|
|
279 |
$code_alphanum = $info_site->gs_code_alpha;
|
|
|
280 |
$resultat->free();
|
|
|
281 |
|
|
|
282 |
return $code_alphanum;
|
|
|
283 |
}
|
|
|
284 |
|
4 |
jpm |
285 |
/* +--Fin du code ----------------------------------------------------------------------------------------+
|
|
|
286 |
*
|
|
|
287 |
* $Log: not supported by cvs2svn $
|
1289 |
neiluj |
288 |
* Revision 1.7 2006/12/08 20:15:21 jp_milcent
|
|
|
289 |
* Correction bogue requete sql dans fonction GEN_lireInfoSiteI18nCodeAlpha().
|
|
|
290 |
*
|
1132 |
jp_milcent |
291 |
* Revision 1.6 2006/12/08 18:48:43 jp_milcent
|
|
|
292 |
* Amélioration du mode de reception des données pour GEN_lireInfoSiteI18nCodeAlpha().
|
|
|
293 |
*
|
1124 |
jp_milcent |
294 |
* Revision 1.5 2006/10/11 18:04:11 jp_milcent
|
|
|
295 |
* Gestion avancée de la réecriture d'URL.
|
|
|
296 |
*
|
1029 |
jp_milcent |
297 |
* Revision 1.4 2005/04/19 17:21:19 jpm
|
|
|
298 |
* Utilisation des références d'objets.
|
|
|
299 |
*
|
350 |
jpm |
300 |
* Revision 1.3 2004/12/03 19:22:30 jpm
|
|
|
301 |
* Ajout d'une fonction retournant les types de sites externes gérés par Papyrus.
|
|
|
302 |
*
|
204 |
jpm |
303 |
* Revision 1.2 2004/11/04 12:25:35 jpm
|
|
|
304 |
* Ajout d'une fonction permettant de récupérer les infos sur un site à partir de son id.
|
|
|
305 |
*
|
125 |
jpm |
306 |
* Revision 1.1 2004/06/15 15:13:37 jpm
|
|
|
307 |
* Changement de nom et d'arborescence de Genesia en Papyrus.
|
|
|
308 |
*
|
4 |
jpm |
309 |
* Revision 1.1 2004/05/03 16:26:07 jpm
|
1289 |
neiluj |
310 |
* Ajout de la bibliothèque de fonctions permettant de manipuler les informations issues des tables "gen_site_..." de Papyrus.
|
4 |
jpm |
311 |
*
|
|
|
312 |
*
|
|
|
313 |
* +-- Fin du code ----------------------------------------------------------------------------------------+
|
|
|
314 |
*/
|
|
|
315 |
?>
|