/trunk/papyrus/applications/admin_menu/admin_menu.php |
---|
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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_menu/page.php |
---|
New file |
0,0 → 1,850 |
<? |
//------------------------------------------------------------------------------ |
// FICHIER : $RCSfile: page.php,v $ |
// AUTEUR : $Author: jpm $ |
// VERSION : $Revision: 1.1 $ |
// DATE : $Date: 2004-06-16 15:04:58 $ |
//------------------------------------------------------------------------------ |
// GSite - Web site management in PHP - documents application |
// |
// Copyright (C) 2001 COUDOUNEAU Laurent (lc@gsite.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 |
//------------------------------------------------------------------------------ |
//------------------------------------------------------------------------------ |
//============================================================================== |
//============================================================================== |
function listPages ($db, $project, $locale, |
$baseURL, $baseURLjs, $baseHidden, |
$adminProject, $adminLocale, $adminAnnu, |
$userLevel, |
$menu1id, $menu2id, $upperid, $docid, $pageid, |
$doccmd, |
$menuview, $menu1open, $menu2open, $upperopen, $docopen, $pageopen, |
$parentDocId) { |
//---------------------------------------------------------------------------- |
// Labels. |
$cancelLabel = "Annuler"; |
$showLabel = "Modifier le document"; |
$deleteLabel = "Supprimer"; |
$addPageLabel = "Ajouter une page"; |
$docLabel = "Modifier les paragraphes associés"; |
//---------------------------------------------------------------------------- |
// Build full URL. |
$fullURL = |
$baseURL. |
'&menuview='.$menuview. |
'&menu1id='.$menu1id. |
'&menu1open='.$menu1open. |
'&menu2id='.$menu2id. |
'&menu2open='.$menu2open. |
'&upperid='.$upperid. |
'&upperopen='.$upperopen; |
$fullURLjs = |
$baseURLjs. |
'&menuview='.$menuview. |
'&menu1id='.$menu1id. |
'&menu1open='.$menu1open. |
'&menu2id='.$menu2id. |
'&menu2open='.$menu2open. |
'&upperid='.$upperid. |
'&upperopen='.$upperopen; |
//---------------------------------------------------------------------------- |
// Javascript. |
$goMsg = addslashes ("Supprimer"); |
js_register ('deletePage', |
" function deletePage (iDocId, iPageId) {"."\n". |
" var url = '$fullURLjs'+'&doccmd=delpage&docopen=1&docid='+iDocId+'&pageid='+iPageId;"."\n". |
" if (window.confirm ('$goMsg')) document.location = url;"."\n". |
" }"."\n" |
); |
js_register ('openUpdatePar', |
" function openUpdatePar (sURL, iWidth, iHeight) {"."\n". |
" var sArgs = 'toolbar=0'+"."\n". |
" ',hotkeys=0'+"."\n". |
" ',location=1'+"."\n". |
" ',directories=0'+"."\n". |
" ',menubar=0'+"."\n". |
" ',personalbar=0'+"."\n". |
" ',status=1'+"."\n". |
" ',scrollbars=1'+"."\n". |
" ',resizable=1'+"."\n". |
" ',screenX=150'+"."\n". |
" ',screenY=20'+"."\n". |
" ',left=150'+"."\n". |
" ',top=20'+"."\n". |
" ',width='+iWidth+"."\n". |
" ',height='+iHeight;"."\n". |
"\n". |
" var wWindow = open (sURL, 'updpar', sArgs);"."\n". |
" wWindow.window.focus ();"."\n". |
" }"."\n" |
); |
js_register ('updatePar', |
" function updatePar (iDocId, iPageId) {"."\n". |
" var swidth = screen.width;"."\n". |
" var width = swidth * 0.80;"."\n". |
" var height = width * 0.75;"."\n". |
"\n". |
" var popsize = 0;"."\n". |
"\n". |
" if (swidth >= 640) popsize = 0;"."\n". |
" if (swidth >= 800) popsize = 1;"."\n". |
" if (swidth >= 1024) popsize = 2;"."\n". |
" if (swidth >= 1280) popsize = 3;"."\n". |
" if (swidth >= 1600) popsize = 4;"."\n". |
"\n". |
" var sURL ="."\n". |
" 'noyau/applications_noyau/documents/docpopup.php'+"."\n". |
" '?project=$project'+"."\n". |
" '&module=documents%2Fdocpopup'+"."\n". |
" '&popsize='+popsize+"."\n". |
" '&docid='+iDocId+"."\n". |
" '&pageid='+iPageId+"."\n". |
" '&admannu=$adminAnnu'+"."\n". |
" '&admproject=$adminProject'+"."\n". |
" '&admlocale=$adminLocale';"."\n". |
" "."\n". |
" openUpdatePar (sURL, width, height)"."\n". |
" }"."\n" |
); |
//---------------------------------------------------------------------------- |
// Begin of pages table. |
$outputText = ''; |
$outputText .= "\n".'<TABLE summary="" cellspacing="3" cellpadding="0" border="0">'; |
//---------------------------------------------------------------------------- |
// Dump admin icons. |
$pagesMainIcons = ''; |
$pagesMainIcons .= |
"\n". |
'<A href="'.$fullURL.'&docid='.$parentDocId.'&docopen=1&doccmd=addpage">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/addcross.gif" alt="'.$addPageLabel.'" width="16" height="16" border="0">'. |
'</A>'; |
$outputText .= "\n".' <TR>'; |
$outputText .= "\n".' <TD colspan="9" align="left" valign="middle">'.$pagesMainIcons.'</TD>'; |
$outputText .= "\n".' </TR>'; |
//---------------------------------------------------------------------------- |
// Get pages. |
$query = |
"select * from GEN_PAGE". |
" where GP_ID_DOCUMENT=$parentDocId". |
" order by GP_ORDRE"; |
$PAGEresult = $db->query ($query); |
if (DB::isError ($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
//---------------------------------------------------------------------------- |
// Dump pages. |
while ($PAGErow = $PAGEresult->fetchRow(DB_FETCHMODE_OBJECT)) { |
//-------------------------------------------------------------------------- |
// Page open ? |
/* |
To manage only one page... |
$pageIsOpen = ($pageopen == 1) && ($PAGErow->GP_ID == $pageid); |
*/ |
$pageIsOpen = true; |
//-------------------------------------------------------------------------- |
// Get page data. |
$title = htmlentities ($PAGErow->GP_TITRE); |
$id = ($userLevel == level_admin ? '('.$PAGErow->GP_ID.') ': ''); |
$appl = htmlentities ($PAGErow->GP_APPLICATION); |
$args1 = htmlentities ($PAGErow->GP_ARGUMENT); |
if (strlen ($PAGErow->GP_ARGUMENT) > 40) { |
$args2 = htmlentities (substr ($PAGErow->GP_ARGUMENT, 0, 40)).' ...'; |
} else if ($PAGErow->GP_ARGUMENT == '') { |
$args2 = '(...)'; |
} else { |
$args2 = $args1; |
} |
//-- Icons. |
$icons1 = ' '; |
$icons2 = ' '; |
$icons3 = ' '; |
//-- URL to go back to this page. |
$pageHREF = |
$fullURL. |
'&docid='.$parentDocId. |
'&docopen='.$docopen. |
'&pageid='.$PAGErow->GP_ID; |
//-- Less or more icon. |
$pageOpenHREF = $pageHREF; |
$lessOrMore = ''; |
//-------------------------------------------------------------------------- |
// Switch page command... |
if (($doccmd == 'updpagetitle') && ($PAGErow->GP_ID == $pageid)) { |
//------------------------------------------------------------------------ |
// Update page title. |
//-- Page title. |
$title = |
'<INPUT type="text" name="page_title" size="30" maxlength="48" value="'.$title.'" class="contentDocument">'. |
'<INPUT type="hidden" name="doccmd" value="commitupdpagetitle">'; |
//-- Page application. |
$appl = |
'<A href="'.$pageOpenHREF.'&doccmd=updpageappl" class="anchor">'. |
($PAGErow->GP_APPLICATION == '' ? '(...)' : $appl). |
'</A>'; |
//-- Application arguments. |
$args = |
'<A href="'.$pageOpenHREF.'&doccmd=updpageargs" class="anchor">'. |
$args2. |
'</A>'; |
//-- Cancel and update icons. |
$icons1 .= |
'<INPUT type="image" src="Local/icons/validate.gif">'; |
$icons1 .= |
'<A'."\n".'href="'.$pageOpenHREF.'">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/cancel.gif" alt="'.$cancelLabel.'" width="16" height="16" border="0"></A>'; |
} else if (($doccmd == 'updpageappl') && ($PAGErow->GP_ID == $pageid)) { |
//------------------------------------------------------------------------ |
// Update page application. |
//-- Page title. |
$title = |
'<A href="'.$pageOpenHREF.'&doccmd=updpagetitle" class="anchor">'. |
($PAGErow->GP_TITRE == '' ? '(...)' : $title). |
'</A>'; |
//-- Page application. |
$appl = |
'<INPUT type="text" name="page_appl" size="10" maxlength="32" value="'.$appl.'" class="contentDocument">'. |
'<INPUT type="hidden" name="doccmd" value="commitupdpageappl">'; |
//-- Application arguments. |
$args = |
'<A href="'.$pageOpenHREF.'&doccmd=updpageargs" class="anchor">'. |
$args2. |
'</A>'; |
//-- Cancel and update icons. |
$icons2 .= |
'<INPUT type="image" src="noyau/applications_noyau/documents/presentations/images/validate.gif">'; |
$icons2 .= |
'<A'."\n".'href="'.$pageOpenHREF.'">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/cancel.gif" alt="'.$cancelLabel.'" width="16" height="16" border="0"></A>'; |
} else if (($doccmd == 'updpageargs') && ($PAGErow->GP_ID == $pageid)) { |
//------------------------------------------------------------------------ |
// Update page arguments. |
//-- Page title. |
$title = |
'<A href="'.$pageOpenHREF.'&doccmd=updpagetitle" class="anchor">'. |
($PAGErow->GP_TITRE == '' ? '(...)' : $title). |
'</A>'; |
//-- Page application. |
$appl = |
'<A href="'.$pageOpenHREF.'&doccmd=updpageappl" class="anchor">'. |
($PAGErow->GP_APPLICATION == '' ? '(...)' : $appl). |
'</A>'; |
//-- Application arguments. |
$args = |
'<INPUT type="text" name="page_args" size="48" maxlength="255" value="'.$args1.'" class="contentDocument">'. |
'<INPUT type="hidden" name="doccmd" value="commitupdpageargs">'; |
//-- Cancel and update icons. |
$icons3 .= |
'<INPUT type="image" src="noyau/applications_noyau/documents/presentations/images/validate.gif">'; |
$icons3 .= |
'<A'."\n".'href="'.$pageOpenHREF.'">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/cancel.gif" alt="'.$cancelLabel.'" width="16" height="16" border="0"></A>'; |
} else { |
//------------------------------------------------------------------------ |
// Show page data. |
$title = |
'<A href="'.$pageOpenHREF.'&doccmd=updpagetitle" class="anchor">'. |
($PAGErow->GP_TITRE == '' ? '(...)' : $title). |
'</A>'; |
$appl = |
'<A href="'.$pageOpenHREF.'&doccmd=updpageappl" class="anchor">'. |
($PAGErow->GP_APPLICATION == '' ? '(...)' : $appl). |
'</A>'; |
$args = |
'<A href="'.$pageOpenHREF.'&doccmd=updpageargs" class="anchor">'. |
$args2. |
'</A>'; |
} |
//-------------------------------------------------------------------------- |
// Page admin icons. |
$icons4 = ''; |
if ($pageIsOpen) { |
if ($PAGErow->GP_APPLICATION == 'txt') { |
$icons4 .= |
'<A'."\n".'href="javascript:updatePar ('.$parentDocId.', '.$PAGErow->GP_ID.')">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/doc.gif" alt="'.$docLabel.'" width="16" height="16" border="0"></A>'; |
} else { |
$icons4 .= |
'<IMG src="noyau/applications_noyau/documents/presentations/images/vide.gif" alt="" width="16" height="16" border="0">'; |
} |
$icons4 .= |
'<A'."\n".'href="'.$pageOpenHREF.'&doccmd=showpage">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/see.gif" alt="'.$showLabel.'" width="16" height="16" border="0"></A>'; |
$icons4 .= |
'<A'."\n".'href="'.$pageOpenHREF.'&doccmd=uppage">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/up-arrow.gif" alt="" width="16" height="16" border="0"></A>'; |
$icons4 .= |
'<A'."\n".'href="'.$pageOpenHREF.'&doccmd=dnpage">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/down-arrow.gif" alt="" width="16" height="16" border="0"></A>'; |
$icons4 .= |
'<A'."\n".'href="javascript:deletePage ('.$parentDocId.', '.$PAGErow->GP_ID.');">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/trash.gif" alt="'.$deleteLabel.'" width="16" height="16" border="0"></A>'; |
} |
//-------------------------------------------------------------------------- |
// Dump page data. |
$outputText .= "\n".' <TR>'; |
$outputText .= "\n".' <TD align="left" valign="middle" class="contentDocument">'.$lessOrMore.'</TD>'; |
$outputText .= "\n".' <TD align="left" valign="top" class="contentDocument">'.$title.'</TD>'; |
$outputText .= "\n".' <TD align="left" valign="top" class="contentDocument">'.$icons1.'</TD>'; |
$outputText .= "\n".' <TD align="right" valign="top" class="contentDocument">'.$id.'</TD>'; |
$outputText .= "\n".' <TD align="left" valign="top" class="contentDocument">'.$appl.'</TD>'; |
$outputText .= "\n".' <TD align="left" valign="top" class="contentDocument">'.$icons2.'</TD>'; |
$outputText .= "\n".' <TD align="left" valign="top" class="contentDocument">'.$args.'</TD>'; |
$outputText .= "\n".' <TD align="left" valign="top" class="contentDocument">'.$icons3.'</TD>'; |
$outputText .= "\n".' <TD align="left" valign="top" class="contentDocument">'.$icons4.'</TD>'; |
$outputText .= "\n".' </TR>'; |
} |
//---------------------------------------------------------------------------- |
// End of pages table. |
$outputText .= "\n".'</TABLE>'; |
return $outputText; |
} |
//============================================================================== |
//============================================================================== |
function checkPage ($db, $docid, $pageid) { |
//---------------------------------------------------------------------------- |
// Get page. |
$query = "select * from GEN_PAGE where GP_ID=$pageid"; |
$PAGEresult = $db->query ($query); |
if (DB::isError($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
$PAGErow = $PAGEresult->fetchRow(DB_FETCHMODE_OBJECT); |
$PAGEresult->free() ; |
if (! $PAGErow) return null; |
//---------------------------------------------------------------------------- |
// Page is OK ? |
if ($PAGErow->GP_ID_DOCUMENT != $docid) return null; |
return $PAGErow; |
} |
//============================================================================== |
//============================================================================== |
function addPage ($db, |
$userLevel, |
$docid) { |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return; |
//---------------------------------------------------------------------------- |
// Get max order. |
$query = |
"select GP_ORDRE from GEN_PAGE". |
" where GP_ID_DOCUMENT=$docid". |
" order by GP_ORDRE desc". |
" limit 1"; |
$PAGEresult = $db->query ($query); |
if (DB::isError ($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
$row = $PAGEresult->fetchRow(DB_FETCHMODE_OBJECT); |
$maxOrder = ($PAGEresult->numRows() == 0 ? 1 : $row->GP_ORDRE + 1); |
$PAGEresult->free(); |
//---------------------------------------------------------------------------- |
// Add page. |
$query = |
"insert into GEN_PAGE set ". |
"GP_TITRE='?????'". |
", GP_ID_DOCUMENT=$docid". |
", GP_ORDRE=$maxOrder"; |
$PAGEresult = $db->query ($query); |
if (DB::isError ($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
} |
//============================================================================== |
//============================================================================== |
function commitUpdatePageTitle ($db, $userLevel, |
$docid, $pageid, $pageTitle) { |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return; |
//---------------------------------------------------------------------------- |
// Check page. |
$PAGErow = checkPage ($db, $docid, $pageid); |
if (! $PAGErow) return; |
//---------------------------------------------------------------------------- |
// Update page title. |
$query = "update GEN_PAGE set GP_TITRE='$pageTitle' where GP_ID=$pageid"; |
$PAGEresult = $db->query ($query); |
if (DB::isError ($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
} |
//============================================================================== |
//============================================================================== |
function commitUpdatePageApplication ($db, $userLevel, |
$docid, $pageid, $pageAppl) { |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return; |
//---------------------------------------------------------------------------- |
// Check page. |
$PAGErow = checkPage ($db, $docid, $pageid); |
if (! $PAGErow) return; |
//---------------------------------------------------------------------------- |
// Update page title. |
$query = "update GEN_PAGE set GP_APPLICATION='$pageAppl' where GP_ID=$pageid"; |
$PAGEresult = $db->query ($query); |
if (DB::isError ($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
} |
//============================================================================== |
//============================================================================== |
function commitUpdatePageArguments ($db, $userLevel, |
$docid, $pageid, $pageArgs) { |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return; |
//---------------------------------------------------------------------------- |
// Check page. |
$PAGErow = checkPage ($db, $docid, $pageid); |
if (! $PAGErow) return; |
//---------------------------------------------------------------------------- |
// Update page title. |
$query = "update GEN_PAGE set GP_ARGUMENT='$pageArgs' where GP_ID=$pageid"; |
$PAGEresult = $db->query ($query); |
if (DB::isError ($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
} |
//============================================================================== |
//============================================================================== |
function movePage ($db, $userLevel, |
$docid, $pageid, |
$up) { |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return; |
//---------------------------------------------------------------------------- |
// Check page. |
$PAGErow = checkPage ($db, $docid, $pageid); |
if (! $PAGErow) return; |
//---------------------------------------------------------------------------- |
// Get previous page. |
$query = |
"select * from GEN_PAGE". |
" where GP_ID_DOCUMENT=$docid". |
($up |
? " and GP_ORDRE < $PAGErow->GP_ORDRE order by GP_ORDRE desc" |
: " and GP_ORDRE > $PAGErow->GP_ORDRE order by GP_ORDRE asc"); |
$PAGEresult = $db->query ($query); |
if (DB::isError ($PAGEresult)) { |
die ("Unable to perform query ($query / " . $PAGEresult->getMessage() . ")"); |
} |
$NEXTPAGErow = $PAGEresult->fetchRow(DB_FETCHMODE_OBJECT); |
$PAGEresult->free() ; |
//---------------------------------------------------------------------------- |
// Update pages. |
if (! $NEXTPAGErow) return; |
$query = |
"update GEN_PAGE ". |
"set GP_ORDRE=$NEXTPAGErow->GP_ORDRE". |
" where GP_ID=$PAGErow->GP_ID"; |
$result = $db->query ($query); |
if (DB::isError ($result)) { |
die ("Unable to perform query ($query / " . $result->getMessage() . ")"); |
} |
$query = |
"update GEN_PAGE ". |
"set GP_ORDRE=$PAGErow->GP_ORDRE". |
" where GP_ID=$NEXTPAGErow->GP_ID"; |
$result = $db->query ($query); |
if (DB::isError ($result)) { |
die ("Unable to perform query ($query / " . $result->getMessage() . ")"); |
} |
} |
//============================================================================== |
//============================================================================== |
function deletePage ($db, $locale, |
$userLevel, |
$docid, $pageid) { |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return; |
//---------------------------------------------------------------------------- |
// Check page. |
$PAGErow = checkPage ($db, $docid, $pageid); |
if (! $PAGErow) return; |
//---------------------------------------------------------------------------- |
// We have linked paragraphs ? |
$query = |
"select count(P_INDEX) as COUNT ". |
"from txt_PARAGRAPH ". |
"where P_PAGE=$PAGErow->GP_ID"; |
$result = $db->query ($query); |
if (DB::isError ($result)) { |
die ("Unable to perform query ($query / " . $result->getMessage() . ")"); |
} |
$row = $result->fetchRow(DB_FETCHMODE_OBJECT); |
if ($row && ($row->COUNT > 0)) { |
return "Il reste des paragraphes attachés à cette page"; |
} |
//---------------------------------------------------------------------------- |
// Delete page. |
$query = "delete from GEN_PAGE where GP_ID=$PAGErow->GP_ID"; |
$result = $db->query ($query); |
if (DB::isError ($result)) { |
die ("Unable to perform query ($query / " . $result->getMessage() . ")"); |
} |
return ''; |
} |
//============================================================================== |
//============================================================================== |
function showPage ($db, $locale, |
$baseURL, $baseURLjs, $baseHidden, |
$userLevel, |
$menu1id, $menu2id, $upperid, $docid, $pageid, |
$menuview, $menu1open, $menu2open, $upperopen, $docopen, $pageopen) { |
//---------------------------------------------------------------------------- |
// Labels. |
$cancelLabel = "Supprimer"; |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return ''; |
//---------------------------------------------------------------------------- |
// Check page. |
$PAGErow = checkPage ($db, $docid, $pageid); |
if (! $PAGErow) return ''; |
//---------------------------------------------------------------------------- |
// Dump form. |
$outputText = ''; |
$outputText .= "\n".'<TR>'; |
$outputText .= "\n".' <TD>'; |
$outputText .= "\n".' <FORM name="updform" action="index.php" method="POST">'; |
$outputText .= "\n".' <TABLE summary="" cellspacing="0" cellpadding="0" border="0" align="center">'; |
$titleLabel = "Titre"; |
$applLabel = "Application"; |
$argsLabel = "Arguments"; |
$setLabel = "Set"; |
$ndxLabel = "Indexé"; |
$outputText .= "\n".'<TR>'; |
$outputText .= "\n".' <TD class="contentLabel">'.$titleLabel.' : </TD>'; |
$outputText .= "\n".' <TD class="contentInput"><INPUT'; |
$outputText .= "\n".' class="contentInput" type="text" name="page_title" size="48" maxlength="48"'; |
$outputText .= "\n".' value="'.htmlentities ($PAGErow->GP_TITRE).'"></TD>'; |
$outputText .= "\n".'</TR>'; |
$outputText .= "\n".'<TR>'; |
$outputText .= "\n".' <TD class="contentLabel">'.$applLabel.' : </TD>'; |
$outputText .= "\n".' <TD class="contentInput"><INPUT'; |
$outputText .= "\n".' class="contentInput" type="text" name="page_appl" size="32" maxlength="32"'; |
$outputText .= "\n".' value="'.htmlentities ($PAGErow->GP_APPLICATION).'"></TD>'; |
$outputText .= "\n".'</TR>'; |
$outputText .= "\n".'<TR>'; |
$outputText .= "\n".' <TD class="contentLabel">'.$argsLabel.' : </TD>'; |
$outputText .= "\n".' <TD class="contentInput"><TEXTAREA'; |
$outputText .= "\n".' class="contentInput" name="page_args" rows="10" cols="64">'.htmlentities ($PAGErow->GP_ARGUMENT).'</TEXTAREA></TD>'; |
$outputText .= "\n".'</TR>'; |
$outputText .= "\n".'<TR>'; |
$outputText .= "\n".' <TD class="contentLabel">'.$setLabel.' : </TD>'; |
$outputText .= "\n".' <TD class="contentInput"><INPUT'; |
$outputText .= "\n".' class="contentInput" type="text" name="page_set" size="32" maxlength="32"'; |
$outputText .= "\n".' value="'.htmlentities ($PAGErow->GP_SET).'"></TD>'; |
$outputText .= "\n".'</TR>'; |
$outputText .= "\n".'<TR>'; |
$outputText .= "\n".' <TD class="contentLabel">'.$ndxLabel.' : </TD>'; |
$outputText .= "\n".' <TD class="contentInput"><INPUT'; |
$outputText .= "\n".' class="contentInput" type="checkbox" name="page_ndx"'; |
if ($PAGErow->GP_INDEXE) $outputText .= "\n".' checked'; |
$outputText .= "\n".' ></TD>'; |
$outputText .= "\n".'</TR>'; |
//---------------------------------------------------------------------------- |
// Icons. |
$outputText .= "\n".'<TR><TD colspan="2"> </TD></TR>'; |
$closeURL = |
$baseURL. |
'&menuview='.$menuview. |
'&menu1id='.$menu1id. |
'&menu1open='.$menu1open. |
'&menu2id='.$menu2id. |
'&menu2open='.$menu2open. |
'&upperid='.$upperid. |
'&upperopen='.$upperopen. |
'&docid='.$docid. |
'&pageid='.$pageid. |
'&docopen='.$docopen. |
'&pageopen='.$pageopen; |
$goIcon = '<INPUT type="image" src="noyau/applications_noyau/documents/presentations/images/validate.gif">'; |
$cancelIcon = '<A href="'.$closeURL.'">'. |
'<IMG src="noyau/applications_noyau/documents/presentations/images/cancel.gif" alt="'.$cancelLabel.'" width="16" height="16" border="0">'. |
'</A>'; |
$outputText .= "\n".'<TR>'; |
$outputText .= "\n".' <TD colspan="2" align="center"><TABLE summary="" width="100%" border="0" cellpadding="0" cellspacing="0">'; |
$outputText .= "\n".' <TR>'; |
$outputText .= "\n".' <TD align="center">'.$goIcon.'</TD>'; |
$outputText .= "\n".' <TD align="center">'.$cancelIcon.'</TD>'; |
$outputText .= "\n".' </TR>'; |
$outputText .= "\n".' </TABLE></TD>'; |
$outputText .= "\n".'</TR>'; |
$outputText .= "\n".' </TABLE>'; |
//---------------------------------------------------------------------------- |
// Hidden values. |
$outputText .= "\n".' <INPUT type="hidden" name="menuview" value="'.$menuview.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="menu1id" value="'.$menu1id.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="menu2id" value="'.$menu2id.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="upperid" value="'.$upperid.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="docid" value="'.$docid.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="pageid" value="'.$pageid.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="menu1open" value="'.$menu1open.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="menu2open" value="'.$menu2open.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="upperopen" value="'.$upperopen.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="docopen" value="'.$docopen.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="pageopen" value="'.$pageopen.'">'; |
$outputText .= "\n".' <INPUT type="hidden" name="doccmd" value="commitupdpage">'; |
$outputText .= $baseHidden; |
$outputText .= "\n".' </FORM>'; |
$outputText .= "\n".' </TD>'; |
$outputText .= "\n".'</TR>'; |
return $outputText; |
} |
//============================================================================== |
//============================================================================== |
function commitUpdatePage ($db, $userLevel, |
$docid, $pageid) { |
//---------------------------------------------------------------------------- |
// Check document. |
$DOCrow = checkDocument ($db, $userLevel, $docid); |
if (! $DOCrow) return; |
//---------------------------------------------------------------------------- |
// Check page. |
$PAGErow = checkPage ($db, $docid, $pageid); |
if (! $PAGErow) return; |
//---------------------------------------------------------------------------- |
// Update page. |
global $page_title; |
global $page_appl; |
global $page_args; |
global $page_set; |
global $page_ndx; |
$pageindexed = (isset ($page_ndx) ? 1 : 0); |
$query = |
"update GEN_PAGE ". |
"set GP_TITRE='$page_title'". |
", GP_APPLICATION='$page_appl'". |
", GP_ARGUMENT='$page_args'". |
", GP_SET='$page_set'". |
", GP_INDEXE=$pageindexed". |
" where GP_ID=$pageid"; |
$result = $db->query ($query); |
if (DB::isError ($result)) { |
die ("Unable to perform query ($query / " . $result->getMessage() . ")"); |
} |
} |
?> |
/trunk/papyrus/applications/admin_menu/bibliotheque/adme_contenu.fonct.php |
---|
New file |
0,0 → 1,192 |
<?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: adme_contenu.fonct.php,v 1.1 2004-06-16 15:04:32 jpm Exp $ |
/** |
* Gestion de la rédaction du contenu pour Papyrus. |
* |
* Contient les fonctions nécessaires à la gestion du contenu de Papyrus. |
* |
*@package Administrateur des Menus |
*@subpackage Fonctions |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2004-06-16 15:04:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici les inclusions de fichiers*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction redigerContenu() - Affiche le formulaire de rédaction |
* |
* |
* @return string Le HTML |
*/ |
function redigerContenu($db, $adminProject, $adminLocale, $baseURL, $baseURLjs, $baseHidden, |
$menuid, $docid, $pageid, $menuopen, $docopen, $pageopen) |
{ |
//---------------------------------------------------------------------------- |
// Initialisation de variable |
$closeURL = $baseURL.'&menuid='.$menuid.'&menuopen='.$menuopen; |
//---------------------------------------------------------------------------- |
// Récupération des informations du contenu concerné. |
$ligne_menu = GEN_lireInfoMenu($db, $menuid, DB_FETCHMODE_ASSOC); |
if ($ligne_menu == false) { |
die('ERREUR Génésia Administrateur de Menus: impossible de lire les infos du menu.<br />'. |
'Idenitifiant du menu n° : '. $menuid .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Requête sur les applications |
$requete = 'SELECT * '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$menuid.' '. |
'AND gmc_bool_dernier = 1 '; |
$resultat = $db->query($requete); |
$ligne_dernier_contenu = $resultat->fetchRow(DB_FETCHMODE_ASSOC); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$res = '<h1>'.'Rédaction'.'</h1>'."\n"; |
//---------------------------------------------------------------------------- |
// Création du formulaire |
$form =& new HTML_QuickForm('updform', 'post', $baseURLjs); |
$squelette =& $form->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<ul>'."\n".'{content}'."\n".'</ul>'."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '<li>'."\n". |
'{label}'."\n". |
'{element}'."\n". |
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</li>'."\n"); |
//$squelette->setHeaderTemplate('<p>{header}</p>'); |
//$form->addElement('header', 'Entete', 'REDACTION'); |
$tab_type_contenu = array(); |
$tab_type_contenu[1] = 'XHTML'; |
$tab_type_contenu[2] = 'WIKINI'; |
$form->addElement('select', 'gmc_ce_type_contenu', 'Type de contenu : ', $tab_type_contenu); |
$zone_redaction = $form->createElement('textarea', 'gmc_contenu', 'Contenu : '); |
$zone_redaction->setCols(100); |
$zone_redaction->setRows(20); |
$form->addElement($zone_redaction); |
$tab_type_modif = array(); |
$tab_type_modif[1] = 'Mineure'; |
$tab_type_modif[2] = 'Majeure'; |
$form->addElement('select', 'gmc_ce_type_modification', 'Type de modification : ', $tab_type_modif); |
$form->addElement('text', 'gmc_resume_modification', 'Resumé modification : '); |
$bouton_validation = '<input type="submit" value="'.'Enregistrer'.'" title="'.'Enregistrer'.'" />'; |
$bouton_annuler = '<a class="bouton" href="'.$closeURL.'" title="'.'Annuler'.'" >'.'Annuler'.'</a>'; |
$boutons = '<p>'."\n". |
$bouton_validation."\n". |
$bouton_annuler."\n". |
'</p>'."\n"; |
$form->addElement('html', $boutons); |
$form->addElement('html', $baseHidden); |
$form->addElement('hidden', 'menuid', $menuid); |
$form->addElement('hidden', 'docid', $docid); |
$form->addElement('hidden', 'pageid', $pageid); |
$form->addElement('hidden', 'menuopen', $menuopen); |
$form->addElement('hidden', 'docopen', $docopen); |
$form->addElement('hidden', 'pageopen', $pageopen); |
$form->addElement('hidden', 'doccmd', 'contenuenreg'); |
$form->setDefaults($ligne_dernier_contenu); |
$res .= $form->toHTML()."\n"; |
return $res; |
} |
/** Fonction ajouterContenu() - Enregistre les infos du formulaire de saisie d'un menu |
* |
* |
* @return void les données sont enregistrées dans la base de données. |
*/ |
function ajouterContenu($db, $adminProject, $adminLocale, $menuid, $tab_valeur) |
{ |
global $_GEN_commun; |
//---------------------------------------------------------------------------- |
// Mise à jour de l'ancien contenu du menu |
$requete = 'UPDATE gen_menu_contenu SET '. |
'gmc_bool_dernier = 0 '. |
'WHERE gmc_ce_menu = '.$menuid; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Obtention d'un nouvel identifiant de contenu |
$nouveau_id_contenu = SQL_obtenirNouveauId($db, 'gen_menu_contenu', 'gmc_id_contenu'); |
//---------------------------------------------------------------------------- |
// Ajout du nouveau contenu pour ce menu |
$requete = 'INSERT INTO gen_menu_contenu SET '. |
'gmc_id_contenu = '.$nouveau_id_contenu.', '. |
'gmc_ce_admin = '.$_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur').', '. |
'gmc_ce_menu = '.$menuid.', '. |
'gmc_ce_type_contenu = '.$tab_valeur['gmc_ce_type_contenu'].', '. |
'gmc_contenu = "'.$tab_valeur['gmc_contenu'].'", '. |
'gmc_ce_type_modification = '.$tab_valeur['gmc_ce_type_modification'].', '. |
'gmc_resume_modification = "'.$tab_valeur['gmc_resume_modification'].'", '. |
'gmc_date_modification = "'.date('Y-m-d H:i:s').'", '. |
'gmc_bool_dernier = 1'; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Partie non obligatoire*/ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.5 2004/05/07 16:32:27 jpm |
* Modification des commentaires. |
* |
* Revision 1.4 2004/05/07 07:23:53 jpm |
* Amélioration du code, des commentaires et correction de bogues. |
* |
* Revision 1.3 2004/05/04 16:27:55 jpm |
* Amélioration gestion du déplacement des menus. |
* |
* Revision 1.2 2004/05/03 14:51:59 jpm |
* Normalisation du nom d'une fonction et ajout de la gestion d'une erreur. |
* |
* Revision 1.1 2004/04/30 16:21:30 jpm |
* Ajout de la rédaction de contenu. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_menu/bibliotheque/adme_menu_classique.fonct.php |
---|
New file |
0,0 → 1,968 |
<?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: adme_menu_classique.fonct.php,v 1.1 2004-06-16 15:04:32 jpm Exp $ |
/** |
* Fonctions de gestion des menus classiques |
* |
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus classiques. |
* Par menus classiques nous entendons tous les menus devant paraitre dans l'arborescences |
* des menus disponibles pour le site courant. |
* |
*@package Administrateur des Menus |
*@subpackage Fonctions |
//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:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici les inclusions de fichiers*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici le code du programme*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici la liste de fonctions.*/ |
function lister_menu_racine($db, |
$baseURL, $baseURLjs, $baseHidden, |
$adminProject, $adminLocale, $adminAnnu, |
$menuid, $upperid, |
$doccmd, $menuopen, $upperopen, $id_pere) |
{ |
//---------------------------------------------------------------------------- |
// Labels. |
$cancelLabel = "Annuler"; |
$showLabel = "Modifier le document"; |
$deleteLabel = "Supprimer"; |
$addMenu2Label = "Ajouter un menu de niveau 2"; |
//---------------------------------------------------------------------------- |
// Javascript. |
$goMsg = addslashes ("Supprimer"); |
$fullURLjs = $baseURLjs.'&menuview=menu'; |
GEN_stockerFonctionScript('deleteMenu', |
" function deleteMenu (iMenuId) {"."\n". |
" var url = '$fullURLjs'+'&doccmd=delmenu&menuid='+iMenuId+'&menuopen=".($menuopen ? 1 : 0)."';"."\n". |
" if (window.confirm ('$goMsg')) document.location = url;"."\n". |
" }"."\n" |
); |
//---------------------------------------------------------------------------- |
// Récupération des informations sur le site à administrer. |
$res = "<ul>\n"; |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gs_code_alpha = "'.$adminProject.'" '. |
'AND gs_id_site = gsr_id_site_01 '. |
'AND gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_valeur = 102 ';// 102 = site "principal" |
$result = $db->query($requete); |
if (DB::isError($result)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)); |
} |
if ($result->numRows() != 1) { |
return ''; |
} |
$PRJrow = $result->fetchRow(DB_FETCHMODE_OBJECT); |
$result->free(); |
//---------------------------------------------------------------------------- |
// Liste des menus de niveau 1. |
$requete = 'SELECT * '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE gm_ce_site = "'.$PRJrow->gs_id_site.'" '. |
'AND gm_ce_i18n = "'.$adminLocale.'" '. |
'AND GMR02.gmr_id_menu_02 = gm_id_menu '. |
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique" |
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père" |
'ORDER BY GMR01.gmr_ordre ASC'; |
$L1result = $db->query($requete); |
(DB::isError($L1result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $L1result->getMessage(), $requete)) : ''; |
// On recherche quel est le menu de niveau 1 correspondant au menuid courant |
if (isset($menuid)) { |
$menu_id_ancetre = GEN_lireIdentifiantMenuAncetre($menuid); |
} else { |
$menu_id_ancetre = '' ; |
} |
while ($L1row = $L1result->fetchRow(DB_FETCHMODE_OBJECT)) { |
// est-ce que $menuid = menuracine |
if ($L1row->gm_id_menu == $menu_id_ancetre) { |
$res .= deployer_menu($L1row->gm_id_menu, $adminProject) ; |
} else { |
$res .= menu_toHTML($L1row->gm_id_menu, false, $adminProject) ; |
} |
} |
//---------------------------------------------------------------------------- |
// End of menu table. |
$res .= "\n".'</ul>'; |
//---------------------------------------------------------------------------- |
// Cleanup. |
$L1result->free(); |
return $res; |
} |
/** Fonction addMenu() - Ajoute un sous menu au menu courant |
* |
* @param string Le projet courant |
* @param string La langue courante |
* @return void le menu classique est ajouté à la base de données. |
*/ |
function addMenu($adminProject, $adminLocale) |
{ |
global $db, $_GEN_commun, $menuid; |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur le site principal. |
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject); |
if ($PRJrow == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'Code alpha du site : '. $adminProject .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur le nouveau menu |
if ($adminLocale == $PRJrow->gs_ce_i18n) { |
$id_site = $PRJrow->gs_id_site; |
} else { |
$ligne_admin_site_i18n = getSiteI18nInfos($db, $adminProject, $adminLocale);// Info du site en cours d'administration |
$id_site = $ligne_admin_site_i18n->gs_id_site; |
} |
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu'); |
$auteur = $_GEN_commun['pear_auth']->getAuthData('ga_prenom').' '.$_GEN_commun['pear_auth']->getAuthData('ga_nom'); |
//---------------------------------------------------------------------------- |
// Ajout du nouveau menu |
$requete = 'INSERT INTO gen_menu '. |
'SET gm_id_menu = '.$nouveau_id_menu.', '. |
'gm_ce_site = '.$id_site.', '. |
'gm_ce_i18n = "'.$adminLocale.'", '. |
'gm_ce_application = 0, '. |
'gm_code_num = '.$nouveau_id_menu.', '. |
'gm_code_alpha = "menu_'.$nouveau_id_menu.'", '. |
'gm_nom = "menu_'.$nouveau_id_menu.'", '. |
'gm_auteur = "'.$auteur.'", '. |
'gm_editeur = "'.$PRJrow->gs_auteur.'", '. |
'gm_date_creation = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_soumission = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_acceptation = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_publication = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_debut_validite = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_copyright = "'.date('Y-00-00 00:00:00').'", '. |
'gm_categorie = "menu", '. |
'gm_ce_admin = '.$_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur').' ' |
; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation "père" |
if (!isset($menuid) && empty($menuid)) { |
$menuid = 0 ;// Identifiant du père |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur la hierarchie du menu |
$requete = 'SELECT * '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$menuid.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père" |
'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'ORDER BY GMR01.gmr_ordre DESC'; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
$row = $result->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu = $row->gmr_ordre + 1; |
$result->free(); |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_02 = '.$menuid.', '. |
'gmr_id_menu_01 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 1, '. |
'gmr_ordre = '.$nouveau_ordre_menu; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation-type "menu classique" |
// Récupération d'infos sur la hierarchie du menu |
$requete = 'SELECT * '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_02 = gmr_id_menu_01 '. |
'AND gmr_id_valeur = 100 '.// 10 = type menu "classique" |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gm_ce_site = '.$id_site.' '. |
'ORDER BY gmr_ordre DESC'; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
$row = $result->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu_classique = $row->gmr_ordre + 1; |
$result->free(); |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_01 = '.$nouveau_id_menu.', '. |
'gmr_id_menu_02 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 100, '. |
'gmr_ordre = '.$nouveau_ordre_menu_classique; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
/** Fonction showMenu() - Affiche le formulaire de saisie d'un menu |
* |
* |
* @return string Le HTML |
*/ |
function showMenu( $db, |
$adminProject, $adminLocale, |
$baseURL, $baseURLjs, $baseHidden, |
$menuid, $docid, $pageid, $menuopen, $docopen, $pageopen) |
{ |
//---------------------------------------------------------------------------- |
// Initialisation de variable |
$closeURL = $baseURL.'&menuid='.$menuid.'&menuopen='.$menuopen; |
//---------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject); |
if ($PRJrow == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'Code alpha du site : '. $adminProject .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Récupération des informations du menu concerné. |
$ligne_menu = GEN_lireInfoMenu($db, $menuid, DB_FETCHMODE_ASSOC); |
if ($ligne_menu == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du menu.<br />'. |
'Idenitifiant du menu n° : '. $menuid .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Titre de la page |
$res = '<h1>'.'Modification menu'.'</h1>'."\n"; |
//---------------------------------------------------------------------------- |
// Création du formulaire |
$form =& new HTML_QuickForm('updform', 'post', $baseURLjs); |
$tab_index = 1000; |
$squelette =& $form->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '<li>'."\n". |
'{label}'."\n". |
'{element}'."\n". |
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</li>'."\n"); |
$squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n"); |
$partie_menu_debut = '<fieldset>'."\n".'<legend>Configuration du menu</legend>'."\n".'<ul>'."\n"; |
$form->addElement('html', $partie_menu_debut); |
$id = 'gm_code_num'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 5, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Code numérique du menu'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, 'Un code numérique est requis pour le menu !', 'required', '', 'client'); |
$id = 'gm_code_alpha'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20); |
$label = '<label for="'.$id.'">'.'Code alphanumérique du menu'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, 'Un code alphanumérique est requis pour le menu !', 'required', '', 'client'); |
$id = 'gm_nom'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 50, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Nom du menu'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, 'Un nom est requis pour le menu !', 'required', '', 'client'); |
$form->applyFilter($id, 'trim'); |
$id = 'gm_raccourci_clavier'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1); |
$label = '<label for="'.$id.'">'.'Raccourci clavier'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'defaut'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'En faire le menu par défaut'.'</label>'; |
$form->addElement('checkbox', $id, $label, '', $aso_attributs); |
$id = 'gm_fichier_squelette'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 50, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Fichier squelette'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_description_resume'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 50); |
$label = '<label for="'.$id.'">'.'Contenu info-bulle'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$form->addRule($id, 'Une description courte pour l\'info-bulle est requise pour ce menu !', 'required', '', 'client'); |
// Requête sur les applications |
$requete = 'SELECT gap_id_application, gap_nom '. |
'FROM gen_application '. |
'WHERE gap_bool_applette = 0';// Pour éviter d'afficher les applettes. |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$aso_options = array(); |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$aso_options[$ligne->gap_id_application] = $ligne->gap_nom; |
} |
$resultat->free(); |
$id = 'gm_ce_application'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Application'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_application_arguments'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Arguments de l\'application'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$partie_menu_fin = '</ul>'."\n".'</fieldset>'."\n"; |
$form->addElement('html', $partie_menu_fin); |
$partie_entete_debut = '<fieldset>'."\n".'<legend>Entête des pages du menu</legend>'."\n".'<ul>'."\n"; |
$form->addElement('html', $partie_entete_debut); |
$id = 'gm_robot'; |
$aso_options = array( 'index,follow' => 'Indexer cette page et les suivantes', |
'index' => 'Indexer seulement cette page', |
'noindex' => 'Ne pas indexer cette page', |
'noindex,nofollow' => 'Ne pas indexer cette page et les suivantes', |
'' => 'Auncune'); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Indexation par robots'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_titre'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Titre de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_titre_alternatif'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Titre alternatif de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_mots_cles'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 50); |
$label = '<label for="'.$id.'">'.'Mots-clés'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_description_libre'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Description du contenu '.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_description_table_matieres'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Table des matières'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_source'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Source'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_auteur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Auteur'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_contributeur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Contributeur'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_editeur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Editeur'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_date_debut_validite'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.'Date de début de validité'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_date_fin_validite'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.'Date de fin de validité'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_date_copyright'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.'Année pour le copyright'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_licence'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'URL de la licence'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_categorie'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Catégorie'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_public'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Public pour la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_public_niveau'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 25, 'maxlength' => 45); |
$label = '<label for="'.$id.'">'.'Niveau du public pour la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_spatiale'; |
$aso_options = array( '' => 'Aucun', |
'iso3166' => 'Code de pays sur deux lettres (iso3166)', |
'Point' => 'Point géographique', |
'Box' => 'Représenation des régions géographiques du Dublin Core', |
'TGN' => 'Noms issus du Getty Thesaurus of Geographic Names'); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Type de portée spatiale'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_spatiale'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Portée spatiale de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_temporelle'; |
$aso_options = array( '' => 'Aucun', |
'W3CDTF' => 'Codage des dates et heures du W3C', |
'Period' => 'Représentation des intervalles de temps du Dublin Core'); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Type de portée temporelle'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_temporelle'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Portée temporelle de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n"; |
$form->addElement('html', $partie_entete_fin); |
$bouton_validation = '<input type="submit" value="'.'Enregistrer'.'" title="'.'Enregistrer'.'" />'; |
$bouton_annuler = '<a class="bouton" href="'.$closeURL.'" title="'.'Annuler'.'" >'.'Annuler'.'</a>'; |
$boutons = '<p>'."\n".$bouton_validation.' '."\n".$bouton_annuler."\n".'</p>'."\n"; |
$form->addElement('html', $boutons); |
$partie_cachee_debut = '<p>'."\n"; |
$form->addElement('html', $partie_cachee_debut); |
$form->addElement('html', $baseHidden); |
$form->addElement('hidden', 'menuid', $menuid); |
$form->addElement('hidden', 'docid', $docid); |
$form->addElement('hidden', 'pageid', $pageid); |
$form->addElement('hidden', 'menuopen', $menuopen); |
$form->addElement('hidden', 'docopen', $docopen); |
$form->addElement('hidden', 'pageopen', $pageopen); |
$form->addElement('hidden', 'doccmd', 'commitupdmenu'); |
$partie_cachee_fin = '</p>'."\n"; |
$form->addElement('html', $partie_cachee_fin); |
// Instanciation avec les valeur par défaut |
$form->setDefaults($ligne_menu); |
// Javascript pour la validation côté client |
$regles_javascript = $form->getValidationScript(); |
// Suppression des balises déjà créées par GEN_stockerCodeScript() |
$regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript); |
$regles_javascript = ereg_replace ( '<!--', '', $regles_javascript); |
$regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript); |
$regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript); |
GEN_stockerCodeScript($regles_javascript); |
// Note de fin de formulaire |
$form->setRequiredNote('Indique les champs obligatoires'); |
$res .= $form->toHTML()."\n"; |
return $res; |
} |
/** Fonction commitUpdateLevel() - Enregistre les infos du formulaire de saisie d'un menu |
* |
* |
* @return void les données sont enregistrées dans la base de données. |
*/ |
function commitUpdateLevel($db, $adminProject, $adminLocale, $menuid) |
{ |
global $_GEN_commun; |
$requete = 'UPDATE gen_menu SET '. |
'gm_ce_application = '.$_POST['gm_ce_application'].', '. |
'gm_application_arguments = "'.$_POST['gm_application_arguments'].'", '. |
'gm_fichier_squelette = "'.$_POST['gm_fichier_squelette'].'", '. |
'gm_code_num = '.$_POST['gm_code_num'].', '. |
'gm_code_alpha = "'.$_POST['gm_code_alpha'].'", '. |
'gm_nom = "'.$_POST['gm_nom'].'", '. |
'gm_raccourci_clavier = "'.$_POST['gm_raccourci_clavier'].'", '. |
'gm_robot = "'.$_POST['gm_robot'].'", '. |
'gm_titre = "'.$_POST['gm_titre'].'", '. |
'gm_titre_alternatif = "'.$_POST['gm_titre_alternatif'].'", '. |
'gm_mots_cles = "'.$_POST['gm_mots_cles'].'", '. |
'gm_description_libre = "'.$_POST['gm_description_libre'].'", '. |
'gm_description_resume = "'.$_POST['gm_description_resume'].'", '. |
'gm_description_table_matieres = "'.$_POST['gm_description_table_matieres'].'", '. |
'gm_source = "'.$_POST['gm_source'].'", '. |
'gm_auteur = "'.$_POST['gm_auteur'].'", '. |
'gm_contributeur = "'.$_POST['gm_contributeur'].'", '. |
'gm_editeur = "'.$_POST['gm_editeur'].'", '. |
'gm_date_debut_validite = "'.$_POST['gm_date_debut_validite'].'", '. |
'gm_date_fin_validite = "'.$_POST['gm_date_fin_validite'].'", '. |
'gm_date_copyright = "'.$_POST['gm_date_copyright'].'", '. |
'gm_licence = "'.$_POST['gm_licence'].'", '. |
'gm_categorie = "'.$_POST['gm_categorie'].'", '. |
'gm_public = "'.$_POST['gm_public'].'", '. |
'gm_public_niveau = "'.$_POST['gm_public_niveau'].'", '. |
'gm_ce_type_portee_spatiale = "'.$_POST['gm_ce_type_portee_spatiale'].'", '. |
'gm_portee_spatiale = "'.$_POST['gm_portee_spatiale'].'", '. |
'gm_ce_type_portee_temporelle = "'.$_POST['gm_ce_type_portee_temporelle'].'", '. |
'gm_portee_temporelle = "'.$_POST['gm_portee_temporelle'].'", '. |
'gm_ce_admin = "'.$_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur').'" '. |
'WHERE gm_id_menu = '.$menuid; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
// Gestion de la relation menu par défaut |
if (isset($_POST['defaut']) && $_POST['defaut'] == 1) { |
$requete_id_menu_supr_defaut = 'SELECT GM01.gm_id_menu AS id_menu_supr_defaut '. |
'FROM gen_menu AS GM01, gen_menu AS GM02, gen_menu_relation '. |
'WHERE GM02.gm_id_menu = '.$menuid.' '. |
'AND GM02.gm_ce_site = GM01.gm_ce_site '. |
'AND GM01.gm_id_menu = gmr_id_menu_01 '. |
'AND gmr_id_valeur = 101 ';// 101 = menu par "defaut" |
$resultat_menu_supr_defaut = $db->query($requete_id_menu_supr_defaut); |
if (DB::isError($resultat_menu_supr_defaut)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu_supr_defaut->getMessage(), $requete_id_menu_supr_defaut)); |
} |
if ($resultat_menu_supr_defaut->numRows() > 0 ) { |
$requete_supr_defaut = 'DELETE FROM gen_menu_relation '. |
'WHERE gmr_id_menu_01 = gmr_id_menu_02 '. |
'AND gmr_id_valeur = 101 '.// 101 = menu par "defaut" |
'AND gmr_id_menu_01 = '.$resultat_menu_supr_defaut->id_menu_supr_defaut; |
$resultat_supr_defaut = $db->query($requete_supr_defaut); |
if (DB::isError($resultat_supr_defaut)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut)); |
} |
} |
// Requete d'insertion de la relation menu par défaut |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_01 = '.$menuid.', '. |
'gmr_id_menu_02 = '.$menuid.', '. |
'gmr_id_valeur = 101, '. |
'gmr_ordre = NULL '; |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
} |
} |
/** Fonction moveMenu() - Permet de déplacer un menu dans la hiérarchie. |
* |
* Permet de déplacer un menu dans la hiérarchie des menus classiques. |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param string code du site administré. |
* @param string identifiant de l'i18n du site administré. |
* @param int identifiant du menu à déplacer. |
* @param boolean indique si on veut monter le menu (true) ou le descendre (false). |
* @return void Modifie la base de données. |
*/ |
function moveMenu($db, $adminProject, $adminLocale, $menuid, $up) |
{ |
//---------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject); |
if ($PRJrow == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'Code alpha du site : '. $adminProject .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Récupération d'informations sur les relations du menu courant. |
$ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $menuid, '1'); |
if ($ligne_menu_courant_relation == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos sur les relations du menu.<br />'. |
'Identifiant menu : '. $menuid .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$id_pere = $ligne_menu_courant_relation->gmr_id_menu_02; |
// Il serait mieux d'utiliser la fonction ci-dessous. |
// Mais cela ne semble pas fonctionner!!! |
/* |
$id_pere = GEN_lireIdentifiantMenuPere($menuid); |
if ($id_pere == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire identifiant du menu père.<br />'. |
'Identifiant menu fils : '. $menuid .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
*/ |
//---------------------------------------------------------------------------- |
// Recherche d'information sur le menu précédent ou suivant le menu courant |
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '. |
'AND GMR01.gmr_id_valeur = 1 ';// 1 = relation menu "père" |
if ($up) { |
$requete .= 'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
} else { |
$requete .= 'AND GMR01.gmr_ordre > '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre ASC'; |
} |
$MENUresult = $db->query($requete); |
(DB::isError($MENUresult)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $MENUresult->getMessage(), $requete)) : ''; |
$MENUrow = $MENUresult->fetchRow(DB_FETCHMODE_OBJECT); |
$MENUresult->free(); |
//---------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $MENUrow) { |
return; |
} |
//---------------------------------------------------------------------------- |
// Mise à jour des relations du menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.$MENUrow->nouvel_ordre.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Mise à jour des relations du menu précédent ou suivant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'WHERE gmr_id_menu_01 = '.$MENUrow->id_menu_remplace.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
/** Fonction deleteMenu() - Supprime un menu classique. |
* |
* Supprime de la base de données de Génésia toutes les traces du menu classiques |
* passé en paramètre. |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param string l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function deleteMenu($objet_pear_db, $id_menu_a_supprimer) |
{ |
//---------------------------------------------------------------------------- |
// Y a t'il des sous_menus |
$requete = 'SELECT COUNT(gm_id_menu) AS compte '. |
'FROM gen_menu, gen_menu_relation '. |
'WHERE gmr_id_menu_02 = '.$id_menu_a_supprimer.' '. |
'AND gmr_id_valeur = 1 '. |
'AND gmr_id_menu_01 = gm_id_menu '; |
$resultat = $objet_pear_db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
if ($ligne && ($ligne->compte > 0)) { |
return "Il reste des menus attachés à ce menu !"; |
} |
//---------------------------------------------------------------------------- |
// S'il n'y a plus de sous niveau, on supprime le menu |
$requete = 'DELETE FROM gen_menu '. |
'WHERE gm_id_menu = '.$id_menu_a_supprimer; |
$resultat = $objet_pear_db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Puis on supprime les relations de ce menu |
$requete = 'DELETE FROM gen_menu_relation '. |
'WHERE gmr_id_menu_01 = '.$id_menu_a_supprimer; |
$resultat = $objet_pear_db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
/** Fonction deployer_menu () - Affiche un menu en html |
* |
* @param integer l'identifiant du menu |
* @param integer le code (numérique ou alphanumérique) du site administré. |
* @return string du code HTML |
*/ |
function deployer_menu($id_menu_a_deployer, $adminProject) |
{ |
global $project, $locale, $db, $menuopen, $menuid; |
// Est-ce que ces menus comporte des sous-menus ? |
$requete_sous_menu = 'SELECT gm_id_menu '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$id_menu_a_deployer.' '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père" |
'AND GMR02.gmr_id_menu_02 = gm_id_menu '. |
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique" |
'ORDER BY GMR01.gmr_ordre ASC'; |
$resultat_sous_menu = $db->query($requete_sous_menu) ; |
if (DB::isError($resultat_sous_menu)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_sous_menu->getMessage(), $requete_sous_menu)); |
} |
if (isset($menuid)) { |
$menu_id_ancetre = GEN_lireIdentifiantMenuAncetre($menuid); |
} |
$res = '' ; |
if ($resultat_sous_menu->numRows() > 0) { |
// ici, on sait qu'un menu a des sous menus |
// on commence par l'afficher |
// $afficher_un_moins vaut vrai si : |
// - menuopen vaut 1 ET menuid (de l'url) égale le menu qu'on est en train de déployer |
// - OU l'identifiant du menu racine du menuid est celui qu'on est en train de déployer |
// mais n'est pas la racine |
$afficher_un_moins = ($menuopen && $menuid == $id_menu_a_deployer) |
|| (GEN_etreAncetre($id_menu_a_deployer, $menuid) && $menuid != $menu_id_ancetre); |
$res .= menu_toHTML($id_menu_a_deployer, $afficher_un_moins, $adminProject); |
if ($afficher_un_moins) { |
while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) { |
$res .= '<ul>'."\n" ; |
$res .= deployer_menu($ligne_sous_menu->gm_id_menu, $adminProject); |
$res .= '</ul>'; |
} |
} |
} else { |
$res .= menu_toHTML($id_menu_a_deployer, true, $adminProject); |
} |
return $res; |
} |
/** Fonction menu_toHTML () Effectue une sortie d'un menu en HTML |
* |
* |
* @return string Une liste HTML |
*/ |
function menu_toHTML($menuid, $deplier, $adminProject) |
{ |
global $db, $_GEN_commun, $menu, $locale, $menuopen, $doccmd ; |
$cancelLabel = 'Annuler'; |
$etiquette_alt_modifier = 'Modifier'; |
$etiquette_title_modifier = 'Modifier ce menu'; |
$etiquette_alt_supprimer = 'Supprimer'; |
$etiquette_title_supprimer = 'Supprimer ce menu'; |
$etiquette_alt_ajouter = 'Ajouter'; |
$etiquette_title_ajouter = 'Ajouter un menu inférieur'; |
$etiquette_alt_monter = 'Monter'; |
$etiquette_title_monter = 'Monter ce menu'; |
$etiquette_alt_descendre = 'Descendre'; |
$etiquette_title_descendre = 'Descendre ce menu'; |
$etiquette_alt_redaction = 'Rédiger'; |
$etiquette_title_redaction = 'Rédiger le contenu de ce menu'; |
$label_deplier = "Déplier" ; |
$label_plier = "Plier" ; |
$baseURL = 'papyrus.php?'. |
'site='.$_GEN_commun['url_site']. |
'&menu='.$_GEN_commun['url_menu']. |
'&langue='.$_GEN_commun['url_i18n']. |
'&adminProject='.$adminProject; |
$requete = 'SELECT *, ga_prenom '. |
'FROM gen_menu, gen_annuaire '. |
'WHERE gm_id_menu = '.$menuid.' '. |
'AND gm_ce_admin = ga_id_administrateur'; |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
// recherche de l'application liée |
$requete_app = 'SELECT gap_nom '. |
'FROM gen_application '. |
'WHERE gap_id_application = '.$ligne->gm_ce_application; |
$resultat_app = $db->query($requete_app); |
if (DB::isError($resultat_app)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_app->getMessage(), $requete_app)); |
} |
$ligne_app = $resultat_app->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat_app->free(); |
if ($deplier) { |
$imgURL = ADME_IMAGE_MOINS; |
$imgHREF = $baseURL.'&menuid='.$ligne->gm_id_menu; |
$alt = $label_plier ; |
} else { |
$imgURL = ADME_IMAGE_PLUS; |
$imgHREF = $baseURL.'&menuid='.$ligne->gm_id_menu.'&menuopen=1'; |
$alt = $label_deplier ; |
} |
if (isset($imgURL) && $imgURL != '') { |
$img = '<a href="'.$imgHREF.'" class="anchor" title="'.$alt.'">'. |
'<img src="'.$imgURL.'" alt="'.$alt.'" width="9" height="9" border="0" />'. |
'</a>'.' '; |
} else { |
$img = ''; |
} |
//------------------------------------------------------------------------ |
// Url de base |
$pageHREF = $baseURL.'&menuid='.$ligne->gm_id_menu.'&menuopen='.($menuopen ? 1 : 0); |
//------------------------------------------------------------------------ |
// Affichage du nom du menu et de ses infos |
$menuText = htmlentities(empty($ligne->gm_nom) ? "($ligne->gm_nom)" : $ligne->gm_nom); |
$menuText .= ' '; |
$menuText .= '('.$ligne_app->gap_nom.' / '.$ligne->ga_prenom.')'; |
$menuText .= ' '; |
//------------------------------------------------------------------------ |
// Icones d'actions |
$actionIcons = |
'<a href="'.$pageHREF.'&doccmd=showmenu" title="'.$etiquette_title_modifier.'">'. |
'<img src="'.ADME_IMAGE_VOIR.'" alt="'.$etiquette_alt_modifier.'" width="16" height="16" border="0" />'. |
'</a>'. |
' '. |
'<a href="'.$pageHREF.'&doccmd=upmenu" title="'.$etiquette_title_monter.'">'. |
'<img src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.$etiquette_alt_monter.'" width="16" height="16" border="0" />'. |
'</a>'. |
' '. |
'<a href="'.$pageHREF.'&doccmd=dnmenu" title="'.$etiquette_title_descendre.'">'. |
'<img src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.$etiquette_alt_descendre.'" width="16" height="16" border="0" />'. |
'</a>'. |
' '. |
'<a href="javascript:deleteMenu ('.$ligne->gm_id_menu.')" title="'.$etiquette_title_supprimer.'">'. |
'<img src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.$etiquette_alt_supprimer.'" width="16" height="16" border="0" />'. |
'</a>'. |
' '. |
'<a href="'.$baseURL.'&menuview=menu&menuid='.$ligne->gm_id_menu.'&menuopen=1&doccmd=addmenu" title="'.$etiquette_title_ajouter.'">'. |
'<img src="'.ADME_IMAGE_NOUVEAU.'" alt="'.$etiquette_alt_ajouter.'" width="16" height="16" border="0" />'. |
'</a>'.' '; |
// Si l'application liée est "texte simple", on ajoute un icone avec un lien vers |
// l'administration de cette application. |
if ($ligne->gm_ce_application == 3) { // l'appli afficheur a pour id 3 |
//$url_popup = DOCADM_CHEMIN_APPLICATION."docpopup.php?admproject=$adminProject&locale=$locale&menu=$menuid" ; |
$actionIcons .= '<a href="'.$pageHREF.'&doccmd=contenuredac" title="'.$etiquette_title_redaction.'">'. |
'<img src="'.ADME_IMAGE_TEXTE.'" alt="'.$etiquette_alt_redaction.'" width="16" height="16" border="0" />'. |
'</a>'.' '; |
} |
//-------------------------------------------------------------------------- |
// Envoi du menu. |
$res = '<li class="text">'.$img.$menuText.$actionIcons.'</li>'."\n"; |
return $res; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Partie non obligatoire*/ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.27 2004/05/10 12:13:03 jpm |
* Modification des formulaires. |
* |
* Revision 1.26 2004/05/07 16:31:20 jpm |
* Amélioration du formulaire d'un menu classique. |
* |
* Revision 1.25 2004/05/07 07:23:53 jpm |
* Amélioration du code, des commentaires et correction de bogues. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_menu/bibliotheque/adme_menu_commun.fonct.php |
---|
New file |
0,0 → 1,830 |
<?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: adme_menu_commun.fonct.php,v 1.1 2004-06-16 15:04:32 jpm Exp $ |
/** |
* Application de gestion des menus communs |
* |
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus communs. |
* Par menus communs nous entendons tous les menus devant paraitre sur l'ensemble des pages d'un site, |
* comme le lien vers le plan du site, le lien vers la charte d'accessibilité, le flux rss... |
* |
*@package Administrateur des Menus |
*@subpackage Fonctions |
//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:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici les inclusions de fichiers*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici le code du programme*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/*Mettre ici la liste de fonctions.*/ |
function listUpper($db, |
$baseURL, $baseURLjs, $baseHidden, |
$adminProject, $adminLocale, $adminAnnu, |
$menu1id, $upperid, |
$doccmd, |
$menu1open) |
{ |
//---------------------------------------------------------------------------- |
// Get infos about the project. |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gs_code_alpha = "'.$adminProject.'" '. |
'AND gsr_id_site_01 = gs_id_site '. |
'AND gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_valeur = 102 '; // 102 = site "principal" |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
if ($result->numRows() != 1) { |
return ''; |
} |
$PRJrow = $result->fetchRow(DB_FETCHMODE_OBJECT); |
$result->free(); |
$lookName = $PRJrow->gs_fichier_squelette; |
//---------------------------------------------------------------------------- |
// Labels. |
$etiquette_alt_modifier = 'Modifier'; |
$etiquette_title_modifier = 'Modifier ce menu commun'; |
$etiquette_alt_supprimer = 'Supprimer'; |
$etiquette_title_supprimer = 'Supprimer ce menu commun'; |
$etiquette_alt_monter = 'Monter'; |
$etiquette_title_monter = 'Monter ce menu commun'; |
$etiquette_alt_descendre = 'Descendre'; |
$etiquette_title_descendre = 'Descendre ce menu commun'; |
$etiquette_alt_redaction = 'Rédiger'; |
$etiquette_title_redaction = 'Rédiger le contenu de ce menu commun'; |
//---------------------------------------------------------------------------- |
// Javascript. |
$goMsg = addslashes('Supprimer'); |
$fullURLjs = $baseURLjs.'&menuview=upper&menu1open=1'; |
GEN_stockerFonctionScript( 'deleteUpper', |
" function deleteUpper (iUpperId) {"."\n". |
" var url = '$fullURLjs'+'&doccmd=delupper&upperid='+iUpperId;"."\n". |
" if (window.confirm ('$goMsg')) document.location = url;"."\n". |
" }"."\n"); |
//---------------------------------------------------------------------------- |
// Début du xhtml |
$outputText = ''; |
//---------------------------------------------------------------------------- |
// Liste des menus communs. |
$requete = 'SELECT *, gap_nom AS nom_appli, ga_prenom AS prenom '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02, gen_application, gen_annuaire '. |
'WHERE gm_ce_site = "'.$PRJrow->gs_id_site.'" '. |
'AND gm_ce_i18n = "'.$adminLocale.'" '. |
'AND gm_ce_admin = ga_id_administrateur '. |
'AND gm_ce_application = gap_id_application '. |
'AND GMR02.gmr_id_menu_02 = gm_id_menu '. |
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '. |
'AND GMR02.gmr_id_valeur = 102 '.// 100 = type "menu classique" |
'AND GMR01.gmr_id_menu_01 = gm_id_menu '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père" |
'ORDER BY GMR01.gmr_ordre ASC'; |
$UPresult = $db->query($requete); |
if (DB::isError ($UPresult)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $UPresult->getMessage(), $requete)); |
} |
// Récupération de l'identifiant de la personne administrateur |
//global $_GEN_commun; |
//$userID = $_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur'); |
// Pour chaque menu commun trouvé, nous affichons les commandes. |
$outputText .= "\n".'<ul class="text">'; |
while ($UProw = $UPresult->fetchRow(DB_FETCHMODE_OBJECT)) { |
//-------------------------------------------------------------------------- |
// Nous avons un menu commun |
$img = ''; |
//-------------------------------------------------------------------------- |
// Menu text. |
$menuText = htmlentities($UProw->gm_nom).' '. |
'('.htmlentities($UProw->nom_appli).' - '.htmlentities($UProw->prenom).') '; |
$menuText = (empty($menuText) ? '(...)' : $menuText); |
$actionIcons = ' '; |
//$commitIcons = ' '; |
//------------------------------------------------------------------------ |
// Ajout de l'identifiant du menu commun à l'url des boutons d'action. |
$pageHREF = $baseURL.'&upperid='.$UProw->gm_id_menu ; |
/*if ($doccmd == 'upduppertxt' && $upperid == $UProw->gm_id_menu) { |
$cancelLabel = 'Annuler'; |
$menuText = '<input type="text" name="upper_text" size="32" '. |
'maxlength="64" value="'.$menuText.'" '. |
'class="contentDocument">'. |
'<input type="hidden" name="doccmd" value="commitupduppertxt">'; |
$commitIcons .= '<input type="image" src="'.DOCADM_IMAGE_VALIDER.'">'. |
"\n". |
'<a'."\n".'href="'.$pageHREF.'">'. |
'<img src="'.DOCADM_IMAGE_ANNULER.'" alt="'.$cancelLabel.'" width="16" height="16" border="0" />'. |
'</a>'; |
} else { |
$txtHREF = $pageHREF.'&doccmd=upduppertxt'; |
$menuText = '<a href="'.$txtHREF.'" class="anchor">'.$menuTextFull.'</a>'; |
}*/ |
//------------------------------------------------------------------------ |
// Les icones d'action. |
$actionIcons = |
'<a href="'.$pageHREF.'&doccmd=upduppertxt" title="'.$etiquette_title_modifier.'">'. |
'<img src="'.ADME_IMAGE_VOIR.'" alt="'.$etiquette_alt_modifier.'" width="16" height="16" border="0" />'. |
'</a>'. |
"\n". |
'<a'."\n".'href="'.$pageHREF.'&doccmd=upupper" title="'.$etiquette_title_monter.'">'. |
'<img src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.$etiquette_alt_monter.'" width="16" height="16" border="0" />'. |
'</a>'. |
"\n". |
'<a'."\n".'href="'.$pageHREF.'&doccmd=dnupper" title="'.$etiquette_title_descendre.'">'. |
'<img src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.$etiquette_alt_descendre.'" width="16" height="16" border="0" />'. |
'</a>'. |
"\n". |
'<a'."\n".'href="javascript:deleteUpper('.$UProw->gm_id_menu.')" title="'.$etiquette_title_supprimer.'">'. |
'<img src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.$etiquette_alt_supprimer.'" width="16" height="16" border="0" />'. |
'</a>'; |
// Si l'application liée est "texte simple", on ajoute un icone avec un lien vers |
// l'administration de cette application. |
if ($UProw->gm_ce_application == 3) { // l'appli afficheur a pour id 3 |
//$url_popup = ADME_CHEMIN_APPLICATION."docpopup.php?admproject=$adminProject&locale=$locale&menu=$UProw->gm_id_menu" ; |
$icon_vers_texte = "\n ". |
'<a href="'.$pageHREF.'&doccmd=contenuredac" title="'.$etiquette_title_redaction.'">'. |
'<img src="'.ADME_IMAGE_TEXTE.'" alt="'.$etiquette_alt_redaction.'"'.' width="16" height="16" border="0" />'. |
'</a>'; |
} else { |
$icon_vers_texte = ''; |
} |
//-------------------------------------------------------------------------- |
// Ligne du menu commun. |
$outputText .= "\n".'<li class="contentDocument">'.$menuText.$actionIcons.$icon_vers_texte.'</li>'; |
} |
$outputText .= "\n".'</ul>'; |
//---------------------------------------------------------------------------- |
// Nettoyage |
$UPresult->free(); |
return $outputText; |
} |
//============================================================================== |
//============================================================================== |
/** Fonction addUpper() - Ajoute un sous menu commun au menu commun courant |
* |
* |
* |
* @param mixed Une instance de la classse PEAR_DB |
* @param string Le nom du projet qu'on administre |
* @param string La langue du projet qu'on administre |
* @return void les changement sont fait dans la base de données. |
*/ |
function addUpper($db, $adminProject, $adminLocale) |
{ |
//---------------------------------------------------------------------------- |
// Get project row. |
global $_GEN_commun; |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur le site principal. |
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject); |
if ($PRJrow == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'Code alpha du site : '. $adminProject .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur le nouveau menu |
if ($adminLocale == $PRJrow->gs_ce_i18n) { |
$id_site = $PRJrow->gs_id_site; |
} else { |
$ligne_admin_site_i18n = getSiteI18nInfos($db, $adminProject, $adminLocale);// Info du site en cours d'administration |
$id_site = $ligne_admin_site_i18n->gs_id_site; |
} |
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu'); |
$auteur = $_GEN_commun['pear_auth']->getAuthData('ga_prenom').' '.$_GEN_commun['pear_auth']->getAuthData('ga_nom'); |
//---------------------------------------------------------------------------- |
// Ajout du nouveau menu |
$requete = 'INSERT INTO gen_menu '. |
'SET gm_id_menu = '.$nouveau_id_menu.', '. |
'gm_ce_site = '.$id_site.', '. |
'gm_ce_i18n = "'.$adminLocale.'", '. |
'gm_ce_application = 0, '. |
'gm_code_num = '.$nouveau_id_menu.', '. |
'gm_code_alpha = "menu_'.$nouveau_id_menu.'", '. |
'gm_nom = "menu_'.$nouveau_id_menu.'", '. |
'gm_auteur = "'.$auteur.'", '. |
'gm_editeur = "'.$PRJrow->gs_auteur.'", '. |
'gm_date_creation = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_soumission = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_acceptation = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_publication = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_debut_validite = "'.date('Y-m-d H:i:s').'", '. |
'gm_date_copyright = "'.date('Y-00-00 00:00:00').'", '. |
'gm_categorie = "menu", '. |
'gm_ce_admin = '.$_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur').' ' |
; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation "père" |
if (!isset($menuid) && empty($menuid)) { |
$menuid = 0 ;// Identifiant du père |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur la hierarchie du menu |
$requete = 'SELECT * '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$menuid.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père" |
'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '. |
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun" |
'ORDER BY GMR01.gmr_ordre DESC'; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
$row = $result->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu = $row->gmr_ordre + 1; |
$result->free(); |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_02 = '.$menuid.', '. |
'gmr_id_menu_01 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 1, '. |
'gmr_ordre = '.$nouveau_ordre_menu; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation-type "commun" |
// Récupération d'infos sur le n |
$requete = 'SELECT * '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_02 = gmr_id_menu_01 '. |
'AND gmr_id_valeur = 102 '.// 102 = type "commun" |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gm_ce_site = '.$id_site.' '. |
'ORDER BY gmr_ordre DESC'; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
$row = $result->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_commun = $row->gmr_ordre + 1; |
$result->free(); |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_01 = '.$nouveau_id_menu.', '. |
'gmr_id_menu_02 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 102, '. |
'gmr_ordre = '.$nouveau_ordre_commun; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
//============================================================================== |
//============================================================================== |
function commitUpdateUpperText($db, $adminProject, $adminLocale, $upperid) |
{ |
global $_GEN_commun; |
$requete = 'UPDATE gen_menu SET '. |
'gm_ce_application = '.$_POST['gm_ce_application'].', '. |
'gm_application_arguments = "'.$_POST['gm_application_arguments'].'", '. |
'gm_fichier_squelette = "'.$_POST['gm_fichier_squelette'].'", '. |
'gm_code_num = '.$_POST['gm_code_num'].', '. |
'gm_code_alpha = "'.$_POST['gm_code_alpha'].'", '. |
'gm_nom = "'.$_POST['gm_nom'].'", '. |
'gm_raccourci_clavier = "'.$_POST['gm_raccourci_clavier'].'", '. |
'gm_robot = "'.$_POST['gm_robot'].'", '. |
'gm_titre = "'.$_POST['gm_titre'].'", '. |
'gm_titre_alternatif = "'.$_POST['gm_titre_alternatif'].'", '. |
'gm_mots_cles = "'.$_POST['gm_mots_cles'].'", '. |
'gm_description_libre = "'.$_POST['gm_description_libre'].'", '. |
'gm_description_resume = "'.$_POST['gm_description_resume'].'", '. |
'gm_description_table_matieres = "'.$_POST['gm_description_table_matieres'].'", '. |
'gm_source = "'.$_POST['gm_source'].'", '. |
'gm_auteur = "'.$_POST['gm_auteur'].'", '. |
'gm_contributeur = "'.$_POST['gm_contributeur'].'", '. |
'gm_editeur = "'.$_POST['gm_editeur'].'", '. |
'gm_date_debut_validite = "'.$_POST['gm_date_debut_validite'].'", '. |
'gm_date_fin_validite = "'.$_POST['gm_date_fin_validite'].'", '. |
'gm_date_copyright = "'.$_POST['gm_date_copyright'].'", '. |
'gm_licence = "'.$_POST['gm_licence'].'", '. |
'gm_categorie = "'.$_POST['gm_categorie'].'", '. |
'gm_public = "'.$_POST['gm_public'].'", '. |
'gm_public_niveau = "'.$_POST['gm_public_niveau'].'", '. |
'gm_portee_spatiale = "'.$_POST['gm_portee_spatiale'].'", '. |
'gm_portee_temporelle = "'.$_POST['gm_portee_temporelle'].'", '. |
'gm_ce_admin = "'.$_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur').'" '. |
'WHERE gm_id_menu = '.$upperid; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
/** Fonction moveUpper() - Permet de déplacer un menu commun dans la hiérarchie. |
* |
* Permet de déplacer un menu dans la hiérarchie des menus communs. |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param string code alpha du site administré. |
* @param string identifiant de l'i18n du site administré. |
* @param int identifiant du menu commun à déplacer. |
* @param boolean indique si on veut monter le menu (true) ou le descendre (false). |
* @return void Modifie la base de données. |
*/ |
function moveUpper($db, $adminProject, $adminLocale, $upperid, $up) |
{ |
//---------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject); |
if ($PRJrow == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'Code alpha du site : '. $adminProject .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Récupération d'informations sur les relations du menu courant. |
$ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $upperid, '1'); // 1 = relation "avoir père" |
if ($ligne_menu_courant_relation == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos sur les relations du menu.<br />'. |
'Identifiant menu : '. $upperid .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$id_pere = $ligne_menu_courant_relation->gmr_id_menu_02; |
// Il serait mieux d'utiliser la fonction ci-dessous. |
// Mais cela ne semble pas fonctionner!!! |
/* |
$id_pere = GEN_lireIdentifiantMenuPere($upperid); |
if ($id_pere == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire identifiant du menu père.<br />'. |
'Identifiant menu fils : '. $upperid .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
*/ |
//---------------------------------------------------------------------------- |
// Recherche d'information hiérarchiques sur le menu précédent ou suivant le menu courant |
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun" |
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '. |
'AND GMR01.gmr_id_valeur = 1 ';// 1 = relation menu "père" |
if ($up) { |
$requete .= 'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
} else { |
$requete .= 'AND GMR01.gmr_ordre > '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre ASC'; |
} |
$MENUresult = $db->query($requete); |
(DB::isError($MENUresult)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $MENUresult->getMessage(), $requete)) : ''; |
$MENUrow = $MENUresult->fetchRow(DB_FETCHMODE_OBJECT); |
$MENUresult->free() ; |
//---------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $MENUrow) { |
return; |
} |
//---------------------------------------------------------------------------- |
// Mise à jour des relations hiérarchiques du menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.$MENUrow->nouvel_ordre.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Mise à jour des relations hiérarchiques du menu précédent ou suivant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'WHERE gmr_id_menu_01 = '.$MENUrow->id_menu_remplace.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
/** Fonction deleteUpper() - Détruit un menu commun. |
* |
* Détruit définitivement un menu commun de la base de données. |
* |
* @return void le menu commun est supprimé de la base de données. |
*/ |
function deleteUpper($objet_pear_db, $adminProject, $adminLocale, $id_menu_commun) |
{ |
//---------------------------------------------------------------------------- |
// Y a t'il des sous_menus |
$requete = 'SELECT COUNT(gm_id_menu) AS compte '. |
'FROM gen_menu, gen_menu_relation '. |
'WHERE gmr_id_menu_02 = '.$id_menu_commun.' '. |
'AND gmr_id_valeur = 1 '. |
'AND gmr_id_menu_01 = gm_id_menu '; |
$result = $objet_pear_db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
$row = $result->fetchRow(DB_FETCHMODE_OBJECT); |
if ($row && ($row->compte > 0)) { |
return "Il reste des menus attachés à ce menu commun !"; |
} |
//---------------------------------------------------------------------------- |
// S'il n'y a plus de sous niveau, on supprime le menu |
$requete = 'DELETE FROM gen_menu '. |
'WHERE gm_id_menu = '.$id_menu_commun; |
$result = $objet_pear_db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Puis on supprime les relations de ce menu |
$requete = 'DELETE FROM gen_menu_relation '. |
'WHERE gmr_id_menu_01 = '.$id_menu_commun; |
$result = $objet_pear_db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
/** Fonction showUpper () Affiche le formulaire pour un menu commun |
* |
* Utilise HTML_QuickForm pour générer le formulaire |
* |
* |
* @return string Le code HTML du formulaire |
*/ |
function showUpper( $db, |
$adminProject, $adminLocale, |
$baseURL, $baseURLjs, $baseHidden, |
$upperid, $menuopen, $docopen) |
{ |
//---------------------------------------------------------------------------- |
// Labels. |
$cancelLabel = 'Annuler'; |
$closeURL = $baseURL.'&upperid='.$upperid; |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur le site principal. |
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject); |
if ($PRJrow == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'Code alpha du site : '. $adminProject .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Récupération des informations du menu concerné. |
$ligne_menu = GEN_lireInfoMenu($db, $upperid, DB_FETCHMODE_ASSOC); |
if ($ligne_menu == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du menu.<br />'. |
'Idenitifiant du menu n° : '. $upperid .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//---------------------------------------------------------------------------- |
// Titre de la page |
$res = '<h1>'.'Modification menu commun'.'</h1>'."\n"; |
//---------------------------------------------------------------------------- |
// Création du formulaire |
$form =& new HTML_QuickForm('updform', 'post', $baseURLjs); |
$tab_index = 1000; |
$squelette =& $form->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n"."\n".'{content}'."\n"."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '<li>'."\n". |
'{label}'."\n". |
'{element}'."\n". |
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</li>'."\n"); |
$squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n"); |
$partie_menu_debut = '<fieldset>'."\n".'<legend>Configuration du menu commun</legend>'."\n".'<ul>'."\n"; |
$form->addElement('html', $partie_menu_debut); |
$id = 'gm_code_num'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 5, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Code numérique du menu'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, 'Un code numérique est requis pour le menu !', 'required', '', 'client'); |
$id = 'gm_code_alpha'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20); |
$label = '<label for="'.$id.'">'.'Code alphanumérique du menu'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, 'Un code alphanumérique est requis pour le menu !', 'required', '', 'client'); |
$id = 'gm_nom'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 50, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Nom du menu'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, 'Un nom est requis pour le menu !', 'required', '', 'client'); |
$form->applyFilter($id, 'trim'); |
$id = 'gm_raccourci_clavier'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1); |
$label = '<label for="'.$id.'">'.'Raccourci clavier'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_fichier_squelette'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 50, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Fichier squelette'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_description_resume'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 50); |
$label = '<label for="'.$id.'">'.'Contenu info-bulle'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$form->addRule($id, 'Une description courte pour l\'info-bulle est requise pour ce menu !', 'required', '', 'client'); |
// Requête sur les applications |
$requete = 'SELECT gap_id_application, gap_nom '. |
'FROM gen_application '. |
'WHERE gap_bool_applette = 0';// Pour éviter d'afficher les applettes. |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$aso_options = array(); |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$aso_options[$ligne->gap_id_application] = $ligne->gap_nom; |
} |
$resultat->free(); |
$id = 'gm_ce_application'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Application'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_application_arguments'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Arguments de l\'application'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$partie_menu_fin = '</ul>'."\n".'</fieldset>'."\n"; |
$form->addElement('html', $partie_menu_fin); |
$partie_entete_debut = '<fieldset>'."\n".'<legend>Entête des pages du menu commun</legend>'."\n".'<ul>'."\n"; |
$form->addElement('html', $partie_entete_debut); |
$id = 'gm_robot'; |
$aso_options = array( 'index,follow' => 'Indexer cette page et les suivantes', |
'index' => 'Indexer seulement cette page', |
'noindex' => 'Ne pas indexer cette page', |
'noindex,nofollow' => 'Ne pas indexer cette page et les suivantes', |
'' => 'Auncune'); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Indexation par robots'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_titre'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Titre de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_titre_alternatif'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Titre alternatif de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_mots_cles'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 50); |
$label = '<label for="'.$id.'">'.'Mots-clés'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_description_libre'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Description du contenu '.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_description_table_matieres'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Table des matières'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_source'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Source'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_auteur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Auteur'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_contributeur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Contributeur'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_editeur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 45); |
$label = '<label for="'.$id.'">'.'Editeur'.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_date_debut_validite'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.'Date de début de validité'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_date_fin_validite'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.'Date de fin de validité'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_date_copyright'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.'Année pour le copyright'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_licence'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'URL de la licence'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_categorie'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Catégorie'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_public'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.'Public pour la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_public_niveau'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 25, 'maxlength' => 45); |
$label = '<label for="'.$id.'">'.'Niveau du public pour la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_spatiale'; |
$aso_options = array( '' => 'Aucun', |
'iso3166' => 'Code de pays sur deux lettres (iso3166)', |
'Point' => 'Point géographique', |
'Box' => 'Représenation des régions géographiques du Dublin Core', |
'TGN' => 'Noms issus du Getty Thesaurus of Geographic Names'); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Type de portée spatiale'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_spatiale'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Portée spatiale de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_temporelle'; |
$aso_options = array( '' => 'Aucun', |
'W3CDTF' => 'Codage des dates et heures du W3C', |
'Period' => 'Représentation des intervalles de temps du Dublin Core'); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Type de portée temporelle'.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_temporelle'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.'Portée temporelle de la page'.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n"; |
$form->addElement('html', $partie_entete_fin); |
$liste_bouton_debut = '<ul class="liste_bouton">'."\n"; |
$form->addElement('html', $liste_bouton_debut); |
$form->addElement('submit', 'menu_commun_enregistrer', 'Enregistrer'); |
$bouton_annuler = '<li><a class="bouton" href="'.$closeURL.'" title="'.'Annuler'.'" >'.'Annuler'.'</a>'.'</li>'."\n"; |
$form->addElement('html', $bouton_annuler); |
$liste_bouton_fin = '</ul>'."\n"; |
$form->addElement('html', $liste_bouton_fin); |
$partie_cachee_debut = '<p>'."\n"; |
$form->addElement('html', $partie_cachee_debut); |
$form->addElement('html', $baseHidden); |
$form->addElement('hidden', 'upperid', $upperid); |
$form->addElement('hidden', 'menuopen', $menuopen); |
$form->addElement('hidden', 'docopen', $docopen); |
$form->addElement('hidden', 'doccmd', 'commitupduppertxt'); |
$form->setDefaults($ligne_menu); |
$partie_cachee_fin = '</p>'."\n"; |
$form->addElement('html', $partie_cachee_fin); |
// Javascript pour la validation côté client |
$regles_javascript = $form->getValidationScript(); |
// Suppression des balises déjà créées par GEN_stockerCodeScript() |
$regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript); |
$regles_javascript = ereg_replace ( '<!--', '', $regles_javascript); |
$regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript); |
$regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript); |
GEN_stockerCodeScript($regles_javascript); |
// Note de fin de formulaire |
$form->setRequiredNote('Indique les champs obligatoires'); |
$res .= $form->toHTML()."\n"; |
return $res; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/*Partie non obligatoire*/ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.10 2004/05/10 12:13:03 jpm |
* Modification des formulaires. |
* |
* Revision 1.9 2004/05/07 16:31:40 jpm |
* Amélioration du formulaire d'un menu commun. |
* |
* Revision 1.8 2004/05/07 09:56:52 jpm |
* Correction des noms de constantes d'images. |
* |
* Revision 1.7 2004/05/07 07:23:54 jpm |
* Amélioration du code, des commentaires et correction de bogues. |
* |
* Revision 1.6 2004/05/04 16:27:55 jpm |
* Amélioration gestion du déplacement des menus. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |