Subversion Repositories Applications.papyrus

Rev

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

Rev 130 Rev 134
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: adme_menu_classique.fonct.php,v 1.6 2004-11-08 17:40:07 jpm Exp $
22
// CVS : $Id: adme_menu_classique.fonct.php,v 1.7 2004-11-09 12:37:34 jpm Exp $
23
/**
23
/**
24
* Fonctions de gestion des menus classiques
24
* Fonctions de gestion des menus classiques
25
*
25
*
26
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus classiques.
26
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus classiques.
27
* Par menus classiques nous entendons tous les menus devant paraitre dans l'arborescences 
27
* Par menus classiques nous entendons tous les menus devant paraitre dans l'arborescences 
Line 33... Line 33...
33
*@author        Laurent COUDOUNEAU <lc@gsite.org>
33
*@author        Laurent COUDOUNEAU <lc@gsite.org>
34
//Autres auteurs :
34
//Autres auteurs :
35
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
35
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
36
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
36
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
37
*@copyright     Tela-Botanica 2000-2004
37
*@copyright     Tela-Botanica 2000-2004
38
*@version       $Revision: 1.6 $ $Date: 2004-11-08 17:40:07 $
38
*@version       $Revision: 1.7 $ $Date: 2004-11-09 12:37:34 $
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
40
*/
40
*/
Line 41... Line 41...
41
 
41
 
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
Line 46... Line 46...
46
 
46
 
47
// +------------------------------------------------------------------------------------------------------+
47
// +------------------------------------------------------------------------------------------------------+
48
// |                                           LISTE de FONCTIONS                                         |
48
// |                                           LISTE de FONCTIONS                                         |
Line -... Line 49...
-
 
49
// +------------------------------------------------------------------------------------------------------+
-
 
50
 
-
 
51
/** Fonction ADME_afficherListeMenuClassique () - Affiche un arbre de menu en xhtml
-
 
52
*
-
 
53
* Elle forme l'arbre des menus classiques à administrer.
-
 
54
* Ancien nom : deployer_menu().
-
 
55
*
-
 
56
* @param  object objet Pear de connection à la base de données.
-
 
57
* @param  object objet Pear représentant l'url de base.
-
 
58
* @param  integer l'identifiant du menu à administrer.
-
 
59
* @param  integer l'identifiant du menu sur lequel on agit.
-
 
60
* @param  string le nom de l'action courante.
-
 
61
* @param  integer l'identifiant du menu en cours de déploiement.
-
 
62
* @param  boolean true indique que l'on a à faire au premier appel de cette fonction récursive.
-
 
63
* @return string  le code XHTML constituant l'arbre des menus à administrer.
-
 
64
*/
-
 
65
function ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $id_menu_a_deployer, $bln_premier_appel = true)
-
 
66
{
-
 
67
    // Initialisation des variables :
-
 
68
    $retour = '';
-
 
69
    
-
 
70
    // Est-ce que ces menus comporte des sous-menus ?
-
 
71
    $requete_sous_menu =    'SELECT gm_id_menu '.
-
 
72
                            'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
73
                            'WHERE GMR01.gmr_id_menu_02 = '.$id_menu_a_deployer.' '.
-
 
74
                            'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
-
 
75
                            'AND gm_ce_site = '.$adme_site_id.' '.
-
 
76
                            'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
-
 
77
                            'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
-
 
78
                            'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
-
 
79
                            'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
-
 
80
                            'ORDER BY GMR01.gmr_ordre ASC';
-
 
81
    
-
 
82
    $resultat_sous_menu = $db->query($requete_sous_menu) ;
-
 
83
    if (DB::isError($resultat_sous_menu)) {
-
 
84
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_sous_menu->getMessage(), $requete_sous_menu));
-
 
85
    }
-
 
86
    
-
 
87
    // Gestion du stockage ou déstockage des menus ouverts
-
 
88
    if (($adme_action == 'adme_menu_ouvrir' || $adme_action == 'ajouter_menu_classique') && $id_menu_a_deployer != 0) {
-
 
89
        $_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id] = $adme_menu_id;
-
 
90
    }
-
 
91
    if ($adme_action == 'adme_menu_fermer' && $id_menu_a_deployer != 0) {
-
 
92
        unset($_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id]);
-
 
93
        foreach ($_SESSION['adme_menus_classiques_ouverts'] as $val) {
-
 
94
            if (GEN_etreAncetre($adme_menu_id, $val)) {
-
 
95
                unset($_SESSION['adme_menus_classiques_ouverts'][$val]);
-
 
96
            }
-
 
97
        }
-
 
98
    }
-
 
99
    
-
 
100
    // Gestion affichage des menus
-
 
101
    if ($resultat_sous_menu->numRows() > 0) {
-
 
102
        // Ici, on sait qu'un menu a des sous menus, on commence par l'afficher:
-
 
103
        if ($bln_premier_appel == false) {
-
 
104
            $retour .= '<li>'."\n";
-
 
105
            
-
 
106
            if (GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || 
-
 
107
                ($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_ouvrir') || 
-
 
108
                isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer])
-
 
109
                ){
-
 
110
                // Affiche un -
-
 
111
                $retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 1);
-
 
112
            } else if ( !GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || 
-
 
113
                        ($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_fermer') || 
-
 
114
                        !isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer])
-
 
115
                        ){
-
 
116
                // Affiche un +
-
 
117
                $retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 2);
-
 
118
            }
-
 
119
        }
-
 
120
        if ($bln_premier_appel == true || GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || 
-
 
121
            ($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_ouvrir') || 
-
 
122
            isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer])
-
 
123
            ){
-
 
124
            $retour .= '<ul>'."\n";
-
 
125
            while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
126
                $retour .= ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $ligne_sous_menu->gm_id_menu, false);
-
 
127
            }
-
 
128
            $retour .= '</ul>'."\n";
-
 
129
        }
-
 
130
        if ($bln_premier_appel == false) {
-
 
131
            $retour .= '</li>'."\n";
-
 
132
        }
