Subversion Repositories Applications.papyrus

Rev

Rev 1688 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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 '.
134
                'AND gsr_id_valeur = 102 '; // 102 = site "principal"
135
 
136
    $resultat = $objet_pear_db->query($requete);
137
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
138
 
139
    if ($resultat->numRows() != 1) {
140
        // Impossible de récupérer des informations sur le site principal ayant pour code alpha $code_alpha
141
        return false;
142
    }
143
 
350 jpm 144
    $info_site_principal = $resultat->fetchRow($mode);
125 jpm 145
    $resultat->free();
146
 
147
    return $info_site_principal;
148
}
149
 
1124 jp_milcent 150
/** Fonction GEN_lireInfoSiteI18nCodeAlpha() - Renvoie un objet contenant une ligne de la table gen_site
125 jpm 151
*
152
* Retourne la ligne de la table gen_site concernant un site ayant pour code alphanumérique et identifiant
153
* i18n les valeurs passées en paramètres.
154
* Ancien nom :getSiteI18nInfos():
155
*
156
* @param  mixed   une instance de la classse Pear DB.
157
* @param  string  le code alphanumérique du site recherché.
1124 jp_milcent 158
* @param  string  l'identifiant i18n possédé par le site recherché.
159
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du site.
125 jpm 160
* @return  mixed  un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur.
161
*/
1124 jp_milcent 162
function GEN_lireInfoSiteI18nCodeAlpha(&$objet_pear_db, $code_alpha, $i18n, $mode = DB_FETCHMODE_OBJECT)
125 jpm 163
{
164
    $requete =  'SELECT * '.
1132 jp_milcent 165
                'FROM gen_site '.
125 jpm 166
                'WHERE gs_code_alpha = "'.$code_alpha.'" '.
167
                'AND gs_ce_i18n = "'.$i18n.'" ';
168
 
169
    $resultat = $objet_pear_db->query($requete);
170
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
171
 
172
    if ($resultat->numRows() != 1) {
173
        return false;
174
    }
175
 
1124 jp_milcent 176
    $info_site = $resultat->fetchRow($mode);
125 jpm 177
    $resultat->free();
178
 
179
    return $info_site;
204 jpm 180
}
181
 
182
/** Fonction GEN_retournerTableauTypeSiteExterne() - Renvoie un tableau des types site externe
183
*
184
* Retourne un tableau de tableaux associatifs contenant les valeurs des types des sites externes.
185
*
186
* @param  mixed   une instance de la classse Pear DB.
187
* @return  mixed  un tableau de tableaux associatifs contenant les valeurs des types des sites externes
188
*/
350 jpm 189
function GEN_retournerTableauTypeSiteExterne(&$objet_pear_db)
204 jpm 190
{
191
    $requete =  'SELECT * '.
192
                'FROM gen_site_categorie_valeur '.
193
                'WHERE gscv_id_categorie = 3 ';// 3 = type de site externe
194
 
195
    $resultat = $objet_pear_db->query($requete);
196
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
197
 
198
    if ($resultat->numRows() == 0) {
199
        return false;
200
    }
201
    $tab_type = array();
202
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
203
        $aso_type_site_externe = array('id' => $ligne->gscv_id_valeur, 'intitule' => $ligne->gscv_intitule_valeur);
204
        array_push($tab_type, $aso_type_site_externe);
205
    }
206
    $resultat->free();
207
 
208
    return $tab_type;
4 jpm 209
}
210
 
1029 jp_milcent 211
/** Fonction GEN_retournerSiteCodeNum() - Renvoie le code num d'un site en fonction du code Alphanumérique
212
*
213
* Retourne le code numérique d'un site en fonction du code alphanumérique.
214
*
215
* @param  mixed  une instance de la classe Pear DB.
216
* @param  string le code alphanumérique d'un site.
217
* @return mixed le code numérique du site sinon false.
218
*/
219
function GEN_retournerSiteCodeNum(&$db, $code_alphanum)
220
{
221
    //----------------------------------------------------------------------------
222
    // Recherche des informations sur le menu
223
    $requete =  'SELECT gs_code_num '.
224
                'FROM gen_site '.
225
                'WHERE gs_code_alpha = "'.$code_alphanum.'"';
226
 
227
    $resultat = $db->query($requete);
228
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
229
 
230
    if ($resultat->numRows() != 1) {
231
        return false;
232
    }
233
 
234
    //----------------------------------------------------------------------------
235
    // Récupération des infos
236
    $info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
237
    $code_num = $info_site->gs_code_num;
238
    $resultat->free();
239
 
240
    return $code_num;
241
}
242
 
243
/** Fonction GEN_retournerSiteCodeAlpha() - Renvoie le code alphanumérique d'un site en fonction du code numérique
244
*
245
* Retourne le code alphanumérique d'un site en fonction du code numérique.
246
*
247
* @param  mixed  une instance de la classse Pear DB.
248
* @param  string le code numérique d'un site.
249
* @return mixed le code alphanumérique du site sinon false.
250
*/
251
function GEN_retournerSiteCodeAlpha(&$db, $code_num)
252
{
253
    //----------------------------------------------------------------------------
254
    // Recherche des informations sur le menu
255
    $requete =  'SELECT gs_code_alpha '.
256
                'FROM gen_site '.
257
                'WHERE gs_code_num = '.$code_num;
258
 
259
    $resultat = $db->query($requete);
260
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
261
 
262
    if ($resultat->numRows() != 1) {
263
        return false;
264
    }
265
 
266
    //----------------------------------------------------------------------------
267
    // Récupération des infos
268
    $info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
269
    $code_alphanum = $info_site->gs_code_alpha;
270
    $resultat->free();
271
 
272
    return $code_alphanum;
273
}
274
 
4 jpm 275
/* +--Fin du code ----------------------------------------------------------------------------------------+
276
*
277
* $Log: not supported by cvs2svn $
1289 neiluj 278
* Revision 1.7  2006/12/08 20:15:21  jp_milcent
279
* Correction bogue requete sql dans fonction GEN_lireInfoSiteI18nCodeAlpha().
280
*
1132 jp_milcent 281
* Revision 1.6  2006/12/08 18:48:43  jp_milcent
282
* Amélioration du mode de reception des données pour GEN_lireInfoSiteI18nCodeAlpha().
283
*
1124 jp_milcent 284
* Revision 1.5  2006/10/11 18:04:11  jp_milcent
285
* Gestion avancée de la réecriture d'URL.
286
*
1029 jp_milcent 287
* Revision 1.4  2005/04/19 17:21:19  jpm
288
* Utilisation des références d'objets.
289
*
350 jpm 290
* Revision 1.3  2004/12/03 19:22:30  jpm
291
* Ajout d'une fonction retournant les types de sites externes gérés par Papyrus.
292
*
204 jpm 293
* Revision 1.2  2004/11/04 12:25:35  jpm
294
* Ajout d'une fonction permettant de récupérer les infos sur un site à partir de son id.
295
*
125 jpm 296
* Revision 1.1  2004/06/15 15:13:37  jpm
297
* Changement de nom et d'arborescence de Genesia en Papyrus.
298
*
4 jpm 299
* Revision 1.1  2004/05/03 16:26:07  jpm
1289 neiluj 300
* Ajout de la bibliothèque de fonctions permettant de manipuler les informations issues des tables "gen_site_..." de Papyrus.
4 jpm 301
*
302
*
303
* +-- Fin du code ----------------------------------------------------------------------------------------+
304
*/
305
?>