Subversion Repositories Applications.papyrus

Rev

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