-
 
133
    } else if ($resultat_sous_menu->numRows() == 0 && $bln_premier_appel == false) {
-
 
134
        $retour .= '<li>'."\n";
-
 
135
        $retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 0);
-
 
136
        $retour .= '</li>'."\n";
-
 
137
    }
-
 
138
    
-
 
139
    return $retour;
-
 
140
}
-
 
141
 
-
 
142
/** Fonction ADME_retournerXhtmlMenuClassique() - Effectue une sortie d'un menu en XHTML
-
 
143
*
-
 
144
* Retourne le XHTML d'une ligne de l'arbre des menus "classiques" permettant de l'administer.
-
 
145
* Ancien nom : menu_toHtml().
-
 
146
*
-
 
147
* @param  object objet Pear de connection à la base de données.
-
 
148
* @param  object objet Pear représentant l'url de base.
-
 
149
* @param  integer l'identifiant du site à administrer.
-
 
150
* @param  integer l'identifiant du menu à administrer.
-
 
151
* @param  integer 0 indique que le menu ne possède pas de fils, 1 qu'il faut afficher un - et 2 un +.
-
 
152
* @return  string une ligne de liste XHTML
-
 
153
*/
-
 
154
function ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $int_deplier)
-
 
155
{
-
 
156
    $etiquette_annuler = 'Annuler';
-
 
157
    $etiquette_alt_modifier     = 'Modifier';
-
 
158
    $etiquette_title_modifier     = 'Modifier ce menu';
-
 
159
    $etiquette_alt_supprimer   = 'Supprimer';
-
 
160
    $etiquette_title_supprimer   = 'Supprimer ce menu';
-
 
161
    $etiquette_alt_ajouter = 'Ajouter';
-
 
162
    $etiquette_title_ajouter = 'Ajouter un menu inférieur';
-
 
163
    $etiquette_alt_monter = 'Monter';
-
 
164
    $etiquette_title_monter = 'Monter ce menu';
-
 
165
    $etiquette_alt_descendre = 'Descendre';
-
 
166
    $etiquette_title_descendre = 'Descendre ce menu';
-
 
167
    $etiquette_alt_redaction = 'Rédiger';
-
 
168
    $etiquette_title_redaction = 'Rédiger le contenu de ce menu';
-
 
169
    $etiquette_deplier = 'Déplier';
-
 
170
    $etiquette_plier = 'Plier';
-
 
171
    
-
 
172
    $requete =  'SELECT gen_menu.*, ga_prenom '.
-
 
173
                'FROM gen_menu, gen_annuaire '.
-
 
174
                'WHERE gm_id_menu = '.$adme_menu_id.' '.
-
 
175
                'AND gm_ce_admin = ga_id_administrateur';
-
 
176
    
-
 
177
    $resultat = $db->query($requete);
-
 
178
    if (DB::isError($resultat)) {
-
 
179
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
180
    }
-
 
181
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
182
    
-
 
183
    // recherche de l'application liée
-
 
184
    $requete_app =  'SELECT gap_nom '.
-
 
185
                    'FROM gen_application '.
-
 
186
                    'WHERE gap_id_application = '.$ligne->gm_ce_application;
-
 
187
    
-
 
188
    $resultat_app = $db->query($requete_app);
-
 
189
    if (DB::isError($resultat_app)) {
-
 
190
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_app->getMessage(), $requete_app));
-
 
191
    }
-
 
192
    $ligne_app = $resultat_app->fetchRow(DB_FETCHMODE_OBJECT);
-
 
193
    $resultat_app->free();
-
 
194
    
-
 
195
    //-------------------------------------------------------------------------------------------------------------------
-
 
196
    // XHTML image plier-déplier
-
 
197
    
-
 
198
    $url->addQueryString('adme_site_id', $adme_site_id);
-
 
199
    $url->addQueryString('adme_menu_id', $ligne->gm_id_menu);
-
 
200
    $xhtml_pd = '';
-
 
201
    if ($int_deplier != 0) {
-
 
202
        if ($int_deplier == 1) {
-
 
203
            // Afficher un -
-
 
204
            $image_plier_deplier = ADME_IMAGE_MOINS;
-
 
205
            $alt = $etiquette_plier;
-
 
206
            $url->addQueryString('adme_action', 'adme_menu_fermer');
-
 
207
            $url_plier_deplier = $url->getURL();
-
 
208
        } else if ($int_deplier == 2) {
-
 
209
            // Afficher un +
-
 
210
            $image_plier_deplier = ADME_IMAGE_PLUS;
-
 
211
            $alt = $etiquette_deplier;
-
 
212
            $url->addQueryString('adme_action', 'adme_menu_ouvrir');
-
 
213
            $url_plier_deplier = $url->getURL();
-
 
214
        }
-
 
215
        $xhtml_pd = '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'.
-
 
216
                        '<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'.
-
 
217
                    '</a>'.'&nbsp;'."\n";
-
 
218
    }
-
 
219
    
-
 
220
    //-------------------------------------------------------------------------------------------------------------------
-
 
221
    // XHTML du nom du menu et de ses infos
-
 
222
    $xhtml_info  = htmlentities(empty($ligne->gm_nom) ? '('.$ligne->gm_nom.')' : $ligne->gm_nom);
-
 
223
    $xhtml_info .= '&nbsp;';
-
 
224
    $xhtml_info .= '('.$ligne_app->gap_nom.' / '.$ligne->ga_prenom.')';
-
 
225
    $xhtml_info .= '&nbsp;'."\n";
-
 
226
    
-
 
227
    //-------------------------------------------------------------------------------------------------------------------
-
 
228
    // XHTML actions
-
 
229
    $url->removeQueryString('adme_action');
-
 
230
    $url->addQueryString('adme_action', 'modifier_menu_classique');
-
 
231
    $xhtml_action = '<a href="'.$url->getURL().'" title="'.$etiquette_title_modifier.'">'.
-
 
