New file |
0,0 → 1,483 |
<?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.1 2004-06-16 15:04:39 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 Administrateur Menus |
//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.1 $ $Date: 2004-06-16 15:04:39 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici les inclusions de fichiers*/ |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php'; |
|
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php'; |
|
/** Inclusion de l'API de fonctions gérant les erreurs sql.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage_1.0/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_1.0/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 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 |
|
require_once ADME_CHEMIN_APPLICATION.'doc.php'; |
|
require_once ADME_CHEMIN_APPLICATION.'page.php'; |
|
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici le code du programme*/ |
/** Fonction afficherContenuTete() - Fonction appelé par le gestionnaire Papyrus. |
* |
* Elle retourne l'entête de l'application.. |
* |
* @return string du code XHTML correspondant à la zone d'entête de l'application. |
*/ |
function afficherContenuTete() |
{ |
return ''; |
} |
|
function afficherContenuCorps() |
{ |
global $_GEN_commun; |
$objet_pear_auth = $_GEN_commun['pear_auth']; |
$objet_pear_db = $_GEN_commun['pear_db']; |
$db = $_GEN_commun['pear_db']; |
|
$url_site = $_GEN_commun['url_site']; |
$url_menu = $_GEN_commun['url_menu']; |
$url_i18n = $_GEN_commun['url_i18n']; |
$outputText = '' ; |
//------------------------------------------------------------------------------ |
// Vérification de la présence d'arguments pour l'application. |
|
if (!isset($_POST['adminProject'])) { |
if (!isset($_GET['adminProject'])) { |
$adminProject = ''; |
} else { |
$adminProject = $_GET['adminProject']; |
} |
} else { |
$adminProject = $_POST['adminProject']; |
} |
/* |
$adminProject = $_GEN_commun['info_site']->gs_code_alpha; |
|
if (isset($_GEN_commun['info_application']->site)) { |
$adminProject = $_GEN_commun['info_application']->site; |
} |
*/ |
global $adminLocale; |
if (empty($adminLocale)) { |
$adminLocale = $_GEN_commun['info_site']->gs_ce_i18n; |
} |
//------------------------------------------------------------------------------ |
// Internationalisation ? |
if (isset ($doclocale) && ($doclocale != '')) { |
$adminLocale = $doclocale; |
} |
|
//------------------------------------------------------------------------------ |
// Arguments spécifique à l'application. |
global $menuid; |
global $upperid; |
global $doccmd; |
global $docopen; |
global $menuopen; |
global $upperopen; |
|
global $doc_name; |
global $doc_title; |
|
global $docid; |
global $pageid; |
global $pageopen; |
|
//------------------------------------------------------------------------------ |
// L'url de base pour revenir au menu (=page) en cours. |
$url = |
'papyrus.php'. |
'?'.GEN_URL_CLE_SITE.'='.$url_site. |
'&'.GEN_URL_CLE_MENU.'='.$url_menu; |
|
$baseURL = |
'papyrus.php'. |
'?'.GEN_URL_CLE_SITE.'='.$url_site. |
'&'.GEN_URL_CLE_MENU.'='.$url_menu. |
'&'.GEN_URL_CLE_I18N.'='.$url_i18n; |
|
$baseURLjs = |
'papyrus.php'. |
'?'.GEN_URL_CLE_SITE.'='.$url_site. |
'&'.GEN_URL_CLE_MENU.'='.$url_menu. |
'&'.GEN_URL_CLE_I18N.'='.$url_i18n. |
'&adminProject='.$adminProject; |
//'&doclocale='.$doclocale; |
|
// Virer la variable baseHidden devenu inutile |
$baseHidden = ''; |
|
//------------------------------------------------------------------------------ |
// Authentification |
if ($_GEN_commun['pear_auth']->getAuth()) { |
//------------------------------------------------------------------------------ |
// Gestion des commandes. |
|
//------------------------------------------------------------------------------ |
// Gestion des menus classiques |
|
// Ajout d'un menu |
if ($doccmd == 'addmenu') { |
$doccmd = ''; |
addMenu($adminProject, $adminLocale); |
} |
|
// Formulaire de mise à jour du menu |
if ($doccmd == 'showmenu') { |
$outputText .= showMenu ( $db, $adminProject, $adminLocale, $baseURL, $baseURLjs, $baseHidden, |
$menuid, $docid, $pageid, $menuopen, $docopen, $pageopen); |
return $outputText ; |
} |
|
// Mise à jour du menu |
if ($doccmd == 'commitupdmenu') { |
commitUpdateLevel ($db, $adminProject, $adminLocale, $menuid); |
$doccmd = ''; |
} |
|
// Déplacer le menu vers le haut |
if ($doccmd == 'upmenu') { |
moveMenu ($db, $adminProject, $adminLocale, $menuid, true); |
$doccmd = ''; |
} |
|
// Déplacer le menu vers le bas |
if ($doccmd == 'dnmenu') { |
moveMenu ($db, $adminProject, $adminLocale, $menuid, false); |
$doccmd = ''; |
} |
|
// Détruire le menu |
if ($doccmd == 'delmenu') { |
$msg = deleteMenu($objet_pear_db, $menuid); |
$doccmd = ''; |
} |
|
//------------------------------------------------------------------------------ |
// Gestion des Menus communs |
|
// Ajout un menu commun |
if ($doccmd == 'addupper') { |
addUpper($db, $adminProject, $adminLocale); |
$doccmd = ''; |
} |
|
// Valide et modifie un menu commun. |
if ($doccmd == 'commitupduppertxt') { |
commitUpdateUpperText($db, $adminProject, $adminLocale, $upperid); |
$doccmd = ''; |
} |
|
// Update upper menu. |
if ($doccmd == 'upduppertxt') { |
$outputText .= |
showUpper( $db, $adminProject, $adminLocale, |
$baseURL, $baseURLjs, $baseHidden, |
$upperid, $menuopen, $upperopen, $docopen); |
return $outputText; |
} |
|
// Valide et modifie un menu commun |
if ($doccmd == 'commitupdupper') { |
commitUpdateUpper($db, $adminProject, $adminLocale, $upperid); |
$doccmd = ''; |
} |
|
// Déplace vers le haut de la hiérarchie un menu commun |
if ($doccmd == 'upupper') { |
moveUpper($db, $adminProject, $adminLocale, $upperid, true); |
$doccmd = ''; |
} |
|
// Déplace vers le bas de la hiérarchie un menu commun |
if ($doccmd == 'dnupper') { |
moveUpper($db, $adminProject, $adminLocale, $upperid, false); |
$doccmd = ''; |
} |
|
// Supprime définitivement un menu commun |
if ($doccmd == 'delupper') { |
deleteUpper($db, $adminProject, $adminLocale, $upperid); |
$doccmd = ''; |
} |
|
//------------------------------------------------------------------------------ |
// Gestion de la rédaction |
|
// Rédiger |
if ($doccmd == 'contenuredac') { |
if (isset($upperid) && !empty($upperid) && !isset($menuid) && empty($menuid)) { |
$menuid = $upperid; |
} |
$outputText .= redigerContenu( $db, $adminProject, $adminLocale, $baseURL, $baseURLjs, $baseHidden, |
$menuid, $docid, $pageid, $menuopen, $docopen, $pageopen); |
return $outputText; |
} |
// Mise à jour du contenu |
if ($doccmd == 'contenuenreg') { |
ajouterContenu($db, $adminProject, $adminLocale, $menuid, $_POST); |
$doccmd = ''; |
} |
|
//------------------------------------------------------------------------------ |
// Autres |
|
// Message ? |
if (! empty($msg)) { |
$outputText .= "\n".'<p class="erreur">'.$msg.'</p>'; |
} |
|
//------------------------------------------------------------------------------ |
// Nous affichons la liste des menus classiques et communs |
$annuName = ''; |
$outputText .= |
listAll( $db, |
$baseURL, $baseURLjs, $url, $baseHidden, |
$adminProject, $adminLocale, $annuName, |
$annuName, $menuid, $upperid, |
$doccmd, $menuopen, $upperopen); |
return $outputText ; |
// Fin de l'authentification |
} else { |
return GEN_afficherInfoIdentification($baseURL); |
} |
}// Fin de la fonction afficherContenuCorps() |
|
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici la liste de fonctions.*/ |
|
function listAll($db, |
$baseURL, $baseURLjs, $url, $baseHidden, |
$adminProject, $adminLocale, $adminAnnu, |
$annuName, $menuid, $upperid, |
$doccmd, $menuopen, $upperopen) |
{ |
$res = ''; |
$res .= "\n"; |
|
// Liste des sites principaux |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_valeur = 102 '.// 102 = site "principal" |
'AND gsr_id_site_01 = gs_id_site '. |
'ORDER BY gsr_ordre'; |
|
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
//---------------------------------------------------------------------------- |
// Création du formulaire |
|
$form =& new HTML_QuickForm('form_sites', 'post', $url); |
$tab_index = 1000; |
$squelette =& $form->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<p>'."\n".'{content}'."\n".'</p>'."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '{label}'."\n".'{element}'."\n". |
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n"); |
$partie_site_debut = '<fieldset>'."\n". |
'<legend>Listes des sites</legend>'."\n"; |
$form->addElement('html', $partie_site_debut); |
$aso_options = array(); |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
if (empty($adminProject)) { |
$adminProject = $ligne->gs_code_alpha; |
} |
$aso_options[$ligne->gs_code_alpha] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'); |
} |
$resultat->free(); |
$id = 'adminProject'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Choix du site à administrer : '.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$form->addElement('submit', 'choisir_site', 'OK'); |
$partie_site_fin = '</fieldset>'."\n"; |
$form->addElement('html', $partie_site_fin); |
|
// Instanciation des valeurs par défaut du formulaire |
$form->setDefaults($adminProject); |
|
$res .= '<h1>'.'Configuration des menus du site : '.$adminProject.'</h1>'."\n"; |
$res .= '<p>'."\n"; |
$res .= $form->toHTML()."\n"; |
|
//---------------------------------------------------------------------------- |
// Affiche la langue courante pour les menus à administrer |
$requete = 'SELECT * '. |
'FROM gen_i18n '. |
'WHERE gi_id_i18n = "'.$adminLocale.'"'; |
|
$LOCALEresult = $db->query($requete); |
if (DB::isError($LOCALEresult)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $LOCALEresult->getMessage(), $requete)); |
} |
|
$FLAGrow = $LOCALEresult->fetchRow(DB_FETCHMODE_OBJECT); |
if ($FLAGrow) { |
$res .= $FLAGrow->gi_nom.' '."\n"; |
} |
$LOCALEresult->free() ; |
|
|
// Internationalisation disponible pour le site principal. |
$requete = 'SELECT gs_ce_i18n, gi_nom '. |
'FROM gen_site, gen_i18n '. |
'WHERE gs_ce_i18n = gi_id_i18n '. |
'AND gs_code_alpha = "'.$adminProject.'" '; |
|
$LOCALEresult = $db->query($requete); |
(DB::isError ($LOCALEresult)) |
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $LOCALEresult->getMessage(), $requete)) |
: ''; |
|
while ($LOCALErow = $LOCALEresult->fetchRow(DB_FETCHMODE_OBJECT)) { |
if ($adminLocale != $LOCALErow->gs_ce_i18n) { |
$res .= '<a href="'.$baseURL.'&adminLocale='.$LOCALErow->gs_ce_i18n.'">'. |
$LOCALErow->gi_nom. |
'</a>'."\n"; |
} |
} |
$LOCALEresult->free() ; |
$res .= '</p>'."\n"; |
|
//---------------------------------------------------------------------------- |
// Gestion des menus classiques |
$etiquette_title_ajouter = 'Ajouter un menu classique'; |
$res .= '<p>'."\n"; |
$res .= '<a href="'.$baseURL.'&adminProject='.$adminProject.'&doccmd=addmenu&menuid=0" >'. |
$etiquette_title_ajouter.' '. |
'<img src="'.ADME_IMAGE_NOUVEAU.'" alt="" width="16" height="16" border="0" />'. |
'</a>'."\n"; |
$res .= '</p>'."\n"; |
|
$res .= '<form name="updform" action="papyrus.php" method="post">'."\n"; |
|
$res .= lister_menu_racine( $db, |
$baseURL, $baseURLjs, $baseHidden, |
$adminProject, $adminLocale, $adminAnnu, |
$menuid, $upperid, |
$doccmd, $menuopen, $upperopen, 0); |
//---------------------------------------------------------------------------- |
// Gestion des menus communs |
$etiquette_title_ajouter = 'Ajouter un menu commun'; |
$res .= '<p>'."\n"; |
$res .= '<a href="'.$baseURL.'&doccmd=addupper">'. |
$etiquette_title_ajouter.' '. |
'<img src="'.ADME_IMAGE_NOUVEAU.'" alt="" width="16" height="16" border="0" />'. |
'</a>'."\n"; |
$res .= '</p>'."\n"; |
$res .= listUpper( $db, |
$baseURL, $baseURLjs, $baseHidden, |
$adminProject, $adminLocale, $adminAnnu, |
$menuid, $upperid, |
$doccmd, $menuopen); |
|
// Valeur de formulaire cachées. |
$res .= '<input type="hidden" name="menuid" value="'.$menuid.'" />'."\n"; |
$res .= '<input type="hidden" name="upperid" value="'.$upperid.'" />'."\n"; |
$res .= '<input type="hidden" name="menuopen" value="'.$menuopen.'" />'."\n"; |
$res .= $baseHidden; |
|
$res .= '</form>'."\n"; |
|
return $res; |
} |
|
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Partie non obligatoire*/ |
|
|
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |