Subversion Repositories Applications.papyrus

Rev

Rev 142 | 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
// +------------------------------------------------------------------------------------------------------+
143 jpm 22
// CVS : $Id: admin_menu.php,v 1.9 2004-11-09 17:53:03 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
143 jpm 36
*@version       $Revision: 1.9 $ $Date: 2004-11-09 17:53:03 $
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
143 jpm 121
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_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
143 jpm 126
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_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
        }
142 jpm 130
        if (isset($_POST['menu_classique_verifier'])) {
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.
135
                $sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST);
136
            } else {
137
                // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
138
                $message = ADME_modifierMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
139
            }
7 jpm 140
        }
141
 
142
        // Déplacer le menu vers le haut
143 jpm 143
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_classique_monter') {
142 jpm 144
            ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
7 jpm 145
        }
146
 
147
        // Déplacer le menu vers le bas
143 jpm 148
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_classique_descendre') {
142 jpm 149
            ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
7 jpm 150
        }
151
 
142 jpm 152
        // Supprimer le menu
143 jpm 153
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_classique_supprimer') {
142 jpm 154
            // Récupération du menu de remplacement pour éviter de fermer l'arborescence
155
            if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
156
                $adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
157
            } else {
158
                $adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
159
            }
160
            // Suppression du menu classique
161
            $message = ADME_supprimerMenuClassique($objet_pear_db, $_GET['adme_menu_id']);
162
            // Remplacement de l'id du menu courant par le remplaçant.
163
            $_GET['adme_menu_id'] = $adme_menu_id_remplacement;
7 jpm 164
        }
165
 
142 jpm 166
        //---------------------------------------------------------------------------------------------------------------
167
        // GESTION DES MENUS COMMUNS
7 jpm 168
 
169
        // Ajout un menu commun
142 jpm 170
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_commun_ajouter') {
171
            $message = ADME_ajouterMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']);
7 jpm 172
        }
173
 
142 jpm 174
        // Formulaire de mise à jour du menu commun.
175
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_commun_modifier') {
176
            $sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
177
            return $sortie_xhtml;
7 jpm 178
        }
142 jpm 179
        if (isset($_POST['menu_commun_verifier'])) {
180
            // Nous cherchons à enregistrer une modification de menu
181
            $message = ADME_validerFormAjouterMenuCommun($objet_pear_db, $_POST);
182
            if (!empty($message)) {
183
                // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
184
                $sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
185
            } else {
186
                // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
187
                $message = ADME_modifierMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
188
            }
7 jpm 189
        }
190
 
191
        // Déplace vers le haut de la hiérarchie un menu commun
142 jpm 192
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_commun_monter') {
193
            ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
7 jpm 194
        }
195
 
196
        // Déplace vers le bas de la hiérarchie un menu commun
142 jpm 197
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_commun_descendre') {
198
            ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
7 jpm 199
        }
200
 
201
        // Supprime définitivement un menu commun
142 jpm 202
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'menu_commun_supprimer') {
203
            // Récupération du menu de remplacement pour éviter de fermer l'arborescence
204
            if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
205
                $adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
206
            } else {
207
                $adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
208
            }
209
            // Suppression du menu commun
210
            ADME_supprimerMenuCommun($objet_pear_db, $_GET['adme_menu_id']);
211
            // Remplacement de l'id du menu courant par le remplaçant.
212
            $_GET['adme_menu_id'] = $adme_menu_id_remplacement;
7 jpm 213
        }
214
 
142 jpm 215
        //---------------------------------------------------------------------------------------------------------------
216
        // GESTION DES INTERFACES D'ADMINISTRATION
7 jpm 217
 
142 jpm 218
        // Appel de l'application d'administration
219
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == 'administrer') {
220
            $id_appli = GEN_retournerIdAppliMenu($objet_pear_db, $_GET['adme_menu_id']);
221
            $chemin_admin = GEN_retournerCheminInterfaceAdmin($objet_pear_db, $id_appli);
222
            $nom_admin = GEN_retournerNomInterfaceAdmin($objet_pear_db, $id_appli);
223
            if ($chemin_admin !== false) {
224
                include_once $chemin_admin;
225
                $objet_admin = new $nom_admin;
226
                if (method_exists($objet_admin, 'afficherContenuCorps')) {
227
                    $retour_admin = $objet_admin->afficherContenuCorps();
228
                }
229
                if ($retour_admin !== false) {
230
                    return $retour_admin;
231
                }
7 jpm 232
            }
233
        }
234
 
142 jpm 235
        //---------------------------------------------------------------------------------------------------------------
236
        // Affichage des messages si nécessaire
237
        if (! empty($message)) {
238
            $sortie_xhtml .= "\n".'<p class="pap_erreur">'.$message.'</p>';
7 jpm 239
        }
240
 
142 jpm 241
        //---------------------------------------------------------------------------------------------------------------
242
        // Affichage formulaire principal et retour du XHTML!
243
        $sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
244
        return $sortie_xhtml;
7 jpm 245
        // Fin de l'authentification
246
    } else {
142 jpm 247
        // Pas d'authentification nous affichons un message!
248
        return GEN_afficherInfoIdentification($objet_pear_url);
7 jpm 249
    }
250
}// Fin de la fonction afficherContenuCorps()
251
 
252
// +------------------------------------------------------------------------------------------------------+
142 jpm 253
// |                                            PIED du PROGRAMME                                         |
7 jpm 254
// +------------------------------------------------------------------------------------------------------+
255
 
256
 
257
 
258
/* +--Fin du code ----------------------------------------------------------------------------------------+
259
*
260
* $Log: not supported by cvs2svn $
143 jpm 261
* Revision 1.8  2004/11/09 17:49:11  jpm
262
* Mise en conformité et gestion de différentes interfaces d'administration.
263
*
142 jpm 264
* Revision 1.7  2004/10/25 16:28:02  jpm
265
* Correction convention de codage.
266
*
111 jpm 267
* Revision 1.6  2004/09/23 17:45:19  jpm
268
* Amélioration de la gestion des liens annuler et du selecteur de sites.
269
*
56 jpm 270
* Revision 1.5  2004/09/23 16:49:24  jpm
271
* Correction d'une erreur dans l'url de l'ajout de menu commun.
272
*
54 jpm 273
* Revision 1.4  2004/07/06 17:24:54  jpm
274
* Suppression d'inclusions de fichiers inutiles.
275
*
30 jpm 276
* Revision 1.3  2004/07/06 17:07:28  jpm
277
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
278
*
25 jpm 279
* Revision 1.2  2004/06/16 15:06:30  jpm
280
* Suppression fichier inutile.
281
*
8 jpm 282
* Revision 1.1  2004/06/16 15:04:39  jpm
283
* Changement de nom de Génésia en Papyrus.
284
* Changement de l'arborescence.
285
*
7 jpm 286
* Revision 1.26  2004/05/10 14:32:21  jpm
287
* Changement du titre.
288
*
289
* Revision 1.25  2004/05/10 12:13:23  jpm
290
* Ajout de la sélection des sites.
291
*
292
* Revision 1.24  2004/05/07 16:33:05  jpm
293
* Intégration de constantes.
294
*
295
* Revision 1.23  2004/05/07 07:23:53  jpm
296
* Amélioration du code, des commentaires et correction de bogues.
297
*
298
* Revision 1.22  2004/05/05 06:45:44  jpm
299
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.
300
*
301
* Revision 1.21  2004/05/04 16:27:33  jpm
302
* Réduction de code pour la fonction afficherContenuTete().
303
*
304
* Revision 1.20  2004/05/03 11:23:26  jpm
305
* Début mise en conformité des commentaires.
306
*
307
*
308
* +-- Fin du code ----------------------------------------------------------------------------------------+
309
*/
310
?>