Subversion Repositories Applications.papyrus

Rev

Rev 148 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7 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
// +------------------------------------------------------------------------------------------------------+
150 jpm 22
// CVS : $Id: admin_menu.php,v 1.11 2004-11-10 17:26:18 jpm Exp $
7 jpm 23
/**
24
* Application gérant les menus de Papyrus
25
*
26
* Cette application permet de gérer les menus classiques, les menus communs
27
* et les liaison d'une application à un menu.
28
*
25 jpm 29
*@package Admin_menu
7 jpm 30
//Auteur original :
31
*@author        Laurent COUDOUNEAU <lc@gsite.org>
32
//Autres auteurs :
33
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
34
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
35
*@copyright     Tela-Botanica 2000-2004
150 jpm 36
*@version       $Revision: 1.11 $ $Date: 2004-11-10 17:26:18 $
7 jpm 37
// +------------------------------------------------------------------------------------------------------+
38
*/
39
 
40
// +------------------------------------------------------------------------------------------------------+
41
// |                                            ENTÊTE du PROGRAMME                                       |
42
// +------------------------------------------------------------------------------------------------------+
43
                                    /*Mettre ici les inclusions de fichiers*/
44
/** Inclusion du fichier de configuration de cette application.*/
45
require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php';
46
 
47
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
48
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
56 jpm 49
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php';
7 jpm 50
 
51
/** Inclusion de l'API de fonctions gérant les erreurs sql.*/
52
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage_1.0/BOG_sql.fonct.php';
53
 
54
/** Inclusion des fonctions de manipulation du sql.
55
* Permet la récupération d'un nouvel identifiant d'une table.*/
56
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'sql_1.0/SQL_manipulation.fonct.php';
57
 
58
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/
59
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';
60
 
61
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.*/
62
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';
63
 
142 jpm 64
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_applications..." de Papyrus.*/
65
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php';
66
 
67
/** <BR> Inclusion de la bibliothèque de fonctions concernant l'affichage commun.*/
68
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_general.fonct.php';//ok
69
 
7 jpm 70
/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus classiques.*/
71
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_classique.fonct.php';//ok
72
 
73
/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus communs.*/
74
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_commun.fonct.php';//ok
75
 
76
/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion de la rédaction de contenu.*/
142 jpm 77
//require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_contenu.fonct.php';//ok
7 jpm 78
 
142 jpm 79
// Inclusion des fichiers de traduction de l'appli ADME dePapyrus
80
if (file_exists(ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
81
    /** Inclusion du fichier de traduction suite à la transaction avec le navigateur.*/
82
    require_once ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
83
} else {
84
    /** Inclusion du fichier de traduction par défaut.*/
85
    require_once ADME_CHEMIN_LANGUE.'adme_langue_'.ADME_I18N_DEFAUT.'.inc.php';
86
}
87
 
88
// Stockage des styles de l'application
89
GEN_stockerStyleExterne('adme_standard', ADME_CHEMIN_STYLE.'adme_standard.css');
90
 
7 jpm 91
// +------------------------------------------------------------------------------------------------------+
92
// |                                            CORPS du PROGRAMME                                        |
93
// +------------------------------------------------------------------------------------------------------+
94
 
95
function afficherContenuCorps()
96
{
142 jpm 97
    //-------------------------------------------------------------------------------------------------------------------
98
    // Initialisation des variables
99
    $sortie_xhtml = '';
100
    $objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
101
    $objet_pear_db = $GLOBALS['_GEN_commun']['pear_db'];
102
    $objet_pear_url = $GLOBALS['_GEN_commun']['url'];
103
    $url_site = $GLOBALS['_GEN_commun']['url_site'];
104
    $url_menu = $GLOBALS['_GEN_commun']['url_menu'];
105
    $url_i18n = $GLOBALS['_GEN_commun']['url_i18n'];
106
    if (isset($_POST['adme_site_id'])) {
107
        $_GET['adme_site_id'] = $_POST['adme_site_id'];
7 jpm 108
    } else {
142 jpm 109
        $_GET['adme_site_id'] = (!isset($_GET['adme_site_id'])) ? 0 : $_GET['adme_site_id'];
7 jpm 110
    }
142 jpm 111
    $_GET['adme_menu_id'] = (!isset($_GET['adme_menu_id'])) ? 0 : $_GET['adme_menu_id'];
112
    $_GET['adme_action'] = (!isset($_GET['adme_action'])) ? '' : $_GET['adme_action'];
7 jpm 113
 
142 jpm 114
    //-------------------------------------------------------------------------------------------------------------------
7 jpm 115
    // Authentification
142 jpm 116
    if ($objet_pear_auth->getAuth()) {
117
        //---------------------------------------------------------------------------------------------------------------
118
        // GESTION DES MENUS CLASSIQUES
7 jpm 119
 
142 jpm 120
        // Ajouter un menu classique
150 jpm 121
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AJOUTER) {
142 jpm 122
            $message = ADME_ajouterMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']);
7 jpm 123
        }
124
 
125
        // Formulaire de mise à jour du menu
150 jpm 126
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MODIFIER) {
142 jpm 127
            $sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
128
            return $sortie_xhtml;
7 jpm 129
        }
150 jpm 130
        if (isset($_POST[ADME_LG_ACTION_CLASSIQUE_VERIFIER])) {
142 jpm 131
            // Nous cherchons à enregistrer une modification de menu
132
            $message = ADME_validerFormAjouterMenuClassique($objet_pear_db, $_POST);
133
            if (!empty($message)) {
134
                // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
150 jpm 135
                $sortie_xhtml .= $message;
142 jpm 136
                $sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST);
150 jpm 137
                return $sortie_xhtml;
142 jpm 138
            } else {
139
                // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
140
                $message = ADME_modifierMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
141
            }
7 jpm 142
        }
143
 
144
        // Déplacer le menu vers le haut
150 jpm 145
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MONTER) {
142 jpm 146
            ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
7 jpm 147
        }
148
 
149
        // Déplacer le menu vers le bas
150 jpm 150
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DESCENDRE) {
142 jpm 151
            ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
7 jpm 152
        }
153
 
142 jpm 154
        // Supprimer le menu
150 jpm 155
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_SUPPRIMER) {
142 jpm 156
            // Récupération du menu de remplacement pour éviter de fermer l'arborescence
157
            if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
158
                $adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
159
            } else {
160
                $adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
161
            }
162
            // Suppression du menu classique
163
            $message = ADME_supprimerMenuClassique($objet_pear_db, $_GET['adme_menu_id']);
164
            // Remplacement de l'id du menu courant par le remplaçant.
165
            $_GET['adme_menu_id'] = $adme_menu_id_remplacement;
7 jpm 166
        }
167
 
142 jpm 168
        //---------------------------------------------------------------------------------------------------------------
169
        // GESTION DES MENUS COMMUNS
7 jpm 170
 
171
        // Ajout un menu commun
150 jpm 172
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_AJOUTER) {
142 jpm 173
            $message = ADME_ajouterMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']);
7 jpm 174
        }
175
 
142 jpm 176
        // Formulaire de mise à jour du menu commun.
150 jpm 177
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MODIFIER) {
142 jpm 178
            $sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
179
            return $sortie_xhtml;
7 jpm 180
        }
150 jpm 181
        if (isset($_POST[ADME_LG_ACTION_COMMUN_VERIFIER])) {
142 jpm 182
            // Nous cherchons à enregistrer une modification de menu
183
            $message = ADME_validerFormAjouterMenuCommun($objet_pear_db, $_POST);
184
            if (!empty($message)) {
185
                // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
150 jpm 186
                $sortie_xhtml .= $message;
142 jpm 187
                $sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
150 jpm 188
                return $sortie_xhtml;
142 jpm 189
            } else {
190
                // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
191
                $message = ADME_modifierMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
192
            }
7 jpm 193
        }
194
 
195
        // Déplace vers le haut de la hiérarchie un menu commun
150 jpm 196
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MONTER) {
142 jpm 197
            ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
7 jpm 198
        }
199
 
200
        // Déplace vers le bas de la hiérarchie un menu commun
150 jpm 201
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DESCENDRE) {
142 jpm 202
            ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
7 jpm 203
        }
204
 
205
        // Supprime définitivement un menu commun
150 jpm 206
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_SUPPRIMER) {
142 jpm 207
            // Récupération du menu de remplacement pour éviter de fermer l'arborescence
208
            if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
209
                $adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
210
            } else {
211
                $adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
212
            }
213
            // Suppression du menu commun
214
            ADME_supprimerMenuCommun($objet_pear_db, $_GET['adme_menu_id']);
215
            // Remplacement de l'id du menu courant par le remplaçant.
216
            $_GET['adme_menu_id'] = $adme_menu_id_remplacement;
7 jpm 217
        }
218
 
142 jpm 219
        //---------------------------------------------------------------------------------------------------------------
220
        // GESTION DES INTERFACES D'ADMINISTRATION
7 jpm 221
 
