/trunk/papyrus/applications/installateur/instal_base_de_donnees.inc.php |
---|
34,9 → 34,9 |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: instal_base_de_donnees.inc.php,v 1.35 2007-08-28 14:37:11 jp_milcent Exp $ |
/** |
* Page de création de la base de données de Papyrus. |
* Page de cr�ation de la base de donn�es de Papyrus. |
* |
* Page permettant de créer la base de données de Papyrus. |
* Page permettant de cr�er la base de donn�es de Papyrus. |
* |
*@package Installateur |
//Auteur original : |
52,7 → 52,7 |
**/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// | ENT�TE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// Numéro de l'étape d'installation : |
$num_etape = 2; |
83,11 → 83,11 |
// Affichage d'informations... |
$sortie .= '<br /><h1>Etape n°'.$num_etape.' sur '.INSTAL_NBRE_ETAPE.'.</h1>'."\n"; |
// Nous vérifions si nous sommes en phase de test du formulaire de config de la base de données |
// Nous vérifions si nous sommes en phase de test du formulaire de config de la base de donn�es |
$erreur = 0; |
$sortie_verif = ''; |
if ($_GET['installation'] == 'verif_bdd') { |
// Test de la configuration à la base de données |
// Test de la configuration à la base de donn�es |
$sortie_test .= ' <br /><h2>Test de la configuration de la base de données</h2>'."\n"; |
$dblink = @mysql_connect($bdd['PAP_BDD_SERVEUR'], $bdd['PAP_BDD_UTILISATEUR'], $bdd['PAP_BDD_MOT_DE_PASSE']); |
$erreur = testerConfig($sortie_test, 'Test connexion au serveur MySQL, recherche base de données ...', @mysql_select_db($bdd['PAP_BDD_NOM'], $dblink), |
291,7 → 291,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: instal_base_de_donnees.inc.php,v $ |
* Revision 1.35 2007-08-28 14:37:11 jp_milcent |
* Ajout des urls par défaut pour l'inscription et inscription_erreur. |
* |
* Revision 1.34 2007-06-26 12:08:18 jp_milcent |
* Correction de l'encodage et de la création du htaccess. |
* |
368,13 → 371,13 |
* Corrections bogues erreurs noms de variables. |
* |
* Revision 1.9 2004/10/27 11:43:32 jpm |
* Correction bogues diff mise à jour / installation. |
* Correction bogues diff mise � jour / installation. |
* |
* Revision 1.8 2004/10/26 18:41:12 jpm |
* Correction bogue pour la mise à jour. |
* Correction bogue pour la mise � jour. |
* |
* Revision 1.7 2004/10/25 16:26:35 jpm |
* Début gestion des mises à jours. |
* D�but gestion des mises � jours. |
* |
* Revision 1.6 2004/10/25 10:22:48 jpm |
* Correction de quelques bogues, ajouts d'explications pour l'utilisateur et modification des styles CSS. |
389,11 → 392,11 |
* Transformation en fonction de l'appel de l'application. |
* |
* Revision 1.2 2004/10/19 15:59:18 jpm |
* Ajout de la gestion des valeurs propre à Papyrus à insérer dans la base de données. |
* Ajout de la gestion des valeurs propre � Papyrus � ins�rer dans la base de donn�es. |
* Ajout des constantes FTP. |
* |
* Revision 1.1 2004/10/15 18:28:59 jpm |
* Début appli installateur de Papyrus. |
* D�but appli installateur de Papyrus. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
/trunk/papyrus/applications/installateur/instal_preference.inc.php |
---|
232,7 → 232,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: instal_preference.inc.php,v $ |
* Revision 1.12 2006-10-06 15:23:00 florian |
* amelioration graphique de l'installateur |
* |
* Revision 1.11 2006/10/05 15:14:18 alexandre_tb |
* Mise en place du chemin par défaut |
* |
/trunk/papyrus/applications/installateur/bibliotheque/instal_installation.fonct.php |
---|
331,7 → 331,10 |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: instal_installation.fonct.php,v $ |
* Revision 1.7 2007-01-04 17:06:03 alexandre_tb |
* modif mineure |
* |
* Revision 1.6 2006/04/28 12:41:49 florian |
* corrections erreurs chemin |
* |
/trunk/papyrus/applications/installateur/installateur.php |
---|
1,5 → 1,5 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
19,48 → 19,59 |
// | 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: installateur.php,v 1.17 2008-11-19 09:25:36 aperonnet Exp $ |
// CVS : $Id: installateur.php,v 1.16 2007-04-20 13:31:42 florian Exp $ |
/** |
* Application Installateur de Papyrus. |
* |
* Application permettant de gérer l'installation et les erreurs liés à l'abscence de base de données, |
* Application permettant de g�rer l'installation et les erreurs li�s � l'abscence de base de donn�es, |
* d'extenssin PHP... |
* |
*@package Installateur |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@author |
'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
if ($langue_test!=GEN_I18N_ID_DEFAUT) { |
return GEN_rechercheMenuIdentifiantVersionParDefaut($db,$ligne->gm_id_menu); |
} |
} Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.17 $ $Date: 2008-11-19 09:25:36 $ |
*@version $Revision: 1.16 $ $Date: 2007-04-20 13:31:42 $ |
// +------------------------------------------------------------------------------------------------------+ |
**/ |
// protection contre un accès direct ou à travers un site qui n'existe pas |
if(GEN_VERSION == PAP_VERSION) { |
header('location:papyrus.php'); |
exit; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// | ENT�TE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// Constante de l'application Installateur. On devrait créer un fichier de config et un de langue pour rendre l'appli portable... |
// Constante de l'application Installateur. On devrait cr�er un fichier de config et un de langue pour rendre l'appli portable... |
preg_match('/^(.*)papyrus.php/', $_SERVER['SCRIPT_FILENAME'], $instal_tab_txt); |
define('INSTAL_CHEMIN_ABSOLU', $instal_tab_txt[1]); |
/** Nom du dossier contenant l'application Installateur.*/ |
define('INSTAL_DOSSIER_APPLI', INSTAL_CHEMIN_ABSOLU.GEN_CHEMIN_APPLICATION.'installateur'.GEN_SEP); |
/** Nom du dossier contenant la bibliothèque de code de l'application Installateur.*/ |
/** Nom du dossier contenant la biblioth�que de code de l'application Installateur.*/ |
define('INSTAL_DOSSIER_BIBLIO', INSTAL_DOSSIER_APPLI.'bibliotheque'.GEN_SEP); |
/** Chemin vers le fichier de configuration de base de l'application Papyrus.*/ |
define('INSTAL_CHEMIN_CONFIG', GEN_CHEMIN_CONFIG.GEN_FICHIER_CONFIG); |
/** Nom du fichier de configuration de Papyrus à créer.*/ |
/** Nom du fichier de configuration de Papyrus � cr�er.*/ |
define('INSTAL_FICHIER_CONFIG', GEN_FICHIER_CONFIG); |
/** Chemin vers le fichier de configuration de base de l'application Papyrus.*/ |
define('INSTAL_CHEMIN_SQL', INSTAL_CHEMIN_ABSOLU.GEN_CHEMIN_INSTAL); |
/** Nom de la constante stockant le numéro de la nouvelle version de l'application Papyrus.*/ |
/** Nom de la constante stockant le num�ro de la nouvelle version de l'application Papyrus.*/ |
define('INSTAL_VERSION_NOUVELLE_NOM', 'PAP_VERSION'); |
/** Numéro de la nouvelle version de l'application Papyrus.*/ |
/** Num�ro de la nouvelle version de l'application Papyrus.*/ |
define('INSTAL_VERSION_NOUVELLE', GEN_VERSION); |
if (defined('PAP_VERSION')) { |
define('INSTAL_VERSION_ANCIENNE', PAP_VERSION); |
67,18 → 78,18 |
} else { |
define('INSTAL_VERSION_ANCIENNE', ''); |
} |
/** Nombre d'étapes totale de l'installation.*/ |
/** Nombre d'�tapes totale de l'installation.*/ |
define('INSTAL_NBRE_ETAPE', 3); |
// Fichiers à inclure |
// Fichiers � inclure |
require_once INSTAL_DOSSIER_BIBLIO.'instal_installation.fonct.php'; |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
function afficherContenuCorps() |
function afficherContenuCorps() |
{ |
// Entête XHTML des pages de l'installation de Papyrus |
// Ent�tre XHTML des pages de l'installation de Papyrus |
$sortie = ''; |
$sortie .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'."\n"; |
$sortie .= '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n"; |
89,8 → 100,8 |
$sortie .= ' </head>'."\n"; |
$sortie .= ' <body xml:lang="fr" lang="fr" >'."\n"; |
$sortie .= ' <div id="page">'."\n"; |
$sortie .= ' <div id="zone_bandeau">'."\n"; |
$sortie .= ' <div id="logo">'."\n"; |
$sortie .= ' <div id="zone_bandeau">'."\n"; |
$sortie .= ' <div id="logo">'."\n"; |
$sortie .= ' <img src="papyrus/applications/installateur/presentations/images/Logo_papyrus.jpg" alt="Logo Papyrus" />'."\n"; |
$sortie .= ' </div>'."\n"; |
$sortie .= ' <div id="site_nom">'."\n"; |
109,7 → 120,7 |
$sortie .= '<p class="zone_info">Vous êtes sur le point d\'installer Papyrus '.INSTAL_VERSION_NOUVELLE.'.<br />'. |
'Veuillez configurer votre Papyrus en remplissant les formulaires étape par étape.</p><br style="clear:both;">'."\n"; |
} |
if(!isset($_GET['installation']) || ($_GET['installation'] == 'form_pref' || $_GET['installation'] == 'verif_pref')) { |
include_once GEN_CHEMIN_APPLICATION.'installateur/instal_preference.inc.php'; |
} else if($_GET['installation'] == 'form_bdd' || $_GET['installation'] == 'verif_bdd') { |
117,7 → 128,7 |
} else if($_GET['installation'] == 'form_fichier' || $_GET['installation'] == 'verif_fichier') { |
include_once GEN_CHEMIN_APPLICATION.'installateur/instal_fichier.inc.php'; |
} |
// Pied XHTML des pages de l'installation de Papyrus |
$sortie .= ' </div>'."\n"; |
$sortie .= ' <div id="zone_pied">'."\n"; |
132,7 → 143,7 |
$sortie .= ' </div>'."\n"; |
$sortie .= ' </body>'."\n"; |
$sortie .= '</html>'; |
return $sortie; |
} |
143,30 → 154,30 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.16 2007-04-20 13:31:42 florian |
* remplacement des caracteres speciaux par des entite html |
* |
* Revision 1.15 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.14 2006/10/09 14:35:50 ddelon |
* bug caractere invalide trainant dans fichier |
* |
* Revision 1.13 2006/10/05 15:17:29 florian |
* changement presentation |
* |
* Revision 1.12 2006/10/05 15:11:17 florian |
* changement presentation |
* |
* Revision 1.11 2006/10/05 14:41:53 florian |
* changement presentation |
* |
* Revision 1.10 2005/09/23 14:20:23 florian |
* nouvel habillage installateur, plus correction de quelques bugs |
* $Log: installateur.php,v $ |
* Revision 1.16 2007-04-20 13:31:42 florian |
* remplacement des caracteres speciaux par des entite html |
* |
* Revision 1.15 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.14 2006/10/09 14:35:50 ddelon |
* bug caractere invalide trainant dans fichier |
* |
* Revision 1.13 2006/10/05 15:17:29 florian |
* changement presentation |
* |
* Revision 1.12 2006/10/05 15:11:17 florian |
* changement presentation |
* |
* Revision 1.11 2006/10/05 14:41:53 florian |
* changement presentation |
* |
* Revision 1.10 2005/09/23 14:20:23 florian |
* nouvel habillage installateur, plus correction de quelques bugs |
* |
* Revision 1.9 2004/10/27 11:43:32 jpm |
* Correction bogues diff mise à jour / installation. |
* Correction bogues diff mise � jour / installation. |
* |
* Revision 1.8 2004/10/25 10:22:48 jpm |
* Correction de quelques bogues, ajouts d'explications pour l'utilisateur et modification des styles CSS. |
181,7 → 192,7 |
* Transformation en fonction de l'appel de l'application. |
* |
* Revision 1.4 2004/10/19 15:59:18 jpm |
* Ajout de la gestion des valeurs propre à Papyrus à insérer dans la base de données. |
* Ajout de la gestion des valeurs propre � Papyrus � ins�rer dans la base de donn�es. |
* Ajout des constantes FTP. |
* |
* Revision 1.3 2004/10/18 09:12:09 jpm |
188,10 → 199,10 |
* Changement de nom d'un fichier. |
* |
* Revision 1.2 2004/10/15 18:28:59 jpm |
* Début appli installateur de Papyrus. |
* D�but appli installateur de Papyrus. |
* |
* Revision 1.1 2004/06/16 14:33:13 jpm |
* Changement de nom de Papyrus en Papyrus. |
* Changement de nom de G�n�sia en Papyrus. |
* Changement de l'arborescence. |
* |
* Revision 1.6 2004/04/22 08:25:48 jpm |
201,16 → 212,16 |
* Le code pour l'installation uniquement. |
* |
* Revision 1.4 2004/04/08 12:25:16 jpm |
* Suppression de tous le code réalisant les vérifications. L'application Installateur ne fera qu'installer Papyrus et non vérifier son bon fonctionnement. |
* Suppression de tous le code r�alisant les v�rifications. L'application Installateur ne fera qu'installer G�n�sia et non v�rifier son bon fonctionnement. |
* |
* Revision 1.3 2004/04/02 16:37:51 jpm |
* Modification des commentaires. |
* |
* Revision 1.2 2004/03/31 16:57:16 jpm |
* Ajout de la gestion des erreur de base de données, de la connexion à celle-ci et des extenssions php disponibles. |
* Ajout de la gestion des erreur de base de donn�es, de la connexion � celle-ci et des extenssions php disponibles. |
* |
* Revision 1.1 2004/03/29 11:00:12 jpm |
* Transfert d'un morceau de code gérant les erreurs et l'installation mais qui a actuellement aucun effet sur Papyrus. |
* Transfert d'un morceau de code g�rant les erreurs et l'installation mais qui a actuellement aucun effet sur G�n�sia. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
/trunk/papyrus/applications/installateur/presentations/styles/installateur.css |
---|
32,7 → 32,7 |
form li {list-style-type:none;color:#000;} |
form table, form td, form th {border:0} |
form td:hover {background: transparent;} |
label { display:block; font-weight:bold; margin-top:10px; padding-left:3px} |
label {padding-right:10px;} |
input {margin:2px;background:#EEEEE9;} |
/*****************Listes********************************************************/ |
ul {padding:0;margin: 0 0 0 10px;} |
/trunk/papyrus/applications/installateur/presentations/images/logo-xhtml11.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/trunk/papyrus/applications/installateur/presentations/images/picto.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/trunk/papyrus/applications/installateur/presentations/images/Bandeau_haut.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/trunk/papyrus/applications/installateur/presentations/images/logo-firefox.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/trunk/papyrus/applications/installateur/presentations/images/logo-css.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/trunk/papyrus/applications/installateur/presentations/images/Main_Erreur.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/trunk/papyrus/applications/installateur/instal_fichier.inc.php |
---|
51,7 → 51,7 |
**/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// | ENT�TE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// Numéro de l'étape d'installation : |
$num_etape = 3; |
358,7 → 358,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: instal_fichier.inc.php,v $ |
* Revision 1.36 2007-08-28 14:37:11 jp_milcent |
* Ajout des urls par défaut pour l'inscription et inscription_erreur. |
* |
* Revision 1.35 2007-06-26 12:08:18 jp_milcent |
* Correction de l'encodage et de la création du htaccess. |
* |
/trunk/papyrus/applications/admin_auth/bibliotheque/adau_auth.fonct.php |
---|
88,12 → 88,12 |
// Requete sur gen_site_auth_bdd |
$requete = 'SELECT * FROM gen_site_auth_bdd WHERE gsab_id_auth_bdd = '.$ligne->gsa_ce_auth_bdd; |
unset($ligne); |
$resultat = $db->query($requete . ' -- ' . __FILE__ . ':' . __LINE__); |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING); |
return ; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$tableau_retour['dsn'] = $ligne->gsab_dsn; |
$tableau_retour['nom_table'] = $ligne->gsab_nom_table; |
117,7 → 117,7 |
.SQL_obtenirNouveauId($db, 'gen_site_auth', 'gsa_id_auth').', ' |
.requete_site_auth($valeur) |
.', gsa_ce_auth_bdd = '.$id_auth_bdd; |
$resultat = $db->query($requete . ' -- ' . __FILE__ . ':' . __LINE__); |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING); |
return ; |
194,7 → 194,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adau_auth.fonct.php,v $ |
* Revision 1.2 2005-04-14 13:54:51 jpm |
* Amélioration de l'interface et mise en conformité. |
* |
* Revision 1.1 2005/03/09 10:49:52 jpm |
* Changement d'un nom de fichier. |
* |
/trunk/papyrus/applications/admin_auth/langues/adau_langue_fr.inc.php |
---|
70,7 → 70,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adau_langue_fr.inc.php,v $ |
* Revision 1.4 2006-10-06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.3 2005/04/14 13:54:51 jpm |
* Amélioration de l'interface et mise en conformité. |
* |
/trunk/papyrus/applications/admin_auth/admin_auth.php |
---|
99,10 → 99,10 |
<fieldset> |
<legend>Identifiez vous</legend> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="10" value="courriel" /> |
<input type="text" id="username" name="username" maxlength="80" tabindex="1" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="20" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="30" value="ok" /> |
<input type="password" id="password" name="password" maxlength="80" tabindex="2" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="3" value="ok" /> |
</fieldset> |
</form>'; |
return $res ; |
147,7 → 147,7 |
'WHERE gsa_id_auth <> 0 '. |
'AND gsa_ce_auth_bdd = gsab_id_auth_bdd'; |
$resultat = $db->query($requete . ' -- ' . __FILE__ . ':' . __LINE__); |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING); |
return ; |
178,7 → 178,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: admin_auth.php,v $ |
* Revision 1.6 2006-10-06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.5 2006/09/21 15:22:04 jp_milcent |
* Nettoyage dans l'url de la querystring id_auth. |
* |
/trunk/papyrus/applications/admin_auth/configuration/adau_configuration.inc.php |
---|
74,7 → 74,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adau_configuration.inc.php,v $ |
* Revision 1.1 2004-12-06 11:31:42 alex |
* version initiale |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
/trunk/papyrus/applications/plan/langues/plan_langue_en.inc.php |
---|
46,7 → 46,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: plan_langue_en.inc.php,v $ |
* Revision 1.2 2006-03-02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.1.2.1 2006/02/28 14:02:10 ddelon |
* Finition multilinguisme |
* |
/trunk/papyrus/applications/plan/langues/plan_langue_fr.inc.php |
---|
46,7 → 46,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: plan_langue_fr.inc.php,v $ |
* Revision 1.2 2006-03-02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.1.2.1 2006/02/28 14:02:10 ddelon |
* Finition multilinguisme |
* |
/trunk/papyrus/applications/plan/plan.php |
---|
166,7 → 166,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: plan.php,v $ |
* Revision 1.7 2006-10-11 18:05:15 jp_milcent |
* Ajout d'url sur les titres des sites |
* |
* Revision 1.6 2006/10/06 10:03:14 florian |
* amelioration: affichage du plan des menus d'administration, dans le monde administration |
* |
/trunk/papyrus/applications/plan/configuration/plan_config.inc.php |
---|
60,7 → 60,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: plan_config.inc.php,v $ |
* Revision 1.2 2006-03-02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.1.2.1 2006/02/28 14:02:09 ddelon |
* Finition multilinguisme |
* |
/trunk/papyrus/applications/admin_application/configuration/adap_configuration.inc.php |
---|
73,7 → 73,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adap_configuration.inc.php,v $ |
* Revision 1.1 2004-12-13 18:07:33 alex |
* version initiale |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
/trunk/papyrus/applications/admin_application/bibliotheque/adap_application.fonct.php |
---|
131,7 → 131,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adap_application.fonct.php,v $ |
* Revision 1.4 2006-12-01 10:39:14 alexandre_tb |
* Suppression des références aux applettes |
* |
* Revision 1.3 2006/09/07 13:28:39 jp_milcent |
* Mise en majuscule des termes SQL et trie des application par ordre alphabétique. |
* |
/trunk/papyrus/applications/admin_application/langues/adap_langue_fr.inc.php |
---|
58,7 → 58,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adap_langue_fr.inc.php,v $ |
* Revision 1.4 2006-12-01 10:39:14 alexandre_tb |
* Suppression des références aux applettes |
* |
* Revision 1.3 2006/10/06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
/trunk/papyrus/applications/admin_application/admin_application.php |
---|
102,10 → 102,10 |
<fieldset> |
<legend>Identifiez vous</legend> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="10" value="courriel" /> |
<input type="text" id="username" name="username" maxlength="80" tabindex="1" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="20" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="30" value="ok" /> |
<input type="password" id="password" name="password" maxlength="80" tabindex="2" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="3" value="ok" /> |
</fieldset> |
</form>'; |
return $res ; |
179,7 → 179,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: admin_application.php,v $ |
* Revision 1.9 2007-08-28 14:02:06 jp_milcent |
* Correction bogue des liens lors de la redirection. |
* |
* Revision 1.8 2007-03-20 14:17:36 alexandre_tb |
* remplacement des varaibles $GLOBALS par $_REQUEST, pour que l appli fonctionne avec les register_globals à Off |
* |
/trunk/papyrus/applications/admin_menu/bibliotheque/adme_menu_commun.fonct.php |
---|
1547,12 → 1547,15 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adme_menu_commun.fonct.php,v $ |
* Revision 1.28 2007-10-24 14:43:02 ddelon |
* Gestion des menus reservés à une langue |
* |
* Revision 1.27 2006-10-16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.26 2006/10/06 13:38:45 florian |
* ergonomie amélioree |
* ergonomie amélioree |
* |
* Revision 1.25 2006/09/20 12:09:16 ddelon |
* bug suppression contenu du menu commun |
/trunk/papyrus/applications/admin_menu/bibliotheque/adme_general.fonct.php |
---|
1,398 → 1,419 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: adme_general.fonct.php,v 1.20 2007-10-24 14:43:02 ddelon Exp $ |
/** |
* Contient l'affichage par défaut de l'appli quand aucune actin |
* |
* Ce fichier contient les fonctions d'affichage commune à toute l'application Admin Menu. |
* Nous y trouvons, entre autre, la fonction d'affichage par défaut de l'appli. |
* |
*@package Admin_menu |
*@subpackage Fonctions |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.20 $ $Date: 2007-10-24 14:43:02 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction ADME_afficherFormPrincipal() - Affichage par défaut. |
* |
* Fournit l'affichage par défaut de l'application Admin Menus. |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @return string le XHTML par défaut de la page. |
*/ |
function ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action) |
{ |
$db=$objet_pear_db; |
$id_langue = $GLOBALS['_GEN_commun']['i18n']; //identifiant de la langue choisie |
// Langue en cours : langue choisie ou langue par defaut (principale) |
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
//$langue_test=GEN_I18N_ID_DEFAUT; |
//requete pour recuperer l'id du menu par defaut |
$requete = 'SELECT gs_id_site '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_site_01 = gs_id_site '. |
'AND gsr_id_valeur=101 '. |
'AND gs_ce_i18n = "'.$langue_test.'" '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$id_site_par_defaut=$ligne->gs_id_site; |
} |
// Liste des sites principaux : |
// Recherche de tous les sites langue en cours |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_site_01 = gs_id_site '. |
'AND gsr_id_valeur IN (102, 103) '. |
'AND gs_ce_i18n = "'.$langue_test.'" '. |
'ORDER BY gsr_ordre'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
$liste_site=array(); |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
if ($langue_test == GEN_I18N_ID_DEFAUT) { |
$requete_est_traduction = 'SELECT gsr_id_site_01 '. |
'FROM gen_site_relation '. |
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' . |
'AND gsr_id_site_01 <> gsr_id_site_02 ' . |
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction" |
$resultat_est_traduction = $db->query($requete_est_traduction); |
(DB::isError($resultat_est_traduction)) |
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)) |
: ''; |
if ( $resultat_est_traduction->numRows() == 0 ) { |
$liste_site[]=$ligne; |
} |
} |
else { |
$liste_site[]=$ligne; |
} |
} |
$resultat->free(); |
// Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue |
// la langue par defaut, non traduits dans la langue en cours et n'etant pas des traductions |
if ($langue_test != GEN_I18N_ID_DEFAUT) { |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gs_id_site = gsr_id_site_01 '. |
'AND gsr_id_valeur IN (102, 103) '. |
'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '. |
'ORDER BY gs_code_num ASC';// 102 = site "principal" et 103 = site "externe" |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Recherche de tous les sites de la langue principale qui ne sont pas traduits dans la langue en cours |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$requete_est_traduction = 'SELECT gsr_id_site_01 '. |
'FROM gen_site_relation '. |
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' . |
'AND gsr_id_site_01 <> gsr_id_site_02 ' . |
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction" |
$resultat_est_traduction = $db->query($requete_est_traduction); |
(DB::isError($resultat_est_traduction)) |
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)) |
: ''; |
if ( $resultat_est_traduction->numRows() == 0 ) { |
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
$requete_traduction = 'SELECT gsr_id_site_01 '. |
'FROM gen_site_relation, gen_site '. |
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' . |
'AND gsr_id_site_02 = gs_id_site '. |
'AND gs_ce_i18n = "'.$langue_test.'" '. |
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction" |
$resultat_traduction = $db->query($requete_traduction); |
(DB::isError($resultat_traduction)) |
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)) |
: ''; |
if ( $resultat_traduction->numRows() == 0 ) { |
$liste_site []=$ligne; |
} |
$resultat_traduction->free(); |
} |
$resultat_est_traduction->free(); |
} |
$resultat->free(); |
} |
// Traduction d'un site principal uniquement : |
$requete = 'SELECT * '. |
'FROM gen_site_relation '. |
'WHERE gsr_id_site_02 = '.$adme_site_id.' '. |
'AND gsr_id_valeur =1 '; // 1 = "avoir traduction" |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
if ( $resultat->numRows() == 0 ) { |
$adme_site_id =$adme_site_id; |
} |
else { |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$adme_site_id = $ligne->gsr_id_site_01; |
} |
$resultat->free(); |
//--------------------------------------------------------------------------------------------------------------- |
// Création du formulaire |
// Notes : Quickform semble remplacer les & des & à nouveau par des & solution utiliser str_replace()... |
$form =& new HTML_QuickForm('adme_form_sites', 'post', str_replace('&', '&', $objet_pear_url->getUrl())); |
$tab_index = 1000; |
$squelette =& $form->defaultRenderer(); |
$squelette->setformTemplate("\n".'<form {attributes}>'."\n".'{content}'."\n"."\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>'.ADME_LG_FORM_SITE_TITRE.'</legend>'."\n"; |
$form->addElement('html', $partie_site_debut); |
$id = 'adme_site_id'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onchange' => 'javascript:this.form.submit();'); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_SITE_CHOIX.'</label>'; |
$objet_select = new HTML_QuickForm_select($id, $label, '', $aso_attributs); |
$aso_options = array(); |
//print $adme_site_id; |
foreach ($liste_site as $ligne ) { |
if (!isset($adme_site_id) || $adme_site_id == 0) { |
$adme_site_id = $ligne->gs_id_site; |
} |
// print $ligne->gs_id_site; |
if ($ligne->gs_id_site == $adme_site_id) { |
$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site, 'selected="selected"'); |
// Attribution du nom du site sur lequel on travaille pour le titre |
$site_nom = $ligne->gs_nom; |
} else { |
$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site); |
} |
} |
$form->addElement($objet_select); |
$form->addElement('submit', 'choisir_site', ADME_LG_FORM_SITE_VALIDER); |
$partie_site_fin = "\n".'</fieldset>'; |
$form->addElement('html', $partie_site_fin); |
// Instanciation des valeurs par défaut du formulaire |
if (isset($id_site_par_defaut)) { |
if (!isset($_GET['adme_site_id'])) { |
$adme_site_id=$id_site_par_defaut; |
} else { |
$adme_site_id=$_GET['adme_site_id']; |
} |
} |
$form->setDefaults(array('adme_site_id' => $adme_site_id)); |
$retour =''; |
$retour .= '<h1>'.ADME_LG_MENU_TITRE.$site_nom.'</h1>'."\n"; |
$retour .= $form->toHTML()."\n"; |
//--------------------------------------------------------------------------------------------------------------- |
// Gestion des menus classiques |
$retour .= '<p>'."\n"; |
$objet_pear_url_copie = $objet_pear_url; |
$objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_AJOUTER); |
$objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id); |
$objet_pear_url_copie->addQueryString('adme_menu_id', 0); |
$url_ajout_menu_classique_n1 = $objet_pear_url_copie->getURL(); |
//unset($url_ajout_menu_n1); |
$retour .= '<a href="'.$url_ajout_menu_classique_n1.'" >'. |
ADME_LG_MENU_CLASSIQUE_RACINE.' '. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'. |
'</a>'."\n"; |
$retour .= '</p>'."\n"; |
$retour .= ADME_afficherListeMenuClassique($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0); |
//--------------------------------------------------------------------------------------------------------------- |
// Gestion des menus communs |
$retour .= '<p>'."\n"; |
$objet_pear_url_copie = $objet_pear_url; |
$objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_AJOUTER); |
$objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id); |
$objet_pear_url_copie->addQueryString('adme_menu_id', 0); |
$url_ajout_menu_commun_n1 = $objet_pear_url_copie->getURL(); |
//unset($url_ajout_menu_n1); |
$retour .= '<a href="'.$url_ajout_menu_commun_n1.'">'. |
ADME_LG_MENU_COMMUN_RACINE.' '. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'. |
'</a>'."\n"; |
$retour .= '</p>'."\n"; |
$retour .= ADME_afficherListeMenuCommun($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0); |
return $retour; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.19 2007-04-19 15:34:35 neiluj |
* préparration release (livraison) "Narmer" - v0.25 |
* |
* Revision 1.18 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.17 2006/10/06 13:38:45 florian |
* ergonomie amélioree |
* |
* Revision 1.16 2006/04/28 12:41:49 florian |
* corrections erreurs chemin |
* |
* Revision 1.15 2006/03/24 13:03:24 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.14 2006/03/23 20:24:59 ddelon |
* *** empty log message *** |
* |
* Revision 1.13 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.12 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.11.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.11 2005/07/18 16:14:32 ddelon |
* css admin + menu communs |
* |
* Revision 1.10 2005/07/08 21:57:24 ddelon |
* Copyright |
* |
* Revision 1.9 2005/05/12 16:51:37 alex |
* Changement de l'odre d'apparition des sites dans l'administration des menus. |
* |
* Revision 1.8 2005/01/26 16:18:05 jpm |
* Correction bogue 221 : mauvais réglage du titre. |
* |
* Revision 1.7 2004/11/24 11:31:51 jpm |
* Ajout d'une contante de langue à la place d'un texte. |
* |
* Revision 1.6 2004/11/10 17:26:07 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.5 2004/11/10 11:58:54 jpm |
* Mise en place des constantes de traduction de l'appli. |
* |
* Revision 1.4 2004/11/09 17:48:35 jpm |
* Gestion de différentes interfaces d'administration. |
* |
* Revision 1.3 2004/11/09 12:37:34 jpm |
* Fin de gestion des menus et mise en conformité avec la convention de codage. |
* |
* Revision 1.2 2004/11/08 17:41:07 jpm |
* Légères corrections : multisite, corrections SQL. |
* |
* Revision 1.1 2004/11/04 12:26:42 jpm |
* Contient les fonctions d'affichage général de l'appli ADME. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: adme_general.fonct.php,v 1.20 2007-10-24 14:43:02 ddelon Exp $ |
/** |
* Contient l'affichage par défaut de l'appli quand aucune actin |
* |
* Ce fichier contient les fonctions d'affichage commune à toute l'application Admin Menu. |
* Nous y trouvons, entre autre, la fonction d'affichage par défaut de l'appli. |
* |
*@package Admin_menu |
*@subpackage Fonctions |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.20 $ $Date: 2007-10-24 14:43:02 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction ADME_afficherFormPrincipal() - Affichage par défaut. |
* |
* Fournit l'affichage par défaut de l'application Admin Menus. |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @return string le XHTML par défaut de la page. |
*/ |
function ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action) |
{ |
$db=$objet_pear_db; |
$id_langue = $GLOBALS['_GEN_commun']['i18n']; //identifiant de la langue choisie |
// Langue en cours : langue choisie ou langue par defaut (principale) |
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
//$langue_test=GEN_I18N_ID_DEFAUT; |
//requete pour recuperer l'id du menu par defaut |
$requete = 'SELECT gs_id_site '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_site_01 = gs_id_site '. |
'AND gsr_id_valeur=101 '. |
'AND gs_ce_i18n = "'.$langue_test.'" '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$id_site_par_defaut=$ligne->gs_id_site; |
} |
// Liste des sites principaux : |
// Recherche de tous les sites langue en cours |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_site_01 = gs_id_site '. |
'AND gsr_id_valeur IN (102, 103) '. |
'AND gs_ce_i18n = "'.$langue_test.'" '. |
'ORDER BY gsr_ordre'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
$liste_site=array(); |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
if ($langue_test == GEN_I18N_ID_DEFAUT) { |
$requete_est_traduction = 'SELECT gsr_id_site_01 '. |
'FROM gen_site_relation '. |
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' . |
'AND gsr_id_site_01 <> gsr_id_site_02 ' . |
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction" |
$resultat_est_traduction = $db->query($requete_est_traduction); |
(DB::isError($resultat_est_traduction)) |
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)) |
: ''; |
if ( $resultat_est_traduction->numRows() == 0 ) { |
$liste_site[]=$ligne; |
} |
} |
else { |
$liste_site[]=$ligne; |
} |
} |
$resultat->free(); |
// Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue |
// la langue par defaut, non traduits dans la langue en cours et n'etant pas des traductions |
if ($langue_test != GEN_I18N_ID_DEFAUT) { |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gs_id_site = gsr_id_site_01 '. |
'AND gsr_id_valeur IN (102, 103) '. |
'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '. |
'ORDER BY gs_code_num ASC';// 102 = site "principal" et 103 = site "externe" |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Recherche de tous les sites de la langue principale qui ne sont pas traduits dans la langue en cours |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$requete_est_traduction = 'SELECT gsr_id_site_01 '. |
'FROM gen_site_relation '. |
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' . |
'AND gsr_id_site_01 <> gsr_id_site_02 ' . |
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction" |
$resultat_est_traduction = $db->query($requete_est_traduction); |
(DB::isError($resultat_est_traduction)) |
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)) |
: ''; |
if ( $resultat_est_traduction->numRows() == 0 ) { |
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
$requete_traduction = 'SELECT gsr_id_site_01 '. |
'FROM gen_site_relation, gen_site '. |
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' . |
'AND gsr_id_site_02 = gs_id_site '. |
'AND gs_ce_i18n = "'.$langue_test.'" '. |
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction" |
$resultat_traduction = $db->query($requete_traduction); |
(DB::isError($resultat_traduction)) |
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)) |
: ''; |
if ( $resultat_traduction->numRows() == 0 ) { |
$liste_site []=$ligne; |
} |
$resultat_traduction->free(); |
} |
$resultat_est_traduction->free(); |
} |
$resultat->free(); |
} |
// Traduction d'un site principal uniquement : |
$requete = 'SELECT * '. |
'FROM gen_site_relation '. |
'WHERE gsr_id_site_02 = '.$adme_site_id.' '. |
'AND gsr_id_valeur =1 '; // 1 = "avoir traduction" |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
if ( $resultat->numRows() == 0 ) { |
$adme_site_id =$adme_site_id; |
} |
else { |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$adme_site_id = $ligne->gsr_id_site_01; |
} |
$resultat->free(); |
//--------------------------------------------------------------------------------------------------------------- |
// Création du formulaire |
// Notes : Quickform semble remplacer les & des & à nouveau par des & solution utiliser str_replace()... |
$form =& new HTML_QuickForm('adme_form_sites', 'post', str_replace('&', '&', $objet_pear_url->getUrl())); |
$tab_index = 1000; |
$squelette =& $form->defaultRenderer(); |
$squelette->setformTemplate("\n".'<form {attributes}>'."\n".'{content}'."\n"."\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>'.ADME_LG_FORM_SITE_TITRE.'</legend>'."\n"; |
$form->addElement('html', $partie_site_debut); |
$id = 'adme_site_id'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onchange' => 'javascript:this.form.submit();'); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_SITE_CHOIX.'</label>'; |
$objet_select = new HTML_QuickForm_select($id, $label, '', $aso_attributs); |
$aso_options = array(); |
//print $adme_site_id; |
foreach ($liste_site as $ligne ) { |
if (!isset($adme_site_id) || $adme_site_id == 0) { |
$adme_site_id = $ligne->gs_id_site; |
} |
// print $ligne->gs_id_site; |
if ($ligne->gs_id_site == $adme_site_id) { |
$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site, 'selected="selected"'); |
// Attribution du nom du site sur lequel on travaille pour le titre |
$site_nom = $ligne->gs_nom; |
} else { |
$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site); |
} |
} |
$form->addElement($objet_select); |
$form->addElement('submit', 'choisir_site', ADME_LG_FORM_SITE_VALIDER); |
$partie_site_fin = "\n".'</fieldset>'; |
$form->addElement('html', $partie_site_fin); |
// Instanciation des valeurs par défaut du formulaire |
if (isset($id_site_par_defaut)) { |
if (!isset($_GET['adme_site_id'])) { |
$adme_site_id=$id_site_par_defaut; |
} else { |
$adme_site_id=$_GET['adme_site_id']; |
} |
} |
$form->setDefaults(array('adme_site_id' => $adme_site_id)); |
$retour =''; |
$retour .= '<h1>'.ADME_LG_MENU_TITRE.$site_nom.'</h1>'."\n"; |
$retour .= $form->toHTML()."\n"; |
//--------------------------------------------------------------------------------------------------------------- |
// Gestion des menus classiques |
$objet_pear_url_copie = $objet_pear_url; |
$retour .= '<p>'."\n"; |
$objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_AJOUTER); |
$objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id); |
$objet_pear_url_copie->addQueryString('adme_menu_id', 0); |
$url_ajout_menu_classique_n1 = $objet_pear_url_copie->getURL(); |
//unset($url_ajout_menu_n1); |
$retour .= '<a href="'.$url_ajout_menu_classique_n1.'" >'. |
ADME_LG_MENU_CLASSIQUE_RACINE.' '. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'. |
'</a>'."\n"; |
$retour .= '</p>'."\n"; |
$objet_pear_url_copie_depl = $objet_pear_url; |
$objet_pear_url_copie_depl->removeQueryString('adme_action'); |
$objet_pear_url_copie_depl->removeQueryString('adme_site_id'); |
$objet_pear_url_copie_depl->removeQueryString('adme_menu_id'); |
$objet_pear_url_copie_depl->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_DEPLACER_MENUS); |
$url_deplacement_menu_commun = $objet_pear_url_copie_depl->getURL() ; |
$retour .= '<form id="adme_form_menu_deplacement" name="adme_form_menu_deplacement" method="post" action="'.$url_deplacement_menu_commun.'" class="form_inv">' ; |
$retour .= ADME_afficherListeMenuClassique($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0); |
$retour .= '<fieldset class="fields_deplacer_menu">' ; |
$retour .= '<legend> '.ADME_LG_MENU_DEPLACER.' </legend>' ; |
$objet_select->setAttributes(array('name'=>'adme_id_site_arrivee', 'id'=> 'adme_id_site_arrivee', 'tabindex' => $tab_index++)); |
$retour .= $objet_select->toHtml() ; |
$retour .= '<input type="hidden" name="adme_id_site_depart" id="adme_id_site_depart" value="'.$adme_site_id.'" />' ; |
$retour .= '<input type="submit" value="deplacer" title="deplacer" />' ; |
$retour .= '</fieldset>'; |
$retour .= '</form>' ; |
//$objet_pear_url_copie_depl->removeQueryString('adme_action'); |
//--------------------------------------------------------------------------------------------------------------- |
// Gestion des menus communs |
$retour .= '<p>'."\n"; |
$objet_pear_url_copie = $objet_pear_url; |
$objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_AJOUTER); |
$objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id); |
$objet_pear_url_copie->addQueryString('adme_menu_id', 0); |
$url_ajout_menu_commun_n1 = $objet_pear_url_copie->getURL(); |
//unset($url_ajout_menu_n1); |
$retour .= '<a href="'.$url_ajout_menu_commun_n1.'">'. |
ADME_LG_MENU_COMMUN_RACINE.' '. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'. |
'</a>'."\n"; |
$retour .= '</p>'."\n"; |
$retour .= ADME_afficherListeMenuCommun($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0); |
return $retour; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.19 2007-04-19 15:34:35 neiluj |
* préparration release (livraison) "Narmer" - v0.25 |
* |
* Revision 1.18 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.17 2006/10/06 13:38:45 florian |
* ergonomie amélioree |
* |
* Revision 1.16 2006/04/28 12:41:49 florian |
* corrections erreurs chemin |
* |
* Revision 1.15 2006/03/24 13:03:24 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.14 2006/03/23 20:24:59 ddelon |
* *** empty log message *** |
* |
* Revision 1.13 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.12 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.11.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.11 2005/07/18 16:14:32 ddelon |
* css admin + menu communs |
* |
* Revision 1.10 2005/07/08 21:57:24 ddelon |
* Copyright |
* |
* Revision 1.9 2005/05/12 16:51:37 alex |
* Changement de l'odre d'apparition des sites dans l'administration des menus. |
* |
* Revision 1.8 2005/01/26 16:18:05 jpm |
* Correction bogue 221 : mauvais réglage du titre. |
* |
* Revision 1.7 2004/11/24 11:31:51 jpm |
* Ajout d'une contante de langue à la place d'un texte. |
* |
* Revision 1.6 2004/11/10 17:26:07 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.5 2004/11/10 11:58:54 jpm |
* Mise en place des constantes de traduction de l'appli. |
* |
* Revision 1.4 2004/11/09 17:48:35 jpm |
* Gestion de différentes interfaces d'administration. |
* |
* Revision 1.3 2004/11/09 12:37:34 jpm |
* Fin de gestion des menus et mise en conformité avec la convention de codage. |
* |
* Revision 1.2 2004/11/08 17:41:07 jpm |
* Légères corrections : multisite, corrections SQL. |
* |
* Revision 1.1 2004/11/04 12:26:42 jpm |
* Contient les fonctions d'affichage général de l'appli ADME. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_menu/bibliotheque/adme_menu_classique.fonct.php |
---|
1,1999 → 1,2171 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: adme_menu_classique.fonct.php,v 1.42 2007-10-25 14:26:56 ddelon 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 Admin_menu |
*@subpackage Fonctions |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.42 $ $Date: 2007-10-25 14:26:56 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction ADME_afficherListeMenuClassique () - Affiche un arbre de menu en xhtml |
* |
* Elle forme l'arbre des menus classiques à administrer. |
* Ancien nom : deployer_menu(). |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @param integer l'identifiant du menu à administrer. |
* @param integer l'identifiant du menu sur lequel on agit. |
* @param string le nom de l'action courante. |
* @param integer l'identifiant du menu en cours de déploiement. |
* @param boolean true indique que l'on a à faire au premier appel de cette fonction récursive. |
* @return string le code XHTML constituant l'arbre des menus à administrer. |
*/ |
function ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $id_menu_a_deployer, $bln_premier_appel = true) |
{ |
// Initialisation des variables : |
$retour = ''; |
// 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 gm_ce_site = '.$adme_site_id.' '. |
'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)); |
} |
// Gestion du stockage ou déstockage des menus ouverts |
if (($adme_action == ADME_LG_ACTION_DEPLIER || $adme_action == ADME_LG_ACTION_CLASSIQUE_AJOUTER) && $id_menu_a_deployer != 0) { |
$_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id] = $adme_menu_id; |
} |
if ($adme_action == ADME_LG_ACTION_PLIER && $id_menu_a_deployer != 0) { |
unset($_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id]); |
foreach ($_SESSION['adme_menus_classiques_ouverts'] as $val) { |
if (GEN_etreAncetre($adme_menu_id, $val)) { |
unset($_SESSION['adme_menus_classiques_ouverts'][$val]); |
} |
} |
} |
// Gestion affichage des menus |
if ($resultat_sous_menu->numRows() > 0) { |
// Ici, on sait qu'un menu a des sous menus, on commence par l'afficher: |
if ($bln_premier_appel == false) { |
$retour .= '<li>'."\n"; |
if (GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || |
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_DEPLIER) || |
isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer]) |
){ |
// Affiche un - |
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 1); |
} else if ( !GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || |
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_PLIER) || |
!isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer]) |
){ |
// Affiche un + |
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 2); |
} |
} |
if ($bln_premier_appel == true || GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || |
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_DEPLIER) || |
isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer]) |
){ |
$retour .= '<ul class="menu_classique">'."\n"; |
while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) { |
$retour .= ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $ligne_sous_menu->gm_id_menu, false); |
} |
$retour .= '</ul>'."\n"; |
} |
if ($bln_premier_appel == false) { |
$retour .= '</li>'."\n"; |
} |
} else if ($resultat_sous_menu->numRows() == 0 && $bln_premier_appel == false) { |
$retour .= '<li>'."\n"; |
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 0); |
$retour .= '</li>'."\n"; |
} |
return $retour; |
} |
/** Fonction ADME_retournerXhtmlMenuClassique() - Effectue une sortie d'un menu en XHTML |
* |
* Retourne le XHTML d'une ligne de l'arbre des menus "classiques" permettant de l'administer. |
* Ancien nom : menu_toHtml(). |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @param integer l'identifiant du site à administrer. |
* @param integer l'identifiant du menu à administrer. |
* @param integer 0 indique que le menu ne possède pas de fils, 1 qu'il faut afficher un - et 2 un +. |
* @return string une ligne de liste XHTML |
*/ |
function ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $int_deplier,$est_traduction=false,$menu_traduction_defaut=0) |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation des variables |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération des infos concernant l'administrateur d'un menu |
$requete = 'SELECT gen_menu.*, ga_prenom '. |
'FROM gen_menu, gen_annuaire '. |
'WHERE gm_id_menu = '.$adme_menu_id.' '. |
'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); |
//------------------------------------------------------------------------------------------------------------------- |
// Recupération des infos de l'appli du menu courant. |
$ligne_app = GEN_retournerInfoAppliMenu($db, $adme_menu_id); |
//------------------------------------------------------------------------------------------------------------------- |
// XHTML image plier-déplier |
$url->addQueryString('adme_site_id', $adme_site_id); |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$xhtml_pd = ''; |
if ($int_deplier != 0) { |
if ($int_deplier == 1) { |
// Afficher un - |
$image_plier_deplier = ADME_IMAGE_MOINS; |
$alt = ADME_LG_ACTION_PLIER_ALT; |
$url->addQueryString('adme_action', ADME_LG_ACTION_PLIER); |
$url_plier_deplier = $url->getURL(); |
} else if ($int_deplier == 2) { |
// Afficher un + |
$image_plier_deplier = ADME_IMAGE_PLUS; |
$alt = ADME_LG_ACTION_DEPLIER_ALT; |
$url->addQueryString('adme_action', ADME_LG_ACTION_DEPLIER); |
$url_plier_deplier = $url->getURL(); |
} |
$xhtml_pd = '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'. |
'<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'. |
'</a>'.' '."\n"; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// XHTML du nom du menu et de ses infos |
$xhtml_info = htmlentities(empty($ligne->gm_nom) ? ADME_LG_PARENTHESE_OUVRANTE.$ligne->gm_nom.ADME_LG_PARENTHESE_FERMANTE : $ligne->gm_nom); |
$xhtml_info .= ' '; |
if (!isset($ligne_app->gap_nom)) { |
$gap_nom=''; |
} |
else { |
$gap_nom=$ligne_app->gap_nom; |
} |
$xhtml_info .= ADME_LG_PARENTHESE_OUVRANTE.$gap_nom.' '.ADME_LG_SLASH.' '.$ligne->ga_prenom.ADME_LG_PARENTHESE_FERMANTE; |
$xhtml_info .= ' '."\n"; |
//------------------------------------------------------------------------------------------------------------------- |
// XHTML actions |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_MODIFIER); |
$xhtml_action = '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_MODIFIER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_VOIR.'" alt="'.ADME_LG_ACTION_CLASSIQUE_MODIFIER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
if (!$est_traduction) { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_MONTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_MONTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.ADME_LG_ACTION_CLASSIQUE_MONTER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_DESCENDRE); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_DESCENDRE_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.ADME_LG_ACTION_CLASSIQUE_DESCENDRE_ALT.'" />'. |
'</a> '."\n"; |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_DIMINUER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_DIMINUER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_GAUCHE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_DIMINUER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_AUGMENTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_AUGMENTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_DROITE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_AUGMENTER_ALT.'" />'. |
'</a> '."\n"; |
} |
$url->removeQueryString('adme_action'); |
if (!$est_traduction) { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_SUPPRIMER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TITLE.'" onclick="javascript:return confirm(\''.ADME_LG_ACTION_SUPPRIMER_CONFIRMATION.'\');">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_ALT.'" />'. |
'</a> '."\n"; |
} |
else { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_TITLE.'" onclick="javascript:return confirm(\''.ADME_LG_ACTION_SUPPRIMER_CONFIRMATION.'\');">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_ALT.'" />'. |
'</a> '."\n"; |
} |
$url->removeQueryString('adme_action'); |
if (!$est_traduction) { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_AJOUTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_AJOUTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="'.ADME_LG_ACTION_CLASSIQUE_AJOUTER_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
$url->removeQueryString('adme_action'); |
// Si le menu à une application liée on regarde s'il y a une interface d'administration. |
if (!isset($ligne_app->gap_id_application)) { |
$gap_id_application=0; |
} |
else { |
$gap_id_application=$ligne_app->gap_id_application; |
} |
if ($gap_id_application != 0 && GEN_verifierPresenceInterfaceAdmin($db, $gap_id_application)) { |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_ADMINISTRER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_ADMINISTRER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TEXTE.'" alt="'.ADME_LG_ACTION_ADMINISTRER_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
if (!$est_traduction) { |
$requete_traduction = 'SELECT gmr_id_menu_02, gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_menu_02 = gm_id_menu '. |
'AND gmr_id_valeur = 2 ';// 2 = "avoir traduction" |
$resultat_traduction = $db->query($requete_traduction); |
(DB::isError($resultat_traduction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)) |
: ''; |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_TRADUIRE); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_TRADUIRE_TITLE.'">'. |
ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ALT. |
'</a> '."\n"; |
// Restriction possible à une langue si pas traduit |
if ($resultat_traduction->numRows() == 0 ) { |
$requete_lang = 'SELECT * FROM gen_i18n '; |
$resultat_lang = $db->query($requete_lang); |
(DB::isError($resultat_lang)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_lang->getMessage(), $requete_lang)) : ''; |
$requete_restriction = 'SELECT gmr_id_menu_02 '. |
'FROM gen_menu_relation '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 106 ';// 106 restriction de menu |
$resultat_restriction = $db->query($requete_restriction); |
(DB::isError($resultat_restriction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_restriction->getMessage(), $requete_restriction)) |
: ''; |
if ($resultat_restriction->numRows() == 0 ) { |
$restriction=0; |
} |
else { |
$restriction=1; |
} |
while ($ligne_lang = $resultat_lang->fetchRow(DB_FETCHMODE_OBJECT) ) { |
if (($restriction) && ($ligne->gm_ce_i18n==$ligne_lang->gi_id_i18n)) { |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_OUVRIR); |
$url->addQueryString('zone',$ligne_lang->gi_id_i18n); |
$xhtml_action .= '<i><b><a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_OUVRIR_TITLE.'">'. |
$ligne_lang->gi_id_i18n. |
'</a></b></i> '."\n"; |
} |
else { |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_LIMITER); |
$url->addQueryString('zone',$ligne_lang->gi_id_i18n); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_LIMITER_TITLE.'">'. |
$ligne_lang->gi_id_i18n. |
'</a> '."\n"; |
} |
} |
} |
} |
else { |
if ($menu_traduction_defaut==$adme_menu_id) { |
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
' '."\n"; |
} |
else { |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
} |
$xhtml_traduction=''; |
// $id_langue = $GLOBALS['_GEN_commun']['i18n']; |
$requete_traduction = 'SELECT gmr_id_menu_02, gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_menu_02 = gm_id_menu '. |
'AND gmr_id_valeur = 2 ';// 2 = "avoir traduction" |
$resultat_traduction = $db->query($requete_traduction); |
(DB::isError($resultat_traduction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)) |
: ''; |
if ($resultat_traduction->numRows() > 0 ) { |
$requete_traduction_defaut = 'SELECT gmr_id_menu_02 '. |
'FROM gen_menu_relation '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 traduction par defaut |
$resultat_traduction_defaut = $db->query($requete_traduction_defaut); |
(DB::isError($resultat_traduction_defaut)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction_defaut)) |
: ''; |
if ($resultat_traduction_defaut->numRows() == 0 ) { |
$menu_traduction_defaut=0; |
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
' '."\n"; |
} |
else { |
$ligne_traduction_defaut = $resultat_traduction_defaut->fetchRow(DB_FETCHMODE_OBJECT); |
$menu_traduction_defaut=$ligne_traduction_defaut->gmr_id_menu_02; |
if ($menu_traduction_defaut!=$adme_menu_id) { |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
else { |
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
' '."\n"; |
} |
} |
while ($ligne_resultat = $resultat_traduction->fetchRow(DB_FETCHMODE_OBJECT)) { |
$xhtml_traduction.="<br><em>".$ligne_resultat->gm_ce_i18n.": ".ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $ligne_resultat->gmr_id_menu_02, 0,true,$menu_traduction_defaut)."</em>"; |
} |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Envoi du menu. |
//------------------------------------------------------------------------------------------------------------------- |
$retour = $xhtml_pd.$xhtml_info.$xhtml_action.$xhtml_traduction; |
return $retour; |
} |
/** Fonction ADME_ajouterMenuClassique() - Ajoute un sous menu au menu courant |
* |
* Cette fonction permet d'ajouter un sous-menu de type "classique" au menu courant. |
* Ancien nom : addMenu() |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear d'authentification. |
* @param integer l'identifiant du site à administrer. |
* @param integer l'identifiant du menu à administrer. |
* @return void le menu classique est ajouté à la base de données. |
*/ |
function ADME_ajouterMenuClassique($db, $auth, $adme_site_id, $adme_menu_id) |
{ |
$url=$GLOBALS['_GEN_commun']['url']; |
$url->removeQueryString('adme_action'); |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur le site principal. |
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id); |
if ($objet_site == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'ID du site : '.$adme_site_id.'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu'); |
$auteur = $auth->getAuthData('ga_prenom').' '.$auth->getAuthData('ga_nom'); |
//---------------------------------------------------------------------------- |
// Ajout du nouveau menu |
$requete = 'INSERT INTO gen_menu '. |
'SET gm_id_menu = '.$nouveau_id_menu.', '. |
'gm_ce_site = '.$adme_site_id.', '. |
'gm_ce_i18n = "'.$objet_site->gs_ce_i18n.'", '. |
'gm_ce_application = 0, '. |
'gm_code_num = '.$nouveau_id_menu.', '. |
'gm_code_alpha = "menu_'.$nouveau_id_menu.'", '. |
'gm_nom = "menu_'.$nouveau_id_menu.'", '. |
'gm_titre = "menu_'.$nouveau_id_menu.'", '. |
'gm_description_resume = "menu_'.$nouveau_id_menu.'", '. |
'gm_auteur = "'.$auteur.'", '. |
'gm_editeur = "'.$objet_site->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_fin_validite = "0000-00-00 00:00:00", '. |
'gm_date_copyright = "'.date('Y-00-00 00:00:00').'", '. |
'gm_categorie = "menu", '. |
'gm_ce_admin = '.$auth->getAuthData('ga_id_administrateur').' ' |
; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation "père" |
if (!isset($adme_menu_id) && empty($adme_menu_id)) { |
$adme_menu_id = 0 ;// Identifiant du père |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur la hierarchie du menu |
$requete = 'SELECT GMR01.gmr_ordre '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '. |
'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'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu = $ligne->gmr_ordre + 1; |
$resultat->free(); |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_02 = '.$adme_menu_id.', '. |
'gmr_id_menu_01 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 1, '. |
'gmr_ordre = '.$nouveau_ordre_menu; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->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 '.// 100 = type menu "classique" |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gm_ce_site = '.$adme_site_id.' '. |
'ORDER BY gmr_ordre DESC'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu_classique = $ligne->gmr_ordre + 1; |
$resultat->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 ADME_afficherFormMenuClassique() - Affiche le formulaire pour un menu classique |
* |
* Utilise HTML_QuickForm pour générer le formulaire. |
* Ancien nom : showMenu() |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @param integer l'identifiant du site à administrer. |
* @param integer l'identifiant du menu à administrer. |
* @param array le tableau associatif des valeurs à afficher dans le formulaire. |
* @return string le formulaire XHTML. |
*/ |
function ADME_afficherFormMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $aso_valeurs,$traduction=FALSE) |
{ |
// Initialisation de variable |
$url->addQueryString('adme_site_id', $adme_site_id); |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$script = 'function switchMenu(obj) { |
var el = document.getElementById(obj); |
if(el.style.display != "block") |
{ |
el.style.display = "block"; |
} |
else |
{ |
el.style.display = "none"; |
} |
}'; |
GEN_stockerCodeScript($script); |
// Nous sommes toujours en modification car un menu est ajouté automatiquement! |
// Récupération des informations du menu concerné. |
if (!isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) { |
$aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC); |
if ($aso_valeurs === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'. |
'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Requete pour récupérer les informations issues des relations du site à modifier |
$ligne = GEN_lireInfoMenuRelation($db, $adme_menu_id, $id_valeur = 101); |
$aso_valeurs['defaut'] = false; |
if (isset($ligne) && !empty($ligne)) { |
if ($ligne->gmr_id_valeur != false) {// 101 = site par défaut |
$aso_valeurs['defaut'] = true; |
} |
} |
} |
// Titre de la page |
if ($traduction) { |
$retour = '<h1>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL_TRADUCTION.'</h1>'."\n"; |
} |
else { |
$retour = '<h1>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL.'</h1>'."\n"; |
} |
$retour .= '<p class="adme_menu_id" >'.ADME_LG_FORM_MENU_ID.'<span id="adme_menu_id">'.$aso_valeurs['gm_id_menu'].'</span></p>'."\n"; |
// Création du formulaire |
// Notes : Quickform semble remplacer les & des & à nouveau par des & solution utiliser str_replace()... |
$form =& new HTML_QuickForm('form_menu_classique', 'post', str_replace('&', '&', $url->getUrl())); |
$tab_index = 1000; |
$squelette =& $form->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'{content}'."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '<p class="formulaire_element"><span class="form_label">'."\n". |
'{label}'."\n". |
'<!-- BEGIN required --><span style="color:red; width:5px; margin:0; padding:0;">*</span><!-- END required -->'."\n". |
'</span>'."\n".'{element}'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</p>'."\n"); |
$squelette->setGroupElementTemplate('<p style="display:inline">{element}</p>', 'form_boutons'); |
$squelette->setRequiredNoteTemplate("\n".'<p class="symbole_obligatoire">* : {requiredNote}</p>'."\n"); |
//Note pour les erreurs javascript |
$form->setJsWarnings('Erreur de saisie', 'Veuillez verifier vos informations saisies'); |
// Note de fin de formulaire |
$form->setRequiredNote(ADME_LG_FORM_TXT_CHP_OBLIGATOIRE); |
$partie_menu_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG.'</legend>'."\n"; |
$form->addElement('html', $partie_menu_debut); |
$id = 'gm_code_alpha'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 50); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CODE_ALPHA.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_CODE_ALPHA, 'required', '', 'client'); |
$id = 'gm_nom'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_NOM.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_NOM, 'required', '', 'client'); |
$form->applyFilter($id, 'trim'); |
$id = 'gm_description_resume'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 50); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_INFO_BULLE.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_INFO_BULLE, 'required', '', 'client'); |
// Requête sur les applications |
$requete = 'SELECT gap_id_application, gap_nom '. |
'FROM gen_application '. |
'WHERE gap_bool_applette = 0 '. |
'ORDER BY gap_nom ASC';// 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.'">'.ADME_LG_FORM_MENU_APPLI.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
if ($traduction) { |
// Recherche liste des menu deja traduits |
$requete = 'SELECT distinct gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_01 = ' . $adme_menu_id .' '. |
'AND gm_id_menu = gmr_id_menu_02 '. |
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction" |
$resultat = $db->query($requete) ; |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
$not_in_langue=''; |
if ( $resultat->numRows() == 0 ) { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
else { |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$not_in_langue="'".$ligne->gm_ce_i18n."'".",".$not_in_langue; |
$end="'".$ligne->gm_ce_i18n."'"; |
} |
if ($not_in_langue) { |
$not_in_langue="'".$aso_valeurs['gm_ce_i18n']."'".",".$not_in_langue; |
$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')'; |
} |
else { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
} |
$resultat->free(); |
$requete = "SELECT * FROM gen_i18n where ".$not_in_langue; |
/*$requete = 'SELECT * '. |
'FROM gen_i18n ';*/ |
$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->gi_id_i18n] = $ligne->gi_id_i18n; |
} |
$resultat->free(); |
$id = 'gs_ce_i18n'; |
$aso_attributs = array('id' => $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Langue : '.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
} |
$id = 'gm_titre'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE.'</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.'">'.ADME_LG_FORM_MENU_MOT_CLE.'</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.'">'.ADME_LG_FORM_MENU_DESCRIPTION.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$partie_menu_fin = "\n".'</fieldset>'."\n"; |
$form->addElement('html', $partie_menu_fin); |
//Lien javascript pour cacher les options compliquées |
$form->addElement('html', '<a href="#" onclick="switchMenu(\'config_avancee\');" title="'.ADME_VOIR_CONFIG_AVANCEE.'">'.ADME_VOIR_CONFIG_AVANCEE.'</a><br />'."\n"); |
//début de la div cachée pour les options compliquées----------------------------------------------- |
$form->addElement('html', '<div id="config_avancee" style="display:none;">'); |
$partie_entete_debut = '<fieldset>'."\n".'<legend>'.ADME_CONFIG_AVANCEE.'</legend>'."\n"; |
$form->addElement('html', $partie_entete_debut); |
$id = 'gm_code_num'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 5, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CODE_NUM.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_CODE_NUM, 'required', '', 'client'); |
$id = 'gm_raccourci_clavier'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_RACCOURCI.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'defaut'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
if ($aso_valeurs[$id] === true) { |
$aso_attributs['checked'] = 'checked'; |
} |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DEFAUT.'</label>'; |
$form->addElement('checkbox', $id, $label, '', $aso_attributs); |
$id = 'gm_fichier_squelette'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_FICHIER_SQUELETTE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_application_arguments'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_APPLI_ARGUMENT.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_robot'; |
$aso_options = array( 'index,follow' => ADME_LG_FORM_MENU_INDEX_FOLLOW, |
'index' => ADME_LG_FORM_MENU_INDEX, |
'noindex' => ADME_LG_FORM_MENU_NOINDEX, |
'noindex,nofollow' => ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW, |
'' => ADME_LG_FORM_MENU_INDEX_VIDE); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ROBOT.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_titre_alternatif'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE_ALTERNATIF.'</label>'; |
$form->addElement('text', $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.'">'.ADME_LG_FORM_MENU_TABLE_MATIERE.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_source'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_SOURCE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_auteur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_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.'">'.ADME_LG_FORM_MENU_CONTRIBUTEUR.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_editeur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 65000); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_EDITEUR.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_date_creation'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DATE_CREATION.'</label>'; |
$form->addElement('text', $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.'">'.ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT.'</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.'">'.ADME_LG_FORM_MENU_DATE_VALIDITE_FIN.'</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.'">'.ADME_LG_FORM_MENU_DATE_COPYRIGHT.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_licence'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_URL_LICENCE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_categorie'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CATEGORIE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_public'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_PUBLIC.'</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.'">'.ADME_LG_FORM_MENU_PUBLIC_NIVEAU.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_spatiale'; |
$aso_options = array( '' => ADME_LG_FORM_MENU_ZG_VIDE, |
'iso3166' => ADME_LG_FORM_MENU_ZG_ISO, |
'Point' => ADME_LG_FORM_MENU_ZG_POINT, |
'Box' => ADME_LG_FORM_MENU_ZG_DC, |
'TGN' => ADME_LG_FORM_MENU_ZG_GTGN); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ZG_TYPE.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_spatiale'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ZG_VALEUR.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_temporelle'; |
$aso_options = array( '' => ADME_LG_FORM_MENU_TMP_VIDE, |
'W3CDTF' => ADME_LG_FORM_MENU_TMP_W3C, |
'Period' => ADME_LG_FORM_MENU_TMP_DC); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_TYPE.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_temporelle'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_VALEUR.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
// Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif |
if (!isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) { |
$requete_admin = 'SELECT * '. |
'FROM gen_annuaire '. |
'WHERE ga_id_administrateur = '.$aso_valeurs['gm_ce_admin']; |
$resultat_admin = $db->query($requete_admin); |
if (DB::isError($resultat_admin)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin)); |
} |
$ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT); |
$info_admin = '<p class="info">Dernière modification par '.$ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'</p>'; |
$form->addElement('html', $info_admin); |
} |
//fin de la div cachée pour les options compliquées------------------------------------------------- |
$form->addElement('html', "\n".'</fieldset>'."\n".'</div>'); |
$buttons[] = &HTML_QuickForm::createElement('link', 'annuler', ADME_LG_FORM_MENU_ANNULER, |
str_replace ("&", "&", $url->getURL()), ADME_LG_FORM_MENU_ANNULER); // Le preg_replace contourne un pb de QuickForm et Net_URL |
// qui remplacent deux fois les & par des & |
//Bouton de validation du formulaire |
if ($traduction) { |
$buttons[] = &HTML_QuickForm::createElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION, ADME_LG_FORM_MENU_VALIDER); |
$form->addElement('hidden', 'adme_site_id', $adme_site_id); |
} |
else { |
$buttons[] = &HTML_QuickForm::createElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER, ADME_LG_FORM_MENU_VALIDER); |
} |
$form->addGroup($buttons, 'form_boutons', null, ' '); |
$form->addElement('hidden', 'gm_id_menu', $aso_valeurs['gm_id_menu']); |
// Instanciation avec les valeur par défaut |
$form->setDefaults($aso_valeurs); |
$retour .= $form->toHTML()."\n"; |
return $retour; |
} |
/** Fonction ADME_validerFormAjouterMenuClassique() - Valide les données issues du formulaire pour gen_menu. |
* |
* Cette fonction valide les données à ajouter dans la table gen_menu. |
* |
* @param PEAR::DB l'objet pear de connexion à la base de données. |
* @param string le tableau contenant les valeurs du formulaire. |
* @return string retourne les messages d'erreurs sinon rien. |
*/ |
function ADME_validerFormAjouterMenuClassique($db, $aso_valeurs) |
{ |
$message = ''; |
if ($aso_valeurs['gm_code_alpha'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_ALPHA.'</p>'; |
} |
if ($aso_valeurs['gm_code_num'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_NUM.'</p>'; |
} |
if ($aso_valeurs['gm_nom'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_NOM.'</p>'; |
} |
if ($aso_valeurs['gm_description_resume'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_INFO_BULLE.'</p>'; |
} |
return $message; |
} |
/** Fonction ADME_validerFormTraduireMenuClassique() - Valide les données issues du formulaire de traduction de menu |
* |
* Cette fonction valide les données à ajouter dans la table gen_menu. |
* |
* @param PEAR::DB l'objet pear de connexion à la base de données. |
* @param string le tableau contenant les valeurs du formulaire. |
* @return string retourne les messages d'erreurs sinon rien. |
*/ |
function ADME_validerFormTraduireMenuClassique($db, $aso_valeurs) |
{ |
$message = ''; |
if ($aso_valeurs['gm_code_alpha'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_ALPHA.'</p>'; |
} |
if ($aso_valeurs['gm_code_num'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_NUM.'</p>'; |
} |
if ($aso_valeurs['gm_nom'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_NOM.'</p>'; |
} |
if ($aso_valeurs['gm_description_resume'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_INFO_BULLE.'</p>'; |
} |
return $message; |
} |
/** Fonction ADME_modifierMenuClassique() - Met à jour les infos d'un menu classique |
* |
* Fonction modifiant un menu commun à Papyrus. |
* Ancien nom : commitUpdateLevel() |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'authentification. |
* @param integer l'identifiant du menu à administrer. |
* @param array le tableau des valeurs à modifier. |
* @return void les changement sont fait dans la base de données. |
*/ |
function ADME_modifierMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs) |
{ |
$requete = 'UPDATE gen_menu SET '. |
'gm_ce_application = '.$aso_valeurs['gm_ce_application'].', '. |
'gm_application_arguments = "'.$aso_valeurs['gm_application_arguments'].'", '. |
'gm_fichier_squelette = "'.$aso_valeurs['gm_fichier_squelette'].'", '. |
'gm_code_num = '.$aso_valeurs['gm_code_num'].', '. |
'gm_code_alpha = "'.$aso_valeurs['gm_code_alpha'].'", '. |
'gm_nom = "'.$aso_valeurs['gm_nom'].'", '. |
'gm_raccourci_clavier = "'.$aso_valeurs['gm_raccourci_clavier'].'", '. |
'gm_robot = "'.$aso_valeurs['gm_robot'].'", '. |
'gm_titre = "'.$aso_valeurs['gm_titre'].'", '. |
'gm_titre_alternatif = "'.$aso_valeurs['gm_titre_alternatif'].'", '. |
'gm_mots_cles = "'.$aso_valeurs['gm_mots_cles'].'", '. |
'gm_description_libre = "'.$aso_valeurs['gm_description_libre'].'", '. |
'gm_description_resume = "'.$aso_valeurs['gm_description_resume'].'", '. |
'gm_description_table_matieres = "'.$aso_valeurs['gm_description_table_matieres'].'", '. |
'gm_source = "'.$aso_valeurs['gm_source'].'", '. |
'gm_auteur = "'.$aso_valeurs['gm_auteur'].'", '. |
'gm_contributeur = "'.$aso_valeurs['gm_contributeur'].'", '. |
'gm_editeur = "'.$aso_valeurs['gm_editeur'].'", '. |
'gm_date_creation = "'.$aso_valeurs['gm_date_creation'].'", '. |
'gm_date_debut_validite = "'.$aso_valeurs['gm_date_debut_validite'].'", '. |
'gm_date_fin_validite = "'.$aso_valeurs['gm_date_fin_validite'].'", '. |
'gm_date_copyright = "'.$aso_valeurs['gm_date_copyright'].'", '. |
'gm_licence = "'.$aso_valeurs['gm_licence'].'", '. |
'gm_categorie = "'.$aso_valeurs['gm_categorie'].'", '. |
'gm_public = "'.$aso_valeurs['gm_public'].'", '. |
'gm_public_niveau = "'.$aso_valeurs['gm_public_niveau'].'", '. |
'gm_ce_type_portee_spatiale = "'.$aso_valeurs['gm_ce_type_portee_spatiale'].'", '. |
'gm_portee_spatiale = "'.$aso_valeurs['gm_portee_spatiale'].'", '. |
'gm_ce_type_portee_temporelle = "'.$aso_valeurs['gm_ce_type_portee_temporelle'].'", '. |
'gm_portee_temporelle = "'.$aso_valeurs['gm_portee_temporelle'].'", '. |
'gm_ce_admin = "'.$auth->getAuthData('ga_id_administrateur').'" '. |
'WHERE gm_id_menu = '.$adme_menu_id; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Gestion de la relation menu par défaut |
if (isset($aso_valeurs['defaut']) && $aso_valeurs['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 = '.$adme_menu_id.' '. |
'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)); |
} |
$ligne_menu_supr_defaut = $resultat_menu_supr_defaut->fetchRow(DB_FETCHMODE_OBJECT); |
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 = '.$ligne_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)); |
} |
} |
$resultat_menu_supr_defaut->free(); |
// Requete d'insertion de la relation menu par défaut |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_01 = '.$adme_menu_id.', '. |
'gmr_id_menu_02 = '.$adme_menu_id.', '. |
'gmr_id_valeur = 101, '. |
'gmr_ordre = NULL '; |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
} |
} |
/** Fonction ADME_deplacerMenuClassique() - Permet de déplacer un menu dans la hiérarchie. |
* |
* Permet de déplacer un menu dans la hiérarchie des menus classiques. |
* Ancien nom : moveMenu() |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site administré. |
* @param integer 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 ADME_deplacerMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_monter) |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id); |
if ($objet_site == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'. |
'Id du site : '. $adme_site_id .'<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, $adme_menu_id, '1'); |
if ($ligne_menu_courant_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération de l'identifiant du menu pére |
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id); |
if ($id_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<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, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$objet_site->gs_id_site.' '. |
'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 ($bln_monter) { |
$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'; |
} |
$resultat_menu = $db->query($requete); |
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : ''; |
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat_menu->free(); |
//------------------------------------------------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $ligne_menu) { |
return null; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Mise à jour des relations du menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.$ligne_menu->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" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->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 = '.$ligne_menu->id_menu_remplace.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
} |
/** Fonction ADME_traduireMenuClassique() - Permet de traduire un menu classique |
* |
* Permet de traduire un menu classique |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site administré. |
* @param integer identifiant du menu à déplacer. |
* @return void modifie la base de données. |
*/ |
function ADME_traduireMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs) { |
// Récupération d'infos sur le site principal. |
$objet_site = GEN_lireInfoSitePrincipal($db, $aso_valeurs['adme_site_id']); |
if ($objet_site == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'ID du site : '.$aso_valeurs['adme_site_id'].'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu'); |
$auteur = $auth->getAuthData('ga_prenom').' '.$auth->getAuthData('ga_nom'); |
$requete = 'INSERT INTO gen_menu '. |
'SET gm_id_menu = '.$nouveau_id_menu.', '. |
'gm_ce_site = '.$aso_valeurs['adme_site_id'].', '. |
'gm_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '. |
'gm_ce_application = '.$aso_valeurs['gm_ce_application'].', '. |
'gm_application_arguments = "'.$aso_valeurs['gm_application_arguments'].'", '. |
'gm_fichier_squelette = "'.$aso_valeurs['gm_fichier_squelette'].'", '. |
'gm_code_num = '.$aso_valeurs['gm_code_num'].', '. |
'gm_code_alpha = "'.$aso_valeurs['gm_code_alpha'].'", '. |
'gm_nom = "'.$aso_valeurs['gm_nom'].'", '. |
'gm_raccourci_clavier = "'.$aso_valeurs['gm_raccourci_clavier'].'", '. |
'gm_robot = "'.$aso_valeurs['gm_robot'].'", '. |
'gm_titre = "'.$aso_valeurs['gm_titre'].'", '. |
'gm_titre_alternatif = "'.$aso_valeurs['gm_titre_alternatif'].'", '. |
'gm_mots_cles = "'.$aso_valeurs['gm_mots_cles'].'", '. |
'gm_description_libre = "'.$aso_valeurs['gm_description_libre'].'", '. |
'gm_description_resume = "'.$aso_valeurs['gm_description_resume'].'", '. |
'gm_description_table_matieres = "'.$aso_valeurs['gm_description_table_matieres'].'", '. |
'gm_source = "'.$aso_valeurs['gm_source'].'", '. |
'gm_auteur = "'.$aso_valeurs['gm_auteur'].'", '. |
'gm_contributeur = "'.$aso_valeurs['gm_contributeur'].'", '. |
'gm_editeur = "'.$aso_valeurs['gm_editeur'].'", '. |
'gm_date_creation = "'.$aso_valeurs['gm_date_creation'].'", '. |
'gm_date_debut_validite = "'.$aso_valeurs['gm_date_debut_validite'].'", '. |
'gm_date_fin_validite = "'.$aso_valeurs['gm_date_fin_validite'].'", '. |
'gm_date_copyright = "'.$aso_valeurs['gm_date_copyright'].'", '. |
'gm_licence = "'.$aso_valeurs['gm_licence'].'", '. |
'gm_categorie = "'.$aso_valeurs['gm_categorie'].'", '. |
'gm_public = "'.$aso_valeurs['gm_public'].'", '. |
'gm_public_niveau = "'.$aso_valeurs['gm_public_niveau'].'", '. |
'gm_ce_type_portee_spatiale = "'.$aso_valeurs['gm_ce_type_portee_spatiale'].'", '. |
'gm_portee_spatiale = "'.$aso_valeurs['gm_portee_spatiale'].'", '. |
'gm_ce_type_portee_temporelle = "'.$aso_valeurs['gm_ce_type_portee_temporelle'].'", '. |
'gm_portee_temporelle = "'.$aso_valeurs['gm_portee_temporelle'].'", '. |
'gm_ce_admin = "'.$auth->getAuthData('ga_id_administrateur').'" '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation traduction |
if (!isset($adme_menu_id) && empty($adme_menu_id)) { |
$adme_menu_id = 0 ;// Identifiant du père |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur la hierarchie du menu |
$requete = 'SELECT GMR01.gmr_ordre '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '. |
'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'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu = $ligne->gmr_ordre + 1; |
$resultat->free(); |
// Traduction : |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_01 = '.$adme_menu_id.', '. |
'gmr_id_menu_02 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 2, '. // Avoir traduction |
'gmr_ordre = '.$nouveau_ordre_menu; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->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 '.// 100 = type menu "classique" |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gm_ce_site = '.$aso_valeurs['adme_site_id'].' '. |
'ORDER BY gmr_ordre DESC'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu_classique = $ligne->gmr_ordre + 1; |
$resultat->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 ADME_indenterMenuClassique() - Permet d'augmenter ou diminuer l'indentation d'un menu dans la |
* hierarchie |
* |
* Permet d'augmenter ou diminuer l'indentation d'un menu dans la hierarchie |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site administré. |
* @param integer identifiant du menu à déplacer. |
* @param boolean indique si on veut diminuer (gauche) l'indentation (true) ou augmenter (droite) l'indentation (false). |
* @return void modifie la base de données. |
*/ |
function ADME_indenterMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_diminuer) { |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id); |
if ($objet_site == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'. |
'Id du site : '. $adme_site_id .'<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, $adme_menu_id, '1'); |
if ($ligne_menu_courant_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération de l'identifiant du menu pére |
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id); |
if ($id_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
if ($bln_diminuer) { |
// Diminution d'un niveau |
if ($id_pere) { |
// Récupération de l'identifiant du menu grand pére, sera le nouveau pere |
$id_grand_pere = GEN_lireIdentifiantMenuPere($id_pere); |
if ($id_grand_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Récupération d'informations sur les relations du menu pere |
$ligne_menu_pere_relation = GEN_lireInfoMenuRelation($db, $id_pere, '1'); |
if ($ligne_menu_pere_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Recherche d'information sur le menu suivant le menu pere |
//------------------------------------------------------------------------------------------------------------------- |
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$objet_site->gs_id_site.' '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'AND GMR01.gmr_id_menu_02 = '.$id_grand_pere.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père" |
'AND GMR01.gmr_ordre > '.$ligne_menu_pere_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
$resultat_menu = $db->query($requete); |
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : ''; |
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat_menu->free(); |
//------------------------------------------------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $ligne_menu) { |
$no=$ligne_menu_pere_relation->gmr_ordre+1; |
} |
else { |
$no=$ligne_menu->nouvel_ordre+1; |
} |
// Mise à jour pere menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_id_menu_02 = '.$id_grand_pere.' ,'. |
'gmr_ordre = '.$no.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
} |
} |
else { |
$requete = 'SELECT GMR01.gmr_id_menu_01 '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$objet_site->gs_id_site.' '. |
'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" |
'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
$resultat_menu = $db->query($requete); |
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : ''; |
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat_menu->free(); |
//------------------------------------------------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $ligne_menu) { |
return null; |
} |
//---------------------------------------------------------------------------- |
// Recherche dernier fils |
$requete = 'SELECT GMR01.gmr_ordre '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' '. |
'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'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat->free(); |
if (isset($ligne)) { |
$no = $ligne->gmr_ordre + 1; |
} |
else { |
$no = 1; |
} |
// Mise à jour pere menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' ,'. |
'gmr_ordre = '.$no.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
} |
} |
/** Fonction ADME_supprimerMenuClassique() - Supprime un menu classique. |
* |
* Supprime de la base de données de Papyrus toutes les traces du menu classiques |
* passé en paramètre. |
* Ancien nom : deleteMenu() |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_supprimerMenuClassique($db, $adme_id_site, $id_menu_a_supprimer) |
{ |
$code_menu = GEN_lireInfoMenu($db, $id_menu_a_supprimer, DB_FETCHMODE_ASSOC); |
//---------------------------------------------------------------------------- |
// 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 = $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 ADME_LG_ERREUR_EXISTE_SOUS_MENU; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Mise à jour de l'ordre des menus |
$ligne_menu_supr_relation = GEN_lireInfoMenuRelation($db, $id_menu_a_supprimer, '1'); // 1 = relation "avoir père" |
$requete = 'SELECT GMR01.gmr_id_menu_01, GMR01.gmr_ordre '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$adme_id_site.' '.// le site du menu! |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'AND GMR01.gmr_id_menu_02 = '.$ligne_menu_supr_relation->gmr_id_menu_02.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père" |
'AND GMR01.gmr_ordre > '.$ligne_menu_supr_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre ASC'; |
$resultat = $db->query($requete); |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
// Mise à jour des relations hiérarchiques du menu courant |
$requete_maj = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.($ligne->gmr_ordre - 1).' '. |
'WHERE gmr_id_menu_01 = '.$ligne->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_maj = $db->query($requete_maj); |
(DB::isError($resultat_maj)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_maj->getMessage(), $requete_maj)) : ''; |
} |
$resultat->free(); |
//---------------------------------------------------------------------------- |
// 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 = $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 = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Suppression du contenu !!!! |
$requete = 'DELETE FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu= '.$id_menu_a_supprimer.' '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
/** Fonction ADME_supprimerMenuClassiqueTraduction() - Supprime une traduction de menu classique. |
* |
* Supprime de la base de données de Papyrus toutes les traces du menu classiques |
* passé en paramètre. |
* Ancien nom : deleteMenu() |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_supprimerMenuClassiqueTraduction($db, $adme_id_site, $id_menu_a_supprimer) |
{ |
$code_menu = GEN_lireInfoMenu($db, $id_menu_a_supprimer, DB_FETCHMODE_ASSOC); |
if ($code_menu === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'. |
'Idenitifiant du menu n° : '. $id_menu_a_supprimer .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$requete = 'DELETE FROM gen_menu '. |
'WHERE gm_id_menu = '.$id_menu_a_supprimer; |
$resultat = $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 = $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_02 = '.$id_menu_a_supprimer; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Suppression du contenu !!!! |
$requete = 'DELETE FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$id_menu_a_supprimer.' '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
function ADME_verifier_traduction_possible($db, $url, $adme_site_id, $adme_menu_id) { |
$aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC); |
if ($aso_valeurs === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'. |
'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Recherche liste des menu deja traduits |
$requete = 'SELECT distinct gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_01 = ' . $adme_menu_id .' '. |
'AND gm_id_menu = gmr_id_menu_02 '. |
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction" |
$resultat = $db->query($requete) ; |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
$not_in_langue=''; |
if ( $resultat->numRows() == 0 ) { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
else { |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$not_in_langue="'".$ligne->gm_ce_i18n."'".",".$not_in_langue; |
$end="'".$ligne->gm_ce_i18n."'"; |
} |
if ($not_in_langue) { |
$not_in_langue="'".$aso_valeurs['gm_ce_i18n']."'".",".$not_in_langue; |
$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')'; |
} |
else { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
} |
$requete = "SELECT * FROM gen_i18n where ".$not_in_langue; |
$resultat = $db->query($requete) ; |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
$retour = $resultat->numRows(); |
$resultat->free(); |
$message=''; |
if ($retour == 0) { |
$message = '<p class="pap_erreur">Plus de traduction possible pour ce menu </p>'; |
} |
return $message; |
} |
/** Fonction ADME_selectionnerMenuClassiqueTraduction()() Selection un menu classique comme traduction par defaut |
* |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_selectionnerMenuClassiqueTraduction($db, $adme_id_site, $id_menu) |
{ |
// 1 : Rechercher traduction parente : si presente on est dans une traduc. si absente on |
// est dans un menu en version originale |
$requete_origine_traduction = 'SELECT gmr_id_menu_01 '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_02 = ' . $id_menu .' '. |
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction" |
$resultat_origine_traduction = $db->query($requete_origine_traduction) ; |
if (DB::isError($resultat_origine_traduction)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete_origine_traduction) ); |
} |
if ($resultat_origine_traduction->numRows() > 0) { |
$ligne_origine_traduction = $resultat_origine_traduction->fetchRow(DB_FETCHMODE_OBJECT); |
$id_menu_origine=$ligne_origine_traduction->gmr_id_menu_01; |
} |
else { |
$id_menu_origine=$id_menu; |
} |
$requete_suppression = 'DELETE from gen_menu_relation '. |
'WHERE gmr_id_menu_01 = ' . $id_menu_origine . ' ' . |
'AND gmr_id_valeur=105 '; // 105 Traduction par defaut |
$resultat_suppression = $db->query($requete_suppression); |
(DB::isError($resultat_suppression)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_suppression->getMessage(), $requete_suppression)) : ''; |
$requete_insertion = 'INSERT into gen_menu_relation '. |
' SET gmr_id_menu_01 = ' . $id_menu_origine . ', ' . |
' gmr_id_menu_02 = ' . $id_menu . ', ' . |
' gmr_id_valeur = 105' ; |
$resultat_insertion = $db->query($requete_insertion); |
(DB::isError($resultat_insertion)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_insertion->getMessage(), $requete_insertion)) : ''; |
} |
/** Fonction ADME_limiterMenuClassique() (limiter) un menu classique à la langue selectionne |
* |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_limiterMenuClassique($db, $adme_id_site, $id_menu, $zone) |
{ |
$requete_insertion = 'INSERT into gen_menu_relation '. |
' SET gmr_id_menu_01 = ' . $id_menu . ', ' . |
' gmr_id_menu_02 = ' . $id_menu . ', ' . |
' gmr_id_valeur = 106' ; |
$resultat_insertion = $db->query($requete_insertion); |
$requete_mise_a_jour = 'UPDATE gen_menu SET '. |
'gm_ce_i18n = "'.$zone.'" '. |
'WHERE gm_id_menu = '.$id_menu; |
$resultat_mise_a_jour = $db->query($requete_mise_a_jour); |
(DB::isError($resultat_mise_a_jour)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_mise_a_jour->getMessage(), $requete_mise_a_jour)) : ''; |
} |
/** Fonction ADME_ouvrirMenuClassique() Ouvrir un menu classique à toutes les langues (suite à une fermeture) |
* |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_ouvrirMenuClassique($db, $adme_id_site, $id_menu) |
{ |
$requete_suppression = 'DELETE from gen_menu_relation '. |
'WHERE gmr_id_menu_01 = ' . $id_menu . ' ' . |
'AND gmr_id_valeur=106 '; // 106 fermeture du menu |
$resultat_suppression = $db->query($requete_suppression); |
$requete_mise_a_jour = 'UPDATE gen_menu SET '. |
'gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '. |
'WHERE gm_id_menu = '.$id_menu; |
$resultat_mise_a_jour = $db->query($requete_mise_a_jour); |
(DB::isError($resultat_mise_a_jour)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_mise_a_jour->getMessage(), $requete_mise_a_jour)) : ''; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.41 2007-10-24 14:43:02 ddelon |
* Gestion des menus reservés à une langue |
* |
* Revision 1.40 2007-07-03 14:35:11 florian |
* correction bug maj non prise en charge |
* |
* Revision 1.39 2007-07-03 14:07:02 florian |
* correction bug maj non prise en charge |
* |
* Revision 1.38 2007-06-26 14:18:53 florian |
* amélioration des formulaires des différentes applis de l'interface d'administration afin de les simplifier |
* |
* Revision 1.37 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.36 2006/10/06 13:38:45 florian |
* ergonomie amélioree |
* |
* Revision 1.35 2006/09/07 13:45:56 jp_milcent |
* Trie par ordre alphabétique des appli. |
* |
* Revision 1.34 2006/06/29 23:04:01 ddelon |
* Bug defaut traduction sur menu commun |
* |
* Revision 1.33 2006/06/29 18:58:57 ddelon |
* Multilinguisme : menu par defaut pour les menu commun |
* |
* Revision 1.32 2006/06/28 12:53:34 ddelon |
* Multilinguisme : menu par defaut |
* |
* Revision 1.31 2006/04/12 21:11:54 ddelon |
* Multilinguisme menus communs |
* |
* Revision 1.30 2006/03/27 14:33:04 ddelon |
* Gestion suppression de contenu menu afficheur |
* |
* Revision 1.29 2006/03/23 20:24:59 ddelon |
* *** empty log message *** |
* |
* Revision 1.28 2006/03/15 09:30:50 florian |
* suppression des echos, qui entrainaient des problemes d'affichages |
* |
* Revision 1.27 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.26 2006/03/10 11:02:36 alexandre_tb |
* remplacement de l'image "Traduire" par un texte "traduire" vu qu'on a pas d'image pour la notion de traduire... |
* |
* Revision 1.25 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.24.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.24 2005/09/23 13:58:07 ddelon |
* Php5, Projet et Redirection |
* |
* Revision 1.23 2005/09/20 17:01:22 ddelon |
* php5 et bugs divers |
* |
* Revision 1.22 2005/07/08 21:13:15 ddelon |
* Gestion indentation menu |
* |
* Revision 1.21 2005/05/26 16:13:08 jpm |
* Correction taille éditeur: passage en text |
* |
* Revision 1.19 2005/05/26 15:34:46 jpm |
* Ajout d'un espace. |
* |
* Revision 1.18 2005/05/26 08:54:20 jpm |
* Ajout info admin ayant fait la dernière modif. |
* |
* Revision 1.17 2005/04/19 16:47:16 jpm |
* Gestion des dates de fin de validité des menus. |
* |
* Revision 1.16 2005/03/29 15:49:12 jpm |
* Ajout de la date de création dans le formulaire des menus. |
* |
* Revision 1.15 2005/02/28 11:05:06 jpm |
* Modification des auteurs. |
* |
* Revision 1.14 2004/12/01 16:47:28 jpm |
* Ajout d'une boite javascript de confirmation de suppression d'un menu. |
* |
* Revision 1.13 2004/11/29 18:34:51 jpm |
* Correction bogue checkbox. |
* |
* Revision 1.12 2004/11/15 16:51:12 jpm |
* Correction bogue de mise à jour de l'ordre des menus. |
* |
* Revision 1.11 2004/11/10 19:41:14 jpm |
* Correction bogue. |
* |
* Revision 1.10 2004/11/10 17:26:07 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.9 2004/11/09 17:53:00 jpm |
* Changement des noms des actions sur les menus classiques. |
* |
* Revision 1.8 2004/11/09 17:48:35 jpm |
* Gestion de différentes interfaces d'administration. |
* |
* Revision 1.7 2004/11/09 12:37:34 jpm |
* Fin de gestion des menus et mise en conformité avec la convention de codage. |
* |
* Revision 1.6 2004/11/08 17:40:07 jpm |
* Gestion correcte de l'ouverture et fermeture des menus. |
* Utilisation des sessions. |
* |
* Revision 1.5 2004/11/04 19:11:38 jpm |
* Mise en conformité vis à vis de la convention de codage. |
* Amélioration de la récursivité de la gestion de l'affichage des menus. |
* |
* Revision 1.4 2004/10/25 16:27:42 jpm |
* Correction d'un bogue dans la gestion du déplacement des menus. |
* |
* Revision 1.3 2004/09/23 17:45:13 jpm |
* Amélioration de la gestion des liens annuler et du selecteur de sites. |
* |
* Revision 1.2 2004/07/06 17:07:37 jpm |
* Modification de la documentation pour une mailleur analyse par PhpDocumentor. |
* |
* Revision 1.1 2004/06/16 15:04:32 jpm |
* Changement de nom de Génésia en Papyrus. |
* Changement de l'arborescence. |
* |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: adme_menu_classique.fonct.php,v 1.42 2007-10-25 14:26:56 ddelon 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 Admin_menu |
*@subpackage Fonctions |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.42 $ $Date: 2007-10-25 14:26:56 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction ADME_afficherListeMenuClassique () - Affiche un arbre de menu en xhtml |
* |
* Elle forme l'arbre des menus classiques à administrer. |
* Ancien nom : deployer_menu(). |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @param integer l'identifiant du menu à administrer. |
* @param integer l'identifiant du menu sur lequel on agit. |
* @param string le nom de l'action courante. |
* @param integer l'identifiant du menu en cours de déploiement. |
* @param boolean true indique que l'on a à faire au premier appel de cette fonction récursive. |
* @return string le code XHTML constituant l'arbre des menus à administrer. |
*/ |
function ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $id_menu_a_deployer, $bln_premier_appel = true) |
{ |
// Initialisation des variables : |
$retour = ''; |
// 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 gm_ce_site = '.$adme_site_id.' '. |
'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)); |
} |
// Gestion du stockage ou déstockage des menus ouverts |
if (($adme_action == ADME_LG_ACTION_DEPLIER || $adme_action == ADME_LG_ACTION_CLASSIQUE_AJOUTER) && $id_menu_a_deployer != 0) { |
$_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id] = $adme_menu_id; |
} |
if ($adme_action == ADME_LG_ACTION_PLIER && $id_menu_a_deployer != 0) { |
unset($_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id]); |
foreach ($_SESSION['adme_menus_classiques_ouverts'] as $val) { |
if (GEN_etreAncetre($adme_menu_id, $val)) { |
unset($_SESSION['adme_menus_classiques_ouverts'][$val]); |
} |
} |
} |
// Gestion affichage des menus |
if ($resultat_sous_menu->numRows() > 0) { |
// Ici, on sait qu'un menu a des sous menus, on commence par l'afficher: |
if ($bln_premier_appel == false) { |
$retour .= '<li>'."\n"; |
if (GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || |
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_DEPLIER) || |
isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer]) |
){ |
// Affiche un - |
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 1); |
} else if ( !GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || |
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_PLIER) || |
!isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer]) |
){ |
// Affiche un + |
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 2); |
} |
} |
if ($bln_premier_appel == true || GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) || |
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_DEPLIER) || |
isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer]) |
){ |
$retour .= '<ul class="menu_classique">'."\n"; |
while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) { |
$retour .= ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $ligne_sous_menu->gm_id_menu, false); |
} |
$retour .= '</ul>'."\n"; |
} |
if ($bln_premier_appel == false) { |
$retour .= '</li>'."\n"; |
} |
} else if ($resultat_sous_menu->numRows() == 0 && $bln_premier_appel == false) { |
$retour .= '<li>'."\n"; |
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 0); |
$retour .= '</li>'."\n"; |
} |
return $retour; |
} |
/** Fonction ADME_retournerXhtmlMenuClassique() - Effectue une sortie d'un menu en XHTML |
* |
* Retourne le XHTML d'une ligne de l'arbre des menus "classiques" permettant de l'administer. |
* Ancien nom : menu_toHtml(). |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @param integer l'identifiant du site à administrer. |
* @param integer l'identifiant du menu à administrer. |
* @param integer 0 indique que le menu ne possède pas de fils, 1 qu'il faut afficher un - et 2 un +. |
* @return string une ligne de liste XHTML |
*/ |
function ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $int_deplier,$est_traduction=false,$menu_traduction_defaut=0) |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation des variables |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération des infos concernant l'administrateur d'un menu |
$requete = 'SELECT gen_menu.*, ga_prenom '. |
'FROM gen_menu, gen_annuaire '. |
'WHERE gm_id_menu = '.$adme_menu_id.' '. |
'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); |
//------------------------------------------------------------------------------------------------------------------- |
// Recupération des infos de l'appli du menu courant. |
$ligne_app = GEN_retournerInfoAppliMenu($db, $adme_menu_id); |
//------------------------------------------------------------------------------------------------------------------- |
// XHTML image plier-déplier |
$url->addQueryString('adme_site_id', $adme_site_id); |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$xhtml_pd = ''; |
if(!$est_traduction) { |
$xhtml_pd .= '<input type="checkbox" name="adme_id_menu_deplacement['.$adme_menu_id.']" id="adme_id_menu_deplacement" value="'.$adme_menu_id.'" /> ' ; |
} |
if ($int_deplier != 0) { |
if ($int_deplier == 1) { |
// Afficher un - |
$image_plier_deplier = ADME_IMAGE_MOINS; |
$alt = ADME_LG_ACTION_PLIER_ALT; |
$url->addQueryString('adme_action', ADME_LG_ACTION_PLIER); |
$url_plier_deplier = $url->getURL(); |
} else if ($int_deplier == 2) { |
// Afficher un + |
$image_plier_deplier = ADME_IMAGE_PLUS; |
$alt = ADME_LG_ACTION_DEPLIER_ALT; |
$url->addQueryString('adme_action', ADME_LG_ACTION_DEPLIER); |
$url_plier_deplier = $url->getURL(); |
} |
$xhtml_pd .= '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'. |
'<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'. |
'</a>'.' '."\n"; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// XHTML du nom du menu et de ses infos |
$xhtml_info = htmlentities(empty($ligne->gm_nom) ? ADME_LG_PARENTHESE_OUVRANTE.$ligne->gm_nom.ADME_LG_PARENTHESE_FERMANTE : $ligne->gm_nom); |
$xhtml_info .= ' '; |
if (!isset($ligne_app->gap_nom)) { |
$gap_nom=''; |
} |
else { |
$gap_nom=$ligne_app->gap_nom; |
} |
$xhtml_info .= ADME_LG_PARENTHESE_OUVRANTE.$gap_nom.' '.ADME_LG_SLASH.' '.$ligne->ga_prenom.ADME_LG_PARENTHESE_FERMANTE; |
$xhtml_info .= ' '."\n"; |
//------------------------------------------------------------------------------------------------------------------- |
// XHTML actions |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_MODIFIER); |
$xhtml_action = '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_MODIFIER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_VOIR.'" alt="'.ADME_LG_ACTION_CLASSIQUE_MODIFIER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
if (!$est_traduction) { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_MONTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_MONTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.ADME_LG_ACTION_CLASSIQUE_MONTER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_DESCENDRE); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_DESCENDRE_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.ADME_LG_ACTION_CLASSIQUE_DESCENDRE_ALT.'" />'. |
'</a> '."\n"; |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_DIMINUER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_DIMINUER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_GAUCHE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_DIMINUER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_AUGMENTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_AUGMENTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_DROITE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_AUGMENTER_ALT.'" />'. |
'</a> '."\n"; |
} |
$url->removeQueryString('adme_action'); |
if (!$est_traduction) { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_SUPPRIMER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TITLE.'" onclick="javascript:return confirm(\''.ADME_LG_ACTION_SUPPRIMER_CONFIRMATION.'\');">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_ALT.'" />'. |
'</a> '."\n"; |
} |
else { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_TITLE.'" onclick="javascript:return confirm(\''.ADME_LG_ACTION_SUPPRIMER_CONFIRMATION.'\');">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_ALT.'" />'. |
'</a> '."\n"; |
} |
$url->removeQueryString('adme_action'); |
if (!$est_traduction) { |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_AJOUTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_AJOUTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="'.ADME_LG_ACTION_CLASSIQUE_AJOUTER_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
$url->removeQueryString('adme_action'); |
// Si le menu à une application liée on regarde s'il y a une interface d'administration. |
if (!isset($ligne_app->gap_id_application)) { |
$gap_id_application=0; |
} |
else { |
$gap_id_application=$ligne_app->gap_id_application; |
} |
if ($gap_id_application != 0 && GEN_verifierPresenceInterfaceAdmin($db, $gap_id_application)) { |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_ADMINISTRER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_ADMINISTRER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TEXTE.'" alt="'.ADME_LG_ACTION_ADMINISTRER_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
if (!$est_traduction) { |
$requete_traduction = 'SELECT gmr_id_menu_02, gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_menu_02 = gm_id_menu '. |
'AND gmr_id_valeur = 2 ';// 2 = "avoir traduction" |
$resultat_traduction = $db->query($requete_traduction); |
(DB::isError($resultat_traduction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)) |
: ''; |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_TRADUIRE); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_TRADUIRE_TITLE.'">'. |
ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ALT. |
'</a> '."\n"; |
// Restriction possible à une langue si pas traduit |
if ($resultat_traduction->numRows() == 0 ) { |
$requete_lang = 'SELECT * FROM gen_i18n '; |
$resultat_lang = $db->query($requete_lang); |
(DB::isError($resultat_lang)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_lang->getMessage(), $requete_lang)) : ''; |
$requete_restriction = 'SELECT gmr_id_menu_02 '. |
'FROM gen_menu_relation '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 106 ';// 106 restriction de menu |
$resultat_restriction = $db->query($requete_restriction); |
(DB::isError($resultat_restriction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_restriction->getMessage(), $requete_restriction)) |
: ''; |
if ($resultat_restriction->numRows() == 0 ) { |
$restriction=0; |
} |
else { |
$restriction=1; |
} |
while ($ligne_lang = $resultat_lang->fetchRow(DB_FETCHMODE_OBJECT) ) { |
if (($restriction) && ($ligne->gm_ce_i18n==$ligne_lang->gi_id_i18n)) { |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_OUVRIR); |
$url->addQueryString('zone',$ligne_lang->gi_id_i18n); |
$xhtml_action .= '<i><b><a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_OUVRIR_TITLE.'">'. |
$ligne_lang->gi_id_i18n. |
'</a></b></i> '."\n"; |
} |
else { |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_LIMITER); |
$url->addQueryString('zone',$ligne_lang->gi_id_i18n); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_LIMITER_TITLE.'">'. |
$ligne_lang->gi_id_i18n. |
'</a> '."\n"; |
} |
} |
} |
} |
else { |
if ($menu_traduction_defaut==$adme_menu_id) { |
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
' '."\n"; |
} |
else { |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
} |
$xhtml_traduction=''; |
// $id_langue = $GLOBALS['_GEN_commun']['i18n']; |
$requete_traduction = 'SELECT gmr_id_menu_02, gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_menu_02 = gm_id_menu '. |
'AND gmr_id_valeur = 2 ';// 2 = "avoir traduction" |
$resultat_traduction = $db->query($requete_traduction); |
(DB::isError($resultat_traduction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)) |
: ''; |
if ($resultat_traduction->numRows() > 0 ) { |
$requete_traduction_defaut = 'SELECT gmr_id_menu_02 '. |
'FROM gen_menu_relation '. |
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 traduction par defaut |
$resultat_traduction_defaut = $db->query($requete_traduction_defaut); |
(DB::isError($resultat_traduction_defaut)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction_defaut)) |
: ''; |
if ($resultat_traduction_defaut->numRows() == 0 ) { |
$menu_traduction_defaut=0; |
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
' '."\n"; |
} |
else { |
$ligne_traduction_defaut = $resultat_traduction_defaut->fetchRow(DB_FETCHMODE_OBJECT); |
$menu_traduction_defaut=$ligne_traduction_defaut->gmr_id_menu_02; |
if ($menu_traduction_defaut!=$adme_menu_id) { |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
'</a>'.' '."\n"; |
} |
else { |
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'. |
' '."\n"; |
} |
} |
while ($ligne_resultat = $resultat_traduction->fetchRow(DB_FETCHMODE_OBJECT)) { |
$xhtml_traduction.="<br><em>".$ligne_resultat->gm_ce_i18n.": ".ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $ligne_resultat->gmr_id_menu_02, 0,true,$menu_traduction_defaut)."</em>"; |
} |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Envoi du menu. |
//------------------------------------------------------------------------------------------------------------------- |
$retour = $xhtml_pd.$xhtml_info.$xhtml_action.$xhtml_traduction; |
return $retour; |
} |
/** Fonction ADME_ajouterMenuClassique() - Ajoute un sous menu au menu courant |
* |
* Cette fonction permet d'ajouter un sous-menu de type "classique" au menu courant. |
* Ancien nom : addMenu() |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear d'authentification. |
* @param integer l'identifiant du site à administrer. |
* @param integer l'identifiant du menu à administrer. |
* @return void le menu classique est ajouté à la base de données. |
*/ |
function ADME_ajouterMenuClassique($db, $auth, $adme_site_id, $adme_menu_id) |
{ |
$url=$GLOBALS['_GEN_commun']['url']; |
$url->removeQueryString('adme_action'); |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur le site principal. |
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id); |
if ($objet_site == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'ID du site : '.$adme_site_id.'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu'); |
$auteur = $auth->getAuthData('ga_prenom').' '.$auth->getAuthData('ga_nom'); |
//---------------------------------------------------------------------------- |
// Ajout du nouveau menu |
$requete = 'INSERT INTO gen_menu '. |
'SET gm_id_menu = '.$nouveau_id_menu.', '. |
'gm_ce_site = '.$adme_site_id.', '. |
'gm_ce_i18n = "'.$objet_site->gs_ce_i18n.'", '. |
'gm_ce_application = 0, '. |
'gm_code_num = '.$nouveau_id_menu.', '. |
'gm_code_alpha = "menu_'.$nouveau_id_menu.'", '. |
'gm_nom = "menu_'.$nouveau_id_menu.'", '. |
'gm_titre = "menu_'.$nouveau_id_menu.'", '. |
'gm_description_resume = "menu_'.$nouveau_id_menu.'", '. |
'gm_auteur = "'.$auteur.'", '. |
'gm_editeur = "'.$objet_site->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_fin_validite = "0000-00-00 00:00:00", '. |
'gm_date_copyright = "'.date('Y-00-00 00:00:00').'", '. |
'gm_categorie = "menu", '. |
'gm_ce_admin = '.$auth->getAuthData('ga_id_administrateur').' ' |
; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation "père" |
if (!isset($adme_menu_id) && empty($adme_menu_id)) { |
$adme_menu_id = 0 ;// Identifiant du père |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur la hierarchie du menu |
$requete = 'SELECT GMR01.gmr_ordre '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '. |
'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'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu = $ligne->gmr_ordre + 1; |
$resultat->free(); |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_02 = '.$adme_menu_id.', '. |
'gmr_id_menu_01 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 1, '. |
'gmr_ordre = '.$nouveau_ordre_menu; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->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 '.// 100 = type menu "classique" |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gm_ce_site = '.$adme_site_id.' '. |
'ORDER BY gmr_ordre DESC'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu_classique = $ligne->gmr_ordre + 1; |
$resultat->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 ADME_afficherFormMenuClassique() - Affiche le formulaire pour un menu classique |
* |
* Utilise HTML_QuickForm pour générer le formulaire. |
* Ancien nom : showMenu() |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'url de base. |
* @param integer l'identifiant du site à administrer. |
* @param integer l'identifiant du menu à administrer. |
* @param array le tableau associatif des valeurs à afficher dans le formulaire. |
* @return string le formulaire XHTML. |
*/ |
function ADME_afficherFormMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $aso_valeurs,$traduction=FALSE) |
{ |
// Initialisation de variable |
$url->addQueryString('adme_site_id', $adme_site_id); |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$script = 'function switchMenu(obj) { |
var el = document.getElementById(obj); |
if(el.style.display != "block") |
{ |
el.style.display = "block"; |
} |
else |
{ |
el.style.display = "none"; |
} |
}'; |
GEN_stockerCodeScript($script); |
// Nous sommes toujours en modification car un menu est ajouté automatiquement! |
// Récupération des informations du menu concerné. |
if (!isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) { |
$aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC); |
if ($aso_valeurs === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'. |
'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Requete pour récupérer les informations issues des relations du site à modifier |
$ligne = GEN_lireInfoMenuRelation($db, $adme_menu_id, $id_valeur = 101); |
$aso_valeurs['defaut'] = false; |
if (isset($ligne) && !empty($ligne)) { |
if ($ligne->gmr_id_valeur != false) {// 101 = site par défaut |
$aso_valeurs['defaut'] = true; |
} |
} |
} |
// Titre de la page |
if ($traduction) { |
$retour = '<h1>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL_TRADUCTION.'</h1>'."\n"; |
} |
else { |
$retour = '<h1>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL.'</h1>'."\n"; |
} |
$retour .= '<p class="adme_menu_id" >'.ADME_LG_FORM_MENU_ID.'<span id="adme_menu_id">'.$aso_valeurs['gm_id_menu'].'</span></p>'."\n"; |
// Création du formulaire |
// Notes : Quickform semble remplacer les & des & à nouveau par des & solution utiliser str_replace()... |
$form =& new HTML_QuickForm('form_menu_classique', 'post', str_replace('&', '&', $url->getUrl())); |
$tab_index = 1000; |
$squelette =& $form->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'{content}'."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '<p class="formulaire_element"><span class="form_label">'."\n". |
'{label}'."\n". |
'<!-- BEGIN required --><span style="color:red; width:5px; margin:0; padding:0;">*</span><!-- END required -->'."\n". |
'</span>'."\n".'{element}'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</p>'."\n"); |
$squelette->setGroupElementTemplate('<p style="display:inline">{element}</p>', 'form_boutons'); |
$squelette->setRequiredNoteTemplate("\n".'<p class="symbole_obligatoire">* : {requiredNote}</p>'."\n"); |
//Note pour les erreurs javascript |
$form->setJsWarnings('Erreur de saisie', 'Veuillez verifier vos informations saisies'); |
// Note de fin de formulaire |
$form->setRequiredNote(ADME_LG_FORM_TXT_CHP_OBLIGATOIRE); |
$partie_menu_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG.'</legend>'."\n"; |
$form->addElement('html', $partie_menu_debut); |
$id = 'gm_code_alpha'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 50); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CODE_ALPHA.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_CODE_ALPHA, 'required', '', 'client'); |
$id = 'gm_nom'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_NOM.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_NOM, 'required', '', 'client'); |
$form->applyFilter($id, 'trim'); |
$id = 'gm_description_resume'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 50); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_INFO_BULLE.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_INFO_BULLE, 'required', '', 'client'); |
// Requête sur les applications |
$requete = 'SELECT gap_id_application, gap_nom '. |
'FROM gen_application '. |
'WHERE gap_bool_applette = 0 '. |
'ORDER BY gap_nom ASC';// 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.'">'.ADME_LG_FORM_MENU_APPLI.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
if ($traduction) { |
// Recherche liste des menu deja traduits |
$requete = 'SELECT distinct gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_01 = ' . $adme_menu_id .' '. |
'AND gm_id_menu = gmr_id_menu_02 '. |
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction" |
$resultat = $db->query($requete) ; |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
$not_in_langue=''; |
if ( $resultat->numRows() == 0 ) { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
else { |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$not_in_langue="'".$ligne->gm_ce_i18n."'".",".$not_in_langue; |
$end="'".$ligne->gm_ce_i18n."'"; |
} |
if ($not_in_langue) { |
$not_in_langue="'".$aso_valeurs['gm_ce_i18n']."'".",".$not_in_langue; |
$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')'; |
} |
else { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
} |
$resultat->free(); |
$requete = "SELECT * FROM gen_i18n where ".$not_in_langue; |
/*$requete = 'SELECT * '. |
'FROM gen_i18n ';*/ |
$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->gi_id_i18n] = $ligne->gi_id_i18n; |
} |
$resultat->free(); |
$id = 'gs_ce_i18n'; |
$aso_attributs = array('id' => $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'Langue : '.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
} |
$id = 'gm_titre'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE.'</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.'">'.ADME_LG_FORM_MENU_MOT_CLE.'</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.'">'.ADME_LG_FORM_MENU_DESCRIPTION.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$partie_menu_fin = "\n".'</fieldset>'."\n"; |
$form->addElement('html', $partie_menu_fin); |
//Lien javascript pour cacher les options compliquées |
$form->addElement('html', '<a href="#" onclick="switchMenu(\'config_avancee\');" title="'.ADME_VOIR_CONFIG_AVANCEE.'">'.ADME_VOIR_CONFIG_AVANCEE.'</a><br />'."\n"); |
//début de la div cachée pour les options compliquées----------------------------------------------- |
$form->addElement('html', '<div id="config_avancee" style="display:none;">'); |
$partie_entete_debut = '<fieldset>'."\n".'<legend>'.ADME_CONFIG_AVANCEE.'</legend>'."\n"; |
$form->addElement('html', $partie_entete_debut); |
$id = 'gm_code_num'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 5, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CODE_NUM.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_CODE_NUM, 'required', '', 'client'); |
$id = 'gm_raccourci_clavier'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_RACCOURCI.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'defaut'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
if ($aso_valeurs[$id] === true) { |
$aso_attributs['checked'] = 'checked'; |
} |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DEFAUT.'</label>'; |
$form->addElement('checkbox', $id, $label, '', $aso_attributs); |
$id = 'gm_fichier_squelette'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_FICHIER_SQUELETTE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_application_arguments'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_APPLI_ARGUMENT.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_robot'; |
$aso_options = array( 'index,follow' => ADME_LG_FORM_MENU_INDEX_FOLLOW, |
'index' => ADME_LG_FORM_MENU_INDEX, |
'noindex' => ADME_LG_FORM_MENU_NOINDEX, |
'noindex,nofollow' => ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW, |
'' => ADME_LG_FORM_MENU_INDEX_VIDE); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ROBOT.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_titre_alternatif'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE_ALTERNATIF.'</label>'; |
$form->addElement('text', $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.'">'.ADME_LG_FORM_MENU_TABLE_MATIERE.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_source'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_SOURCE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_auteur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_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.'">'.ADME_LG_FORM_MENU_CONTRIBUTEUR.'</label>'; |
$form->addElement('textarea', $id, $label, $aso_attributs); |
$id = 'gm_editeur'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 65000); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_EDITEUR.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_date_creation'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DATE_CREATION.'</label>'; |
$form->addElement('text', $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.'">'.ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT.'</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.'">'.ADME_LG_FORM_MENU_DATE_VALIDITE_FIN.'</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.'">'.ADME_LG_FORM_MENU_DATE_COPYRIGHT.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_licence'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_URL_LICENCE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_categorie'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CATEGORIE.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_public'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_PUBLIC.'</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.'">'.ADME_LG_FORM_MENU_PUBLIC_NIVEAU.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_spatiale'; |
$aso_options = array( '' => ADME_LG_FORM_MENU_ZG_VIDE, |
'iso3166' => ADME_LG_FORM_MENU_ZG_ISO, |
'Point' => ADME_LG_FORM_MENU_ZG_POINT, |
'Box' => ADME_LG_FORM_MENU_ZG_DC, |
'TGN' => ADME_LG_FORM_MENU_ZG_GTGN); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ZG_TYPE.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_spatiale'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ZG_VALEUR.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
$id = 'gm_ce_type_portee_temporelle'; |
$aso_options = array( '' => ADME_LG_FORM_MENU_TMP_VIDE, |
'W3CDTF' => ADME_LG_FORM_MENU_TMP_W3C, |
'Period' => ADME_LG_FORM_MENU_TMP_DC); |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_TYPE.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
$id = 'gm_portee_temporelle'; |
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100); |
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_VALEUR.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
// Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif |
if (!isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) { |
$requete_admin = 'SELECT * '. |
'FROM gen_annuaire '. |
'WHERE ga_id_administrateur = '.$aso_valeurs['gm_ce_admin']; |
$resultat_admin = $db->query($requete_admin); |
if (DB::isError($resultat_admin)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin)); |
} |
$ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT); |
$info_admin = '<p class="info">Dernière modification par '.$ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'</p>'; |
$form->addElement('html', $info_admin); |
} |
//fin de la div cachée pour les options compliquées------------------------------------------------- |
$form->addElement('html', "\n".'</fieldset>'."\n".'</div>'); |
$buttons[] = &HTML_QuickForm::createElement('link', 'annuler', ADME_LG_FORM_MENU_ANNULER, |
str_replace ("&", "&", $url->getURL()), ADME_LG_FORM_MENU_ANNULER); // Le preg_replace contourne un pb de QuickForm et Net_URL |
// qui remplacent deux fois les & par des & |
//Bouton de validation du formulaire |
if ($traduction) { |
$buttons[] = &HTML_QuickForm::createElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION, ADME_LG_FORM_MENU_VALIDER); |
$form->addElement('hidden', 'adme_site_id', $adme_site_id); |
} |
else { |
$buttons[] = &HTML_QuickForm::createElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER, ADME_LG_FORM_MENU_VALIDER); |
} |
$form->addGroup($buttons, 'form_boutons', null, ' '); |
$form->addElement('hidden', 'gm_id_menu', $aso_valeurs['gm_id_menu']); |
// Instanciation avec les valeur par défaut |
$form->setDefaults($aso_valeurs); |
$retour .= $form->toHTML()."\n"; |
return $retour; |
} |
/** Fonction ADME_validerFormAjouterMenuClassique() - Valide les données issues du formulaire pour gen_menu. |
* |
* Cette fonction valide les données à ajouter dans la table gen_menu. |
* |
* @param PEAR::DB l'objet pear de connexion à la base de données. |
* @param string le tableau contenant les valeurs du formulaire. |
* @return string retourne les messages d'erreurs sinon rien. |
*/ |
function ADME_validerFormAjouterMenuClassique($db, $aso_valeurs) |
{ |
$message = ''; |
if ($aso_valeurs['gm_code_alpha'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_ALPHA.'</p>'; |
} |
if ($aso_valeurs['gm_code_num'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_NUM.'</p>'; |
} |
if ($aso_valeurs['gm_nom'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_NOM.'</p>'; |
} |
if ($aso_valeurs['gm_description_resume'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_INFO_BULLE.'</p>'; |
} |
return $message; |
} |
/** Fonction ADME_validerFormTraduireMenuClassique() - Valide les données issues du formulaire de traduction de menu |
* |
* Cette fonction valide les données à ajouter dans la table gen_menu. |
* |
* @param PEAR::DB l'objet pear de connexion à la base de données. |
* @param string le tableau contenant les valeurs du formulaire. |
* @return string retourne les messages d'erreurs sinon rien. |
*/ |
function ADME_validerFormTraduireMenuClassique($db, $aso_valeurs) |
{ |
$message = ''; |
if ($aso_valeurs['gm_code_alpha'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_ALPHA.'</p>'; |
} |
if ($aso_valeurs['gm_code_num'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_NUM.'</p>'; |
} |
if ($aso_valeurs['gm_nom'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_NOM.'</p>'; |
} |
if ($aso_valeurs['gm_description_resume'] == '') { |
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_INFO_BULLE.'</p>'; |
} |
return $message; |
} |
/** Fonction ADME_modifierMenuClassique() - Met à jour les infos d'un menu classique |
* |
* Fonction modifiant un menu commun à Papyrus. |
* Ancien nom : commitUpdateLevel() |
* |
* @param object objet Pear de connection à la base de données. |
* @param object objet Pear représentant l'authentification. |
* @param integer l'identifiant du menu à administrer. |
* @param array le tableau des valeurs à modifier. |
* @return void les changement sont fait dans la base de données. |
*/ |
function ADME_modifierMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs) |
{ |
$requete = 'UPDATE gen_menu SET '. |
'gm_ce_application = '.$aso_valeurs['gm_ce_application'].', '. |
'gm_application_arguments = "'.$aso_valeurs['gm_application_arguments'].'", '. |
'gm_fichier_squelette = "'.$aso_valeurs['gm_fichier_squelette'].'", '. |
'gm_code_num = '.$aso_valeurs['gm_code_num'].', '. |
'gm_code_alpha = "'.$aso_valeurs['gm_code_alpha'].'", '. |
'gm_nom = "'.$aso_valeurs['gm_nom'].'", '. |
'gm_raccourci_clavier = "'.$aso_valeurs['gm_raccourci_clavier'].'", '. |
'gm_robot = "'.$aso_valeurs['gm_robot'].'", '. |
'gm_titre = "'.$aso_valeurs['gm_titre'].'", '. |
'gm_titre_alternatif = "'.$aso_valeurs['gm_titre_alternatif'].'", '. |
'gm_mots_cles = "'.$aso_valeurs['gm_mots_cles'].'", '. |
'gm_description_libre = "'.$aso_valeurs['gm_description_libre'].'", '. |
'gm_description_resume = "'.$aso_valeurs['gm_description_resume'].'", '. |
'gm_description_table_matieres = "'.$aso_valeurs['gm_description_table_matieres'].'", '. |
'gm_source = "'.$aso_valeurs['gm_source'].'", '. |
'gm_auteur = "'.$aso_valeurs['gm_auteur'].'", '. |
'gm_contributeur = "'.$aso_valeurs['gm_contributeur'].'", '. |
'gm_editeur = "'.$aso_valeurs['gm_editeur'].'", '. |
'gm_date_creation = "'.$aso_valeurs['gm_date_creation'].'", '. |
'gm_date_debut_validite = "'.$aso_valeurs['gm_date_debut_validite'].'", '. |
'gm_date_fin_validite = "'.$aso_valeurs['gm_date_fin_validite'].'", '. |
'gm_date_copyright = "'.$aso_valeurs['gm_date_copyright'].'", '. |
'gm_licence = "'.$aso_valeurs['gm_licence'].'", '. |
'gm_categorie = "'.$aso_valeurs['gm_categorie'].'", '. |
'gm_public = "'.$aso_valeurs['gm_public'].'", '. |
'gm_public_niveau = "'.$aso_valeurs['gm_public_niveau'].'", '. |
'gm_ce_type_portee_spatiale = "'.$aso_valeurs['gm_ce_type_portee_spatiale'].'", '. |
'gm_portee_spatiale = "'.$aso_valeurs['gm_portee_spatiale'].'", '. |
'gm_ce_type_portee_temporelle = "'.$aso_valeurs['gm_ce_type_portee_temporelle'].'", '. |
'gm_portee_temporelle = "'.$aso_valeurs['gm_portee_temporelle'].'", '. |
'gm_ce_admin = "'.$auth->getAuthData('ga_id_administrateur').'" '. |
'WHERE gm_id_menu = '.$adme_menu_id; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Gestion de la relation menu par défaut |
if (isset($aso_valeurs['defaut']) && $aso_valeurs['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 = '.$adme_menu_id.' '. |
'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)); |
} |
$ligne_menu_supr_defaut = $resultat_menu_supr_defaut->fetchRow(DB_FETCHMODE_OBJECT); |
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 = '.$ligne_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)); |
} |
} |
$resultat_menu_supr_defaut->free(); |
// Requete d'insertion de la relation menu par défaut |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_01 = '.$adme_menu_id.', '. |
'gmr_id_menu_02 = '.$adme_menu_id.', '. |
'gmr_id_valeur = 101, '. |
'gmr_ordre = NULL '; |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
} |
} |
/** Fonction ADME_deplacerMenuClassique() - Permet de déplacer un menu dans la hiérarchie. |
* |
* Permet de déplacer un menu dans la hiérarchie des menus classiques. |
* Ancien nom : moveMenu() |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site administré. |
* @param integer 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 ADME_deplacerMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_monter) |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id); |
if ($objet_site == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'. |
'Id du site : '. $adme_site_id .'<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, $adme_menu_id, '1'); |
if ($ligne_menu_courant_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération de l'identifiant du menu pére |
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id); |
if ($id_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<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, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$objet_site->gs_id_site.' '. |
'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 ($bln_monter) { |
$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'; |
} |
$resultat_menu = $db->query($requete); |
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : ''; |
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat_menu->free(); |
//------------------------------------------------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $ligne_menu) { |
return null; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Mise à jour des relations du menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.$ligne_menu->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" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->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 = '.$ligne_menu->id_menu_remplace.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
} |
/** Fonction ADME_deplacerMenuClassiqueVersSite() - Permet de deplacer des menus classique vers un autre site principal |
* |
* Permet de traduire un menu classique |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site de départ. |
* @param integer identifiant du site d'arrivée. |
* @param mixed identifiant des menus à déplacer. |
* @return |
*/ |
function ADME_deplacerMenuClassiqueVersSite($db,$id_site_depart,$id_site_arrivee,$id_menu_a_deplacer) { |
// initialisation de l'ordre pour les noeuds à déplacer |
$ordre_max = 0 ; |
$id_menu_pour_ordre = reset($id_menu_a_deplacer) ; |
// on récupère l'ordre maximum des différents sites pour ajouter les menus déplacés à la fin |
// TODO: rajouter un group by par le type de relation |
$requete_ordre_menu = 'SELECT MAX(gmr_ordre) as ordre_max '. |
'FROM gen_menu_relation '. |
'LEFT JOIN gen_menu '. |
'ON (gen_menu_relation.gmr_id_menu_01 = gen_menu.gm_id_menu '. |
'AND gen_menu.gm_ce_site = '.$id_site_arrivee.') '. |
'WHERE gmr_id_valeur = 1 '. |
'AND gmr_id_menu_02 = 0 '; |
$resultat_ordre_menu = $db->query($requete_ordre_menu); |
(DB::isError($resultat_ordre_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete_ordre_menu)) : ''; |
$ligne = $resultat_ordre_menu->fetchRow(DB_FETCHMODE_ORDERED) ; |
$ordre_max = $ligne[0]; |
$fp = fopen('dump.html','a+'); |
fwrite($fp,'<pre>'.(print_r($id_menu_a_deplacer,true)).'</pre>'); |
fclose($fp); |
while(count($id_menu_a_deplacer) != 0) { |
$ordre_max++ ; |
// on extrait et supprime ce premier élément |
$id_menu_en_cours = array_shift($id_menu_a_deplacer) ; |
// on déplace le menu dans le nouveau site |
$requete_deplacement = 'UPDATE gen_menu '. |
'SET gm_ce_site = '.$id_site_arrivee.' '. |
'WHERE gm_id_menu = '.$id_menu_en_cours.' ' ; |
$resultat_deplacement = $db->query($requete_deplacement); |
(DB::isError($resultat_deplacement)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete_deplacement)) : ''; |
// on lui affecte un ordre dans le nouveau site et un père de 0 |
$requete_deplacement = 'UPDATE gen_menu_relation '. |
'SET gmr_ordre = '.$ordre_max.', '. |
'gmr_id_menu_02 = 0 '. |
'WHERE gmr_id_menu_01 = '.$id_menu_en_cours.' '. |
'AND gmr_id_valeur = 1' ; |
$resultat_deplacement = $db->query($requete_deplacement); |
(DB::isError($resultat_deplacement)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete_deplacement)) : ''; |
$fp = fopen('dump.html','a+'); |
fwrite($fp,'id_menu_a_deplacer avant : '.(print_r($id_menu_a_deplacer,true))); |
// on fait la différence entre le tableaux des menus à deplacer et le résultat du déplacement des fils pour ne pas déplacer |
// deux fois des mêmes menus |
$id_fils_deplaces = array() ; |
ADME_deplacerFilsEtTraductionsMenuClassique($db,$id_site_arrivee,$id_menu_en_cours,$id_fils_deplaces); |
$id_menu_a_deplacer = array_diff($id_menu_a_deplacer, $id_fils_deplaces) ; |
fwrite($fp,'id_fils_deplaces : '.(print_r($id_fils_deplaces,true))); |
fwrite($fp,'id_menu_a_deplacer après : '.(print_r($id_menu_a_deplacer,true))); |
fclose($fp); |
} |
} |
/** Fonction ADME_deplacerFilsMenuClassique() - Permet de traduire un menu classique |
* |
* Permet de traduire un menu classique |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site d'arrivee. |
* @param integer identifiant du menu pere. |
* @param integer identifiant de la relation (père ou traduction). |
* @param mixed le tableau contenant tous les fils déjà déplacés (attention c'est une référence) |
* @return mixed un tableau contenant les id des fils deplaces. |
*/ |
function ADME_deplacerFilsEtTraductionsMenuClassique($db, $id_site_arrivee, $id_menu_pere, &$tableau_fils) { |
// Récupération d'infos sur le site principal d'arrivée. |
$objet_site_arrivee = GEN_lireInfoSitePrincipal($db, $id_site_arrivee); |
if ($objet_site_arrivee == false) { |
return ('ERREUR Papyrus Administrateur de Menus : impossible de lire les infos du site d\'arrivée.<br />'. |
'ID du site : '.$id_site_arrivee.'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// on fait la requete qui selectionne tous les enfants du père passé en paramètre |
$requete_fils = 'SELECT gmr_id_menu_01 '. |
'FROM gen_menu_relation '. |
'WHERE gmr_id_menu_02 = '.$id_menu_pere.' '. |
'AND gmr_id_valeur = 1 '. |
'ORDER BY gmr_ordre' ; |
$resultat_fils = $db->query($requete_fils); |
(DB::isError($resultat_fils)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_fils->getMessage(), $requete_fils)) : ''; |
$id_fils_tab = array(); |
$i = 0 ; |
$id_fils_string = '' ; |
// pour chacun des fils |
while($id_fils = $resultat_fils->fetchRow(DB_FETCHMODE_ORDERED)) { |
// on ajoute son id au tableau |
$id_fils_tab[$i] = $id_fils[0] ; |
$i++; |
$tableau_fils[] = $id_fils[0] ; |
// on concatère l'id du fils pour la requete de déplacement des fils |
$id_fils_string .= $id_fils[0].',' ; |
} |
$id_fils_string = rtrim($id_fils_string,','); |
if($id_fils_string != '') { |
// on déplace tous les fils |
$requete_deplacement = 'UPDATE gen_menu SET '. |
'gm_ce_site = '.$id_site_arrivee.' '. |
'WHERE gm_id_menu IN ('.$id_fils_string.') '; |
$resultat_deplacement = $db->query($requete_deplacement); |
(DB::isError($resultat_deplacement)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_deplacement->getMessage(), $requete_deplacement)) : ''; |
} |
// pour chacun des fils |
foreach($id_fils_tab as $id_fils_en_cours) { |
// et on rajoute le tableau de ses fils à la suite en relançant la fonction récursivement |
ADME_deplacerFilsEtTraductionsMenuClassique($db,$id_site_arrivee,$id_fils_en_cours,$tableau_fils) ; |
} |
// on déplace toutes les traductions |
$requete_deplacement_traductions = 'UPDATE gen_menu '. |
'SET gm_ce_site = '.$id_site_arrivee.' '. |
'WHERE gm_id_menu IN ( '. |
'SELECT gmr_id_menu_01 '. |
'FROM gen_menu_relation '. |
'WHERE gmr_id_menu_02 = '.$id_menu_pere.' '. |
'AND gmr_id_valeur = 2) ' ; |
$resultat_deplacement_traductions = $db->query($requete_deplacement_traductions); |
(DB::isError($resultat_deplacement_traductions)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_deplacement_traductions->getMessage(), $requete_deplacement_traductions)) : ''; |
} |
/** Fonction ADME_traduireMenuClassique() - Permet de traduire un menu classique |
* |
* Permet de traduire un menu classique |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site administré. |
* @param integer identifiant du menu à déplacer. |
* @return void modifie la base de données. |
*/ |
function ADME_traduireMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs) { |
// Récupération d'infos sur le site principal. |
$objet_site = GEN_lireInfoSitePrincipal($db, $aso_valeurs['adme_site_id']); |
if ($objet_site == false) { |
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'. |
'ID du site : '.$aso_valeurs['adme_site_id'].'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu'); |
$auteur = $auth->getAuthData('ga_prenom').' '.$auth->getAuthData('ga_nom'); |
$requete = 'INSERT INTO gen_menu '. |
'SET gm_id_menu = '.$nouveau_id_menu.', '. |
'gm_ce_site = '.$aso_valeurs['adme_site_id'].', '. |
'gm_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '. |
'gm_ce_application = '.$aso_valeurs['gm_ce_application'].', '. |
'gm_application_arguments = "'.$aso_valeurs['gm_application_arguments'].'", '. |
'gm_fichier_squelette = "'.$aso_valeurs['gm_fichier_squelette'].'", '. |
'gm_code_num = '.$aso_valeurs['gm_code_num'].', '. |
'gm_code_alpha = "'.$aso_valeurs['gm_code_alpha'].'", '. |
'gm_nom = "'.$aso_valeurs['gm_nom'].'", '. |
'gm_raccourci_clavier = "'.$aso_valeurs['gm_raccourci_clavier'].'", '. |
'gm_robot = "'.$aso_valeurs['gm_robot'].'", '. |
'gm_titre = "'.$aso_valeurs['gm_titre'].'", '. |
'gm_titre_alternatif = "'.$aso_valeurs['gm_titre_alternatif'].'", '. |
'gm_mots_cles = "'.$aso_valeurs['gm_mots_cles'].'", '. |
'gm_description_libre = "'.$aso_valeurs['gm_description_libre'].'", '. |
'gm_description_resume = "'.$aso_valeurs['gm_description_resume'].'", '. |
'gm_description_table_matieres = "'.$aso_valeurs['gm_description_table_matieres'].'", '. |
'gm_source = "'.$aso_valeurs['gm_source'].'", '. |
'gm_auteur = "'.$aso_valeurs['gm_auteur'].'", '. |
'gm_contributeur = "'.$aso_valeurs['gm_contributeur'].'", '. |
'gm_editeur = "'.$aso_valeurs['gm_editeur'].'", '. |
'gm_date_creation = "'.$aso_valeurs['gm_date_creation'].'", '. |
'gm_date_debut_validite = "'.$aso_valeurs['gm_date_debut_validite'].'", '. |
'gm_date_fin_validite = "'.$aso_valeurs['gm_date_fin_validite'].'", '. |
'gm_date_copyright = "'.$aso_valeurs['gm_date_copyright'].'", '. |
'gm_licence = "'.$aso_valeurs['gm_licence'].'", '. |
'gm_categorie = "'.$aso_valeurs['gm_categorie'].'", '. |
'gm_public = "'.$aso_valeurs['gm_public'].'", '. |
'gm_public_niveau = "'.$aso_valeurs['gm_public_niveau'].'", '. |
'gm_ce_type_portee_spatiale = "'.$aso_valeurs['gm_ce_type_portee_spatiale'].'", '. |
'gm_portee_spatiale = "'.$aso_valeurs['gm_portee_spatiale'].'", '. |
'gm_ce_type_portee_temporelle = "'.$aso_valeurs['gm_ce_type_portee_temporelle'].'", '. |
'gm_portee_temporelle = "'.$aso_valeurs['gm_portee_temporelle'].'", '. |
'gm_ce_admin = "'.$auth->getAuthData('ga_id_administrateur').'" '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
//---------------------------------------------------------------------------- |
// Ajout de la relation traduction |
if (!isset($adme_menu_id) && empty($adme_menu_id)) { |
$adme_menu_id = 0 ;// Identifiant du père |
} |
//---------------------------------------------------------------------------- |
// Récupération d'infos sur la hierarchie du menu |
$requete = 'SELECT GMR01.gmr_ordre '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '. |
'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'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu = $ligne->gmr_ordre + 1; |
$resultat->free(); |
// Traduction : |
$requete = 'INSERT INTO gen_menu_relation '. |
'SET gmr_id_menu_01 = '.$adme_menu_id.', '. |
'gmr_id_menu_02 = '.$nouveau_id_menu.', '. |
'gmr_id_valeur = 2, '. // Avoir traduction |
'gmr_ordre = '.$nouveau_ordre_menu; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->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 '.// 100 = type menu "classique" |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gm_ce_site = '.$aso_valeurs['adme_site_id'].' '. |
'ORDER BY gmr_ordre DESC'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$nouveau_ordre_menu_classique = $ligne->gmr_ordre + 1; |
$resultat->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 ADME_indenterMenuClassique() - Permet d'augmenter ou diminuer l'indentation d'un menu dans la |
* hierarchie |
* |
* Permet d'augmenter ou diminuer l'indentation d'un menu dans la hierarchie |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site administré. |
* @param integer identifiant du menu à déplacer. |
* @param boolean indique si on veut diminuer (gauche) l'indentation (true) ou augmenter (droite) l'indentation (false). |
* @return void modifie la base de données. |
*/ |
function ADME_indenterMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_diminuer) { |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id); |
if ($objet_site == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'. |
'Id du site : '. $adme_site_id .'<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, $adme_menu_id, '1'); |
if ($ligne_menu_courant_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération de l'identifiant du menu pére |
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id); |
if ($id_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
if ($bln_diminuer) { |
// Diminution d'un niveau |
if ($id_pere) { |
// Récupération de l'identifiant du menu grand pére, sera le nouveau pere |
$id_grand_pere = GEN_lireIdentifiantMenuPere($id_pere); |
if ($id_grand_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Récupération d'informations sur les relations du menu pere |
$ligne_menu_pere_relation = GEN_lireInfoMenuRelation($db, $id_pere, '1'); |
if ($ligne_menu_pere_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Recherche d'information sur le menu suivant le menu pere |
//------------------------------------------------------------------------------------------------------------------- |
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$objet_site->gs_id_site.' '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'AND GMR01.gmr_id_menu_02 = '.$id_grand_pere.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père" |
'AND GMR01.gmr_ordre > '.$ligne_menu_pere_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
$resultat_menu = $db->query($requete); |
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : ''; |
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat_menu->free(); |
//------------------------------------------------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $ligne_menu) { |
$no=$ligne_menu_pere_relation->gmr_ordre+1; |
} |
else { |
$no=$ligne_menu->nouvel_ordre+1; |
} |
// Mise à jour pere menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_id_menu_02 = '.$id_grand_pere.' ,'. |
'gmr_ordre = '.$no.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
} |
} |
else { |
$requete = 'SELECT GMR01.gmr_id_menu_01 '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$objet_site->gs_id_site.' '. |
'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" |
'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
$resultat_menu = $db->query($requete); |
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : ''; |
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat_menu->free(); |
//------------------------------------------------------------------------------------------------------------------- |
// Si la requete ne retourne rien nous ne faisons rien. |
if (! $ligne_menu) { |
return null; |
} |
//---------------------------------------------------------------------------- |
// Recherche dernier fils |
$requete = 'SELECT GMR01.gmr_ordre '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' '. |
'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'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat->free(); |
if (isset($ligne)) { |
$no = $ligne->gmr_ordre + 1; |
} |
else { |
$no = 1; |
} |
// Mise à jour pere menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' ,'. |
'gmr_ordre = '.$no.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
} |
} |
/** Fonction ADME_supprimerMenuClassique() - Supprime un menu classique. |
* |
* Supprime de la base de données de Papyrus toutes les traces du menu classiques |
* passé en paramètre. |
* Ancien nom : deleteMenu() |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_supprimerMenuClassique($db, $adme_id_site, $id_menu_a_supprimer) |
{ |
$code_menu = GEN_lireInfoMenu($db, $id_menu_a_supprimer, DB_FETCHMODE_ASSOC); |
//---------------------------------------------------------------------------- |
// 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 = $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 ADME_LG_ERREUR_EXISTE_SOUS_MENU; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Mise à jour de l'ordre des menus |
$ligne_menu_supr_relation = GEN_lireInfoMenuRelation($db, $id_menu_a_supprimer, '1'); // 1 = relation "avoir père" |
$requete = 'SELECT GMR01.gmr_id_menu_01, GMR01.gmr_ordre '. |
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '. |
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU |
'AND gm_ce_site = '.$adme_id_site.' '.// le site du menu! |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'AND GMR01.gmr_id_menu_02 = '.$ligne_menu_supr_relation->gmr_id_menu_02.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père" |
'AND GMR01.gmr_ordre > '.$ligne_menu_supr_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre ASC'; |
$resultat = $db->query($requete); |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
// Mise à jour des relations hiérarchiques du menu courant |
$requete_maj = 'UPDATE gen_menu_relation SET '. |
'gmr_ordre = '.($ligne->gmr_ordre - 1).' '. |
'WHERE gmr_id_menu_01 = '.$ligne->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
$resultat_maj = $db->query($requete_maj); |
(DB::isError($resultat_maj)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_maj->getMessage(), $requete_maj)) : ''; |
} |
$resultat->free(); |
//---------------------------------------------------------------------------- |
// 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 = $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 = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Suppression du contenu !!!! |
$requete = 'DELETE FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu= '.$id_menu_a_supprimer.' '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
/** Fonction ADME_supprimerMenuClassiqueTraduction() - Supprime une traduction de menu classique. |
* |
* Supprime de la base de données de Papyrus toutes les traces du menu classiques |
* passé en paramètre. |
* Ancien nom : deleteMenu() |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_supprimerMenuClassiqueTraduction($db, $adme_id_site, $id_menu_a_supprimer) |
{ |
$code_menu = GEN_lireInfoMenu($db, $id_menu_a_supprimer, DB_FETCHMODE_ASSOC); |
if ($code_menu === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'. |
'Idenitifiant du menu n° : '. $id_menu_a_supprimer .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
$requete = 'DELETE FROM gen_menu '. |
'WHERE gm_id_menu = '.$id_menu_a_supprimer; |
$resultat = $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 = $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_02 = '.$id_menu_a_supprimer; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Suppression du contenu !!!! |
$requete = 'DELETE FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$id_menu_a_supprimer.' '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
function ADME_verifier_traduction_possible($db, $url, $adme_site_id, $adme_menu_id) { |
$aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC); |
if ($aso_valeurs === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'. |
'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Recherche liste des menu deja traduits |
$requete = 'SELECT distinct gm_ce_i18n '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_01 = ' . $adme_menu_id .' '. |
'AND gm_id_menu = gmr_id_menu_02 '. |
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction" |
$resultat = $db->query($requete) ; |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
$not_in_langue=''; |
if ( $resultat->numRows() == 0 ) { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
else { |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$not_in_langue="'".$ligne->gm_ce_i18n."'".",".$not_in_langue; |
$end="'".$ligne->gm_ce_i18n."'"; |
} |
if ($not_in_langue) { |
$not_in_langue="'".$aso_valeurs['gm_ce_i18n']."'".",".$not_in_langue; |
$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')'; |
} |
else { |
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')"; |
} |
} |
$requete = "SELECT * FROM gen_i18n where ".$not_in_langue; |
$resultat = $db->query($requete) ; |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
$retour = $resultat->numRows(); |
$resultat->free(); |
$message=''; |
if ($retour == 0) { |
$message = '<p class="pap_erreur">Plus de traduction possible pour ce menu </p>'; |
} |
return $message; |
} |
/** Fonction ADME_selectionnerMenuClassiqueTraduction()() Selection un menu classique comme traduction par defaut |
* |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_selectionnerMenuClassiqueTraduction($db, $adme_id_site, $id_menu) |
{ |
// 1 : Rechercher traduction parente : si presente on est dans une traduc. si absente on |
// est dans un menu en version originale |
$requete_origine_traduction = 'SELECT gmr_id_menu_01 '. |
'FROM gen_menu_relation, gen_menu '. |
'WHERE gmr_id_menu_02 = ' . $id_menu .' '. |
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction" |
$resultat_origine_traduction = $db->query($requete_origine_traduction) ; |
if (DB::isError($resultat_origine_traduction)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete_origine_traduction) ); |
} |
if ($resultat_origine_traduction->numRows() > 0) { |
$ligne_origine_traduction = $resultat_origine_traduction->fetchRow(DB_FETCHMODE_OBJECT); |
$id_menu_origine=$ligne_origine_traduction->gmr_id_menu_01; |
} |
else { |
$id_menu_origine=$id_menu; |
} |
$requete_suppression = 'DELETE from gen_menu_relation '. |
'WHERE gmr_id_menu_01 = ' . $id_menu_origine . ' ' . |
'AND gmr_id_valeur=105 '; // 105 Traduction par defaut |
$resultat_suppression = $db->query($requete_suppression); |
(DB::isError($resultat_suppression)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_suppression->getMessage(), $requete_suppression)) : ''; |
$requete_insertion = 'INSERT into gen_menu_relation '. |
' SET gmr_id_menu_01 = ' . $id_menu_origine . ', ' . |
' gmr_id_menu_02 = ' . $id_menu . ', ' . |
' gmr_id_valeur = 105' ; |
$resultat_insertion = $db->query($requete_insertion); |
(DB::isError($resultat_insertion)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_insertion->getMessage(), $requete_insertion)) : ''; |
} |
/** Fonction ADME_limiterMenuClassique() (limiter) un menu classique à la langue selectionne |
* |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_limiterMenuClassique($db, $adme_id_site, $id_menu, $zone) |
{ |
$requete_insertion = 'INSERT into gen_menu_relation '. |
' SET gmr_id_menu_01 = ' . $id_menu . ', ' . |
' gmr_id_menu_02 = ' . $id_menu . ', ' . |
' gmr_id_valeur = 106' ; |
$resultat_insertion = $db->query($requete_insertion); |
$requete_mise_a_jour = 'UPDATE gen_menu SET '. |
'gm_ce_i18n = "'.$zone.'" '. |
'WHERE gm_id_menu = '.$id_menu; |
$resultat_mise_a_jour = $db->query($requete_mise_a_jour); |
(DB::isError($resultat_mise_a_jour)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_mise_a_jour->getMessage(), $requete_mise_a_jour)) : ''; |
} |
/** Fonction ADME_ouvrirMenuClassique() Ouvrir un menu classique à toutes les langues (suite à une fermeture) |
* |
* |
* @param mixed l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du site du menu à supprimer |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
*/ |
function ADME_ouvrirMenuClassique($db, $adme_id_site, $id_menu) |
{ |
$requete_suppression = 'DELETE from gen_menu_relation '. |
'WHERE gmr_id_menu_01 = ' . $id_menu . ' ' . |
'AND gmr_id_valeur=106 '; // 106 fermeture du menu |
$resultat_suppression = $db->query($requete_suppression); |
$requete_mise_a_jour = 'UPDATE gen_menu SET '. |
'gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '. |
'WHERE gm_id_menu = '.$id_menu; |
$resultat_mise_a_jour = $db->query($requete_mise_a_jour); |
(DB::isError($resultat_mise_a_jour)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_mise_a_jour->getMessage(), $requete_mise_a_jour)) : ''; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.41 2007-10-24 14:43:02 ddelon |
* Gestion des menus reservés à une langue |
* |
* Revision 1.40 2007-07-03 14:35:11 florian |
* correction bug maj non prise en charge |
* |
* Revision 1.39 2007-07-03 14:07:02 florian |
* correction bug maj non prise en charge |
* |
* Revision 1.38 2007-06-26 14:18:53 florian |
* amélioration des formulaires des différentes applis de l'interface d'administration afin de les simplifier |
* |
* Revision 1.37 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.36 2006/10/06 13:38:45 florian |
* ergonomie amélioree |
* |
* Revision 1.35 2006/09/07 13:45:56 jp_milcent |
* Trie par ordre alphabétique des appli. |
* |
* Revision 1.34 2006/06/29 23:04:01 ddelon |
* Bug defaut traduction sur menu commun |
* |
* Revision 1.33 2006/06/29 18:58:57 ddelon |
* Multilinguisme : menu par defaut pour les menu commun |
* |
* Revision 1.32 2006/06/28 12:53:34 ddelon |
* Multilinguisme : menu par defaut |
* |
* Revision 1.31 2006/04/12 21:11:54 ddelon |
* Multilinguisme menus communs |
* |
* Revision 1.30 2006/03/27 14:33:04 ddelon |
* Gestion suppression de contenu menu afficheur |
* |
* Revision 1.29 2006/03/23 20:24:59 ddelon |
* *** empty log message *** |
* |
* Revision 1.28 2006/03/15 09:30:50 florian |
* suppression des echos, qui entrainaient des problemes d'affichages |
* |
* Revision 1.27 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.26 2006/03/10 11:02:36 alexandre_tb |
* remplacement de l'image "Traduire" par un texte "traduire" vu qu'on a pas d'image pour la notion de traduire... |
* |
* Revision 1.25 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.24.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.24 2005/09/23 13:58:07 ddelon |
* Php5, Projet et Redirection |
* |
* Revision 1.23 2005/09/20 17:01:22 ddelon |
* php5 et bugs divers |
* |
* Revision 1.22 2005/07/08 21:13:15 ddelon |
* Gestion indentation menu |
* |
* Revision 1.21 2005/05/26 16:13:08 jpm |
* Correction taille éditeur: passage en text |
* |
* Revision 1.19 2005/05/26 15:34:46 jpm |
* Ajout d'un espace. |
* |
* Revision 1.18 2005/05/26 08:54:20 jpm |
* Ajout info admin ayant fait la dernière modif. |
* |
* Revision 1.17 2005/04/19 16:47:16 jpm |
* Gestion des dates de fin de validité des menus. |
* |
* Revision 1.16 2005/03/29 15:49:12 jpm |
* Ajout de la date de création dans le formulaire des menus. |
* |
* Revision 1.15 2005/02/28 11:05:06 jpm |
* Modification des auteurs. |
* |
* Revision 1.14 2004/12/01 16:47:28 jpm |
* Ajout d'une boite javascript de confirmation de suppression d'un menu. |
* |
* Revision 1.13 2004/11/29 18:34:51 jpm |
* Correction bogue checkbox. |
* |
* Revision 1.12 2004/11/15 16:51:12 jpm |
* Correction bogue de mise à jour de l'ordre des menus. |
* |
* Revision 1.11 2004/11/10 19:41:14 jpm |
* Correction bogue. |
* |
* Revision 1.10 2004/11/10 17:26:07 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.9 2004/11/09 17:53:00 jpm |
* Changement des noms des actions sur les menus classiques. |
* |
* Revision 1.8 2004/11/09 17:48:35 jpm |
* Gestion de différentes interfaces d'administration. |
* |
* Revision 1.7 2004/11/09 12:37:34 jpm |
* Fin de gestion des menus et mise en conformité avec la convention de codage. |
* |
* Revision 1.6 2004/11/08 17:40:07 jpm |
* Gestion correcte de l'ouverture et fermeture des menus. |
* Utilisation des sessions. |
* |
* Revision 1.5 2004/11/04 19:11:38 jpm |
* Mise en conformité vis à vis de la convention de codage. |
* Amélioration de la récursivité de la gestion de l'affichage des menus. |
* |
* Revision 1.4 2004/10/25 16:27:42 jpm |
* Correction d'un bogue dans la gestion du déplacement des menus. |
* |
* Revision 1.3 2004/09/23 17:45:13 jpm |
* Amélioration de la gestion des liens annuler et du selecteur de sites. |
* |
* Revision 1.2 2004/07/06 17:07:37 jpm |
* Modification de la documentation pour une mailleur analyse par PhpDocumentor. |
* |
* Revision 1.1 2004/06/16 15:04:32 jpm |
* Changement de nom de Génésia en Papyrus. |
* Changement de l'arborescence. |
* |
* 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/langues/adme_langue_en.inc.php |
---|
265,7 → 265,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adme_langue_en.inc.php,v $ |
* Revision 1.3 2007-10-25 14:26:56 ddelon |
* Multilinguisme : présentation restriction à une langue |
* |
* Revision 1.2 2007-10-23 14:10:00 ddelon |
* Ajout traductions manquantes pour l'anglais |
* |
/trunk/papyrus/applications/admin_menu/langues/adme_langue_es.inc.php |
---|
257,7 → 257,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adme_langue_es.inc.php,v $ |
* Revision 1.3 2006-09-27 10:02:08 alexandre_tb |
* Ajout de constante de traduction |
* |
* Revision 1.2 2006/09/27 09:20:28 alexandre_tb |
* Ajout de constante de traduction |
* |
/trunk/papyrus/applications/admin_menu/langues/adme_langue_fr.inc.php |
---|
1,337 → 1,343 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: adme_langue_fr.inc.php,v 1.19 2007-10-25 14:26:56 ddelon Exp $ |
/** |
* Gestion des langues de l'application ADME |
* |
* Contient les constantes pour la langue française de l'application ADME. |
* |
*@package Admin_menu |
*@subpackage Langues |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.19 $ $Date: 2007-10-25 14:26:56 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
define ('ADME_IDENTIFIEZ_VOUS','Veuillez vous identifier pour accèder à ce menu.'); |
// Le formulaire de sélection du site dont les menus doivent être administrer : |
define('ADME_LG_FORM_SITE_TITRE', 'Listes des sites'); |
define('ADME_LG_FORM_SITE_CHOIX', 'Choix du site à administrer : '); |
define('ADME_LG_FORM_SITE_VALIDER', 'OK'); |
// Les titres de l'arborescence des menus à administrer: |
define('ADME_LG_MENU_TITRE', 'Configuration des menus du site : '); |
define('ADME_LG_MENU_CLASSIQUE_RACINE', 'Ajouter un menu classique'); |
define('ADME_LG_MENU_COMMUN_RACINE', 'Ajouter un menu commun'); |
// Les actions des menus classiques: |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER', 'menu_classique_modifier'); |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_ACTION', 'menu_classique_modifier_action'); |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_ALT', 'Modifier'); |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_TITLE', 'Modifier ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_MONTER', 'menu_classique_monter'); |
define('ADME_LG_ACTION_CLASSIQUE_MONTER_ALT', 'Monter'); |
define('ADME_LG_ACTION_CLASSIQUE_MONTER_TITLE', 'Monter ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE', 'menu_classique_descendre'); |
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_ALT', 'Descendre'); |
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_TITLE', 'Descendre ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER', 'menu_classique_diminuer'); |
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_ALT', 'Diminuer'); |
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_TITLE', 'Diminuer d\'un niveau ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER', 'menu_classique_augmenter'); |
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_ALT', 'Augmenter'); |
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_TITLE', 'Augmenter d\'un niveau ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE', 'menu_classique_traduire'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION', 'menu_classique_traduire_action'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ALT', 'Traduire'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_TITLE', 'Traduire ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER', 'menu_classique_supprimer'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION', 'menu_classique_supprimer_traduction'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER', 'menu_classique_ajouter'); |
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_ALT', 'Ajouter'); |
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_TITLE', 'Ajouter ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_VERIFIER', 'menu_classique_verifier'); |
define('ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION', 'menu_classique_verifier_traduction'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT', 'menu_classique_traduction_defaut'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT', 'Choisir ce menu comme traduction par défaut'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_TITLE', 'Choisir ce menu comme traduction par défaut'); |
define ('ADME_LG_ACTION_CLASSIQUE_LIMITER', 'menu_classique_limiter'); |
define ('ADME_LG_ACTION_CLASSIQUE_LIMITER_TITLE', 'Restreindre le menu à cette langue'); |
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR', 'menu_classique_ouvrir'); |
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR_TITLE', 'Faire apparaitre ce menu dans toutes les langues'); |
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT', 'menu_classique_traduction_defaut'); |
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_ALT', 'Choisir ce menu comme traduction par défaut'); |
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_TITLE', 'Choisir ce menu comme traduction par défaut'); |
// Les actions des menus communs: |
define('ADME_LG_ACTION_COMMUN_MODIFIER', 'menu_commun_modifier'); |
define('ADME_LG_ACTION_COMMUN_MODIFIER_ALT', 'Modifier'); |
define('ADME_LG_ACTION_COMMUN_MODIFIER_ACTION', 'menu_commun_modifier_action'); |
define('ADME_LG_ACTION_COMMUN_MODIFIER_TITLE', 'Modifier ce menu'); |
define('ADME_LG_ACTION_COMMUN_MONTER', 'menu_commun_monter'); |
define('ADME_LG_ACTION_COMMUN_MONTER_ALT', 'Monter'); |
define('ADME_LG_ACTION_COMMUN_MONTER_TITLE', 'Monter ce menu'); |
define('ADME_LG_ACTION_COMMUN_DESCENDRE', 'menu_commun_descendre'); |
define('ADME_LG_ACTION_COMMUN_DESCENDRE_ALT', 'Descendre'); |
define('ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE', 'Descendre ce menu'); |
define('ADME_LG_ACTION_COMMUN_DIMINUER', 'menu_commun_diminuer'); |
define('ADME_LG_ACTION_COMMUN_DIMINUER_ALT', 'Diminuer'); |
define('ADME_LG_ACTION_COMMUN_DIMINUER_TITLE', 'Diminuer d\'un niveau ce menu'); |
define('ADME_LG_ACTION_COMMUN_AUGMENTER', 'menu_commun_augmenter'); |
define('ADME_LG_ACTION_COMMUN_AUGMENTER_ALT', 'Augmenter'); |
define('ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE', 'Augmenter d\'un niveau ce menu'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE', 'menu_commun_traduire'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION', 'menu_commun_traduire_action'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ALT', 'Traduire'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE_TITLE', 'Traduire ce menu'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER', 'menu_commun_supprimer'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION', 'menu_commun_supprimer_traduction'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_COMMUN_AJOUTER', 'menu_commun_ajouter'); |
define('ADME_LG_ACTION_COMMUN_AJOUTER_ALT', 'Ajouter'); |
define('ADME_LG_ACTION_COMMUN_AJOUTER_TITLE', 'Ajouter ce menu'); |
define('ADME_LG_ACTION_COMMUN_VERIFIER', 'menu_commun_verifier'); |
define ('ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION','menu_commun_verifier_traduction'); |
// Les actions générales: |
define('ADME_LG_ACTION_ADMINISTRER', 'administrer'); |
define('ADME_LG_ACTION_ADMINISTRER_ALT', 'Administrer'); |
define('ADME_LG_ACTION_ADMINISTRER_TITLE', 'Administrer l\'application de ce menu'); |
define('ADME_LG_ACTION_PLIER', 'adme_menu_fermer'); |
define('ADME_LG_ACTION_PLIER_ALT', 'Plier'); |
define('ADME_LG_ACTION_DEPLIER', 'adme_menu_ouvrir'); |
define('ADME_LG_ACTION_DEPLIER_ALT', 'Déplier'); |
define('ADME_LG_ACTION_SUPPRIMER_CONFIRMATION', 'Êtes vous sûr de vouloir supprimer ce menu?'); |
// Les erreurs: |
define('ADME_LG_ERREUR_INFO_MENU', 'impossible de lire les infos du menu.'); |
define('ADME_LG_ERREUR_INFO_SITE', 'impossible de lire les infos du site.'); |
define('ADME_LG_ERREUR_INFO_MENU_RELATION', 'impossible de lire les infos sur les relations du menu.'); |
define('ADME_LG_ERREUR_ID_MENU_PERE', 'impossible de lire identifiant du menu père.'); |
define('ADME_LG_ERREUR_CODE_NUM', "La valeur %s pour le champ \"Code numérique\" existe déjà."); |
define('ADME_LG_ERREUR_CODE_ALPHA', "La valeur %s pour le champ \"Code alphanumérique\" existe déjà."); |
define('ADME_LG_ERREUR_EXISTE_SOUS_MENU', 'Ce menu contient encore des sous menus. Veuillez commencez par supprimer ces sous menus.'); |
// Le formulaire de modification d'un menu : |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL', 'Modification menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL', 'Modification menu commun'); |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL_TRADUCTION', 'Traduction menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL_TRADUCTION', 'Traduction menu commun'); |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG', 'Configuration du menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_CONFIG', 'Configuration du menu commun'); |
define('ADME_LG_FORM_MENU_ID', 'Identifiant de ce menu : '); |
define('ADME_LG_FORM_MENU_CODE_NUM', 'Code numérique du menu'); |
define('ADME_LG_FORM_MENU_REGLE_CODE_NUM', 'Un code numérique est requis pour le menu !'); |
define('ADME_LG_FORM_MENU_CODE_ALPHA', 'Code alphanumérique du menu'); |
define('ADME_LG_FORM_MENU_REGLE_CODE_ALPHA', 'Un code alphanumérique est requis pour le menu !'); |
define('ADME_LG_FORM_MENU_NOM', 'Nom du menu'); |
define('ADME_LG_FORM_MENU_REGLE_NOM', 'Un nom est requis pour le menu !'); |
define('ADME_LG_FORM_MENU_RACCOURCI', 'Raccourci clavier'); |
define('ADME_LG_FORM_MENU_DEFAUT', 'En faire le menu par défaut'); |
define('ADME_LG_FORM_MENU_FICHIER_SQUELETTE', 'Fichier squelette'); |
define('ADME_LG_FORM_MENU_INFO_BULLE', 'Contenu info-bulle'); |
define('ADME_LG_FORM_MENU_REGLE_INFO_BULLE', 'Une description courte pour l\'info-bulle est requise pour ce menu !'); |
define('ADME_LG_FORM_MENU_APPLI', 'Application'); |
define('ADME_LG_FORM_MENU_APPLI_ARGUMENT', 'Arguments de l\'application'); |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_ENTETE', 'Entête des pages du menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_ENTETE', 'Entête des pages du menu commun'); |
define('ADME_LG_FORM_MENU_ROBOT', 'Indexation par robots'); |
define('ADME_LG_FORM_MENU_INDEX_FOLLOW', 'Indexer cette page et les suivantes'); |
define('ADME_LG_FORM_MENU_INDEX', 'Indexer seulement cette page'); |
define('ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW', 'Ne pas indexer cette page et les suivantes'); |
define('ADME_LG_FORM_MENU_NOINDEX', 'Ne pas indexer cette page'); |
define('ADME_LG_FORM_MENU_INDEX_VIDE', 'Aucune'); |
define('ADME_LG_FORM_MENU_TITRE', 'Titre de la page'); |
define('ADME_LG_FORM_MENU_TITRE_ALTERNATIF', 'Titre alternatif de la page'); |
define('ADME_LG_FORM_MENU_MOT_CLE', 'Mots-clés'); |
define('ADME_LG_FORM_MENU_DESCRIPTION', 'Description du contenu'); |
define('ADME_LG_FORM_MENU_TABLE_MATIERE', 'Table des matières'); |
define('ADME_LG_FORM_MENU_SOURCE', 'Source'); |
define('ADME_LG_FORM_MENU_AUTEUR', 'Auteur'); |
define('ADME_LG_FORM_MENU_CONTRIBUTEUR', 'Contributeur'); |
define('ADME_LG_FORM_MENU_EDITEUR', 'Éditeur'); |
define('ADME_LG_FORM_MENU_DATE_CREATION', 'Date de création'); |
define('ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT', 'Date de début de validité'); |
define('ADME_LG_FORM_MENU_DATE_VALIDITE_FIN', 'Date de fin de validité'); |
define('ADME_LG_FORM_MENU_DATE_COPYRIGHT', 'Année pour le copyright'); |
define('ADME_LG_FORM_MENU_URL_LICENCE', 'URL de la licence'); |
define('ADME_LG_FORM_MENU_CATEGORIE', 'Catégorie'); |
define('ADME_LG_FORM_MENU_PUBLIC', 'Public pour la page'); |
define('ADME_LG_FORM_MENU_PUBLIC_NIVEAU', 'Niveau du public pour la page'); |
define('ADME_LG_FORM_MENU_ZG_TYPE', 'Type de portée spatiale'); |
define('ADME_LG_FORM_MENU_ZG_VALEUR', 'Portée spatiale de la page'); |
define('ADME_LG_FORM_MENU_ZG_VIDE', 'Aucun'); |
define('ADME_LG_FORM_MENU_ZG_ISO', 'Code de pays sur deux lettres (iso3166)'); |
define('ADME_LG_FORM_MENU_ZG_DC', 'Représentation des régions géographiques du Dublin Core'); |
define('ADME_LG_FORM_MENU_ZG_POINT', 'Point géographique'); |
define('ADME_LG_FORM_MENU_ZG_GTGN', 'Noms issus du Getty Thesaurus of Geographic Names'); |
define('ADME_LG_FORM_MENU_TMP_TYPE', 'Type de portée temporelle'); |
define('ADME_LG_FORM_MENU_TMP_VALEUR', 'Portée temporelle de la page'); |
define('ADME_LG_FORM_MENU_TMP_VIDE', 'Aucun'); |
define('ADME_LG_FORM_MENU_TMP_W3C', 'Codage des dates et heures du W3C'); |
define('ADME_LG_FORM_MENU_TMP_DC', 'Représentation des intervalles de temps du Dublin Core'); |
define('ADME_LG_FORM_MENU_VALIDER', 'Enregistrer'); |
define('ADME_LG_FORM_MENU_ANNULER', 'Annuler'); |
define('ADME_LG_FORM_TXT_CHP_OBLIGATOIRE', 'Indique les champs obligatoires'); |
define('ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE', '*'); |
define ('ADME_VOIR_CONFIG_AVANCEE', 'Afficher/Cacher la configuration avancée'); |
define ('ADME_CONFIG_AVANCEE', 'Configuration avancée'); |
// Charactère spéciaux: |
define('ADME_LG_PARENTHESE_OUVRANTE', '('); |
define('ADME_LG_PARENTHESE_FERMANTE', ')'); |
define('ADME_LG_SLASH', '/'); |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.18 2007-10-25 10:08:55 alexandre_tb |
* nouvelle constante multilinguisme |
* |
* Revision 1.17 2007-06-26 14:18:53 florian |
* amélioration des formulaires des différentes applis de l'interface d'administration afin de les simplifier |
* |
* Revision 1.16 2006/10/06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.15 2006/06/29 18:58:57 ddelon |
* Multilinguisme : menu par defaut pour les menu commun |
* |
* Revision 1.14 2006/06/28 12:53:34 ddelon |
* Multilinguisme : menu par defaut |
* |
* Revision 1.13 2006/05/10 16:02:49 ddelon |
* Finition multilinguise et schizo flo |
* |
* Revision 1.12 2006/05/10 15:01:57 florian |
* ajout de constantes, pour éviter les warnings |
* |
* Revision 1.11 2006/04/12 21:11:54 ddelon |
* Multilinguisme menus communs |
* |
* Revision 1.10 2006/03/23 20:24:58 ddelon |
* *** empty log message *** |
* |
* Revision 1.9 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.8 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.7.2.1 2006/02/28 14:02:10 ddelon |
* Finition multilinguisme |
* |
* Revision 1.7 2005/07/18 16:14:32 ddelon |
* css admin + menu communs |
* |
* Revision 1.6 2005/07/08 21:13:15 ddelon |
* Gestion indentation menu |
* |
* Revision 1.5 2005/05/26 15:45:09 jpm |
* Ajout d'une majuscule accentuée. |
* |
* Revision 1.4 2005/03/29 15:49:31 jpm |
* Ajout de la constante pour la date de création dans le formulaire des menus. |
* |
* Revision 1.3 2004/12/01 16:47:07 jpm |
* Ajout d'un texte pour la boite javascript de confirmation de suppression de menu. |
* |
* Revision 1.2 2004/11/10 17:26:12 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.1 2004/11/10 11:58:31 jpm |
* Début de la traduction de l'appli. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: adme_langue_fr.inc.php,v 1.19 2007-10-25 14:26:56 ddelon Exp $ |
/** |
* Gestion des langues de l'application ADME |
* |
* Contient les constantes pour la langue française de l'application ADME. |
* |
*@package Admin_menu |
*@subpackage Langues |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.19 $ $Date: 2007-10-25 14:26:56 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
define ('ADME_IDENTIFIEZ_VOUS','Veuillez vous identifier pour accèder à ce menu.'); |
// Le formulaire de sélection du site dont les menus doivent être administrer : |
define('ADME_LG_FORM_SITE_TITRE', 'Listes des sites'); |
define('ADME_LG_FORM_SITE_CHOIX', 'Choix du site à administrer : '); |
define('ADME_LG_FORM_SITE_VALIDER', 'OK'); |
// Les titres de l'arborescence des menus à administrer: |
define('ADME_LG_MENU_TITRE', 'Configuration des menus du site : '); |
define('ADME_LG_MENU_CLASSIQUE_RACINE', 'Ajouter un menu classique'); |
define('ADME_LG_MENU_COMMUN_RACINE', 'Ajouter un menu commun'); |
// Les actions des menus classiques: |
define('ADME_LG_ACTION_CLASSIQUE_DEPLACER_MENUS', 'menu_classique_deplacer'); |
define('ADME_LG_MENU_DEPLACER', 'Deplacer les menus sélectionnés vers :'); |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER', 'menu_classique_modifier'); |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_ACTION', 'menu_classique_modifier_action'); |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_ALT', 'Modifier'); |
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_TITLE', 'Modifier ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_MONTER', 'menu_classique_monter'); |
define('ADME_LG_ACTION_CLASSIQUE_MONTER_ALT', 'Monter'); |
define('ADME_LG_ACTION_CLASSIQUE_MONTER_TITLE', 'Monter ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE', 'menu_classique_descendre'); |
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_ALT', 'Descendre'); |
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_TITLE', 'Descendre ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER', 'menu_classique_diminuer'); |
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_ALT', 'Diminuer'); |
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_TITLE', 'Diminuer d\'un niveau ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER', 'menu_classique_augmenter'); |
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_ALT', 'Augmenter'); |
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_TITLE', 'Augmenter d\'un niveau ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE', 'menu_classique_traduire'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION', 'menu_classique_traduire_action'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ALT', 'Traduire'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_TITLE', 'Traduire ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER', 'menu_classique_supprimer'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION', 'menu_classique_supprimer_traduction'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER', 'menu_classique_ajouter'); |
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_ALT', 'Ajouter'); |
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_TITLE', 'Ajouter ce menu'); |
define('ADME_LG_ACTION_CLASSIQUE_VERIFIER', 'menu_classique_verifier'); |
define('ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION', 'menu_classique_verifier_traduction'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT', 'menu_classique_traduction_defaut'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT', 'Choisir ce menu comme traduction par défaut'); |
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_TITLE', 'Choisir ce menu comme traduction par défaut'); |
define ('ADME_LG_ACTION_CLASSIQUE_LIMITER', 'menu_classique_limiter'); |
define ('ADME_LG_ACTION_CLASSIQUE_LIMITER_TITLE', 'Restreindre le menu à cette langue'); |
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR', 'menu_classique_ouvrir'); |
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR_TITLE', 'Faire apparaitre ce menu dans toutes les langues'); |
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT', 'menu_classique_traduction_defaut'); |
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_ALT', 'Choisir ce menu comme traduction par défaut'); |
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_TITLE', 'Choisir ce menu comme traduction par défaut'); |
// Les actions des menus communs: |
define('ADME_LG_ACTION_COMMUN_MODIFIER', 'menu_commun_modifier'); |
define('ADME_LG_ACTION_COMMUN_MODIFIER_ALT', 'Modifier'); |
define('ADME_LG_ACTION_COMMUN_MODIFIER_ACTION', 'menu_commun_modifier_action'); |
define('ADME_LG_ACTION_COMMUN_MODIFIER_TITLE', 'Modifier ce menu'); |
define('ADME_LG_ACTION_COMMUN_MONTER', 'menu_commun_monter'); |
define('ADME_LG_ACTION_COMMUN_MONTER_ALT', 'Monter'); |
define('ADME_LG_ACTION_COMMUN_MONTER_TITLE', 'Monter ce menu'); |
define('ADME_LG_ACTION_COMMUN_DESCENDRE', 'menu_commun_descendre'); |
define('ADME_LG_ACTION_COMMUN_DESCENDRE_ALT', 'Descendre'); |
define('ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE', 'Descendre ce menu'); |
define('ADME_LG_ACTION_COMMUN_DIMINUER', 'menu_commun_diminuer'); |
define('ADME_LG_ACTION_COMMUN_DIMINUER_ALT', 'Diminuer'); |
define('ADME_LG_ACTION_COMMUN_DIMINUER_TITLE', 'Diminuer d\'un niveau ce menu'); |
define('ADME_LG_ACTION_COMMUN_AUGMENTER', 'menu_commun_augmenter'); |
define('ADME_LG_ACTION_COMMUN_AUGMENTER_ALT', 'Augmenter'); |
define('ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE', 'Augmenter d\'un niveau ce menu'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE', 'menu_commun_traduire'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION', 'menu_commun_traduire_action'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ALT', 'Traduire'); |
define('ADME_LG_ACTION_COMMUN_TRADUIRE_TITLE', 'Traduire ce menu'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER', 'menu_commun_supprimer'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION', 'menu_commun_supprimer_traduction'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_ALT', 'Supprimer'); |
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_TITLE', 'Supprimer ce menu'); |
define('ADME_LG_ACTION_COMMUN_AJOUTER', 'menu_commun_ajouter'); |
define('ADME_LG_ACTION_COMMUN_AJOUTER_ALT', 'Ajouter'); |
define('ADME_LG_ACTION_COMMUN_AJOUTER_TITLE', 'Ajouter ce menu'); |
define('ADME_LG_ACTION_COMMUN_VERIFIER', 'menu_commun_verifier'); |
define ('ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION','menu_commun_verifier_traduction'); |
// Les actions générales: |
define('ADME_LG_ACTION_ADMINISTRER', 'administrer'); |
define('ADME_LG_ACTION_ADMINISTRER_ALT', 'Administrer'); |
define('ADME_LG_ACTION_ADMINISTRER_TITLE', 'Administrer l\'application de ce menu'); |
define('ADME_LG_ACTION_PLIER', 'adme_menu_fermer'); |
define('ADME_LG_ACTION_PLIER_ALT', 'Plier'); |
define('ADME_LG_ACTION_DEPLIER', 'adme_menu_ouvrir'); |
define('ADME_LG_ACTION_DEPLIER_ALT', 'Déplier'); |
define('ADME_LG_ACTION_SUPPRIMER_CONFIRMATION', 'Êtes vous sûr de vouloir supprimer ce menu?'); |
// Les erreurs: |
define('ADME_LG_ERREUR_INFO_MENU', 'impossible de lire les infos du menu.'); |
define('ADME_LG_ERREUR_INFO_SITE', 'impossible de lire les infos du site.'); |
define('ADME_LG_ERREUR_INFO_MENU_RELATION', 'impossible de lire les infos sur les relations du menu.'); |
define('ADME_LG_ERREUR_ID_MENU_PERE', 'impossible de lire identifiant du menu père.'); |
define('ADME_LG_ERREUR_CODE_NUM', "La valeur %s pour le champ \"Code numérique\" existe déjà."); |
define('ADME_LG_ERREUR_CODE_ALPHA', "La valeur %s pour le champ \"Code alphanumérique\" existe déjà."); |
define('ADME_LG_ERREUR_EXISTE_SOUS_MENU', 'Ce menu contient encore des sous menus. Veuillez commencez par supprimer ces sous menus.'); |
// Le formulaire de modification d'un menu : |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL', 'Modification menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL', 'Modification menu commun'); |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL_TRADUCTION', 'Traduction menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL_TRADUCTION', 'Traduction menu commun'); |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG', 'Configuration du menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_CONFIG', 'Configuration du menu commun'); |
define('ADME_LG_FORM_MENU_ID', 'Identifiant de ce menu : '); |
define('ADME_LG_FORM_MENU_CODE_NUM', 'Code numérique du menu'); |
define('ADME_LG_FORM_MENU_REGLE_CODE_NUM', 'Un code numérique est requis pour le menu !'); |
define('ADME_LG_FORM_MENU_CODE_ALPHA', 'Code alphanumérique du menu'); |
define('ADME_LG_FORM_MENU_REGLE_CODE_ALPHA', 'Un code alphanumérique est requis pour le menu !'); |
define('ADME_LG_FORM_MENU_NOM', 'Nom du menu'); |
define('ADME_LG_FORM_MENU_REGLE_NOM', 'Un nom est requis pour le menu !'); |
define('ADME_LG_FORM_MENU_RACCOURCI', 'Raccourci clavier'); |
define('ADME_LG_FORM_MENU_DEFAUT', 'En faire le menu par défaut'); |
define('ADME_LG_FORM_MENU_FICHIER_SQUELETTE', 'Fichier squelette'); |
define('ADME_LG_FORM_MENU_INFO_BULLE', 'Contenu info-bulle'); |
define('ADME_LG_FORM_MENU_REGLE_INFO_BULLE', 'Une description courte pour l\'info-bulle est requise pour ce menu !'); |
define('ADME_LG_FORM_MENU_APPLI', 'Application'); |
define('ADME_LG_FORM_MENU_APPLI_ARGUMENT', 'Arguments de l\'application'); |
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_ENTETE', 'Entête des pages du menu'); |
define('ADME_LG_FORM_MENU_COMMUN_TITRE_ENTETE', 'Entête des pages du menu commun'); |
define('ADME_LG_FORM_MENU_ROBOT', 'Indexation par robots'); |
define('ADME_LG_FORM_MENU_INDEX_FOLLOW', 'Indexer cette page et les suivantes'); |
define('ADME_LG_FORM_MENU_INDEX', 'Indexer seulement cette page'); |
define('ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW', 'Ne pas indexer cette page et les suivantes'); |
define('ADME_LG_FORM_MENU_NOINDEX', 'Ne pas indexer cette page'); |
define('ADME_LG_FORM_MENU_INDEX_VIDE', 'Aucune'); |
define('ADME_LG_FORM_MENU_TITRE', 'Titre de la page'); |
define('ADME_LG_FORM_MENU_TITRE_ALTERNATIF', 'Titre alternatif de la page'); |
define('ADME_LG_FORM_MENU_MOT_CLE', 'Mots-clés'); |
define('ADME_LG_FORM_MENU_DESCRIPTION', 'Description du contenu'); |
define('ADME_LG_FORM_MENU_TABLE_MATIERE', 'Table des matières'); |
define('ADME_LG_FORM_MENU_SOURCE', 'Source'); |
define('ADME_LG_FORM_MENU_AUTEUR', 'Auteur'); |
define('ADME_LG_FORM_MENU_CONTRIBUTEUR', 'Contributeur'); |
define('ADME_LG_FORM_MENU_EDITEUR', 'Éditeur'); |
define('ADME_LG_FORM_MENU_DATE_CREATION', 'Date de création'); |
define('ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT', 'Date de début de validité'); |
define('ADME_LG_FORM_MENU_DATE_VALIDITE_FIN', 'Date de fin de validité'); |
define('ADME_LG_FORM_MENU_DATE_COPYRIGHT', 'Année pour le copyright'); |
define('ADME_LG_FORM_MENU_URL_LICENCE', 'URL de la licence'); |
define('ADME_LG_FORM_MENU_CATEGORIE', 'Catégorie'); |
define('ADME_LG_FORM_MENU_PUBLIC', 'Public pour la page'); |
define('ADME_LG_FORM_MENU_PUBLIC_NIVEAU', 'Niveau du public pour la page'); |
define('ADME_LG_FORM_MENU_ZG_TYPE', 'Type de portée spatiale'); |
define('ADME_LG_FORM_MENU_ZG_VALEUR', 'Portée spatiale de la page'); |
define('ADME_LG_FORM_MENU_ZG_VIDE', 'Aucun'); |
define('ADME_LG_FORM_MENU_ZG_ISO', 'Code de pays sur deux lettres (iso3166)'); |
define('ADME_LG_FORM_MENU_ZG_DC', 'Représentation des régions géographiques du Dublin Core'); |
define('ADME_LG_FORM_MENU_ZG_POINT', 'Point géographique'); |
define('ADME_LG_FORM_MENU_ZG_GTGN', 'Noms issus du Getty Thesaurus of Geographic Names'); |
define('ADME_LG_FORM_MENU_TMP_TYPE', 'Type de portée temporelle'); |
define('ADME_LG_FORM_MENU_TMP_VALEUR', 'Portée temporelle de la page'); |
define('ADME_LG_FORM_MENU_TMP_VIDE', 'Aucun'); |
define('ADME_LG_FORM_MENU_TMP_W3C', 'Codage des dates et heures du W3C'); |
define('ADME_LG_FORM_MENU_TMP_DC', 'Représentation des intervalles de temps du Dublin Core'); |
define('ADME_LG_FORM_MENU_VALIDER', 'Enregistrer'); |
define('ADME_LG_FORM_MENU_ANNULER', 'Annuler'); |
define('ADME_LG_FORM_TXT_CHP_OBLIGATOIRE', 'Indique les champs obligatoires'); |
define('ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE', '*'); |
define ('ADME_VOIR_CONFIG_AVANCEE', 'Afficher/Cacher la configuration avancée'); |
define ('ADME_CONFIG_AVANCEE', 'Configuration avancée'); |
// Charactère spéciaux: |
define('ADME_LG_PARENTHESE_OUVRANTE', '('); |
define('ADME_LG_PARENTHESE_FERMANTE', ')'); |
define('ADME_LG_SLASH', '/'); |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: adme_langue_fr.inc.php,v $ |
* Revision 1.19 2007-10-25 14:26:56 ddelon |
* Multilinguisme : présentation restriction à une langue |
* |
* Revision 1.18 2007-10-25 10:08:55 alexandre_tb |
* nouvelle constante multilinguisme |
* |
* Revision 1.17 2007-06-26 14:18:53 florian |
* amélioration des formulaires des différentes applis de l'interface d'administration afin de les simplifier |
* |
* Revision 1.16 2006/10/06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.15 2006/06/29 18:58:57 ddelon |
* Multilinguisme : menu par defaut pour les menu commun |
* |
* Revision 1.14 2006/06/28 12:53:34 ddelon |
* Multilinguisme : menu par defaut |
* |
* Revision 1.13 2006/05/10 16:02:49 ddelon |
* Finition multilinguise et schizo flo |
* |
* Revision 1.12 2006/05/10 15:01:57 florian |
* ajout de constantes, pour éviter les warnings |
* |
* Revision 1.11 2006/04/12 21:11:54 ddelon |
* Multilinguisme menus communs |
* |
* Revision 1.10 2006/03/23 20:24:58 ddelon |
* *** empty log message *** |
* |
* Revision 1.9 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.8 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.7.2.1 2006/02/28 14:02:10 ddelon |
* Finition multilinguisme |
* |
* Revision 1.7 2005/07/18 16:14:32 ddelon |
* css admin + menu communs |
* |
* Revision 1.6 2005/07/08 21:13:15 ddelon |
* Gestion indentation menu |
* |
* Revision 1.5 2005/05/26 15:45:09 jpm |
* Ajout d'une majuscule accentuée. |
* |
* Revision 1.4 2005/03/29 15:49:31 jpm |
* Ajout de la constante pour la date de création dans le formulaire des menus. |
* |
* Revision 1.3 2004/12/01 16:47:07 jpm |
* Ajout d'un texte pour la boite javascript de confirmation de suppression de menu. |
* |
* Revision 1.2 2004/11/10 17:26:12 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.1 2004/11/10 11:58:31 jpm |
* Début de la traduction de l'appli. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_menu/presentations/styles/adme_standard.css |
---|
56,7 → 56,10 |
/* +--Fin des CSS ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adme_standard.css,v $ |
* Revision 1.3 2006-10-06 13:38:45 florian |
* ergonomie amélioree |
* |
* Revision 1.2 2005/02/28 11:05:55 jpm |
* Modification de la licence. |
* |
/trunk/papyrus/applications/admin_menu/admin_menu.php |
---|
1,618 → 1,638 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: admin_menu.php,v 1.29 2007-10-25 10:10:23 alexandre_tb Exp $ |
/** |
* Application gérant les menus de Papyrus |
* |
* Cette application permet de gérer les menus classiques, les menus communs |
* et les liaison d'une application à un menu. |
* |
*@package Admin_menu |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
*@author Laurent COUDOUNEAU <lc@gsite.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.29 $ $Date: 2007-10-25 10:10:23 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php'; |
//Utilisation de la bibliotheque PEAR NET_URL |
/** Inclusion de la bibliotheque PEAR de conception de formulaire.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php'; |
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php'; |
/** Inclusion de l'API de fonctions gerant les erreurs sql.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php'; |
/** Inclusion des fonctions de manipulation du sql. |
* Permet la recuperation d'un nouvel identifiant d'une table.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_site..." de Papyrus.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_menu..." de Papyrus.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_applications..." de Papyrus.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant l'affichage commun.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_general.fonct.php';//ok |
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion des menus classiques.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_classique.fonct.php';//ok |
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion des menus communs.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_commun.fonct.php';//ok |
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion de la redaction de contenu.*/ |
//require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_contenu.fonct.php';//ok |
// Inclusion des fichiers de traduction de l'appli ADME dePapyrus |
if (file_exists(ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) { |
/** Inclusion du fichier de traduction suite a la transaction avec le navigateur.*/ |
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php'; |
} else { |
/** Inclusion du fichier de traduction par defaut.*/ |
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.ADME_I18N_DEFAUT.'.inc.php'; |
} |
// Stockage des styles de l'application |
GEN_stockerStyleExterne('adme_standard', ADME_CHEMIN_STYLE.'adme_standard.css'); |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
function afficherContenuCorps() |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation des variables |
$sortie_xhtml = ''; |
$objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth']; |
$objet_pear_db = $GLOBALS['_GEN_commun']['pear_db']; |
$objet_pear_url = $GLOBALS['_GEN_commun']['url']; |
$copie_objet_pear_url = (PHP_VERSION < 5) ? $objet_pear_url : clone($objet_pear_url); |
$url_site = $GLOBALS['_GEN_commun']['url_site']; |
if (isset($GLOBALS['_GEN_commun']['url_menu'])) { |
$url_menu = $GLOBALS['_GEN_commun']['url_menu']; |
} |
if (isset($_POST['adme_site_id'])) { |
$_GET['adme_site_id'] = $_POST['adme_site_id']; |
} else { |
$_GET['adme_site_id'] = (!isset($_GET['adme_site_id'])) ? 1 : $_GET['adme_site_id']; |
} |
$_GET['adme_menu_id'] = (!isset($_GET['adme_menu_id'])) ? 0 : $_GET['adme_menu_id']; |
$_GET['adme_action'] = (!isset($_GET['adme_action'])) ? '' : $_GET['adme_action']; |
//------------------------------------------------------------------------------------------------------------------- |
// Authentification |
if ($objet_pear_auth->getAuth()) { |
//--------------------------------------------------------------------------------------------------------------- |
// GESTION DES MENUS CLASSIQUES |
// Ajouter un menu classique |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AJOUTER) { |
$message = ADME_ajouterMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Formulaire de mise à jour du menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MODIFIER) { |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_MODIFIER_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MODIFIER_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} |
//var_dump($_POST); |
if (isset($_POST['form_boutons'][ADME_LG_ACTION_CLASSIQUE_VERIFIER])) { |
// Nous cherchons a enregistrer une modification de menu |
$message = ADME_validerFormAjouterMenuClassique($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart. |
$message = ADME_modifierMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Deplacer le menu vers le haut |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MONTER) { |
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplacer le menu vers le bas |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DESCENDRE) { |
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Deplacer le menu vers la gauche (diminuer d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DIMINUER) { |
ADME_indenterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplacer le menu vers la droite (augmenter d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AUGMENTER) { |
ADME_indenterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Traduire le menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_TRADUIRE) { |
$message=''; |
$message = ADME_verifier_traduction_possible($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
if ((!empty($message))) { |
// Pas de traduction possible ! |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
return $sortie_xhtml; |
} |
else { |
// Les données sont valide. Nous affichons le formulaire de traduction |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST,TRUE); |
return $sortie_xhtml; |
} |
if (isset($_POST['form_boutons'][ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) { |
// Nous cherchons a enregistrer une traduction de menu |
$message = ADME_validerFormTraduireMenuClassique($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart. |
$message = ADME_traduireMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Supprimer le menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_SUPPRIMER) { |
// Recuperation du menu de remplacement pour eviter de fermer l'arborescence |
if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) { |
$adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);; |
} else { |
$adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']); |
} |
// Suppression du menu classique |
$message = ADME_supprimerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
// Remplacement de l'id du menu courant par le remplacant. |
$_GET['adme_menu_id'] = $adme_menu_id_remplacement; |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Supprimer le menu traduit |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION) { |
// Suppression du menu classique |
$message = ADME_supprimerMenuClassiqueTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Selectionner le menu comme traduction par defaut : |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT) { |
$message = ADME_selectionnerMenuClassiqueTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Restreindre le menu a la langue selectionne |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_LIMITER) { |
$message = ADME_limiterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'],$_GET['zone']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id'],$_GET['zone']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Ouvrir le menu suite a une restriction |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_OUVRIR) { |
$message = ADME_ouvrirMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
//--------------------------------------------------------------------------------------------------------------- |
// GESTION DES MENUS COMMUNS |
// Ajout un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_AJOUTER) { |
$message = ADME_ajouterMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Formulaire de mise a jour du menu commun. |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MODIFIER) { |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_MODIFIER_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MODIFIER_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} |
if (isset($_POST[ADME_LG_ACTION_COMMUN_VERIFIER])) { |
// Nous cherchons a enregistrer une modification de menu |
$message = ADME_validerFormAjouterMenuCommun($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart. |
$message = ADME_modifierMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Deplace vers le haut de la hierarchie un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MONTER) { |
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplace vers le bas de la hierarchie un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DESCENDRE) { |
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Deplacer le menu vers la gauche (diminuer d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DIMINUER) { |
ADME_indenterMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplacer le menu vers la droite (augmenter d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_AUGMENTER) { |
ADME_indenterMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Traduire le menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_TRADUIRE) { |
$message=''; |
$message = ADME_verifier_traduction_possible($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
if ((!empty($message))) { |
// Pas de traduction possible ! |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
return $sortie_xhtml; |
} |
else { |
// Les données sont valide. Nous affichons le formulaire de traduction |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST,TRUE); |
return $sortie_xhtml; |
} |
if (isset($_POST[ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION])) { |
// Nous cherchons à enregistrer une traduction de menu |
$message = ADME_validerFormTraduireMenuCommun($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ. |
$message = ADME_traduireMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Supprime définitivement un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_SUPPRIMER) { |
// Récupération du menu de remplacement pour éviter de fermer l'arborescence |
if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) { |
$adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);; |
} else { |
$adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']); |
} |
// Suppression du menu commun |
ADME_supprimerMenuCommun($objet_pear_db, $_GET['adme_menu_id']); |
// Remplacement de l'id du menu courant par le remplaçant. |
$_GET['adme_menu_id'] = $adme_menu_id_remplacement; |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Supprimer le menu traduit |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION) { |
// Suppression du menu commun |
$message = ADME_supprimerMenuCommunTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT) { |
$message = ADME_selectionnerMenuCommunTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
//--------------------------------------------------------------------------------------------------------------- |
// GESTION DES INTERFACES D'ADMINISTRATION |
// Appel de l'application d'administration |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_ADMINISTRER) { |
$id_appli = GEN_retournerIdAppliMenu($objet_pear_db, $_GET['adme_menu_id']); |
$chemin_admin = GEN_retournerCheminInterfaceAdmin($objet_pear_db, $id_appli); |
$nom_admin = GEN_retournerNomInterfaceAdmin($objet_pear_db, $id_appli); |
if ($chemin_admin !== false) { |
include_once $chemin_admin; |
$objet_admin = new $nom_admin; |
if (method_exists($objet_admin, 'afficherContenuCorps')) { |
$retour_admin = $objet_admin->afficherContenuCorps(); |
} |
if ($retour_admin !== false) { |
return $retour_admin; |
} |
} |
} |
//--------------------------------------------------------------------------------------------------------------- |
// Affichage des messages si nécessaire |
if (! empty($message)) { |
$sortie_xhtml .= "\n".'<p class="pap_erreur">'.$message.'</p>'; |
} |
//--------------------------------------------------------------------------------------------------------------- |
// Affichage formulaire principal et retour du XHTML! |
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
return $sortie_xhtml; |
// Fin de l'authentification |
} else { |
// Pas d'authentification nous affichons un message! |
$res=''; |
$res .= '<p class="zone_alert">'.ADME_IDENTIFIEZ_VOUS.'</p>'."\n" ; |
$res .= '<form id="form_connexion" style="clear:both;" class="form_identification" action="' ; |
$res .= $objet_pear_url->getURL(); |
$res .= '" method="post"> |
<fieldset> |
<legend>Identifiez vous</legend> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="10" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="20" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="30" value="ok" /> |
</fieldset> |
</form>'; |
return $res ; |
} |
}// Fin de la fonction afficherContenuCorps() |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.28 2007-10-24 14:43:01 ddelon |
* Gestion des menus reservés à une langue |
* |
* Revision 1.27 2007-07-04 14:59:13 florian |
* correction bug maj non prise en charge |
* |
* Revision 1.26 2007/04/19 15:34:35 neiluj |
* préparration release (livraison) "Narmer" - v0.25 |
* |
* Revision 1.25 2006/10/06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.24 2006/06/29 19:13:26 ddelon |
* Bug defaut traduction sur menu commun |
* |
* Revision 1.23 2006/06/29 18:58:57 ddelon |
* Multilinguisme : menu par defaut pour les menu commun |
* |
* Revision 1.22 2006/06/28 12:53:34 ddelon |
* Multilinguisme : menu par defaut |
* |
* Revision 1.21 2006/04/12 21:11:54 ddelon |
* Multilinguisme menus communs |
* |
* Revision 1.20 2006/03/23 20:24:58 ddelon |
* *** empty log message *** |
* |
* Revision 1.19 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.18.2.2 2006/02/28 14:02:08 ddelon |
* Finition multilinguisme |
* |
* Revision 1.18.2.1 2005/12/27 15:56:00 ddelon |
* Fusion Head vers multilinguisme (wikini double clic) |
* |
* Revision 1.18 2005/09/23 15:27:17 florian |
* correction de bugs |
* |
* Revision 1.17 2005/07/18 16:14:32 ddelon |
* css admin + menu communs |
* |
* Revision 1.16 2005/07/08 21:13:15 ddelon |
* Gestion indentation menu |
* |
* Revision 1.15 2005/02/28 11:04:25 jpm |
* Modification des auteurs. |
* |
* Revision 1.14 2005/02/28 10:31:41 jpm |
* Changement de nom de dossier. |
* |
* Revision 1.13 2004/11/16 13:01:41 jpm |
* Ajout d'un commentaire. |
* |
* Revision 1.12 2004/11/15 16:51:08 jpm |
* Correction bogue de mise à jour de l'ordre des menus. |
* |
* Revision 1.11 2004/11/10 17:26:18 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.10 2004/11/10 11:58:58 jpm |
* Mise en place des constantes de traduction de l'appli. |
* |
* Revision 1.9 2004/11/09 17:53:03 jpm |
* Changement des noms des actions sur les menus classiques. |
* |
* Revision 1.8 2004/11/09 17:49:11 jpm |
* Mise en conformité et gestion de différentes interfaces d'administration. |
* |
* Revision 1.7 2004/10/25 16:28:02 jpm |
* Correction convention de codage. |
* |
* Revision 1.6 2004/09/23 17:45:19 jpm |
* Amélioration de la gestion des liens annuler et du selecteur de sites. |
* |
* Revision 1.5 2004/09/23 16:49:24 jpm |
* Correction d'une erreur dans l'url de l'ajout de menu commun. |
* |
* Revision 1.4 2004/07/06 17:24:54 jpm |
* Suppression d'inclusions de fichiers inutiles. |
* |
* Revision 1.3 2004/07/06 17:07:28 jpm |
* Modification de la documentation pour une mailleur analyse par PhpDocumentor. |
* |
* Revision 1.2 2004/06/16 15:06:30 jpm |
* Suppression fichier inutile. |
* |
* Revision 1.1 2004/06/16 15:04:39 jpm |
* Changement de nom de Papyrus en Papyrus. |
* Changement de l'arborescence. |
* |
* Revision 1.26 2004/05/10 14:32:21 jpm |
* Changement du titre. |
* |
* Revision 1.25 2004/05/10 12:13:23 jpm |
* Ajout de la sélection des sites. |
* |
* Revision 1.24 2004/05/07 16:33:05 jpm |
* Intégration de constantes. |
* |
* Revision 1.23 2004/05/07 07:23:53 jpm |
* Amélioration du code, des commentaires et correction de bogues. |
* |
* Revision 1.22 2004/05/05 06:45:44 jpm |
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application. |
* |
* Revision 1.21 2004/05/04 16:27:33 jpm |
* Réduction de code pour la fonction afficherContenuTete(). |
* |
* Revision 1.20 2004/05/03 11:23:26 jpm |
* Début mise en conformité des commentaires. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: admin_menu.php,v 1.29 2007-10-25 10:10:23 alexandre_tb Exp $ |
/** |
* Application gérant les menus de Papyrus |
* |
* Cette application permet de gérer les menus classiques, les menus communs |
* et les liaison d'une application à un menu. |
* |
*@package Admin_menu |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
*@author Laurent COUDOUNEAU <lc@gsite.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.29 $ $Date: 2007-10-25 10:10:23 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php'; |
//Utilisation de la bibliotheque PEAR NET_URL |
/** Inclusion de la bibliotheque PEAR de conception de formulaire.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php'; |
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php'; |
/** Inclusion de l'API de fonctions gerant les erreurs sql.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php'; |
/** Inclusion des fonctions de manipulation du sql. |
* Permet la recuperation d'un nouvel identifiant d'une table.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_site..." de Papyrus.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_menu..." de Papyrus.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_applications..." de Papyrus.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php'; |
/** <BR> Inclusion de la bibliotheque de fonctions concernant l'affichage commun.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_general.fonct.php';//ok |
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion des menus classiques.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_classique.fonct.php';//ok |
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion des menus communs.*/ |
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_commun.fonct.php';//ok |
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion de la redaction de contenu.*/ |
//require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_contenu.fonct.php';//ok |
// Inclusion des fichiers de traduction de l'appli ADME dePapyrus |
if (file_exists(ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) { |
/** Inclusion du fichier de traduction suite a la transaction avec le navigateur.*/ |
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php'; |
} else { |
/** Inclusion du fichier de traduction par defaut.*/ |
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.ADME_I18N_DEFAUT.'.inc.php'; |
} |
// Stockage des styles de l'application |
GEN_stockerStyleExterne('adme_standard', ADME_CHEMIN_STYLE.'adme_standard.css'); |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
function afficherContenuCorps() |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation des variables |
$sortie_xhtml = ''; |
$objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth']; |
$objet_pear_db = $GLOBALS['_GEN_commun']['pear_db']; |
$objet_pear_url = $GLOBALS['_GEN_commun']['url']; |
$copie_objet_pear_url = (PHP_VERSION < 5) ? $objet_pear_url : clone($objet_pear_url); |
$url_site = $GLOBALS['_GEN_commun']['url_site']; |
if (isset($GLOBALS['_GEN_commun']['url_menu'])) { |
$url_menu = $GLOBALS['_GEN_commun']['url_menu']; |
} |
if (isset($_POST['adme_site_id'])) { |
$_GET['adme_site_id'] = $_POST['adme_site_id']; |
} else { |
$_GET['adme_site_id'] = (!isset($_GET['adme_site_id'])) ? 1 : $_GET['adme_site_id']; |
} |
$_GET['adme_menu_id'] = (!isset($_GET['adme_menu_id'])) ? 0 : $_GET['adme_menu_id']; |
$_GET['adme_action'] = (!isset($_GET['adme_action'])) ? '' : $_GET['adme_action']; |
//------------------------------------------------------------------------------------------------------------------- |
// Authentification |
if ($objet_pear_auth->getAuth()) { |
// quelques fois ces variables de session sont utilisées sans avoir été initialisées |
// ce qui peut provoquer des warnings et des bugs mineurs |
if(!isset($_SESSION['adme_menus_classiques_ouverts'])) { |
$_SESSION['adme_menus_classiques_ouverts'] = array(); |
} |
if(!isset($_SESSION['adme_menus_communs_ouverts'])) { |
$_SESSION['adme_menus_communs_ouverts'] = array(); |
} |
//--------------------------------------------------------------------------------------------------------------- |
// GESTION DES MENUS CLASSIQUES |
// Ajouter un menu classique |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AJOUTER) { |
$message = ADME_ajouterMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Formulaire de mise à jour du menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MODIFIER) { |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_MODIFIER_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MODIFIER_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} |
//var_dump($_POST); |
if (isset($_POST['form_boutons'][ADME_LG_ACTION_CLASSIQUE_VERIFIER])) { |
// Nous cherchons a enregistrer une modification de menu |
$message = ADME_validerFormAjouterMenuClassique($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart. |
$message = ADME_modifierMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Deplacer le menu vers le haut |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MONTER) { |
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplacer le menu vers le bas |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DESCENDRE) { |
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Deplacer le menu vers la gauche (diminuer d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DIMINUER) { |
ADME_indenterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplacer le menu vers la droite (augmenter d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AUGMENTER) { |
ADME_indenterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Deplacer le menu vers un autre site |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DEPLACER_MENUS) { |
if(isset($_POST['adme_id_site_depart']) && isset($_POST['adme_id_site_arrivee']) && isset($_POST['adme_id_menu_deplacement'])) { |
ADME_deplacerMenuClassiqueVersSite($objet_pear_db, $_POST['adme_id_site_depart'], $_POST['adme_id_site_arrivee'],$_POST['adme_id_menu_deplacement']); |
} |
} |
// Traduire le menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_TRADUIRE) { |
$message=''; |
$message = ADME_verifier_traduction_possible($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
if ((!empty($message))) { |
// Pas de traduction possible ! |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
return $sortie_xhtml; |
} |
else { |
// Les données sont valide. Nous affichons le formulaire de traduction |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST,TRUE); |
return $sortie_xhtml; |
} |
if (isset($_POST['form_boutons'][ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) { |
// Nous cherchons a enregistrer une traduction de menu |
$message = ADME_validerFormTraduireMenuClassique($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart. |
$message = ADME_traduireMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Supprimer le menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_SUPPRIMER) { |
// Recuperation du menu de remplacement pour eviter de fermer l'arborescence |
if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) { |
$adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);; |
} else { |
$adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']); |
} |
// Suppression du menu classique |
$message = ADME_supprimerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
// Remplacement de l'id du menu courant par le remplacant. |
$_GET['adme_menu_id'] = $adme_menu_id_remplacement; |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Supprimer le menu traduit |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION) { |
// Suppression du menu classique |
$message = ADME_supprimerMenuClassiqueTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Selectionner le menu comme traduction par defaut : |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT) { |
$message = ADME_selectionnerMenuClassiqueTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Restreindre le menu a la langue selectionne |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_LIMITER) { |
$message = ADME_limiterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'],$_GET['zone']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id'],$_GET['zone']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Ouvrir le menu suite a une restriction |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_OUVRIR) { |
$message = ADME_ouvrirMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
//--------------------------------------------------------------------------------------------------------------- |
// GESTION DES MENUS COMMUNS |
// Ajout un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_AJOUTER) { |
$message = ADME_ajouterMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Formulaire de mise a jour du menu commun. |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MODIFIER) { |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_MODIFIER_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MODIFIER_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} |
if (isset($_POST[ADME_LG_ACTION_COMMUN_VERIFIER])) { |
// Nous cherchons a enregistrer une modification de menu |
$message = ADME_validerFormAjouterMenuCommun($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart. |
$message = ADME_modifierMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Deplace vers le haut de la hierarchie un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MONTER) { |
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplace vers le bas de la hierarchie un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DESCENDRE) { |
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Deplacer le menu vers la gauche (diminuer d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DIMINUER) { |
ADME_indenterMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true); |
} |
// Deplacer le menu vers la droite (augmenter d'un niveau) |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_AUGMENTER) { |
ADME_indenterMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false); |
} |
// Traduire le menu |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_TRADUIRE) { |
$message=''; |
$message = ADME_verifier_traduction_possible($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST); |
if ((!empty($message))) { |
// Pas de traduction possible ! |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
return $sortie_xhtml; |
} |
else { |
// Les données sont valide. Nous affichons le formulaire de traduction |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION) { |
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST,TRUE); |
return $sortie_xhtml; |
} |
if (isset($_POST[ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION])) { |
// Nous cherchons à enregistrer une traduction de menu |
$message = ADME_validerFormTraduireMenuCommun($objet_pear_db, $_POST); |
if (!empty($message)) { |
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs. |
$sortie_xhtml .= $message; |
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST); |
return $sortie_xhtml; |
} else { |
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ. |
$message = ADME_traduireMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
} |
} |
// Supprime définitivement un menu commun |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_SUPPRIMER) { |
// Récupération du menu de remplacement pour éviter de fermer l'arborescence |
if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) { |
$adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);; |
} else { |
$adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']); |
} |
// Suppression du menu commun |
ADME_supprimerMenuCommun($objet_pear_db, $_GET['adme_menu_id']); |
// Remplacement de l'id du menu courant par le remplaçant. |
$_GET['adme_menu_id'] = $adme_menu_id_remplacement; |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
// Supprimer le menu traduit |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION) { |
// Suppression du menu commun |
$message = ADME_supprimerMenuCommunTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT) { |
$message = ADME_selectionnerMenuCommunTraduction($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']); |
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']); |
header("Location: ".str_replace('&', '&', $copie_objet_pear_url->getUrl())); |
exit; |
} |
//--------------------------------------------------------------------------------------------------------------- |
// GESTION DES INTERFACES D'ADMINISTRATION |
// Appel de l'application d'administration |
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_ADMINISTRER) { |
$id_appli = GEN_retournerIdAppliMenu($objet_pear_db, $_GET['adme_menu_id']); |
$chemin_admin = GEN_retournerCheminInterfaceAdmin($objet_pear_db, $id_appli); |
$nom_admin = GEN_retournerNomInterfaceAdmin($objet_pear_db, $id_appli); |
if ($chemin_admin !== false) { |
include_once $chemin_admin; |
$objet_admin = new $nom_admin; |
if (method_exists($objet_admin, 'afficherContenuCorps')) { |
$retour_admin = $objet_admin->afficherContenuCorps(); |
} |
if ($retour_admin !== false) { |
return $retour_admin; |
} |
} |
} |
//--------------------------------------------------------------------------------------------------------------- |
// Affichage des messages si nécessaire |
if (! empty($message)) { |
$sortie_xhtml .= "\n".'<p class="pap_erreur">'.$message.'</p>'; |
} |
//--------------------------------------------------------------------------------------------------------------- |
// Affichage formulaire principal et retour du XHTML! |
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
return $sortie_xhtml; |
// Fin de l'authentification |
} else { |
// Pas d'authentification nous affichons un message! |
$res=''; |
$res .= '<p class="zone_alert">'.ADME_IDENTIFIEZ_VOUS.'</p>'."\n" ; |
$res .= '<form id="form_connexion" style="clear:both;" class="form_identification" action="' ; |
$res .= $objet_pear_url->getURL(); |
$res .= '" method="post"> |
<fieldset> |
<legend>Identifiez vous</legend> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="1" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="2" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="3" value="ok" /> |
</fieldset> |
</form>'; |
return $res ; |
} |
}// Fin de la fonction afficherContenuCorps() |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.28 2007-10-24 14:43:01 ddelon |
* Gestion des menus reservés à une langue |
* |
* Revision 1.27 2007-07-04 14:59:13 florian |
* correction bug maj non prise en charge |
* |
* Revision 1.26 2007/04/19 15:34:35 neiluj |
* préparration release (livraison) "Narmer" - v0.25 |
* |
* Revision 1.25 2006/10/06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.24 2006/06/29 19:13:26 ddelon |
* Bug defaut traduction sur menu commun |
* |
* Revision 1.23 2006/06/29 18:58:57 ddelon |
* Multilinguisme : menu par defaut pour les menu commun |
* |
* Revision 1.22 2006/06/28 12:53:34 ddelon |
* Multilinguisme : menu par defaut |
* |
* Revision 1.21 2006/04/12 21:11:54 ddelon |
* Multilinguisme menus communs |
* |
* Revision 1.20 2006/03/23 20:24:58 ddelon |
* *** empty log message *** |
* |
* Revision 1.19 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.18.2.2 2006/02/28 14:02:08 ddelon |
* Finition multilinguisme |
* |
* Revision 1.18.2.1 2005/12/27 15:56:00 ddelon |
* Fusion Head vers multilinguisme (wikini double clic) |
* |
* Revision 1.18 2005/09/23 15:27:17 florian |
* correction de bugs |
* |
* Revision 1.17 2005/07/18 16:14:32 ddelon |
* css admin + menu communs |
* |
* Revision 1.16 2005/07/08 21:13:15 ddelon |
* Gestion indentation menu |
* |
* Revision 1.15 2005/02/28 11:04:25 jpm |
* Modification des auteurs. |
* |
* Revision 1.14 2005/02/28 10:31:41 jpm |
* Changement de nom de dossier. |
* |
* Revision 1.13 2004/11/16 13:01:41 jpm |
* Ajout d'un commentaire. |
* |
* Revision 1.12 2004/11/15 16:51:08 jpm |
* Correction bogue de mise à jour de l'ordre des menus. |
* |
* Revision 1.11 2004/11/10 17:26:18 jpm |
* Fin gestion de la traduction. |
* |
* Revision 1.10 2004/11/10 11:58:58 jpm |
* Mise en place des constantes de traduction de l'appli. |
* |
* Revision 1.9 2004/11/09 17:53:03 jpm |
* Changement des noms des actions sur les menus classiques. |
* |
* Revision 1.8 2004/11/09 17:49:11 jpm |
* Mise en conformité et gestion de différentes interfaces d'administration. |
* |
* Revision 1.7 2004/10/25 16:28:02 jpm |
* Correction convention de codage. |
* |
* Revision 1.6 2004/09/23 17:45:19 jpm |
* Amélioration de la gestion des liens annuler et du selecteur de sites. |
* |
* Revision 1.5 2004/09/23 16:49:24 jpm |
* Correction d'une erreur dans l'url de l'ajout de menu commun. |
* |
* Revision 1.4 2004/07/06 17:24:54 jpm |
* Suppression d'inclusions de fichiers inutiles. |
* |
* Revision 1.3 2004/07/06 17:07:28 jpm |
* Modification de la documentation pour une mailleur analyse par PhpDocumentor. |
* |
* Revision 1.2 2004/06/16 15:06:30 jpm |
* Suppression fichier inutile. |
* |
* Revision 1.1 2004/06/16 15:04:39 jpm |
* Changement de nom de Papyrus en Papyrus. |
* Changement de l'arborescence. |
* |
* Revision 1.26 2004/05/10 14:32:21 jpm |
* Changement du titre. |
* |
* Revision 1.25 2004/05/10 12:13:23 jpm |
* Ajout de la sélection des sites. |
* |
* Revision 1.24 2004/05/07 16:33:05 jpm |
* Intégration de constantes. |
* |
* Revision 1.23 2004/05/07 07:23:53 jpm |
* Amélioration du code, des commentaires et correction de bogues. |
* |
* Revision 1.22 2004/05/05 06:45:44 jpm |
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application. |
* |
* Revision 1.21 2004/05/04 16:27:33 jpm |
* Réduction de code pour la fonction afficherContenuTete(). |
* |
* Revision 1.20 2004/05/03 11:23:26 jpm |
* Début mise en conformité des commentaires. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_menu/configuration/adme_configuration.inc.php |
---|
121,7 → 121,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adme_configuration.inc.php,v $ |
* Revision 1.6 2006-06-28 12:53:34 ddelon |
* Multilinguisme : menu par defaut |
* |
* Revision 1.5 2005/07/08 21:13:15 ddelon |
* Gestion indentation menu |
* |
/trunk/papyrus/applications/admin_site/bibliotheque/adsi_affichage.fonct.php |
---|
68,7 → 68,10 |
// +- Fin du code source --------------------------------------------------------------------------------+ |
/* |
* $Log: not supported by cvs2svn $ |
* $Log: adsi_affichage.fonct.php,v $ |
* Revision 1.5 2005-02-28 11:07:00 jpm |
* Modification des auteurs. |
* |
* Revision 1.4 2005/02/28 10:59:07 jpm |
* Modification des commentaires et copyright. |
* |
/trunk/papyrus/applications/admin_site/langues/adsi_langue_en.inc.php |
---|
46,7 → 46,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adsi_langue_en.inc.php,v $ |
* Revision 1.2 2006-03-02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.1.2.1 2006/02/28 14:02:10 ddelon |
* Finition multilinguisme |
* |
/trunk/papyrus/applications/admin_site/langues/adsi_langue_fr.inc.php |
---|
46,7 → 46,10 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adsi_langue_fr.inc.php,v $ |
* Revision 1.3 2006-10-06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.2 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
/trunk/papyrus/applications/admin_site/admin_site.php |
---|
315,10 → 315,10 |
<fieldset> |
<legend>Identifiez vous</legend> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="10" value="courriel" /> |
<input type="text" id="username" name="username" maxlength="80" tabindex="1" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="20" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="30" value="ok" /> |
<input type="password" id="password" name="password" maxlength="80" tabindex="2" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="3" value="ok" /> |
</fieldset> |
</form>'; |
return $res ; |
326,7 → 326,10 |
}//Fin de la fonction afficherContenuCorps(). |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log: not supported by cvs2svn $ |
* $Log: admin_site.php,v $ |
* Revision 1.12 2006-10-06 10:40:51 florian |
* harmonisation des messages d'erreur de l'authentification |
* |
* Revision 1.11 2006/03/15 23:35:25 ddelon |
* Gestion site |
* |
/trunk/papyrus/applications/admin_site/configuration/adsi_configuration.inc.php |
---|
64,7 → 64,10 |
define ('ADSI_I18N_DEFAUT', 'fr'); |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: adsi_configuration.inc.php,v $ |
* Revision 1.5 2006-03-22 13:18:00 alexandre_tb |
* ajout de la constante ADSI_I18N_DEFAUT |
* |
* Revision 1.4 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
/trunk/papyrus/applications/afficheur/configuration/affi_fckconfig.js |
---|
62,9 → 62,9 |
FCKConfig.DefaultLanguage = 'fr' ; |
FCKConfig.ContentLangDirection = 'ltr' ; |
FCKConfig.ProcessHTMLEntities = true ; |
FCKConfig.IncludeLatinEntities = true ; |
FCKConfig.IncludeGreekEntities = true ; |
FCKConfig.ProcessHTMLEntities = false ; |
FCKConfig.IncludeLatinEntities = false ; |
FCKConfig.IncludeGreekEntities = false ; |
FCKConfig.ProcessNumericEntities = false ; |
/trunk/papyrus/applications/afficheur/configuration/affi_configuration.inc.php |
---|
106,7 → 106,11 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: affi_configuration.inc.php,v $ |
* Revision 1.14 2007-06-26 13:30:48 jp_milcent |
* Suppression de l'utilisation de Quickform. |
* Utilisation de squellette PHP. |
* |
* Revision 1.13 2006-04-28 12:41:49 florian |
* corrections erreurs chemin |
* |
/trunk/papyrus/applications/afficheur/afficheur.admin.php |
---|
1,129 → 1,129 |
<?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: afficheur.admin.php,v 1.24 2007-06-26 15:38:39 jp_milcent Exp $ |
/** |
* Gestion de la rédaction du contenu pour Papyrus. |
* |
* Contient les fonctions nécessaires à la gestion du contenu de Papyrus. |
* |
*@package Afficheur |
*@subpackage Administration |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.24 $ $Date: 2007-06-26 15:38:39 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// Nous indiquons à Papyrus de ne pas chercher de balises d'applettes dans le contenu généré par l'appli |
$GLOBALS['_PAPYRUS_']['applette']['analyse'] = false; |
// +------------------------------------------------------------------------------------------------------+ |
// | CLASSE | |
// +------------------------------------------------------------------------------------------------------+ |
class Afficheur_Admin { |
var $objet_pear_auth; |
var $objet_pear_db; |
var $objet_pear_url; |
var $sortie_xhtml; |
/** Fonction redigerContenu() - Affiche le formulaire de rédaction |
* |
* |
* @return string Le HTML |
*/ |
function afficherContenuCorps() |
{ |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_PAP.'applications'.GEN_SEP.'afficheur'.GEN_SEP.'configuration'.GEN_SEP.'affi_configuration.inc.php'; |
//------------------------------------------------------------------------------------------------------------------- |
// Stockage des styles de l'application |
GEN_stockerStyleExterne('afficheur', AFFI_CHEMIN_STYLE.'afficheur.css'); |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation des attributs |
$this->objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth']; |
$this->objet_pear_db = $GLOBALS['_GEN_commun']['pear_db']; |
$this->objet_pear_url = $GLOBALS['_GEN_commun']['url']; |
$this->sortie_xhtml = ''; |
//------------------------------------------------------------------------------------------------------------------- |
// Gestion de l'interface |
if (isset($_POST['afficheur_annuler'])) { |
return false; |
} else if (isset($_POST['afficheur_enregistrer_quitter'])) { |
// Mise à jour du contenu |
$this->_ajouterContenu($this->objet_pear_db, $this->objet_pear_url, $this->objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
return false; |
} else if (isset($_POST['afficheur_enregistrer_rester'])) { |
// Mise à jour du contenu |
$this->_ajouterContenu($this->objet_pear_db, $this->objet_pear_url, $this->objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
} else if (isset($_POST['afficheur_historique'])) { |
// Réediter une version archivée |
$this->sortie_xhtml .= $this->_reediterContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
} else { |
if (isset($_GET['adme_version'])) { |
// Nous avons demandés la réedition d'une version archivées |
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action'], $_GET['adme_version']); |
} else { |
// Nous affichons le dernier contenu |
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
} |
} |
return $this->sortie_xhtml; |
} |
function _redigerContenu($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $adme_contenu_id = '') |
<?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: afficheur.admin.php,v 1.24 2007-06-26 15:38:39 jp_milcent Exp $ |
/** |
* Gestion de la rédaction du contenu pour Papyrus. |
* |
* Contient les fonctions nécessaires à la gestion du contenu de Papyrus. |
* |
*@package Afficheur |
*@subpackage Administration |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.24 $ $Date: 2007-06-26 15:38:39 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// Nous indiquons à Papyrus de ne pas chercher de balises d'applettes dans le contenu généré par l'appli |
$GLOBALS['_PAPYRUS_']['applette']['analyse'] = false; |
// +------------------------------------------------------------------------------------------------------+ |
// | CLASSE | |
// +------------------------------------------------------------------------------------------------------+ |
class Afficheur_Admin { |
var $objet_pear_auth; |
var $objet_pear_db; |
var $objet_pear_url; |
var $sortie_xhtml; |
/** Fonction redigerContenu() - Affiche le formulaire de rédaction |
* |
* |
* @return string Le HTML |
*/ |
function afficherContenuCorps() |
{ |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_PAP.'applications'.GEN_SEP.'afficheur'.GEN_SEP.'configuration'.GEN_SEP.'affi_configuration.inc.php'; |
//------------------------------------------------------------------------------------------------------------------- |
// Stockage des styles de l'application |
GEN_stockerStyleExterne('afficheur', AFFI_CHEMIN_STYLE.'afficheur.css'); |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation des attributs |
$this->objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth']; |
$this->objet_pear_db = $GLOBALS['_GEN_commun']['pear_db']; |
$this->objet_pear_url = $GLOBALS['_GEN_commun']['url']; |
$this->sortie_xhtml = ''; |
//------------------------------------------------------------------------------------------------------------------- |
// Gestion de l'interface |
if (isset($_POST['afficheur_annuler'])) { |
return false; |
} else if (isset($_POST['afficheur_enregistrer_quitter'])) { |
// Mise à jour du contenu |
$this->_ajouterContenu($this->objet_pear_db, $this->objet_pear_url, $this->objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
return false; |
} else if (isset($_POST['afficheur_enregistrer_rester'])) { |
// Mise à jour du contenu |
$this->_ajouterContenu($this->objet_pear_db, $this->objet_pear_url, $this->objet_pear_auth, $_GET['adme_menu_id'], $_POST); |
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
} else if (isset($_POST['afficheur_historique'])) { |
// Réediter une version archivée |
$this->sortie_xhtml .= $this->_reediterContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
} else { |
if (isset($_GET['adme_version'])) { |
// Nous avons demandés la réedition d'une version archivées |
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action'], $_GET['adme_version']); |
} else { |
// Nous affichons le dernier contenu |
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']); |
} |
} |
return $this->sortie_xhtml; |
} |
function _redigerContenu($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $adme_contenu_id = '') |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation de variable |
$contenu = ''; |
$donnees = array(); |
$contenu = ''; |
$donnees = array(); |
$url->addQueryString('adme_site_id', $adme_site_id); |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$url->addQueryString('adme_action', $adme_action); |
if ($adme_contenu_id != '') { |
// Nous réeditons une version archivée |
$ligne_dernier_contenu = GEN_rechercheContenuIdentifiant($db, $adme_contenu_id, DB_FETCHMODE_ASSOC); |
$donnees['reedition_info'] = $ligne_dernier_contenu['gmc_date_modification']; |
if ($adme_contenu_id != '') { |
// Nous réeditons une version archivée |
$ligne_dernier_contenu = GEN_rechercheContenuIdentifiant($db, $adme_contenu_id, DB_FETCHMODE_ASSOC); |
$donnees['reedition_info'] = $ligne_dernier_contenu['gmc_date_modification']; |
} else { |
// Nous affichons la dernière version du contenu |
$ligne_dernier_contenu = GEN_rechercheContenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC); |
// Nous affichons la dernière version du contenu |
$ligne_dernier_contenu = GEN_rechercheContenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC); |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération des données |
// Récupération des données |
$donnees['form_url'] = $url->getUrl(); |
// Gestion de FckEditor |
// Gestion de FckEditor |
$donnees['fck_editor'] = ''; |
if ($GLOBALS['_AFFI_']['fckeditor']['utilisation']) { |
/** Inclusion du fichier de FCKeditor*/ |
148,46 → 148,46 |
$donnees['fck_editor'] = $fckeditor->CreateHtml(); |
} |
} |
// Identifiant du menu |
// Identifiant du menu |
$donnees['gmc_ce_menu'] = $adme_menu_id; |
// Type de contenu |
// Par défaut c'est du XHTML (donc 1) |
$donnees['gmc_ce_type_contenu'] = 1; |
// Type de contenu |
// Par défaut c'est du XHTML (donc 1) |
$donnees['gmc_ce_type_contenu'] = 1; |
if (isset($ligne_dernier_contenu['gmc_ce_type_contenu'])) { |
$donnees['gmc_ce_type_contenu'] = $ligne_dernier_contenu['gmc_ce_type_contenu']; |
$donnees['gmc_ce_type_contenu'] = $ligne_dernier_contenu['gmc_ce_type_contenu']; |
} |
$squelette = AFFI_CHEMIN_SQUELETTE.'formulaire.tpl.html'; |
$squelette = AFFI_CHEMIN_SQUELETTE.'formulaire.tpl.html'; |
return $this->_genererContenu($squelette, $donnees); |
} |
function _reediterContenu($db, $url, $adme_site_id, $adme_menu_id, $adme_action) |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation de variable |
$contenu = ''; |
$donnees = array(); |
$url->addQueryString('adme_site_id', $adme_site_id); |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$url->addQueryString('adme_action', $adme_action); |
$donnees['archives'] = GEN_lireContenuMenuHistorique(&$db, $adme_menu_id); |
foreach ($donnees['archives'] as $cle => $archive) { |
$url->addQueryString('adme_version', $archive->gmc_id_contenu); |
$donnees['archives'][$cle]->url = $url->getURL(); |
$url->removeQueryString('adme_version'); |
} |
// print_r($donnees['archives']); |
$squelette = AFFI_CHEMIN_SQUELETTE.'historique.tpl.html'; |
return $this->_genererContenu($squelette, $donnees); |
} |
function _reediterContenu($db, $url, $adme_site_id, $adme_menu_id, $adme_action) |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Initialisation de variable |
$contenu = ''; |
$donnees = array(); |
$url->addQueryString('adme_site_id', $adme_site_id); |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$url->addQueryString('adme_action', $adme_action); |
$donnees['archives'] = GEN_lireContenuMenuHistorique(&$db, $adme_menu_id); |
foreach ($donnees['archives'] as $cle => $archive) { |
$url->addQueryString('adme_version', $archive->gmc_id_contenu); |
$donnees['archives'][$cle]->url = $url->getURL(); |
$url->removeQueryString('adme_version'); |
} |
// print_r($donnees['archives']); |
$squelette = AFFI_CHEMIN_SQUELETTE.'historique.tpl.html'; |
return $this->_genererContenu($squelette, $donnees); |
} |
/** Méthode ajouterContenu() - Enregistre les infos du formulaire de saisie d'un menu |
* |
* |
224,18 → 224,10 |
//------------------------------------------------------------------------------------------------------------------- |
// Obtention d'un nouvel identifiant de contenu |
$nouveau_id_contenu = SQL_obtenirNouveauId($db, 'gen_menu_contenu', 'gmc_id_contenu'); |
// FCK Editor remplace les " par des " qui sont mal interprétés. |
// Remplacement des " |
$tab_valeur['gmc_contenu'] = str_replace('"', '\"', $tab_valeur['gmc_contenu']); |
// Pour l'enregistrement dans la BDD, les caractères spéciaux doivent être précédés de \ ou doublés |
// La fonction magic_quote (< php 6) échappe automatiquement ces caractères. |
// Ce n'est donc pas la peine de faire un traitement sur la chaine si l'option est activée |
if (get_magic_quotes_gpc() == 0) { |
$tab_valeur['gmc_contenu'] = $db->escapeSimple($tab_valeur['gmc_contenu']); |
} |
// remplacement des guillemets doubles pour les appels aux applettes de Papyrus |
$tab_valeur['gmc_contenu'] = str_replace('"', '\"', $tab_valeur['gmc_contenu']); |
//------------------------------------------------------------------------------------------------------------------- |
// Ajout du nouveau contenu pour ce menu |
$requete = 'INSERT INTO gen_menu_contenu SET '. |
250,129 → 242,133 |
'gmc_bool_dernier = 1'; |
$result = $db->query($requete); |
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : ''; |
} |
function _genererContenu($squelette, $donnees) |
{ |
//+------------------------------------------------------------------------------------------------------------+ |
// Extrait les variables et les ajoutes à l'espace de noms local |
// Gestion des squelettes |
extract($donnees); |
// Démarre le buffer |
ob_start(); |
// Inclusion du fichier |
include($squelette); |
// Récupérer le contenu du buffer |
$contenu = ob_get_contents(); |
// Arrête et détruit le buffer |
ob_end_clean(); |
return $contenu; |
} |
}// Fin de la classe |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.23 2007-06-26 13:30:48 jp_milcent |
* Suppression de l'utilisation de Quickform. |
* Utilisation de squellette PHP. |
* |
* Revision 1.22 2007-01-03 11:28:34 ddelon |
* correction bug multilinguisme (portage bug livraison) |
* |
* Revision 1.21 2006/12/01 16:59:45 florian |
* Ajout d'une variable parametrant la recherche de balise d'applette dans le contenu généré par l'appli. |
* |
* Revision 1.20 2006/12/01 11:23:23 ddelon |
* Suppression mode wiki afficheur |
* |
* Revision 1.19 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.18 2006/04/28 12:41:49 florian |
* corrections erreurs chemin |
* |
* Revision 1.17 2006/03/27 13:42:32 ddelon |
* the last but not the least |
* |
* Revision 1.16 2006/03/27 11:21:49 ddelon |
* Still some pb |
* |
* Revision 1.15 2006/03/27 10:14:43 ddelon |
* Still some pb |
* |
* Revision 1.11 2006/03/13 22:27:23 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.10 2006/03/13 22:12:20 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.9 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.8 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.7.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.7 2005/07/18 08:53:14 ddelon |
* Configuration Fcsk et menage |
* |
* Revision 1.6 2005/07/15 17:10:08 ddelon |
* Configuration Fcsk et menage |
* |
* Revision 1.5 2005/06/03 18:39:30 jpm |
* Ajout de la barre d'outil Papyrus FCKeditor. |
* |
* Revision 1.4 2005/05/31 13:43:57 jpm |
* Ajout d'un bouton pour remplacer les entités html. |
* |
* Revision 1.3 2005/04/25 13:56:31 jpm |
* Ajout de styles. |
* |
* Revision 1.2 2005/02/28 10:34:15 jpm |
* Changement de nom Genesia en Papyrus. |
* |
* Revision 1.1 2004/11/09 17:53:49 jpm |
* Interface d'administration de l'application afficheur. |
* |
* Revision 1.4 2004/11/08 17:40:33 jpm |
* Mise en conformité avec la convention de codage. |
* Légères corrections. |
* |
* Revision 1.3 2004/09/23 17:45:13 jpm |
* Amélioration de la gestion des liens annuler et du selecteur de sites. |
* |
* Revision 1.2 2004/07/06 17:07:37 jpm |
* Modification de la documentation pour une mailleur analyse par PhpDocumentor. |
* |
* Revision 1.1 2004/06/16 15:04:32 jpm |
* Changement de nom de Génésia en Papyrus. |
* Changement de l'arborescence. |
* |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
} |
function _genererContenu($squelette, $donnees) |
{ |
//+------------------------------------------------------------------------------------------------------------+ |
// Extrait les variables et les ajoutes à l'espace de noms local |
// Gestion des squelettes |
extract($donnees); |
// Démarre le buffer |
ob_start(); |
// Inclusion du fichier |
include($squelette); |
// Récupérer le contenu du buffer |
$contenu = ob_get_contents(); |
// Arrête et détruit le buffer |
ob_end_clean(); |
return $contenu; |
} |
}// Fin de la classe |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: afficheur.admin.php,v $ |
* Revision 1.24 2007-06-26 15:38:39 jp_milcent |
* Ajout de la gestion de l'historique du contenu. |
* Réédition possible des versions archivées du contenu. |
* |
* Revision 1.23 2007-06-26 13:30:48 jp_milcent |
* Suppression de l'utilisation de Quickform. |
* Utilisation de squellette PHP. |
* |
* Revision 1.22 2007-01-03 11:28:34 ddelon |
* correction bug multilinguisme (portage bug livraison) |
* |
* Revision 1.21 2006/12/01 16:59:45 florian |
* Ajout d'une variable parametrant la recherche de balise d'applette dans le contenu généré par l'appli. |
* |
* Revision 1.20 2006/12/01 11:23:23 ddelon |
* Suppression mode wiki afficheur |
* |
* Revision 1.19 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.18 2006/04/28 12:41:49 florian |
* corrections erreurs chemin |
* |
* Revision 1.17 2006/03/27 13:42:32 ddelon |
* the last but not the least |
* |
* Revision 1.16 2006/03/27 11:21:49 ddelon |
* Still some pb |
* |
* Revision 1.15 2006/03/27 10:14:43 ddelon |
* Still some pb |
* |
* Revision 1.11 2006/03/13 22:27:23 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.10 2006/03/13 22:12:20 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.9 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.8 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.7.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.7 2005/07/18 08:53:14 ddelon |
* Configuration Fcsk et menage |
* |
* Revision 1.6 2005/07/15 17:10:08 ddelon |
* Configuration Fcsk et menage |
* |
* Revision 1.5 2005/06/03 18:39:30 jpm |
* Ajout de la barre d'outil Papyrus FCKeditor. |
* |
* Revision 1.4 2005/05/31 13:43:57 jpm |
* Ajout d'un bouton pour remplacer les entités html. |
* |
* Revision 1.3 2005/04/25 13:56:31 jpm |
* Ajout de styles. |
* |
* Revision 1.2 2005/02/28 10:34:15 jpm |
* Changement de nom Genesia en Papyrus. |
* |
* Revision 1.1 2004/11/09 17:53:49 jpm |
* Interface d'administration de l'application afficheur. |
* |
* Revision 1.4 2004/11/08 17:40:33 jpm |
* Mise en conformité avec la convention de codage. |
* Légères corrections. |
* |
* Revision 1.3 2004/09/23 17:45:13 jpm |
* Amélioration de la gestion des liens annuler et du selecteur de sites. |
* |
* Revision 1.2 2004/07/06 17:07:37 jpm |
* Modification de la documentation pour une mailleur analyse par PhpDocumentor. |
* |
* Revision 1.1 2004/06/16 15:04:32 jpm |
* Changement de nom de Génésia en Papyrus. |
* Changement de l'arborescence. |
* |
* 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/afficheur/squelettes/afficheur.css |
---|
44,7 → 44,11 |
/* +--Fin des CSS ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* $Log: afficheur.css,v $ |
* Revision 1.1 2007-06-26 13:30:48 jp_milcent |
* Suppression de l'utilisation de Quickform. |
* Utilisation de squellette PHP. |
* |
* Revision 1.1 2005-04-25 13:56:08 jpm |
* Ajout du style pour l'afficheur. |
* |
/trunk/papyrus/applications/afficheur/afficheur.php |
---|
1,400 → 1,400 |
<?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: afficheur.php,v 1.14 2007-06-26 15:38:39 jp_milcent Exp $ |
/** |
* Application réalisant l'affichage du contenu stocké dans Papyrus. |
* |
* Récupère le dernier contenu lié à un menu et le retourne. |
* |
*@package Afficheur |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Alexandre GRANIER <alexandrel@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.14 $ $Date: 2007-06-26 15:38:39 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_PAP.'applications/afficheur/configuration/affi_configuration.inc.php'; |
// Inclusion de la bibliothèque PEAR Text_Wiki réalisées par Papyrus. |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS 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() { |
// si moteur de recherche est actif (paramètre "search") on ne poursuit pas la construction du corps de page |
// cf: papyrus/applettes/google/google.php |
if(isset($_GET['r'])) return ''; |
$retour = ''; |
$db = $GLOBALS['_AFFICHEUR']['objet_pear_db']; |
$id_or = GEN_rechercheMenuCode($db, GEN_rechercheMenuIdentifiant($db, $GLOBALS['_AFFICHEUR']['menu_courant_id'])); |
$ligne_contenu = GEN_rechercheContenu($db, $id_or); |
$contenu = $ligne_contenu->gmc_contenu; |
// Inclusion de la bibliothèque Text_Wiki_Papyrus effectuées par Papyrus précédement |
// Les actions Text_Wiki_Papyrus sont gérées par Papyrus |
// Nous regardons si nous avons à faire à un texte sous format Wikini ou XHTML |
if (($ligne_contenu->gmc_ce_type_contenu == 1)||(substr($ligne_contenu->gmc_ce_type_contenu,-1)== 1)) { |
$retour = $contenu; |
} elseif (($ligne_contenu->gmc_ce_type_contenu == 2) || (substr($ligne_contenu->gmc_ce_type_contenu,-1)== 2)){ |
include_once AFFI_CHEMIN_BIBLIOTHEQUE_API.'text/wiki_wikini/Wikini.class.php'; |
// Création d'un objet Text_Wikini : |
$wikini =& new Text_Wikini(); |
// Pour éviter de remplacer les caractères spéciaux du XHTML: |
$wikini->setFormatConf('Xhtml', 'translate', false); |
// Configuration de la règle Freelink : |
$wikini->setRenderConf('Xhtml', 'freelink', 'pages', null); |
$wikini->setRenderConf('Xhtml', 'freelink', 'view_url', AFFI_URL_PAPYRUS); |
// Configuration de la règle Interwiki : |
$wikini->setRenderConf('Xhtml', 'interwiki', 'sites', $GLOBALS['_AFFICHEUR']['interwiki_sites']); |
// Application des règles de Wikini : |
$retour = $wikini->transform($contenu, 'Xhtml'); |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// Nous regardons si nous voulons surligner ou pas des mots |
if (isset($_GET['var_recherche'])) { |
$tab_mots = explode(' ', rawurldecode($_GET['var_recherche'])); |
foreach ($tab_mots as $mot) { |
if (strlen($mot) >= 2) { |
$regexp = '/(>[^<]*)('.$mot.'\b)/Uis'; |
$retour = preg_replace($regexp, '$1<span class="surlignage">$2</span>', $retour); |
} |
} |
} |
//---------------------------------------------------------------------------- |
// Renvoie du contenu de la page |
return $retour; |
} |
/** Fonction afficherContenuCorps() - Fonction appelé par le gestionnaire Papyrus. |
* |
* Elle retourne le contenu stocké dans Papyrus pour le menu courant demandé. |
* |
* @return string du code XHTML correspondant au contenu du menu demandé. |
*/ |
function afficherContenuCorpsOld() |
{ |
//---------------------------------------------------------------------------- |
// Initialisation des variable |
$retour = ''; |
$id_langue = $GLOBALS['_GEN_commun']['i18n']; |
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération des informations du contenu concerné. |
$ligne_menu = GEN_lireInfoMenu($GLOBALS['_AFFICHEUR']['objet_pear_db'], $GLOBALS['_AFFICHEUR']['menu_courant_id'], DB_FETCHMODE_ASSOC); |
if ($ligne_menu == false) { |
die('ERREUR Papyrus Administrateur de Menus: impossible de lire les infos du menu.<br />'. |
'Idenitifiant du menu n° : '. $GLOBALS['_AFFICHEUR']['objet_pear_db'] .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Comment ca marche ? |
// Historiquement, le code menu est associé au contenu |
// Depuis le passage au multilinguisme : ce comportement est conservé mais : |
// Tout nouveau contenu, contient également l'information code gm_id_menu, enfoui dans le |
// type contenu. |
// Récupération identifiant du menu en cours |
$requete = 'SELECT gm_id_menu, gm_code_num '. |
'FROM gen_menu '. |
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '. |
'AND gm_ce_i18n = "'.$langue_test.'" '; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
if ( $resultat->numRows() > 0 ) { |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
} |
else { |
// Recherche defaut : |
$requete = 'SELECT gm_id_menu, gm_code_num '. |
'FROM gen_menu '. |
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '; |
'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
if ($langue_test!=GEN_I18N_ID_DEFAUT) { |
$requete_defaut = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '. |
'FROM gen_menu_relation '. |
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut |
$resultat_defaut = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete_defaut); |
(DB::isError($resultat_defaut)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_defaut->getMessage(), $requete_defaut)) |
: ''; |
if ($resultat_defaut->numRows() > 0) { |
$ligne=$resultat_defaut->fetchRow(DB_FETCHMODE_OBJECT); |
} |
} |
} |
// Cas historique : ce menu n'a jamais été traduit. |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne->gm_id_menu.' '. |
'AND gmc_ce_type_contenu in (1,2) '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Rien trouvé ? : Migration multilinguisme ou pas encore de contenu |
if ( $resultat->numRows() == 0 ) { |
// Migration multilinguisme |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne_menu['gm_code_num'].' '. |
'AND truncate((gmc_ce_type_contenu/10),0) = '. $ligne->gm_id_menu . ' '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Pas de contenu, tentative de recuperation du contenu se |
if ( $resultat->numRows() == 0 ) { |
$requete = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '. |
'FROM gen_menu_relation '. |
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) |
: ''; |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu, gen_menu_relation '. |
'WHERE truncate((gmc_ce_type_contenu/10),0) = gmr_id_menu_01 '. |
'AND '.$ligne->gm_id_menu.' = gmr_id_menu_02 '. |
'AND gmr_id_valeur = 2 '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
/* |
$requete = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '. |
'FROM gen_menu_relation '. |
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
print_r ($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) |
: ''; |
*/ |
} |
// Toujours rien ? |
if ( $resultat->numRows() == 0 ) { |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne->gm_code_num.' '. |
'AND gmc_ce_type_contenu in (1,2) '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
} |
$ligne_contenu = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$contenu = $ligne_contenu->gmc_contenu; |
// Inclusion de la bibliothèque Text_Wiki_Papyrus effectuées par Papyrus précédement |
// Les actions Text_Wiki_Papyrus sont gérées par Papyrus |
// Nous regardons si nous avons à faire à un texte sous format Wikini ou XHTML |
if (($ligne_contenu->gmc_ce_type_contenu == 1)||(substr($ligne_contenu->gmc_ce_type_contenu,-1)== 1)) { |
$retour = $contenu; |
} elseif (($ligne_contenu->gmc_ce_type_contenu == 2) || (substr($ligne_contenu->gmc_ce_type_contenu,-1)== 2)){ |
include_once AFFI_CHEMIN_BIBLIOTHEQUE_API.'text/wiki_wikini/Wikini.class.php'; |
// Création d'un objet Text_Wikini : |
$wikini =& new Text_Wikini(); |
// Pour éviter de remplacer les caractères spéciaux du XHTML: |
$wikini->setFormatConf('Xhtml', 'translate', false); |
// Configuration de la règle Freelink : |
$wikini->setRenderConf('Xhtml', 'freelink', 'pages', null); |
$wikini->setRenderConf('Xhtml', 'freelink', 'view_url', AFFI_URL_PAPYRUS); |
// Configuration de la règle Interwiki : |
$wikini->setRenderConf('Xhtml', 'interwiki', 'sites', $GLOBALS['_AFFICHEUR']['interwiki_sites']); |
// Application des règles de Wikini : |
$retour = $wikini->transform($contenu, 'Xhtml'); |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// Nous regardons si nous voulons surligner ou pas des mots |
if (isset($_GET['var_recherche'])) { |
$tab_mots = explode(' ', rawurldecode($_GET['var_recherche'])); |
foreach ($tab_mots as $mot) { |
if (strlen($mot) >= 2) { |
$regexp = '/(>[^<]*)('.$mot.'\b)/Uis'; |
$retour = preg_replace($regexp, '$1<span class="surlignage">$2</span>', $retour); |
} |
} |
} |
//---------------------------------------------------------------------------- |
// Renvoie du contenu de la page |
return $retour; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.13 2006-11-21 18:52:20 jp_milcent |
* Ajout de la possibilité de surligner des mots. |
* |
* Revision 1.12 2006/11/21 15:50:05 jp_milcent |
* Ajout du surlignage des mots passé dans la query string via la variable var_recherche. |
* |
* Revision 1.11 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.10 2006/06/29 15:12:26 ddelon |
* Multilinguisme : contenu par defaut |
* |
* Revision 1.9 2006/03/27 10:50:24 ddelon |
* Still some pb |
* |
* Revision 1.7 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.6 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.5.2.3 2006/03/02 00:22:23 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.5.2.2 2006/03/01 23:51:07 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.5.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.5 2005/04/21 16:46:17 jpm |
* Gestion via Papyrus du XHTML. |
* |
* Revision 1.4 2005/02/22 18:25:13 jpm |
* Déplacement d'un message d'alerte en cas d'erreur sql. |
* |
* Revision 1.3 2004/12/07 12:24:30 jpm |
* Changement chemin d'accés à l'api Text/Wiki... |
* |
* Revision 1.2 2004/11/26 13:10:05 jpm |
* Utilisation des actions Papyrus et implémentation de la syntaxe Wikini. |
* |
* Revision 1.1 2004/06/16 14:35:26 jpm |
* Changement de nom de Génésia en Papyrus. |
* Changement de l'arborescence. |
* |
* Revision 1.12 2004/05/05 11:35:12 jpm |
* Amélioration de la gestion de l'internationalisation. |
* |
* Revision 1.11 2004/05/05 06:45:40 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.10 2004/05/04 16:28:22 jpm |
* Réduction de code pour la fonction afficherContenuTete(). |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
<?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: afficheur.php,v 1.14 2007-06-26 15:38:39 jp_milcent Exp $ |
/** |
* Application réalisant l'affichage du contenu stocké dans Papyrus. |
* |
* Récupère le dernier contenu lié à un menu et le retourne. |
* |
*@package Afficheur |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Alexandre GRANIER <alexandrel@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.14 $ $Date: 2007-06-26 15:38:39 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_PAP.'applications/afficheur/configuration/affi_configuration.inc.php'; |
// Inclusion de la bibliothèque PEAR Text_Wiki réalisées par Papyrus. |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS 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() { |
$retour = ''; |
$db = $GLOBALS['_AFFICHEUR']['objet_pear_db']; |
$id_or = GEN_rechercheMenuCode($db, GEN_rechercheMenuIdentifiant($db, $GLOBALS['_AFFICHEUR']['menu_courant_id'])); |
$ligne_contenu = GEN_rechercheContenu($db, $id_or); |
$contenu = $ligne_contenu->gmc_contenu; |
// Inclusion de la bibliothèque Text_Wiki_Papyrus effectuées par Papyrus précédement |
// Les actions Text_Wiki_Papyrus sont gérées par Papyrus |
// Nous regardons si nous avons à faire à un texte sous format Wikini ou XHTML |
if (($ligne_contenu->gmc_ce_type_contenu == 1)||(substr($ligne_contenu->gmc_ce_type_contenu,-1)== 1)) { |
$retour = $contenu; |
} elseif (($ligne_contenu->gmc_ce_type_contenu == 2) || (substr($ligne_contenu->gmc_ce_type_contenu,-1)== 2)){ |
include_once AFFI_CHEMIN_BIBLIOTHEQUE_API.'text/wiki_wikini/Wikini.class.php'; |
// Création d'un objet Text_Wikini : |
$wikini =& new Text_Wikini(); |
// Pour éviter de remplacer les caractères spéciaux du XHTML: |
$wikini->setFormatConf('Xhtml', 'translate', false); |
// Configuration de la règle Freelink : |
$wikini->setRenderConf('Xhtml', 'freelink', 'pages', null); |
$wikini->setRenderConf('Xhtml', 'freelink', 'view_url', AFFI_URL_PAPYRUS); |
// Configuration de la règle Interwiki : |
$wikini->setRenderConf('Xhtml', 'interwiki', 'sites', $GLOBALS['_AFFICHEUR']['interwiki_sites']); |
// Application des règles de Wikini : |
$retour = $wikini->transform($contenu, 'Xhtml'); |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// Nous regardons si nous voulons surligner ou pas des mots |
if (isset($_GET['var_recherche'])) { |
$tab_mots = explode(' ', rawurldecode($_GET['var_recherche'])); |
foreach ($tab_mots as $mot) { |
if (strlen($mot) >= 2) { |
$regexp = '/(>[^<]*)('.$mot.'\b)/Uis'; |
$retour = preg_replace($regexp, '$1<span class="surlignage">$2</span>', $retour); |
} |
} |
} |
//---------------------------------------------------------------------------- |
// Renvoie du contenu de la page |
return $retour; |
} |
/** Fonction afficherContenuCorps() - Fonction appelé par le gestionnaire Papyrus. |
* |
* Elle retourne le contenu stocké dans Papyrus pour le menu courant demandé. |
* |
* @return string du code XHTML correspondant au contenu du menu demandé. |
*/ |
function afficherContenuCorpsOld() |
{ |
//---------------------------------------------------------------------------- |
// Initialisation des variable |
$retour = ''; |
$id_langue = $GLOBALS['_GEN_commun']['i18n']; |
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
//------------------------------------------------------------------------------------------------------------------- |
// Récupération des informations du contenu concerné. |
$ligne_menu = GEN_lireInfoMenu($GLOBALS['_AFFICHEUR']['objet_pear_db'], $GLOBALS['_AFFICHEUR']['menu_courant_id'], DB_FETCHMODE_ASSOC); |
if ($ligne_menu == false) { |
die('ERREUR Papyrus Administrateur de Menus: impossible de lire les infos du menu.<br />'. |
'Idenitifiant du menu n° : '. $GLOBALS['_AFFICHEUR']['objet_pear_db'] .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
// Comment ca marche ? |
// Historiquement, le code menu est associé au contenu |
// Depuis le passage au multilinguisme : ce comportement est conservé mais : |
// Tout nouveau contenu, contient également l'information code gm_id_menu, enfoui dans le |
// type contenu. |
// Récupération identifiant du menu en cours |
$requete = 'SELECT gm_id_menu, gm_code_num '. |
'FROM gen_menu '. |
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '. |
'AND gm_ce_i18n = "'.$langue_test.'" '; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
if ( $resultat->numRows() > 0 ) { |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
} |
else { |
// Recherche defaut : |
$requete = 'SELECT gm_id_menu, gm_code_num '. |
'FROM gen_menu '. |
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '; |
'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
if ($langue_test!=GEN_I18N_ID_DEFAUT) { |
$requete_defaut = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '. |
'FROM gen_menu_relation '. |
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut |
$resultat_defaut = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete_defaut); |
(DB::isError($resultat_defaut)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_defaut->getMessage(), $requete_defaut)) |
: ''; |
if ($resultat_defaut->numRows() > 0) { |
$ligne=$resultat_defaut->fetchRow(DB_FETCHMODE_OBJECT); |
} |
} |
} |
// Cas historique : ce menu n'a jamais été traduit. |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne->gm_id_menu.' '. |
'AND gmc_ce_type_contenu in (1,2) '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Rien trouvé ? : Migration multilinguisme ou pas encore de contenu |
if ( $resultat->numRows() == 0 ) { |
// Migration multilinguisme |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne_menu['gm_code_num'].' '. |
'AND truncate((gmc_ce_type_contenu/10),0) = '. $ligne->gm_id_menu . ' '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
// Pas de contenu, tentative de recuperation du contenu se |
if ( $resultat->numRows() == 0 ) { |
$requete = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '. |
'FROM gen_menu_relation '. |
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) |
: ''; |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu, gen_menu_relation '. |
'WHERE truncate((gmc_ce_type_contenu/10),0) = gmr_id_menu_01 '. |
'AND '.$ligne->gm_id_menu.' = gmr_id_menu_02 '. |
'AND gmr_id_valeur = 2 '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
/* |
$requete = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '. |
'FROM gen_menu_relation '. |
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
print_r ($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) |
: ''; |
*/ |
} |
// Toujours rien ? |
if ( $resultat->numRows() == 0 ) { |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne->gm_code_num.' '. |
'AND gmc_ce_type_contenu in (1,2) '. |
'AND gmc_bool_dernier = 1'; |
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
} |
$ligne_contenu = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$contenu = $ligne_contenu->gmc_contenu; |
// Inclusion de la bibliothèque Text_Wiki_Papyrus effectuées par Papyrus précédement |
// Les actions Text_Wiki_Papyrus sont gérées par Papyrus |
// Nous regardons si nous avons à faire à un texte sous format Wikini ou XHTML |
if (($ligne_contenu->gmc_ce_type_contenu == 1)||(substr($ligne_contenu->gmc_ce_type_contenu,-1)== 1)) { |
$retour = $contenu; |
} elseif (($ligne_contenu->gmc_ce_type_contenu == 2) || (substr($ligne_contenu->gmc_ce_type_contenu,-1)== 2)){ |
include_once AFFI_CHEMIN_BIBLIOTHEQUE_API.'text/wiki_wikini/Wikini.class.php'; |
// Création d'un objet Text_Wikini : |
$wikini =& new Text_Wikini(); |
// Pour éviter de remplacer les caractères spéciaux du XHTML: |
$wikini->setFormatConf('Xhtml', 'translate', false); |
// Configuration de la règle Freelink : |
$wikini->setRenderConf('Xhtml', 'freelink', 'pages', null); |
$wikini->setRenderConf('Xhtml', 'freelink', 'view_url', AFFI_URL_PAPYRUS); |
// Configuration de la règle Interwiki : |
$wikini->setRenderConf('Xhtml', 'interwiki', 'sites', $GLOBALS['_AFFICHEUR']['interwiki_sites']); |
// Application des règles de Wikini : |
$retour = $wikini->transform($contenu, 'Xhtml'); |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// Nous regardons si nous voulons surligner ou pas des mots |
if (isset($_GET['var_recherche'])) { |
$tab_mots = explode(' ', rawurldecode($_GET['var_recherche'])); |
foreach ($tab_mots as $mot) { |
if (strlen($mot) >= 2) { |
$regexp = '/(>[^<]*)('.$mot.'\b)/Uis'; |
$retour = preg_replace($regexp, '$1<span class="surlignage">$2</span>', $retour); |
} |
} |
} |
//---------------------------------------------------------------------------- |
// Renvoie du contenu de la page |
return $retour; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: afficheur.php,v $ |
* Revision 1.14 2007-06-26 15:38:39 jp_milcent |
* Ajout de la gestion de l'historique du contenu. |
* Réédition possible des versions archivées du contenu. |
* |
* Revision 1.13 2006-11-21 18:52:20 jp_milcent |
* Ajout de la possibilité de surligner des mots. |
* |
* Revision 1.12 2006/11/21 15:50:05 jp_milcent |
* Ajout du surlignage des mots passé dans la query string via la variable var_recherche. |
* |
* Revision 1.11 2006/10/16 15:49:07 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* Revision 1.10 2006/06/29 15:12:26 ddelon |
* Multilinguisme : contenu par defaut |
* |
* Revision 1.9 2006/03/27 10:50:24 ddelon |
* Still some pb |
* |
* Revision 1.7 2006/03/13 21:00:20 ddelon |
* Suppression messages d'erreur multilinguisme |
* |
* Revision 1.6 2006/03/02 10:49:49 ddelon |
* Fusion branche multilinguisme dans branche principale |
* |
* Revision 1.5.2.3 2006/03/02 00:22:23 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.5.2.2 2006/03/01 23:51:07 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.5.2.1 2006/02/28 14:02:11 ddelon |
* Finition multilinguisme |
* |
* Revision 1.5 2005/04/21 16:46:17 jpm |
* Gestion via Papyrus du XHTML. |
* |
* Revision 1.4 2005/02/22 18:25:13 jpm |
* Déplacement d'un message d'alerte en cas d'erreur sql. |
* |
* Revision 1.3 2004/12/07 12:24:30 jpm |
* Changement chemin d'accés à l'api Text/Wiki... |
* |
* Revision 1.2 2004/11/26 13:10:05 jpm |
* Utilisation des actions Papyrus et implémentation de la syntaxe Wikini. |
* |
* Revision 1.1 2004/06/16 14:35:26 jpm |
* Changement de nom de Génésia en Papyrus. |
* Changement de l'arborescence. |
* |
* Revision 1.12 2004/05/05 11:35:12 jpm |
* Amélioration de la gestion de l'internationalisation. |
* |
* Revision 1.11 2004/05/05 06:45:40 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.10 2004/05/04 16:28:22 jpm |
* Réduction de code pour la fonction afficherContenuTete(). |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_administrateur/autoload.inc.php |
---|
1,33 → 1,28 |
<?php |
/** |
* Fichier autoload contenant la fonction de chargement automatique des classes |
* et l'appel au fichier de configuration de base. |
* Ce fichier doit être inclut en premier dans toute application |
*/ |
if(!defined('CHEMIN_APPLI')) { |
define('CHEMIN_APPLI',dirname(__FILE__).DIRECTORY_SEPARATOR) ; |
} |
require_once('configuration/config.inc.php'); |
require_once('configuration/config_chemin.inc.php'); |
/** |
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code. |
* |
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code. |
* |
*@param string le nom de la classe appelée. |
*@return void le fichier contenant la classe doit être inclu par la fonction. |
*/ |
function __autoload($classe) |
{ |
$dossiers_classes = array(CHEMIN_BIBLIO.DIRECTORY_SEPARATOR,DOSSIER_CONTROLEURS.DIRECTORY_SEPARATOR,DOSSIER_MODELES.DIRECTORY_SEPARATOR) ; |
foreach ($dossiers_classes as $chemin) { |
if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) { |
require_once $fichier_a_tester; |
return null; |
} |
} |
} |
<?php |
if(!defined('CHEMIN_APPLI')) { |
define('CHEMIN_APPLI',dirname(__FILE__).DIRECTORY_SEPARATOR) ; |
} |
require_once('configuration/config.inc.php'); |
require_once('configuration/config_chemin.inc.php'); |
/** |
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code. |
* |
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code. |
* |
*@param string le nom de la classe appelée. |
*@return void le fichier contenant la classe doit être inclu par la fonction. |
*/ |
function __autoload($classe) |
{ |
$dossiers_classes = array(CHEMIN_BIBLIO.DIRECTORY_SEPARATOR,DOSSIER_CONTROLEURS.DIRECTORY_SEPARATOR,DOSSIER_MODELES.DIRECTORY_SEPARATOR) ; |
foreach ($dossiers_classes as $chemin) { |
if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) { |
require_once $fichier_a_tester; |
return null; |
} |
} |
} |
?> |
/trunk/papyrus/applications/admin_administrateur/configuration/config_chemin.inc.php |
---|
1,10 → 1,10 |
<?php |
// Définition des chemins de fichiers. |
define('CHEMIN_BIBLIO',CHEMIN_APPLI.'bibliotheque'); |
/** Constante stockant le chemin vers le dossier modèles.*/ |
define('DOSSIER_CONTROLEURS', CHEMIN_APPLI.'controleurs'); |
define('DOSSIER_MODELES', CHEMIN_APPLI.'modeles'); |
define('DOSSIER_SQUELETTES', CHEMIN_APPLI.'squelettes'); |
<?php |
// Définition des chemins de fichiers. |
define('CHEMIN_BIBLIO',CHEMIN_APPLI.'bibliotheque'); |
/** Constante stockant le chemin vers le dossier modèles.*/ |
define('DOSSIER_CONTROLEURS', CHEMIN_APPLI.'controleurs'); |
define('DOSSIER_MODELES', CHEMIN_APPLI.'modeles'); |
define('DOSSIER_SQUELETTES', CHEMIN_APPLI.'squelettes'); |
?> |
/trunk/papyrus/applications/admin_administrateur/modeles/ListeAdmin.php |
---|
1,250 → 1,250 |
<?php |
/** |
* Modèle d'accès à la base de données des administrateurs |
* de papyrus |
*/ |
class listeAdmin extends Modele { |
var $config = array() ; |
/** |
* Charge la liste complète des administrateurs |
* return array un tableau contenant des objets d'informations sur les administrateurs |
* @return array un tableau d'objets contenant la liste des administrateurs |
*/ |
function chargerAdmin() { |
$query = 'SELECT * FROM gen_annuaire ORDER BY ga_id_administrateur' ; |
$res = $this->requete($query) ; |
$admin = array() ; |
foreach ($res->fetchAll() as $ligne) |
{ |
if($ligne['ga_id_administrateur'] != 0) { |
$admin[] = $ligne ; |
} |
} |
return $admin ; |
} |
/** |
* Charge les informations liées à un administrateur |
* grâce à son id |
* @param int l'identifiant de l'administrateur. |
* @return object un object contenant les informations de l'administrateur demandé |
*/ |
function loadDetailsAdmin($id) { |
$query = 'SELECT * FROM gen_annuaire where ga_id_administrateur="'.$id.'"' ; |
$res = $this->requete($query) ; |
$admin = array() ; |
foreach ($res->fetchAll() as $ligne) { |
$admin = $ligne ; |
} |
return $admin ; |
} |
/** |
* Modifie les informations liées à un administrateur dans la base de données |
* Si le mot de passe n'est pas renseigné, il n'est pas changé |
* @param int identifiant de l'admiistrateur |
* @param string nom |
* @param string prenom |
* @param string le mail |
* @param string le code de langue |
* @param string le mot de passe (optionnel) |
* @param string la confirmation du mot de passe (optionnel) |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
function modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass='',$pass_conf='') { |
$res = array() ; |
$nb_admin = 0 ; |
if(!$this->validerMail($mail)) { |
$res['mail'] = 'Adresse mail invalide' ; |
} |
$query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail).' AND ga_id_administrateur !='.$id ; |
if($res_nb = $this->requete($query_verif_mail)) { |
$ligne = $res_nb->fetch(); |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res['bdd'] = 'Erreur dans la base de données' ; |
return $res ; |
} |
if($nb_admin != 0) { |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
} |
$query = 'UPDATE gen_annuaire SET ga_ce_i18n='.$this->proteger($lang).', ga_nom='.$this->proteger($nom).',ga_prenom='. |
$this->proteger($prenom).',ga_mail='.$this->proteger($mail) ; |
// si on a entré quelque chose dans les deux champs de mot de passe |
if($pass != '' || $pass_conf != '') { |
// on vérifie si les deux concordent |
if($pass == $pass_conf) { |
// si oui, on les modifie |
$query .= ',ga_mot_de_passe='.$this->proteger(md5($pass)) ; |
} else { |
// si non, on notifiera l'utilisateur |
$res['pass'] = 'mot de passe invalide' ; |
} |
} |
$query .= ' WHERE ga_id_administrateur='.$id ; |
if(count($res) != 0) { |
return $res ; |
} |
if($req_maj = $this->requete($query)) { |
} else { |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
} |
return $res ; |
} |
/** |
* Supprime un administrateur ayant un id donnée |
* @param int l'identifiant de l'administrateur |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
function suppAdmin($id) { |
$nb_admin = 0 ; |
$res = '' ; |
$query_verif = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire' ; |
if($res_nb = $this->requete($query_verif)) { |
$ligne = $res_nb->fetch(); |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res = 'Erreur dans la base de données' ; |
return $res ; |
} |
if($nb_admin == 2) { |
$res = 'Impossible de supprimer le dernier administrateur' ; |
return $res ; |
} |
$query = 'DELETE FROM gen_annuaire WHERE ga_id_administrateur='.$id ; |
if($res_supp = $this->requete($query)) { |
return $res ; |
} else { |
$res = 'Erreur dans la base de données' ; |
return $res ; |
} |
} |
/** |
* Ajoute un administrateur dans la base de données |
* @param string nom |
* @param string prenom |
* @param string le mail |
* @param string le code de langue |
* @param string le mot de passe |
* @param string la confirmation du mot de passe |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
function ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
$nouvel_id = 0 ; |
$nb_admin = 0 ; |
$res = array() ; |
if(!$this->validerMail($mail)) { |
$res['mail'] = 'adresse mail invalide' ; |
} |
$query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail) ; |
if($res_nb = $this->requete($query_verif_mail)) { |
$ligne = $res_nb->fetch() ; |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res['bdd'] = 'Erreur dans la base de données' ; |
return $res ; |
} |
if($nb_admin != 0) { |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
} |
if($pass != '' || $pass_conf != '') { |
// on vérifie si les deux concordent |
if($pass == $pass_conf) { |
} else { |
// si non, on notifiera l'utilisateur |
$res['pass'] = 'mot de passe invalide' ; |
} |
} |
$query = 'SELECT MAX(ga_id_administrateur) as nouvel_id FROM gen_annuaire' ; |
if($res_requete_id = $this->requete($query)) { |
$ligne = $res_requete_id->fetch() ; |
$nouvel_id = $ligne['nouvel_id'] + 1 ; |
} else { |
return $res ; |
} |
$query = 'INSERT INTO gen_annuaire VALUES ('.$nouvel_id.','.$this->proteger($lang).','. |
$this->proteger($nom).','.$this->proteger($prenom).','.$this->proteger(md5($pass)).','. |
$this->proteger($mail).')' ; |
if(count($res) != 0) { |
return $res ; |
} |
if($res_ajout = $this->requete($query)) { |
} else { |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
} |
return $res ; |
} |
/** |
* Fonction qui prend une chaine en paramètre et renvoie vrai |
* si elle constitue un email syntaxiquement valide, faux sinon. |
* @param string le mail à valider |
* @return bool true si le mail est valide, false sinon |
*/ |
function validerMail($mail) { |
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase |
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine) |
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase |
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus |
// séparés par des caractères autorisés avant l'arobase |
'@' . // Suivis d'un arobase |
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine |
// séparés par des points |
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine |
// test de l'adresse e-mail |
if (preg_match($regex, $mail)) { |
return true ; |
} else { |
return false ; |
} |
} |
} |
<?php |
/** |
* Modèle d'accès à la base de données des administrateurs |
* de papyrus |
*/ |
class listeAdmin extends Modele { |
var $config = array() ; |
/** |
* Charge la liste complète des administrateurs |
* return array un tableau contenant des objets d'informations sur les administrateurs |
* @return array un tableau d'objets contenant la liste des administrateurs |
*/ |
function chargerAdmin() { |
$query = 'SELECT * FROM gen_annuaire ORDER BY ga_id_administrateur' ; |
$res = $this->requete($query) ; |
$admin = array() ; |
foreach ($res->fetchAll() as $ligne) |
{ |
if($ligne['ga_id_administrateur'] != 0) { |
$admin[] = $ligne ; |
} |
} |
return $admin ; |
} |
/** |
* Charge les informations liées à un administrateur |
* grâce à son id |
* @param int l'identifiant de l'administrateur. |
* @return object un object contenant les informations de l'administrateur demandé |
*/ |
function loadDetailsAdmin($id) { |
$query = 'SELECT * FROM gen_annuaire where ga_id_administrateur="'.$id.'"' ; |
$res = $this->requete($query) ; |
$admin = array() ; |
foreach ($res->fetchAll() as $ligne) { |
$admin = $ligne ; |
} |
return $admin ; |
} |
/** |
* Modifie les informations liées à un administrateur dans la base de données |
* Si le mot de passe n'est pas renseigné, il n'est pas changé |
* @param int identifiant de l'admiistrateur |
* @param string nom |
* @param string prenom |
* @param string le mail |
* @param string le code de langue |
* @param string le mot de passe (optionnel) |
* @param string la confirmation du mot de passe (optionnel) |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
function modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass='',$pass_conf='') { |
$res = array() ; |
$nb_admin = 0 ; |
if(!$this->validerMail($mail)) { |
$res['mail'] = 'Adresse mail invalide' ; |
} |
$query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail).' AND ga_id_administrateur !='.$id ; |
if($res_nb = $this->requete($query_verif_mail)) { |
$ligne = $res_nb->fetch(); |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res['bdd'] = 'Erreur dans la base de données' ; |
return $res ; |
} |
if($nb_admin != 0) { |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
} |
$query = 'UPDATE gen_annuaire SET ga_ce_i18n='.$this->proteger($lang).', ga_nom='.$this->proteger($nom).',ga_prenom='. |
$this->proteger($prenom).',ga_mail='.$this->proteger($mail) ; |
// si on a entré quelque chose dans les deux champs de mot de passe |
if($pass != '' || $pass_conf != '') { |
// on vérifie si les deux concordent |
if($pass == $pass_conf) { |
// si oui, on les modifie |
$query .= ',ga_mot_de_passe='.$this->proteger(md5($pass)) ; |
} else { |
// si non, on notifiera l'utilisateur |
$res['pass'] = 'mot de passe invalide' ; |
} |
} |
$query .= ' WHERE ga_id_administrateur='.$id ; |
if(count($res) != 0) { |
return $res ; |
} |
if($req_maj = $this->requete($query)) { |
} else { |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
} |
return $res ; |
} |
/** |
* Supprime un administrateur ayant un id donnée |
* @param int l'identifiant de l'administrateur |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
function suppAdmin($id) { |
$nb_admin = 0 ; |
$res = '' ; |
$query_verif = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire' ; |
if($res_nb = $this->requete($query_verif)) { |
$ligne = $res_nb->fetch(); |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res = 'Erreur dans la base de données' ; |
return $res ; |
} |
if($nb_admin == 2) { |
$res = 'Impossible de supprimer le dernier administrateur' ; |
return $res ; |
} |
$query = 'DELETE FROM gen_annuaire WHERE ga_id_administrateur='.$id ; |
if($res_supp = $this->requete($query)) { |
return $res ; |
} else { |
$res = 'Erreur dans la base de données' ; |
return $res ; |
} |
} |
/** |
* Ajoute un administrateur dans la base de données |
* @param string nom |
* @param string prenom |
* @param string le mail |
* @param string le code de langue |
* @param string le mot de passe |
* @param string la confirmation du mot de passe |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
function ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
$nouvel_id = 0 ; |
$nb_admin = 0 ; |
$res = array() ; |
if(!$this->validerMail($mail)) { |
$res['mail'] = 'adresse mail invalide' ; |
} |
$query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail) ; |
if($res_nb = $this->requete($query_verif_mail)) { |
$ligne = $res_nb->fetch() ; |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res['bdd'] = 'Erreur dans la base de données' ; |
return $res ; |
} |
if($nb_admin != 0) { |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
} |
if($pass != '' || $pass_conf != '') { |
// on vérifie si les deux concordent |
if($pass == $pass_conf) { |
} else { |
// si non, on notifiera l'utilisateur |
$res['pass'] = 'mot de passe invalide' ; |
} |
} |
$query = 'SELECT MAX(ga_id_administrateur) as nouvel_id FROM gen_annuaire' ; |
if($res_requete_id = $this->requete($query)) { |
$ligne = $res_requete_id->fetch() ; |
$nouvel_id = $ligne['nouvel_id'] + 1 ; |
} else { |
return $res ; |
} |
$query = 'INSERT INTO gen_annuaire VALUES ('.$nouvel_id.','.$this->proteger($lang).','. |
$this->proteger($nom).','.$this->proteger($prenom).','.$this->proteger(md5($pass)).','. |
$this->proteger($mail).')' ; |
if(count($res) != 0) { |
return $res ; |
} |
if($res_ajout = $this->requete($query)) { |
} else { |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
} |
return $res ; |
} |
/** |
* Fonction qui prend une chaine en paramètre et renvoie vrai |
* si elle constitue un email syntaxiquement valide, faux sinon. |
* @param string le mail à valider |
* @return bool true si le mail est valide, false sinon |
*/ |
function validerMail($mail) { |
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase |
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine) |
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase |
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus |
// séparés par des caractères autorisés avant l'arobase |
'@' . // Suivis d'un arobase |
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine |
// séparés par des points |
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine |
// test de l'adresse e-mail |
if (preg_match($regex, $mail)) { |
return true ; |
} else { |
return false ; |
} |
} |
} |
?> |
/trunk/papyrus/applications/admin_administrateur/admin_administrateur.php |
---|
1,94 → 1,94 |
<?php |
// On inclut l'autoload avant toute chose |
require_once('autoload.inc.php'); |
/** |
* Fonction d'affichage de Papyrus, pour le corps de page |
*/ |
function afficherContenuCorps() { |
// si l'utilisateur est authentifié |
if(VAR_IDENT) { |
// on renvoie la vue principale de l'application |
$methode = '' ; |
if(isset($_GET['m'])) { |
$methode = $_GET['m'] ; |
} |
$controlleur = new AdminAdministrateur(); |
switch($methode) { |
case 'ajout_admin': |
return $controlleur->ajoutAdmin(); |
break; |
case 'ajout_admin_va': |
$nom = $_POST['admin_nom'] ; |
$prenom = $_POST['admin_prenom'] ; |
$mail = $_POST['admin_mail'] ; |
$lang = $_POST['admin_lang'] ; |
$pass = $_POST['admin_pass'] ; |
$pass_conf = $_POST['admin_pass_confirm'] ; |
return $controlleur->ajoutAdminVa($nom,$prenom,$mail,$lang,$pass,$pass_conf); |
break; |
case 'modif_admin': |
$id = $_GET['id_admin']; |
return $controlleur->modifAdmin($id); |
break; |
case 'modif_admin_va': |
$id = $_GET['id_admin']; |
$nom = $_POST['admin_nom']; |
$prenom = $_POST['admin_prenom']; |
$mail = $_POST['admin_mail']; |
$lang = $_POST['admin_lang']; |
$pass = $_POST['admin_pass']; |
$pass_conf = $_POST['admin_pass_confirm']; |
return $controlleur->modifAdminVa($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf); |
break; |
case 'suppr_admin': |
$id = $_GET['id_admin']; |
return $controlleur->supprAdmin($id); |
break; |
default: |
return $controlleur->chargerAdmin(); |
break; |
} |
} else { |
// sinon on lui demande de s'identifier |
$controlleur = new AdminAdministrateur() ; |
return $controlleur->demanderIdent() ; |
} |
} |
function afficherContenuTete() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminTete(); |
} |
function afficherContenuPied() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminPied(); |
} |
if(!defined('PAP_VERSION')) { |
echo afficherContenuTete(); |
echo afficherContenuCorps(); |
echo afficherContenuPied(); |
} |
/* |
* afficherContenuTete() |
* afficherContenuNavigation() |
* afficherContenuMenu() |
* afficherContenuPied() |
* |
*/ |
<?php |
require_once('autoload.inc.php'); |
/** |
* Fonction d'affichage de Papyrus, pour le corps de page |
*/ |
function afficherContenuCorps() { |
// si l'utilisateur est authentifié |
if(VAR_IDENT) { |
// on renvoie la vue principale de l'application |
$methode = '' ; |
if(isset($_GET['m'])) { |
$methode = $_GET['m'] ; |
} |
$controlleur = new AdminAdministrateur(); |
switch($methode) { |
case 'ajout_admin': |
return $controlleur->ajoutAdmin(); |
break; |
case 'ajout_admin_va': |
$nom = $_POST['admin_nom'] ; |
$prenom = $_POST['admin_prenom'] ; |
$mail = $_POST['admin_mail'] ; |
$lang = $_POST['admin_lang'] ; |
$pass = $_POST['admin_pass'] ; |
$pass_conf = $_POST['admin_pass_confirm'] ; |
return $controlleur->ajoutAdminVa($nom,$prenom,$mail,$lang,$pass,$pass_conf); |
break; |
case 'modif_admin': |
$id = $_GET['id_admin']; |
return $controlleur->modifAdmin($id); |
break; |
case 'modif_admin_va': |
$id = $_GET['id_admin']; |
$nom = $_POST['admin_nom']; |
$prenom = $_POST['admin_prenom']; |
$mail = $_POST['admin_mail']; |
$lang = $_POST['admin_lang']; |
$pass = $_POST['admin_pass']; |
$pass_conf = $_POST['admin_pass_confirm']; |
return $controlleur->modifAdminVa($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf); |
break; |
case 'suppr_admin': |
$id = $_GET['id_admin']; |
return $controlleur->supprAdmin($id); |
break; |
default: |
return $controlleur->chargerAdmin(); |
break; |
} |
} else { |
// sinon on lui demande de s'identifier |
$controlleur = new AdminAdministrateur() ; |
return $controlleur->demanderIdent() ; |
} |
} |
function afficherContenuTete() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminTete(); |
} |
function afficherContenuPied() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminPied(); |
} |
if(!defined('PAP_VERSION')) { |
echo afficherContenuTete(); |
echo afficherContenuCorps(); |
echo afficherContenuPied(); |
} |
/* |
* afficherContenuTete() |
* afficherContenuNavigation() |
* afficherContenuMenu() |
* afficherContenuPied() |
* |
*/ |
?> |
/trunk/papyrus/applications/admin_administrateur/bibliotheque/Registre.php |
---|
1,56 → 1,56 |
<?php |
class Registre { |
private $aso_stock = array(); |
private static $registre; |
public function __construct() |
{ |
} |
public static function getInstance() |
{ |
if (self::$registre instanceof Registre) { |
return self::$registre; |
} |
self::$registre = new Registre; |
return self::$registre; |
} |
function set($intitule, $objet) |
{ |
if (is_array($objet) && isset($this->aso_stock[$intitule])) { |
$this->aso_stock[$intitule] = array_merge((array)$this->aso_stock[$intitule], (array)$objet); |
$message = "Le tableau $intitule présent dans le registre a été fusionné avec un nouveau tableau de même intitulé !"; |
trigger_error($message, E_USER_WARNING); |
} else { |
$this->aso_stock[$intitule] = $objet; |
} |
} |
function get($intitule) |
{ |
if (isset($this->aso_stock[$intitule])) { |
return $this->aso_stock[$intitule]; |
} |
return null; |
} |
function detruire($intitule) |
{ |
if (isset($this->aso_stock[$intitule])) { |
unset($this->aso_stock[$intitule]); |
} |
} |
public function etrePresent($intitule) |
{ |
if(isset($this->aso_stock[$intitule])){ |
return true; |
} |
return false; |
} |
} |
<?php |
class Registre { |
private $aso_stock = array(); |
private static $registre; |
public function __construct() |
{ |
} |
public static function getInstance() |
{ |
if (self::$registre instanceof Registre) { |
return self::$registre; |
} |
self::$registre = new Registre; |
return self::$registre; |
} |
function set($intitule, $objet) |
{ |
if (is_array($objet) && isset($this->aso_stock[$intitule])) { |
$this->aso_stock[$intitule] = array_merge((array)$this->aso_stock[$intitule], (array)$objet); |
$message = "Le tableau $intitule présent dans le registre a été fusionné avec un nouveau tableau de même intitulé !"; |
trigger_error($message, E_USER_WARNING); |
} else { |
$this->aso_stock[$intitule] = $objet; |
} |
} |
function get($intitule) |
{ |
if (isset($this->aso_stock[$intitule])) { |
return $this->aso_stock[$intitule]; |
} |
return null; |
} |
function detruire($intitule) |
{ |
if (isset($this->aso_stock[$intitule])) { |
unset($this->aso_stock[$intitule]); |
} |
} |
public function etrePresent($intitule) |
{ |
if(isset($this->aso_stock[$intitule])){ |
return true; |
} |
return false; |
} |
} |
?> |
/trunk/papyrus/applications/admin_administrateur/bibliotheque/Chronometre.php |
---|
1,185 → 1,185 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 5.0.4 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This file is part of eFlore-Debogage. | |
// | | |
// | Foobar is free software; you can redistribute it and/or modify | |
// | it under the terms of the GNU General Public License as published by | |
// | the Free Software Foundation; either version 2 of the License, or | |
// | (at your option) any later version. | |
// | | |
// | Foobar 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 General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU General Public License | |
// | along with Foobar; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: Chronometre.class.php,v 1.1 2007-01-12 13:16:09 jp_milcent Exp $ |
/** |
* Classe permettant de mesurer le temps d'execution d'un script. |
* |
* Contient des méthodes permettant d'évaluer la vitesse d'exécution d'un script. |
* |
*@package eFlore |
*@subpackage Debogage |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author aucun |
*@copyright Tela-Botanica 2000-2005 |
*@version $Revision: 1.1 $ $Date: 2007-01-12 13:16:09 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/**Classe Chronometre() - Permet de stocker et d'afficher les temps d'éxécution de script. |
* |
* Cette classe permet de réaliser un ensemble de mesure de temps prises à |
* différents endroits d'un script. Ces mesures peuvent ensuite être affichées au |
* sein d'un tableau XHTML. |
* |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*/ |
class Chronometre |
{ |
/*** Attributs : ***/ |
private $temps = array(); |
/*** Constructeur : ***/ |
public function __construct() { |
$this->setTemps(array('depart' => microtime())); |
} |
/*** Accesseurs : ***/ |
public function getTemps($cle = NULL) { |
if (!is_null($cle)) { |
return $this->temps[$cle]; |
} else { |
return $this->temps; |
} |
} |
public function setTemps($moment = array()) { |
array_push($this->temps, $moment); |
} |
/*** Méthodes : ***/ |
/**Méthode afficherChrono() - Permet d'afficher les temps d'éxécution de différentes parties d'un script. |
* |
* Cette fonction permet d'afficher un ensemble de mesure de temps prises à différents endroits d'un script. |
* Ces mesures sont affichées au sein d'un tableau XHTML dont on peut controler l'indentation des balises. |
* Pour un site en production, il suffit d'ajouter un style #chrono {display:none;} dans la css. De cette façon, |
* le tableau ne s'affichera pas. Le webmaster lui pourra rajouter sa propre feuille de style affichant le tableau. |
* Le développeur initial de cette fonction est Loic d'Anterroches. Elle a été modifiée par Jean-Pascal Milcent. |
* Elle utilise une variable gobale : $_CHRONO_ |
* |
* @author Loic d'Anterroches |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @param int l'indentation de base pour le code html du tableau. |
* @param int le pas d'indentation pour le code html du tableau. |
* @return string la chaine XHTML de mesure des temps. |
*/ |
function afficherChrono($indentation_origine = 8, $indentation = 4) { |
// Création du chrono de fin |
$GLOBALS['_SCRIPT_']['chrono']->setTemps(array('fin' => microtime())); |
// Début création de l'affichage |
$sortie = str_repeat(' ', $indentation_origine). |
'<table id="chrono" lang="fr" summary="Résultat du chronométrage du programme affichant la page actuelle.">'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<caption>Chronométrage</caption>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<thead>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 2))). |
'<tr><th>Action</th><th>Temps écoulé (en s.)</th><th>Cumul du temps écoulé (en s.)</th></tr>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'</thead>'."\n"; |
$tbody = str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<tbody>'."\n"; |
$total_tps_ecoule = 0; |
// Récupération de la première mesure |
$tab_depart =& $this->getTemps(0); |
list($usec, $sec) = explode(' ', $tab_depart['depart']); |
// Ce temps correspond à tps_fin |
$tps_debut = ((float)$usec + (float)$sec); |
foreach ($this->getTemps() as $tab_temps) { |
foreach ($tab_temps as $cle => $valeur) { |
list($usec, $sec) = explode(' ', $valeur); |
$tps_fin = ((float)$usec + (float)$sec); |
$tps_ecoule = abs($tps_fin - $tps_debut); |
$total_tps_ecoule += $tps_ecoule; |
$tbody .= str_repeat(' ', ($indentation_origine + ($indentation * 2))). |
'<tr>'. |
'<th>'.$cle.'</th>'. |
'<td>'.number_format($tps_ecoule, 3, ',', ' ').'</td>'. |
'<td>'.number_format($total_tps_ecoule, 3, ',', ' ').'</td>'. |
'</tr>'."\n"; |
$tps_debut = $tps_fin; |
} |
} |
$tbody .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'</tbody>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<tfoot>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 2))). |
'<tr>'. |
'<th>'.'Total du temps écoulé (en s.)'.'</th>'. |
'<td colspan="2">'.number_format($total_tps_ecoule,3, ',', ' ').'</td>'. |
'</tr>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'</tfoot>'."\n"; |
$sortie .= $tbody; |
$sortie .= str_repeat(' ', $indentation_origine). |
'</table>'."\n"; |
return $sortie; |
} |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: Chronometre.class.php,v $ |
* Revision 1.1 2007-01-12 13:16:09 jp_milcent |
* Déplacement des classes de débogage et d'optimisation dans le dossier noyau. |
* |
* Revision 1.1 2005/08/04 15:51:45 jp_milcent |
* Implémentation de la gestion via DAO. |
* Fin page d'accueil. |
* Fin formulaire recherche taxonomique. |
* |
* Revision 1.2 2005/08/03 15:52:31 jp_milcent |
* Fin gestion des résultats recherche nomenclaturale. |
* Début gestion formulaire taxonomique. |
* |
* Revision 1.1 2005/08/02 16:19:33 jp_milcent |
* Amélioration des requetes de recherche de noms. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 5.0.4 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This file is part of eFlore-Debogage. | |
// | | |
// | Foobar is free software; you can redistribute it and/or modify | |
// | it under the terms of the GNU General Public License as published by | |
// | the Free Software Foundation; either version 2 of the License, or | |
// | (at your option) any later version. | |
// | | |
// | Foobar 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 General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU General Public License | |
// | along with Foobar; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: Chronometre.class.php,v 1.1 2007-01-12 13:16:09 jp_milcent Exp $ |
/** |
* Classe permettant de mesurer le temps d'execution d'un script. |
* |
* Contient des méthodes permettant d'évaluer la vitesse d'exécution d'un script. |
* |
*@package eFlore |
*@subpackage Debogage |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author aucun |
*@copyright Tela-Botanica 2000-2005 |
*@version $Revision: 1.1 $ $Date: 2007-01-12 13:16:09 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/**Classe Chronometre() - Permet de stocker et d'afficher les temps d'éxécution de script. |
* |
* Cette classe permet de réaliser un ensemble de mesure de temps prises à |
* différents endroits d'un script. Ces mesures peuvent ensuite être affichées au |
* sein d'un tableau XHTML. |
* |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*/ |
class Chronometre |
{ |
/*** Attributs : ***/ |
private $temps = array(); |
/*** Constructeur : ***/ |
public function __construct() { |
$this->setTemps(array('depart' => microtime())); |
} |
/*** Accesseurs : ***/ |
public function getTemps($cle = NULL) { |
if (!is_null($cle)) { |
return $this->temps[$cle]; |
} else { |
return $this->temps; |
} |
} |
public function setTemps($moment = array()) { |
array_push($this->temps, $moment); |
} |
/*** Méthodes : ***/ |
/**Méthode afficherChrono() - Permet d'afficher les temps d'éxécution de différentes parties d'un script. |
* |
* Cette fonction permet d'afficher un ensemble de mesure de temps prises à différents endroits d'un script. |
* Ces mesures sont affichées au sein d'un tableau XHTML dont on peut controler l'indentation des balises. |
* Pour un site en production, il suffit d'ajouter un style #chrono {display:none;} dans la css. De cette façon, |
* le tableau ne s'affichera pas. Le webmaster lui pourra rajouter sa propre feuille de style affichant le tableau. |
* Le développeur initial de cette fonction est Loic d'Anterroches. Elle a été modifiée par Jean-Pascal Milcent. |
* Elle utilise une variable gobale : $_CHRONO_ |
* |
* @author Loic d'Anterroches |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @param int l'indentation de base pour le code html du tableau. |
* @param int le pas d'indentation pour le code html du tableau. |
* @return string la chaine XHTML de mesure des temps. |
*/ |
function afficherChrono($indentation_origine = 8, $indentation = 4) { |
// Création du chrono de fin |
$GLOBALS['_SCRIPT_']['chrono']->setTemps(array('fin' => microtime())); |
// Début création de l'affichage |
$sortie = str_repeat(' ', $indentation_origine). |
'<table id="chrono" lang="fr" summary="Résultat du chronométrage du programme affichant la page actuelle.">'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<caption>Chronométrage</caption>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<thead>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 2))). |
'<tr><th>Action</th><th>Temps écoulé (en s.)</th><th>Cumul du temps écoulé (en s.)</th></tr>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'</thead>'."\n"; |
$tbody = str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<tbody>'."\n"; |
$total_tps_ecoule = 0; |
// Récupération de la première mesure |
$tab_depart =& $this->getTemps(0); |
list($usec, $sec) = explode(' ', $tab_depart['depart']); |
// Ce temps correspond à tps_fin |
$tps_debut = ((float)$usec + (float)$sec); |
foreach ($this->getTemps() as $tab_temps) { |
foreach ($tab_temps as $cle => $valeur) { |
list($usec, $sec) = explode(' ', $valeur); |
$tps_fin = ((float)$usec + (float)$sec); |
$tps_ecoule = abs($tps_fin - $tps_debut); |
$total_tps_ecoule += $tps_ecoule; |
$tbody .= str_repeat(' ', ($indentation_origine + ($indentation * 2))). |
'<tr>'. |
'<th>'.$cle.'</th>'. |
'<td>'.number_format($tps_ecoule, 3, ',', ' ').'</td>'. |
'<td>'.number_format($total_tps_ecoule, 3, ',', ' ').'</td>'. |
'</tr>'."\n"; |
$tps_debut = $tps_fin; |
} |
} |
$tbody .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'</tbody>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'<tfoot>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 2))). |
'<tr>'. |
'<th>'.'Total du temps écoulé (en s.)'.'</th>'. |
'<td colspan="2">'.number_format($total_tps_ecoule,3, ',', ' ').'</td>'. |
'</tr>'."\n"; |
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))). |
'</tfoot>'."\n"; |
$sortie .= $tbody; |
$sortie .= str_repeat(' ', $indentation_origine). |
'</table>'."\n"; |
return $sortie; |
} |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: Chronometre.class.php,v $ |
* Revision 1.1 2007-01-12 13:16:09 jp_milcent |
* Déplacement des classes de débogage et d'optimisation dans le dossier noyau. |
* |
* Revision 1.1 2005/08/04 15:51:45 jp_milcent |
* Implémentation de la gestion via DAO. |
* Fin page d'accueil. |
* Fin formulaire recherche taxonomique. |
* |
* Revision 1.2 2005/08/03 15:52:31 jp_milcent |
* Fin gestion des résultats recherche nomenclaturale. |
* Début gestion formulaire taxonomique. |
* |
* Revision 1.1 2005/08/02 16:19:33 jp_milcent |
* Amélioration des requetes de recherche de noms. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/applications/admin_administrateur/bibliotheque/Modele.php |
---|
1,78 → 1,81 |
<?php |
abstract class Modele { |
private $registre; |
private $gestionnaire_erreur; |
private $dsn; |
private $type; |
private $hote; |
private $bdd_nom; |
private $utilisateur; |
private $pass ; |
private $connexion = null; |
/** |
* Constructeur par défaut, appelé à l'initialisation |
*/ |
final public function __construct() { |
$this->registre = Registre::getInstance() ; |
$this->gestionnaire_erreur = GestionnaireErreur::getInstance() ; |
$this->type = $this->registre->get('bdd_type'); |
$this->hote = $this->registre->get('bdd_hote'); |
$this->bdd_nom = $this->registre->get('bdd_nom'); |
$this->utilisateur = $this->registre->get('bdd_utilisateur'); |
$this->pass = $this->registre->get('bdd_pass'); |
$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote; |
} |
/** |
* Fonction qui appelle la bonne fonction de requete suivant le type de bdd. |
* |
* @param string la requete à effectuer |
* @return PDOStatement un objet contenant le résultat de la requête |
*/ |
final protected function requete($requete) { |
// on ne se connecte que lors du premier appel à une requete |
if($this->connexion == null) { |
$this->connecter(); |
} |
return $this->connexion->query($requete); |
} |
/** |
* Connection à la base de données en utilisant les informations fournies par |
* le fichier de configuration. |
* private et final car n'a pas vocation a être appelée par l'utilisateur. |
* |
* @throws PDOException une exception dans le cas ou là connexion échoue |
*/ |
final private function connecter() { |
try { |
$this->connexion = new PDO($this->dsn,$this->utilisateur,$this->pass); |
} catch (PDOException $e) { |
} |
} |
final protected function proteger($chaine) { |
// Connection lors du premier appel à une requete |
if($this->connexion == null) { |
$this->connecter(); |
} |
return $this->connexion->quote($chaine); |
} |
/** |
* Destructeur de classe, se contente de fermer explicitement la connexion |
*/ |
final public function __destruct() { |
if($this->connexion != null) { |
$this->connexion = null ; |
} |
} |
} |
<?php |
abstract class Modele { |
private $registre; |
private $gestionnaire_erreur; |
private $dsn; |
private $type; |
private $hote; |
private $bdd_nom; |
private $utilisateur; |
private $pass ; |
private $connexion = null; |
/** |
* Constructeur par défaut, appelé à l'initialisation |
*/ |
final public function __construct() { |
$this->registre = Registre::getInstance() ; |
$this->gestionnaire_erreur = GestionnaireErreur::getInstance() ; |
$this->type = $this->registre->get('bdd_type'); |
$this->hote = $this->registre->get('bdd_hote'); |
$this->bdd_nom = $this->registre->get('bdd_nom'); |
$this->utilisateur = $this->registre->get('bdd_utilisateur'); |
$this->pass = $this->registre->get('bdd_pass'); |
$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote; |
} |
/** |
* Fonction qui appelle la bonne fonction de requete suivant le type de bdd |
* @param string la requete à effectuer |
* @return PDOStatement un objet contenant le résultat de la requête |
*/ |
final protected function requete($requete) { |
// on ne se connecte que lors du premier appel à une requete |
if($this->connexion == null) { |
$this->connecter(); |
} |
return $this->connexion->query($requete); |
} |
/** |
* Connecte à la base de données en utilisant les informations fournies par |
* le fichier de configuration, private et final car n'a pas vocation a être appelée |
* par l'utilisateur |
* @throws PDOException une exception dans le cas ou là connexion échoue |
*/ |
final private function connecter() { |
try { |
$this->connexion = new PDO($this->dsn,$this->utilisateur,$this->pass); |
} catch (PDOException $e) { |
} |
} |
final protected function proteger($chaine) { |
// on ne se connecte que lors du premier appel à une requete |
if($this->connexion == null) { |
$this->connecter(); |
} |
return $this->connexion->quote($chaine); |
} |
/** |
* Destructeur de classe, se contente de fermer explicitement la connexion |
*/ |
final public function __destruct() { |
if($this->connexion != null) { |
$this->connexion = null ; |
} |
} |
} |
?> |
/trunk/papyrus/applications/admin_administrateur/bibliotheque/Net_URL.php |
---|
1,490 → 1,490 |
<?php |
// +-----------------------------------------------------------------------+ |
// | Copyright (c) 2002-2004, Richard Heyes | |
// | All rights reserved. | |
// | | |
// | Redistribution and use in source and binary forms, with or without | |
// | modification, are permitted provided that the following conditions | |
// | are met: | |
// | | |
// | o Redistributions of source code must retain the above copyright | |
// | notice, this list of conditions and the following disclaimer. | |
// | o Redistributions in binary form must reproduce the above copyright | |
// | notice, this list of conditions and the following disclaimer in the | |
// | documentation and/or other materials provided with the distribution.| |
// | o The names of the authors may not be used to endorse or promote | |
// | products derived from this software without specific prior written | |
// | permission. | |
// | | |
// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
// | | |
// +-----------------------------------------------------------------------+ |
// | Author: Richard Heyes <richard at php net> | |
// +-----------------------------------------------------------------------+ |
// |
// $Id: URL.php,v 1.3 2007-11-19 14:06:54 alexandre_tb Exp $ |
// |
// Net_URL Class |
class Net_URL |
{ |
var $options = array('encode_query_keys' => false); |
/** |
* Full url |
* @var string |
*/ |
var $url; |
/** |
* Protocol |
* @var string |
*/ |
var $protocol; |
/** |
* Username |
* @var string |
*/ |
var $username; |
/** |
* Password |
* @var string |
*/ |
var $password; |
/** |
* Host |
* @var string |
*/ |
var $host; |
/** |
* Port |
* @var integer |
*/ |
var $port; |
/** |
* Path |
* @var string |
*/ |
var $path; |
/** |
* Query string |
* @var array |
*/ |
var $querystring; |
/** |
* Anchor |
* @var string |
*/ |
var $anchor; |
/** |
* Whether to use [] |
* @var bool |
*/ |
var $useBrackets; |
/** |
* PHP4 Constructor |
* |
* @see __construct() |
*/ |
function Net_URL($url = null, $useBrackets = true) |
{ |
$this->__construct($url, $useBrackets); |
} |
/** |
* PHP5 Constructor |
* |
* Parses the given url and stores the various parts |
* Defaults are used in certain cases |
* |
* @param string $url Optional URL |
* @param bool $useBrackets Whether to use square brackets when |
* multiple querystrings with the same name |
* exist |
*/ |
function __construct($url = null, $useBrackets = true) |
{ |
$this->url = $url; |
$this->useBrackets = $useBrackets; |
$this->initialize(); |
} |
function initialize() |
{ |
$HTTP_SERVER_VARS = !empty($_SERVER) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS']; |
$this->user = ''; |
$this->pass = ''; |
$this->host = ''; |
$this->port = 80; |
$this->path = ''; |
$this->querystring = array(); |
$this->anchor = ''; |
// Only use defaults if not an absolute URL given |
if (!preg_match('/^[a-z0-9]+:\/\//i', $this->url)) { |
$this->protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'); |
/** |
* Figure out host/port |
*/ |
if (!empty($HTTP_SERVER_VARS['HTTP_HOST']) && |
preg_match('/^(.*)(:([0-9]+))?$/U', $HTTP_SERVER_VARS['HTTP_HOST'], $matches)) |
{ |
$host = $matches[1]; |
if (!empty($matches[3])) { |
$port = $matches[3]; |
} else { |
$port = $this->getStandardPort($this->protocol); |
} |
} |
$this->user = ''; |
$this->pass = ''; |
$this->host = !empty($host) ? $host : (isset($HTTP_SERVER_VARS['SERVER_NAME']) ? $HTTP_SERVER_VARS['SERVER_NAME'] : 'localhost'); |
$this->port = !empty($port) ? $port : (isset($HTTP_SERVER_VARS['SERVER_PORT']) ? $HTTP_SERVER_VARS['SERVER_PORT'] : $this->getStandardPort($this->protocol)); |
$this->path = !empty($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : '/'; |
$this->querystring = isset($HTTP_SERVER_VARS['QUERY_STRING']) ? $this->_parseRawQuerystring($HTTP_SERVER_VARS['QUERY_STRING']) : null; |
$this->anchor = ''; |
} |
// Parse the url and store the various parts |
if (!empty($this->url)) { |
$urlinfo = parse_url($this->url); |
// Default querystring |
$this->querystring = array(); |
foreach ($urlinfo as $key => $value) { |
switch ($key) { |
case 'scheme': |
$this->protocol = $value; |
$this->port = $this->getStandardPort($value); |
break; |
case 'user': |
case 'pass': |
case 'host': |
case 'port': |
$this->$key = $value; |
break; |
case 'path': |
if ($value{0} == '/') { |
$this->path = $value; |
} else { |
$path = dirname($this->path) == DIRECTORY_SEPARATOR ? '' : dirname($this->path); |
$this->path = sprintf('%s/%s', $path, $value); |
} |
break; |
case 'query': |
$this->querystring = $this->_parseRawQueryString($value); |
break; |
case 'fragment': |
$this->anchor = $value; |
break; |
} |
} |
} |
} |
/** |
* Returns full url |
* |
* @return string Full url |
* @access public |
*/ |
function getURL() |
{ |
$querystring = $this->getQueryString(); |
$this->url = $this->protocol . '://' |
. $this->user . (!empty($this->pass) ? ':' : '') |
. $this->pass . (!empty($this->user) ? '@' : '') |
. $this->host . ($this->port == $this->getStandardPort($this->protocol) ? '' : ':' . $this->port) |
. $this->path |
. (!empty($querystring) ? '?' . $querystring : '') |
. (!empty($this->anchor) ? '#' . $this->anchor : ''); |
return $this->url; |
} |
/** |
* Adds or updates a querystring item (URL parameter). |
* Automatically encodes parameters with rawurlencode() if $preencoded |
* is false. |
* You can pass an array to $value, it gets mapped via [] in the URL if |
* $this->useBrackets is activated. |
* |
* @param string $name Name of item |
* @param string $value Value of item |
* @param bool $preencoded Whether value is urlencoded or not, default = not |
* @access public |
*/ |
function addQueryString($name, $value, $preencoded = false) |
{ |
if ($this->getOption('encode_query_keys')) { |
$name = rawurlencode($name); |
} |
if ($preencoded) { |
$this->querystring[$name] = $value; |
} else { |
$this->querystring[$name] = is_array($value) ? array_map('rawurlencode', $value): rawurlencode($value); |
} |
} |
/** |
* Removes a querystring item |
* |
* @param string $name Name of item |
* @access public |
*/ |
function removeQueryString($name) |
{ |
if ($this->getOption('encode_query_keys')) { |
$name = rawurlencode($name); |
} |
if (isset($this->querystring[$name])) { |
unset($this->querystring[$name]); |
} |
} |
/** |
* Sets the querystring to literally what you supply |
* |
* @param string $querystring The querystring data. Should be of the format foo=bar&x=y etc |
* @access public |
*/ |
function addRawQueryString($querystring) |
{ |
$this->querystring = $this->_parseRawQueryString($querystring); |
} |
/** |
* Returns flat querystring |
* |
* @return string Querystring |
* @access public |
*/ |
function getQueryString() |
{ |
if (!empty($this->querystring)) { |
foreach ($this->querystring as $name => $value) { |
// Encode var name |
$name = rawurlencode($name); |
if (is_array($value)) { |
foreach ($value as $k => $v) { |
$querystring[] = $this->useBrackets ? sprintf('%s[%s]=%s', $name, $k, $v) : ($name . '=' . $v); |
} |
} elseif (!is_null($value)) { |
$querystring[] = $name . '=' . $value; |
} else { |
$querystring[] = $name; |
} |
} |
$querystring = implode(ini_get('arg_separator.output'), $querystring); |
} else { |
$querystring = ''; |
} |
return $querystring; |
} |
/** |
* Parses raw querystring and returns an array of it |
* |
* @param string $querystring The querystring to parse |
* @return array An array of the querystring data |
* @access private |
*/ |
function _parseRawQuerystring($querystring) |
{ |
$parts = preg_split('/[' . preg_quote(ini_get('arg_separator.input'), '/') . ']/', $querystring, -1, PREG_SPLIT_NO_EMPTY); |
$return = array(); |
foreach ($parts as $part) { |
if (strpos($part, '=') !== false) { |
$value = substr($part, strpos($part, '=') + 1); |
$key = substr($part, 0, strpos($part, '=')); |
} else { |
$value = null; |
$key = $part; |
} |
if (!$this->getOption('encode_query_keys')) { |
$key = rawurldecode($key); |
} |
if (preg_match('#^(.*)\[([0-9a-z_-]*)\]#i', $key, $matches)) { |
$key = $matches[1]; |
$idx = $matches[2]; |
// Ensure is an array |
if (empty($return[$key]) || !is_array($return[$key])) { |
$return[$key] = array(); |
} |
// Add data |
if ($idx === '') { |
$return[$key][] = $value; |
} else { |
$return[$key][$idx] = $value; |
} |
} elseif (!$this->useBrackets AND !empty($return[$key])) { |
$return[$key] = (array)$return[$key]; |
$return[$key][] = $value; |
} else { |
$return[$key] = $value; |
} |
} |
return $return; |
} |
/** |
* Resolves //, ../ and ./ from a path and returns |
* the result. Eg: |
* |
* /foo/bar/../boo.php => /foo/boo.php |
* /foo/bar/../../boo.php => /boo.php |
* /foo/bar/.././/boo.php => /foo/boo.php |
* |
* This method can also be called statically. |
* |
* @param string $path URL path to resolve |
* @return string The result |
*/ |
function resolvePath($path) |
{ |
$path = explode('/', str_replace('//', '/', $path)); |
for ($i=0; $i<count($path); $i++) { |
if ($path[$i] == '.') { |
unset($path[$i]); |
$path = array_values($path); |
$i--; |
} elseif ($path[$i] == '..' AND ($i > 1 OR ($i == 1 AND $path[0] != '') ) ) { |
unset($path[$i]); |
unset($path[$i-1]); |
$path = array_values($path); |
$i -= 2; |
} elseif ($path[$i] == '..' AND $i == 1 AND $path[0] == '') { |
unset($path[$i]); |
$path = array_values($path); |
$i--; |
} else { |
continue; |
} |
} |
return implode('/', $path); |
} |
/** |
* Returns the standard port number for a protocol |
* |
* @param string $scheme The protocol to lookup |
* @return integer Port number or NULL if no scheme matches |
* |
* @author Philippe Jausions <Philippe.Jausions@11abacus.com> |
*/ |
function getStandardPort($scheme) |
{ |
switch (strtolower($scheme)) { |
case 'http': return 80; |
case 'https': return 443; |
case 'ftp': return 21; |
case 'imap': return 143; |
case 'imaps': return 993; |
case 'pop3': return 110; |
case 'pop3s': return 995; |
default: return null; |
} |
} |
/** |
* Forces the URL to a particular protocol |
* |
* @param string $protocol Protocol to force the URL to |
* @param integer $port Optional port (standard port is used by default) |
*/ |
function setProtocol($protocol, $port = null) |
{ |
$this->protocol = $protocol; |
$this->port = is_null($port) ? $this->getStandardPort($protocol) : $port; |
} |
/** |
* Set an option |
* |
* This function set an option |
* to be used thorough the script. |
* |
* @access public |
* @param string $optionName The optionname to set |
* @param string $value The value of this option. |
*/ |
function setOption($optionName, $value) |
{ |
if (!array_key_exists($optionName, $this->options)) { |
return false; |
} |
$this->options[$optionName] = $value; |
$this->initialize(); |
} |
/** |
* Get an option |
* |
* This function gets an option |
* from the $this->options array |
* and return it's value. |
* |
* @access public |
* @param string $opionName The name of the option to retrieve |
* @see $this->options |
*/ |
function getOption($optionName) |
{ |
if (!isset($this->options[$optionName])) { |
return false; |
} |
return $this->options[$optionName]; |
} |
function __toString() { |
return $this->url ; |
} |
} |
?> |
<?php |
// +-----------------------------------------------------------------------+ |
// | Copyright (c) 2002-2004, Richard Heyes | |
// | All rights reserved. | |
// | | |
// | Redistribution and use in source and binary forms, with or without | |
// | modification, are permitted provided that the following conditions | |
// | are met: | |
// | | |
// | o Redistributions of source code must retain the above copyright | |
// | notice, this list of conditions and the following disclaimer. | |
// | o Redistributions in binary form must reproduce the above copyright | |
// | notice, this list of conditions and the following disclaimer in the | |
// | documentation and/or other materials provided with the distribution.| |
// | o The names of the authors may not be used to endorse or promote | |
// | products derived from this software without specific prior written | |
// | permission. | |
// | | |
// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
// | | |
// +-----------------------------------------------------------------------+ |
// | Author: Richard Heyes <richard at php net> | |
// +-----------------------------------------------------------------------+ |
// |
// $Id: URL.php,v 1.3 2007-11-19 14:06:54 alexandre_tb Exp $ |
// |
// Net_URL Class |
class Net_URL |
{ |
var $options = array('encode_query_keys' => false); |
/** |
* Full url |
* @var string |
*/ |
var $url; |
/** |
* Protocol |
* @var string |
*/ |
var $protocol; |
/** |
* Username |
* @var string |
*/ |
var $username; |
/** |
* Password |
* @var string |
*/ |
var $password; |
/** |
* Host |
* @var string |
*/ |
var $host; |
/** |
* Port |
* @var integer |
*/ |
var $port; |
/** |
* Path |
* @var string |
*/ |
var $path; |
/** |
* Query string |
* @var array |
*/ |
var $querystring; |
/** |
* Anchor |
* @var string |
*/ |
var $anchor; |
/** |
* Whether to use [] |
* @var bool |
*/ |
var $useBrackets; |
/** |
* PHP4 Constructor |
* |
* @see __construct() |
*/ |
function Net_URL($url = null, $useBrackets = true) |
{ |
$this->__construct($url, $useBrackets); |
} |
/** |
* PHP5 Constructor |
* |
* Parses the given url and stores the various parts |
* Defaults are used in certain cases |
* |
* @param string $url Optional URL |
* @param bool $useBrackets Whether to use square brackets when |
* multiple querystrings with the same name |
* exist |
*/ |
function __construct($url = null, $useBrackets = true) |
{ |
$this->url = $url; |
$this->useBrackets = $useBrackets; |
$this->initialize(); |
} |
function initialize() |
{ |
$HTTP_SERVER_VARS = !empty($_SERVER) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS']; |
$this->user = ''; |
$this->pass = ''; |
$this->host = ''; |
$this->port = 80; |
$this->path = ''; |
$this->querystring = array(); |
$this->anchor = ''; |
// Only use defaults if not an absolute URL given |
if (!preg_match('/^[a-z0-9]+:\/\//i', $this->url)) { |
$this->protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'); |
/** |
* Figure out host/port |
*/ |
if (!empty($HTTP_SERVER_VARS['HTTP_HOST']) && |
preg_match('/^(.*)(:([0-9]+))?$/U', $HTTP_SERVER_VARS['HTTP_HOST'], $matches)) |
{ |
$host = $matches[1]; |
if (!empty($matches[3])) { |
$port = $matches[3]; |
} else { |
$port = $this->getStandardPort($this->protocol); |
} |
} |
$this->user = ''; |
$this->pass = ''; |
$this->host = !empty($host) ? $host : (isset($HTTP_SERVER_VARS['SERVER_NAME']) ? $HTTP_SERVER_VARS['SERVER_NAME'] : 'localhost'); |
$this->port = !empty($port) ? $port : (isset($HTTP_SERVER_VARS['SERVER_PORT']) ? $HTTP_SERVER_VARS['SERVER_PORT'] : $this->getStandardPort($this->protocol)); |
$this->path = !empty($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : '/'; |
$this->querystring = isset($HTTP_SERVER_VARS['QUERY_STRING']) ? $this->_parseRawQuerystring($HTTP_SERVER_VARS['QUERY_STRING']) : null; |
$this->anchor = ''; |
} |
// Parse the url and store the various parts |
if (!empty($this->url)) { |
$urlinfo = parse_url($this->url); |
// Default querystring |
$this->querystring = array(); |
foreach ($urlinfo as $key => $value) { |
switch ($key) { |
case 'scheme': |
$this->protocol = $value; |
$this->port = $this->getStandardPort($value); |
break; |
case 'user': |
case 'pass': |
case 'host': |
case 'port': |
$this->$key = $value; |
break; |
case 'path': |
if ($value{0} == '/') { |
$this->path = $value; |
} else { |
$path = dirname($this->path) == DIRECTORY_SEPARATOR ? '' : dirname($this->path); |
$this->path = sprintf('%s/%s', $path, $value); |
} |
break; |
case 'query': |
$this->querystring = $this->_parseRawQueryString($value); |
break; |
case 'fragment': |
$this->anchor = $value; |
break; |
} |
} |
} |
} |
/** |
* Returns full url |
* |
* @return string Full url |
* @access public |
*/ |
function getURL() |
{ |
$querystring = $this->getQueryString(); |
$this->url = $this->protocol . '://' |
. $this->user . (!empty($this->pass) ? ':' : '') |
. $this->pass . (!empty($this->user) ? '@' : '') |
. $this->host . ($this->port == $this->getStandardPort($this->protocol) ? '' : ':' . $this->port) |
. $this->path |
. (!empty($querystring) ? '?' . $querystring : '') |
. (!empty($this->anchor) ? '#' . $this->anchor : ''); |
return $this->url; |
} |
/** |
* Adds or updates a querystring item (URL parameter). |
* Automatically encodes parameters with rawurlencode() if $preencoded |
* is false. |
* You can pass an array to $value, it gets mapped via [] in the URL if |
* $this->useBrackets is activated. |
* |
* @param string $name Name of item |
* @param string $value Value of item |
* @param bool $preencoded Whether value is urlencoded or not, default = not |
* @access public |
*/ |
function addQueryString($name, $value, $preencoded = false) |
{ |
if ($this->getOption('encode_query_keys')) { |
$name = rawurlencode($name); |
} |
if ($preencoded) { |
$this->querystring[$name] = $value; |
} else { |
$this->querystring[$name] = is_array($value) ? array_map('rawurlencode', $value): rawurlencode($value); |
} |
} |
/** |
* Removes a querystring item |
* |
* @param string $name Name of item |
* @access public |
*/ |
function removeQueryString($name) |
{ |
if ($this->getOption('encode_query_keys')) { |
$name = rawurlencode($name); |
} |
if (isset($this->querystring[$name])) { |
unset($this->querystring[$name]); |
} |
} |
/** |
* Sets the querystring to literally what you supply |
* |
* @param string $querystring The querystring data. Should be of the format foo=bar&x=y etc |
* @access public |
*/ |
function addRawQueryString($querystring) |
{ |
$this->querystring = $this->_parseRawQueryString($querystring); |
} |
/** |
* Returns flat querystring |
* |
* @return string Querystring |
* @access public |
*/ |
function getQueryString() |
{ |
if (!empty($this->querystring)) { |
foreach ($this->querystring as $name => $value) { |
// Encode var name |
$name = rawurlencode($name); |
if (is_array($value)) { |
foreach ($value as $k => $v) { |
$querystring[] = $this->useBrackets ? sprintf('%s[%s]=%s', $name, $k, $v) : ($name . '=' . $v); |
} |
} elseif (!is_null($value)) { |
$querystring[] = $name . '=' . $value; |
} else { |
$querystring[] = $name; |
} |
} |
$querystring = implode(ini_get('arg_separator.output'), $querystring); |
} else { |
$querystring = ''; |
} |
return $querystring; |
} |
/** |
* Parses raw querystring and returns an array of it |
* |
* @param string $querystring The querystring to parse |
* @return array An array of the querystring data |
* @access private |
*/ |
function _parseRawQuerystring($querystring) |
{ |
$parts = preg_split('/[' . preg_quote(ini_get('arg_separator.input'), '/') . ']/', $querystring, -1, PREG_SPLIT_NO_EMPTY); |
$return = array(); |
foreach ($parts as $part) { |
if (strpos($part, '=') !== false) { |
$value = substr($part, strpos($part, '=') + 1); |
$key = substr($part, 0, strpos($part, '=')); |
} else { |
$value = null; |
$key = $part; |
} |
if (!$this->getOption('encode_query_keys')) { |
$key = rawurldecode($key); |
} |
if (preg_match('#^(.*)\[([0-9a-z_-]*)\]#i', $key, $matches)) { |
$key = $matches[1]; |
$idx = $matches[2]; |
// Ensure is an array |
if (empty($return[$key]) || !is_array($return[$key])) { |
$return[$key] = array(); |
} |
// Add data |
if ($idx === '') { |
$return[$key][] = $value; |
} else { |
$return[$key][$idx] = $value; |
} |
} elseif (!$this->useBrackets AND !empty($return[$key])) { |
$return[$key] = (array)$return[$key]; |
$return[$key][] = $value; |
} else { |
$return[$key] = $value; |
} |
} |
return $return; |
} |
/** |
* Resolves //, ../ and ./ from a path and returns |
* the result. Eg: |
* |
* /foo/bar/../boo.php => /foo/boo.php |
* /foo/bar/../../boo.php => /boo.php |
* /foo/bar/.././/boo.php => /foo/boo.php |
* |
* This method can also be called statically. |
* |
* @param string $path URL path to resolve |
* @return string The result |
*/ |
function resolvePath($path) |
{ |
$path = explode('/', str_replace('//', '/', $path)); |
for ($i=0; $i<count($path); $i++) { |
if ($path[$i] == '.') { |
unset($path[$i]); |
$path = array_values($path); |
$i--; |
} elseif ($path[$i] == '..' AND ($i > 1 OR ($i == 1 AND $path[0] != '') ) ) { |
unset($path[$i]); |
unset($path[$i-1]); |
$path = array_values($path); |
$i -= 2; |
} elseif ($path[$i] == '..' AND $i == 1 AND $path[0] == '') { |
unset($path[$i]); |
$path = array_values($path); |
$i--; |
} else { |
continue; |
} |
} |
return implode('/', $path); |
} |
/** |
* Returns the standard port number for a protocol |
* |
* @param string $scheme The protocol to lookup |
* @return integer Port number or NULL if no scheme matches |
* |
* @author Philippe Jausions <Philippe.Jausions@11abacus.com> |
*/ |
function getStandardPort($scheme) |
{ |
switch (strtolower($scheme)) { |
case 'http': return 80; |
case 'https': return 443; |
case 'ftp': return 21; |
case 'imap': return 143; |
case 'imaps': return 993; |
case 'pop3': return 110; |
case 'pop3s': return 995; |
default: return null; |
} |
} |
/** |
* Forces the URL to a particular protocol |
* |
* @param string $protocol Protocol to force the URL to |
* @param integer $port Optional port (standard port is used by default) |
*/ |
function setProtocol($protocol, $port = null) |
{ |
$this->protocol = $protocol; |
$this->port = is_null($port) ? $this->getStandardPort($protocol) : $port; |
} |
/** |
* Set an option |
* |
* This function set an option |
* to be used thorough the script. |
* |
* @access public |
* @param string $optionName The optionname to set |
* @param string $value The value of this option. |
*/ |
function setOption($optionName, $value) |
{ |
if (!array_key_exists($optionName, $this->options)) { |
return false; |
} |
$this->options[$optionName] = $value; |
$this->initialize(); |
} |
/** |
* Get an option |
* |
* This function gets an option |
* from the $this->options array |
* and return it's value. |
* |
* @access public |
* @param string $opionName The name of the option to retrieve |
* @see $this->options |
*/ |
function getOption($optionName) |
{ |
if (!isset($this->options[$optionName])) { |
return false; |
} |
return $this->options[$optionName]; |
} |
function __toString() { |
return $this->url ; |
} |
} |
?> |
/trunk/papyrus/applications/admin_administrateur/bibliotheque/Controleur.php |
---|
1,97 → 1,97 |
<?php |
/** |
* Classe controlleur, coeur d'une application, c'est normalement la seule classe d'une application |
* qui devrait être appelée de l'extérieur. |
*/ |
abstract class Controleur { |
private $registre; |
private $gestionnaire_erreur; |
/** |
* Constructeur par défaut |
*/ |
final public function __construct() { |
$this->registre = Registre::getInstance() ; |
$this->registre->set('chemin_config',CHEMIN_APPLI.'configuration'.DIRECTORY_SEPARATOR); |
$this->registre->set('base_chemin_modele',DOSSIER_MODELES.DIRECTORY_SEPARATOR); |
$this->registre->set('base_chemin_squelette',DOSSIER_SQUELETTES.DIRECTORY_SEPARATOR); |
$this->registre->set('base_chemin_controleur',DOSSIER_CONTROLEURS.DIRECTORY_SEPARATOR); |
$this->registre->set('bdd_type',BDD_PROTOCOLE) ; |
$this->registre->set('bdd_hote',BDD_SERVEUR) ; |
$this->registre->set('bdd_nom',BDD_NOM_PRINCIPALE) ; |
$this->registre->set('bdd_utilisateur',BDD_UTILISATEUR) ; |
$this->registre->set('bdd_pass',BDD_MOT_DE_PASSE) ; |
$this->gestionnaire_erreur = GestionnaireErreur::getInstance(); |
} |
/** |
* Charge un modele donné et le rend disponible sous la forme $this->nom_modele |
* @param $nom_modele le nom du modèle à charger |
*/ |
final protected function chargerModele($nom_modele) { |
$chemin_modele = ($this->registre->get('base_chemin_modele')).$nom_modele.'.php'; |
if(!file_exists($chemin_modele)) { |
return false ; |
} |
include_once($chemin_modele) ; |
if(!class_exists($nom_modele)) { |
return false ; |
} |
$this->$nom_modele = new $nom_modele ; |
} |
/** |
* Fonction prenant en paramètre le nom d'un squelette et un tableau associatif de données, en extrait les variables, charge le squelette |
* et cree une variable de classe contenant les deux combinés. |
* @param String le nom du squelette |
* @param Array un tableau associatif contenant les variables a injecter dans la vue |
* |
*/ |
final protected function chargerVue($nom_squelette,$donnees) { |
$chemin_squelette = ($this->registre->get('base_chemin_squelette')).$nom_squelette.'.tpl.html'; |
if(!file_exists($chemin_squelette)) { |
return false ; |
} |
$donnees['base_url'] = $this->registre->get('base_url_application') ; |
// on extrait les variables du tableau de données |
extract($donnees); |
// et on enclenche la bufferisation de sortie |
ob_start(); |
// si les tags courts sont désactivés |
if ((bool) @ini_get('short_open_tag') === FALSE) |
{ |
// on remplace les tags par la syntaxe classique avec echo |
echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($chemin_squelette)))); |
} else { |
// sinon, on se contente d'inclure le squelette |
include($chemin_squelette); |
} |
// on récupère le buffer et on le vide |
$buffer = ob_get_contents(); |
@ob_end_clean(); |
// enfin on renvoie le contenu |
$this->$nom_squelette = $buffer; |
return $nom_squelette; |
} |
} |
<?php |
/** |
* Classe controlleur, coeur d'une application, c'est normalement la seule classe d'une application |
* qui devrait être appelée de l'extérieur. |
*/ |
abstract class Controleur { |
private $registre; |
private $gestionnaire_erreur; |
/** |
* Constructeur par défaut |
*/ |
final public function __construct() { |
$this->registre = Registre::getInstance() ; |
$this->registre->set('chemin_config',CHEMIN_APPLI.'configuration'.DIRECTORY_SEPARATOR); |
$this->registre->set('base_chemin_modele',DOSSIER_MODELES.DIRECTORY_SEPARATOR); |
$this->registre->set('base_chemin_squelette',DOSSIER_SQUELETTES.DIRECTORY_SEPARATOR); |
$this->registre->set('base_chemin_controleur',DOSSIER_CONTROLEURS.DIRECTORY_SEPARATOR); |
$this->registre->set('bdd_type',BDD_PROTOCOLE) ; |
$this->registre->set('bdd_hote',BDD_SERVEUR) ; |
$this->registre->set('bdd_nom',BDD_NOM_PRINCIPALE) ; |
$this->registre->set('bdd_utilisateur',BDD_UTILISATEUR) ; |
$this->registre->set('bdd_pass',BDD_MOT_DE_PASSE) ; |
$this->gestionnaire_erreur = GestionnaireErreur::getInstance(); |
} |
/** |
* Charge un modele donné et le rend disponible sous la forme $this->nom_modele |
* @param $nom_modele le nom du modèle à charger |
*/ |
final protected function chargerModele($nom_modele) { |
$chemin_modele = ($this->registre->get('base_chemin_modele')).$nom_modele.'.php'; |
if(!file_exists($chemin_modele)) { |
return false ; |
} |
include_once($chemin_modele) ; |
if(!class_exists($nom_modele)) { |
return false ; |
} |
$this->$nom_modele = new $nom_modele ; |
} |
/** |
* Fonction prenant en paramètre le nom d'un squelette et un tableau associatif de données, en extrait les variables, charge le squelette |
* et cree une variable de classe contenant les deux combinés. |
* @param String le nom du squelette |
* @param Array un tableau associatif contenant les variables a injecter dans la vue |
* |
*/ |
final protected function chargerVue($nom_squelette,$donnees) { |
$chemin_squelette = ($this->registre->get('base_chemin_squelette')).$nom_squelette.'.tpl.html'; |
if(!file_exists($chemin_squelette)) { |
return false ; |
} |
$donnees['base_url'] = $this->registre->get('base_url_application') ; |
// on extrait les variables du tableau de données |
extract($donnees); |
// et on enclenche la bufferisation de sortie |
ob_start(); |
// si les tags courts sont désactivés |
if ((bool) @ini_get('short_open_tag') === FALSE) |
{ |
// on remplace les tags par la syntaxe classique avec echo |
echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($chemin_squelette)))); |
} else { |
// sinon, on se contente d'inclure le squelette |
include($chemin_squelette); |
} |
// on récupère le buffer et on le vide |
$buffer = ob_get_contents(); |
@ob_end_clean(); |
// enfin on renvoie le contenu |
$this->$nom_squelette = $buffer; |
return $nom_squelette; |
} |
} |
?> |
/trunk/papyrus/applications/admin_administrateur/bibliotheque/GestionnaireErreur.php |
---|
1,369 → 1,369 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 5.0.4 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This file is part of eFlore-Debogage. | |
// | | |
// | Foobar is free software; you can redistribute it and/or modify | |
// | it under the terms of the GNU General Public License as published by | |
// | the Free Software Foundation; either version 2 of the License, or | |
// | (at your option) any later version. | |
// | | |
// | Foobar 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 General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU General Public License | |
// | along with Foobar; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: GestionnaireErreur.class.php,v 1.6 2007-07-09 18:54:43 jp_milcent Exp $ |
/** |
* Classe de gestion des erreurs. |
* |
* |
* |
*@package eFlore |
*@subpackage Debogage |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author aucun |
*@copyright Tela-Botanica 2000-2005 |
*@version $Revision: 1.6 $ $Date: 2007-07-09 18:54:43 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/** |
* Classe GestionnaireErreur |
* |
* Gérer les erreurs PHP et SQL. |
*/ |
class GestionnaireErreur |
{ |
/*** Attributes: ***/ |
/** |
* Permet de savoir si on utilise PHP en ligne de commande dans une console (PHP-CLI) ou en mode module de serveur. |
* @access private |
*/ |
private $mode; |
/** |
* Contient la liste des erreurs. |
* @access private |
*/ |
private $erreurs; |
/** |
* Permet de savoir si on veut faire apparaître ou pas le contexte de l'erreur, |
* c'est à dire le contenu des variables. |
* @access private |
*/ |
private $contexte; |
/** |
* Contient le niveau d'erreur courant. Celui que l'on donne à la fonction |
* error_reporting(). |
* @access private |
*/ |
private $niveau_erreur_courant; |
/** |
* Le gestionnaire d'erreur est un singleton |
*/ |
private static $gestionnaire_erreurs; |
/*** Constructeur: ***/ |
/** |
* Construit le gestionnaire d'erreur. |
* |
* @return void |
* @access public |
*/ |
private function __construct( $contexte = false ) |
{ |
$this->mode = php_sapi_name(); |
$this->erreurs = array(); |
$this->setContexte($contexte); |
$this->niveau_erreur_courant = 2048 ; |
set_error_handler(array(&$this, 'gererErreur')); |
} |
/** |
* Fonction d'accès au singleton |
* @return GestionnaireErreur le gestionnaire d'erreurs courant |
*/ |
public static function getInstance() |
{ |
if (self::$gestionnaire_erreurs instanceof GestionnaireErreur) { |
return self::$gestionnaire_erreurs; |
} |
self::$gestionnaire_erreurs = new GestionnaireErreur ; |
return self::$gestionnaire_erreurs; |
} |
/*** Accesseurs: ***/ |
/** |
* Récupère le tableau des erreurs. |
* |
* @return array |
* @access public |
*/ |
public function getErreur( ) { |
return $this->erreurs; |
} |
/** |
* Ajoute une erreur à la liste. |
* |
* @param array une_erreur |
* @return void |
* @access public |
*/ |
public function setErreur( $une_erreur ) { |
$this->erreurs[] = $une_erreur; |
} |
/** |
* Récupère la valeur du contexte. |
* |
* @return boolean |
* @access public |
*/ |
public function getContexte( ) { |
return $this->contexte; |
} |
/** |
* Définit si oui ou non le contexte sera affiché. |
* |
* @param boolean un_contexte |
* @return void |
* @access public |
*/ |
public function setContexte( $un_contexte ) { |
$this->contexte = $un_contexte; |
} |
/** |
* Récupère le niveau d'erreur courrant. |
* |
* @return int le niveau d'erreur courrant. |
* @access public |
*/ |
public function getNiveauErreurCourant( ) { |
return (int)$this->niveau_erreur_courant; |
} |
/** |
* Définit le niveau d'erreur courrant. |
* |
* @param int un niveau d'erreur. |
* @return void |
* @access public |
*/ |
public function setNiveauErreurCourant( $niveau = 2048 ) { |
$this->niveau_erreur_courant = $niveau; |
} |
/** |
* Définit le niveau d'erreur courrant (synonyme fonction precedente) |
* |
* @param int un niveau d'erreur. |
* @return void |
* @access public |
*/ |
public function setActive ($niveau) { |
$this->niveau_erreur_courant = $niveau; |
} |
/*** Méthodes : ***/ |
/** |
* |
* @param int niveau |
* @param string message |
* @param string fichier |
* @param int ligne |
* @param boolean contexte |
* @return void |
* @access public |
*/ |
public function gererErreur($niveau, $message, $fichier, $ligne, $contexte) |
{ |
$aso_erreur = array(); |
// Nous vérifions si nous affichons ou pas l'erreur en fonction du niveau demandé |
if ( $niveau <= $this->getNiveauErreurCourant() ) { |
$aso_erreur['niveau'] = $niveau; |
switch ($niveau) { |
case E_USER_NOTICE : |
if (is_array($message) || is_object($message)) { |
$aso_erreur['message'] = print_r($message, true); |
} else { |
$aso_erreur['message'] = $message; |
} |
break; |
default: |
$aso_erreur['message'] = $message; |
} |
$aso_erreur['fichier'] = $fichier; |
$aso_erreur['ligne'] = $ligne; |
if ($this->getContexte()) { |
$aso_erreur['contexte'] = $contexte; |
} |
$this->setErreur($aso_erreur); |
} |
// Si nous avons à faire à une erreur et non à un warning ou une notice, nous arrêtons l'exécution du script |
switch ($niveau) { |
case E_ERROR : |
case E_USER_ERROR : |
die($this->retournerErreur()); |
break; |
} |
} |
/** |
* Retourne l'erreur PHP formatée en XHTML. |
* |
* @return string |
* @access public |
*/ |
public function retournerErreur() |
{ |
$retour = ''; |
foreach($this->getErreur() as $aso_erreur) { |
if ('<!-- BEGIN sql -->' == substr($aso_erreur['message'], 0, 18)) { |
$retour .= $aso_erreur['message']; |
continue; |
} |
switch ($this->mode) { |
case 'cli' : |
if ($aso_erreur['niveau'] == E_USER_NOTICE) { |
$retour .= $aso_erreur['message']."\n"; |
$retour .= 'Fichier : '.$aso_erreur['fichier']."\n"; |
$retour .= 'Ligne : '.$aso_erreur['ligne']."\n"; |
} else if ($aso_erreur['niveau'] <= 512) { |
$retour .= 'INFO : Niveau '.$aso_erreur['niveau']."\n"; |
} else { |
$retour .= 'ERREUR : Niveau '.$aso_erreur['niveau']."\n"; |
} |
$retour .= 'Niveau : '.$aso_erreur['niveau']."\n"; |
$retour .= 'Message : '.$aso_erreur['message']."\n"; |
$retour .= 'Fichier : '.$aso_erreur['fichier']."\n"; |
$retour .= 'Ligne : '.$aso_erreur['ligne']."\n"; |
if ($this->getContexte()) { |
$retour .= 'Contexte : '."\n".print_r($aso_erreur['contexte'], true)."\n"; |
} |
break; |
default: |
if ($aso_erreur['niveau'] == E_USER_NOTICE) { |
$retour .= '<pre class="debogage">'."\n"; |
$retour .= htmlentities($aso_erreur['message'])."\n"; |
$retour .= '<span class="debogage_fichier">'.'Fichier : '.$aso_erreur['fichier'].'</span>'."\n"; |
$retour .= '<span class="debogage_ligne">'.'Ligne : '.$aso_erreur['ligne'].'</span>'."\n"; |
$retour .= '</pre>'."\n"; |
continue; |
} else if ($aso_erreur['niveau'] <= 512) { |
$retour .= '<p class="information">'."\n"; |
$retour .= '<strong>INFO : Niveau '.$aso_erreur['niveau'].'</strong><br />'."\n"; |
} else { |
$retour .= '<p class="attention">'."\n"; |
$retour .= '<strong>ERREUR : Niveau '.$aso_erreur['niveau'].'</strong><br />'."\n"; |
} |
$retour .= '<strong>Niveau : </strong>'.$aso_erreur['niveau'].'<br />'."\n"; |
$retour .= '<strong>Message : </strong>'.$aso_erreur['message'].'<br />'."\n"; |
$retour .= '<strong>Fichier : </strong>'.$aso_erreur['fichier'].'<br />'."\n"; |
$retour .= '<strong>Ligne : </strong>'.$aso_erreur['ligne'].'<br />'."\n"; |
if ($this->getContexte()) { |
$retour .= '<pre>'."\n"; |
$retour .= '<stong>Contexte : </stong>'."\n".print_r($aso_erreur['contexte'], true)."\n"; |
$retour .= '</pre>'."\n"; |
} |
$retour .= '</p>'."\n"; |
} |
} |
return $retour; |
} |
/** |
* Retourne l'erreur SQL formatée en XHTML. |
* |
* @param string fichier |
* @param int ligne |
* @param string message |
* @param string requete |
* @param string autres |
* @return string |
* @static |
* @access public |
*/ |
public static function retournerErreurSql( $fichier, $methode, $message, $requete = null, $autres = null ) |
{ |
$retour = ''; |
switch (php_sapi_name()) { |
case 'cli' : |
$retour .= 'ERREUR SQL '."\n"; |
$retour .= 'Fichier : '.$fichier."\n"; |
$retour .= 'Méthode : '.$methode."\n"; |
$retour .= 'Message : '.$message."\n"; |
if (!is_null($requete)) { |
$retour .= 'Requete : '."\n"; |
$retour .= $requete."\n"; |
} |
if (!is_null($autres)) { |
$retour .= 'Autres infos : '."\n"; |
$retour .= $autres."\n"; |
} |
break; |
default: |
$retour .= '<!-- BEGIN sql -->'; |
$retour .= '<div id="zone_erreur">'."\n"; |
$retour .= '<h1 > ERREUR SQL </h1><br />'."\n"; |
$retour .= '<dl>'."\n"; |
$retour .= '<dt> Fichier : </dt> '; |
$retour .= '<dd> '.$fichier.'</dd>'."\n"; |
$retour .= '<dt> Méthode : </dt> '; |
$retour .= '<dd> '.$methode.'</dd>'."\n"; |
$retour .= '<dt> Message erreur : </dt> '; |
$retour .= '<dd> '.$message.'</dd>'."\n"; |
if (!is_null($requete)) { |
$retour .= '<dt> Requete : </dt> '; |
$retour .= '<dd> '.$requete.' </dd>'."\n"; |
} |
if (!is_null($autres)) { |
$retour .= '<dt> Autres infos : </dt> '; |
$retour .= '<dd> '.$autres.' </dd>'."\n"; |
} |
$retour .= '</dl>'."\n"; |
$retour .= '</div>'."\n"; |
$retour .= '<!-- END sql -->'."\n"; |
} |
return $retour; |
} |
} |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 5.0.4 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This file is part of eFlore-Debogage. | |
// | | |
// | Foobar is free software; you can redistribute it and/or modify | |
// | it under the terms of the GNU General Public License as published by | |
// | the Free Software Foundation; either version 2 of the License, or | |
// | (at your option) any later version. | |
// | | |
// | Foobar 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 General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU General Public License | |
// | along with Foobar; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: GestionnaireErreur.class.php,v 1.6 2007-07-09 18:54:43 jp_milcent Exp $ |
/** |
* Classe de gestion des erreurs. |
* |
* |
* |
*@package eFlore |
*@subpackage Debogage |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author aucun |
*@copyright Tela-Botanica 2000-2005 |
*@version $Revision: 1.6 $ $Date: 2007-07-09 18:54:43 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/** |
* Classe GestionnaireErreur |
* |
* Gérer les erreurs PHP et SQL. |
*/ |
class GestionnaireErreur |
{ |
/*** Attributes: ***/ |
/** |
* Permet de savoir si on utilise PHP en ligne de commande dans une console (PHP-CLI) ou en mode module de serveur. |
* @access private |
*/ |
private $mode; |
/** |
* Contient la liste des erreurs. |
* @access private |
*/ |
private $erreurs; |
/** |
* Permet de savoir si on veut faire apparaître ou pas le contexte de l'erreur, |
* c'est à dire le contenu des variables. |
* @access private |
*/ |
private $contexte; |
/** |
* Contient le niveau d'erreur courant. Celui que l'on donne à la fonction |
* error_reporting(). |
* @access private |
*/ |
private $niveau_erreur_courant; |
/** |
* Le gestionnaire d'erreur est un singleton |
*/ |
private static $gestionnaire_erreurs; |
/*** Constructeur: ***/ |
/** |
* Construit le gestionnaire d'erreur. |
* |
* @return void |
* @access public |
*/ |
private function __construct( $contexte = false ) |
{ |
$this->mode = php_sapi_name(); |
$this->erreurs = array(); |
$this->setContexte($contexte); |
$this->niveau_erreur_courant = 2048 ; |
set_error_handler(array(&$this, 'gererErreur')); |
} |
/** |
* Fonction d'accès au singleton |
* @return GestionnaireErreur le gestionnaire d'erreurs courant |
*/ |
public static function getInstance() |
{ |
if (self::$gestionnaire_erreurs instanceof GestionnaireErreur) { |
return self::$gestionnaire_erreurs; |
} |
self::$gestionnaire_erreurs = new GestionnaireErreur ; |
return self::$gestionnaire_erreurs; |
} |
/*** Accesseurs: ***/ |
/** |
* Récupère le tableau des erreurs. |
* |
* @return array |
* @access public |
*/ |
public function getErreur( ) { |
return $this->erreurs; |
} |
/** |
* Ajoute une erreur à la liste. |
* |
* @param array une_erreur |
* @return void |
* @access public |
*/ |
public function setErreur( $une_erreur ) { |
$this->erreurs[] = $une_erreur; |
} |
/** |
* Récupère la valeur du contexte. |
* |
* @return boolean |
* @access public |
*/ |
public function getContexte( ) { |
return $this->contexte; |
} |
/** |
* Définit si oui ou non le contexte sera affiché. |
* |
* @param boolean un_contexte |
* @return void |
* @access public |
*/ |
public function setContexte( $un_contexte ) { |
$this->contexte = $un_contexte; |
} |
/** |
* Récupère le niveau d'erreur courrant. |
* |
* @return int le niveau d'erreur courrant. |
* @access public |
*/ |
public function getNiveauErreurCourant( ) { |
return (int)$this->niveau_erreur_courant; |
} |
/** |
* Définit le niveau d'erreur courrant. |
* |
* @param int un niveau d'erreur. |
* @return void |
* @access public |
*/ |
public function setNiveauErreurCourant( $niveau = 2048 ) { |
$this->niveau_erreur_courant = $niveau; |
} |
/** |
* Définit le niveau d'erreur courrant (synonyme fonction precedente) |
* |
* @param int un niveau d'erreur. |
* @return void |
* @access public |
*/ |
public function setActive ($niveau) { |
$this->niveau_erreur_courant = $niveau; |
} |
/*** Méthodes : ***/ |
/** |
* |
* @param int niveau |
* @param string message |
* @param string fichier |
* @param int ligne |
* @param boolean contexte |
* @return void |
* @access public |
*/ |
public function gererErreur($niveau, $message, $fichier, $ligne, $contexte) |
{ |
$aso_erreur = array(); |
// Nous vérifions si nous affichons ou pas l'erreur en fonction du niveau demandé |
if ( $niveau <= $this->getNiveauErreurCourant() ) { |
$aso_erreur['niveau'] = $niveau; |
switch ($niveau) { |
case E_USER_NOTICE : |
if (is_array($message) || is_object($message)) { |
$aso_erreur['message'] = print_r($message, true); |
} else { |
$aso_erreur['message'] = $message; |
} |
break; |
default: |
$aso_erreur['message'] = $message; |
} |
$aso_erreur['fichier'] = $fichier; |
$aso_erreur['ligne'] = $ligne; |
if ($this->getContexte()) { |
$aso_erreur['contexte'] = $contexte; |
} |
$this->setErreur($aso_erreur); |
} |
// Si nous avons à faire à une erreur et non à un warning ou une notice, nous arrêtons l'exécution du script |
switch ($niveau) { |
case E_ERROR : |
case E_USER_ERROR : |
die($this->retournerErreur()); |
break; |
} |
} |
/** |
* Retourne l'erreur PHP formatée en XHTML. |
* |
* @return string |
* @access public |
*/ |
public function retournerErreur() |
{ |
$retour = ''; |
foreach($this->getErreur() as $aso_erreur) { |
if ('<!-- BEGIN sql -->' == substr($aso_erreur['message'], 0, 18)) { |
$retour .= $aso_erreur['message']; |
continue; |
} |
switch ($this->mode) { |
case 'cli' : |
if ($aso_erreur['niveau'] == E_USER_NOTICE) { |
$retour .= $aso_erreur['message']."\n"; |
$retour .= 'Fichier : '.$aso_erreur['fichier']."\n"; |
$retour .= 'Ligne : '.$aso_erreur['ligne']."\n"; |
} else if ($aso_erreur['niveau'] <= 512) { |
$retour .= 'INFO : Niveau '.$aso_erreur['niveau']."\n"; |
} else { |
$retour .= 'ERREUR : Niveau '.$aso_erreur['niveau']."\n"; |
} |
$retour .= 'Niveau : '.$aso_erreur['niveau']."\n"; |
$retour .= 'Message : '.$aso_erreur['message']."\n"; |
$retour .= 'Fichier : '.$aso_erreur['fichier']."\n"; |
$retour .= 'Ligne : '.$aso_erreur['ligne']."\n"; |
if ($this->getContexte()) { |
$retour .= 'Contexte : '."\n".print_r($aso_erreur['contexte'], true)."\n"; |
} |
break; |
default: |
if ($aso_erreur['niveau'] == E_USER_NOTICE) { |
$retour .= '<pre class="debogage">'."\n"; |
$retour .= htmlentities($aso_erreur['message'])."\n"; |
$retour .= '<span class="debogage_fichier">'.'Fichier : '.$aso_erreur['fichier'].'</span>'."\n"; |
$retour .= '<span class="debogage_ligne">'.'Ligne : '.$aso_erreur['ligne'].'</span>'."\n"; |
$retour .= '</pre>'."\n"; |
continue; |
} else if ($aso_erreur['niveau'] <= 512) { |
$retour .= '<p class="information">'."\n"; |
$retour .= '<strong>INFO : Niveau '.$aso_erreur['niveau'].'</strong><br />'."\n"; |
} else { |
$retour .= '<p class="attention">'."\n"; |
$retour .= '<strong>ERREUR : Niveau '.$aso_erreur['niveau'].'</strong><br />'."\n"; |
} |
$retour .= '<strong>Niveau : </strong>'.$aso_erreur['niveau'].'<br />'."\n"; |
$retour .= '<strong>Message : </strong>'.$aso_erreur['message'].'<br />'."\n"; |
$retour .= '<strong>Fichier : </strong>'.$aso_erreur['fichier'].'<br />'."\n"; |
$retour .= '<strong>Ligne : </strong>'.$aso_erreur['ligne'].'<br />'."\n"; |
if ($this->getContexte()) { |
$retour .= '<pre>'."\n"; |
$retour .= '<stong>Contexte : </stong>'."\n".print_r($aso_erreur['contexte'], true)."\n"; |
$retour .= '</pre>'."\n"; |
} |
$retour .= '</p>'."\n"; |
} |
} |
return $retour; |
} |
/** |
* Retourne l'erreur SQL formatée en XHTML. |
* |
* @param string fichier |
* @param int ligne |
* @param string message |
* @param string requete |
* @param string autres |
* @return string |
* @static |
* @access public |
*/ |
public static function retournerErreurSql( $fichier, $methode, $message, $requete = null, $autres = null ) |
{ |
$retour = ''; |
switch (php_sapi_name()) { |
case 'cli' : |
$retour .= 'ERREUR SQL '."\n"; |
$retour .= 'Fichier : '.$fichier."\n"; |
$retour .= 'Méthode : '.$methode."\n"; |
$retour .= 'Message : '.$message."\n"; |
if (!is_null($requete)) { |
$retour .= 'Requete : '."\n"; |
$retour .= $requete."\n"; |
} |
if (!is_null($autres)) { |
$retour .= 'Autres infos : '."\n"; |
$retour .= $autres."\n"; |
} |
break; |
default: |
$retour .= '<!-- BEGIN sql -->'; |
$retour .= '<div id="zone_erreur">'."\n"; |
$retour .= '<h1 > ERREUR SQL </h1><br />'."\n"; |
$retour .= '<dl>'."\n"; |
$retour .= '<dt> Fichier : </dt> '; |
$retour .= '<dd> '.$fichier.'</dd>'."\n"; |
$retour .= '<dt> Méthode : </dt> '; |
$retour .= '<dd> '.$methode.'</dd>'."\n"; |
$retour .= '<dt> Message erreur : </dt> '; |
$retour .= '<dd> '.$message.'</dd>'."\n"; |
if (!is_null($requete)) { |
$retour .= '<dt> Requete : </dt> '; |
$retour .= '<dd> '.$requete.' </dd>'."\n"; |
} |
if (!is_null($autres)) { |
$retour .= '<dt> Autres infos : </dt> '; |
$retour .= '<dd> '.$autres.' </dd>'."\n"; |
} |
$retour .= '</dl>'."\n"; |
$retour .= '</div>'."\n"; |
$retour .= '<!-- END sql -->'."\n"; |
} |
return $retour; |
} |
} |
?> |
/trunk/papyrus/applications/admin_administrateur/index.php |
---|
1,9 → 1,9 |
<?php |
/* |
* Created on 19 mars 2009 |
* |
* To change the template for this generated file go to |
* Window - Preferences - PHPeclipse - PHP - Code Templates |
*/ |
header('Location: admin_administrateur.php'); |
?> |
<?php |
/* |
* Created on 19 mars 2009 |
* |
* To change the template for this generated file go to |
* Window - Preferences - PHPeclipse - PHP - Code Templates |
*/ |
header('Location: admin_administrateur.php'); |
?> |
/trunk/papyrus/applications/admin_administrateur/squelettes/liste_admin.tpl.html |
---|
1,14 → 1,14 |
<h2> Liste des administrateurs</h2> |
<table class="liste_admin"> |
<th> Identifiant d'admin </th> <th> Nom </th> <th> Prénom </th> <th> Langue </th> <th> </th> <th> </th> |
<?php foreach ($admin as $element) : ?> |
<tr><td><?=$element['ga_id_administrateur'] ?></td><td><?=$element['ga_nom'] ?></td><td><?=$element['ga_prenom'] ?></td><td><?=$element['ga_ce_i18n'] ?></td><td><a href=<?=$base_url.'?m=modif_admin&id_admin='.$element['ga_id_administrateur'] ?>>Modifier</a></td><td><a href=<?=$base_url.'?m=suppr_admin&id_admin='.$element['ga_id_administrateur'] ?>>Supprimer</a></td></tr> |
<?php endforeach; ?> |
</table> |
<?php if (isset($erreurs['supp'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['supp'] ?> </span> |
<?php endif; ?> |
<p> |
<a href="<?=$base_url.'?&m=ajout_admin' ?>"> Ajouter un administrateur </a> |
<h2> Liste des administrateurs</h2> |
<table class="table_cadre"> |
<th> Identifiant d'admin </th> <th> Nom </th> <th> Prénom </th> <th> Langue </th> <th> </th> <th> </th> |
<?php foreach ($admin as $element) : ?> |
<tr><td><?=$element['ga_id_administrateur'] ?></td><td><?=$element['ga_nom'] ?></td><td><?=$element['ga_prenom'] ?></td><td><?=$element['ga_ce_i18n'] ?></td><td><a href=<?=$base_url.'?m=modif_admin&id_admin='.$element['ga_id_administrateur'] ?>>Modifier</a></td><td><a href=<?=$base_url.'?m=suppr_admin&id_admin='.$element['ga_id_administrateur'] ?>>Supprimer</a></td></tr> |
<?php endforeach; ?> |
</table> |
<?php if (isset($erreurs['supp'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['supp'] ?> </span> |
<?php endif; ?> |
<p> |
<a href="<?=$base_url.'?&m=ajout_admin' ?>"> Ajouter un administrateur </a> |
</p> |
/trunk/papyrus/applications/admin_administrateur/squelettes/ajout_admin.tpl.html |
---|
1,31 → 1,31 |
<h2> Ajout d'un administrateur</h2> |
<form id="modif_admin" action="<?=$base_url.'?&m=ajout_admin_va'?>" method="post"> |
<fieldset> |
<?php if (isset($erreurs['champs'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['champs'] ?> </span> |
<?php endif; ?> |
<label for="admin_nom">Nom : </label> |
<input type="text" id="admin_nom" name="admin_nom" maxlength="80" tabindex="1" value="<?=$admin['ga_nom'] ?>" /> |
<label for="admin_prenom">Prénom : </label> |
<input type="text" id="admin_prenom" name="admin_prenom" maxlength="80" tabindex="2" value="<?=$admin['ga_prenom'] ?>" /> |
<label for="admin_mail">Mail : </label> |
<input type="text" id="admin_mail" name="admin_mail" maxlength="120" tabindex="3" value="<?=$admin['ga_mail'] ?>" /> |
<?php if (isset($erreurs['mail'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['mail'] ?> </span> |
<?php endif; ?> |
<label for="admin_lang">Langue : </label> |
<select id="admin_lang" name="admin_lang" tabindex="4"> |
<option <?=($admin['ga_ce_i18n'] == "fr-FR") ? 'selected="selected"' : '';?> value="fr-FR"> Français </option> |
<option <?=($admin['ga_ce_i18n'] == "en-EN") ? 'selected="selected"' : '';?> value="en-EN"> Anglais </option> |
</select> |
<label for="password">Mot de passe : </label> |
<input type="password" id="admin_pass" name="admin_pass" maxlength="80" tabindex="5" value="<?='' ?>" /> |
<label for="password_confirm">Confirmez le mot de passe : </label> |
<input type="password" id="admin_pass_confirm" name="admin_pass_confirm" maxlength="80" tabindex="6" value="<?='' ?>" /> |
<?php if (isset($erreurs['pass'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['pass'] ?> </span> |
<?php endif; ?> |
</fieldset> |
<input type="submit" id="valider_ajout_admin" name="valider_ajout_admin" tabindex="7" value="Ajouter" /> |
<a href="<?= $base_url.'?m=liste_admin' ?>"> annuler </a> |
<h2> Ajout d'un administrateur</h2> |
<form id="modif_admin" action="<?=$base_url.'?&m=ajout_admin_va'?>" method="post"> |
<fieldset> |
<?php if (isset($erreurs['champs'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['champs'] ?> </span> |
<?php endif; ?> <br /> |
<label for="admin_nom">Nom : </label> |
<input type="text" id="admin_nom" name="admin_nom" maxlength="80" tabindex="1" value="<?=$admin['ga_nom'] ?>" /> <br /> |
<label for="admin_prenom">Prénom : </label> |
<input type="text" id="admin_prenom" name="admin_prenom" maxlength="80" tabindex="2" value="<?=$admin['ga_prenom'] ?>" /> <br /> |
<label for="admin_mail">Mail : </label> |
<input type="text" id="admin_mail" name="admin_mail" maxlength="120" tabindex="3" value="<?=$admin['ga_mail'] ?>" /> |
<?php if (isset($erreurs['mail'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['mail'] ?> </span> |
<?php endif; ?> <br /> |
<label for="admin_lang">Langue : </label> |
<select id="admin_lang" name="admin_lang" tabindex="4"> |
<option <?=($admin['ga_ce_i18n'] == "fr-FR") ? 'selected="selected"' : '';?> value="fr-FR"> Français </option> |
<option <?=($admin['ga_ce_i18n'] == "en-EN") ? 'selected="selected"' : '';?> value="en-EN"> Anglais </option> |
</select> <br /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="admin_pass" name="admin_pass" maxlength="80" tabindex="5" value="<?='' ?>" /> <br /> |
<label for="password_confirm">Confirmez le mot de passe : </label> |
<input type="password" id="admin_pass_confirm" name="admin_pass_confirm" maxlength="80" tabindex="6" value="<?='' ?>" /> |
<?php if (isset($erreurs['pass'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['pass'] ?> </span> |
<?php endif; ?> <br /> |
</fieldset> |
<input type="submit" id="valider_ajout_admin" name="valider_ajout_admin" tabindex="7" value="Ajouter" /> |
<a href="<?= $base_url.'?m=liste_admin' ?>"> annuler </a> |
</form> |
/trunk/papyrus/applications/admin_administrateur/squelettes/ident_admin.tpl.html |
---|
1,11 → 1,11 |
<p class="zone_alert">Identifiez-vous</p> |
<form id="form_connexion" style="clear:both;" class="form_identification" action="<?=$base_url ?>" method="post"> |
<fieldset> |
<legend>Identifiez vous</legend> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="1" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="2" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="3" value="ok" /> |
</fieldset> |
<p class="zone_alert">Identifiez-vous</p> |
<form id="form_connexion" style="clear:both;" class="form_identification" action="<?=$base_url ?>" method="post"> |
<fieldset> |
<legend>Identifiez vous</legend> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="1" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="2" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="3" value="ok" /> |
</fieldset> |
</form> |
/trunk/papyrus/applications/admin_administrateur/squelettes/modif_admin.tpl.html |
---|
1,28 → 1,28 |
<h2> Modification d'un administrateur</h2> |
<form id="modif_admin" action="<?=$base_url.'?m=modif_admin_va&id_admin='.$admin['ga_id_administrateur'] ?>" method="post"> |
<fieldset> |
<label for="admin_nom">Nom : </label> |
<input type="text" id="admin_nom" name="admin_nom" maxlength="80" tabindex="1" value="<?=$admin['ga_nom'] ?>" /> |
<label for="admin_prenom">Prénom : </label> |
<input type="text" id="admin_prenom" name="admin_prenom" maxlength="80" tabindex="2" value="<?=$admin['ga_prenom'] ?>" /> |
<label for="admin_mail">Mail : </label> |
<input type="text" id="admin_mail" name="admin_mail" maxlength="120" tabindex="3" value="<?=$admin['ga_mail'] ?>" /> |
<?php if (isset($erreurs['mail'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['mail'] ?> </span> |
<?php endif; ?> |
<label for="admin_lang">Langue : </label> |
<select id="admin_lang" name="admin_lang" tabindex="4"> |
<option <?=($admin['ga_ce_i18n'] == "fr-FR") ? 'selected="selected"' : '';?> value="fr-FR"> Français </option> |
<option <?=($admin['ga_ce_i18n'] == "en-EN") ? 'selected="selected"' : '';?> value="en-EN"> Anglais </option> |
</select> |
<label for="password">Mot de passe : </label> |
<input type="password" id="admin_pass" name="admin_pass" maxlength="80" tabindex="5" value="<?='' ?>" /> |
<label for="password_confirm">Confirmez le mot de passe : </label> |
<input type="password" id="admin_pass_confirm" name="admin_pass_confirm" maxlength="80" tabindex="6" value="<?='' ?>" /> |
<?php if (isset($erreurs['pass'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['pass'] ?> </span> |
<?php endif; ?> |
</fieldset> |
<input type="submit" id="valider_modif_admin" name="valider_modif_admin" tabindex="7" value="Modifier" /> |
<a href="<?=$base_url.'?m=liste_admin' ?>"> annuler </a> |
<h2> Modification d'un administrateur</h2> |
<form id="modif_admin" action="<?=$base_url.'?m=modif_admin_va&id_admin='.$admin['ga_id_administrateur'] ?>" method="post"> |
<fieldset> |
<label for="admin_nom">Nom : </label> |
<input type="text" id="admin_nom" name="admin_nom" maxlength="80" tabindex="1" value="<?=$admin['ga_nom'] ?>" /> <br /> |
<label for="admin_prenom">Prénom : </label> |
<input type="text" id="admin_prenom" name="admin_prenom" maxlength="80" tabindex="2" value="<?=$admin['ga_prenom'] ?>" /> <br /> |
<label for="admin_mail">Mail : </label> |
<input type="text" id="admin_mail" name="admin_mail" maxlength="120" tabindex="3" value="<?=$admin['ga_mail'] ?>" /> |
<?php if (isset($erreurs['mail'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['mail'] ?> </span> |
<?php endif; ?> <br /> |
<label for="admin_lang">Langue : </label> |
<select id="admin_lang" name="admin_lang" tabindex="4"> |
<option <?=($admin['ga_ce_i18n'] == "fr-FR") ? 'selected="selected"' : '';?> value="fr-FR"> Français </option> |
<option <?=($admin['ga_ce_i18n'] == "en-EN") ? 'selected="selected"' : '';?> value="en-EN"> Anglais </option> |
</select> <br /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="admin_pass" name="admin_pass" maxlength="80" tabindex="5" value="<?='' ?>" /> <br /> |
<label for="password_confirm">Confirmez le mot de passe : </label> |
<input type="password" id="admin_pass_confirm" name="admin_pass_confirm" maxlength="80" tabindex="6" value="<?='' ?>" /> <br /> |
<?php if (isset($erreurs['pass'])): ?> |
<span class="symbole_obligatoire"> <?=$erreurs['pass'] ?> </span> |
<?php endif; ?> |
</fieldset> |
<input type="submit" id="valider_modif_admin" name="valider_modif_admin" tabindex="7" value="Modifier" /> |
<a href="<?=$base_url.'?m=liste_admin' ?>"> annuler </a> |
</form> |
/trunk/papyrus/applications/admin_administrateur/controleurs/AdminAdministrateur.php |
---|
1,177 → 1,177 |
<?php |
/** |
* Classe controleur pour l'application administration des administrateurs |
*/ |
class AdminAdministrateur extends Controleur { |
/** |
* Fonction d'affichage par défaut, elle appelle la liste des administrateurs |
*/ |
function index() { |
$this->charger_admin() ; |
} |
/** |
* Charge la liste des administrateurs et l'envoie à la vue |
* @param array un tableau contenant les erreurs à afficher s'il y en a |
*/ |
function chargerAdmin($erreurs = array()) { |
$this->chargerModele('ListeAdmin'); |
$data['erreurs'] = $erreurs; |
$data['admin'] = $this->ListeAdmin->chargerAdmin(); |
$this->chargerVue('liste_admin',$data); |
return $this->liste_admin; |
} |
/** |
* Charge les détails d'un administrateur demandé et l'envoi à la |
* vue qui permet de les modifier |
*/ |
function modifAdmin($id) { |
$this->chargerModele('ListeAdmin'); |
$data['admin'] = $this->ListeAdmin->loadDetailsAdmin($id); |
$this->chargerVue('modif_admin',$data); |
return $this->modif_admin; |
} |
/** |
* Fonction appelée lors de la validation du formulaire de modification |
* des détails d'un administrateurs. Elle modifie les détails dans la base |
* de données. S'il y a une erreur et rappelle la formulaire et notifie l'erreur, |
* sinon elle charge la liste des administrateurs |
*/ |
function modifAdminVa($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) ; |
if(count($res) == 0) { |
return $this->chargerAdmin() ; |
} else { |
$admin['ga_id_administrateur'] = $id ; |
$admin['ga_nom'] = $nom ; |
$admin['ga_prenom'] = $prenom ; |
$admin['ga_mail'] = $mail ; |
$admin['ga_ce_i18n'] = $lang ; |
$data['admin'] = $admin ; |
$data['erreurs'] = $res ; |
$this->chargerVue('modif_admin',$data); |
return $this->modif_admin; |
} |
} |
/** |
* Supprime un administrateur dans la base de données, |
* renvoie la liste des administrateurs, en affichant des erreurs |
* s'il y en a. |
* |
*/ |
function supprAdmin() { |
$id = $_GET['id_admin'] ; |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->suppAdmin($id) ; |
if($res == '') { |
return $this->chargerAdmin() ; |
} else { |
$erreurs['supp'] = $res ; |
return $this->chargerAdmin($erreurs) ; |
} |
} |
/** |
* Appelle la vue contenant le formulaire d'ajout d'un administrateur |
*/ |
function ajoutAdmin() { |
$admin['ga_id_administrateur'] = ''; |
$admin['ga_nom'] = ''; |
$admin['ga_prenom'] = ''; |
$admin['ga_mail'] = ''; |
$admin['ga_ce_i18n'] = ''; |
$data['admin'] = $admin; |
$this->chargerVue('ajout_admin',$data); |
return $this->ajout_admin; |
} |
/** |
* Fonction appelée lors de la validation du formulaire d'ajout d'un administrateur. |
* Elle ajoute celui-ci les dans la base de données |
* S'il y a une erreur et rappelle la formulaire et notifie l'erreur, |
* sinon elle charge la liste des administrateurs |
*/ |
function ajoutAdminVa($nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
if(empty($nom) || empty($prenom) || empty($mail) || empty($pass) || empty($pass_conf)) { |
$res = array('champs' => 'Tous les champs sont obligatoires') ; |
$data['erreurs'] = $res ; |
$admin['ga_nom'] = $nom ; |
$admin['ga_prenom'] = $prenom ; |
$admin['ga_mail'] = $mail ; |
$admin['ga_ce_i18n'] = $lang ; |
$data['admin'] = $admin ; |
$this->chargerVue('ajout_admin',$data); |
return $this->ajout_admin; |
} |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf) ; |
if(count($res) == 0) { |
return $this->chargerAdmin() ; |
} else { |
$admin['ga_nom'] = $nom ; |
$admin['ga_prenom'] = $prenom ; |
$admin['ga_mail'] = $mail ; |
$admin['ga_ce_i18n'] = $lang ; |
$data['admin'] = $admin ; |
$data['erreurs'] = $res ; |
$this->chargerVue('ajout_admin',$data); |
return $this->ajout_admin; |
} |
} |
/** Apelle le formulaire d'identification (dans le cas où l'utilisateur n'est pas identifié) |
*/ |
function demanderIdent() { |
$this->chargerVue('ident_admin',null) ; |
return $this->ident_admin; |
} |
/** |
* Renvoie la tête de page de l'application |
*/ |
function adminTete() { |
$tete = '<h1>Gestion des administrateurs de Papyrus</h1>'; |
return $tete; |
} |
/** |
* Renvoie le pied de page de l'application |
*/ |
function adminPied() { |
$pied = ''; |
return $pied ; |
} |
} |
?> |
<?php |
/** |
* Classe controleur pour l'application administration des administrateurs |
*/ |
class AdminAdministrateur extends Controleur { |
/** |
* Fonction d'affichage par défaut, elle appelle la liste des administrateurs |
*/ |
function index() { |
$this->charger_admin() ; |
} |
/** |
* Charge la liste des administrateurs et l'envoie à la vue |
* @param array un tableau contenant les erreurs à afficher s'il y en a |
*/ |
function chargerAdmin($erreurs = array()) { |
$this->chargerModele('ListeAdmin'); |
$data['erreurs'] = $erreurs; |
$data['admin'] = $this->ListeAdmin->chargerAdmin(); |
$this->chargerVue('liste_admin',$data); |
return $this->liste_admin; |
} |
/** |
* Charge les détails d'un administrateur demandé et l'envoi à la |
* vue qui permet de les modifier |
*/ |
function modifAdmin($id) { |
$this->chargerModele('ListeAdmin'); |
$data['admin'] = $this->ListeAdmin->loadDetailsAdmin($id); |
$this->chargerVue('modif_admin',$data); |
return $this->modif_admin; |
} |
/** |
* Fonction appelée lors de la validation du formulaire de modification |
* des détails d'un administrateurs. Elle modifie les détails dans la base |
* de données. S'il y a une erreur et rappelle la formulaire et notifie l'erreur, |
* sinon elle charge la liste des administrateurs |
*/ |
function modifAdminVa($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) ; |
if(count($res) == 0) { |
return $this->chargerAdmin() ; |
} else { |
$admin['ga_id_administrateur'] = $id ; |
$admin['ga_nom'] = $nom ; |
$admin['ga_prenom'] = $prenom ; |
$admin['ga_mail'] = $mail ; |
$admin['ga_ce_i18n'] = $lang ; |
$data['admin'] = $admin ; |
$data['erreurs'] = $res ; |
$this->chargerVue('modif_admin',$data); |
return $this->modif_admin; |
} |
} |
/** |
* Supprime un administrateur dans la base de données, |
* renvoie la liste des administrateurs, en affichant des erreurs |
* s'il y en a. |
* |
*/ |
function supprAdmin() { |
$id = $_GET['id_admin'] ; |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->suppAdmin($id) ; |
if($res == '') { |
return $this->chargerAdmin() ; |
} else { |
$erreurs['supp'] = $res ; |
return $this->chargerAdmin($erreurs) ; |
} |
} |
/** |
* Appelle la vue contenant le formulaire d'ajout d'un administrateur |
*/ |
function ajoutAdmin() { |
$admin['ga_id_administrateur'] = ''; |
$admin['ga_nom'] = ''; |
$admin['ga_prenom'] = ''; |
$admin['ga_mail'] = ''; |
$admin['ga_ce_i18n'] = ''; |
$data['admin'] = $admin; |
$this->chargerVue('ajout_admin',$data); |
return $this->ajout_admin; |
} |
/** |
* Fonction appelée lors de la validation du formulaire d'ajout d'un administrateur. |
* Elle ajoute celui-ci les dans la base de données |
* S'il y a une erreur et rappelle la formulaire et notifie l'erreur, |
* sinon elle charge la liste des administrateurs |
*/ |
function ajoutAdminVa($nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
if(empty($nom) || empty($prenom) || empty($mail) || empty($pass) || empty($pass_conf)) { |
$res = array('champs' => 'Tous les champs sont obligatoires') ; |
$data['erreurs'] = $res ; |
$admin['ga_nom'] = $nom ; |
$admin['ga_prenom'] = $prenom ; |
$admin['ga_mail'] = $mail ; |
$admin['ga_ce_i18n'] = $lang ; |
$data['admin'] = $admin ; |
$this->chargerVue('ajout_admin',$data); |
return $this->ajout_admin; |
} |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf) ; |
if(count($res) == 0) { |
return $this->chargerAdmin() ; |
} else { |
$admin['ga_nom'] = $nom ; |
$admin['ga_prenom'] = $prenom ; |
$admin['ga_mail'] = $mail ; |
$admin['ga_ce_i18n'] = $lang ; |
$data['admin'] = $admin ; |
$data['erreurs'] = $res ; |
$this->chargerVue('ajout_admin',$data); |
return $this->ajout_admin; |
} |
} |
/** Apelle le formulaire d'identification (dans le cas où l'utilisateur n'est pas identifié) |
*/ |
function demanderIdent() { |
$this->chargerVue('ident_admin',null) ; |
return $this->ident_admin; |
} |
/** |
* Renvoie la tête de page de l'application |
*/ |
function adminTete() { |
$tete = '<h1>Gestion des administrateurs de Papyrus</h1>'; |
return $tete; |
} |
/** |
* Renvoie le pied de page de l'application |
*/ |
function adminPied() { |
$pied = ''; |
return $pied ; |
} |
} |
?> |