Subversion Repositories Applications.papyrus

Rev

Rev 103 | Rev 127 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 103 Rev 124
Line 17... Line 17...
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
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                                  |
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                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: pap_menu.fonct.php,v 1.3 2004-10-25 14:16:21 jpm Exp $
22
// CVS : $Id: pap_menu.fonct.php,v 1.4 2004-11-04 12:23:50 jpm Exp $
23
/**
23
/**
24
* Bibliothèque de fonction sur le rendu.
24
* Bibliothèque de fonction sur le rendu.
25
*
25
*
26
* Cette bibliothèque contient des fonctions utilisé par le rendu des pages de Papyrus.
26
* Cette bibliothèque contient des fonctions utilisé par le rendu des pages de Papyrus.
27
*
27
*
Line 31... Line 31...
31
*@author        Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
31
*@author        Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
32
//Autres auteurs :
32
//Autres auteurs :
33
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
33
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
34
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
34
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
35
*@copyright     Tela-Botanica 2000-2004
35
*@copyright     Tela-Botanica 2000-2004
36
*@version       $Revision: 1.3 $ $Date: 2004-10-25 14:16:21 $
36
*@version       $Revision: 1.4 $ $Date: 2004-11-04 12:23:50 $
37
// +------------------------------------------------------------------------------------------------------+
37
// +------------------------------------------------------------------------------------------------------+
38
*/
38
*/
Line 39... Line 39...
39
 
39
 
40
// +------------------------------------------------------------------------------------------------------+
40
// +------------------------------------------------------------------------------------------------------+
Line 79... Line 79...
79
        $prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01);
79
        $prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01);
80
    }
80
    }
81
    return $prof;
81
    return $prof;
82
}
82
}
Line -... Line 83...
-
 
83
 
-
 
84
/** Fonction GEN_donnerDernierFreres() - Renvoie l'id du dernier menu frère.
-
 
85
*
-
 
86
* Cette fonction regarde si un menu donné possède au moins un frère dans l'arbre
-
 
87
* des menus. Elle retourne l'id du dernier menu frére en utilisant gmr_ordre.
-
 
88
* Cette fonction fait appel à la fonction : GEN_lireIdentifiantMenuPere().
-
 
89
*
-
 
90
* @param integer identifiant du menu.
-
 
91
* @return boolean renvoi l'id du dernier menu frère sinon faux.
-
 
92
*/
-
 
93
function GEN_donnerDernierFreres($id_menu)
-
 
94
{
-
 
95
    // Initialisation des variables.
-
 
96
    global $db;
-
 
97
    
-
 
98
    $requete =  'SELECT gmr_id_menu_01 '.
-
 
99
                'FROM gen_menu_relation '.
-
 
100
                'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
-
 
101
                'AND gmr_id_valeur = 1 '.
-
 
102
                'AND gmr_id_menu_01 <> '.$id_menu.' '.
-
 
103
                'ORDER BY gmr_ordre DESC';
-
 
104
    
-
 
105
    $resultat = $db->query($requete);
-
 
106
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
107
    
-
 
108
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
109
    if ($resultat->numRows() > 0) {
-
 
110
        return $ligne->gmr_id_menu_01;
-
 
111
    } else {
-
 
112
        return false;
-
 
113
    }
-
 
114
}
83
 
115
 
84
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
116
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
85
*
117
*
86
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
118
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
87
* des menus. Nous regardons si les menus ont le même identifiant comme père.
119
* des menus. Nous regardons si les menus ont le même identifiant comme père.
Line 155... Line 187...
155
    
187
    
156
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
188
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
157
    $resultat->free();
189
    $resultat->free();
158
    if ($ligne->gmr_id_menu_02 == 0) {
190
    if ($ligne->gmr_id_menu_02 == 0) {
159
        return false;
-
 
160
    }
191
        return false;
161
    elseif ($ligne->gmr_id_menu_02 == $id_menu_1) {
192
    } else if ($ligne->gmr_id_menu_02 == $id_menu_1) {
162
        return true;
193
        return true;
163
    } else {
194
    } else {
164
        return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
195
        return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
165
    }
196
    }
Line -... Line 197...
-
 
197
}
-
 
198
 
-
 
199
/** Fonction GEN_etreFils() - Renvoie vrai si le premier argument (identifiant de menu) est un fils du second.
-
 
200
*
-
 
201
* Nous récupérons l'identifiant du père du menu passé en argument numéro 2. Puis,
-
 
202
* nous le comparons à l'argument 1. Si c'est les même on retourne faux. Sinon on rapelle
-
 
203
* la fonction avec l'identifiant du père trouvé pour l'argument 1. Ainsi de suite jusqu'a
-
 
204
* renvoyé vrai où tomber sur un menu racine (idetifiant du père = 0).
-
 
205
* Si les variable sont null nous retournons false.
-
 
206
* C'est une fonction récursive.
-
 
207
*
-
 
208
* @param integer identifiant d'un menu numéro 1.
-
 
209
* @param integer identifiant d'un menu numéro 2.
-
 
210
* @return boolean vrai si le menu numéro 1 est fils du second.
-
 
211
*/
-
 
212
function GEN_etreFils($id_menu_1, $id_menu_2)
-
 