142 jpm 222
        // Appel de l'application d'administration
148 jpm 223
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_ADMINISTRER) {
142 jpm 224
            $id_appli = GEN_retournerIdAppliMenu($objet_pear_db, $_GET['adme_menu_id']);
225
            $chemin_admin = GEN_retournerCheminInterfaceAdmin($objet_pear_db, $id_appli);
226
            $nom_admin = GEN_retournerNomInterfaceAdmin($objet_pear_db, $id_appli);
227
            if ($chemin_admin !== false) {
228
                include_once $chemin_admin;
229
                $objet_admin = new $nom_admin;
230
                if (method_exists($objet_admin, 'afficherContenuCorps')) {
231
                    $retour_admin = $objet_admin->afficherContenuCorps();
232
                }
233
                if ($retour_admin !== false) {
234
                    return $retour_admin;
235
                }
7 jpm 236
            }
237
        }
238
 
142 jpm 239
        //---------------------------------------------------------------------------------------------------------------
240
        // Affichage des messages si nécessaire
241
        if (! empty($message)) {
242
            $sortie_xhtml .= "\n".'<p class="pap_erreur">'.$message.'</p>';
7 jpm 243
        }
244
 
142 jpm 245
        //---------------------------------------------------------------------------------------------------------------
246
        // Affichage formulaire principal et retour du XHTML!
247
        $sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
248
        return $sortie_xhtml;
7 jpm 249
        // Fin de l'authentification
250
    } else {
142 jpm 251
        // Pas d'authentification nous affichons un message!
252
        return GEN_afficherInfoIdentification($objet_pear_url);
7 jpm 253
    }
254
}// Fin de la fonction afficherContenuCorps()
255
 
256
// +------------------------------------------------------------------------------------------------------+
142 jpm 257
// |                                            PIED du PROGRAMME                                         |
7 jpm 258
// +------------------------------------------------------------------------------------------------------+
259
 
260
 
261
 
262
/* +--Fin du code ----------------------------------------------------------------------------------------+
263
*
264
* $Log: not supported by cvs2svn $
150 jpm 265
* Revision 1.10  2004/11/10 11:58:58  jpm
266
* Mise en place des constantes de traduction de l'appli.
267
*
148 jpm 268
* Revision 1.9  2004/11/09 17:53:03  jpm
269
* Changement des noms des actions sur les menus classiques.
270
*
143 jpm 271
* Revision 1.8  2004/11/09 17:49:11  jpm
272
* Mise en conformité et gestion de différentes interfaces d'administration.
273
*
142 jpm 274
* Revision 1.7  2004/10/25 16:28:02  jpm
275
* Correction convention de codage.
276
*
111 jpm 277
* Revision 1.6  2004/09/23 17:45:19  jpm
278
* Amélioration de la gestion des liens annuler et du selecteur de sites.
279
*
56 jpm 280
* Revision 1.5  2004/09/23 16:49:24  jpm
281
* Correction d'une erreur dans l'url de l'ajout de menu commun.
282
*
54 jpm 283
* Revision 1.4  2004/07/06 17:24:54  jpm
284
* Suppression d'inclusions de fichiers inutiles.
285
*
30 jpm 286
* Revision 1.3  2004/07/06 17:07:28  jpm
287
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
288
*
25 jpm 289
* Revision 1.2  2004/06/16 15:06:30  jpm
290
* Suppression fichier inutile.
291
*
8 jpm 292
* Revision 1.1  2004/06/16 15:04:39  jpm
293
* Changement de nom de Génésia en Papyrus.
294
* Changement de l'arborescence.
295
*
7 jpm 296
* Revision 1.26  2004/05/10 14:32:21  jpm
297
* Changement du titre.
298
*
299
* Revision 1.25  2004/05/10 12:13:23  jpm
300
* Ajout de la sélection des sites.
301
*
302
* Revision 1.24  2004/05/07 16:33:05  jpm
303
* Intégration de constantes.
304
*
305
* Revision 1.23  2004/05/07 07:23:53  jpm
306
* Amélioration du code, des commentaires et correction de bogues.
307
*
308
* Revision 1.22  2004/05/05 06:45:44  jpm
309
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.
310
*
311
* Revision 1.21  2004/05/04 16:27:33  jpm
312
* Réduction de code pour la fonction afficherContenuTete().
313
*
314
* Revision 1.20  2004/05/03 11:23:26  jpm
315
* Début mise en conformité des commentaires.
316
*
317
*
318
* +-- Fin du code ----------------------------------------------------------------------------------------+
319
*/
320
?>