232
                        '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_VOIR.'" alt="'.$etiquette_alt_modifier.'" />'.
-
 
233
                    '</a>&nbsp;'."\n";
-
 
234
    $url->removeQueryString('adme_action');
-
 
235
    $url->addQueryString('adme_action', 'monter_menu_classique');
-
 
236
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_monter.'">'.
-
 
237
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.$etiquette_alt_monter.'" />'.
-
 
238
                        '</a>&nbsp;'."\n";
-
 
239
    $url->removeQueryString('adme_action');
-
 
240
    $url->addQueryString('adme_action', 'descendre_menu_classique');
-
 
241
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_descendre.'">'.
-
 
242
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.$etiquette_alt_descendre.'" />'.
-
 
243
                        '</a>&nbsp;'."\n";
-
 
244
    $url->removeQueryString('adme_action');
-
 
245
    $url->addQueryString('adme_action', 'supprimer_menu_classique');
-
 
246
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_supprimer.'">'.
-
 
247
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.$etiquette_alt_supprimer.'" />'.
-
 
248
                        '</a>&nbsp;'."\n";
-
 
249
    $url->removeQueryString('adme_action');
-
 
250
    $url->addQueryString('adme_action', 'ajouter_menu_classique');
-
 
251
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_ajouter.'">'.
-
 
252
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="'.$etiquette_alt_ajouter.'" />'.
-
 
253
                        '</a>'.'&nbsp;'."\n";
-
 
254
    
-
 
255
    // Si l'application liée est "texte simple", on ajoute un icone avec un lien vers
-
 
256
    // l'administration de cette application.
-
 
257
    if ($ligne->gm_ce_application == 3) { // l'appli afficheur a pour id 3
-
 
258
        $url->removeQueryString('adme_action');
-
 
259
        $url->addQueryString('adme_action', 'contenu_rediger');
-
 
260
        $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_redaction.'">'.
-
 
261
                                '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TEXTE.'" alt="'.$etiquette_alt_redaction.'" />'.
-
 
262
                            '</a>'.'&nbsp;'."\n";
-
 
263
    }
-
 
264
    
-
 
265
    //-------------------------------------------------------------------------------------------------------------------
-
 
266
    // Envoi du menu.
-
 
267
    $retour = $xhtml_pd.$xhtml_info.$xhtml_action;
-
 
268
    return $retour;
49
// +------------------------------------------------------------------------------------------------------+
269
}
50
 
270
 
-
 
271
/** Fonction ADME_ajouterMenuClassique() - Ajoute un sous menu au menu courant
51
/** Fonction ADME_ajouterMenuClassique() - Ajoute un sous menu au menu courant
272
*
52
*
273
* Cette fonction permet d'ajouter un sous-menu de type "classique" au menu courant.
-
 
274
* Ancien nom : addMenu()
53
* Ancien nom : addMenu()
275
*
54
*
276
* @param  object objet Pear de connection à la base de données.
-
 
277
* @param  object objet Pear d'authentification.
55
*   @param  string  Le projet courant
278
* @param  integer l'identifiant du site à administrer.
56
*   @param  string  La langue courante
279
* @param  integer l'identifiant du menu à administrer.
57
*   @return void le menu classique est ajouté à la base de données.
280
* @return void le menu classique est ajouté à la base de données.
58
*/
281
*/
59
function ADME_ajouterMenuClassique($db, $auth, $adme_site_id, $adme_menu_id) 
282
function ADME_ajouterMenuClassique($db, $auth, $adme_site_id, $adme_menu_id) 
60
{
283
{
Line 104... Line 327...
104
    if (!isset($adme_menu_id) && empty($adme_menu_id)) {
327
    if (!isset($adme_menu_id) && empty($adme_menu_id)) {
105
        $adme_menu_id = 0 ;// Identifiant du père
328
        $adme_menu_id = 0 ;// Identifiant du père
106
    }
329
    }
107
    //----------------------------------------------------------------------------
330
    //----------------------------------------------------------------------------
108
    // Récupération d'infos sur la hierarchie du menu
331
    // Récupération d'infos sur la hierarchie du menu
109
    $requete =  'SELECT * '.
332
    $requete =  'SELECT GMR01.gmr_ordre '.
110
                'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
333
                'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
111
                'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '.
334
                'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '.
112
                'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
335
                'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
113
                'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
336
                'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
114
                'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
337
                'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
Line 136... Line 359...
136
    
359
    
137
    // Récupération d'infos sur la hierarchie du menu
360
    // Récupération d'infos sur la hierarchie du menu
138
    $requete =  'SELECT * '.
361
    $requete =  'SELECT * '.
139
                'FROM gen_menu_relation, gen_menu '.
362
                'FROM gen_menu_relation, gen_menu '.
140
                'WHERE gmr_id_menu_02 = gmr_id_menu_01 '.
363
                'WHERE gmr_id_menu_02 = gmr_id_menu_01 '.
141
                'AND gmr_id_valeur = 100 '.// 10 = type menu "classique"
364
                'AND gmr_id_valeur = 100 '.// 100 = type menu "classique"
142
                'AND gmr_id_menu_01 = gm_id_menu '.
365
                'AND gmr_id_menu_01 = gm_id_menu '.
143
                'AND gm_ce_site = '.$adme_site_id.' '.
366
                'AND gm_ce_site = '.$adme_site_id.' '.
Line 144... Line 367...
144
                'ORDER BY gmr_ordre DESC';
367
                'ORDER BY gmr_ordre DESC';
Line 158... Line 381...
158
    
381
    
159
    $result = $db->query($requete);
382
    $result = $db->query($requete);
160
    (DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
383
    (DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
Line 161... Line 384...
161
}
384
}
162
 
385
 
-
 
386
/** Fonction ADME_afficherFormMenuClassique() - Affiche le formulaire pour un menu classique
163
/** Fonction ADME_afficherFormMenuClassique() - Affiche le formulaire de saisie d'un menu
387
*
164
*
388
* Utilise HTML_QuickForm pour générer le formulaire.
-
 
389
* Ancien nom : showMenu()
-
 
390
*
-
 
391
* @param  object  objet Pear de connection à la base de données.
-
 
392
* @param  object objet Pear représentant l'url de base.
-
 
393
* @param  integer l'identifiant du site à administrer.
165
* Ancien nom : showMenu()
394
* @param  integer l'identifiant du menu à administrer.
166
*
395
* @param  array le tableau associatif des valeurs à afficher dans le formulaire.
167
*   @return  string  Le HTML
396
* @return  string  le formulaire XHTML.
168
*/
397
*/
169
function ADME_afficherFormMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $aso_valeurs, $adme_menu_ouvert)
398
function ADME_afficherFormMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $aso_valeurs)
170
{
399
{
171
    // Initialisation de variable
400
    // Initialisation de variable
172
    $url->addQueryString('adme_site_id', $adme_site_id);
-
 
Line 173... Line 401...
173
    $url->addQueryString('adme_menu_id', $adme_menu_id);
401
    $url->addQueryString('adme_site_id', $adme_site_id);
174
    $url->addQueryString('adme_menu_ouvert', $adme_menu_ouvert);
402
    $url->addQueryString('adme_menu_id', $adme_menu_id);
-
 
403
    
175
    
404
    // Nous sommes toujours en modification car un menu est ajouter automatiquement!
176
    // Nous sommes toujours en modification car un menu est ajouter automatiquement!
405
    // Récupération des informations du menu concerné.
177
    // Récupération des informations du menu concerné.
406
    if (!isset($aso_valeurs['menu_classique_verifier'])) {
178
    $aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC);
407
        $aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC);
179
    if ($aso_valeurs == false) {
408
        if ($aso_valeurs == false) {
180
        die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du menu.<br />'.
409
            die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du menu.<br />'.
181
            'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'.
410
                'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'.
182
            'Ligne n° : '. __LINE__ .'<br />'.
-
 
183
            'Fichier n° : '. __FILE__ .'<br />');
-
 
184
    }
-
 
185
    /*
-
 
186
    // Récupération d'information sur le site de ce menu.
-
 
187
    $site = GEN_lireInfoSitePrincipalCodeAlpha($db, $adme_site);
-
 
188
    if ($site == false) {
-
 
189
        die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'.
-
 
190
            'Code alpha du site : '. $adme_site .'<br />'.
411
                'Ligne n° : '. __LINE__ .'<br />'.
191
            'Ligne n° : '. __LINE__ .'<br />'.
412
                'Fichier n° : '. __FILE__ .'<br />');
192
            'Fichier n° : '. __FILE__ .'<br />');
413
        }
193
    }
414
    }
Line 194... Line 415...
194
    */
415
    
195
    // Titre de la page
416
    // Titre de la page
Line 397... Line 618...
397
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100);
618
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100);
398
    $label = '<label for="'.$id.'">'.'Portée temporelle de la page'.'</label>';
619
    $label = '<label for="'.$id.'">'.'Portée temporelle de la page'.'</label>';
399
    $form->addElement('text', $id, $label, $aso_attributs);
620
    $form->addElement('text', $id, $label, $aso_attributs);
Line 400... Line 621...
400
    
621
    
-
 
622
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
-
 
623
    
401
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
624
    $liste_bouton_debut = '<ul class="liste_bouton">'."\n";
-
 
625
    $form->addElement('html', $liste_bouton_debut);
402
    $form->addElement('html', $partie_entete_fin);
626
    
403
    $bouton_validation = '<input type="submit" id="menu_modifier" name="menu_modifier" value="'.'Enregistrer'.'" title="'.'Enregistrer'.'" />';
627
    $form->addElement('submit', 'menu_classique_verifier', 'Enregistrer');
404
    $bouton_annuler =   '<a class="bouton" href="'.$url->getURL().'" title="'.'Annuler'.'" >'.'Annuler'.'</a>';
628
    $bouton_annuler = '<li><a class="bouton" href="'.$url->getURL().'" title="'.'Annuler'.'" >'.'Annuler'.'</a>'.'</li>'."\n";
-
 
629
    $form->addElement('html', $bouton_annuler);
-
 
630
    
405
    $boutons =  '<p>'."\n".$bouton_validation.' '."\n".$bouton_annuler."\n".'</p>'."\n";
631
    $liste_bouton_fin = '</ul>'."\n";
Line 406... Line 632...
406
    $form->addElement('html', $boutons);
632
    $form->addElement('html', $liste_bouton_fin);
407
    
633
    
Line 408... Line 634...
408
    // Instanciation avec les valeur par défaut
634
    // Instanciation avec les valeur par défaut
Line 443... Line 669...
443
        $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gm_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
669
        $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gm_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
444
    }
670
    }
445
    return $message;
671
    return $message;
446
}
672
}
Line 447... Line 673...
447
 
673
 
448
/** Fonction ADME_modifierMenuClassique() - Enregistre les infos du formulaire de saisie d'un menu
674
/** Fonction ADME_modifierMenuClassique() - Met à jour les infos d'un menu classique
-
 
675
*
449
*
676
* Fonction modifiant un menu commun à Papyrus.
450
* Ancien nom : commitUpdateLevel()
677
* Ancien nom : commitUpdateLevel()
-
 
678
*
-
 
679
* @param object objet Pear de connection à la base de données.
-
 
680
* @param object objet Pear représentant l'authentification.
-
 
681
* @param integer l'identifiant du menu à administrer.
451
*
682
* @param array le tableau des valeurs à modifier.
452
*   @return  void  les données sont enregistrées dans la base de données.
683
* @return void les changement sont fait dans la base de données.
453
*/
684
*/
454
function ADME_modifierMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs)
685
function ADME_modifierMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs)
455
{
686
{
456
    $requete =  'UPDATE gen_menu SET '.
687
    $requete =  'UPDATE gen_menu SET '.
Line 522... Line 753...
522
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
753
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
523
        }
754
        }
524
    }
