Subversion Repositories Applications.papyrus

Rev

Rev 163 | Rev 409 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1                                                                                      |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or                                        |
// | modify it under the terms of the GNU Lesser General Public                                           |
// | License as published by the Free Software Foundation; either                                         |
// | version 2.1 of the License, or (at your option) any later version.                                   |
// |                                                                                                      |
// | This library is distributed in the hope that it will be useful,                                      |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
// | Lesser General Public License for more details.                                                      |
// |                                                                                                      |
// | You should have received a copy of the GNU Lesser General Public                                     |
// | License along with this library; if not, write to the Free Software                                  |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: admin_menu.php,v 1.14 2005-02-28 10:31:41 jpm Exp $
/**
* Application gérant les menus de Papyrus
*
* Cette application permet de gérer les menus classiques, les menus communs 
* et les liaison d'une application à un menu.
*
*@package Admin_menu
//Auteur original :
*@author        Laurent COUDOUNEAU <lc@gsite.org>
//Autres auteurs :
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright     Tela-Botanica 2000-2004
*@version       $Revision: 1.14 $ $Date: 2005-02-28 10:31:41 $
// +------------------------------------------------------------------------------------------------------+
*/

// +------------------------------------------------------------------------------------------------------+
// |                                            ENTÊTE du PROGRAMME                                       |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php';

//Utilisation de la bibliothèque PEAR NET_URL

/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php';

/** Inclusion de l'API de fonctions gérant les erreurs sql.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php';

/** Inclusion des fonctions de manipulation du sql.
* Permet la récupération d'un nouvel identifiant d'une table.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';

/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';

/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';

/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_applications..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php';

/** <BR> Inclusion de la bibliothèque de fonctions concernant l'affichage commun.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_general.fonct.php';//ok

/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus classiques.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_classique.fonct.php';//ok

/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus communs.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_commun.fonct.php';//ok

/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion de la rédaction de contenu.*/
//require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_contenu.fonct.php';//ok

// Inclusion des fichiers de traduction de l'appli ADME dePapyrus
if (file_exists(ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
    /** Inclusion du fichier de traduction suite à la transaction avec le navigateur.*/
    require_once ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
} else {
    /** Inclusion du fichier de traduction par défaut.*/
    require_once ADME_CHEMIN_LANGUE.'adme_langue_'.ADME_I18N_DEFAUT.'.inc.php';
}

// Stockage des styles de l'application
GEN_stockerStyleExterne('adme_standard', ADME_CHEMIN_STYLE.'adme_standard.css');

// +------------------------------------------------------------------------------------------------------+
// |                                            CORPS du PROGRAMME                                        |
// +------------------------------------------------------------------------------------------------------+

function afficherContenuCorps()
{
    //-------------------------------------------------------------------------------------------------------------------
    // Initialisation des variables
    $sortie_xhtml = '';
    $objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
    $objet_pear_db = $GLOBALS['_GEN_commun']['pear_db'];
    $objet_pear_url = $GLOBALS['_GEN_commun']['url'];
    $url_site = $GLOBALS['_GEN_commun']['url_site'];
    $url_menu = $GLOBALS['_GEN_commun']['url_menu'];
    $url_i18n = $GLOBALS['_GEN_commun']['url_i18n'];
    if (isset($_POST['adme_site_id'])) {
        $_GET['adme_site_id'] = $_POST['adme_site_id'];
    } else {
        $_GET['adme_site_id'] = (!isset($_GET['adme_site_id'])) ? 0 : $_GET['adme_site_id'];
    }
    $_GET['adme_menu_id'] = (!isset($_GET['adme_menu_id'])) ? 0 : $_GET['adme_menu_id'];
    $_GET['adme_action'] = (!isset($_GET['adme_action'])) ? '' : $_GET['adme_action'];
    
    //-------------------------------------------------------------------------------------------------------------------
    // Authentification
    if ($objet_pear_auth->getAuth()) {
        //---------------------------------------------------------------------------------------------------------------
        // GESTION DES MENUS CLASSIQUES
        
        // Ajouter un menu classique
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AJOUTER) {
            $message = ADME_ajouterMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']);
        }
        
        // Formulaire de mise à jour du menu
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MODIFIER) {
            $sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
            return $sortie_xhtml;
        }
        if (isset($_POST[ADME_LG_ACTION_CLASSIQUE_VERIFIER])) {
            // Nous cherchons à enregistrer une modification de menu
            $message = ADME_validerFormAjouterMenuClassique($objet_pear_db, $_POST);
            if (!empty($message)) {
                // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
                $sortie_xhtml .= $message;
                $sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST);
                return $sortie_xhtml;
            } else {
                // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
                $message = ADME_modifierMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
            }
        }
        
        // Déplacer le menu vers le haut
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MONTER) {
            ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
        }
        
        // Déplacer le menu vers le bas
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DESCENDRE) {
            ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
        }
        
        // Supprimer le menu
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_SUPPRIMER) {
            // Récupération du menu de remplacement pour éviter de fermer l'arborescence
            if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
                $adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
            } else {
                $adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
            }
            // Suppression du menu classique
            $message = ADME_supprimerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']);
            // Remplacement de l'id du menu courant par le remplaçant.
            $_GET['adme_menu_id'] = $adme_menu_id_remplacement;
        }
        
        //---------------------------------------------------------------------------------------------------------------
        // GESTION DES MENUS COMMUNS
        
        // Ajout un menu commun
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_AJOUTER) {
            $message = ADME_ajouterMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']);
        }
        
        // Formulaire de mise à jour du menu commun.
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MODIFIER) {
            $sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
            return $sortie_xhtml;
        }
        if (isset($_POST[ADME_LG_ACTION_COMMUN_VERIFIER])) {
            // Nous cherchons à enregistrer une modification de menu
            $message = ADME_validerFormAjouterMenuCommun($objet_pear_db, $_POST);
            if (!empty($message)) {
                // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
                $sortie_xhtml .= $message;
                $sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
                return $sortie_xhtml;
            } else {
                // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
                $message = ADME_modifierMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
            }
        }
        
        // Déplace vers le haut de la hiérarchie un menu commun
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MONTER) {
            ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
        }
        
        // Déplace vers le bas de la hiérarchie un menu commun
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DESCENDRE) {
            ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
        }
        
        // Supprime définitivement un menu commun
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_SUPPRIMER) {
            // Récupération du menu de remplacement pour éviter de fermer l'arborescence
            if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
                $adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
            } else {
                $adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
            }
            // Suppression du menu commun
            ADME_supprimerMenuCommun($objet_pear_db, $_GET['adme_menu_id']);
            // Remplacement de l'id du menu courant par le remplaçant.
            $_GET['adme_menu_id'] = $adme_menu_id_remplacement;
        }
        
        //---------------------------------------------------------------------------------------------------------------
        // GESTION DES INTERFACES D'ADMINISTRATION
        
        // Appel de l'application d'administration
        if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_ADMINISTRER) {
            $id_appli = GEN_retournerIdAppliMenu($objet_pear_db, $_GET['adme_menu_id']);
            $chemin_admin = GEN_retournerCheminInterfaceAdmin($objet_pear_db, $id_appli);
            $nom_admin = GEN_retournerNomInterfaceAdmin($objet_pear_db, $id_appli);
            if ($chemin_admin !== false) {
                include_once $chemin_admin;
                $objet_admin = new $nom_admin;
                if (method_exists($objet_admin, 'afficherContenuCorps')) {
                    $retour_admin = $objet_admin->afficherContenuCorps();
                }
                if ($retour_admin !== false) {
                    return $retour_admin;
                }
            }
        }
        
        //---------------------------------------------------------------------------------------------------------------
        // Affichage des messages si nécessaire
        if (! empty($message)) {
            $sortie_xhtml .= "\n".'<p class="pap_erreur">'.$message.'</p>';
        }
        
        //---------------------------------------------------------------------------------------------------------------
        // Affichage formulaire principal et retour du XHTML!
        $sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
        return $sortie_xhtml;
        // Fin de l'authentification
    } else {
        // Pas d'authentification nous affichons un message!
        return GEN_afficherInfoIdentification($objet_pear_url);
    }
}// Fin de la fonction afficherContenuCorps()

// +------------------------------------------------------------------------------------------------------+
// |                                            PIED du PROGRAMME                                         |
// +------------------------------------------------------------------------------------------------------+



/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.13  2004/11/16 13:01:41  jpm
* Ajout d'un commentaire.
*
* Revision 1.12  2004/11/15 16:51:08  jpm
* Correction bogue de mise à jour de l'ordre des menus.
*
* Revision 1.11  2004/11/10 17:26:18  jpm
* Fin gestion de la traduction.
*
* Revision 1.10  2004/11/10 11:58:58  jpm
* Mise en place des constantes de traduction de l'appli.
*
* Revision 1.9  2004/11/09 17:53:03  jpm
* Changement des noms des actions sur les menus classiques.
*
* Revision 1.8  2004/11/09 17:49:11  jpm
* Mise en conformité et gestion de différentes interfaces d'administration.
*
* Revision 1.7  2004/10/25 16:28:02  jpm
* Correction convention de codage.
*
* Revision 1.6  2004/09/23 17:45:19  jpm
* Amélioration de la gestion des liens annuler et du selecteur de sites.
*
* Revision 1.5  2004/09/23 16:49:24  jpm
* Correction d'une erreur dans l'url de l'ajout de menu commun.
*
* Revision 1.4  2004/07/06 17:24:54  jpm
* Suppression d'inclusions de fichiers inutiles.
*
* Revision 1.3  2004/07/06 17:07:28  jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.2  2004/06/16 15:06:30  jpm
* Suppression fichier inutile.
*
* Revision 1.1  2004/06/16 15:04:39  jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.26  2004/05/10 14:32:21  jpm
* Changement du titre.
*
* Revision 1.25  2004/05/10 12:13:23  jpm
* Ajout de la sélection des sites.
*
* Revision 1.24  2004/05/07 16:33:05  jpm
* Intégration de constantes.
*
* Revision 1.23  2004/05/07 07:23:53  jpm
* Amélioration du code, des commentaires et correction de bogues.
*
* Revision 1.22  2004/05/05 06:45:44  jpm
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.
*
* Revision 1.21  2004/05/04 16:27:33  jpm
* Réduction de code pour la fonction afficherContenuTete().
*
* Revision 1.20  2004/05/03 11:23:26  jpm
* Début mise en conformité des commentaires.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>