213
{
-
 
214
    //Test erreur
-
 
215
    if (is_null($id_menu_1) || is_null($id_menu_2)) {
-
 
216
        return false;
-
 
217
    }
-
 
218
    
-
 
219
    // Initialisation des variables.
-
 
220
    global $db;
-
 
221
    
-
 
222
    $requete =  'SELECT gmr_id_menu_01 '.
-
 
223
                'FROM gen_menu_relation '.
-
 
224
                'WHERE gmr_id_menu_02 = '.$id_menu_2.' '.
-
 
225
                'AND gmr_id_valeur = 1 ';
-
 
226
    
-
 
227
    $resultat = $db->query($requete);
-
 
228
    (DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
229
    
-
 
230
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
231
    $resultat->free();
-
 
232
    if ($ligne->gmr_id_menu_01 == 0) {
-
 
233
        echo "faux";
-
 
234
        return false;
-
 
235
    } else if ($ligne->gmr_id_menu_01 == $id_menu_1) {
-
 
236
        echo "vrai";
-
 
237
        return true;
-
 
238
    } else {
-
 
239
        return GEN_etreFils($id_menu_1, $ligne->gmr_id_menu_01);
-
 
240
    }
166
}
241
}
167
 
242
 
168
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
243
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
169
*
244
*
170
*   Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
245
*   Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
Line 255... Line 330...
255
    return $info_menu;
330
    return $info_menu;
256
}
331
}
Line 257... Line 332...
257
 
332
 
258
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
333
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
259
*
334
*
260
* Par défaut recherch une relation de type père.
335
* Par défaut recherche une relation de type père.
261
* Ancien nom : getMenuRelation().
336
* Ancien nom : getMenuRelation().
262
*
337
*
263
* @param  mixed   Une instance de la classse PEAR_DB
338
* @param  mixed   Une instance de la classse PEAR_DB
264
* @param  int  l'identifiant d'un menu.
339
* @param  int  l'identifiant d'un menu.
Line 288... Line 363...
288
    $result->free();
363
    $result->free();
Line 289... Line 364...
289
    
364
    
290
    return $info_menu_relation;
365
    return $info_menu_relation;
Line -... Line 366...
-
 
366
}
-
 
367
 
-
 
368
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
-
 
369
*
-
 
370
* Permet de vérifier dans la base de données si le code fournie (alphanumérique ou numérique) a déjà
-
 
371
* été attribué à un menu ou pas!
-
 
372
*
-
 
373
* @param  mixed   Une instance de la classse PEAR_DB
-
 
374
* @param  string  le type du code (int ou string).
-
 
375
* @param  mixed   le code numérique ou alphanumérique.
-
 
376
* @return mixed   retourne l'identifiant du menu possédant le code sinon false.
-
 
377
*/
-
 
378
function GEN_verifierPresenceCodeMenu($db, $type, $code)
-
 
379
{
-
 
380
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
-
 
381
    $requete =  'SELECT gm_id_menu '.
-
 
382
                'FROM gen_menu ';
-
 
383
    // Complément de requête en fonction du type de code
-
 
384
    if ($type == 'int') {
-
 
385
        $requete .= 'WHERE gm_code_num = '.$code;
-
 
386
    } else {
-
 
387
        $requete .= 'WHERE gm_code_alpha = "'.$code.'"';
-
 
388
    }
-
 
389
    $nombre_reponse = $db->affectedRows($requete);
-
 
390
    if (DB::isError($nombre_reponse)) {
-
 
391
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nombre_reponse->getMessage(), $requete) );
-
 
392
    }
-
 
393
    if ($nombre_reponse == 1) {
-
 
394
        $id = $db->getOne($requete);
-
 
395
        if (DB::isError($id)) {
-
 
396
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $id->getMessage(), $requete) );
-
 
397
        }
-
 
398
        return $id;
-
 
399
    } else {
-
 
400
        return false;
-
 
401
    }
291
}
402
}
292
 
403
 
293
// +------------------------------------------------------------------------------------------------------+
404
// +------------------------------------------------------------------------------------------------------+
Line 294... Line 405...
294
//                          A NORMALISER !!!
405
//                          A NORMALISER !!!
Line 368... Line 479...
368
    return id_ancetre_niveau($id_site, $id_langue, $ligne->gm_ce_menu_pere, $niveau);
479
    return id_ancetre_niveau($id_site, $id_langue, $ligne->gm_ce_menu_pere, $niveau);
369
}
480
}
Line 370... Line 481...
370
 
481
 
371
/* +--Fin du code ---------------------------------------------------------------------------------------+
482
/* +--Fin du code ---------------------------------------------------------------------------------------+
-
 
483
* $Log: not supported by cvs2svn $
-
 
484
* Revision 1.3  2004/10/25 14:16:21  jpm
-
 
485
* Suppression de code commenté.
372
* $Log: not supported by cvs2svn $
486
*
373
* Revision 1.2  2004/10/21 18:15:21  jpm
487
* Revision 1.2  2004/10/21 18:15:21  jpm
374
* Ajout de gestion d'erreur aux fonctions.
488
* Ajout de gestion d'erreur aux fonctions.
375
*
489
*
376
* Revision 1.1  2004/06/15 15:11:37  jpm
490
* Revision 1.1  2004/06/15 15:11:37  jpm