755
    }
525
}
756
}
Line 526... Line -...
526
 
-
 
527
/** Fonction ADME_supprimerMenuClassique() - Supprime un menu classique.
-
 
528
*
-
 
529
* Supprime de la base de données de Génésia toutes les traces du menu classiques
-
 
530
* passé en paramètre.
-
 
531
* Ancien nom : deleteMenu()
-
 
532
*
-
 
533
*   @param mixed l'objet Pear DB de connexion à la base de données.
-
 
534
*   @param  string  l'identifiant du menu à supprimer
-
 
535
*   @return  void le menu classique est supprimé de la base de données.
-
 
536
*/
-
 
537
function ADME_supprimerMenuClassique($db, $id_menu_a_supprimer)
-
 
538
{
-
 
539
    //----------------------------------------------------------------------------
-
 
540
    // Y a t'il des sous_menus
-
 
541
    $requete =  'SELECT COUNT(gm_id_menu) AS compte '.
-
 
542
                'FROM gen_menu, gen_menu_relation '.
-
 
543
                'WHERE gmr_id_menu_02 = '.$id_menu_a_supprimer.' '.
-
 
544
                'AND gmr_id_valeur = 1 '.
-
 
545
                'AND gmr_id_menu_01 = gm_id_menu ';
-
 
546
    
-
 
547
    $resultat = $db->query($requete);
-
 
548
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
549
    
-
 
550
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
551
    
-
 
552
    if ($ligne && ($ligne->compte > 0)) {
-
 
553
        return 'Ce menu contient encore des sous menus. Veuillez commencez par supprimer ces sous menus.';
-
 
554
    }
-
 
555
    
-
 
556
    //----------------------------------------------------------------------------
-
 
557
    // S'il n'y a plus de sous niveau, on supprime le menu
-
 
558
    $requete =  'DELETE FROM gen_menu '.
-
 
559
                'WHERE gm_id_menu = '.$id_menu_a_supprimer;
-
 
560
    
-
 
561
    $resultat = $db->query($requete);
-
 
562
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
563
    
-
 
564
    //----------------------------------------------------------------------------
-
 
565
    // Puis on supprime les relations de ce menu
-
 
566
    $requete =  'DELETE FROM gen_menu_relation '.
-
 
567
                'WHERE gmr_id_menu_01 = '.$id_menu_a_supprimer;
-
 
568
    
-
 
569
    $resultat = $db->query($requete);
-
 
570
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
571
}
-
 
572
 
757
 
573
/** Fonction ADME_deplacerMenuClassique() - Permet de déplacer un menu dans la hiérarchie.
758
/** Fonction ADME_deplacerMenuClassique() - Permet de déplacer un menu dans la hiérarchie.
574
*
759
*
575
* Permet de déplacer un menu dans la hiérarchie des menus classiques.
760
* Permet de déplacer un menu dans la hiérarchie des menus classiques.
576
* Ancien nom : moveMenu()
761
* Ancien nom : moveMenu()
577
*
762
*
578
*   @param  mixed  objet Pear DB de connexion à la base de données.
-
 
579
*   @param  string  code du site administré.
763
* @param  mixed   objet Pear DB de connexion à la base de données.
580
*   @param  string  identifiant de l'i18n du site administré.
764
* @param  string  identifiant du site administré.
581
*   @param  int  identifiant du menu à déplacer.
765
* @param  integer identifiant du menu à déplacer.
582
*   @param  boolean  indique si on veut monter le menu (true) ou le descendre (false).
766
* @param  boolean indique si on veut monter le menu (true) ou le descendre (false).
583
*   @return  void  Modifie la base de données.
767
* @return void    modifie la base de données.
584
*/
768
*/
585
function ADME_deplacerMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_monter)
769
function ADME_deplacerMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_monter)
586
{
770
{
587
    //----------------------------------------------------------------------------
771
    //-------------------------------------------------------------------------------------------------------------------
588
    // Récupération d'information sur le site de ce menu.
772
    // Récupération d'information sur le site de ce menu.
589
    $objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id);
773
    $objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id);
590
    if ($objet_site == false) {
774
    if ($objet_site == false) {
591
        die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'.
775
        die('ERREUR Papyrus Administrateur de Menus : impossible de lire les infos du site.<br />'.
592
            'Id du site : '. $adme_site_id .'<br />'.
776
            'Id du site : '. $adme_site_id .'<br />'.
593
            'Ligne n° : '. __LINE__ .'<br />'.
777
            'Ligne n° : '. __LINE__ .'<br />'.
594
            'Fichier n° : '. __FILE__ .'<br />');
778
            'Fichier n° : '. __FILE__ .'<br />');
595
    }
779
    }
596
    //----------------------------------------------------------------------------
780
    //-------------------------------------------------------------------------------------------------------------------
597
    // Récupération d'informations sur les relations du menu courant.
781
    // Récupération d'informations sur les relations du menu courant.
598
    $ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $adme_menu_id, '1');
782
    $ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $adme_menu_id, '1');
599
    if ($ligne_menu_courant_relation == false) {
783
    if ($ligne_menu_courant_relation == false) {
600
        die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos sur les relations du menu.<br />'.
784
        die('ERREUR Papyrus Administrateur de Menus : impossible de lire les infos sur les relations du menu.<br />'.
601
            'Identifiant menu : '. $adme_menu_id .'<br />'.
785
            'Identifiant menu : '. $adme_menu_id .'<br />'.
602
            'Identifiant valeur relation : 1 <br />'.
786
            'Identifiant valeur relation : 1 <br />'.
603
            'Ligne n° : '. __LINE__ .'<br />'.
787
            'Ligne n° : '. __LINE__ .'<br />'.
604
            'Fichier n° : '. __FILE__ .'<br />');
788
            'Fichier n° : '. __FILE__ .'<br />');
605
    }
789
    }
606
    //----------------------------------------------------------------------------
790
    //-------------------------------------------------------------------------------------------------------------------
607
    // Récupération de l'identifiant du menu pére
791
    // Récupération de l'identifiant du menu pére
608
    $id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id);
792
    $id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id);
609
    if ($id_pere === false) {
793
    if ($id_pere === false) {
610
        die('ERREUR Génésia Administrateur de Menus : impossible de lire identifiant du menu père.<br />'.
794
        die('ERREUR Papyrus Administrateur de Menus : impossible de lire identifiant du menu père.<br />'.
611
            'Identifiant menu fils : '. $adme_menu_id .'<br />'.
795
            'Identifiant menu fils : '. $adme_menu_id .'<br />'.
612
            'Ligne n° : '. __LINE__ .'<br />'.
796
            'Ligne n° : '. __LINE__ .'<br />'.
613
            'Fichier n° : '. __FILE__ .'<br />');
797
            'Fichier n° : '. __FILE__ .'<br />');
614
    }
798
    }
615
    //----------------------------------------------------------------------------
799
    //-------------------------------------------------------------------------------------------------------------------
616
    // Recherche d'information sur le menu précédent ou suivant le menu courant
800
    // Recherche d'information sur le menu précédent ou suivant le menu courant
617
    $requete =  'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
801
    $requete =  'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
618
                'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
802
                'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
619
                'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
803
                'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
Line 633... Line 817...
633
    $resultat_menu = $db->query($requete);
817
    $resultat_menu = $db->query($requete);
634
    (DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
818
    (DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
Line 635... Line 819...
635
    
819
    
636
    $ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
820
    $ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
637
    $resultat_menu->free();
821
    $resultat_menu->free();
638
    //----------------------------------------------------------------------------
822
    //-------------------------------------------------------------------------------------------------------------------
639
    // Si la requete ne retourne rien nous ne faisons rien.
823
    // Si la requete ne retourne rien nous ne faisons rien.
640
    if (! $ligne_menu) {
824
    if (! $ligne_menu) {
641
        return null;
825
        return null;
642
    }
826
    }
643
    //----------------------------------------------------------------------------
827
    //-------------------------------------------------------------------------------------------------------------------
644
    // Mise à jour des relations du menu courant
828
    // Mise à jour des relations du menu courant
645
    $requete =  'UPDATE gen_menu_relation SET '.
829
    $requete =  'UPDATE gen_menu_relation SET '.
646
                'gmr_ordre = '.$ligne_menu->nouvel_ordre.' '.
830
                'gmr_ordre = '.$ligne_menu->nouvel_ordre.' '.
647
                'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
831
                'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
Line 648... Line 832...
648
                'AND gmr_id_valeur = 1';// 1 = relation menu "père"
832
                'AND gmr_id_valeur = 1';// 1 = relation menu "père"
649
    
833
    
650
    $resultat_update = $db->query($requete);
834
    $resultat_update = $db->query($requete);
651
    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
835
    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
652
    //----------------------------------------------------------------------------
836
    //-------------------------------------------------------------------------------------------------------------------
653
    // Mise à jour des relations du menu précédent ou suivant
837
    // Mise à jour des relations du menu précédent ou suivant
654
    $requete =  'UPDATE gen_menu_relation SET '.
838
    $requete =  'UPDATE gen_menu_relation SET '.
655
                'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '.
839
                'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '.
Line 656... Line 840...
656
                'WHERE gmr_id_menu_01 = '.$ligne_menu->id_menu_remplace.' '.
840
                'WHERE gmr_id_menu_01 = '.$ligne_menu->id_menu_remplace.' '.
657
                'AND gmr_id_valeur = 1';// 1 = relation menu "père"
841
                'AND gmr_id_valeur = 1';// 1 = relation menu "père"
658
    
842
    
Line 659... Line 843...
659
    $resultat_update = $db->query($requete);
843
    $resultat_update = $db->query($requete);
660
    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
-
 
661
}
-
 
662
 
-
 
663
/** Fonction ADME_afficherListeMenuClassique () - Affiche un menu en html
-
 
664
*
-
 
665
* Elle déploie un les sous-menu d'un menu.
-
 
666
* Ancien nom : deployer_menu().
-
 
667
*
-
 
668
* @param  object objet Pear de connection à la base de données.
-
 
669
* @param  string code alphanumérique du site à administrer.
-
 
670
* @param  integer l'identifiant du menu à administrer.
-
 
671
* @param  integer l'identifiant du menu qui doit être ouvert.
-
 
672
* @param  integer l'identifiant du menu qui doit être déployé.
-
 
673
* @return string  du code XHTML.
-
 
674
*/
-
 
675
function ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $id_menu_a_deployer, $bln_premier_appel = true)
-
 
676
{
-
 
677
    // Initialisation des variables :
-
 
678
    $retour = '';
-
 
679
    
-
 
680
    // Est-ce que ces menus comporte des sous-menus ?
-
 
681
    $requete_sous_menu =    'SELECT gm_id_menu '.
-
 
682
                            'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
683
                            'WHERE GMR01.gmr_id_menu_02 = '.$id_menu_a_deployer.' '.
-
 
684
                            'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
-
 
685
                            'AND gm_ce_site = '.$adme_site_id.' '.
-
 
686
                            'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
-
 
687
                            'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
-
 
688
                            'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
-
 
689
                            'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
-
 
690
                            'ORDER BY GMR01.gmr_ordre ASC';
-
 
691
    
-
 
692
    $resultat_sous_menu = $db->query($requete_sous_menu) ;
-
 
693
    if (DB::isError($resultat_sous_menu)) {
-
 
694
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_sous_menu->getMessage(), $requete_sous_menu));
-
 
695
    }
-
 
696
    
-
 
697
    // Gestion du stockage ou déstockage des menus ouverts
-
 
698
    if ($adme_action == 'adme_menu_ouvrir' && $id_menu_a_deployer != 0) {
-
 
699
        $_SESSION['adme_menus_ouverts'][$adme_menu_id] = $adme_menu_id;
-
 
700
    }
-
 
701
    if ($adme_action == 'adme_menu_fermer' && $id_menu_a_deployer != 0) {
-
 
702
        unset($_SESSION['adme_menus_ouverts'][$adme_menu_id]);
-
 
703
        foreach ($_SESSION['adme_menus_ouverts'] as $val) {
-
 
704
            if (GEN_etreAncetre($adme_menu_id, $val)) {
-
 
705
                unset($_SESSION['adme_menus_ouverts'][$val]);
-
 
706
            }
-
 
707
        }
-
 
708
    }
-
 
709
    
-
 
710
    // Gestion affichage des menus
-
 
711
    if ($resultat_sous_menu->numRows() > 0) {
-
 
712
        // Ici, on sait qu'un menu a des sous menus, on commence par l'afficher:
-
 
713
        if ($bln_premier_appel == false) {
-
 
714
            $retour .= '<li>'."\n";
-
 
715
            
-
 
716
            if (GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || 
-
 
717
                ($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_ouvrir') || 
-
 
718
                isset($_SESSION['adme_menus_ouverts'][$id_menu_a_deployer])
-
 
719
                ){
-
 
720
                // Affiche un -
-
 
721
                $retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 1);
-
 
722
            } else if ( !GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || 
-
 
723
                        ($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_fermer') || 
-
 
724
                        !isset($_SESSION['adme_menus_ouverts'][$id_menu_a_deployer])
-
 
725
                        ){
-
 
726
                // Affiche un +
-
 
727
                $retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 2);
-
 
728
            }
-
 
729
        }
-
 
730
        if ($bln_premier_appel == true || GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || 
-
 
731
            ($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_ouvrir') || 
-
 
732
            isset($_SESSION['adme_menus_ouverts'][$id_menu_a_deployer])
-
 
733
            ){
-
 
734
            $retour .= '<ul>'."\n";
-
 
735
            while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
736
                $retour .= ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $ligne_sous_menu->gm_id_menu, false);
-
 
737
            }
-
 
738
            $retour .= '</ul>'."\n";
-
 
739
        }
-
 
740
        if ($bln_premier_appel == false) {
-
 
741
            $retour .= '</li>'."\n";
-
 
742
        }
-
 
743
    } else if ($resultat_sous_menu->numRows() == 0 && $bln_premier_appel == false) {
-
 
744
        $retour .= '<li>'."\n";
-
 
745
        $retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 0);
-
 
746
        $retour .= '</li>'."\n";
-
 
747
    }
-
 
748
    
-
 
749
    return $retour;
844
    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
-
 
845
}
-
 
846
 
750
}
847
/** Fonction ADME_supprimerMenuClassique() - Supprime un menu classique.
751
 
848
*
-
 
849
* Supprime de la base de données de Génésia toutes les traces du menu classiques
752
/** Fonction ADME_retournerXhtmlMenuClassique () Effectue une sortie d'un menu en XHTML
850
* passé en paramètre.
-
 
851
* Ancien nom : deleteMenu()
753
*
852
*
754
* Ancien nom : menu_toHtml().
853
* @param  mixed  l'objet Pear DB de connexion à la base de données.
755
*
854
* @param  string l'identifiant du menu à supprimer
756
* @return  string  Une liste HTML
-
 
757
*/
-
 
758
function ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $int_deplier)
-
 
759
{
-
 
760
    $etiquette_annuler = 'Annuler';
-
 
761
    $etiquette_alt_modifier     = 'Modifier';
-
 
762
    $etiquette_title_modifier     = 'Modifier ce menu';
-
 
763
    $etiquette_alt_supprimer   = 'Supprimer';
-
 
764
    $etiquette_title_supprimer   = 'Supprimer ce menu';
-
 
765
    $etiquette_alt_ajouter = 'Ajouter';
-
 
766
    $etiquette_title_ajouter = 'Ajouter un menu inférieur';
-
 
767
    $etiquette_alt_monter = 'Monter';
-
 
768
    $etiquette_title_monter = 'Monter ce menu';
855
* @return void   le menu classique est supprimé de la base de données.
769
    $etiquette_alt_descendre = 'Descendre';
-
 
770
    $etiquette_title_descendre = 'Descendre ce menu';
856
*/
771
    $etiquette_alt_redaction = 'Rédiger';
-
 
772
    $etiquette_title_redaction = 'Rédiger le contenu de ce menu';
857
function ADME_supprimerMenuClassique($db, $id_menu_a_supprimer)
773
    $etiquette_deplier = 'Déplier';
858
{
774
    $etiquette_plier = 'Plier';
859
    //----------------------------------------------------------------------------
-
 
860
    // Y a t'il des sous_menus
775
    
861
    $requete =  'SELECT COUNT(gm_id_menu) AS compte '.
Line 776... Line 862...
776
    $requete =  'SELECT gen_menu.*, ga_prenom '.
862
                'FROM gen_menu, gen_menu_relation '.
777
                'FROM gen_menu, gen_annuaire '.
-
 
778
                'WHERE gm_id_menu = '.$adme_menu_id.' '.
863
                'WHERE gmr_id_menu_02 = '.$id_menu_a_supprimer.' '.
779
                'AND gm_ce_admin = ga_id_administrateur';
-
 
780
    
-
 
781
    $resultat = $db->query($requete);
-
 
782
    if (DB::isError($resultat)) {
-
 
783
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
784
    }
-
 
785
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
786
    
-
 
787
    // recherche de l'application liée
-
 
788
    $requete_app =  'SELECT gap_nom '.
-
 
789
                    'FROM gen_application '.
-
 
790
                    'WHERE gap_id_application = '.$ligne->gm_ce_application;
-
 
791
    
-
 
792
    $resultat_app = $db->query($requete_app);
-
 
Line 793... Line -...
793
    if (DB::isError($resultat_app)) {
-
 
794
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_app->getMessage(), $requete_app));
864
                'AND gmr_id_valeur = 1 '.
Line 795... Line -...
795
    }
-
 
796
    $ligne_app = $resultat_app->fetchRow(DB_FETCHMODE_OBJECT);
-
 
797
    $resultat_app->free();
-
 
798
    
-
 
799
    //-------------------------------------------------------------------------------------------------------------------
-
 
800
    // XHTML image plier-déplier
-
 
801
    
-
 
802
    $url->addQueryString('adme_site_id', $adme_site_id);
-
 
803
    $url->addQueryString('adme_menu_id', $ligne->gm_id_menu);
-
 
804
    $xhtml_pd = '';
-
 
805
    if ($int_deplier != 0) {
865
                'AND gmr_id_menu_01 = gm_id_menu ';
806
        if ($int_deplier == 1) {
-
 
807
            // Afficher un -
-
 
808
            $image_plier_deplier = ADME_IMAGE_MOINS;
-
 
809
            $alt = $etiquette_plier;
-
 
810
            $url->addQueryString('adme_action', 'adme_menu_fermer');
-
 
811
            $url_plier_deplier = $url->getURL();
-
 
812
        } else if ($int_deplier == 2) {
-
 
813
            // Afficher un +
866
    
814
            $image_plier_deplier = ADME_IMAGE_PLUS;
-
 
815
            $alt = $etiquette_deplier;
867
    $resultat = $db->query($requete);
Line 816... Line 868...
816
            $url->addQueryString('adme_action', 'adme_menu_ouvrir');
868
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
817
            $url_plier_deplier = $url->getURL();
869
    
818
        }
-
 
819
        $xhtml_pd = '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'.
870
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
820
                        '<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'.
871
    
821
                    '</a>'.'&nbsp;'."\n";
-
 
Line 822... Line -...
822
    }
-
 
823
    
-
 
824
    //-------------------------------------------------------------------------------------------------------------------
-
 
825
    // XHTML du nom du menu et de ses infos
-
 
826
    $xhtml_info  = htmlentities(empty($ligne->gm_nom) ? '('.$ligne->gm_nom.')' : $ligne->gm_nom);
-
 
827
    $xhtml_info .= '&nbsp;';
-
 
828
    $xhtml_info .= '('.$ligne_app->gap_nom.' / '.$ligne->ga_prenom.')';
-
 
829
    $xhtml_info .= '&nbsp;'."\n";
872
    if ($ligne && ($ligne->compte > 0)) {
830
    
-
 
831
    //-------------------------------------------------------------------------------------------------------------------
-
 
832
    // XHTML actions
-
 
833
    $url->removeQueryString('adme_action');
-
 
834
    $url->addQueryString('adme_action', 'modifier_menu_classique');
-
 
835
    $xhtml_action = '<a href="'.$url->getURL().'" title="'.$etiquette_title_modifier.'">'.
-
 
836
                        '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_VOIR.'" alt="'.$etiquette_alt_modifier.'" />'.
-
 
837
                    '</a>&nbsp;'."\n";
-
 
838
    $url->removeQueryString('adme_action');
-
 
839
    $url->addQueryString('adme_action', 'monter_menu_classique');
-
 
840
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_monter.'">'.
-
 
841
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.$etiquette_alt_monter.'" />'.
-
 
842
                        '</a>&nbsp;'."\n";
-
 
843
    $url->removeQueryString('adme_action');
-
 
844
    $url->addQueryString('adme_action', 'descendre_menu_classique');
-
 
845
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_descendre.'">'.
-
 
846
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.$etiquette_alt_descendre.'" />'.
-
 
847
                        '</a>&nbsp;'."\n";
873
        return 'Ce menu contient encore des sous menus. Veuillez commencez par supprimer ces sous menus.';
848
    $url->removeQueryString('adme_action');
-
 
Line 849... Line 874...
849
    $url->addQueryString('adme_action', 'supprimer_menu_classique');
874
    }
850
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_supprimer.'">'.
875
    
851
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.$etiquette_alt_supprimer.'" />'.
-
 
852
                        '</a>&nbsp;'."\n";
876
    //----------------------------------------------------------------------------
853
    $url->removeQueryString('adme_action');
-
 
854
    $url->addQueryString('adme_action', 'ajouter_menu_classique');
-
 
855
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_ajouter.'">'.
-
 
856
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="'.$etiquette_alt_ajouter.'" />'.
877
    // S'il n'y a plus de sous niveau, on supprime le menu
857
                        '</a>'.'&nbsp;'."\n";
-
 
Line 858... Line -...
858
    
-
 
859
    // Si l'application liée est "texte simple", on ajoute un icone avec un lien vers
878
    $requete =  'DELETE FROM gen_menu '.
860
    // l'administration de cette application.
879
                'WHERE gm_id_menu = '.$id_menu_a_supprimer;
861
    if ($ligne->gm_ce_application == 3) { // l'appli afficheur a pour id 3
-
 
862
        $url->removeQueryString('adme_action');
880
    
Line 863... Line 881...
863
        $url->addQueryString('adme_action', 'contenu_rediger');
881
    $resultat = $db->query($requete);
864
        $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.$etiquette_title_redaction.'">'.
882
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
865
                                '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TEXTE.'" alt="'.$etiquette_alt_redaction.'" />'.
883
    
Line 866... Line 884...
866
                            '</a>'.'&nbsp;'."\n";
884
    //----------------------------------------------------------------------------
867
    }
885
    // Puis on supprime les relations de ce menu
868
    
886
    $requete =  'DELETE FROM gen_menu_relation '.
-
 
887
                'WHERE gmr_id_menu_01 = '.$id_menu_a_supprimer;
-
 
888
    
-
 
889
    $resultat = $db->query($requete);
-
 
890
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
869
    //-------------------------------------------------------------------------------------------------------------------
891
}
870
    // Envoi du menu.
892
 
871
    $retour = $xhtml_pd.$xhtml_info.$xhtml_action;
893
// +------------------------------------------------------------------------------------------------------+
872
    return $retour;
894
// |                                            PIED du PROGRAMME                                         |
873
}
895
// +------------------------------------------------------------------------------------------------------+