Subversion Repositories Applications.papyrus

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1086 → Rev 1087

/branches/livraison_menes/papyrus/applications/plan/configuration/plan_config.inc.php
New file
0,0 → 1,76
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: plan_config.inc.php,v 1.2 2006-03-02 10:49:49 ddelon Exp $
/**
* Configuration de l'applette Identification.
*
* Fichier de configuration de l'applette selection de site.
*
*@package Applette
*@subpackage Selecteur
//Auteur original :
*@author David Delon <david.delon@clapas.net>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2005
*@version $Revision: 1.2 $ $Date: 2006-03-02 10:49:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/** Constante stockant la valeur de la langue par défaut pour l'appli ADME.*/
define('PLAN_I18N_DEFAUT', GEN_I18N_ID_DEFAUT);
 
// Chemin vers les dossiers de l'application
/** Chemin vers l'application Plan de Papyrus.*/
define('PLAN_CHEMIN_APPLICATION', GEN_CHEMIN_APPLICATION.'plan/');
/** Chemin vers les fichiers de traduction de l'application Admin Auth de Papyrus.*/
define('PLAN_CHEMIN_LANGUE', PLAN_CHEMIN_APPLICATION.'langues/');
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1.2.1 2006/02/28 14:02:09 ddelon
* Finition multilinguisme
*
* Revision 1.1.2.1 2005/12/07 19:46:15 ddelon
* Merge + navi sites
*
* Revision 1.1 2005/03/15 14:18:49 jpm
* Ajout d'un fichier de config.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/plan/langues/plan_langue_en.inc.php
New file
0,0 → 1,65
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: plan_langue_en.inc.php,v 1.2 2006-03-02 10:49:49 ddelon Exp $
/**
* Gestion des langues de l'application PLAN
*
* Contient les constantes pour la langue française de l'application PLAN
*
*@package Plan
*@subpackage Langues
//Auteur original :
*@author David Delon<dd@clapas.net>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.2 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des CONSTANTES |
// +------------------------------------------------------------------------------------------------------+
define('PLAN_PLAN_DU_SITE', 'Site map');
define('PLAN_PLAN_DES_SITES', 'Sites map');
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1.2.1 2006/02/28 14:02:10 ddelon
* Finition multilinguisme
*
* Revision 1.3 2005/04/14 13:54:51 jpm
* Amélioration de l'interface et mise en conformité.
*
* Revision 1.2 2004/12/13 18:07:57 alex
* ajout de labels
*
* Revision 1.1 2004/12/06 11:31:37 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/plan/langues/plan_langue_fr.inc.php
New file
0,0 → 1,65
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: plan_langue_fr.inc.php,v 1.2 2006-03-02 10:49:49 ddelon Exp $
/**
* Gestion des langues de l'application PLAN
*
* Contient les constantes pour la langue française de l'application PLAN
*
*@package Plan
*@subpackage Langues
//Auteur original :
*@author David Delon<dd@clapas.net>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.2 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des CONSTANTES |
// +------------------------------------------------------------------------------------------------------+
define('PLAN_PLAN_DU_SITE', 'Plan du site');
define('PLAN_PLAN_DES_SITES', 'Plan des sites');
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1.2.1 2006/02/28 14:02:10 ddelon
* Finition multilinguisme
*
* Revision 1.3 2005/04/14 13:54:51 jpm
* Amélioration de l'interface et mise en conformité.
*
* Revision 1.2 2004/12/13 18:07:57 alex
* ajout de labels
*
* Revision 1.1 2004/12/06 11:31:37 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/plan/plan.php
New file
0,0 → 1,209
<?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: plan.php,v 1.7 2006-10-11 18:05:15 jp_milcent Exp $
/**
* Application réalisant le plan d'un site web géré par Papyrus.
*
* Construit une liste de listes représentant le plans des sites web gérés par Papyrus.
* Cette application est fortement dépendante de Papyrus puisqu'elle se base sur
* le modèle de données de Papyrus.
*
*@package Plan
//Auteur original :
*@author Alexandre GRANIER <alexandrel@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.7 $ $Date: 2006-10-11 18:05:15 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Constante permettatn de configurer l'application en affichant que le plan du site courant si sa valeur vaut true.*/
define('PLAN_SITE_COURRANT', false);
define('PLAN_AFFICHER_PERMALIEN', false);
 
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications/plan/configuration/plan_config.inc.php';
 
// Inclusion des fichiers de traduction de l'applette.
if (file_exists(PLAN_CHEMIN_LANGUE.'plan_langue_'.$_GEN_commun['i18n'].'.inc.php')) {
require_once PLAN_CHEMIN_LANGUE.'plan_langue_'.$_GEN_commun['i18n'].'.inc.php';
} else {
require_once PLAN_CHEMIN_LANGUE.'plan_langue_'.PLAN_I18N_DEFAUT.'.inc.php';
}
 
// +------------------------------------------------------------------------------------------------------+
// | 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 '';
}
 
/** Fonction afficherContenuCorps() - Fonction appelé par le gestionnaire Papyrus.
*
* Elle démarre la création de la liste contenant le plan du site.
*
* @return string le code HTML produit par l'application.
*/
function afficherContenuCorps()
{
// Initialisation des variables
$retour = '';
$bdd =& $GLOBALS['_GEN_commun']['pear_db'];
$site_courant_id = $GLOBALS['_GEN_commun']['info_site']->gs_id_site;
// Si on veut seulement le plan du site courrant.
if (PLAN_SITE_COURRANT) {
$aso_sites = GEN_lireInfoSitePrincipal($bdd, $site_courant_id, DB_FETCHMODE_ASSOC);
$retour .= '<h1 id="titre_page">'.PLAN_PLAN_DU_SITE.'</h1>'."\n";
} else {
$aso_sites = GEN_lireInfoSites($bdd, DB_FETCHMODE_ASSOC);
$retour .= '<h1 id="titre_page">'.PLAN_PLAN_DES_SITES.'</h1>'."\n";
}
foreach ($aso_sites as $cle => $site) {
// On ignore le site admin
if ($site['gs_code_alpha'] == 'admin' && $GLOBALS['_GEN_commun']['info_site']->gs_code_alpha!='admin') continue;
if (count($aso_sites) >= 1) {
if (!empty($site['gs_titre'])) {
$titre = $site['gs_titre'];
} else {
$titre = $site['gs_nom'];
}
$url_site =& new Pap_URL();
$url_site->setUrlType('SITE');
$url_site->setId($site['gs_id_site']);
$retour .= '<h2><a href="'.$url_site->getUrl().'">'.htmlentities($titre).'</a></h2>'."\n";
}
$retour .= '<ul class="plan_site_'.$site['gs_nom'].'" >'."\n";
$aso_menus = GEN_retournerTableauMenusSiteCodeAlpha($bdd, $site['gs_code_alpha']);
$retour .= parserTableauMenus($aso_menus, PLAN_AFFICHER_PERMALIEN);
$retour .= '</ul>'."\n";
}
return $retour;
}
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
function parserTableauMenus($aso_menus, $permalien)
{
$retour = '';
// Création de l'url
foreach ($aso_menus as $menu_id => $menu_valeur) {
if ($menu_valeur['gm_date_fin_validite'] == '0000-00-00 00:00:00' || strtotime($menu_valeur['gm_date_fin_validite']) > time() ) {
$retour .= '<li>';
// Création de l'url
$une_url =& new Pap_URL();
$une_url->setId($menu_id);
// Construction de l'attribut title
$title = '';
if (!empty($menu_valeur['gm_titre'])) {
$title = ' title="'.htmlentities($menu_valeur['gm_titre']).'"';
} elseif (!empty($menu_valeur['gm_titre_alternatif'])) {
$title = ' title="'.htmlentities($menu_valeur['gm_titre_alternatif']).'"';
}
// Construction du lien
$retour .= '<a href="'.$une_url->getURL().'"'.$title.'>'.htmlentities($menu_valeur['gm_nom']).'</a>';
// Nous affichons ou pas le permalien
if ($permalien) {
$une_url->setPermalien(true);
$retour .= ' <span class="plan_permalien">'.'('.$une_url->getURL().')'.'</span>';
$une_url->setPermalien(false);
}
// Nous ajoutons les sous-menus s'il y en a.
$retour_menus = parserTableauMenus($menu_valeur['sous_menus'], $permalien);
if ($retour_menus != '') {
$retour .= "\n".'<ul>'."\n".$retour_menus."\n".'</ul>'."\n";
}
$retour .= '</li>'."\n";
}
}
return $retour;
}
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.6 2006/10/06 10:03:14 florian
* amelioration: affichage du plan des menus d'administration, dans le monde administration
*
* Revision 1.5 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.4.2.1 2006/02/28 14:02:09 ddelon
* Finition multilinguisme
*
* Revision 1.4 2005/10/14 11:49:51 alexandre_tb
* Pas d'affichage du site admin
*
* Revision 1.3 2005/04/19 17:21:02 jpm
* Amélioration de l'application.
* Gestion des dates de fin de validité des menus.
*
* Revision 1.2 2005/02/28 10:38:24 jpm
* Modification de l'utilisation d'une variable globale.
*
* Revision 1.1 2004/06/16 14:34:53 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.7 2004/05/05 15:33:59 jpm
* Gestion de l'indication des langues disponibles pour un menu d'un site donné.
*
* Revision 1.6 2004/05/05 14:33:00 jpm
* Gestion de l'indication de langue dans l'url.
* Utile que si on veut forcer la langue.
*
* Revision 1.5 2004/05/05 06:45:51 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.4 2004/05/04 16:27:27 jpm
* Réduction de code pour la fonction afficherContenuTete().
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_application/admin_application.php
New file
0,0 → 1,201
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: admin_application.php,v 1.7 2006-12-01 10:39:14 alexandre_tb Exp $
/**
* Application gérant les applications de Papyrus
*
* Cette application permet de gérer les applications de papyrus
* elle permet de spécifier pour un monde quel annuaire utiliser
* et de gérer des authentifications de spip et ou wikini
*
*@package Admin_auth
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.7 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications/admin_application/configuration/adap_configuration.inc.php';
 
//Utilisation de la bibliothèque PEAR NET_URL
 
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
require_once ADAP_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
require_once ADAP_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php';
 
/** Inclusion de l'API de fonctions gérant les erreurs sql.*/
require_once ADAP_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php';
 
/** Inclusion des fonctions de manipulation du sql.
* Permet la récupération d'un nouvel identifiant d'une table.*/
require_once ADAP_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
 
require_once ADAP_CHEMIN_BIBLIOTHEQUE_API.'html/HTML_TableFragmenteur.php' ;
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/
require_once ADAP_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.*/
require_once ADAP_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_applications..." de Papyrus.*/
require_once ADAP_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php';
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant l'affichage commun.*/
require_once ADAP_CHEMIN_BIBLIOTHEQUE.'adap_application.fonct.php';
 
require_once ADAP_CHEMIN_BIBLIOTHEQUE.'HTML_formulaireAppli.class.php' ;
 
 
// Inclusion des fichiers de traduction de l'appli ADME dePapyrus
if (file_exists(ADAP_CHEMIN_LANGUE.'adap_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
/** Inclusion du fichier de traduction suite à la transaction avec le navigateur.*/
require_once ADAP_CHEMIN_LANGUE.'adap_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
} else {
/** Inclusion du fichier de traduction par défaut.*/
require_once ADAP_CHEMIN_LANGUE.'adap_langue_'.ADAP_I18N_DEFAUT.'.inc.php';
}
 
// Stockage des styles de l'application
GEN_stockerStyleExterne('adap_standard', ADAP_CHEMIN_STYLE.'adap_standard.css');
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
function afficherContenuCorps()
{
$db = &$GLOBALS['_GEN_commun']['pear_db'] ;
$url = $GLOBALS['_GEN_commun']['url'] ;
$auth = &$GLOBALS['_GEN_commun']['pear_auth'] ;
isset ($GLOBALS['action']) ? '' : $GLOBALS['action'] = '' ; // On déclare action si elle n'existe pas
$res='';
if (!$auth->getAuth()) {
$res .= '<p class="zone_alert">'.ADAP_IDENTIFIEZ_VOUS.'</p>'."\n" ;
$res .= '<form id="form_connexion" style="clear:both;" class="form_identification" action="' ;
$res .= $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 ;
} else {
// Le lien pour une nouvelle entrée
$res .= '<a href="'.$url->getURL().'&amp;action=nouveau">'.ADAP_AJOUTER.'</a>'."\n<br />" ;
// traitement de la suppression
if (isset ($GLOBALS['action']) && $GLOBALS['action'] == 'supprimer') adap_supprimer_application($GLOBALS['id_appl'], $db) ;
// traitement de l'ajout
if (isset ($GLOBALS['action']) || isset ($GLOBALS['id_appl'])) {
$formulaire = new HTML_formulaireAppl('formulaire_appl', '', str_replace ('&amp;', '&', $url->getURL())) ;
$formulaire->construitFormulaire($url) ;
// On ajoute un champs caché avec action=nouveau_v
if ($GLOBALS['action'] == 'nouveau') {
$formulaire->addElement ('hidden', 'action', 'nouveau_v') ;
return $formulaire->toHTML() ;
}
if (isset ($GLOBALS['id_appl']) && $GLOBALS['action'] != 'modifier_v' && $GLOBALS['action'] != 'supprimer') {
$formulaire->addElement ('hidden', 'action', 'modifier_v') ;
$formulaire->addElement ('hidden', 'id_appl', $GLOBALS['id_appl']) ;
$formulaire->setDefaults(adap_valeurs_par_defaut($GLOBALS['id_appl'], $db)) ;
return $formulaire->toHTML() ;
}
if ($GLOBALS['action'] == 'modifier_v') {
if ($formulaire->validate()) {
mise_a_jour ($formulaire->getSubmitValues(), $db) ;
}
}
if ($GLOBALS['action'] == 'nouveau_v') {
if ($formulaire->validate()) {
insertion ($formulaire->getSubmitValues(), $db) ;
}
}
}
// Comportement par défaut
// requete sur la table gen_application
$requete = 'SELECT gap_id_application, gap_nom FROM gen_application where gap_id_application <> 0 ORDER BY gap_nom ASC' ;
$resultat = $db->query ($requete) ;
if (DB::isError ($resultat)) {
$GLOBALS['_GEN_commun']['debogage_erreur']->gererErreur(E_USER_WARNING, "Echec de la requete : $requete<br />".$resultat->getMessage(),
__FILE__, __LINE__, 'admin_appl') ;
return ;
}
$liste = new HTML_TableFragmenteur () ;
$liste->construireEntete(array (ADAP_NOM_APPL, ADAP_SUPPRIMER)) ;
$tableau_appl = array() ;
while ($ligne = $resultat->fetchRow()) {
$url->addQueryString ('id_appl', $ligne[0]) ;
array_push ($tableau_appl, array ('<a href="'.$url->getURL().'">'.$ligne[1].'</a>'."\n", // Première colonne, le nom de l'application
'<a href="'.$url->getURL().'&amp;action=supprimer" onclick="javascript:return confirm (\''.ADAP_SUPPRIMER.' ?\');">'.ADAP_SUPPRIMER.'</a>'."\n"
));
}
$liste->construireListe($tableau_appl) ;
$res .= $liste->toHTML();
return $res ;
}
}// Fin de la fonction afficherContenuCorps()
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.6 2006/10/06 10:40:51 florian
* harmonisation des messages d'erreur de l'authentification
*
* Revision 1.5 2006/09/07 13:28:39 jp_milcent
* Mise en majuscule des termes SQL et trie des application par ordre alphabétique.
*
* Revision 1.4 2005/03/09 10:46:17 jpm
* Changement d'un nom de fichier.
*
* Revision 1.3 2005/03/09 10:40:26 alex
* version initiale
*
* Revision 1.2 2005/02/28 10:32:59 jpm
* Changement de nom de dossier.
*
* Revision 1.1 2004/12/13 18:07:19 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_application/configuration/adap_configuration.inc.php
New file
0,0 → 1,80
<?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: adap_configuration.inc.php,v 1.1 2004-12-13 18:07:33 alex Exp $
/**
* Fichier de configuration général de l'application Administration des applications.
*
* Permet de définir certains paramètres valables pour toutes l'application
* Administrateur des applications.
*
*@package Admin_application
*@subpackage Configuration
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Constante stockant la valeur de la langue par défaut pour l'appli ADAP.*/
define('ADAP_I18N_DEFAUT', GEN_I18N_ID_DEFAUT);
 
// Chemin des fichiers à inclure.
/** Chemin vers la bibliothèque PEAR.*/
define('ADAP_CHEMIN_BIBLIOTHEQUE_PEAR', '');
/** Chemin vers la bibliothèque API.*/
define('ADAP_CHEMIN_BIBLIOTHEQUE_API', GEN_CHEMIN_API);
/** Chemin vers la bibliothèque de Papyrus.*/
define('ADAP_CHEMIN_BIBLIOTHEQUE_GEN', GEN_CHEMIN_BIBLIO);
 
// Chemin vers les dossiers de l'application
/** Chemin vers l'application Admin Auth de Papyrus.*/
define('ADAP_CHEMIN_APPLICATION', GEN_CHEMIN_APPLICATION.'admin_application/');
/** Chemin vers les images de l'application Admin Auth de Papyrus.*/
define('ADAP_CHEMIN_IMAGE_INTERFACE', ADAP_CHEMIN_APPLICATION.'presentations/images/interface/');
/** Chemin vers la bibliothèque de l'application Admin Auth de Papyrus.*/
define('ADAP_CHEMIN_BIBLIOTHEQUE', ADAP_CHEMIN_APPLICATION.'bibliotheque/');
/** Chemin vers les classes de l'application Admin Auth de Papyrus.*/
define('ADAP_CHEMIN_CLASSES', ADAP_CHEMIN_APPLICATION.'classes/');
/** Chemin vers les fichiers de traduction de l'application Admin Auth de Papyrus.*/
define('ADAP_CHEMIN_LANGUE', ADAP_CHEMIN_APPLICATION.'langues/');
/** Chemin vers les styles de l'application Admin Auth de Papyrus.*/
define('ADAP_CHEMIN_STYLE', ADAP_CHEMIN_APPLICATION.'presentations/styles/');
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_application/bibliotheque/adap_application.fonct.php
New file
0,0 → 1,153
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: adap_application.fonct.php,v 1.4 2006-12-01 10:39:14 alexandre_tb Exp $
/**
* Contient les fonctions de l'appli admin_auth
*
*
*
*
*@package Admin_auth
*@subpackage Fonctions
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/**
*
*
* @return
*/
 
function adap_supprimer_application($id_appl, &$db) {
$requete = 'DELETE FROM gen_application WHERE gap_id_application='.$id_appl;
$resultat = $db->query ($requete) ;
}
 
/**
*
*
* @return
*/
 
function adap_valeurs_par_defaut ($id_appl, &$db) {
// requete sur gen_site_auth
$requete = 'SELECT * FROM gen_application WHERE gap_id_application='.$id_appl ;
$resultat = $db->query ($requete) ;
if (DB::isError ($resultat)) {
trigger_error("Echec de la requete : $requete<br />".$resultat->getMessage(), E_USER_WARNING) ;
return ;
}
$tableau_retour = array () ;
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
$tableau_retour['nom_appl'] = $ligne->gap_nom ;
$tableau_retour['description'] = $ligne->gap_description ;
$tableau_retour['chemin'] = $ligne->gap_chemin ;
unset ($requete, $resultat) ;
return $tableau_retour ;
}
 
/**
*
*
* @return
*/
 
function insertion ($valeur, &$db) {
$id_appl_bdd = SQL_obtenirNouveauId ($db, 'gen_application', 'gap_id_application') ;
$requete = "insert into gen_application set gap_id_application="
.$id_appl_bdd.","
.requete_site_appl($valeur) ;
$resultat = $db->query ($requete) ;
if (DB::isError ($resultat)) {
trigger_error("Echec de la requete : $requete<br />".$resultat->getMessage(),E_USER_WARNING) ;
}
}
 
/**
*
*
* @return
*/
 
function mise_a_jour ($valeur, &$db) {
$requete = "update gen_application set ".requete_site_appl($valeur)
.' WHERE gap_id_application='.$GLOBALS['id_appl'] ;
$resultat = $db->query ($requete) ;
if (DB::isError ($resultat)) {
trigger_error("Echec de la requete : $requete<br />".$resultat->getMessage(),E_USER_WARNING) ;
}
}
 
/**
*
*
* @return string un morceau de code SQL
*/
 
function requete_site_appl (&$valeur) {
if (!isset($valeur['applette'])) {$valeur['applette']=0;}
return 'gap_nom="'.$valeur['nom_appl'].'", '
.'gap_description="'.$valeur['description'].'", '
.'gap_chemin="'.$valeur['chemin'].'"';
}
 
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* 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.
*
* Revision 1.2 2005/09/23 15:02:38 florian
* correction de bugs
*
* Revision 1.1 2005/03/09 10:44:04 jpm
* Mise au norme du nom du fichier.
*
* Revision 1.2 2005/03/09 10:40:33 alex
* version initiale
*
* Revision 1.1 2004/12/13 18:07:28 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_application/bibliotheque/HTML_formulaireAppli.class.php
New file
0,0 → 1,110
<?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 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 |
// | General Public License for more details. |
// | |
// | You should have received a copy of the GNU 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: HTML_formulaireAppli.class.php,v 1.4 2006-12-01 10:39:14 alexandre_tb Exp $
/**
* Application projet
*
* La classe HTML_formulaireAuth
*
*@package projet
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $
// +------------------------------------------------------------------------------------------------------+
*/
 
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
/** Inclure le fichier de langue pour utiliser cette classe de façon autonome. */
 
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/checkbox.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php' ;
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des constantes |
// +------------------------------------------------------------------------------------------------------+
 
 
/**
* class HTML_formulaireProjet
* Cette classe représente un formulaire pour saisir un projet ou le modifier.
*/
class HTML_formulaireAppl extends HTML_QuickForm
{
/**
* Constructeur
*
* @param string formName Le nom du formulaire.
* @param string method Soit get soit post, voir le protocole HTTP
* @param string action L'action du formulaire.
* @param string target La cible du formulaire.
* @param Array attributes Des attributs supplémentaires pour la balise <form>
* @param bool trackSubmit Pour repérer si la formulaire a été soumis.
* @return void
* @access public
*/
function HTML_formulaireAppl( $formName = "", $method = "post", $action = "", $target = "_self", $attributes = "", $trackSubmit = false )
{
HTML_QuickForm::HTML_QuickForm($formName, $method, $action, $target, $attributes, $trackSubmit) ;
} // end of member function HTML_formulaireProjet
 
/**
* Renvoie le code HTML du formulaire.
*
* @return string
* @access public
*/
function toHTML( )
{
$res = HTML_QuickForm::toHTML() ;
return $res ;
} // end of member function toHTML
 
/**
* Ajoute les champs nécessaire au formulaire.
*
* @return void
* @access public
*/
function construitFormulaire($url_retour)
{
$this->addElement ('text', 'nom_appl', ADAP_NOM_APPL, array ('size' => 60)) ;
$this->addRule ('nom_appl', ADAP_NOM_APPL_ALERTE, 'required', '', 'client') ;
$this->addElement ('textarea', 'description', ADAP_DESCRIPTION, array ('cols' => 50, 'rows' => 5)) ;
$this->addElement ('text', 'chemin', ADAP_CHEMIN, array('size' => 50)) ;
 
$this->setRequiredNote('<span style="color: #ff0000">*</span>'.ADAP_CHAMPS_REQUIS) ;
// on fait un groupe avec les boutons pour les mettres sur la même ligne
$buttons[] = &HTML_QuickForm::createElement('button', 'annuler', ADAP_ANNULER, array ("onclick" => "javascript:document.location.href='".str_replace ('&amp;', '&', $url_retour->getURL())."'"));
$buttons[] = &HTML_QuickForm::createElement('submit', 'valider', ADAP_VALIDER);
$this->addGroup($buttons, null, null, '&nbsp;');
} // end of member function _construitFormulaire
} // end of HTML_formulaireProjet
?>
/branches/livraison_menes/papyrus/applications/admin_application/langues/adap_langue_fr.inc.php
New file
0,0 → 1,74
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: adap_langue_fr.inc.php,v 1.4 2006-12-01 10:39:14 alexandre_tb Exp $
/**
* Gestion des langues de l'application ADME
*
* Contient les constantes pour la langue française de l'application ADAP.
*
*@package Admin_appli
*@subpackage Langues
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des CONSTANTES |
// +------------------------------------------------------------------------------------------------------+
define ('ADAP_NOM_APPL', 'Nom de l\'application') ;
define ('ADAP_MODIFIER', 'Modifier') ;
define ('ADAP_SUPPRIMER', 'Supprimer') ;
define ('ADAP_AJOUTER', 'Ajouter une application') ;
define ('ADAP_NOM_APPL_ALERTE', 'Vous devez spécifier un nom') ;
define ('ADAP_CHAMPS_REQUIS', 'Indique les champs requis') ;
define ('ADAP_DESCRIPTION', 'Description') ;
define ('ADAP_IDENTIFIEZ_VOUS','Veuillez vous identifier pour acc&egrave;der &agrave; ce menu.');
define ('ADAP_CHEMIN', 'Chemin vers l\'application') ;
define ('ADAP_CHEMIN_REQUIS', 'Le chemin vers l\'application est requis') ;
define ('ADAP_APPLETTE', 'L\'application est elle une applette') ;
define ('ADAP_ANNULER', 'Annuler') ;
define ('ADAP_VALIDER', 'Valider') ;
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2006/10/06 10:40:51 florian
* harmonisation des messages d'erreur de l'authentification
*
* Revision 1.2 2005/03/09 10:40:37 alex
* version initiale
*
* Revision 1.1 2004/12/13 18:07:38 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/admin_menu.php
New file
0,0 → 1,585
<?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.25 2006-10-06 10:40:51 florian 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.25 $ $Date: 2006-10-06 10:40:51 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php';
 
//Utilisation de la bibliothèque PEAR NET_URL
 
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php';
 
/** Inclusion de l'API de fonctions gérant les erreurs sql.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php';
 
/** Inclusion des fonctions de manipulation du sql.
* Permet la récupération d'un nouvel identifiant d'une table.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_applications..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php';
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant l'affichage commun.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_general.fonct.php';//ok
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus classiques.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_classique.fonct.php';//ok
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus communs.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_commun.fonct.php';//ok
 
/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion de la rédaction de contenu.*/
//require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_contenu.fonct.php';//ok
 
// Inclusion des fichiers de traduction de l'appli ADME dePapyrus
if (file_exists(ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
/** Inclusion du fichier de traduction suite à la transaction avec le navigateur.*/
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
} else {
/** Inclusion du fichier de traduction par défaut.*/
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.ADME_I18N_DEFAUT.'.inc.php';
}
 
// Stockage des styles de l'application
GEN_stockerStyleExterne('adme_standard', ADME_CHEMIN_STYLE.'adme_standard.css');
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
function afficherContenuCorps()
{
 
//-------------------------------------------------------------------------------------------------------------------
// Initialisation des variables
$sortie_xhtml = '';
$objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
$objet_pear_db = $GLOBALS['_GEN_commun']['pear_db'];
$objet_pear_url = $GLOBALS['_GEN_commun']['url'];
$copie_objet_pear_url = $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'])) ? 0 : $_GET['adme_site_id'];
}
$_GET['adme_menu_id'] = (!isset($_GET['adme_menu_id'])) ? 0 : $_GET['adme_menu_id'];
$_GET['adme_action'] = (!isset($_GET['adme_action'])) ? '' : $_GET['adme_action'];
//-------------------------------------------------------------------------------------------------------------------
// Authentification
if ($objet_pear_auth->getAuth()) {
//---------------------------------------------------------------------------------------------------------------
// GESTION DES MENUS CLASSIQUES
// Ajouter un menu classique
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AJOUTER) {
$message = ADME_ajouterMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']);
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
header("Location: ".str_replace('&amp;', '&', $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('&amp;', '&', $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;
}
if (isset($_POST[ADME_LG_ACTION_CLASSIQUE_VERIFIER])) {
// Nous cherchons à enregistrer une modification de menu
$message = ADME_validerFormAjouterMenuClassique($objet_pear_db, $_POST);
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
return $sortie_xhtml;
} else {
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
$message = ADME_modifierMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
}
}
// Déplacer le menu vers le haut
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MONTER) {
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
}
// Déplacer le menu vers le bas
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DESCENDRE) {
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
}
// Déplacer 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);
}
// Déplacer 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('&amp;', '&', $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[ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) {
// Nous cherchons à enregistrer une traduction de menu
$message = ADME_validerFormTraduireMenuClassique($objet_pear_db, $_POST);
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST);
return $sortie_xhtml;
} else {
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
$message = ADME_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) {
// Récupération du menu de remplacement pour éviter de fermer l'arborescence
if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
$adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
} else {
$adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
}
// Suppression du menu classique
$message = ADME_supprimerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']);
// Remplacement de l'id du menu courant par le remplaçant.
$_GET['adme_menu_id'] = $adme_menu_id_remplacement;
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
header("Location: ".str_replace('&amp;', '&', $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('&amp;', '&', $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('&amp;', '&', $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('&amp;', '&', $copie_objet_pear_url->getUrl()));
exit;
}
// Formulaire de mise à 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('&amp;', '&', $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 à enregistrer une modification de menu
$message = ADME_validerFormAjouterMenuCommun($objet_pear_db, $_POST);
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
return $sortie_xhtml;
} else {
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
$message = ADME_modifierMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
}
}
// Déplace vers le haut de la hiérarchie un menu commun
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MONTER) {
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
}
// Déplace vers le bas de la hiérarchie un menu commun
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DESCENDRE) {
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
}
 
// Déplacer 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);
}
// Déplacer 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('&amp;', '&', $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('&amp;', '&', $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('&amp;', '&', $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('&amp;', '&', $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.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 Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.26 2004/05/10 14:32:21 jpm
* Changement du titre.
*
* Revision 1.25 2004/05/10 12:13:23 jpm
* Ajout de la sélection des sites.
*
* Revision 1.24 2004/05/07 16:33:05 jpm
* Intégration de constantes.
*
* Revision 1.23 2004/05/07 07:23:53 jpm
* Amélioration du code, des commentaires et correction de bogues.
*
* Revision 1.22 2004/05/05 06:45:44 jpm
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.
*
* Revision 1.21 2004/05/04 16:27:33 jpm
* Réduction de code pour la fonction afficherContenuTete().
*
* Revision 1.20 2004/05/03 11:23:26 jpm
* Début mise en conformité des commentaires.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/configuration/adme_configuration.inc.php
New file
0,0 → 1,150
<?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_configuration.inc.php,v 1.6 2006-06-28 12:53:34 ddelon Exp $
/**
* Fichier de configuration général de l'application Administrateur de Menus.
*
* Permet de définir certains paramètres valables pour toutes l'application
* Administrateur de Menus.
*
*@package Admin_menu
*@subpackage Configuration
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.6 $ $Date: 2006-06-28 12:53:34 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Constante stockant la valeur de la langue par défaut pour l'appli ADME.*/
define('ADME_I18N_DEFAUT', GEN_I18N_ID_DEFAUT);
 
// Chemin des fichiers à inclure.
/** Chemin vers la bibliothèque PEAR.*/
define('ADME_CHEMIN_BIBLIOTHEQUE_PEAR', '');
/** Chemin vers la bibliothèque API.*/
define('ADME_CHEMIN_BIBLIOTHEQUE_API', GEN_CHEMIN_API);
/** Chemin vers la bibliothèque de Papyrus.*/
define('ADME_CHEMIN_BIBLIOTHEQUE_GEN', GEN_CHEMIN_BIBLIO);
 
// Chemin vers les dossiers de l'application
/** Chemin vers l'application Admin Menus de Papyrus.*/
define('ADME_CHEMIN_APPLICATION', GEN_CHEMIN_APPLICATION.'admin_menu/');
/** Chemin vers les images de l'application Admin Menus de Papyrus.*/
define('ADME_CHEMIN_IMAGE_INTERFACE', ADME_CHEMIN_APPLICATION.'presentations/images/interface/');
/** Chemin vers la bibliothèque de l'application Admin Menus de Papyrus.*/
define('ADME_CHEMIN_BIBLIOTHEQUE_ADME', ADME_CHEMIN_APPLICATION.'bibliotheque/');
/** Chemin vers les fichiers de traduction de l'application Admin Menus de Papyrus.*/
define('ADME_CHEMIN_LANGUE', ADME_CHEMIN_APPLICATION.'langues/');
/** Chemin vers les styles de l'application Admin Menus de Papyrus.*/
define('ADME_CHEMIN_STYLE', ADME_CHEMIN_APPLICATION.'presentations/styles/');
 
// Chemin vers le dossier contenant les images des drapeaux des pays
/** Chemin vers le dossier contenant les images i18n l'application Admin Menus de Papyrus.*/
define('ADME_CHEMIN_IMAGE_DRAPEAUX', GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.'/'.GEN_DOSSIER_IMAGE.'/drapeaux/');
 
// Chemin (intégrant le nom du fichier) vers les images de l'interface de l'application
/** Chemin vers l'image ouvrir une branche.*/
define('ADME_IMAGE_PLUS', ADME_CHEMIN_IMAGE_INTERFACE.'adme_ouvrir.png');
/** Chemin vers l'image fermer une branche.*/
define('ADME_IMAGE_MOINS', ADME_CHEMIN_IMAGE_INTERFACE.'adme_fermer.png');
/** Chemin vers l'image voir la définition d'un menu.*/
define('ADME_IMAGE_VOIR', ADME_CHEMIN_IMAGE_INTERFACE.'adme_modifier.png');
/** Chemin vers l'image monter un menu.*/
define('ADME_IMAGE_FLECHE_HAUT', ADME_CHEMIN_IMAGE_INTERFACE.'adme_monter.png');
/** Chemin vers l'image descendre un menu.*/
define('ADME_IMAGE_FLECHE_BAS', ADME_CHEMIN_IMAGE_INTERFACE.'adme_descendre.png');
/** Chemin vers l'image diminuer un menu.*/
define('ADME_IMAGE_FLECHE_GAUCHE', ADME_CHEMIN_IMAGE_INTERFACE.'adme_diminuer.png');
/** Chemin vers l'image augmenter un menu.*/
define('ADME_IMAGE_FLECHE_DROITE', ADME_CHEMIN_IMAGE_INTERFACE.'adme_augmenter.png');
/** Chemin vers l'image supprimer un menu.*/
define('ADME_IMAGE_SUPPRIMER', ADME_CHEMIN_IMAGE_INTERFACE.'adme_supprimer.png');
/** Chemin vers l'image ajouter un menu.*/
define('ADME_IMAGE_NOUVEAU', ADME_CHEMIN_IMAGE_INTERFACE.'adme_ajouter.png');
/** Chemin vers l'image accéder à l'interface d'administration de l'application du menu courant.*/
define('ADME_IMAGE_TEXTE', ADME_CHEMIN_IMAGE_INTERFACE.'adme_administrer.png');
/** Chemin vers l'image choix d'une traduction par défaut */
define('ADME_IMAGE_TRADUCTION_DEFAUT',ADME_CHEMIN_IMAGE_INTERFACE.'adme_radio_off.png');
 
/** Chemin vers l'image traduction par défaut */
define('ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE',ADME_CHEMIN_IMAGE_INTERFACE.'adme_radio_on.png');
 
 
// Nom des classes des images
/** Constante stockant le nom de la classe des fichiers icônes de 16x16px de ADME.*/
define('ADME_CLASS_IMG_ICONE', 'adme_img_icone');
/** Constante stockant le nom de la classe des fichiers plier-déplier de 9x9px de ADME.*/
define('ADME_CLASS_IMG_PD', 'adme_img_plier_deplier');
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.5 2005/07/08 21:13:15 ddelon
* Gestion indentation menu
*
* Revision 1.4 2004/11/09 13:00:06 jpm
* Changement de noms des images.
*
* Revision 1.3 2004/11/09 12:51:16 jpm
* Ajout de commentaires.
*
* Revision 1.2 2004/07/06 17:07:42 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.1 2004/06/16 14:39:44 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.7 2004/05/07 16:32:46 jpm
* Correction erreur de chemin.
*
* Revision 1.6 2004/05/07 09:53:58 jpm
* Ajout de commentaires et de nouvelles constantes.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/bibliotheque/adme_general.fonct.php
New file
0,0 → 1,381
<?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.18 2006-10-16 15:49:07 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.18 $ $Date: 2006-10-16 15:49:07 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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 &amp; à nouveau par des &amp; solution utiliser str_replace()...
$form =& new HTML_QuickForm('adme_form_sites', 'post', str_replace('&amp;', '&', $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();
foreach ($liste_site as $ligne ) {
if (!isset($adme_site_id) || $adme_site_id == 0) {
$adme_site_id = $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)) {
$adme_site_id=$id_site_par_defaut;
}
$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.'&nbsp;'.
'<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.'&nbsp;'.
'<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.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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/bibliotheque/adme_menu_classique.fonct.php
New file
0,0 → 1,1849
<?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.37 2006-10-16 15:49:07 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.37 $ $Date: 2006-10-16 15:49:07 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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>'.'&nbsp;'."\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 .= '&nbsp;';
if (!isset($ligne_app->gap_nom)) {
$gap_nom='';
}
else {
$gap_nom=$ligne_app->gap_nom;
}
$xhtml_info .= ADME_LG_PARENTHESE_OUVRANTE.$gap_nom.'&nbsp;'.ADME_LG_SLASH.'&nbsp;'.$ligne->ga_prenom.ADME_LG_PARENTHESE_FERMANTE;
$xhtml_info .= '&nbsp;'."\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>&nbsp;'."\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>&nbsp;'."\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>&nbsp;'."\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>&nbsp;'."\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>&nbsp;'."\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>&nbsp;'."\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>&nbsp;'."\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>'.'&nbsp;'."\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>'.'&nbsp;'."\n";
}
if (!$est_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>&nbsp;'."\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.'" />'.
'&nbsp;'."\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>'.'&nbsp;'."\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.'" />'.
'&nbsp;'."\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>'.'&nbsp;'."\n";
}
else {
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT.'" />'.
'&nbsp;'."\n";
}
}
while ($ligne_resultat = $resultat_traduction->fetchRow(DB_FETCHMODE_OBJECT)) {
$xhtml_traduction.="<br><em>".$ligne_resultat->gm_ce_i18n.":&nbsp;".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);
// 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 &amp; à nouveau par des &amp; solution utiliser str_replace()...
$form =& new HTML_QuickForm('form_menu_classique', 'post', str_replace('&amp;', '&', $url->getUrl()));
$tab_index = 1000;
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li>'."\n".
'{label}'."\n".
'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">'.ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE.'</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">'.ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE.'</span> {requiredNote}</p>'."\n");
$partie_menu_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG.'</legend>'."\n".'<ul>'."\n";
$form->addElement('html', $partie_menu_debut);
$id = 'gm_code_num';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 5, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.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_code_alpha';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 50, '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' => 50, '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_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' => 50, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_FICHIER_SQUELETTE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_description_resume';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 50);
$label = '<label for="'.$id.'">'.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_application_arguments';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_APPLI_ARGUMENT.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$partie_menu_fin = '</ul>'."\n".'</fieldset>'."\n";
$form->addElement('html', $partie_menu_fin);
$partie_entete_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_ENTETE.'</legend>'."\n".'<ul>'."\n";
$form->addElement('html', $partie_entete_debut);
$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';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_titre_alternatif';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE_ALTERNATIF.'</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);
$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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_VALEUR.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
$form->addElement('html', $partie_entete_fin);
// 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);
}
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$form->addElement('html', $liste_bouton_debut);
if ($traduction) {
$form->addElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION, ADME_LG_FORM_MENU_VALIDER);
$form->addElement('hidden', 'adme_site_id', $adme_site_id);
}
else {
$form->addElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER, ADME_LG_FORM_MENU_VALIDER);
}
$bouton_annuler = '<li><a class="bouton" href="'.$url->getURL().'" title="'.ADME_LG_FORM_MENU_ANNULER.'" >'.ADME_LG_FORM_MENU_ANNULER.'</a>'.'</li>'."\n";
$form->addElement('html', $bouton_annuler);
$liste_bouton_fin = '</ul>'."\n";
$form->addElement('html', $liste_bouton_fin);
$form->addElement('hidden', 'gm_id_menu', $aso_valeurs['gm_id_menu']);
// Instanciation avec les valeur par défaut
$form->setDefaults($aso_valeurs);
// Note de fin de formulaire
$form->setRequiredNote(ADME_LG_FORM_TXT_CHP_OBLIGATOIRE);
$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)) : '';
 
 
/* $requete = 'UPDATE gen_menu_relation SET gmr_id_menu_02 = '. $g
'WHERE gmr_id_menu_01 = ' . $id_menu .
'AND gmr_id_menu_02 =42 AND `gmr_id_valeur` =105 LIMIT 1 ;
*/
}
 
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/bibliotheque/adme_menu_commun.fonct.php
New file
0,0 → 1,1645
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: adme_menu_commun.fonct.php,v 1.27 2006-10-16 15:49:07 ddelon Exp $
/**
* Application de gestion des menus communs
*
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus communs.
* Par menus communs, nous entendons tous les menus devant paraitre sur l'ensemble des pages de plusieurs site,
* comme le lien vers le plan du site, le lien vers la charte d'accessibilité, le flux rss...
*
*@package Admin_menu
*@subpackage Fonctions
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@author David Delon <david.delon@clapas.net>
*@author Laurent COUDOUNEAU <lc@gsite.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.27 $ $Date: 2006-10-16 15:49:07 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
/** Fonction ADME_afficherListeMenuCommun () - Affiche un arbre de menu en xhtml
*
* Elle forme l'arbre des menus communs à 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_afficherListeMenuCommun($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 = 102 '.// 102 = type "menu commun"
'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_COMMUN_AJOUTER) && $id_menu_a_deployer != 0) {
$_SESSION['adme_menus_communs_ouverts'][$adme_menu_id] = $adme_menu_id;
}
if ($adme_action == ADME_LG_ACTION_PLIER && $id_menu_a_deployer != 0) {
unset($_SESSION['adme_menus_communs_ouverts'][$adme_menu_id]);
foreach ($_SESSION['adme_menus_communs_ouverts'] as $val) {
if (GEN_etreAncetre($adme_menu_id, $val)) {
unset($_SESSION['adme_menus_communs_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_communs_ouverts'][$id_menu_a_deployer])
){
// Affiche un -
$retour .= ADME_retournerXhtmlMenuCommun($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_communs_ouverts'][$id_menu_a_deployer])
){
// Affiche un +
$retour .= ADME_retournerXhtmlMenuCommun($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_communs_ouverts'][$id_menu_a_deployer])
){
$retour .= '<ul class="menu_commun">'."\n";
while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
$retour .= ADME_afficherListeMenuCommun($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_retournerXhtmlMenuCommun($db, $url, $adme_site_id, $id_menu_a_deployer, 0);
$retour .= '</li>'."\n";
}
return $retour;
}
 
/** Fonction ADME_retournerXhtmlMenuCommun() - Effectue une sortie d'un menu en XHTML
*
* Retourne le XHTML d'une ligne de l'arbre des menus communs 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_retournerXhtmlMenuCommun($db, $url, $adme_site_id, $adme_menu_id, $int_deplier,$est_traduction=false,$menu_traduction_defaut=0)
{
//-------------------------------------------------------------------------------------------------------------------
// 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>'.'&nbsp;'."\n";
}
$xhtml_info='';
//-------------------------------------------------------------------------------------------------------------------
// 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 .= '&nbsp;';
$xhtml_info .= ADME_LG_PARENTHESE_OUVRANTE.$ligne_app->gap_nom.'&nbsp;'.ADME_LG_SLASH.'&nbsp;'.$ligne->ga_prenom.ADME_LG_PARENTHESE_FERMANTE;
$xhtml_info .= '&nbsp;'."\n";
//-------------------------------------------------------------------------------------------------------------------
// XHTML actions
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_MODIFIER);
$xhtml_action = '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_MODIFIER_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_VOIR.'" alt="'.ADME_LG_ACTION_COMMUN_MODIFIER_ALT.'" />'.
'</a>&nbsp;'."\n";
$url->removeQueryString('adme_action');
if (!$est_traduction) {
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_MONTER);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_MONTER_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.ADME_LG_ACTION_COMMUN_MONTER_ALT.'" />'.
'</a>&nbsp;'."\n";
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_DESCENDRE);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.ADME_LG_ACTION_COMMUN_DESCENDRE_ALT.'" />'.
'</a>&nbsp;'."\n";
$url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_DIMINUER);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_DIMINUER_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_GAUCHE.'" alt="'.ADME_LG_ACTION_COMMUN_DIMINUER_ALT.'" />'.
'</a>&nbsp;'."\n";
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_AUGMENTER);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_DROITE.'" alt="'.ADME_LG_ACTION_COMMUN_AUGMENTER_ALT.'" />'.
'</a>&nbsp;'."\n";
}
$url->removeQueryString('adme_action');
if (!$est_traduction) {
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_SUPPRIMER);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_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_COMMUN_SUPPRIMER_ALT.'" />'.
'</a>&nbsp;'."\n";
}
else {
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_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_COMMUN_SUPPRIMER_TRADUCTION_ALT.'" />'.
'</a>&nbsp;'."\n";
}
$url->removeQueryString('adme_action');
 
if (!$est_traduction) {
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_AJOUTER);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_AJOUTER_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="'.ADME_LG_ACTION_COMMUN_AJOUTER_ALT.'" />'.
'</a>'.'&nbsp;'."\n";
}
$url->removeQueryString('adme_action');
// Si l'application liée est "texte simple", on ajoute un icone avec un lien vers
// l'administration de cette application.
if ($ligne_app->gap_id_application != 0 && GEN_verifierPresenceInterfaceAdmin($db, $ligne_app->gap_id_application)) { // l'appli afficheur a pour id 3
$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>'.'&nbsp;'."\n";
}
if (!$est_traduction) {
$url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_TRADUIRE);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_TRADUIRE_TITLE.'">'.
ADME_LG_ACTION_COMMUN_TRADUIRE_ALT.
'</a>&nbsp;'."\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_COMMUN_TRADUCTION_DEFAUT_ALT.'" />'.
'&nbsp;'."\n";
}
else {
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT.'" alt="'.ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_ALT.'" />'.
'</a>'.'&nbsp;'."\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_COMMUN_TRADUCTION_DEFAUT_ALT.'" />'.
'&nbsp;'."\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_COMMUN_TRADUCTION_DEFAUT);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_TITLE.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT.'" alt="'.ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_ALT.'" />'.
'</a>'.'&nbsp;'."\n";
}
else {
$xhtml_action .= '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TRADUCTION_DEFAUT_AFFICHAGE.'" alt="'.ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_ALT.'" />'.
'&nbsp;'."\n";
}
}
while ($ligne_resultat = $resultat_traduction->fetchRow(DB_FETCHMODE_OBJECT)) {
$xhtml_traduction.="<br><em>".$ligne_resultat->gm_ce_i18n.":&nbsp;".ADME_retournerXhtmlMenuCommun($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_ajouterMenuCommun() - Ajoute un sous menu commun au menu commun courant
*
* Fonction ajoutant un menu commun à Papyrus.
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'authentification.
* @param integer l'identifiant du site à administrer.
* @param integer l'identifiant du menu à administrer.
* @return void les changement sont fait dans la base de données.
*/
function ADME_ajouterMenuCommun($db, $auth, $adme_site_id, $adme_menu_id)
{
//----------------------------------------------------------------------------
// Récupération d'infos sur le nouveau menu
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id);
if ($objet_site == false) {
die('ERREUR Génésia Administrateur de Menus : '.ADME_LG_ERREUR_INFO_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 = 0, '.
'gm_ce_i18n = "'.$objet_site->gs_ce_i18n.'", '.
'gm_ce_application = 0, '.
'gm_code_num = '.$nouveau_id_menu.', '.
'gm_code_alpha = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_nom = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_titre = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_description_resume = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_auteur = "'.$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 = 102 '.// 102 = menu type "commun"
'ORDER BY GMR01.gmr_ordre DESC';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ($resultat->numRows()>0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_menu = $ligne->gmr_ordre + 1;
}
else {
$nouveau_ordre_menu=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 "commun"
// 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 = 102 '.// 102 = type "commun"
'AND gmr_id_menu_01 = gm_id_menu '.
'AND gm_ce_site = 0 '.// un menu commun n'a pas de site lié!
'ORDER BY gmr_ordre DESC';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ($resultat->numRows()>0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_commun = $ligne->gmr_ordre + 1;
}
else {
$nouveau_ordre_commun = 0;
}
$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 = 102, '.
'gmr_ordre = '.$nouveau_ordre_commun;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
/** Fonction ADME_afficherFormMenuCommun() - Affiche le formulaire pour un menu commun.
*
* Utilise HTML_QuickForm pour générer le formulaire.
* Ancien nom : showUpper().
*
* @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_afficherFormMenuCommun($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);
// Récupération des informations du menu concerné.
if (!isset($aso_valeurs[ADME_LG_ACTION_COMMUN_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_COMMUN_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 />');
}
}
 
// Titre de la page
if ($traduction) {
$retour = '<h1>'.ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL_TRADUCTION.'</h1>'."\n";
}
else {
$retour = '<h1>'.ADME_LG_FORM_MENU_COMMUN_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 &amp; à nouveau par des &amp; solution utiliser str_replace()...
$form =& new HTML_QuickForm('form_menu_commun', 'post', str_replace('&amp;', '&', $url->getUrl()));
$tab_index = 1000;
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n"."\n".'{content}'."\n"."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li>'."\n".
'{label}'."\n".
'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">'.ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE.'</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">'.ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE.'</span> {requiredNote}</p>'."\n");
$partie_menu_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_MENU_COMMUN_TITRE_CONFIG.'</legend>'."\n".'<ul>'."\n";
$form->addElement('html', $partie_menu_debut);
$id = 'gm_code_num';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 5, 'maxlength' => 5);
$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_code_alpha';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 50, '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' => 50, '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_raccourci_clavier';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1);
$label = '<label for="'.$id.'">'.'Raccourci clavier'.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_fichier_squelette';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 50, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_FICHIER_SQUELETTE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_description_resume';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 50);
$label = '<label for="'.$id.'">'.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_application_arguments';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_APPLI_ARGUMENT.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$partie_menu_fin = '</ul>'."\n".'</fieldset>'."\n";
$form->addElement('html', $partie_menu_fin);
$partie_entete_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_MENU_COMMUN_TITRE_ENTETE.'</legend>'."\n".'<ul>'."\n";
$form->addElement('html', $partie_entete_debut);
$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';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_titre_alternatif';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE_ALTERNATIF.'</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);
$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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, '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' => 45, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_VALEUR.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
$form->addElement('html', $partie_entete_fin);
 
if (!isset($aso_valeurs[ADME_LG_ACTION_COMMUN_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION])) {
// Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
$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);
}
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$form->addElement('html', $liste_bouton_debut);
if ($traduction) {
$form->addElement('submit', ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION, ADME_LG_FORM_MENU_VALIDER);
$form->addElement('hidden', 'adme_site_id', $adme_site_id);
}
else {
$form->addElement('submit', ADME_LG_ACTION_COMMUN_VERIFIER, ADME_LG_FORM_MENU_VALIDER);
}
$bouton_annuler = '<li><a class="bouton" href="'.$url->getURL().'" title="'.ADME_LG_FORM_MENU_ANNULER.'" >'.ADME_LG_FORM_MENU_ANNULER.'</a>'.'</li>'."\n";
$form->addElement('html', $bouton_annuler);
$liste_bouton_fin = '</ul>'."\n";
$form->addElement('html', $liste_bouton_fin);
$form->addElement('hidden', 'gm_id_menu', $aso_valeurs['gm_id_menu']);
$form->setDefaults($aso_valeurs);
// Note de fin de formulaire
$form->setRequiredNote(ADME_LG_FORM_TXT_CHP_OBLIGATOIRE);
$retour .= $form->toHTML()."\n";
return $retour;
}
 
/** Fonction ADME_validerFormAjouterMenuCommun() - 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_validerFormAjouterMenuCommun($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_validerFormTraduireMenuCommun() - 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_validerFormTraduireMenuCommun($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_modifierMenuCommun() - Met à jour les infos d'un menu commun
*
* Fonction modifiant un menu commun à Papyrus.
*
* @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_modifierMenuCommun($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_portee_spatiale = "'.$aso_valeurs['gm_portee_spatiale'].'", '.
'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)) : '';
}
 
/** Fonction ADME_deplacerMenuCommun() - Permet de déplacer un menu dans la hiérarchie.
*
* Permet de déplacer un menu dans la hiérarchie des menus communs.
* Ancien nom : moveUpper()
*
* @param PEAR::DB 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_deplacerMenuCommun($db, $adme_site_id, $adme_menu_id, $bln_monter)
{
//-------------------------------------------------------------------------------------------------------------------
// Récupération d'informations sur les relations du menu courant.
$ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $adme_menu_id, '1'); // 1 = relation "avoir père"
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 />');
}
$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 hiérarchiques sur le menu précédent ou suivant le menu courant
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
'FROM gen_menu, 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 = 0 '.// les menus communs ne sont pas liés à un site!
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun"
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '.
'AND GMR01.gmr_id_valeur = 1 ';// 1 = relation menu "père"
if ($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 hiérarchiques 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 = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//-------------------------------------------------------------------------------------------------------------------
// Mise à jour des relations hiérarchiques du menu précédent ou suivant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu->id_menu_remplace.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
/** Fonction ADME_traduireMenuCommun() - Permet de traduire un menu commin
*
* Permet de traduire un menu commun
*
* @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_traduireMenuCommun($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 = 102 '.// 102 = menu type "commun"
'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 commun"
// 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 = 102 '.// 102 = type menu "commun"
'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_commun = $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 = 102, '.
'gmr_ordre = '.$nouveau_ordre_menu_commun;
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
}
 
 
function ADME_indenterMenuCommun($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 = 0 '.// les menus communs ne sont pas liés à un site!
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun""
'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 = 0 '.// les menus communs ne sont pas liés à un site!
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun"
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père"
'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 = 102 '.// 102 = menu type "commun"
'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);
$no = $ligne->gmr_ordre + 1;
$resultat->free();
 
// 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_supprimerMenuCommun() - Supprime un menu commun.
*
* Supprime de la base de données de Génésia toutes les traces du menu commun
* passé en paramètre.
* Ancien nom : deleteUpper()
*
* @param PEAR::DB l'objet Pear DB de connexion à la base de données.
* @param integer l'identifiant du menu à supprimer
* @return void le menu commun est supprimé de la base de données.
*/
function ADME_supprimerMenuCommun($db, $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 = 0 '.// les menus communs ne sont pas liés à un site!
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun"
'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_supprimerMenuCommunTraduction() - Supprime une traduction de menu commun.
*
* Supprime de la base de données de Papyrus toutes les traces du menu commun
* 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 commun est supprimé de la base de données.
*/
function ADME_supprimerMenuCommunTraduction($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)) : '';
}
 
 
/** Fonction ADME_selectionnerMenuCommunTraduction()() 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_selectionnerMenuCommunTraduction($db, $adme_id_site, $id_menu)
{
// 1 : Rechercher traduction parente : si presente on est dans une traduc. si absente on
// est dans un menu traduit.
$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_origine_traduction->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)) : '';
 
}
 
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.26 2006/10/06 13:38:45 florian
* ergonomie amélioree
*
* Revision 1.25 2006/09/20 12:09:16 ddelon
* bug suppression contenu du menu commun
*
* Revision 1.24 2006/09/07 13:45:56 jp_milcent
* Trie par ordre alphabétique des appli.
*
* Revision 1.23 2006/06/29 23:04:01 ddelon
* Bug defaut traduction sur menu commun
*
* Revision 1.22 2006/06/29 19:13:26 ddelon
* Bug defaut traduction sur menu commun
*
* Revision 1.21 2006/06/29 18:58:57 ddelon
* Multilinguisme : menu par defaut pour les menu commun
*
* Revision 1.20 2006/04/12 21:11:54 ddelon
* Multilinguisme menus communs
*
* Revision 1.19 2005/09/27 08:42:49 ddelon
* Menu et Squelette
*
* Revision 1.18 2005/07/18 16:14:32 ddelon
* css admin + menu communs
*
* Revision 1.17 2005/07/08 22:01:25 ddelon
* Copyright
*
* Revision 1.16 2005/05/26 16:13:08 jpm
* Correction taille éditeur: passage en text
*
* Revision 1.14 2005/05/26 15:34:46 jpm
* Ajout d'un espace.
*
* Revision 1.13 2005/05/26 08:54:20 jpm
* Ajout info admin ayant fait la dernière modif.
*
* Revision 1.12 2005/04/19 16:47:16 jpm
* Gestion des dates de fin de validité des menus.
*
* Revision 1.11 2005/03/29 15:49:12 jpm
* Ajout de la date de création dans le formulaire des menus.
*
* Revision 1.10 2005/02/28 11:05:06 jpm
* Modification des auteurs.
*
* Revision 1.9 2005/01/24 11:28:09 jpm
* Correction bogue.
* Ajout d'un troisième = pour comparer le type.
*
* Revision 1.8 2004/12/01 16:47:28 jpm
* Ajout d'une boite javascript de confirmation de suppression d'un menu.
*
* Revision 1.7 2004/11/15 16:51:12 jpm
* Correction bogue de mise à jour de l'ordre des menus.
*
* Revision 1.6 2004/11/10 17:26:07 jpm
* Fin gestion de la traduction.
*
* Revision 1.5 2004/11/09 17:48:35 jpm
* Gestion de différentes interfaces d'administration.
*
* 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.10 2004/05/10 12:13:03 jpm
* Modification des formulaires.
*
* Revision 1.9 2004/05/07 16:31:40 jpm
* Amélioration du formulaire d'un menu commun.
*
* Revision 1.8 2004/05/07 09:56:52 jpm
* Correction des noms de constantes d'images.
*
* Revision 1.7 2004/05/07 07:23:54 jpm
* Amélioration du code, des commentaires et correction de bogues.
*
* Revision 1.6 2004/05/04 16:27:55 jpm
* Amélioration gestion du déplacement des menus.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/langues/adme_langue_en.inc.php
New file
0,0 → 1,265
<?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_en.inc.php,v 1.1 2006-04-12 21:11:54 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.1 $ $Date: 2006-04-12 21:11:54 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Le formulaire de sélection du site dont les menus doivent être administrer :
define('ADME_LG_FORM_SITE_TITRE', 'List of the websites');
define('ADME_LG_FORM_SITE_CHOIX', 'Choice the site to administrate : ');
define('ADME_LG_FORM_SITE_VALIDER', 'OK');
 
// Les titres de l'arborescence des menus à administrer:
define('ADME_LG_MENU_TITRE', 'Configuration of the menus of the website:');
define('ADME_LG_MENU_CLASSIQUE_RACINE', 'Add a classical menu');
define('ADME_LG_MENU_COMMUN_RACINE', 'Add a common menu');
 
// Les actions des menus classiques:
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER', 'classical_menu_modify');
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_ALT', 'Modify');
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_TITLE', 'Modify this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_MONTER', 'menu_classique_go_up');
define('ADME_LG_ACTION_CLASSIQUE_MONTER_ALT', 'UP');
define('ADME_LG_ACTION_CLASSIQUE_MONTER_TITLE', 'Go up this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE', 'classical_menu_down');
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_ALT', 'Down');
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_TITLE', 'Down this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER', 'menu_classical_decrease');
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_ALT', 'Decrease');
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_TITLE', 'Decrease of one level this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER', 'menu_classical_increase');
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_ALT', 'Increase');
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_TITLE', 'Increase of one level this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE', 'menu_classical_translate');
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION', 'menu_classical_translate_action');
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ALT', 'Translate');
define('ADME_LG_ACTION_CLASSIQUE_TRADUIRE_TITLE', 'Translate this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER', 'classical_menu_remove');
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_ALT', 'Remove');
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TITLE', 'Remove this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER', 'classical_menu_add');
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_ALT', 'Add');
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_TITLE', 'Add this menu');
 
define('ADME_LG_ACTION_CLASSIQUE_VERIFIER', 'classical_menu_check');
 
// Les actions des menus communs:
define('ADME_LG_ACTION_COMMUN_MODIFIER', 'common_menu_modify');
define('ADME_LG_ACTION_COMMUN_MODIFIER_ALT', 'Modify');
define('ADME_LG_ACTION_COMMUN_MODIFIER_TITLE', 'Modify this menu');
 
define('ADME_LG_ACTION_COMMUN_MONTER', 'common_menu_up');
define('ADME_LG_ACTION_COMMUN_MONTER_ALT', 'UP');
define('ADME_LG_ACTION_COMMUN_MONTER_TITLE', 'Up this menu');
 
define('ADME_LG_ACTION_COMMUN_DESCENDRE', 'common_menu_down');
define('ADME_LG_ACTION_COMMUN_DESCENDRE_ALT', 'Down');
define('ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE', 'Down this menu');
 
define('ADME_LG_ACTION_COMMUN_DIMINUER', 'common_menu_decrease');
define('ADME_LG_ACTION_COMMUN_DIMINUER_ALT', 'Decrease');
define('ADME_LG_ACTION_COMMUN_DIMINUER_TITLE', 'Decrease of one level this menu');
 
define('ADME_LG_ACTION_COMMUN_AUGMENTER', 'common_menu_increase');
define('ADME_LG_ACTION_COMMUN_AUGMENTER_ALT', 'Increase');
define('ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE', 'Increase of one level this');
 
define('ADME_LG_ACTION_COMMUN_TRADUIRE', 'commun_menu_translate');
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION', 'commun_menu_translate_action');
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ALT', 'Translate');
define('ADME_LG_ACTION_COMMUN_TRADUIRE_TITLE', 'Translate thid menu');
 
define('ADME_LG_ACTION_COMMUN_SUPPRIMER', 'common_menu_remove');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_ALT', 'Remove');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TITLE', 'Remove this menu');
 
define('ADME_LG_ACTION_COMMUN_AJOUTER', 'common_menu_add');
define('ADME_LG_ACTION_COMMUN_AJOUTER_ALT', 'Add');
define('ADME_LG_ACTION_COMMUN_AJOUTER_TITLE', 'Add this menu');
 
define('ADME_LG_ACTION_COMMUN_VERIFIER', 'common_menu_check');
 
// Les actions générales:
define('ADME_LG_ACTION_ADMINISTRER', 'Manage');
define('ADME_LG_ACTION_ADMINISTRER_ALT', 'Manage');
define('ADME_LG_ACTION_ADMINISTRER_TITLE', 'Manage the application of this menu');
 
define('ADME_LG_ACTION_PLIER', 'adme_menu_close');
define('ADME_LG_ACTION_PLIER_ALT', 'Fold');
 
define('ADME_LG_ACTION_DEPLIER', 'adme_menu_open');
define('ADME_LG_ACTION_DEPLIER_ALT', 'Unfold');
 
define('ADME_LG_ACTION_SUPPRIMER_CONFIRMATION', 'Are you sure to want to remove this menu?');
 
// Les erreurs:
define('ADME_LG_ERREUR_INFO_MENU', 'impossible to read the informations of the menu.');
define('ADME_LG_ERREUR_INFO_SITE', 'impossible to read the informations of the website.');
define('ADME_LG_ERREUR_INFO_MENU_RELATION', 'impossible to read the informations about the relations of the menu.');
define('ADME_LG_ERREUR_ID_MENU_PERE', 'impossible to read identifying of the menu father.');
define('ADME_LG_ERREUR_CODE_NUM', "The value %s for the \"code nuérique\" yet exists");
define('ADME_LG_ERREUR_CODE_ALPHA', "The value %s for the \"Code alphanumérique\" yet exist");
define('ADME_LG_ERREUR_EXISTE_SOUS_MENU', 'This menu includes under-menues. Please, begin to remove them.');
 
// Le formulaire de modification d'un menu :
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL', 'Mofify menu');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL', 'Modify common menu');
 
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG', 'Menu config');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_CONFIG', 'Common menu confgig');
define('ADME_LG_FORM_MENU_ID', 'Identifier of this menu : ');
define('ADME_LG_FORM_MENU_CODE_NUM', 'Numeric code of this menu');
define('ADME_LG_FORM_MENU_REGLE_CODE_NUM', ' a numeric digital code is necessary for the menu !');
define('ADME_LG_FORM_MENU_CODE_ALPHA', 'Code alphanumérique of the menu');
define('ADME_LG_FORM_MENU_REGLE_CODE_ALPHA', 'An alphanumeric code is necessary for the menu!');
define('ADME_LG_FORM_MENU_NOM', 'Name of the menu');
define('ADME_LG_FORM_MENU_REGLE_NOM', 'a name is necessary for the menu !');
define('ADME_LG_FORM_MENU_RACCOURCI', ' Shortened clavier');
define('ADME_LG_FORM_MENU_DEFAUT', 'Making the menu by défaut');
define('ADME_LG_FORM_MENU_FICHIER_SQUELETTE', ' File squelette');
define('ADME_LG_FORM_MENU_INFO_BULLE', ' Contained information-bulle');
define('ADME_LG_FORM_MENU_REGLE_INFO_BULLE', ' a short description for the information-bubble is necessary for this menu!');
define('ADME_LG_FORM_MENU_APPLI', 'Application');
define('ADME_LG_FORM_MENU_APPLI_ARGUMENT', 'Application arguments');
 
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_ENTETE', ' Heading of the pages of the menu');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_ENTETE', ' Heading of the pages of the common menu');
define('ADME_LG_FORM_MENU_ROBOT', ' Indexing by robots');
define('ADME_LG_FORM_MENU_INDEX_FOLLOW', 'Indexeing this page and next');
define('ADME_LG_FORM_MENU_INDEX', 'Indexing only this page');
define('ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW', 'Do notindexing this page and next pages');
define('ADME_LG_FORM_MENU_NOINDEX', 'Do not indexing this page');
define('ADME_LG_FORM_MENU_INDEX_VIDE', 'None');
define('ADME_LG_FORM_MENU_TITRE', 'Title of the page');
define('ADME_LG_FORM_MENU_TITRE_ALTERNATIF', 'Alternative tittle for the page');
define('ADME_LG_FORM_MENU_MOT_CLE', 'key-words');
define('ADME_LG_FORM_MENU_DESCRIPTION', ' Description of the content');
define('ADME_LG_FORM_MENU_TABLE_MATIERE', 'Contents');
define('ADME_LG_FORM_MENU_SOURCE', 'Source');
define('ADME_LG_FORM_MENU_AUTEUR', 'Author');
define('ADME_LG_FORM_MENU_CONTRIBUTEUR', 'Contributor');
define('ADME_LG_FORM_MENU_EDITEUR', 'Éditor');
define('ADME_LG_FORM_MENU_DATE_CREATION', 'Creation date');
define('ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT', 'Go back to beginning of validity');
define('ADME_LG_FORM_MENU_DATE_VALIDITE_FIN', 'Completion date of validity');
define('ADME_LG_FORM_MENU_DATE_COPYRIGHT', 'Year for the copyright');
define('ADME_LG_FORM_MENU_URL_LICENCE', 'URL of the licence');
define('ADME_LG_FORM_MENU_CATEGORIE', 'Catégory');
define('ADME_LG_FORM_MENU_PUBLIC', 'Public for the page');
define('ADME_LG_FORM_MENU_PUBLIC_NIVEAU', 'level of public for this page');
define('ADME_LG_FORM_MENU_ZG_TYPE', 'Type of space range');
define('ADME_LG_FORM_MENU_ZG_VALEUR', 'Space range of the page');
define('ADME_LG_FORM_MENU_ZG_VIDE', 'None');
define('ADME_LG_FORM_MENU_ZG_ISO', 'Code of the country on two letters(iso3166)');
define('ADME_LG_FORM_MENU_ZG_DC', ' Representation of the geographical areas of Dublin Core');
define('ADME_LG_FORM_MENU_ZG_POINT', 'Géographique point');
define('ADME_LG_FORM_MENU_ZG_GTGN', 'Noms issus du Getty Thesaurus of Geographic Names');
define('ADME_LG_FORM_MENU_TMP_TYPE', ' Standard of range temporal');
define('ADME_LG_FORM_MENU_TMP_VALEUR', ' Temporal dimension of the page');
define('ADME_LG_FORM_MENU_TMP_VIDE', 'None');
define('ADME_LG_FORM_MENU_TMP_W3C', ' Coding of the dates and hours of the W3C');
define('ADME_LG_FORM_MENU_TMP_DC', ' Representation of the intervals of time of Dublin Core');
 
define('ADME_LG_FORM_MENU_VALIDER', 'Record');
define('ADME_LG_FORM_MENU_ANNULER', 'Cancel');
define('ADME_LG_FORM_TXT_CHP_OBLIGATOIRE', ' Indicates the fields obligatoires');
define('ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE', '*');
 
// 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.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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/langues/adme_langue_es.inc.php
New file
0,0 → 1,291
<?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_es.inc.php,v 1.3 2006-09-27 10:02:08 alexandre_tb Exp $
/**
* Gestion des langues de l'application ADME
*
* Contient les constantes pour la langue française de l'application ADME.
*
*@package Admin_menú
*@subpackage Langues
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2006-09-27 10:02:08 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Le formulaire de sélection du site dont les menús doivent être administrer :
define('ADME_LG_FORM_SITE_TITRE', 'Lista de los Web site');
define('ADME_LG_FORM_SITE_CHOIX', 'Opcióna el sitio a administrar: ');
define('ADME_LG_FORM_SITE_VALIDER', 'OK');
 
// Les titres de l'arborescence des menús à administrer:
define('ADME_LG_MENU_TITRE', 'Configuración de los menús del Web site:');
define('ADME_LG_MENU_CLASSIQUE_RACINE', 'agregue un menú clásico ');
define('ADME_LG_MENU_COMMUN_RACINE', 'agregue un menú comuno');
 
// Les actions des menús classiques:
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER', 'classico_menú_modicar');
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_ALT', 'Modificar');
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_TITLE', 'Modificar estemenú');
define('ADME_LG_ACTION_CLASSIQUE_MODIFIER_ACTION', 'menu_classique_modifier_action');
 
 
define('ADME_LG_ACTION_CLASSIQUE_MONTER', 'menú_classico_subir');
define('ADME_LG_ACTION_CLASSIQUE_MONTER_ALT', 'Subir');
define('ADME_LG_ACTION_CLASSIQUE_MONTER_TITLE', 'Subir este menú');
 
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE', 'classico_menú_bajar');
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_ALT', 'Bajar');
define('ADME_LG_ACTION_CLASSIQUE_DESCENDRE_TITLE', 'Najar este menú');
 
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER', 'menú_classico_disminuir');
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_ALT', 'Disminuir');
define('ADME_LG_ACTION_CLASSIQUE_DIMINUER_TITLE', 'Disminuir de un nivel este menú');
 
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER', 'menú_classico_aumentar');
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_ALT', 'Aumentar');
define('ADME_LG_ACTION_CLASSIQUE_AUGMENTER_TITLE', 'Aumentar de un nivel este menú');
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', 'classico_menú_quite');
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_ALT', 'Quite');
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TITLE', 'Quite este menú');
 
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', 'classico_menú_agrege');
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_ALT', 'Agrege');
define('ADME_LG_ACTION_CLASSIQUE_AJOUTER_TITLE', 'Agrege este menú');
 
define('ADME_LG_ACTION_CLASSIQUE_VERIFIER', 'classico_menú_verificar');
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');
 
// Les actions des menús communs:
define('ADME_LG_ACTION_COMMUN_MODIFIER', 'común_menú_modificar');
define('ADME_LG_ACTION_COMMUN_MODIFIER_ALT', 'Modificar');
define('ADME_LG_ACTION_COMMUN_MODIFIER_TITLE', 'Modificar este menú');
define('ADME_LG_ACTION_COMMUN_MODIFIER_ACTION', 'menu_commun_modifier_action');
 
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');
 
define('ADME_LG_ACTION_COMMUN_MONTER', 'común_menú_subir');
define('ADME_LG_ACTION_COMMUN_MONTER_ALT', 'Subir');
define('ADME_LG_ACTION_COMMUN_MONTER_TITLE', 'Subir este menú');
 
define('ADME_LG_ACTION_COMMUN_DESCENDRE', 'común_menú_bajar');
define('ADME_LG_ACTION_COMMUN_DESCENDRE_ALT', 'Bajar');
define('ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE', 'Bajar este menú');
 
define('ADME_LG_ACTION_COMMUN_DIMINUER', 'común_menú_disminuir');
define('ADME_LG_ACTION_COMMUN_DIMINUER_ALT', 'Disminuir');
define('ADME_LG_ACTION_COMMUN_DIMINUER_TITLE', 'Disminuir de un nivel este menú');
 
define('ADME_LG_ACTION_COMMUN_AUGMENTER', 'común_menú_aumentar');
define('ADME_LG_ACTION_COMMUN_AUGMENTER_ALT', 'Aumentar');
define('ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE', 'Aumentar de un nivel este menú');
 
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', 'común_menú_suprimir');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_ALT', 'Suprimir');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TITLE', 'Suprimir este menú');
 
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', 'común_menú_añadir');
define('ADME_LG_ACTION_COMMUN_AJOUTER_ALT', 'añadir');
define('ADME_LG_ACTION_COMMUN_AJOUTER_TITLE', 'añadir este menú');
 
define('ADME_LG_ACTION_COMMUN_VERIFIER', 'común_menú_verificar');
define ('ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION','menu_commun_verifier_traduction');
 
// Les actions générales:
define('ADME_LG_ACTION_ADMINISTRER', 'Administrar');
define('ADME_LG_ACTION_ADMINISTRER_ALT', 'Administrar');
define('ADME_LG_ACTION_ADMINISTRER_TITLE', 'Administrar la aplicacion de este menú');
 
define('ADME_LG_ACTION_PLIER', 'adme_menú_doblar');
define('ADME_LG_ACTION_PLIER_ALT', 'doblar');
 
define('ADME_LG_ACTION_DEPLIER', 'adme_menú_abrir');
define('ADME_LG_ACTION_DEPLIER_ALT', ' brir');
 
define('ADME_LG_ACTION_SUPPRIMER_CONFIRMATION', 'es usted seguro desear quitar este menú?');
 
// Les erreurs:
define('ADME_LG_ERREUR_INFO_menú', 'imposible leer las informaciones del menú.');
define('ADME_LG_ERREUR_INFO_SITE', 'imposible leer las informaciones del website');
define('ADME_LG_ERREUR_INFO_menú_RELATION', 'imposible leer las informaciones sobre las relaciones del menú.');
define('ADME_LG_ERREUR_ID_menú_PERE', ' imposible leer identificar del padre del menú.');
define('ADME_LG_ERREUR_CODE_NUM', "El valor %s por el \"code nuérique\" ja exista&");
define('ADME_LG_ERREUR_CODE_ALPHA', "El valor %s por el \"Code alphanumérique\" ja exista");
define('ADME_LG_ERREUR_EXISTE_SOUS_menú', 'Este menú incluye debajo de -menúes. Por favor, comience a quitarlos.');
 
// Le formulaire de modification d'un menú :
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL', 'Moficar menú');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL', 'Modicar común menú');
 
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG', 'menú config');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_CONFIG', 'común menú configurar');
define('ADME_LG_FORM_MENU_ID', 'Identificador de este menú: ');
define('ADME_LG_FORM_MENU_CODE_NUM', 'Codico Numerico de este menú');
define('ADME_LG_FORM_MENU_REGLE_CODE_NUM', 'un código digital numérico es necesario para el menú!');
define('ADME_LG_FORM_MENU_CODE_ALPHA', 'Codico alphanumérique del menú');
define('ADME_LG_FORM_MENU_REGLE_CODE_ALPHA', 'un código alfanumérico es necesario para el menú!');
define('ADME_LG_FORM_MENU_NOM', 'Nombre de el menú');
define('ADME_LG_FORM_MENU_REGLE_NOM', 'un nombre esta necesario por el menú !');
define('ADME_LG_FORM_MENU_RACCOURCI', 'clavier acortada ');
define('ADME_LG_FORM_MENU_DEFAUT', 'haciendo el menú por el défaut ');
define('ADME_LG_FORM_MENU_FICHIER_SQUELETTE', ' squelette del archivo ');
define('ADME_LG_FORM_MENU_INFO_BULLE', 'informacion-bulle contenida ');
define('ADME_LG_FORM_MENU_REGLE_INFO_BULLE', ' una descripción corta para la informacion-burbuja es necesaria para este menú!');
define('ADME_LG_FORM_MENU_APPLI', 'Applicacion');
define('ADME_LG_FORM_MENU_APPLI_ARGUMENT', 'Application argumentes');
 
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_ENTETE', ' título de las páginas del menú ');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_ENTETE', ' título de las páginas del menú comun ');
define('ADME_LG_FORM_MENU_ROBOT', ' Indesar los robotes') ;
define('ADME_LG_FORM_MENU_INDEX_FOLLOW', ' poniendo en un índice esta página y después ');
define('ADME_LG_FORM_MENU_INDEX', ' poniendo en un índice solo en esta página ');
define('ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW', ' No poner en un índice esta página y después ');
define('ADME_LG_FORM_MENU_NOINDEX', 'No poner en un índice esta página ');
define('ADME_LG_FORM_MENU_INDEX_VIDE', 'vide');
define('ADME_LG_FORM_MENU_TITRE', ' título de la página ');
define('ADME_LG_FORM_MENU_TITRE_ALTERNATIF', ' título alternativo de la página ');
define('ADME_LG_FORM_MENU_MOT_CLE', 'palabras lavves');
define('ADME_LG_FORM_MENU_DESCRIPTION', ' Descripción del contenido ');
define('ADME_LG_FORM_MENU_TABLE_MATIERE', ' contenido');
define('ADME_LG_FORM_MENU_SOURCE', ' fuente ');
define('ADME_LG_FORM_MENU_AUTEUR', 'Autor');
define('ADME_LG_FORM_MENU_CONTRIBUTEUR', 'Contributor');
define('ADME_LG_FORM_MENU_EDITEUR', 'Éditor');
define('ADME_LG_FORM_MENU_DATE_CREATION', ' fecha de creación ');
define('ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT', ' vaya de nuevo al principio de la validez ');
define('ADME_LG_FORM_MENU_DATE_VALIDITE_FIN', ' fecha de la terminación de la validez ');
define('ADME_LG_FORM_MENU_DATE_COPYRIGHT', 'año del copyright');
define('ADME_LG_FORM_MENU_URL_LICENCE', ' URL de la licencia ');
define('ADME_LG_FORM_MENU_CATEGORIE', 'Catégoria');
define('ADME_LG_FORM_MENU_PUBLIC', 'Publico por esta pagina');
define('ADME_LG_FORM_MENU_PUBLIC_NIVEAU', ' nivel del público para esta página ');
define('ADME_LG_FORM_MENU_ZG_TYPE', ' tipo de gama del espacio ');
define('ADME_LG_FORM_MENU_ZG_VALEUR', ' espacie la gama de la página ');
define('ADME_LG_FORM_MENU_ZG_VIDE', ' ningunos ');
define('ADME_LG_FORM_MENU_ZG_ISO', ' código del país en dos letras(iso3166)');
define('ADME_LG_FORM_MENU_ZG_DC', ' Representación de las áreas geográficas de Dublin Core');
define('ADME_LG_FORM_MENU_ZG_POINT', 'Punto géografico');
define('ADME_LG_FORM_MENU_ZG_GTGN', ' nombra el issus du Getty Thesaurus de los nombres geográficos');
define('ADME_LG_FORM_MENU_TMP_TYPE', ' Estándar de la gama temporal ');
define('ADME_LG_FORM_MENU_TMP_VALEUR', ' dimensión temporal de la página ');
define('ADME_LG_FORM_MENU_TMP_VIDE', 'Ningunos');
define('ADME_LG_FORM_MENU_TMP_W3C', ' Codificación de las fechas y de las horas del W3C');
define('ADME_LG_FORM_MENU_TMP_DC', ' Representación de los intervalos de la época de la base de Dublín');
 
define('ADME_LG_FORM_MENU_VALIDER', 'Registrar');
define('ADME_LG_FORM_MENU_ANNULER', ' cancelación ');
define('ADME_LG_FORM_TXT_CHP_OBLIGATOIRE', ' indica los obligatories de los campos');
define('ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE', '*');
 
// 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.2 2006/09/27 09:20:28 alexandre_tb
* Ajout de constante de traduction
*
* Revision 1.1 2006/04/12 21:11:54 ddelon
* Multilinguisme menus communs
*
* Revision 1.7 2005/07/18 16:14:32 ddelon
* css admin + menú communs
*
* Revision 1.6 2005/07/08 21:13:15 ddelon
* Gestion indentation menú
*
* 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 menús.
*
* Revision 1.3 2004/12/01 16:47:07 jpm
* Ajout d'un texte pour la boite javascript de confirmation de suppression de menú.
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/langues/adme_langue_fr.inc.php
New file
0,0 → 1,320
<?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.16 2006-10-06 10:40:51 florian 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.16 $ $Date: 2006-10-06 10:40:51 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
define ('ADME_IDENTIFIEZ_VOUS','Veuillez vous identifier pour acc&egrave;der &agrave; 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_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', '*');
 
// 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.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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/styles/adme_standard.css
New file
0,0 → 1,68
/* vim: set expandtab tabstop=4 shiftwidth=4: */
/* ========================================================================================================
| Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
+---------------------------------------------------------------------------------------------------------+
| This file is part of Papyrus - Admin Menus. |
| |
| 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: adme_standard.css,v 1.3 2006-10-06 13:38:45 florian Exp $
===========================================================================================================
DESCRIPTION : Fichier contenant les styles css de l'application ADME de Papyrus.
===========================================================================================================
Auteur original : jean-Pascal MILCENT <jpm[at]tela-botanica[point]org>
 
Autres auteurs : aucun
 
===========================================================================================================
AUTEUR : $Author: florian $
VERSION : $Revision: 1.3 $ $Date: 2006-10-06 13:38:45 $
======================================================================================================= */
 
/* +----------------------------------------------------------------------------------------------------+
| STRUCTURE |
+----------------------------------------------------------------------------------------------------+*/
 
 
 
/* +----------------------------------------------------------------------------------------------------+
| DESIGN |
+----------------------------------------------------------------------------------------------------+*/
.adme_img_icone {
border: 0px;
width: 16px;
height: 16px;
}
 
.adme_img_plier_deplier {
border: 0px;
width: 9px;
height: 9px;
}
.menu_classique, .menu_commun {
list-style-type: none;
}
 
/* +--Fin des CSS ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2005/02/28 11:05:55 jpm
* Modification de la licence.
*
* Revision 1.1 2004/11/09 12:51:43 jpm
* Ajout de styles pour les icônes.
*
*
* +-- Fin des CSS ----------------------------------------------------------------------------------------+
*/
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_monter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_monter.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_ouvrir.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_ouvrir.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_supprimer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_supprimer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_augmenter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_augmenter.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_radio_off.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_radio_off.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_ajouter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_ajouter.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_radio_on.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_radio_on.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_descendre.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_descendre.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_diminuer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_diminuer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_modifier.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_modifier.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_fermer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_fermer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_administrer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/admin_menu/presentations/images/interface/adme_administrer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/admin_site/langues/adsi_langue_en.inc.php
New file
0,0 → 1,65
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: adsi_langue_en.inc.php,v 1.2 2006-03-02 10:49:49 ddelon Exp $
/**
* Gestion des langues de l'application ADME
*
* Contient les constantes pour la langue française de l'application ADSI
*
*@package Admin_auth
*@subpackage Langues
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.2 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des CONSTANTES |
// +------------------------------------------------------------------------------------------------------+
define('ADSI_TITRE_SITE', 'Site title');
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1.2.1 2006/02/28 14:02:10 ddelon
* Finition multilinguisme
*
* Revision 1.3 2005/04/14 13:54:51 jpm
* Amélioration de l'interface et mise en conformité.
*
* Revision 1.2 2004/12/13 18:07:57 alex
* ajout de labels
*
* Revision 1.1 2004/12/06 11:31:37 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_site/langues/adsi_langue_fr.inc.php
New file
0,0 → 1,68
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: adsi_langue_fr.inc.php,v 1.3 2006-10-06 10:40:51 florian Exp $
/**
* Gestion des langues de l'application ADME
*
* Contient les constantes pour la langue française de l'application ADSI
*
*@package Admin_auth
*@subpackage Langues
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des CONSTANTES |
// +------------------------------------------------------------------------------------------------------+
define('ADSI_TITRE_SITE', 'Titre du site');
define('ADSI_IDENTIFIEZ_VOUS','Veuillez vous identifier pour acc&egrave;der &agrave; ce menu.');
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* 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
*
* Revision 1.3 2005/04/14 13:54:51 jpm
* Amélioration de l'interface et mise en conformité.
*
* Revision 1.2 2004/12/13 18:07:57 alex
* ajout de labels
*
* Revision 1.1 2004/12/06 11:31:37 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_site/admin_site.php
New file
0,0 → 1,408
<?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 |
// +------------------------------------------------------------------------------------------------------+
/**
* Application Administrateur de Papyrus.
*
* Application permettant de gérer actulement les projets et la mise en cache des pages.
* Dans l'avenir la gestion via l'interface d'administration des fichiers CSS et
* des Squelettes pourrait être envisagée.
* Cette application peut prendre 1 des 3 arguments ci-dessous lors de son appel par un menu de Papyrus :
* - site : pour indiquer que l'on veut gérer les sites
* - cache : pour indiquer que l'on veut gérer le cache
* Liste des paquetages Pear nécessaire à cette application :
* - DB
* - Auth
* - Net_URL
*
*@package Admin_site
//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.12 $ $Date: 2006-10-06 10:40:51 $
// +------------------------------------------------------------------------------------------------------+
//
// $Id: admin_site.php,v 1.12 2006-10-06 10:40:51 florian Exp $
// FICHIER : $RCSfile: admin_site.php,v $
// AUTEUR : $Author: florian $
// VERSION : $Revision: 1.12 $
// DATE : $Date: 2006-10-06 10:40:51 $
// +------------------------------------------------------------------------------------------------------+
**/
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// Note : cette application fait appel à des fonctions présentent dans la bibliotheque de Papyrus.
 
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_APPLICATION.'admin_site/configuration/adsi_configuration.inc.php';
 
 
 
// Inclusion des fichiers de traduction de l'appli ADSI de Papyrus
if (file_exists(ADSI_CHEMIN_LANGUE.'adsi_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
require_once ADSI_CHEMIN_LANGUE.'adsi_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
} else {
require_once ADSI_CHEMIN_LANGUE.'adsi_langue_'.ADSI_I18N_DEFAUT.'.inc.php';
}
 
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/element.php';
 
 
/** Inclusion de l'API de fonctions gérant les erreurs sql.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php';
 
/** Inclusion des fonctions de manipulation du sql.
* Permet la récupération d'un nouvel identifiant d'une table.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
 
/** Inclusion des fonctions de manipulation de fichiers et dossiers.
* Permet la suppression d'un dossier et de son contenu.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'fichier/FIC_manipulation.fonct.php';
 
/** Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.
* Permet d'inclure la fonction d'affichage du "Vous êtes ici".*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';
 
/** Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';
 
/** Inclusion de la bibliotheque de fonction gérant l'affichage de l'application Administrateur.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_affichage.fonct.php';
 
/** Inclusion de la bibliotheque de fonction gérant l'administration des sites de Papyrus.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_site.fonct.php';
 
 
 
///** Inclusion de la bibliotheque de fonction gérant l'administration du cache de Papyrus.*/
//require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_cache.fonct.php';
 
///** Inclusion de la bibliotheque de fonction gérant l'administration des squelettes des sites de Papyrus.*/
//require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_squelette.fonct.php';
 
///** Inclusion de la bibliotheque de fonction gérant l'administration des feuilles de styles des sites de Papyrus.*/
//require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_style.fonct.php';
 
// +------------------------------------------------------------------------------------------------------+
// | 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 '';
}
 
/** Fonction afficherContenuCorps() - Retourne le contenu XHTML à afficherdans la zone contenu corps.
*
* Cette fonction retourne le contenu final d'un appel à l'application Administrateur.
* Cette fonction peut être appelé par Papyrus où depuis n'importe quel autre interface.
*
* @return string le contenu xhtml généré par l'application Administrateur et devant être affiché.
*/
function afficherContenuCorps()
{
 
// +----------------------------------------------------------------------------------------------+
// Initialisation des variables
// +----------------------------------------------------------------------------------------------+
// Objet Pear Auth
$objet_pear_auth =& $GLOBALS['_GEN_commun']['pear_auth'];
// +----------------------------------------------------------------------------------------------+
// Gestion de l'URL pour revenir sur le menu courant.
$url = $GLOBALS['_GEN_commun']['url']->getUrl();
// +----------------------------------------------------------------------------------------------+
if ($objet_pear_auth->getAuth()) {
// +----------------------------------------------------------------------------------------------+
// Initialisation des variables.
$sortie_xhtml = '';// Le XHTML à renvoyer.// Ancien nom : $outputText
$msg = '';
// +----------------------------------------------------------------------------------------------+
// Arguments passé par le menu de Papyrus à l'application l'Administrateur de site.
// Initialisation des variables qui contiendront les arguments
$id_site_a_administrer = '';
$bool_site = false;
$bool_auth = false;
$bool_cache = false;
$bool_squelette = false;
$bool_style = false;
// Instantciation des variables arguments
if (isset($GLOBALS['_GEN_commun']['info_application']->id_site)) {
$id_site_a_administrer = $GLOBALS['_GEN_commun']['info_application']->id_site;
}
if (isset($GLOBALS['_GEN_commun']['info_application']->bool_site) && $GLOBALS['_GEN_commun']['info_application']->bool_site == 'true') {
// Interface d'administration des sites
$bool_site = true;
}
if (isset($GLOBALS['_GEN_commun']['info_application']->bool_auth) && $GLOBALS['_GEN_commun']['info_application']->bool_auth == 'true') {
// Interface d'administration du cache d'un site
$bool_cache = true;
}
if (isset($GLOBALS['_GEN_commun']['info_application']->bool_cache) && $GLOBALS['_GEN_commun']['info_application']->bool_cache == 'true') {
// Interface d'administration du cache d'un site
$bool_cache = true;
}
if (isset($GLOBALS['_GEN_commun']['info_application']->bool_squelette) && $GLOBALS['_GEN_commun']['info_application']->bool_squelette == 'true') {
// Interface d'administration du fichier squelette d'un site
$bool_squelette = true;
}
if (isset($GLOBALS['_GEN_commun']['info_application']->bool_style) && $GLOBALS['_GEN_commun']['info_application']->bool_style == 'true') {
// Interface d'administration du fichier de styles d'un site
$bool_style = true;
}
// Si aucun argument transmis on affiche l'interface de gestion des sites
if ( !($bool_site && $bool_cache && $bool_squelette && $bool_style) ) {
$bool_site = true;
}
// +----------------------------------------------------------------------------------------------+
// Gestion des sites...
if ($bool_site) {
if (isset($_POST['form_sites_ajouter'])) {
// Nous voulons le formulaire d'ajout d'un site
$sortie_xhtml .= ADMIN_afficherFormSite($GLOBALS['_GEN_commun']['pear_db'], $url);
return $sortie_xhtml;
} else if (isset($_POST['site_enregistrer'])) {
// Nous cherchons à enregistrer un site
$message = ADMIN_validerFormSite($GLOBALS['_GEN_commun']['pear_db'], $_POST);
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= ADMIN_afficherFormSite($GLOBALS['_GEN_commun']['pear_db'], $url, $_POST, $message);
} else {
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
$message = ADMIN_enregistrerSite($GLOBALS['_GEN_commun']['pear_db'], $_POST, $objet_pear_auth->getAuthData('ga_id_administrateur'));
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
}
return $sortie_xhtml;
} else if (isset($_POST['form_sites_modifier'])) {
// Nous cherchons à modifier un site
$message = ADMIN_validerFormListesSites($GLOBALS['_GEN_commun']['pear_db'], $_POST);
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
} else {
// Les données sont valide. Nous affichons le formulaire de modification.
$sortie_xhtml .= ADMIN_afficherFormSite($GLOBALS['_GEN_commun']['pear_db'], $url, $_POST, $message);
}
return $sortie_xhtml;
} else if (isset($_POST['site_modifier'])) {
// Nous cherchons à enregistrer les modification d'un site
$message = ADMIN_validerFormSite($GLOBALS['_GEN_commun']['pear_db'], $_POST);
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= ADMIN_afficherFormSite($GLOBALS['_GEN_commun']['pear_db'], $url, $_POST, $message);
} else {
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
$message = ADMIN_modifierSite($GLOBALS['_GEN_commun']['pear_db'], $_POST, $objet_pear_auth->getAuthData('ga_id_administrateur'));
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
}
return $sortie_xhtml;
} else if (isset($_POST['form_sites_supprimer'])) {
// Nous cherchons à supprimer un site
$message = ADMIN_validerFormListesSites($GLOBALS['_GEN_commun']['pear_db'], $_POST);
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
} else {
// Les données sont valide. Nous supprimons et retournons au formulaire de départ.
$message = ADMIN_supprimerSite($GLOBALS['_GEN_commun']['pear_db'], $_POST);
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
}
return $sortie_xhtml;
} else if (isset($_POST['form_sites_traduire'])) {
// Nous cherchons à traduire un site
$message = ADMIN_validerFormListesSites($GLOBALS['_GEN_commun']['pear_db'], $_POST);
if ((!empty($message))) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
} else {
$message = ADMIN_verifier_traduction_possible($GLOBALS['_GEN_commun']['pear_db'], $_POST);
if ((!empty($message))) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
}
else {
// Les données sont valide. Nous affichons le formulaire de traduction
$sortie_xhtml .= ADMIN_afficherFormSite($GLOBALS['_GEN_commun']['pear_db'], $url, $_POST, $message);
}
}
return $sortie_xhtml;
} else if (isset($_POST['site_traduire'])) {
// Nous cherchons à enregistrer la traduction d'un site
$message = ADMIN_validerFormSite($GLOBALS['_GEN_commun']['pear_db'], $_POST);
$message='';
if (!empty($message)) {
// Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= ADMIN_afficherFormSite($GLOBALS['_GEN_commun']['pear_db'], $url, $_POST, $message);
} else {
// Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
$message = ADMIN_traduireSite($GLOBALS['_GEN_commun']['pear_db'], $_POST, $objet_pear_auth->getAuthData('ga_id_administrateur'));
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url, $message);
}
return $sortie_xhtml;
} else if (isset($_POST['form_annuler'])) {
// Retour à la liste des sites
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url);
return $sortie_xhtml;
} else {
// Liste des sites
$sortie_xhtml .= ADMIN_afficherFormListeSites($GLOBALS['_GEN_commun']['pear_db'], $url);
}
}
// +----------------------------------------------------------------------------------------------+
// Gestion du cache... A FAIRE
if ($bool_cache) {
}
// +----------------------------------------------------------------------------------------------+
// Gestion des squelettes... A FAIRE
if ($bool_squelette) {
}
// +----------------------------------------------------------------------------------------------+
// Gestion des styles... A FAIRE
if ($bool_style) {
}
return $sortie_xhtml;
} else {
// L'utilisateur n'est pas identifie, nous lui demandons de le faire.
$res='';
$res .= '<p class="zone_alert">'.ADSI_IDENTIFIEZ_VOUS.'</p>'."\n" ;
$res .= '<form id="form_connexion" style="clear:both;" class="form_identification" action="' ;
$res .= $url;
$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().
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log: not supported by cvs2svn $
* Revision 1.11 2006/03/15 23:35:25 ddelon
* Gestion site
*
* Revision 1.10 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.9.2.2 2006/02/28 14:02:09 ddelon
* Finition multilinguisme
*
* Revision 1.9.2.1 2006/01/19 21:26:20 ddelon
* Multilinguisme site + bug ftp
*
* Revision 1.9 2005/04/08 13:28:43 jpm
* Utiliation de références.
*
* Revision 1.8 2005/02/28 13:09:17 jpm
* Correction bogue : virgule manquante.
*
* Revision 1.7 2005/02/28 11:07:05 jpm
* Modification des auteurs.
*
* Revision 1.6 2005/02/28 10:58:38 jpm
* Suppression de code inutile.
*
* Revision 1.5 2005/02/28 10:32:06 jpm
* Changement de nom de dossier.
*
* Revision 1.4 2004/12/03 19:22:57 jpm
* Gestion des types de sites externes gérés par Papyrus.
*
* Revision 1.3 2004/10/18 18:27:37 jpm
* Correction problèmes FTP et manipulation de fichiers.
*
* Revision 1.2 2004/07/06 17:08:14 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.1 2004/06/16 14:20:39 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.23 2004/05/10 12:23:26 jpm
* Correction mineure.
*
* Revision 1.22 2004/05/07 16:33:18 jpm
* Intégration de constantes.
*
* Revision 1.21 2004/05/07 07:23:03 jpm
* Ajout de la gestion des modification et suppression de site. Amélioration de la création des sites.
*
* Revision 1.20 2004/05/05 06:45:36 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.19 2004/05/04 16:28:30 jpm
* Réduction de code pour la fonction afficherContenuTete().
*
* Revision 1.18 2004/04/30 16:22:59 jpm
* Poursuite de l'administration des sites.
*
* Revision 1.17 2004/04/22 08:33:11 jpm
* Transformation de $GS_GLOBAL en $_GEN_commun.
*
* Revision 1.16 2004/04/09 16:24:08 jpm
* Prise en compte des tables i18n.
*
* Revision 1.15 2004/04/02 16:37:09 jpm
* Modification de la gestion des actions d'administration.
* Ajout de commentaires.
*
* Revision 1.14 2004/03/31 16:58:15 jpm
* Changement des chemins d'accès aux fichiers à inclure.
*
* Revision 1.13 2004/03/24 10:07:04 jpm
* Ajout des commentaires d'entête.
* Début mise en conformité avec la convention de codage.
* Déplacement de la fonction d'affichage du xhtml dans la bibliothèque de fonctions.
*
* +--Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_site/configuration/adsi_configuration.inc.php
New file
0,0 → 1,90
<?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: adsi_configuration.inc.php,v 1.5 2006-03-22 13:18:00 alexandre_tb Exp $
/**
* Fichier de configuration général de l'application Administrateur de sites.
*
* Permet de définir certains paramètres valables pour toutes l'application
* Administrateur de sites.
*
*@package Admin_site
*@subpackage Configuration
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.5 $ $Date: 2006-03-22 13:18:00 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Chemin des fichiers à inclure.
/** <br> Chemin vers le dossier de Pear.*/
define('ADSI_CHEMIN_BIBLIOTHEQUE_PEAR','');
/** <br> Chemin vers le dossier des API.*/
define('ADSI_CHEMIN_BIBLIOTHEQUE_API', GEN_CHEMIN_API);
/** <br> Chemin vers le dossier des bibliothèques de l'appli Papyrus.*/
define('ADSI_CHEMIN_BIBLIOTHEQUE_GEN', GEN_CHEMIN_BIBLIO);
/** <br> Chemin vers le dossier des bibliothèques de l'appli Admin sites.*/
define('ADSI_CHEMIN_BIBLIOTHEQUE_ADSI', GEN_CHEMIN_APPLICATION.'admin_site/bibliotheque/');
 
// Chemin vers les dossiers de l'application
/** Chemin vers l'application Admin Site de Papyrus.*/
define('ADSI_CHEMIN_APPLICATION', GEN_CHEMIN_APPLICATION.'admin_site/');
/** Chemin vers les fichiers de traduction de l'application Admin Auth de Papyrus.*/
define('ADSI_CHEMIN_LANGUE', ADSI_CHEMIN_APPLICATION.'langues/');
 
define ('ADSI_I18N_DEFAUT', 'fr');
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.4 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.3.2.1 2006/02/28 14:02:11 ddelon
* Finition multilinguisme
*
* Revision 1.3 2005/02/28 10:59:38 jpm
* Modification des commentaires.
*
* Revision 1.2 2004/07/06 17:08:20 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.1 2004/06/16 14:20:28 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.1 2004/05/07 08:21:39 jpm
* Ajout des constantes de définition des chemins des fichiers à inclure.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_site/bibliotheque/adsi_site.fonct.php
New file
0,0 → 1,1955
<?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: adsi_site.fonct.php,v 1.32 2006-10-16 15:49:06 ddelon Exp $
/**
* Bibliothèque de fonctions d'admininistration des projets
*
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
* sur les projets (=sites gérés par Papyrus).
*
*@package Admin_site
*@subpackage Fonctions
//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.32 $ $Date: 2006-10-16 15:49:06 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
if (GEN_FTP_UTILISE) {
/** Inclusion bibliothèque de PEAR gérant le FTP.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
}
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Fonction ADMIN_afficherListeSites()- Génére le xhtml permettant de choisir un site parmis une liste.
*
* Cette fonction fournie une liste des sites principaux gérés par Génésia.
*
* @param string l'objet Pear DB.
* @param string l'url de la page à laquelle renvoyer le formulaire.
* @param string un message important à destination de l'utilisateur.
* return string le code XHTML à retourner.
*/
function ADMIN_afficherFormListeSites(&$db, $url, $message = '')
{
$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;
}
 
// 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();
}
//----------------------------------------------------------------------------
// Création du formulaire
$form =& new HTML_QuickForm('form_sites', 'post', str_replace('&amp;', '&', $url));
$tab_index = 1000;
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li>'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
$partie_site_debut = '<fieldset>'."\n".
'<legend>Listes des sites</legend>'."\n".
'<ul>'."\n";
$form->addElement('html', $partie_site_debut);
$aso_options = array();
foreach ($liste_site as $ligne ) {
$aso_options[$ligne->gs_id_site] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')');
// Affichage des traductions
$requete_traduction = 'SELECT * '.
'FROM gen_site_relation, gen_site '.
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
'AND gsr_id_site_02 <> gsr_id_site_01 '.
'AND gsr_id_site_02 = gs_id_site '.
'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))
: '';
while ($ligne_traduction = $resultat_traduction->fetchRow(DB_FETCHMODE_OBJECT)) {
$aso_options[$ligne_traduction->gs_id_site] = '&nbsp;&nbsp;&nbsp;'.$ligne_traduction->gs_ce_i18n.":&nbsp;".htmlentities($ligne_traduction->gs_nom.' ('.$ligne_traduction->gs_code_alpha.')');
}
$resultat_traduction->free();
}
$id = 'form_sites_id_site';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.'Listes des sites : '.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
$partie_site_fin = '</ul>'."\n".
'</fieldset>'."\n";
$form->addElement('html', $partie_site_fin);
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$form->addElement('html', $liste_bouton_debut);
$id = 'form_sites_ajouter';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = 'Ajouter';
$form->addElement('submit', $id, $label, $aso_attributs);
$id = 'form_sites_modifier';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = 'Modifier';
$form->addElement('submit', $id, $label, $aso_attributs);
 
$id = 'form_sites_traduire';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = 'Traduire';
$form->addElement('submit', $id, $label, $aso_attributs);
$id = 'form_sites_supprimer';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onclick' => 'javascript:return confirm(\''.'Êtes vous sûr de vouloir supprimer ce site ?'.'\');');
$label = 'Supprimer';
$form->addElement('submit', $id, $label, $aso_attributs);
$liste_bouton_fin = '</ul>'."\n";
$form->addElement('html', $liste_bouton_fin);
$sortie = $form->toHTML()."\n";
// Titre de la page:
$titre = 'Configuration des sites';
// Construction de la page.
return ADMIN_contruirePage($titre, $sortie, $message);
}
 
/** Fonction ADMIN_validerFormListesSites() - Valide les données issues du formulaire de liste de sites.
*
* Cette fonction valide les données du formulaire de liste de site.
*
* @param string 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 ADMIN_validerFormListesSites(&$db, $aso_valeurs)
{
$message = '';
// Validation des données du formulaire
if (empty($aso_valeurs['form_sites_id_site'])) {
$message .= '<p class="pap_erreur">Vous devez d\'abord sélectionner un site.</p>';
}
return $message;
}
 
/** Fonction ADMIN_afficherFormSite()- Génére un formulaire pour gen_site.
*
* Cette fonction retourne un formulaire pour modification ou pour ajout.
*
* @param string l'objet pear de connexion à la base de données.
* @param string l'url à laquelle renvoyer le formulaire.
* @param string le tableau contenant les valeurs du formulaire.
* @param string un message à destination de l'utilisateur.
* return string le code XHTML à retourner.
*/
function ADMIN_afficherFormSite(&$db, $url, $aso_valeurs = array(), $message = '')
{
// Initialisation des valeurs
$sortie = '';
$aso_valeurs['modification'] = false;
$aso_valeurs['traduction'] = false;
$aso_valeurs['defaut'] = false;
$aso_valeurs['type_site_externe'] = 0;
// Nous cherchons à savoir si nous somme en modification
if ((isset($aso_valeurs['form_sites_modifier'])) || (isset($aso_valeurs['form_sites_traduire']))) {
if ((isset($aso_valeurs['form_sites_modifier']))) {
$as_val['modification'] = true;
$as_val['traduction'] = false;
}
else {
$as_val['traduction'] = true;
$as_val['modification'] = false;
}
if ($as_val['traduction']) {
// Traduction d'un site principal uniquement :
$requete = 'SELECT * '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
'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 ) {
$site_id = $aso_valeurs['form_sites_id_site'];
}
else {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$site_id = $ligne->gsr_id_site_01;
}
$resultat->free();
}
else {
$site_id = $aso_valeurs['form_sites_id_site'];
}
// Requete pour récupérer les informations sur le site à modifier
$requete = 'SELECT * '.
'FROM gen_site '.
'WHERE gs_id_site = '.$site_id;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$aso_valeurs = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$site_ligne = $aso_valeurs;
$resultat->free();
// Requete pour récupérer les informations issues des relations du site à modifier
$requete = 'SELECT * '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_01 = '.$site_id.' '.
'AND gsr_id_site_01 = gsr_id_site_02';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$tab_type = GEN_retournerTableauTypeSiteExterne($db);
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
$aso_valeurs['defaut'] = true;
}
foreach ($tab_type as $cle => $val) {
if ($ligne->gsr_id_valeur == $val['id']) {// 20x = type de site externe à Papyrus
$aso_valeurs['type_site_externe'] = $val['id'];
}
}
}
$resultat->free();
if (($as_val['modification'])) {
$aso_valeurs['modification'] = true;
$aso_valeurs['traduction'] = false;
}
else {
$aso_valeurs['traduction'] = true;
$aso_valeurs['modification'] = false;
};
} else if (isset($aso_valeurs['gs_id_site'])) {
$aso_valeurs['modification'] = true;
}
// Débogage :
//$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
//-------------------------------------------------------------------------------------------------------------------
// Information précédent le formulaire (en modification)
if ((isset($aso_valeurs['modification'])||isset($aso_valeurs['traduction']))&&isset($aso_valeurs['gs_id_site'])) {
$sortie .= '<p>'.'Identifiant de ce site : '.'<span id="adsi_site_id">'.$aso_valeurs['gs_id_site'].'</span></p>'."\n";
}
//-------------------------------------------------------------------------------------------------------------------
// Création du formulaire
$form =& new HTML_QuickForm('site', 'post', str_replace('&amp;', '&', $url));
$tab_index = 1000;
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li>'."\n".
'{label}'."\n".
'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('{label}'."\n".
'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'&nbsp;'."\n"
, 'double');
$squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n");
$partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n";
$form->addElement('html', $partie_site_debut);
if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
$form->addElement('hidden', 'gs_id_site');
$form->addElement('hidden', 'modification');
$form->addElement('hidden', 'traduction');
}
$id = 'gs_nom';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100, 'value' => 'nom du site');
$label = '<label for="'.$id.'">'.'Nom du site : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule($id, 'Un nom est requis pour le site !', 'required', '', 'client');
$id = 'gs_code_alpha';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 'site_01');
$label = '<label for="'.$id.'">'.'Code alphanumérique : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule('gs_code_alpha', 'Un code alphanumérique est requis pour le site !', 'required', '', 'client');
$id = 'gs_code_num';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 1);
$label = '<label for="'.$id.'">'.'Code numérique : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule('gs_code_num', 'Un code numérique est requis pour le site !', 'required', '', 'client');
$id = 'gs_raccourci_clavier';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1, 'value' => 'Z');
$label = '<label for="'.$id.'">'.'Raccourci clavier : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
// Requete pour connaitre les identifications dispo
$requete = 'SELECT * '.
'FROM gen_site_auth '.
'WHERE gsa_id_auth != 0';
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$aso_options = array();
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
// Test pour connaître le type d'authentification.
$type = '';
if ($ligne->gsa_ce_type_auth == '1' ) {
$type = 'Base de données';
} else if ($ligne->gsa_ce_type_auth == '2' ) {
$type = 'LDAP';
}
$aso_options[$ligne->gsa_id_auth] = $ligne->gsa_nom.' ('.$type.')';
}
$resultat->free();
$id = 'gs_ce_auth';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.'Identification : '.'</label>';
if (isset($aso_valeurs['gs_ce_auth'])) {
$s = &$form->createElement('select', $id , $label, "", $aso_attributs);
$s->loadArray($aso_options,$aso_valeurs['gs_ce_auth']);
$form->addElement($s);
}
else {
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
}
// En modification nous affichons la liste des squelettes disponibles dans
// le dossier du site.
if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
$aso_options = array();
if (!GEN_FTP_UTILISE) {
$chemin_squelettes = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
$dossier = opendir($chemin_squelettes);
while(($fichier = readdir($dossier)) !== false) {
if ($fichier != '.' && $fichier != '..') {
$chemin_type = $chemin_squelettes.GEN_SEP.$fichier;
if (filetype($chemin_type) != 'dir') {
$aso_options[$fichier] = $fichier;
}
}
}
} else {
// ouverture des squelettes présent dans le dossier du site
// création de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// création de la connexion
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// identification
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
// Gestion des erreurs ftp
if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
//'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
//'Message erreur de login : '.$ftp_login_result->getMessage());
}
$chemin_squelettes = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
$tab_squelettes = $objet_pear_ftp->ls($chemin_squelettes);
$aso_options = array();
for ($i = 0; $i < count($tab_squelettes) ; $i++) {
if ($tab_squelettes[$i]['is_dir'] == false) {
$aso_options[$tab_squelettes[$i]['name']] = $tab_squelettes[$i]['name'];
}
}
$objet_pear_ftp->disconnect();
}
// Vérification de la présence de squelettes
if (count($aso_options) == 0) {
$aso_options['Aucun squelette'] = 'Aucun squelette';
}
$id = 'gs_fichier_squelette';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
$s = &$form->createElement('select', $id , $label, "", $aso_attributs);
$s->loadArray($aso_options,$aso_valeurs['gs_fichier_squelette']);
$form->addElement($s);
}
// Requete pour connaitre les internationalisation dispo
if (!$aso_valeurs['modification'] && !$aso_valeurs['traduction']) {
$requete = 'SELECT * '.
'FROM gen_i18n ';
}
else {
if ($aso_valeurs['traduction']) {
// Recherche liste des sites deja traduits
$requete = 'SELECT distinct gs_ce_i18n '.
'FROM gen_site_relation, gen_site '.
'WHERE gsr_id_site_01 = ' .$site_ligne['gs_id_site'] .' '.
'AND gs_id_site = gsr_id_site_02 '.
'AND gsr_id_valeur =1 '; // 1 = "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('".$site_ligne['gs_ce_i18n']."')";
}
else {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
$end="'".$ligne->gs_ce_i18n."'";
}
if ($not_in_langue) {
$not_in_langue="'".$site_ligne['gs_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('".$site_ligne['gs_ce_i18n']."')";
}
}
$resultat->free();
$requete = "SELECT * FROM gen_i18n where ".$not_in_langue;
}
else
{
$requete = "SELECT * FROM gen_i18n where gi_id_i18n =('".$site_ligne['gs_ce_i18n']."')";
}
}
$resultat = $db->query($requete) ;
if (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 = 'defaut';
$aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
if (isset($aso_valeurs[$id]) && $aso_valeurs[$id] === true) {
$aso_attributs['checked'] = 'checked';
}
$label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>';
$form->addElement('checkbox', $id, $label, null, $aso_attributs);
// Groupe site externe
$tab_type = GEN_retournerTableauTypeSiteExterne($db);
$aso_options = array('0' => 'Aucun');
foreach ($tab_type as $cle => $val) {
$aso_options[$val['id']] = $val['intitule'];
}
$id = 'type_site_externe';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label>'.'Type de site externe : '.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
$id = 'gs_url';
$aso_attributs = array('id' => $id, 'tabindex' => $tab_index++,'size' => 45, 'maxlength' => 255, 'value' => 'http://');
$label = '<label>'.'URL du site externe : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
$form->addElement('html', $partie_site_fin);
$partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
$form->addElement('html', $partie_entete_debut);
$id = 'gs_titre';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
$label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
$id = 'gs_mots_cles';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
$label = '<label for="'.$id.'">'.'Mots-clés : '.'</label>';
$zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
$zone_mots_cles->setValue('mots-clés du site');
$form->addElement($zone_mots_cles);
$form->addRule($id, 'Des mots clés sont requis pour le site !', 'required', '', 'client');
$id = 'gs_description';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
$label = '<label for="'.$id.'">'.'Description du contenu : '.'</label>';
$zone = $form->createElement('textarea', $id, $label, $aso_attributs);
$zone->setValue('description du site');
$form->addElement($zone);
$form->addRule($id, 'Une description est requise pour le site !', 'required', '', 'client');
$id = 'gs_auteur';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'auteur du site');
$label = '<label for="'.$id.'">'.'Auteur du site : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');
$partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
$form->addElement('html', $partie_entete_fin);
if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
// Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
$requete_admin = 'SELECT * '.
'FROM gen_annuaire '.
'WHERE ga_id_administrateur = '.$aso_valeurs['gs_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);
if (isset($ligne_admin)) {
$info_admin = '<p class="info">Site créé le '.$aso_valeurs['gs_date_creation'].'. Dernière modification par '.
$ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'.'.'</p>';
$form->addElement('html', $info_admin);
$form->addElement('hidden', 'gs_ce_admin');
$form->addElement('hidden', 'gs_date_creation');
}
// Titre de la page:
if ($aso_valeurs['modification']) {
$titre = 'Modifier un site';
$bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
}
else {
$titre = 'Traduire un site';
$bouton_validation = '<input type="submit" id="site_traduire" name="site_traduire" value="Enregistrer" />';
}
} else {
// Titre de la page:
$titre = 'Ajouter un site';
// Bouton validant le formulaire
$bouton_validation = '<input type="submit" id="site_enregistrer" name="site_enregistrer" value="Enregistrer" />';
}
$bouton_annuler = '<input type="submit" id="form_annuler" name="form_annuler" value="Annuler" />';
$bouton_effacer = '<input type="reset" id="effacer" name="effacer" value="Effacer" />';
$boutons = '<p>'."\n".
$bouton_validation."\n".
$bouton_annuler."\n".
$bouton_effacer."\n".
'</p>'."\n";
$form->addElement('html', $boutons);
// Instanciation des valeurs par défaut du formulaire
$form->setDefaults($aso_valeurs);
// Javascript pour la validation côté client
$regles_javascript = $form->getValidationScript();
// Suppression des balises déjà créées par GEN_stockerCodeScript()
// Le code ci-dessous devrait être utilisé si on arrive à empécher Quickform de l'ajouter lui-même!
/*
$regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript);
$regles_javascript = ereg_replace ( '<!--', '', $regles_javascript);
$regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript);
$regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript);
GEN_stockerCodeScript($regles_javascript);
*/
// Note de fin de formulaire
$form->setRequiredNote('Indique les champs obligatoires');
$sortie .= $form->toHTML()."\n";
// Construction de la page.
return ADMIN_contruirePage($titre, $sortie, $message);
}
 
/** Fonction ADMIN_validerFormAjouterSite() - Valide les données issues du formulaire pour gen_site.
*
* Cette fonction valide les données à ajouter dans la table gen_site.
*
* @param string 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 ADMIN_validerFormSite(&$db, $aso_valeurs)
{
$message = '';
// Validation des données du formulaire
if (empty($aso_valeurs['gs_nom'])) {
$message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas être vide.</p>';
}
if (empty($aso_valeurs['gs_code_alpha'])) {
$message .= '<p class="pap_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>';
}
if ($aso_valeurs['gs_code_num'] == '') {
// Note: ne pas utilisez empty() car si on veut saisir 0, cela est conscidéré comme vide!
$message .= '<p class="pap_erreur">Le champ "Code numérique" ne doit pas être vide.</p>';
}
if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
$message .= '<p class="pap_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
}
// Requete pour vérifier l'absence du code numérique et alphanumérique de la table gen_site
// en mode creation uniquement !
if (!isset($aso_valeurs['site_modifier'])) $aso_valeurs['site_modifier']=0;
if (!isset($aso_valeurs['site_traduire'])) $aso_valeurs['site_traduire']=0;
if (@!$aso_valeurs['site_modifier'] && @!$aso_valeurs['site_traduire'] ) {
$requete = 'SELECT gs_code_alpha, gs_code_num '.
'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) ';// 102 = site "principal" et 103 = site "externe"
$requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
$message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
}
if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
$message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
}
}
$resultat->free();
}
else {
// Refuser si plus de traduction disponible !
}
if (empty($aso_valeurs['gs_titre'])) {
$message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas être vide.</p>';
}
if (empty($aso_valeurs['gs_mots_cles'])) {
$message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas être vide.</p>';
}
if (empty($aso_valeurs['gs_description'])) {
$message .= '<p class="pap_erreur">Le champ "Description" ne doit pas être vide.</p>';
}
if (empty($aso_valeurs['gs_auteur'])) {
$message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas être vide.</p>';
}
if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
$message .= '<p class="pap_erreur">'.'Vous avez désigné ce site comme étant externe. Il est nécessaire de saisir son URL!'.'</p>';
}
if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
$message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
'Vous conscidérez donc ce site comme étant externe. Il est nécessaire de cocher la case "oui"!'.'</p>';
}
return $message;
}
 
/** Fonction ADMIN_enregistrerSite() - Ajoute un site à Papyrus.
*
* Cette fonction ajoute le site à Papyrus, c'est à dire :
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
* - 2. Insertion d'une ligne dans la table "gen_site".
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
*
* @param string l'objet pear de connexion à la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @param int identifiant de l'administrateur réalisant cette création.
* @return string retourne un message en cas de succès ou d'échec.
*/
function ADMIN_enregistrerSite(&$db, $aso_valeurs, $id_admin)
{
// Nous vérifions si nous avons à faire à un site externe.
$id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
$id_type_site = '103';// c'est un site "externe"
}
// Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
// par l'utilisateur dans le fichier de config avancée.
$tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
$tab_rep_site = array( GEN_DOSSIER_IMAGE,
GEN_DOSSIER_STYLE,
GEN_DOSSIER_SCRIPT,
GEN_DOSSIER_SQUELETTE,
GEN_DOSSIER_DOC);
if (!GEN_FTP_UTILISE && $id_type_site != '103') {
foreach ($tab_rep_langue as $nom_rep_langue) {
foreach ($tab_rep_site as $nom_rep_site) {
$chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$nom_rep_langue.GEN_SEP.$nom_rep_site;
$vieux_umask = umask(0);
$resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
umask($vieux_umask);
if ($resultat == false) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
'Répertoire : '. $chemin_repertoire .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
}
}
$chemin_squelette_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
$chemin_squelette_site = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
'Fichier : '. $chemin_squelette_site .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
$chemin_style_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
$chemin_style_site = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
if (!copy($chemin_style_defaut, $chemin_style_site)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
'Fichier : '. $chemin_style_site .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
} else if (GEN_FTP_UTILISE && $id_type_site != '103') { // 103 est le type "site externe"
// Création d'une connection ftp avec Net_FTP de PEAR
// voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
// création de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// création de la connexion
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// identification
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
// Gestion des erreurs ftp
if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /><p>';
return $message;
}
$objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
//$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
foreach ($tab_rep_langue as $nom_rep_langue) {
$objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
foreach ($tab_rep_site as $nom_rep_site) {
$chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
$resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
'Répertoire : '. $chemin_repertoire .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
}
}
$chemin_squelette_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
$chemin_squelette_site = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
$resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
'Fichier copié : '. $chemin_squelette_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
$chemin_style_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
$chemin_style_site = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
$resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
'Fichier origine : '. $chemin_style_defaut .'<br />'.
'Fichier copié : '. $chemin_style_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
$chemin_image_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_IMAGE.GEN_SEP;
$chemin_image_site = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_IMAGE.GEN_SEP;
$resultat = $objet_pear_ftp->putRecursive($chemin_image_defaut, $chemin_image_site, false, FTP_BINARY);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
'Fichier origine : '. $chemin_style_defaut .'<br />'.
'Fichier copié : '. $chemin_style_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
 
$objet_pear_ftp->disconnect();
}
$id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
if ($id_site == false) {
$message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
// Modification de la requete si nous avons à faire à un site externe.
$requete_complement = ', gs_url = NULL';
if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
$requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
}
// Requete d'insertion des infos d'un site dans gen_site
$requete = 'INSERT INTO gen_site '.
'SET gs_id_site = '.$id_site.', '.
'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
'gs_fichier_squelette = "defaut.html", '.
'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
'gs_description = "'.$aso_valeurs['gs_description'].'", '.
'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
'gs_ce_admin = '.$id_admin.
$requete_complement;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
// Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
$requete = 'SELECT MAX(gsr_ordre) AS max_ordre '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouvel_ordre = $ligne->max_ordre + 1;
// Requete d'insertion des relations dans gen_site_relation
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = '.$id_type_site.', '.
'gsr_ordre = '.$nouvel_ordre;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
// Gestion du site par défaut
if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
$requete_supr_defaut = 'DELETE FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
$resultat_supr_defaut = $db->query($requete_supr_defaut);
if (DB::isError($resultat_supr_defaut)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
}
// Requete d'insertion de la relations site par défaut
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = 101, '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
// Gestion des sites externes
if ($id_type_site == '103') {
// Requete d'insertion des relations dans gen_site_relation
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
$message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
return $message;
}
 
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
*
* Cette fonction traduit un site à Papyrus, c'est à dire :
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
* - 2. Insertion d'une ligne dans la table "gen_site".
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
*
* @param string l'objet pear de connexion à la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @param int identifiant de l'administrateur réalisant cette création.
* @return string retourne un message en cas de succès ou d'échec.
*/
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
{
// Nous vérifions si nous avons à faire à un site externe.
$id_type_site = '102';// par défaut on considére que c'est un site "principal"
if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
$id_type_site = '103';// c'est un site "externe"
}
// Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
// par l'utilisateur dans le fichier de config avancée.
$tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
$tab_rep_site = array( GEN_DOSSIER_IMAGE,
GEN_DOSSIER_STYLE,
GEN_DOSSIER_SCRIPT,
GEN_DOSSIER_SQUELETTE,
GEN_DOSSIER_DOC);
if (!GEN_FTP_UTILISE && $id_type_site != '103') {
foreach ($tab_rep_langue as $nom_rep_langue) {
foreach ($tab_rep_site as $nom_rep_site) {
$chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$nom_rep_langue.GEN_SEP.$nom_rep_site;
$vieux_umask = umask(0);
$resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
umask($vieux_umask);
if ($resultat == false) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
'Répertoire : '. $chemin_repertoire .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
}
}
$chemin_squelette_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
$chemin_squelette_site = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
'Fichier : '. $chemin_squelette_site .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
$chemin_style_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
$chemin_style_site = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
if (!copy($chemin_style_defaut, $chemin_style_site)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
'Fichier : '. $chemin_style_site .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
} else if (GEN_FTP_UTILISE && $id_type_site != '103') { // 103 est le type "site externe"
// Création d'une connection ftp avec Net_FTP de PEAR
// voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
// création de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// création de la connexion
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// identification
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
// Gestion des erreurs ftp
if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /><p>';
return $message;
}
$objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
//$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
foreach ($tab_rep_langue as $nom_rep_langue) {
$objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
foreach ($tab_rep_site as $nom_rep_site) {
$chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
$resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
'Répertoire : '. $chemin_repertoire .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
}
}
$chemin_squelette_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
$chemin_squelette_site = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
$resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
'Fichier copié : '. $chemin_squelette_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
$chemin_style_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
$chemin_style_site = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
$resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
'Fichier origine : '. $chemin_style_defaut .'<br />'.
'Fichier copié : '. $chemin_style_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
$objet_pear_ftp->disconnect();
}
$id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
if ($id_site == false) {
$message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
// Modification de la requete si nous avons à faire à un site externe.
$requete_complement = ', gs_url = NULL';
if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
$requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
}
// Requete d'insertion des infos d'un site dans gen_site
$requete = 'INSERT INTO gen_site '.
'SET gs_id_site = '.$id_site.', '.
'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
'gs_fichier_squelette = "defaut.html", '.
'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
'gs_description = "'.$aso_valeurs['gs_description'].'", '.
'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
'gs_ce_admin = '.$id_admin.
$requete_complement;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
// Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
$requete = 'SELECT MAX(gsr_ordre) AS max_ordre '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouvel_ordre = $ligne->max_ordre + 1;
// Requete d'insertion des relations dans gen_site_relation
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = '.$id_type_site.', '.
'gsr_ordre = '.$nouvel_ordre;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
// Traduction : Requete d'insertion des relations dans gen_site_relation
 
$requete = 'SELECT MAX(gsr_ordre) AS max_ordre '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
'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 ) {
$nouvel_ordre = 1;
}
else {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouvel_ordre = $ligne->max_ordre + 1;
}
 
// 1 : insertion information traduction pere (si inexistant)
$requete = 'SELECT * '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
'AND gsr_id_site_01 = gsr_id_site_02 '.
'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 ) {
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
'gsr_ordre = 1 ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
$nouvel_ordre = 2;
}
 
 
// 2 : insertion information traduction site en cours (si inexistant ?) (et la mise a jour, c'est ailleurs
// dans les mises à jour
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
'gsr_ordre = '.$nouvel_ordre;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
// Gestion du site par défaut
if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
$requete_supr_defaut = 'DELETE FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
$resultat_supr_defaut = $db->query($requete_supr_defaut);
if (DB::isError($resultat_supr_defaut)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
}
// Requete d'insertion de la relations site par défaut
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = 101, '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
// Gestion des sites externes
if ($id_type_site == '103') {
// Requete d'insertion des relations dans gen_site_relation
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
$message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
return $message;
}
 
 
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
*
* Cette fonction modifie un site géré par Papyrus.
* Il faudrait aussi pouvoir renomer le dossier du site si le code alpha change.
*
* @param string l'objet pear de connexion à la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @param int identifiant de l'administrateur réalisant cette modification.
* @return string retourne un message en cas de succès ou d'échec.
*/
function ADMIN_modifierSite(&$db, $aso_valeurs, $id_admin)
{
// Initialisation de variables
$message_complement = '';
// Récupération de l'ancien code alphanumérique
$requete = 'SELECT gs_code_alpha '.
'FROM gen_site '.
'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
$ancien_code_alphnum = $db->getOne($requete);
if (DB::isError($ancien_code_alphnum)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $ancien_code_alphnum->getMessage(), $requete) );
}
// Nous vérifions si nous avons à faire à un site externe.
$id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
$requete_complement = ', gs_url = NULL ';
if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
$requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'" ';
$id_type_site = '103';// c'est un site "externe"
}
// Si le code alphanumérique à changé et que nous n'avons pas à faire à un site externe.
if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum && $id_type_site != 103) {
if (!GEN_FTP_UTILISE) {
$chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
$chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
if (!rename($chemin_site_ancien, $chemin_site_nouveau)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de changer le nom du dossier du site.<br />'.
'Ancien nom : '. $chemin_site_ancien .'<br />'.
'Nouveau nom : '. $chemin_site_nouveau .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
} else {
$chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
$chemin_site_nouveau = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
// Création d'une connection ftp avec Net_FTP de PEAR
// voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
// création de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// création de la connexion
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// identification
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
// Gestion des erreurs ftp
if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /><p>';
return $message;
}
$resultat = $objet_pear_ftp->putRecursive($chemin_site_ancien, $chemin_site_nouveau, false, FTP_BINARY);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier l\'ancien dossier du site.<br />'.
'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
'Dossier site nouveau : '. $chemin_site_nouveau .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
// On utilise la racine FTP pour rm
$chemin_site_ancien = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
// Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP
error_reporting(E_PARSE);
$resultat = $objet_pear_ftp->rm($chemin_site_ancien, true);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer l\'ancien dossier du site.<br />'.
'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
// Retour au niveau d'erreur définit dans le fichier de config de Papyrus
error_reporting(GEN_DEBOGAGE_NIVEAU);
$objet_pear_ftp->disconnect();
}
}
// Requete de mise à jour des infos d'un site dans gen_site
$requete = 'UPDATE gen_site '.
'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
'gs_fichier_squelette = "'.$aso_valeurs['gs_fichier_squelette'].'", '.
'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
'gs_description = "'.$aso_valeurs['gs_description'].'", '.
'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
'gs_date_creation = "'.$aso_valeurs['gs_date_creation'].'", '.
'gs_ce_admin = '.$id_admin.' '.
$requete_complement.
'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
// Gestion du site externe
if ($id_type_site == 103) {
// Vérification pour voir si nous avons à faire à une transformation d'un site "principal" en site "externe"
$requete = 'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
'AND gsr_id_valeur = 102 ';// 102 = site "principal"
$nbre_relation = $db->getOne($requete);
if (DB::isError($nbre_relation)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
}
// Nous supprimons l'ancienne relation si nécessaire
if ($nbre_relation >= 1) {
$requete_supr_ext = 'DELETE FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
'AND gsr_id_valeur = 102 ';// 102 = site "principal"
$resultat_supr_ext = $db->query($requete_supr_ext);
if (DB::isError($resultat_supr_ext)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_ext->getMessage(), $requete_supr_ext));
}
$message_complement = 'Le site "principal" a été transformé en site "externe". Si nécessaire, veuillez '.
'supprimer manuellement par FTP, le dossier contenant les fichiers de ce site sur '.
'le serveur!';
}
// Vérification pour voir si le site est déjà "externe"
$requete = 'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
'AND gsr_id_valeur = 103 ';// 103 = site "externe"
$nbre_relation = $db->getOne($requete);
if (DB::isError($nbre_relation)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
}
if ($nbre_relation == 0) {
// Requete d'insertion de la relations site "externe"
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
'gsr_id_valeur = '.$id_type_site.', '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
// Ajout du type de site externe
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
// Gestion du site par défaut
if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
$requete_supr_defaut = 'DELETE FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
$resultat_supr_defaut = $db->query($requete_supr_defaut);
if (DB::isError($resultat_supr_defaut)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
}
// Requete d'insertion de la relations site par défaut
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
'gsr_id_valeur = 101, '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
$message = '<p class="pap_info">'.'Succés de la modification du site.'.'</p>';
$message .= '<p class="pap_info">'.$message_complement.'</p>';
return $message;
}
 
/** Fonction ADMIN_supprimerSite() - Ajoute un site à Papyrus.
*
* Cette fonction ajoute le site à Papyrus, c'est à dire :
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
* - 2. Insertion d'une ligne dans la table "gen_site".
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
*
* @param string l'objet pear de connexion à la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @param int identifiant de l'administrateur réalisant cette création.
* @return string retourne un message en cas de succès ou d'échec.
*/
function ADMIN_supprimerSite(&$db, $aso_valeurs)
{
// Recherche du coda alpha du site principal afin de pouvoir détruire ses répertoires
$requete = 'SELECT gs_code_alpha '.
'FROM gen_site '.
'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
$code_alpha_site_principal = $db->getOne($requete);
if (DB::isError($code_alpha_site_principal)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete));
}
// Nous vérifions que le site n'a pas le code alphanum correspondant au site par défaut d'administration (admin).
if ($code_alpha_site_principal == GEN_SITE_DEFAUT) {
$message = '<p class="pap_erreur">Si vous voulez vraiment supprimer le site d\'administration par défaut de '.
'Papyrus, veuillez commencer par changer la valeur de son code alphanumérique. Vous pourrez '.
'ensuite le supprimer via cette interface.</p>';
return $message;
}
// Recherche des différents sites liés à celui que l'on veut détruire
// Cela comprend le site à détruire lui méme car il posséde la relations
// sur lui meme "site principale".
$requete = 'SELECT gs_id_site '.
'FROM gen_site, gen_site_relation '.
'WHERE gsr_id_site_01 = '.$aso_valeurs['form_sites_id_site'].' '.
'AND gsr_id_site_02 = gs_id_site ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
// Requete de suppression des sites liés dans gen_site
$requete_supr_site = 'DELETE FROM gen_site '.
'WHERE gs_id_site = '.$ligne->gs_id_site;
$resultat_supr_site = $db->query($requete_supr_site);
if (DB::isError($resultat_supr_site)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site->getMessage(), $requete_supr_site));
}
// Requete de suppression des relations des sites à détruire
$requete_supr_site_relation = 'DELETE FROM gen_site_relation '.
'WHERE gsr_id_site_01 = '.$ligne->gs_id_site;
$resultat_supr_site_relation = $db->query($requete_supr_site_relation);
if (DB::isError($resultat_supr_site_relation)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site_relation->getMessage(), $requete_supr_site_relation));
}
// Recherche des différents menus liés au site à détruire
$requete_menu = 'SELECT gm_id_menu '.
'FROM gen_menu '.
'WHERE gm_ce_site = '.$ligne->gs_id_site;
$resultat_menu = $db->query($requete_menu) ;
if (DB::isError($resultat_menu)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete_menu));
}
while ($ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
// Requete de suppression des des menus
$requete_supr_menu = 'DELETE FROM gen_menu '.
'WHERE gm_id_menu = '.$ligne_menu->gm_id_menu;
$resultat_supr_menu = $db->query($requete_supr_menu);
if (DB::isError($resultat_supr_menu)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu->getMessage(), $requete_supr_menu));
}
// Requete de suppression des relations des menus
$requete_supr_menu_relation = 'DELETE FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$ligne_menu->gm_id_menu;
$resultat_supr_menu_relation = $db->query($requete_supr_menu_relation);
if (DB::isError($resultat_supr_menu_relation)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_relation->getMessage(), $requete_supr_menu_relation));
}
// Requete de suppression des contenus des menus
$requete_supr_menu_contenu = 'DELETE FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$ligne_menu->gm_id_menu;
$resultat_supr_menu_contenu = $db->query($requete_supr_menu_contenu);
if (DB::isError($resultat_supr_menu_contenu)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_contenu->getMessage(), $requete_supr_menu_contenu));
}
// Requete de suppression des ulr alternatives des menus
$requete_supr_menu_url_alt = 'DELETE FROM gen_menu_url_alternative '.
'WHERE gmua_ce_menu = '.$ligne_menu->gm_id_menu;
$resultat_supr_menu_url_alt = $db->query($requete_supr_menu_url_alt);
if (DB::isError($resultat_supr_menu_url_alt)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_url_alt->getMessage(), $requete_supr_menu_url_alt));
}
}
$resultat_menu->free();
}
$resultat->free();
// Suppression des répertoires du site
if (!GEN_FTP_UTILISE) {
$chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal;
$resultat = supprimerDossier($chemin_repertoire, GEN_SEP);
if (!$resultat) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire.<br />'.
'Répertoire : '. $chemin_repertoire .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
} else {
// Création d'une connection ftp avec Net_FTP de PEAR
// voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
// création de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// création de la connexion
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// identification
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
// Gestion des erreurs ftp
if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /><p>';
return $message;
}
// Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP
error_reporting(E_PARSE);
$chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal.'/';
if ($code_alpha_site_principal!='') {
$resultat = $objet_pear_ftp->rm($chemin_repertoire, true);
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire par ftp.<br />'.
'Erreur ftp : '.$resultat->getMessage().'<br />'.
'Répertoire : '. $chemin_repertoire .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
}
$objet_pear_ftp->disconnect();
// Retour au niveau d'erreur définit dans le fichier de config de Papyrus
error_reporting(GEN_DEBOGAGE_NIVEAU);
}
$message = '<p class="pap_info">Succés de la suppression du site.</p>';
return $message;
}
 
 
function ADMIN_verifier_traduction_possible(&$db, $aso_valeurs) {
// Traduction d'un site principal uniquement :
$requete = 'SELECT gsr_id_site_01, gs_ce_i18n '.
'FROM gen_site_relation, gen_site '.
'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
'AND gs_id_site = gsr_id_site_01 '.
'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 ) {
$site_id = $aso_valeurs['form_sites_id_site'];
}
else {
$ligne_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$site_id = $ligne_site->gsr_id_site_01;
}
$requete = 'SELECT distinct gs_ce_i18n '.
'FROM gen_site_relation, gen_site '.
'WHERE gsr_id_site_01 = ' . $site_id .' '.
'AND gs_id_site = gsr_id_site_02 '.
'AND gsr_id_valeur =1 '; // 1 = "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('".$ligne_site->gs_ce_i18n."')";
}
else {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
$end="'".$ligne->gs_ce_i18n."'";
}
$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
}
$resultat->free();
 
$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 site </p>';
}
return $message;
}
// +- Fin du code source --------------------------------------------------------------------------------+
/*
* $Log: not supported by cvs2svn $
* Revision 1.31 2006/09/12 09:54:02 ddelon
* Affichage des identifications disponibles lors de la création d'un site. Un bug faisait que l'affichage de l'identification par défaut ne fonctionnait plus en creation.
*
* Revision 1.30 2006/07/19 13:57:35 ddelon
* Bug suppression de site
*
* Revision 1.29 2006/03/23 20:24:58 ddelon
* *** empty log message ***
*
* Revision 1.28 2006/03/15 23:44:19 ddelon
* Gestion site
*
* Revision 1.27 2006/03/15 23:35:25 ddelon
* Gestion site
*
* Revision 1.26 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.25.2.2 2006/02/28 14:02:10 ddelon
* Finition multilinguisme
*
* Revision 1.25.2.1 2006/01/19 21:26:20 ddelon
* Multilinguisme site + bug ftp
*
* Revision 1.25 2005/10/17 13:48:59 jp_milcent
* Ajout d'un espace après le texte "Dernière modification par".
*
* Revision 1.24 2005/09/23 14:32:54 florian
* compatibilité XHTML + correction interface
*
* Revision 1.23 2005/09/20 17:01:22 ddelon
* php5 et bugs divers
*
* Revision 1.22 2005/05/27 16:06:16 jpm
* Gestion des infos sur l'admin modifiant les infos.
*
* Revision 1.21 2005/04/08 13:29:04 jpm
* Utiliation de références.
* Correction du double &amp; dans les urls du formulaire.
*
* Revision 1.20 2005/03/08 11:17:47 jpm
* Suppression de l'inclusion d'un fichier inutile.
*
* Revision 1.19 2005/02/28 11:07:00 jpm
* Modification des auteurs.
*
* Revision 1.18 2005/02/28 10:59:07 jpm
* Modification des commentaires et copyright.
*
* Revision 1.17 2005/02/17 17:51:11 florian
* Correction bug FTP
*
* Revision 1.16 2005/02/17 16:44:55 florian
* correction du bug sur les sites par défaut
*
* Revision 1.15 2005/01/04 19:52:50 alex
* correction de bug de copie de répertoire récursif de PEAR.
*
* Revision 1.14 2004/12/03 19:22:53 jpm
* Gestion des types de sites externes gérés par Papyrus.
*
* Revision 1.13 2004/12/03 16:37:34 jpm
* Correction d'un bogue qui empécher la mise à jour des url des sites externes.
*
* Revision 1.12 2004/12/01 17:22:58 jpm
* Ajout d'une confirmation javascript pour la suppression d'un site.
*
* Revision 1.11 2004/11/30 16:43:51 jpm
* Correction de bogues.
*
* Revision 1.10 2004/11/29 17:05:28 jpm
* Correction d'un bogue concernat les cases à cocher.
*
* Revision 1.9 2004/11/26 13:13:51 jpm
* Mise en commentaire de variable passée dans un message d'erreur car elles semblent provoquer un bogue et ne sont pas obligatoire.
*
* Revision 1.8 2004/11/03 17:59:59 jpm
* Corrections bogues erreurs variable inconnue.
*
* Revision 1.7 2004/10/26 18:41:28 jpm
* Gestion des sites externes à Papyrus.
*
* Revision 1.6 2004/10/22 17:25:31 jpm
* Changement du nom de la class CSS d'erreur.
*
* Revision 1.5 2004/10/19 15:57:55 jpm
* Amélioration de la gestion des fichiers sur le serveur.
* Ajout d'une contrainte pour éviter la suppression par erreur du site par défaut.
*
* Revision 1.4 2004/10/18 18:27:41 jpm
* Correction problèmes FTP et manipulation de fichiers.
*
* Revision 1.3 2004/09/23 16:51:27 jpm
* Ajout d'informations supplémentaires sur les messages d'erreur.
*
* Revision 1.2 2004/07/06 17:08:01 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.1 2004/06/16 14:28:46 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.20 2004/05/10 14:32:14 jpm
* Changement du titre.
*
* Revision 1.19 2004/05/10 12:23:39 jpm
* Modification formulaire.
*
* Revision 1.18 2004/05/07 16:33:53 jpm
* Amélioration des formulaires.
*
* Revision 1.17 2004/05/07 07:22:51 jpm
* Ajout de la gestion des modification et suppression de site.
* Amélioration de la création des sites.
*
* Revision 1.16 2004/04/30 16:22:53 jpm
* Poursuite de l'administration des sites.
*
* Revision 1.14 2004/04/02 15:58:39 jpm
* Modification fonction liste des projets.
*
* Revision 1.13 2004/04/01 11:21:41 jpm
* Ajout et modification de commentaires pour PhpDocumentor.
*
* Revision 1.12 2004/03/24 20:01:02 jpm
* Traduction, mise en forme, ajout de commentaire pour les fonctions listProjects() et updateProject().
*
* Revision 1.11 2004/03/24 10:06:01 jpm
* Ajout des commentaires d'entête.
* Début mise en conformité avec la convention de codage.
* Début traitement de la fonction listant les projets.
*
*
*/
?>
/branches/livraison_menes/papyrus/applications/admin_site/bibliotheque/adsi_affichage.fonct.php
New file
0,0 → 1,107
<?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: adsi_affichage.fonct.php,v 1.5 2005-02-28 11:07:00 jpm Exp $
/**
* Bibliothèque de fonctions de construction du xhtml de l'application Administrateur de Sites.
*
* Contient un ensemble de fonctions permettant à l'application Administrateur de Sites de généré son xhtml.
*
*@package Admin_site
*@subpackage Fonctions
//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 $Date: 2005-02-28 11:07:00 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** Fonction ADMIN_contruirePage()- Génére le xhtml d'une page de l'application administrateur.
*
* Cette fonction formate de la même façon toutes les pages de l'application Administrateur
* avant de les renvoyer.
*
* @param string le titre du contenu de la page.
* @param string le corps du contenu de la page.
* @param string un message important à destination de l'utilisateur.
* return string le code XHTML à retourner.
*/
function ADMIN_contruirePage($titre, $texte, $message = '')
{
// Page.
$sortie = '';
$sortie .= "\n";
$sortie .= '<!-- Application page -->'."\n";
$sortie .= str_repeat(' ', 12).'<h1>'.$titre.'</h1>'."\n";
if (! empty ($message)) {
$sortie .= $message;
}
$sortie .= $texte."\n";
return $sortie;
}
 
// +- Fin du code source --------------------------------------------------------------------------------+
/*
* $Log: not supported by cvs2svn $
* Revision 1.4 2005/02/28 10:59:07 jpm
* Modification des commentaires et copyright.
*
* Revision 1.3 2005/02/28 10:40:49 jpm
* Suppression d'une fonction inutile.
*
* Revision 1.2 2004/07/06 17:08:01 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.1 2004/06/16 14:23:01 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.6 2004/05/07 16:33:39 jpm
* Modification de commentaires.
*
* Revision 1.5 2004/04/30 16:22:53 jpm
* Poursuite de l'administration des sites.
*
* Revision 1.4 2004/04/02 16:36:35 jpm
* Ajout d'une fonction générant des boutons pour les formulaires.
*
* Revision 1.3 2004/04/01 11:21:41 jpm
* Ajout et modification de commentaires pour PhpDocumentor.
*
* Revision 1.2 2004/03/24 20:02:25 jpm
* Modification de l'indentation du xhtml renvoyé.
*
* Revision 1.1 2004/03/24 10:01:33 jpm
* Changement de nom de la bibliothèque de fonction d'affichage du xhtml.
*
* Revision 1.1 2004/03/24 10:00:11 jpm
* Transfert de la fonction de contruction du xhtml de l'application dans ce fichier.
*
*
*/
/branches/livraison_menes/papyrus/applications/afficheur/configuration/affi_fckconfig.js
New file
0,0 → 1,185
/*
* FCKeditor - The text editor for internet
* Copyright (C) 2003-2005 Frederico Caldeira Knabben
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://www.fckeditor.net/
*
* File Name: fckconfig.js
* Editor configuration settings.
* See the documentation for more info.
*
* File Authors:
* Frederico Caldeira Knabben (fredck@fckeditor.net)
*/
 
FCKConfig.CustomConfigurationsPath = '' ;
 
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
 
FCKConfig.DocType = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' ;
 
FCKConfig.BaseHref = '' ;
 
FCKConfig.FullPage = false ;
 
FCKConfig.Debug = false ;
 
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
 
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
 
// FCKConfig.Plugins.Add( 'placeholder', 'en,it' ) ;
 
FCKConfig.AutoDetectLanguage = true ;
FCKConfig.DefaultLanguage = 'fr' ;
FCKConfig.ContentLangDirection = 'ltr' ;
 
FCKConfig.EnableXHTML = true ; // Unsupported: Do not change.
FCKConfig.EnableSourceXHTML = true ; // Unsupported: Do not change.
 
FCKConfig.ProcessHTMLEntities = false ;
FCKConfig.IncludeLatinEntities = false ;
FCKConfig.IncludeGreekEntities = false ;
 
FCKConfig.FillEmptyBlocks = true ;
 
FCKConfig.FormatSource = true ;
FCKConfig.FormatOutput = true ;
FCKConfig.FormatIndentator = ' ' ;
 
FCKConfig.GeckoUseSPAN = true ;
FCKConfig.StartupFocus = false ;
FCKConfig.ForcePasteAsPlainText = false ;
FCKConfig.ForceSimpleAmpersand = false ;
FCKConfig.TabSpaces = 0 ;
FCKConfig.ShowBorders = true ;
FCKConfig.UseBROnCarriageReturn = false ;
FCKConfig.ToolbarStartExpanded = true ;
FCKConfig.ToolbarCanCollapse = true ;
FCKConfig.IEForceVScroll = false ;
FCKConfig.IgnoreEmptyParagraphValue = true ;
 
FCKConfig.ToolbarSets["Default"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','UniversalKey'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['About']
] ;
 
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
FCKConfig.ToolbarSets["Papyrus"] = [
['Source','Preview','-','Cut','Copy','Paste','PasteText','PasteWord','SelectAll','-','Undo','Redo','Find','Replace'],
['RemoveFormat','Bold','Italic','Underline','StrikeThrough','Subscript','Superscript','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyFull','-','OrderedList','UnorderedList'],
'/',
['Image','Table','Link','Unlink','Rule','SpecialChar','UniversalKey'],
['FontFormat','FontName','FontSize','TextColor'],
['About']
] ;
 
FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
 
FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;
 
FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
FCKConfig.FontFormats = 'p;div;pre;address;h1;h2;h3;h4;h5;h6' ;
 
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ;
FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ;
 
FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/rel/ieSpellSetup211325.exe' ;
 
FCKConfig.MaxUndoLevels = 15 ;
 
FCKConfig.DisableImageHandles = false ;
FCKConfig.DisableTableHandles = false ;
 
FCKConfig.LinkDlgHideTarget = false ;
FCKConfig.LinkDlgHideAdvanced = false ;
 
FCKConfig.ImageDlgHideLink = false ;
FCKConfig.ImageDlgHideAdvanced = false ;
 
FCKConfig.FlashDlgHideAdvanced = false ;
 
FCKConfig.LinkBrowser = true ;
//FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/asp/connector.asp' ;
//FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/asp/connector.asp&ServerPath=/CustomFiles/' ;
// ASP.Net // FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/aspx/connector.aspx' ;
// ColdFusion // FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/cfm/connector.cfm' ;
// Perl // FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/perl/connector.cgi' ;
// PHP //
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/php/connector.php' ;
// PHP - mcpuk
//FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/mcpuk/browser.html?Connector=connectors/php/connector.php' ;
FCKConfig.LinkBrowserWindowWidth = screen.width * 0.7 ; // 70%
FCKConfig.LinkBrowserWindowHeight = screen.height * 0.7 ; // 70%
 
FCKConfig.ImageBrowser = true ;
//FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/asp/connector.asp' ;
// ASP.Net // FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/aspx/connector.aspx' ;
// ColdFusion // FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/cfm/connector.cfm' ;
// Perl // FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/perl/connector.cgi' ;
// PHP //
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/php/connector.php' ;
// PHP - mcpuk
//FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/mcpuk/browser.html?Type=Image&Connector=connectors/php/connector.php' ;
FCKConfig.ImageBrowserWindowWidth = screen.width * 0.7 ; // 70% ;
FCKConfig.ImageBrowserWindowHeight = screen.height * 0.7 ; // 70% ;
 
FCKConfig.FlashBrowser = true ;
//FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/asp/connector.asp' ;
// ASP.Net // FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/aspx/connector.aspx' ;
// ColdFusion // FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/cfm/connector.cfm' ;
// Perl // FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/perl/connector.cgi' ;
// PHP //
FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/php/connector.php' ;
// PHP - mcpuk
// FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/mcpuk/browser.html?Type=Flash&Connector=connectors/php/connector.php' ;
FCKConfig.FlashBrowserWindowWidth = screen.width * 0.7 ; //70% ;
FCKConfig.FlashBrowserWindowHeight = screen.height * 0.7 ; //70% ;
 
FCKConfig.LinkUpload = true ;
//FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/asp/upload.asp' ;
// PHP //
FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/php/upload.php' ;
FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
FCKConfig.LinkUploadDeniedExtensions = ".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$" ; // empty for no one
 
FCKConfig.ImageUpload = true ;
//FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/asp/upload.asp?Type=Image' ;
// PHP //
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/php/upload.php?Type=Image' ;
FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png)$" ; // empty for all
FCKConfig.ImageUploadDeniedExtensions = "" ; // empty for no one
 
FCKConfig.FlashUpload = true ;
//FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/asp/upload.asp?Type=Flash' ;
// PHP //
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/php/upload.php?Type=Flash' ;
FCKConfig.FlashUploadAllowedExtensions = ".(swf|fla)$" ; // empty for all
FCKConfig.FlashUploadDeniedExtensions = "" ; // empty for no one
 
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 240 ;
 
if( window.console ) window.console.log( 'Config is loaded!' ) ; // @Packager.Compactor.RemoveLine
/branches/livraison_menes/papyrus/applications/afficheur/configuration/affi_configuration.inc.php
New file
0,0 → 1,148
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.3 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: affi_configuration.inc.php,v 1.13 2006-04-28 12:41:49 florian Exp $
/**
* Application réalisant l'affichage du contenu stocké dans Papyrus.
*
* Les constantes et variables de configuration de l'application Afficheur.
*
*@package Afficheur
*@subpackage Configuration
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.13 $ $Date: 2006-04-28 12:41:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Chemin des fichiers à inclure.
/** Chemin vers la bibliothèque PEAR.*/
define('AFFI_CHEMIN_BIBLIOTHEQUE_PEAR', '');
/** Chemin vers la bibliothèque API.*/
define('AFFI_CHEMIN_BIBLIOTHEQUE_API', 'api'.GEN_SEP);
/** Chemin vers la bibliothèque API : fckeditor.*/
define('AFFI_CHEMIN_FCKEDITOR', AFFI_CHEMIN_BIBLIOTHEQUE_API.'fckeditor'.GEN_SEP);
/** Chemin vers l'application Admin de l'afficheur de Papyrus.*/
define('AFFI_CHEMIN_APPLICATION', GEN_CHEMIN_APPLICATION.'afficheur'.GEN_SEP);
/** Chemin vers le dossier des styles de l'application.*/
define('AFFI_CHEMIN_STYLE', AFFI_CHEMIN_APPLICATION.'presentations'.GEN_SEP.'styles'.GEN_SEP);
/** Chaine à utiliser pour l'URL de la règle Freelink.*/
define('AFFI_URL_PAPYRUS', PAP_URL.'?menu=%s');
 
/** Utilisation de fckeditor (true).*/
$GLOBALS['_AFFI_']['fckeditor']['utilisation'] = true;
/** Hauteur de fckeditor.*/
$GLOBALS['_AFFI_']['fckeditor']['hauteur'] = '400';
/** Type de barre d'outil de fckeditor.*/
$GLOBALS['_AFFI_']['fckeditor']['barre'] = 'Papyrus';
/** Langue de fckeditor.*/
$GLOBALS['_AFFI_']['fckeditor']['langue'] = $GLOBALS['_GEN_commun']['i18n'];
/** Fichier de config personnalisé de fckeditor.*/
$base_url=parse_url(PAP_URL);
$dirname_base_url=dirname($base_url['path']);
$GLOBALS['_AFFI_']['fckeditor']['CustomConfigurationsPath'] =$dirname_base_url.GEN_SEP.AFFI_CHEMIN_APPLICATION."configuration".GEN_SEP."affi_fckconfig.js";
// Suppression double slash pour site interdisant ce type d'url (a confirmer ...)
// Probleme également avec des sous-domaines (~ree05/papyrus etc.) ....
$GLOBALS['_AFFI_']['fckeditor']['CustomConfigurationsPath'] = str_replace("//", "/", $GLOBALS['_AFFI_']['fckeditor']['CustomConfigurationsPath']);
 
// L'objet PEAR::DB à utiliser pour l'afficheur :
$GLOBALS['_AFFICHEUR']['objet_pear_db'] =& $GLOBALS['_GEN_commun']['pear_db'];
 
// L'identifiant du menu courant :
if (isset($GLOBALS['_GEN_commun']['traduction_info_menu'])) {
$GLOBALS['_AFFICHEUR']['menu_courant_id'] = $GLOBALS['_GEN_commun']['traduction_info_menu']->gm_id_menu;
} else if (isset($GLOBALS['_GEN_commun']['info_menu'])) {
$GLOBALS['_AFFICHEUR']['menu_courant_id'] = $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu;
} else {
$GLOBALS['_AFFICHEUR']['menu_courant_id'] = $GLOBALS['_GEN_commun']['url_menu'];
}
 
// Le jeu de caractère à utiliser pour la page courante :
$GLOBALS['_AFFICHEUR']['jeu_de_caracteres'] = $GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres'];
 
// Les sites correspodant aux liens interwiki:
$GLOBALS['_AFFICHEUR']['interwiki_sites'] =& $GLOBALS['_PAPYRUS_']['interwiki_sites'];
 
// Les sites correspodant à l'action inclure:
$GLOBALS['_AFFICHEUR']['inclure_sites'] =& $GLOBALS['_PAPYRUS_']['inclure_sites'];
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.12 2005/08/25 08:59:12 ddelon
* Integrateur Wikini et administration des Wikini
*
* Revision 1.11 2005/08/18 10:20:04 ddelon
* Integrateur Wikini et Acces PEAR
*
* Revision 1.10 2005/07/21 18:11:43 ddelon
* configuration barre outil fcke
*
* Revision 1.9 2005/07/18 08:53:14 ddelon
* Configuration Fcsk et menage
*
* Revision 1.8 2005/07/15 17:10:08 ddelon
* Configuration Fcsk et menage
*
* Revision 1.7 2005/06/03 18:39:30 jpm
* Ajout de la barre d'outil Papyrus FCKeditor.
*
* Revision 1.6 2005/04/25 13:56:19 jpm
* Ajout de chemin vers les styles.
*
* Revision 1.5 2005/04/21 16:46:21 jpm
* Gestion via Papyrus du XHTML.
*
* Revision 1.4 2005/02/23 18:16:49 jpm
* Changement de l'url de Papyrus pour qu'elle corresponde à l'url courante de Papyrus.
*
* Revision 1.3 2005/02/23 17:41:21 jpm
* Modification de l'initialisation d'une variable.
*
* Revision 1.2 2005/02/22 17:55:38 jpm
* Changement de variable pour la récupération de l'identifiant du menu courant.
*
* Revision 1.1 2004/11/26 13:10:20 jpm
* Utilisation des actions Papyrus et implémentation de la syntaxe Wikini.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/afficheur/afficheur.admin.php
New file
0,0 → 1,342
<?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.20 2006-12-01 11:23:23 ddelon 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.20 $ $Date: 2006-12-01 11:23:23 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | 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/afficheur/configuration/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']);
return $this->sortie_xhtml;
}
function _redigerContenu($db, $url, $adme_site_id, $adme_menu_id, $adme_action) {
$contenu='';
//-------------------------------------------------------------------------------------------------------------------
// Initialisation de variable
$url->addQueryString('adme_site_id', $adme_site_id);
$url->addQueryString('adme_menu_id', $adme_menu_id);
$url->addQueryString('adme_action', $adme_action);
$ligne_dernier_contenu=GEN_rechercheContenu($db,$adme_menu_id,DB_FETCHMODE_ASSOC);
// Hack :
$retour = '<h1>'.'Rédaction'.'</h1>'."\n";
//-------------------------------------------------------------------------------------------------------------------
// Création du formulaire
$form =& new HTML_QuickForm('form_modifier_contenu', 'post', str_replace('&amp;', '&', $url->getUrl()));
$tab_index = 1000;
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<ul>'."\n".'{content}'."\n".'</ul>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li>'."\n".
'{label}'."\n".
'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
//$squelette->setHeaderTemplate('<p>{header}</p>');
//$form->addElement('header', 'Entete', 'REDACTION');.liste_bouton li{display:inline;}
$aso_options = array();
$form->addElement('hidden','gmc_ce_type_contenu',1);
if ($GLOBALS['_AFFI_']['fckeditor']['utilisation']) {
/** Inclusion du fichier de FCKeditor*/
require_once AFFI_CHEMIN_FCKEDITOR.'fckeditor.php';
$fckeditor = new FCKeditor('gmc_contenu');
if ($ligne_dernier_contenu['gmc_contenu']) {
$fckeditor->Value = $ligne_dernier_contenu['gmc_contenu'];
}
else {
if ($contenu) {
$fckeditor->Value = $contenu;
}
else {
$fckeditor->Value = '';
}
}
$fckeditor->Height = $GLOBALS['_AFFI_']['fckeditor']['hauteur'];
$fckeditor->ToolbarSet = $GLOBALS['_AFFI_']['fckeditor']['barre'];
$fckeditor->Config['CustomConfigurationsPath']=$GLOBALS['_AFFI_']['fckeditor']['CustomConfigurationsPath'];
$fckeditor->Config['AutoDetectLanguage'] = false;
$fckeditor->Config['DefaultLanguage'] = $GLOBALS['_AFFI_']['fckeditor']['langue'];
$fckeditor->BasePath = AFFI_CHEMIN_FCKEDITOR;
if ($fckeditor->IsCompatible()) {
$form->addElement('html', '<li>'.$fckeditor->CreateHtml().'</li>');
} else {
$GLOBALS['_AFFI_']['fckeditor']['utilisation'] = false;
}
}
if (!$GLOBALS['_AFFI_']['fckeditor']['utilisation']) {
$id = 'gmc_contenu';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 20, 'cols' => 100);
$label = '<label for="'.$id.'">'.'Contenu : '.'</label>';
$form->addElement('textarea', $id, $label, $aso_attributs);
}
$aso_options = array();
$aso_options[1] = 'Mineure';
$aso_options[2] = 'Majeure';
$id = 'gmc_ce_type_modification';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.'Type de modification : '.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
$id = 'gmc_resume_modification';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.'Resumé modification : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addElement('hidden','gmc_ce_menu',$ligne_dernier_contenu['gmc_ce_menu']);
$form->addElement('hidden','gmc_ce_type_contenu_table',$ligne_dernier_contenu['gmc_ce_type_contenu']);
// .liste_bouton li{display:inline;}
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$form->addElement('html', $liste_bouton_debut);
$form->addElement('submit', 'afficheur_enregistrer_quitter', 'Enregistrer et quitter');
$form->addElement('submit', 'afficheur_enregistrer_rester', 'Enregistrer et rester en édition');
$form->addElement('submit', 'afficheur_annuler', 'Annuler');
$liste_bouton_fin = '</ul>'."\n";
$form->addElement('html', $liste_bouton_fin);
$form->setDefaults($ligne_dernier_contenu);
$retour .= $form->toHTML()."\n";
return $retour;
}
/** Méthode ajouterContenu() - Enregistre les infos du formulaire de saisie d'un menu
*
*
* @return void les données sont enregistrées dans la base de données.
*/
function _ajouterContenu($db, $url, $auth, $adme_menu_id, $tab_valeur)
{
//-------------------------------------------------------------------------------------------------------------------
// Récupération des informations du contenu concerné.
$ligne_menu = GEN_lireInfoMenu($db, $adme_menu_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° : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
if ((isset($tab_valeur['gmc_ce_menu']) && $tab_valeur['gmc_ce_menu']!='') && (isset($tab_valeur['gmc_ce_type_contenu_table']) && $tab_valeur['gmc_ce_type_contenu_table']!='')) {
//-------------------------------------------------------------------------------------------------------------------
// Mise à jour de l'ancien contenu du menu
$requete = 'UPDATE gen_menu_contenu SET '.
'gmc_bool_dernier = 0 '.
'WHERE gmc_ce_menu = '.$tab_valeur['gmc_ce_menu'] . ' '.
'AND gmc_ce_type_contenu = '. $tab_valeur['gmc_ce_type_contenu_table']. ' ';
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
}
//-------------------------------------------------------------------------------------------------------------------
// Obtention d'un nouvel identifiant de contenu
$nouveau_id_contenu = SQL_obtenirNouveauId($db, 'gen_menu_contenu', 'gmc_id_contenu');
//-------------------------------------------------------------------------------------------------------------------
// Ajout du nouveau contenu pour ce menu
$requete = 'INSERT INTO gen_menu_contenu SET '.
'gmc_id_contenu = '.$nouveau_id_contenu.', '.
'gmc_ce_admin = '.$auth->getAuthData('ga_id_administrateur').', '.
'gmc_ce_menu = '.$adme_menu_id.', '.
'gmc_ce_type_contenu = '.$tab_valeur['gmc_ce_type_contenu'].', '.
'gmc_contenu = "'.$tab_valeur['gmc_contenu'].'", '.
'gmc_ce_type_modification = '.$tab_valeur['gmc_ce_type_modification'].', '.
'gmc_resume_modification = "'.$tab_valeur['gmc_resume_modification'].'", '.
'gmc_date_modification = "'.date('Y-m-d H:i:s').'", '.
'gmc_bool_dernier = 1';
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
}
}// Fin de la classe
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/afficheur/presentations/styles/afficheur.css
New file
0,0 → 1,50
/* vim: set expandtab tabstop=4 shiftwidth=4: */
/* ========================================================================================================
| Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
+---------------------------------------------------------------------------------------------------------+
| This file is part of Papyrus. |
| |
| 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: afficheur.css,v 1.1 2005-04-25 13:56:08 jpm Exp $
===========================================================================================================
DESCRIPTION : Fichier de style de l'application d'administration de l'affichage.
===========================================================================================================
Auteur original : Jean-Pascal MILCENT <jpm@tela-botanica.org>
 
Autres auteurs :
 
===========================================================================================================
AUTEUR : $Author: jpm $
VERSION : $Revision: 1.1 $ $Date: 2005-04-25 13:56:08 $
======================================================================================================= */
 
/* +----------------------------------------------------------------------------------------------------+
| STRUCTURE |
+----------------------------------------------------------------------------------------------------+*/
#gmc_contenu {
width: 100%;
min-height:400px;
}
 
/* +----------------------------------------------------------------------------------------------------+
| DESIGN |
+----------------------------------------------------------------------------------------------------+*/
 
/* +--Fin des CSS ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
*
* +-- Fin des CSS ----------------------------------------------------------------------------------------+
*/
/branches/livraison_menes/papyrus/applications/afficheur/afficheur.php
New file
0,0 → 1,386
<?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.13 2006-11-21 18:52:20 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.13 $ $Date: 2006-11-21 18:52:20 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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');
}
 
//----------------------------------------------------------------------------
// 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.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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/installateur/installateur.php
New file
0,0 → 1,217
<?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: installateur.php,v 1.15 2006-10-16 15:49:07 ddelon Exp $
/**
* Application Installateur de Papyrus.
*
* 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
'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.15 $ $Date: 2006-10-16 15:49:07 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | 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...
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.*/
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.*/
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.*/
define('INSTAL_VERSION_NOUVELLE_NOM', 'PAP_VERSION');
/** 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);
} else {
define('INSTAL_VERSION_ANCIENNE', '');
}
/** Nombre d'étapes totale de l'installation.*/
define('INSTAL_NBRE_ETAPE', 3);
 
// Fichiers à inclure
require_once INSTAL_DOSSIER_BIBLIO.'instal_installation.fonct.php';
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
function afficherContenuCorps()
{
// 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";
$sortie .= '<html xmlns="http://www.w3.org/1999/xhtml" lang="fr-FR" xml:lang="fr-FR">'."\n";
$sortie .= ' <head>'."\n";
$sortie .= ' <link rel="stylesheet" type="text/css" media="screen" title="Installateur" href="papyrus/applications/installateur/presentations/styles/installateur.css" />'."\n";
$sortie .= ' <title>Installation de Papyrus</title>'."\n";
$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 .= ' <img src="papyrus/applications/installateur/presentations/images/Logo_papyrus.jpg" alt="Logo Papyrus" />'."\n";
$sortie .= ' </div>'."\n";
$sortie .= ' <div id="site_nom">'."\n";
$sortie .= ' <h1>Installation de Papyrus</h1>'."\n";
$sortie .= ' </div>'."\n";
$sortie .= ' </div>'."\n";
$sortie .= ' <div id="zone_contenu">'."\n";
// Message situation de l'installation
if (defined('PAP_VERSION')) {
$sortie .= '<p class="zone_info">Votre syst&egrave;me Papyrus existant a &eacute;t&eacute; reconnu comme &eacute;tant la version '.
INSTAL_VERSION_ANCIENNE.'.<br />'.
'Vous &ecirc;tes sur le point de <strong>mettre &agrave; jour</strong> Papyrus pour la version '.
INSTAL_VERSION_NOUVELLE.'.<br />'.
'Veuillez revoir vos informations de configuration ci-dessous.</p><br style="clear:both;">'."\n";
} else {
$sortie .= '<p class="zone_info">Vous &ecirc;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') {
include_once GEN_CHEMIN_APPLICATION.'installateur/instal_base_de_donnees.inc.php';
} 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";
$sortie .= ' <div id="copyright">'."\n";
$sortie .= ' <a href="http://frenchmozilla.org"><img src="papyrus/applications/installateur/presentations/images/logo-firefox.png" alt="Logo Firefox" /></a>&nbsp;'."\n";
$sortie .= ' <a href="http://validator.w3.org/check?uri=referer"><img src="papyrus/applications/installateur/presentations/images/logo-xhtml11.png" alt="Logo XHTML" /></a>&nbsp;'."\n";
$sortie .= ' <a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="papyrus/applications/installateur/presentations/images/logo-css.png" alt="Logo CSS" /></a><br />'."\n";
$sortie .= ' &copy;&nbsp;<a href="http://www.tela-botanica.org/">Tela Botanica</a> et <a href="http://www.ecole-et-nature.org/">Réseau Ecole et Nature</a> / 2004-2006<br />'."\n";
$sortie .= ' Site utilisant <a href="http://outils-reseaux.org/wiki_papyrus">Papyrus, le CMS coop&eacute;ratif</a>'."\n";
$sortie .= ' </div>'."\n";
$sortie .= ' </div>'."\n";
$sortie .= ' </div>'."\n";
$sortie .= ' </body>'."\n";
$sortie .= '</html>';
return $sortie;
}
 
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* 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.
*
* 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.
*
* Revision 1.7 2004/10/22 17:23:04 jpm
* Simplification del'installation de Papyrus.
*
* Revision 1.6 2004/10/19 17:01:12 jpm
* Correction bogues.
*
* Revision 1.5 2004/10/19 16:47:28 jpm
* 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 des constantes FTP.
*
* Revision 1.3 2004/10/18 09:12:09 jpm
* Changement de nom d'un fichier.
*
* Revision 1.2 2004/10/15 18:28:59 jpm
* Début appli installateur de Papyrus.
*
* Revision 1.1 2004/06/16 14:33:13 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.6 2004/04/22 08:25:48 jpm
* Transformation de $GS_GLOBAL en $_GEN_commun.
*
* Revision 1.5 2004/04/08 13:21:05 jpm
* 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 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.
*
* 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 Génésia.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/installateur/presentations/styles/installateur.old.css
New file
0,0 → 1,38
* {padding: 0;margin: 0;}
body {font-family: Tahoma, Arial, Helvetica, sans-serif;text-align: center;color: #566047;line-height: 19px;
background: #FBFBE5 url(../images/grass.png) right bottom fixed no-repeat;}
a, a:link, a:visited {color: #566047;text-decoration: underline;background: transparent;}
a:hover {color: #6878C6;background: transparent;text-decoration: none;}
a:active, a:focus {color: #566047;background-color: #FBFBE5;}
p {line-height: 19px;}
acronym {font-weight: bold;text-decoration: none;border-bottom: none;}
#container {margin: auto;text-align: left;width: 760px;border-left:solid 2px #BCBCAB;border-right:solid 2px #BCBCAB;}
#zone_bandeau {color: #566047;background: #E9EBD3;width: 760px;height: 70px;margin:5px auto;
border-top:solid 3px #838E6C;border-bottom:solid 3px #838E6C;}
#logo {float : left;margin: 3px 0 0 10px;}
#site_nom {width:300px;text-align: center;margin:20px auto;background: transparent;color: #566047;}
#zone_contenu {margin: 6px;font-size:70%;}
#zone_pied {clear:both;text-align:center;background: #E9EBD3;color: #566047;width: 760px;height: 40px;margin:5px auto;
border-top:solid 3px #838E6C;border-bottom:solid 3px #838E6C;font-size:70%;padding-top:5px;}
h1, h2, h3 {margin-bottom: 10px;height: 22px;border-bottom: 1px solid #7D8965;}
h1 {font-size: 1.5em;}
h2 {font-size: 1.3em;}
h3 {font-size: 1.2em;}
li {text-align:left;margin-left:20px;}
table {border-collapse: collapse;border-spacing: 0;}
th, td {text-align:left;padding:2px;border: solid 1px }
tt {font-size:12px;}
img {border:0;}
fieldset {border:solid 1px #7D8965;padding:3px;margin:2px;}
legend {font-weight:bold;}
input:hover {background:#7D8965;color: #FBFBE5;}
input, select, textarea {font-family: Tahoma, Arial, Helvetica, sans-serif;font-size:11px;color: #566047;background:#FDFDF3;border:solid 1px #7D8965;}
/* Mise en ligne des formulaires */
form li {margin:0;padding:0;display: block;}
form ul {margin:0;padding:0;list-style-type: none;}
form label {clear:both;float: left;width:250px;font-weight:bold;}
.liste_bouton li {display:inline;}
.erreur {color:red;}
.etape_info {margin:10px auto;padding 5px;text-align:center;width:90%;border: 1px solid green;color:green;}
.ok {text-align:center;border: 1px solid green;color:green;}
.failed {text-align:center;border: 1px solid red;color:red;}
/branches/livraison_menes/papyrus/applications/installateur/presentations/styles/installateur.css
New file
0,0 → 1,101
/*****************Proprietes generales******************************************/
* {margin: 0; padding: 0;text-indent:0;}
body {background:#FFF;font:12px Myriad, Arial, sans-serif;color:#000;text-align:center;}
hr {margin:2px; width:100%; color: #7F8343; background-color: #7F8343; height: 1px;}
a {margin:0;padding:0;text-decoration: underline;color: #000;}
a:hover {text-decoration: underline;color:#C3D759;}
table {width:480px;margin:0 auto; border: 1px solid #006495;border-spacing:0;border-collapse:collapse;}
.table_cadre {width:480px;margin:2px;}
th {font-size:11px;padding:2px;text-align:center;border: 1px solid #006495;font-weight: normal;background:#3082AA;height:23px;}
td {font-size:11px;text-align:center;border: 1px solid #006495;background:#FFF;height:23px;}
td:hover {background: #C3D759;}
.code { background: #FFFFFF; border: solid #888888 2px; font-family: 'Courier New', Courier; width: 90%; height: 350px; overflow: scroll; padding: 3px; }
.navi {padding:0;margin:0;text-align:center;}
.other_month {color:#AAA;}
.current_day {background: #FBB63C; color: #FFF;}
.label_inscription {margin: 2px;float:left; clear:both; width:170px; text-align:right; }
.symbole_obligatoire {color:red;}
.input_inscription {float:left; width:180px;}
.input_inscription input, .input_inscription select {margin: 2px;border: 1px solid #000;font:12px Myriad, Arial, sans-serif; }
/*****************Titres********************************************************/
h1, h2, h3, h4, h5, h6 {font-family: Myriad, Arial, sans-serif;text-align:left;margin:4px 0;}
h1 {font-size:22px; color: #BBD049;border-bottom: solid #7FB1CA 1px ;}
h2 {font-size:18px; color: #A81106;}
h3 {font-size:17px; color: #000;}
h4 {font-size:16px; color: #FFF;background: #006495;border: 1px solid #C3D759;;-moz-border-radius:5px}
h5 {font-size:16px; color: #006495;border-bottom: solid #006495 1px;}
h6 {font-size:32px; color: #006495;}
/*****************Boutons et formulaires****************************************/
a img {border: none;}
form li {list-style-type:none;color:#000;}
form table, form td, form th {border:0}
form td:hover {background: transparent;}
/*****************Listes********************************************************/
ul {padding:0;margin: 0 0 0 10px;}
li {padding:0;margin: 2px 0 0 0;color:#000;}
/*--------------------------------------------------------------------------------------------------------------*/
/* Structure de la page */
#page {position: relative;top:3px;width: 760px; text-align: left;margin: 0 auto;}
.page {clear:both;background-color:transparent;text-align: justify;line-height: 22px;}
#zone_bandeau {height: 130px;background: url(../images/Bandeau_haut.png) no-repeat top left;}
#logo {position: absolute;top: 10px;left: 30px;}
#site_nom {position: absolute;top: 40px;left: 210px;width:500px;}
#site_nom h1 {margin: 0 auto;width:500px;font-size: 30px; font-family: Georgia, serif;color:#3082AA;border:0;}
#site_nom h6 { margin: 0 auto;width:500px;}
#vous_etes_ici {clear:both;float:left;width:762px;margin: 0 0 10px 20px;}
#zone_contenu {float:left; margin : 10px auto; padding : 10px ;width: 740px;_width: 760px;border: 1px solid #3082AA;-moz-border-radius:10px;}
#zone_bandeau_menu {clear: both;float:left;width:178px;border: 1px solid #7FB1CA;background: #7FB1CA;-moz-border-radius:10px;margin : 5px; padding:0;}
#zone_bandeau_menu h1 {width:90%;padding:0;margin:10px auto 6px auto;font:13px Myriad, Arial, sans-serif;font-weight: bold;text-align:center;color:#A01B12;background:transparent;border-bottom:1px solid #FFF;}
#menu ul {display: block;margin:3px 3px 3px 20px;padding:0;}
#menu li, #menu li li {margin:2px 0;padding:0;}
#menu li ul {margin:4px 0 2px 2px;padding:0;}
.calendar {width:160px;margin:0 auto;}
#menu li a {display: block;padding: 3px; margin: 0 3px 0 3px; width: 145px; text-decoration: none; color: #FFF; background: transparent ;border: 1px solid #7FB1CA; height:17px;text-align:left;}
#menu li a:hover {color: #000;background: #C3D759;width: 145px;border: 1px solid #006495;}
#menus_communs {float:right;text-align : right;width:600px;margin:10px 10px 0 0;}
#menus_communs li {padding: 0 1px;list-style-type:none; display: inline;background: transparent;}
#menus_communs a:hover {color: #7FB1CA;}
#zone_menu {float:left;margin: 0 20px 10px 20px;padding:1px;height:26px;background: #BBD049;}
#zone_menu ul {margin:0;padding:0;color: #000;}
#zone_menu li {list-style-type:none;float: left;margin:1px;padding:0;width: 135px;background: #3082AA;height:23px;}
#zone_menu li:hover {background: #C3D759;}
#zone_menu li a {display: block;padding: 3px; width: 135px; color : #FFF;text-decoration: none; background: transparent; height:17px;text-align:center;}
#zone_menu li a:hover {color: #000;}
#zone_onglets {float : right;margin : 0 20px -1px 0 ;text-align:left;font-weight:bold;}
#zone_onglets ul { margin:0; padding:0; list-style:none;}
#zone_onglets li { background:url(../images/Boutons/right_both_green.png) no-repeat right top; float:left; margin:0; padding:0; color: #006495;}
#zone_onglets a {float:left; display:block; color: #006495; font-size:12px; background:url(../images/Boutons/left_both_green.png) no-repeat left top; width:.1em; white-space:nowrap;/*2 lignes ajoutees pour compatibilite IE : extension de la zone cliquable a l'ensemble de zone_contenu_haut*/ padding:5px 15px 4px; text-decoration:none;}
/* On retablit le float a sa valeur correct mais le hack de l'antislash commente cache cette regle a IE5-Mac \*/ #zone_onglets a {float:none;} /* End IE5-Mac hack */
#zone_onglets > ul a { width:auto;} /*propriete ajoutee pour contredire la ligne speciale IE (ci dessus) pour les autres navigateurs*/
#zone_onglets li:hover { background-position:100% -150px;}
#zone_onglets li:hover a { background-position:0% -150px;}
#zone_onglets .inactif { border-bottom:0px solid; font-weight:normal;}
#zone_onglets .actif, #zone_onglets .actif { position:relative; background-position:100% -150px; padding-bottom:2px; font-weight:bold;}
#zone_onglets .actif a, #zone_onglets .actif a { position:relative; background-position:0% -150px; padding-bottom:3px;}
#zone_contenu_tete {float :left; width : 530px; padding : 10px 0 0 20px;}
.zone_alert, .pap_erreur {float:left;clear:both;text-indent : 0; text-align: left;min-height:56px;width : 460px; margin : 5px 0 5px 0; border: 1px solid #A81106; background: #FFF url(../images/Main_Erreur.png) no-repeat top left;padding: 5px 0px 5px 76px;-moz-border-radius:12px;}
.zone_info, .etape_info {float:left;clear:both;-moz-border-radius:12px; text-indent : 0; text-align: left;min-height:56px;width :460px; margin : 0 15px 15px 0; border: 1px solid #D0DF7F; background: #FFF url(../images/Infos.png) no-repeat top left;padding: 5px 0px 5px 76px;}
#zone_contenu_corps {text-indent : 15px; float: left; width:521px; margin : 20px 0px 10px 20px;padding : 0 0px 10px 0; text-align: justify;}
.spacer {width:742px;clear: both;}
#zone_pied {margin: 3px 0 10px 0;padding:0;float:left;width: 762px;height : 65px;background: url(../images/Bandeau_bas.png) repeat-x top left;}
#zone_pied a {font: 12px arial, sans-serif; color: #006495;}
#zone_pied a:hover {text-decoration: none;font: 12px arial, sans-serif; color: #FFF;}
/*-------------------------------APPLETTES--------------------------------------*/
#moteur_recherche {clear:both;float:right;margin:0 5px 0 0;padding:0;width:180px;height: 33px;text-align:right;}
#moteur_recherche legend {display:none;}
#moteur_recherche fieldset {margin:0;padding:0;border: 0;}
#moteur_recherche label {display:none;}
#more_motif {padding:2px;width:140px;border:#000 1px groove;font: 12px arial, sans-serif; color: #000;}
#sesi_ok, #more_ok {border:#B77744 1px solid;font: 12px arial, sans-serif; color: #FFF;padding:0;margin:0;background: #B77744;text-transform: uppercase;}
#selecteur_monde {clear:right;float:right;margin:25px 5px 0 0;padding:0;width: 180px;height: 33px;text-align:right;}
#selecteur_monde select {font: 12px arial, sans-serif;width:140px;border:#000 1px groove;}
#selecteur_monde legend { display: none;}
#selecteur_monde fieldset { border: 0; margin: 0; padding: 0;}
#copyright {margin:15px 0 10px 10px;padding : 0;float:left;width: 400px;}
#copyright a {color: #006495;;}
#copyright a:hover {color: #222;}
#identification {width:170px;margin:0 auto;}
#identification fieldset {border: 1px #FFF;margin: 0 auto;padding: 5px;background:#FFF;-moz-border-radius:20px;}
#identification legend {display: none;}
#identification label {display: block;}
#identification input {border:1px solid #000;}
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/logo-xhtml11.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/logo-xhtml11.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_modifier.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_modifier.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_fermer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_fermer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_administrer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_administrer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_monter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_monter.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_ouvrir.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_ouvrir.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_supprimer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_supprimer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_augmenter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_augmenter.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_ajouter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_ajouter.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_descendre.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_descendre.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_diminuer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/navigation/adme_diminuer.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Calendrier-coin-jaune.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Calendrier-coin-jaune.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Infos.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Infos.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/picto.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/picto.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Logo_papyrus.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Logo_papyrus.jpg
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Bandeau_haut.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Bandeau_haut.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/logo-firefox.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/logo-firefox.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Bandeau_bas.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Bandeau_bas.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_gauche.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_gauche.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_hover_gauche.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_hover_gauche.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_droit.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_droit.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/left_both_green.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/left_both_green.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_hover_droit.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_hover_droit.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_milieu.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_milieu.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/right_both_green.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/right_both_green.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_hover_milieu.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Boutons/onglet_contenu_hover_milieu.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/logo-css.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/logo-css.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Agraphe.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Agraphe.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Main_Erreur.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_menes/papyrus/applications/installateur/presentations/images/Main_Erreur.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_menes/papyrus/applications/installateur/instal_fichier.inc.php
New file
0,0 → 1,428
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (c) 2002, Hendrik Mans <hendrik@mans.de> |
// | Copyright 2002, 2003 David DELON |
// | Copyright 2002 Patrick PAUL |
// | Copyright 2003 Jean-Pascal MILCENT |
// | All rights reserved. |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | 1. Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | 2. 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. |
// | 3. The name of the author may not be used to endorse or promote products |
// | derived from this software without specific prior written permission. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: instal_fichier.inc.php,v 1.25 2006-12-01 15:43:01 alexandre_tb Exp $
/**
* Page de création des fichiers nécessaire à l'installation de Papyrus.
*
* Page permettant de créer le fichier de configuration de Papyrus.
*
*@package Installateur
//Auteur original :
*@author Hendrik MANS <hendrik@mans.de>
//Autres auteurs :
*@author David DELON
*@author Patrick PAUL
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.25 $ $Date: 2006-12-01 15:43:01 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Numéro de l'étape d'installation :
$num_etape = 3;
 
// Initialisation du tableau contenant les valeurs de configuration de la base de données
$tableau = array( 'PAP_FTP_SERVEUR' => '', 'PAP_FTP_PORT' => '', 'PAP_FTP_UTILISATEUR' => '',
'PAP_FTP_MOT_DE_PASSE' => '', 'PAP_FTP_RACINE' => '');
foreach ($tableau as $cle => $val) {
if (!empty($_POST['fichier'][$cle])) {
$fichier[$cle] = $_POST['fichier'][$cle];
} else if (defined($cle)) {
$fichier[$cle] = constant($cle);
} else {
if ($cle == 'PAP_FTP_SERVEUR') {
$fichier[$cle] = $_SERVER['HTTP_HOST'];
} else if ($cle == 'PAP_FTP_PORT') {
$fichier[$cle] = 21;
} else {
$fichier[$cle] = '';
}
}
}
 
// Récupération des paramêtres de configuration du formulaire précédent
if (isset($_POST['pref_serial'])) {
$pref = unserialize(stripslashes($_POST['pref_serial']));
}
if (isset($_POST['bdd'])) {
$bdd = $_POST['bdd'];
} else if (isset($_POST['bdd_serial'])) {
$bdd = unserialize(stripslashes($_POST['bdd_serial']));
}
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Affichage d'informations...
$sortie .= '<br /><h1>Etape n°'.$num_etape.' sur '.INSTAL_NBRE_ETAPE.'.</h1>'."\n";
 
// Correction éventuelle des informations saisies par l'utilisateur
if (ereg('^[\/\\]', $fichier['PAP_FTP_RACINE']) == false) {
// le chemin FTP ne doit pas commencer par un slash, nous le supprimons
$fichier['PAP_FTP_RACINE'] = GEN_SEP.$fichier['PAP_FTP_RACINE'];
}
 
// Nous vérifions si nous sommes en phase de test du formulaire de config de l'écriture de fichier
$erreur = 0;
$sortie_verif = '';
if ($_GET['installation'] == 'verif_fichier') {
// Test de la configuration du FTP
$sortie_verif .= ' <br /><h2>Test de la connexion FTP</h2>'."\n";
$erreur = testerConfig($sortie_verif, 'Test connexion FTP ...', $ftp = @ftp_connect($fichier['PAP_FTP_SERVEUR'], $fichier['PAP_FTP_PORT']), '', 1, $erreur);
$erreur = testerConfig($sortie_verif, 'Test identification sur le serveur FTP ...', @ftp_login($ftp, $fichier['PAP_FTP_UTILISATEUR'],
$fichier['PAP_FTP_MOT_DE_PASSE']), 'Les paramêtres FTP saisies ne permettent pas l\'identification !', 1, $erreur);
$sortie_verif .= '<br />'."\n";
$configCode = "<?php\n// pap_config.inc.php construit le ".strftime("%c")."\n// ne changez pas la version de Papyrus manuellement!\n\n";
$entries[] = 'define(\''.INSTAL_VERSION_NOUVELLE_NOM.'\',\''.INSTAL_VERSION_NOUVELLE.'\');'."\n";
foreach ($bdd as $cle => $val) {
$entries[] = 'define(\''.$cle.'\',\''.$val.'\');'."\n";
}
$entries[] = "define('PAP_DSN', 'mysql://'.PAP_BDD_UTILISATEUR.':'.PAP_BDD_MOT_DE_PASSE.'@'.PAP_BDD_SERVEUR.'/'.PAP_BDD_NOM);"."\n";
foreach ($fichier as $cle => $val) {
$entries[] = 'define(\''.$cle.'\',\''.$val.'\');'."\n";
}
foreach ($pref as $cle => $val) {
// Nous récupérons uniquement les constantes à stocker dans le fichier de config (leur nom commence par PAP_)
if (preg_match('/^PAP_/', $cle)) {
if (preg_match('/^[0-9]+|(?i:true|false)$/', $val)) {
$entries[] = 'define(\''.$cle.'\','.$val.');'."\n";
} else {
$entries[] = 'define(\''.$cle.'\',\''.$val.'\');'."\n";
}
}
}
$configCode .= implode("\n", $entries)."\n\n?>";
if ($erreur==0) {
// Tentative d'écriture du fichier de config
$sortie_verif .= ' <h2>Ecriture des fichiers sur le serveur par FTP</h2>'."\n";
$chemin_fpt_absolu = $fichier['PAP_FTP_RACINE'].INSTAL_CHEMIN_CONFIG;
$url_ftp = 'ftp://'.$fichier['PAP_FTP_UTILISATEUR'].':'.$fichier['PAP_FTP_MOT_DE_PASSE'].
'@'.$fichier['PAP_FTP_SERVEUR'].$chemin_fpt_absolu;
// Dans le cas, où nous mettons à jour Papyrus, il faut supprimer l'ancien fichier de config
if (INSTAL_VERSION_ANCIENNE != '') {
$txt_suppression = 'Suppression de <tt>'.$chemin_fpt_absolu.'</tt>...';
$txt_suppression_erreur = '<p>Le fichier <tt>'.$chemin_fpt_absolu.'</tt> ne peut être supprimer automatiquement. '.
'Veuillez utiliser un logiciel de transfert de fichier par FTP pour le supprimer.</p>';
$erreur = testerConfig($sortie_verif, $txt_suppression, unlink($url_ftp), $txt_suppression_erreur, 1, $erreur);
}
// Nous écrivons le fichier de config sur le disque
$fp = @fopen($url_ftp, 'w');
$txt_ecriture_conf = '&Eacute;criture sur le serveur de <tt>'.$chemin_fpt_absolu.'</tt>...';
$txt_ecriture_conf_erreur = '<span class="failed">AVERTISSEMENT:</span> Le fichier de configuration <tt>'.$chemin_fpt_absolu.
'</tt> n\'a pu &ecirc;tre cr&eacute;&eacute;. Veuillez vous assurez que votre serveur a les droits '.
'd\'acc&egrave;s en &eacute;criture pour ce fichier. Si pour une raison quelconque vous ne pouvez pas '.
'faire &ccedil;a vous devez copier les informations suivantes dans un fichier et les transf&eacute;rer '.
'au moyen d\'un logiciel de transfert de fichier (ftp) sur le serveur dans un fichier '.
'<tt>pap_config.inc.php</tt> directement dans le r&eacute;pertoire <tt>configuration</tt> du répertoire '.
'<tt>papyrus</tt> de Papyrus. Une fois que vous aurez fait cela, votre site Papyrus devrait fonctionner '.
'correctement.';
$txt_ecriture_conf_erreur .= '<div class="code"><code>'.htmlentities($configCode).'</code></div>'."\n";
$erreur = testerConfig($sortie_verif, $txt_ecriture_conf, $fp, $txt_ecriture_conf_erreur, 1, $erreur);
// tentative d ecriture du fichier .htaccess
$url_ftp_htaccess = 'ftp://'.$fichier['PAP_FTP_UTILISATEUR'].':'.$fichier['PAP_FTP_MOT_DE_PASSE'].
'@'.$fichier['PAP_FTP_SERVEUR'].$fichier['PAP_FTP_RACINE'].'/.htaccess';
$url_parse = parse_url('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$prefixe = dirname($url_parse['path']);
 
$url = 'http://'.$_SERVER['HTTP_HOST'].$prefixe;
if (isset($pref['PAP_URL_REECRITURE']) && $pref['PAP_URL_RRECRITURE'] == 1) {
$on_off = 'on';
} else {
$on_off = 'off';
}
$contenu_htaccess = '# Raccourci pour les menus et sites de Papyrus'."\n".
'RewriteEngine '.$on_off."\n".
'# si le fichier ou le dossier existe dans le système de fichier on l\'utilise directement'."\n".
'RewriteCond %{REQUEST_FILENAME} !-d'."\n".
'RewriteCond %{REQUEST_FILENAME} !-f'."\n\n".
'# ATTENTION : remplace localhoste par votre nom de domaine !'."\n".
'# Réecriture d\'url pour les applications de Papyrus n\'utilisant pas correctement Pap_URL'."\n".
'# ATTENTION : ne marche pas pour les formulaires en mode POST !'."\n".
'RewriteRule ^([^\/]+)&(.*)$ '.$url.'/$1?$2 [QSA,L,R=301]'."\n".
'# Réecriture d\'url pour les vieux permaliens'."\n".
'RewriteCond %{REQUEST_FILENAME}/ !-d'."\n".
'RewriteRule ^([^\/\?:.]+)$ '.$url.'/page:$1 [QSA,L,R=301]'."\n".
'# Redirection d\'url pour le sélecteur de site'."\n".
'# Le point d\'interrogation sans rien après, vide la QUERY_STRING sinon elle est concacténée à l\'url et cela plante...'."_n".
'# Le "/" initial dans la RewriteCond est obligatoire!'."\n".
'RewriteCond %{REQUEST_URI}?%{QUERY_STRING} ^/papyrus\.php\?site=([^&]+)$'."\n".
'RewriteRule ^papyrus.php$ '.$url.'/site:%1? [L,R=301]'."\n\n".
'# Réecriture d\'url pour les sites de Papyrus : à modifier si les valeurs par défaut ont été changées'."\n".
'RewriteRule ^site:.+$ papyrus.php [QSA,L]'."\n".
'# Réecriture d\'url pour les menus de Papyrus : à modifier si les valeurs par défaut ont été changées'."\n".
'RewriteRule ^page:.+$ papyrus.php [QSA,L]'."\n\n".
'# Gestion des erreurs 404'."\n".
'ErrorDocument 404 '.$prefixe.'/erreur_http.php?erreur=404';
if (file_exists($pref['PAP_CHEMIN_RACINE'].'/.htaccess')) {
$sortie_verif .='<p>Attention: Un fichier .htaccess est déjà présent sur le serveur.'.
'<br />'.$pref['PAP_CHEMIN_RACINE'].'/.htaccess'.
'<br />Veillez à le configurer correctement<br /><br />'.
'Contenu par défaut: <br /><br /> ErrorDocument 404 /erreur_404.php';
} else {
$tempfn = tempnam("","");
$temp = fopen($tempfn, "w");
 
fwrite($temp, $contenu_htaccess);
fclose($temp);
$fichier_config_source = $tempfn;
$fichier_config_cible = substr($fichier['PAP_FTP_RACINE']."/.htaccess", 1) ;
$txt_ecriture_conf_erreur = 'AVERTISSEMENT: Le fichier .htaccess <tt>'.$fichier_config_cible.
'</tt> n\'a pu &ecirc;tre cr&eacute;&eacute;. Veuillez vous assurez que votre serveur a les droits '.
'd\'acc&egrave;s en &eacute;criture pour ce fichier. Si pour une raison quelconque vous ne pouvez pas '.
'faire &ccedil;a vous devez copier les informations suivantes dans un fichier et les transf&eacute;rer '.
'au moyen d\'un logiciel de transfert de fichier (ftp) sur le serveur dans un fichier '.
'<tt>.htaccess</tt> directement &agrave la racine de '.
'<tt>papyrus</tt> de Papyrus.';
$txt_ecriture_conf_erreur .= '<div class="code"><code><pre>'.htmlentities($contenu_htaccess).'</pre></code></div>'."\n";
$txt_ecriture_conf = '&Eacute;criture sur le serveur du fichier .htaccess... <tt>'.$fichier_config_cible.'</tt>'."\n";
$erreur = testerConfig($sortie_verif, $txt_ecriture_conf, ftp_put($ftp, $fichier_config_cible,$fichier_config_source, FTP_ASCII), $txt_ecriture_conf_erreur, 1, 0);
}
}
}
 
 
 
// Mise à jour des fichiers de configuration de chaque application :
 
function maj_fichier_config_appli($fichier, $fichierconfig, $elements) {
 
$url_ftp = 'ftp://'.$fichier['PAP_FTP_UTILISATEUR'].':'.$fichier['PAP_FTP_MOT_DE_PASSE'].
'@'.$fichier['PAP_FTP_SERVEUR'].$fichier['PAP_FTP_RACINE'].GEN_SEP.$fichierconfig;
$fp = @fopen($url_ftp, 'w');
if ($fp) {
while (!feof($fp)) {
$cont .= fread($fp, 500);
}
foreach ($elements as $element) {
list($expr,$rempl)=$elements;
preg_replace('/'.$expr.'/',$rempl,$cont);
}
fwrite($fp, $cont);
fclose($fp);
}
}
 
// Maj Fckeditor
 
maj_fichier_config_appli($fichier,'api/fckeditor/editor/filemanager/browser/default/connectors/php/config.php',array("test"=>"test"));
 
 
 
 
// Gestion de l'affichage
if ($erreur == 0 && empty($sortie_verif)) {
// Premier appel du fichier...
$sortie .= creerFormulaire($fichier);
$sortie .= '<li><input type="hidden" name="pref_serial" value="'.htmlentities(serialize($pref)).'" /></li>'."\n";
$sortie .= '<li><input type="hidden" name="bdd_serial" value="'.htmlentities(serialize($bdd)).'" /></li>'."\n";
$sortie .= '<li><input type="submit" value="Tester" /></li>'."\n";
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
} else if ($erreur == 2 && !empty($sortie_verif)) {
// Vérification du fichier avec interuption...
$sortie .= creerFormulaire($fichier);
$sortie .= '<li><input type="hidden" name="pref_serial" value="'.htmlentities(serialize($pref)).'" /></li>'."\n";
$sortie .= '<li><input type="hidden" name="bdd_serial" value="'.htmlentities(serialize($bdd)).'" /></li>'."\n";
$sortie .= '<li><input type="submit" value="Tester à nouveau" /></li>'."\n";
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
$sortie .= $sortie_verif;
} else if (($erreur == 0 || $erreur == 1) && !empty($sortie_verif)) {
// Vérification du fichier sans interuption... passage à l'étape suivante
$sortie .= creerFormulaire($fichier, true);
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
$sortie .= $sortie_verif;
// Ecriture du fichier...
fwrite($fp, $configCode);
fclose($fp);
$sortie .= ' <br /><p class="etape_info">Voila c\'est termin&eacute; ! Vous pouvez <a href="'.donnerUrlCourante().'">retourner sur votre site '.
'Papyrus</a>. Il est conseill&eacute; de retirer l\'acc&egrave;s en &eacute;criture au fichier '.
'<tt>pap_config.inc.php</tt>. Ceci peut &ecirc;tre une faille dans la s&eacute;curit&eacute;.</p>'."\n";
}
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE DES FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
// Création du formulaire de configuration de la base de donneés
function creerFormulaire($fichier, $bln_lecture = false) {
$disabled = '';
if ($bln_lecture) {
$disabled = ' disabled="disabled" ';
}
$sortie_form .= ' <form action="'.donnerUrlCourante().'?installation=verif_fichier" method="post">';
$sortie_form .= ' <ul>'."\n";
$sortie_form .= '<li><br /><h2>Configuration du FTP et des chemins d\'accès</h2></li>'."\n";
$sortie_form .= '<li>Entrer le nom de dommaine pour accéder à votre dépôt FTP</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="ftp_serveur">Nom du serveur FTP :</label>'.
'<input id="ftp_serveur"'.$disabled.'type="text" size="30" name="fichier[PAP_FTP_SERVEUR]" value="'.$fichier['PAP_FTP_SERVEUR'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>Le numéro du port pour le service FTP sur la machine hébergeant Papyrus. '.
'En g&eacute;n&eacute;ral c\'est 21.</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="ftp_port">N° du port d\'accès au serveur FTP :</label>'.
'<input id="ftp_port"'.$disabled.'type="text" size="20" name="fichier[PAP_FTP_PORT]" value="'.$fichier['PAP_FTP_PORT'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>Nom et mot de passe FTP qui sera utilis&eacute; pour se connecter &agrave; au dépôt FTP.</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="ftp_utilisateur">Nom d\'utilisateur pour le serveur FTP :</label>'.
'<input id="ftp_utilisateur"'.$disabled.'type="text" size="20" name="fichier[PAP_FTP_UTILISATEUR]" value="'.$fichier['PAP_FTP_UTILISATEUR'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="ftp_mot_de_passe">Mot de passe pour le serveur FTP :</label>'.
'<input id="ftp_mot_de_passe"'.$disabled.'type="password" size="20" name="fichier[PAP_FTP_MOT_DE_PASSE]" value="'.$fichier['PAP_FTP_MOT_DE_PASSE'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>Lorsque vous vous connectez par FTP sur le serveur où vous avez déposé les fichiers de Papyrus, le '.
'dossier le plus haut auquel vous pouvez accéder dans l\'arborescence est la racine. Il vous faut donc '.
'indiquez dans le champ ci-dessous le chemin absolu depuis cette racine jusqu\'au dossier contenant le fichier '.
'<tt>papyrus.php</tt>. Exemple : <i>/www/</i></li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="ftp_racine">Racine dépôt FTP :</label>'.
'<input id="ftp_racine"'.$disabled.'type="text" size="60" name="fichier[PAP_FTP_RACINE]" value="'.$fichier['PAP_FTP_RACINE'].'" />'.
'</li>'."\n";
return $sortie_form;
}
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.24 2006/12/01 11:47:10 alexandre_tb
* suppression de var_dump
*
* Revision 1.23 2006/12/01 11:46:11 alexandre_tb
* correction creation .htaccess
*
* Revision 1.22 2006/11/30 17:41:30 alexandre_tb
* ecriture htaccess
*
* Revision 1.21 2006/11/30 17:36:29 alexandre_tb
* ecriture htaccess
*
* Revision 1.20 2006/11/30 16:41:42 alexandre_tb
* ecriture htaccess
*
* Revision 1.19 2006/11/30 15:50:25 ddelon
* installation fichier
*
* Revision 1.18 2006/11/30 15:34:51 alexandre_tb
* ecriture htaccess
*
* Revision 1.17 2006/11/30 15:27:31 alexandre_tb
* ecriture htaccess
*
* Revision 1.16 2006/11/30 14:52:42 alexandre_tb
* Ecriture du fichier htaccess lors de l installation
*
* Revision 1.15 2006/10/09 14:35:27 ddelon
* bug caractere invalie trainant dans fichier
*
* Revision 1.14 2006/10/06 15:34:30 florian
* mise en commentaire .htaccess
*
* Revision 1.13 2006/10/06 15:23:00 florian
* amelioration graphique de l'installateur
*
* Revision 1.12 2006/10/06 14:49:45 ddelon
* ecriture htaccess a l'installation
*
* Revision 1.11 2006/10/06 14:46:15 alexandre_tb
* ecriture du fichier .htaccess
*
* Revision 1.10 2005/09/23 14:20:23 florian
* nouvel habillage installateur, plus correction de quelques bugs
*
* Revision 1.9 2005/04/12 16:09:45 jpm
* Amélioration de la gestion de la constante de redirection des urls et de la gestion des constantes de type entier et booléen.
*
* Revision 1.8 2004/10/25 16:26:35 jpm
* Début gestion des mises à jours.
*
* Revision 1.7 2004/10/25 10:22:48 jpm
* Correction de quelques bogues, ajouts d'explications pour l'utilisateur et modification des styles CSS.
*
* Revision 1.6 2004/10/22 17:39:14 jpm
* Correction gestion du slash devant le chemin racine ftp.
*
* Revision 1.5 2004/10/22 17:23:04 jpm
* Simplification del'installation de Papyrus.
*
* Revision 1.4 2004/10/19 17:01:12 jpm
* Correction bogues.
*
* Revision 1.3 2004/10/19 15:59:18 jpm
* Ajout de la gestion des valeurs propre à Papyrus à insérer dans la base de données.
* Ajout des constantes FTP.
*
* Revision 1.2 2004/10/18 09:12:09 jpm
* Changement de nom d'un fichier.
*
* Revision 1.1 2004/10/18 09:11:05 jpm
* Changement de nom du fichier.
*
* Revision 1.1 2004/10/15 18:28:59 jpm
* Début appli installateur de Papyrus.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/installateur/instal_base_de_donnees.inc.php
New file
0,0 → 1,381
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (c) 2002, Hendrik Mans <hendrik@mans.de> |
// | Copyright 2002, 2003 David DELON |
// | Copyright 2002 Patrick PAUL |
// | Copyright 2003 Eric FELDSTEIN |
// | All rights reserved. |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | 1. Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | 2. 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. |
// | 3. The name of the author may not be used to endorse or promote products |
// | derived from this software without specific prior written permission. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: instal_base_de_donnees.inc.php,v 1.29 2006-12-01 14:05:57 alexandre_tb Exp $
/**
* Page de création de la base de données de Papyrus.
*
* Page permettant de créer la base de données de Papyrus.
*
*@package Installateur
//Auteur original :
*@author Hendrik MANS <hendrik@mans.de>
//Autres auteurs :
*@author David DELON
*@author Patrick PAUL
*@author Eric FELDSTEIN
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.29 $ $Date: 2006-12-01 14:05:57 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Numéro de l'étape d'installation :
$num_etape = 2;
 
// Initialisation du tableau contenant les valeurs de configuration de la base de données
$tableau = array('PAP_BDD_SERVEUR' => '', 'PAP_BDD_NOM' => '', 'PAP_BDD_UTILISATEUR' => '', 'PAP_BDD_MOT_DE_PASSE' => '');
foreach ($tableau as $cle => $val) {
if ($_POST['bdd'][$cle] != '') {
$bdd[$cle] = $_POST['bdd'][$cle];
} else if (defined($cle)) {
$bdd[$cle] = constant($cle);
} else {
$bdd[$cle] = '';
}
}
 
// Récupération des paramêtres de configuration du formulaire précédent
if (isset($_POST['pref'])) {
$pref = $_POST['pref'];
} else if (isset($_POST['pref_serial'])) {
$pref = unserialize(stripslashes($_POST['pref_serial']));
}
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// 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
$erreur = 0;
$sortie_verif = '';
if ($_GET['installation'] == 'verif_bdd') {
// 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&eacute;es ...', @mysql_select_db($bdd['PAP_BDD_NOM'], $dblink),
'<br />La base de donn&eacute;es, le serveur MySQL, ou votre identifiant / mot de passe sont invalides, veuillez vérifer vos paramêtres.', 1, $erreur);
$sortie .= '<br />'."\n";
if ($erreur==0) {
// L'exécution du SQL peut commencer...
if (!defined('PAP_VERSION')) {
$version_actuelle = 0.1;
} else {
// On ajoute pour éviter l'étape qui a déjà eu lieu lors d'une installation précédente!
$version_actuelle = PAP_VERSION + 0.01;
}
if (!defined('GEN_VERSION')) {
$version_maj = 0.1;
} else {
$version_maj = GEN_VERSION + 0.01;
}
$sortie_test .= '<h2>Insertion des informations dans la base de données</h2>';
for ( $version = $version_actuelle; $version <= $version_maj; $version = $version + 0.01) {
//Insertion des requêtes présentes dans le fichier sql
$file_sql_contenu = INSTAL_CHEMIN_SQL.'papyrus_v'.$version.'.sql';
if (file_exists($file_sql_contenu)) {
$sortie_verif .= '<h2>Insertion des données du fichier sql version '.$version.'</h2>';
$sql_contenu = PMA_readFile($file_sql_contenu);
}
$tab_requete_sql = array();
PMA_splitSqlFile($tab_requete_sql, $sql_contenu, '');
foreach ($tab_requete_sql as $value) {
$table_nom = '';
if (!empty($value['table_nom'])) {
$table_nom = $value['table_nom'];
}
$requete_type = '';
if (!empty($value['type'])) {
$requete_type = $value['type'];
}
if ($requete_type == 'create') {
$erreur = testerConfig( $sortie_verif, 'Création table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Déjà créée ?', 0, $erreur);
} else if ($requete_type == 'alter') {
$erreur = testerConfig( $sortie_verif, 'Modification structure table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Déjà modifiée ?', 0, $erreur);
} else if ($requete_type == 'insert') {
$erreur = testerConfig( $sortie_verif, 'Insertion table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Données déjà présente ?', 0, $erreur);
}
}
// Chargement des hooks sql : fichier sql de configuration spécifiques à chaque application
 
$d = dir(GEN_CHEMIN_CLIENT);
$sql_contenu_hook = '';
while (false !== ($repertoire = $d->read())) {
$hook=GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'documentation'.GEN_SEP.$repertoire.'_v'.$version.'.sql';
if (file_exists($hook)) {
$sortie_verif .= '<h2>Insertion des informations dans la base de données, fichier : '.$hook.' </h2>';
$sql_contenu_hook = PMA_readFile($hook);
$tab_requete_sql = array();
PMA_splitSqlFile($tab_requete_sql, $sql_contenu_hook, '');
foreach ($tab_requete_sql as $value) {
$table_nom = '';
if (!empty($value['table_nom'])) {
$table_nom = $value['table_nom'];
}
$requete_type = '';
if (!empty($value['type'])) {
$requete_type = $value['type'];
}
if ($requete_type == 'create') {
$erreur = testerConfig( $sortie_verif, 'Création table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Déjà créée ?', 0, $erreur);
} else if ($requete_type == 'alter') {
$erreur = testerConfig( $sortie_verif, 'Modification structure table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Déjà modifiée ?', 0, $erreur);
} else if ($requete_type == 'insert') {
$erreur = testerConfig( $sortie_verif, 'Insertion table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Données déjà présente ?', 0, $erreur);
}
}
}
}
}
//Insertion des requêtes dépendant du formulaire d'installation
$sortie_verif .= '<h2>Insertion des données dépendant du formulaire précédent</h2>';
$requete_admin = 'INSERT INTO gen_annuaire VALUES (1, "'.$pref['ADMIN_I18N'].'", "'.$pref['ADMIN_NOM'].
'", "'.$pref['ADMIN_PRENOM'].'", "'.md5($pref['ADMIN_MDP_01']).'", "'.
$pref['ADMIN_MAIL'].'");';
$erreur = testerConfig($sortie_verif, 'Insertion de l\'administrateur...', @mysql_query($requete_admin, $dblink),
'Données déjà présente ?', 0, $erreur);
$requete_auth = 'INSERT INTO gen_site_auth_bdd VALUES (1, "mysql://'.
$bdd['PAP_BDD_UTILISATEUR'].':'.$bdd['PAP_BDD_MOT_DE_PASSE'].'@'.$bdd['PAP_BDD_SERVEUR'].'/'.$bdd['PAP_BDD_NOM'].'", "gen_annuaire", "ga_mail", '.
'"ga_mot_de_passe", "md5","chp_personne_prenom=ga_prenom chp_personne_nom=ga_nom");';
$erreur = testerConfig($sortie_verif, 'Insertion de l\'authentification...', @mysql_query($requete_auth, $dblink),
'Données déjà présente ?', 0, $erreur);
$url_inscription = preg_replace ('/papyrus\.php/', 'inscription', $pref['PAP_URL']);
$requete_auth = 'INSERT INTO gen_site_auth_bdd VALUES (2, "mysql://'.
$bdd['PAP_BDD_UTILISATEUR'].':'.$bdd['PAP_BDD_MOT_DE_PASSE'].'@'.$bdd['PAP_BDD_SERVEUR'].'/'.$bdd['PAP_BDD_NOM'].'", "annuaire", "a_mail", '.
'"a_mot_de_passe", "md5","chp_personne_prenom=a_prenom chp_personne_nom=a_nom '.
'url_inscription='.$url_inscription.' url_inscription_modif='.$url_inscription.'");';
 
$erreur = testerConfig($sortie_verif, 'Insertion de l\'authentification utilisateurs ...', @mysql_query($requete_auth, $dblink),
'Données déjà présente ?', 0, $erreur);
}
}
 
// Gestion de l'affichage de sortie
if ($erreur == 0 && empty($sortie_verif)) {
// Premier appel du fichier...
$sortie .= creerFormulaire($bdd);
$sortie .= '<li><input type="hidden" name="pref_serial" value="'.htmlentities(serialize($pref)).'" /></li>'."\n";
$sortie .= '<li><input type="submit" value="Tester" /></li>'."\n";
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
} else if ($erreur == 2 && !empty($sortie_test)) {
// Vérification du fichier avec interuption...
$sortie .= creerFormulaire($bdd);
$sortie .= $sortie_test;
$sortie .= '<li><input type="hidden" name="pref_serial" value="'.htmlentities(serialize($pref)).'" /></li>'."\n";
$sortie .= '<li><input type="submit" value="Tester à nouveau" /></li>'."\n";
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
//$sortie .= '<div class="code"><code>'.$sortie_verif.'</code></div>';
} else if (($erreur == 0 || $erreur == 1) && !empty($sortie_verif)) {
// Vérification du fichier sans interuption... passage à l'étape suivante
$sortie .= creerFormulaire($bdd, true);
$sortie .= $sortie_test;
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
$sortie .= '<div class="code"><code>'.$sortie_verif.'</code></div>';
$sortie .= ' <br /><p class="etape_info">A l\'&eacute;tape suivante, le programme d\'installation va essayer d\'&eacute;crire le fichier de '.
'configuration <tt>'.INSTAL_FICHIER_CONFIG.'</tt>.<br />Assurez vous que le serveur web a bien le '.
'droit d\'&eacute;crire dans ce fichier, sinon vous devrez le modifier manuellement.</p>'."\n";
$sortie .= ' <form style="clear:both;" action="'.donnerUrlCourante().'?installation=form_fichier" method="POST" />'."\n";
$sortie .= ' <input type="hidden" name="bdd_serial" value="'.htmlentities(serialize($bdd)).'" />'."\n";
$sortie .= ' <input type="hidden" name="pref_serial" value="'.htmlentities(serialize($pref)).'" />'."\n";
$sortie .= ' <input type="submit" value="Continuer" />'."\n";
$sortie .= ' </form>'."\n";
}
// +------------------------------------------------------------------------------------------------------+
// | LISTE DES FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
// Création du formulaire de configuration de la base de donneés
function creerFormulaire($bdd, $bln_lecture = false) {
$disabled = '';
if ($bln_lecture) {
$disabled = ' disabled="disabled" ';
}
$sortie_form .= ' <form action="'.donnerUrlCourante().'?installation=verif_bdd" method="post">';
$sortie_form .= ' <ul>'."\n";
$sortie_form .= '<li><br /><h2>Configuration de la base de donn&eacute;es</h2></li>'."\n";
$sortie_form .= '<li>La machine sur laquelle se trouve votre serveur MySQL. En g&eacute;n&eacute;ral c\'est "localhost" '.
'(ie, la m&ecirc;me machine que celle o&ugrave; se trouve les pages de Papyrus.).</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="mysql_serveur">Nom du serveur MySQL :</label>'.
'<input id="mysql_serveur"'.$disabled.'type="text" size="30" name="bdd[PAP_BDD_SERVEUR]" value="'.$bdd['PAP_BDD_SERVEUR'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>La base de donn&eacute;es MySQL &agrave; utiliser pour Papyrus. Cette base de donn&eacute;es doit d&eacute;j&agrave; '.
'exister avant de pouvoir continuer.</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="mysql_database">Base de donn&eacute;es MySQL :</label>'.
'<input id="mysql_database"'.$disabled.'type="text" size="30" name="bdd[PAP_BDD_NOM]" value="'.$bdd['PAP_BDD_NOM'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>Nom et mot de passe de l\'utilisateur MySQL qui sera utilis&eacute; pour se connecter &agrave; votre base de donn&eacute;es.</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="mysql_user">Nom de l\'utilisateur MySQL :</label>'.
'<input id="mysql_user"'.$disabled.'type="text" size="30" name="bdd[PAP_BDD_UTILISATEUR]" value="'.$bdd['PAP_BDD_UTILISATEUR'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="mysql_password">Mot de passe MySQL :</label>'.
'<input id="mysql_password"'.$disabled.'type="password" size="30" name="bdd[PAP_BDD_MOT_DE_PASSE]" value="'.$bdd['PAP_BDD_MOT_DE_PASSE'].'" />'.
'</li>'."\n";
return $sortie_form;
}
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.28 2006/10/06 15:23:00 florian
* amelioration graphique de l'installateur
*
* Revision 1.27 2006/10/06 10:35:38 alexandre_tb
* correction du lien vers l'inscription.
*
* Revision 1.26 2006/10/05 18:38:36 ddelon
* reglage inititialisation base de donnes : authorisation utilisateur
*
* Revision 1.25 2006/10/05 17:56:37 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.24 2006/10/05 17:39:35 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.23 2006/10/05 17:16:21 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.22 2006/10/05 16:44:02 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.21 2006/10/05 16:39:01 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.20 2006/10/05 16:25:58 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.19 2006/10/05 15:38:22 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.18 2006/10/05 15:27:53 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.17 2006/10/05 15:04:00 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.16 2006/10/05 15:00:56 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.15 2006/10/05 14:41:12 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.14 2006/10/05 14:24:58 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.13 2006/10/05 14:01:21 ddelon
* Gestion hooks creation base de donnee
*
* Revision 1.12 2005/09/23 14:20:23 florian
* nouvel habillage installateur, plus correction de quelques bugs
*
* Revision 1.11 2004/11/03 17:31:13 jpm
* Corrections bogues erreurs noms de variables (suite).
*
* Revision 1.10 2004/11/03 17:26:19 jpm
* Corrections bogues erreurs noms de variables.
*
* Revision 1.9 2004/10/27 11:43:32 jpm
* Correction bogues diff mise à jour / installation.
*
* Revision 1.8 2004/10/26 18:41:12 jpm
* Correction bogue pour la mise à jour.
*
* Revision 1.7 2004/10/25 16:26:35 jpm
* 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.
*
* Revision 1.5 2004/10/22 17:56:28 jpm
* Correction erreur auth.
*
* Revision 1.4 2004/10/22 17:23:04 jpm
* Simplification del'installation de Papyrus.
*
* Revision 1.3 2004/10/19 16:47:28 jpm
* 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 des constantes FTP.
*
* Revision 1.1 2004/10/15 18:28:59 jpm
* Début appli installateur de Papyrus.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/installateur/instal_preference.inc.php
New file
0,0 → 1,273
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (c) 2002, Hendrik Mans <hendrik@mans.de> |
// | Copyright 2002, 2003 David DELON |
// | Copyright 2002 Patrick PAUL |
// | All rights reserved. |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | 1. Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | 2. 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. |
// | 3. The name of the author may not be used to endorse or promote products |
// | derived from this software without specific prior written permission. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: instal_preference.inc.php,v 1.12 2006-10-06 15:23:00 florian Exp $
/**
* Page d'initialisation de l'installation de Papyrus.
*
* Contenu de la page par défaut de l'installation de Papyrus.
*
*@package Installateur
//Auteur original :
*@author Hendrik MANS <hendrik@mans.de>
//Autres auteurs :
*@author David DELON
*@author Patrick PAUL
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.12 $ $Date: 2006-10-06 15:23:00 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Numéro de l'étape d'installation :
$num_etape = 1;
 
// Initialisation du tableau contenant les valeurs de configuration de la base de données
$tableau = array('ADMIN_PRENOM' => '', 'ADMIN_NOM' => '', 'ADMIN_MAIL' => '', 'ADMIN_MDP_01' => '',
'ADMIN_MDP_02' => '', 'ADMIN_I18N' => '', 'PAP_URL' => '', 'PAP_CHEMIN_RACINE' => '', 'PAP_URL_REECRITURE' => '0');
foreach ($tableau as $cle => $val) {
if (!empty($_POST['pref'][$cle])) {
$pref[$cle] = $_POST['pref'][$cle];
} else if (defined($cle)) {
$pref[$cle] = constant($cle);
if ($cle == 'PAP_CHEMIN_RACINE') $pref[$cle] = INSTAL_CHEMIN_ABSOLU;
} else {
if ($cle == 'PAP_URL') {
$pref[$cle] = 'http://'.$_SERVER['SERVER_NAME'].
($_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '').
$_SERVER['REQUEST_URI'];
} else if ($cle == 'PAP_CHEMIN_RACINE') {
$pref[$cle] = INSTAL_CHEMIN_ABSOLU;
} else {
$pref[$cle] = '';
}
}
}
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// Affichage d'informations...
$sortie .= '<br /><h1>Etape n°'.$num_etape.' sur '.INSTAL_NBRE_ETAPE.'.</h1>'."\n";
$sortie .= '<p>NOTE: Ce programme d\'installation va essayer de modifier les options de configurations dans le '.
'fichier <tt>pap_config.inc.php</tt>, situ&eacute; dans le r&eacute;pertoire <tt>configuration</tt> du réportoire '.
'<tt>papyrus</tt>. Pour que cela fonctionne, veuillez vous assurez que votre serveur a les droits d\'acc&egrave;s '.
'en &eacute;criture pour ce fichier. Si pour une raison quelconque vous ne pouvez pas faire &ccedil;a vous '.
'devrez modifier ce fichier manuellement (ce programme d\'installation vous dira comment).</p><br />'."\n";
 
// Nous vérifions si nous sommes en phase de test du formulaire de config des préférences
if ($_GET['installation'] == 'verif_pref' ) {
$sortie_verif = '';
$sortie_verif .= testerPresenceExtension();
// En mise à jour, nous n'affichons pas les champs pour saisir un administrateur
if (!defined(INSTAL_VERSION_NOUVELLE_NOM)) {
// Nous vérifions que l'utilisateur à bien saisie les infos dans les champs du formulaire
if(empty($_POST['pref']['ADMIN_PRENOM'])) {
$sortie_verif .= '<p class="erreur">Le champ "Prénom" ne doit pas être vide!</p>'."\n";
}
if(empty($_POST['pref']['ADMIN_NOM'])) {
$sortie_verif .= '<p class="erreur">Le champ "Nom" ne doit pas être vide!</p>'."\n";
}
if(empty($_POST['pref']['ADMIN_MAIL'])) {
$sortie_verif .= '<p class="erreur">Le champ "Courriel" ne doit pas être vide!</p>'."\n";
}
if(empty($_POST['pref']['ADMIN_MDP_01'])) {
$sortie_verif .= '<p class="erreur">Le champ "Mot de passe" ne doit pas être vide!</p>'."\n";
}
if($_POST['pref']['ADMIN_MDP_01'] != $_POST['pref']['ADMIN_MDP_02']) {
$sortie_verif .= '<p class="erreur">Le deux mots de passes saisis pour le compte administrateur sont différents!</p>'."\n";
}
}
}
 
// Gestion de l'affichage de sortie
if (!isset($sortie_verif) && empty($sortie_verif)) {
// Premier appel du fichier...
$sortie .= creerFormulaire($pref);
$sortie .= ' </ul>'."\n";
$sortie .= '<input type="submit" value="Passer à l\'étape suivante" />'."\n";
$sortie .= '</form>';
} else if (isset($sortie_verif) && !empty($sortie_verif)) {
// Vérification du fichier avec interuption...
$sortie .= $sortie_verif;
$sortie .= creerFormulaire($pref);
$sortie .= ' </ul>'."\n";
$sortie .= '<input type="submit" value="Tester à nouveau" />'."\n";
$sortie .= ' </form>';
} else if (isset($sortie_verif) && empty($sortie_verif)) {
// Vérification du fichier sans interuption... passage à l'étape suivante
$sortie .= creerFormulaire($pref, true);
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
$sortie .= ' <br /><p class="etape_info">La configuration est OK. A l\'&eacute;tape suivante, le programme d\'installation va essayer de configurer '.
'et créer la base de données.</p>'."\n";
$sortie .= ' <form style="clear:both;" action="'.donnerUrlCourante().'?installation=form_bdd" method="post">'."\n";
$sortie .= ' <input type="hidden" name="pref_serial" value="'.htmlentities(serialize($pref)).'" />'."\n";
$sortie .= ' <input type="submit" value="Continuer" />'."\n";
$sortie .= ' </form>'."\n";
}
// +------------------------------------------------------------------------------------------------------+
// | LISTE DES FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
// Création du formulaire de configuration de la base de donneés
function creerFormulaire($pref, $bln_lecture = false) {
$disabled = '';
if ($bln_lecture) {
$disabled = ' disabled="disabled" ';
}
$sortie_form = '';
$sortie_form .= ' <form action="'.donnerUrlCourante().'?installation=verif_pref" method="post">'."\n";
$sortie_form .= '<ul>'."\n";
// En mise à jour, nous n'affichons pas les champs pour saisir un administrateur
if (!defined(INSTAL_VERSION_NOUVELLE_NOM)) {
$sortie_form .= '<li><h2>Configuration d\'un administrateur de Papyrus</h2></li>'."\n";
$sortie_form .= '<li>Tous les champs ci-dessous sont obligatoires.</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="admin_prenom">Prénom :</label>'.
'<input id="admin_prenom"'.$disabled.'type="text" size="30" name="pref[ADMIN_PRENOM]" value="'.$pref['ADMIN_PRENOM'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="admin_nom">Nom :</label>'.
'<input id="admin_nom"'.$disabled.'type="text" size="30" name="pref[ADMIN_NOM]" value="'.$pref['ADMIN_NOM'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="admin_mail">Courriel :</label>'.
'<input id="admin_mail"'.$disabled.'type="text" size="30" name="pref[ADMIN_MAIL]" value="'.$pref['ADMIN_MAIL'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="admin_mdp_01">Mot de passe :</label>'.
'<input id="admin_mdp_01"'.$disabled.'type="password" size="10" name="pref[ADMIN_MDP_01]" value="'.$pref['ADMIN_MDP_01'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="admin_mdp_02">Taper à nouveau votre mot de passe :</label>'.
'<input id="admin_mdp_02"'.$disabled.'type="password" size="10" name="pref[ADMIN_MDP_02]" value="'.$pref['ADMIN_MDP_02'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="admin_i18n">Langue :</label>'.
'<select id="admin_i18n"'.$disabled.'name="pref[ADMIN_I18N]">'.
'<option value="fr-FR" selected="selected">français</option>'.
'</select>'.
'</li>'."\n";
}
$sortie_form .= '<li>&nbsp;</li>'."\n".'<li><h2>Configuration de l\'URL</h2></li>'."\n";
$sortie_form .= '<li>L\'URL courante dans la barre d\'adresse de votre navigateur devrait correspondre à la valeur '.
'présente dans le champ ci-dessous. Si ce n\'est pas le cas, veuillez corriger la valeur ci-dessous.'."\n";
$sortie_form .= '<li>'."\n".
'<label for="url_courante">URL courante :</label>'.
'<input id="url_courante"'.$disabled.'type="text" size="60" name="pref[PAP_URL]" value="'.$pref['PAP_URL'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>Le mode "redirection automatique" doit &ecirc;tre s&eacute;lectionn&eacute; uniquement si '.
'vous utilisez Papyrus avec la redirection d\'URL (si vous ne savez pas ce qu\'est la redirection d\'URL '.
'n\'activez pas cette option).</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="rewrite_mode">Mode "redirection" :</label>'.
'<input id="rewrite_mode"'.$disabled.'type="checkbox" name="pref[PAP_URL_REECRITURE]" value="1" />'.
'Activation'.'</li>'."\n";
$sortie_form .= '<li>Le champ suivant devrait contenir le chemin d\'accès absolu vers le fichier <tt>papyrus.php</tt> '.
'sur le serveur où sont déposés les fichiers de Papyrus.</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="web_racine">Dossier de <tt>papyrus.php</tt> :</label>'.
'<input id="web_racine"'.$disabled.'type="text" size="60" name="pref[PAP_CHEMIN_RACINE]" value="'.$pref['PAP_CHEMIN_RACINE'].'" />'.
'</li>'."\n";
return $sortie_form;
}
 
// Vérification des variables d'environnement de PHP.
function testerPresenceExtension() {
$message = '';
$phrase_deb = '<p class="erreur">Pour fonctionner Papyrus à besoin que l\'extension PHP : ';
$phrase_fin = 'soit installée sur le serveur.<br /> Sans cette extension vous ne pourrez pas installer Papyrus !</p>';
// Nous avons besoin de quelques extensions
if (! extension_loaded('mysql')) {
$message .= $phrase_deb.'MYSQL'.$phrase_fin;
}
if (! extension_loaded('ftp')) {
$message .= $phrase_deb.'FTP'.$phrase_fin;
}
if (! extension_loaded('gd')) {
$message .= $phrase_deb.'GD'.$phrase_fin;
}
return $message;
}
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.11 2006/10/05 15:14:18 alexandre_tb
* Mise en place du chemin par défaut
*
* Revision 1.10 2005/09/23 14:20:23 florian
* nouvel habillage installateur, plus correction de quelques bugs
*
* Revision 1.9 2005/04/12 16:09:45 jpm
* Amélioration de la gestion de la constante de redirection des urls et de la gestion des constantes de type entier et booléen.
*
* Revision 1.8 2004/10/27 11:43:32 jpm
* Correction bogues diff mise à jour / installation.
*
* Revision 1.7 2004/10/25 10:22:48 jpm
* Correction de quelques bogues, ajouts d'explications pour l'utilisateur et modification des styles CSS.
*
* Revision 1.6 2004/10/22 17:23:04 jpm
* Simplification del'installation de Papyrus.
*
* Revision 1.5 2004/10/22 09:07:18 jpm
* Début simplification installateur.
*
* Revision 1.4 2004/10/19 17:01:12 jpm
* Correction bogues.
*
* Revision 1.3 2004/10/19 16:47:28 jpm
* 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 des constantes FTP.
*
* Revision 1.1 2004/10/15 18:28:59 jpm
* Début appli installateur de Papyrus.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/installateur/bibliotheque/instal_installation.fonct.php
New file
0,0 → 1,353
<?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: instal_installation.fonct.php,v 1.6 2006-04-28 12:41:49 florian Exp $
/**
* Bibliothèque des fonctions de l'application Installateur de Papyrus.
*
* Ce sous-paquetage contient les fonctions de l'application Installateur de Papyrus. Cette application gère
* l'installation de Papyrus (base de données).
*
*@package Installateur
*@subpackage Fonctions
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.6 $ $Date: 2006-04-28 12:41:49 $
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
/**Fonction donnerUrlCourante() - Retourne la base de l'url courante.
*
* Cette fonction renvoie la base de l'url courante.
* Origine : fonction provenant du fichier header.php de Wikini version 0.4.1
* Licence : la même que celle figurant dans l'entête du fichier header.php de Wikini version 0.4.1
* ou le fichier install_defaut.inc.php de cette application.
* Auteurs : Hendrik MANS, David DELON, Patrick PAUL, Jean-Pascal MILCENT
*
* @return string l'url courante.
*/
function donnerUrlCourante()
{
list($url, ) = explode('?', $_SERVER['REQUEST_URI']);
return $url;
}
 
/**Fonction testerConfig() - Retourne un message en fonction du résultat du test.
*
* Cette fonction retourne un message en fonction du résultat du test.
* Origine : fonction provenant du fichier header.php de Wikini version 0.4.1
* Licence : la même que celle figurant dans l'entête du fichier header.php de Wikini version 0.4.1
* ou le fichier install_defaut.inc.php de cette application.
* Auteurs : Hendrik MANS, David DELON, Patrick PAUL, Jean-Pascal MILCENT
*
* @return string l'url courante.
*/
function testerConfig(&$sortie, $texte, $test, $texte_erreur = '', $stop_erreur = 1, $erreur) {
if ($erreur == 2) {
return 2;
}
$sortie .= $texte.' ';
if ($test) {
$sortie .= '<span class="ok">&nbsp;OK&nbsp;</span><br />'."\n";
return 0;
} else {
$sortie .= '<span class="failed">&nbsp;ECHEC&nbsp;</span>';
if ($texte_erreur) {
$sortie .= ' <span class="erreur">'.$texte_erreur.'</span>';
}
$sortie .= '<br />'."\n" ;
if ($stop_erreur == 1) {
return 2;
} else {
return 1;
}
}
}
/**
* Removes comment lines and splits up large sql files into individual queries
*
* Last revision: September 23, 2001 - gandon
* Origine : fonction provenant de PhpMyAdmin version 2.6.0-pl1
* Licence : GNU
* Auteurs : voir le fichier Documentation.txt ou Documentation.html de PhpMyAdmin.
*
* @param array the splitted sql commands
* @param string the sql commands
* @param integer the MySQL release number (because certains php3 versions
* can't get the value of a constant from within a function)
*
* @return boolean always true
*
* @access public
*/
function PMA_splitSqlFile(&$ret, $sql, $release)
{
// do not trim, see bug #1030644
//$sql = trim($sql);
$sql = rtrim($sql, "\n\r");
$sql_len = strlen($sql);
$char = '';
$string_start = '';
$in_string = FALSE;
$nothing = TRUE;
$time0 = time();
 
for ($i = 0; $i < $sql_len; ++$i) {
$char = $sql[$i];
 
// We are in a string, check for not escaped end of strings except for
// backquotes that can't be escaped
if ($in_string) {
for (;;) {
$i = strpos($sql, $string_start, $i);
// No end of string found -> add the current substring to the
// returned array
if (!$i) {
$tab_info = retournerInfoRequete($sql);
$ret[] = array('query' => $sql, 'table_nom' => $tab_info['table_nom'], 'type' => $tab_info['type']);
return TRUE;
}
// Backquotes or no backslashes before quotes: it's indeed the
// end of the string -> exit the loop
else if ($string_start == '`' || $sql[$i-1] != '\\') {
$string_start = '';
$in_string = FALSE;
break;
}
// one or more Backslashes before the presumed end of string...
else {
// ... first checks for escaped backslashes
$j = 2;
$escaped_backslash = FALSE;
while ($i-$j > 0 && $sql[$i-$j] == '\\') {
$escaped_backslash = !$escaped_backslash;
$j++;
}
// ... if escaped backslashes: it's really the end of the
// string -> exit the loop
if ($escaped_backslash) {
$string_start = '';
$in_string = FALSE;
break;
}
// ... else loop
else {
$i++;
}
} // end if...elseif...else
} // end for
} // end if (in string)
// lets skip comments (/*, -- and #)
else if (($char == '-' && $sql_len > $i + 2 && $sql[$i + 1] == '-' && $sql[$i + 2] <= ' ') || $char == '#' || ($char == '/' && $sql_len > $i + 1 && $sql[$i + 1] == '*')) {
$i = strpos($sql, $char == '/' ? '*/' : "\n", $i);
// didn't we hit end of string?
if ($i === FALSE) {
break;
}
if ($char == '/') $i++;
}
 
// We are not in a string, first check for delimiter...
else if ($char == ';') {
// if delimiter found, add the parsed part to the returned array
$retour_sql = substr($sql, 0, $i);
$tab_info = retournerInfoRequete($retour_sql);
$ret[] = array('query' => $retour_sql, 'empty' => $nothing, 'table_nom' => $tab_info['table_nom'], 'type' => $tab_info['type']);
$nothing = TRUE;
$sql = ltrim(substr($sql, min($i + 1, $sql_len)));
$sql_len = strlen($sql);
if ($sql_len) {
$i = -1;
} else {
// The submited statement(s) end(s) here
return TRUE;
}
} // end else if (is delimiter)
 
// ... then check for start of a string,...
else if (($char == '"') || ($char == '\'') || ($char == '`')) {
$in_string = TRUE;
$nothing = FALSE;
$string_start = $char;
} // end else if (is start of string)
 
elseif ($nothing) {
$nothing = FALSE;
}
 
// loic1: send a fake header each 30 sec. to bypass browser timeout
$time1 = time();
if ($time1 >= $time0 + 30) {
$time0 = $time1;
header('X-pmaPing: Pong');
} // end if
} // end for
 
// add any rest to the returned array
if (!empty($sql) && preg_match('@[^[:space:]]+@', $sql)) {
$tab_info = retournerInfoRequete($sql);
$ret[] = array('query' => $sql, 'empty' => $nothing, 'table_nom' => $tab_info['table_nom'], 'type' => $tab_info['type']);
}
 
return TRUE;
}
 
/**Fonction retournerInfoRequete() - Retourne le type de requête sql et le nom de la table touchée.
*
* Cette fonction retourne un tableau associatif contenant en clé 'table_nom' le nom de la table touchée
* et en clé 'type' le type de requête (create, alter, insert, update...).
* Licence : la même que celle figurant dans l'entête de ce fichier
* Auteurs : Jean-Pascal MILCENT
*
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @return string l'url courante.
*/
function retournerInfoRequete($sql)
{
$requete = array();
$resultat='';
if (preg_match('/(?i:CREATE TABLE) +(.+) +\(/', $sql, $resultat)) {
if (isset($resultat[1])) {
$requete['table_nom'] = $resultat[1];
}
$requete['type'] = 'create';
} else if (preg_match('/(?i:ALTER TABLE) +(.+) +/', $sql, $resultat)) {
if (isset($resultat[1])) {
$requete['table_nom'] = $resultat[1];
}
$requete['type'] = 'alter';
} else if (preg_match('/(?i:INSERT INTO) +(.+) +(?i:\(|VALUES +\()/', $sql, $resultat)) {
if (isset($resultat[1])) {
$requete['table_nom'] = $resultat[1];
}
$requete['type'] = 'insert';
} else if (preg_match('/(?i:UPDATE) +(.+) +(?i:SET)/', $sql, $resultat)) {
if (isset($resultat[1])) {
$requete['table_nom'] = $resultat[1];
}
$requete['type'] = 'update';
}
return $requete;
}
/**
* Reads (and decompresses) a (compressed) file into a string
*
* Origine : fonction provenant de PhpMyAdmin version 2.6.0-pl1
* Licence : GNU
* Auteurs : voir le fichier Documentation.txt ou Documentation.html de PhpMyAdmin.
*
* @param string the path to the file
* @param string the MIME type of the file, if empty MIME type is autodetected
*
* @global array the phpMyAdmin configuration
*
* @return string the content of the file or
* boolean FALSE in case of an error.
*/
function PMA_readFile($path, $mime = '')
{
global $cfg;
 
if (!file_exists($path)) {
return FALSE;
}
switch ($mime) {
case '':
$file = @fopen($path, 'rb');
if (!$file) {
return FALSE;
}
$test = fread($file, 3);
fclose($file);
if ($test[0] == chr(31) && $test[1] == chr(139)) return PMA_readFile($path, 'application/x-gzip');
if ($test == 'BZh') return PMA_readFile($path, 'application/x-bzip');
return PMA_readFile($path, 'text/plain');
case 'text/plain':
$file = @fopen($path, 'rb');
if (!$file) {
return FALSE;
}
$content = fread($file, filesize($path));
fclose($file);
break;
case 'application/x-gzip':
if ($cfg['GZipDump'] && @function_exists('gzopen')) {
$file = @gzopen($path, 'rb');
if (!$file) {
return FALSE;
}
$content = '';
while (!gzeof($file)) {
$content .= gzgetc($file);
}
gzclose($file);
} else {
return FALSE;
}
break;
case 'application/x-bzip':
if ($cfg['BZipDump'] && @function_exists('bzdecompress')) {
$file = @fopen($path, 'rb');
if (!$file) {
return FALSE;
}
$content = fread($file, filesize($path));
fclose($file);
$content = bzdecompress($content);
} else {
return FALSE;
}
break;
default:
return FALSE;
}
return $content;
}
/* +--Fin du code ---------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.5 2005/09/23 14:20:23 florian
* nouvel habillage installateur, plus correction de quelques bugs
*
* Revision 1.4 2004/10/25 16:26:56 jpm
* Ajout de la gestion des requêtes de type alter et update.
*
* Revision 1.3 2004/10/19 16:47:06 jpm
* Modification de la gestion du texte de sortie dans la fonction testerConfig().
*
* Revision 1.2 2004/10/15 18:28:44 jpm
* Ajout de fonction utilisée pour l'installation de Papyrus.
*
* Revision 1.1 2004/06/16 14:34:12 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* +--Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_auth/configuration/adau_configuration.inc.php
New file
0,0 → 1,81
<?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: adau_configuration.inc.php,v 1.1 2004-12-06 11:31:42 alex Exp $
/**
* Fichier de configuration général de l'application Administrateur de authentification.
*
* Permet de définir certains paramètres valables pour toutes l'application
* Administrateur de Menus.
*
*@package Admin_auth
*@subpackage Configuration
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Constante stockant la valeur de la langue par défaut pour l'appli ADME.*/
define('ADAU_I18N_DEFAUT', GEN_I18N_ID_DEFAUT);
 
// Chemin des fichiers à inclure.
/** Chemin vers la bibliothèque PEAR.*/
define('ADAU_CHEMIN_BIBLIOTHEQUE_PEAR', '');
/** Chemin vers la bibliothèque API.*/
define('ADAU_CHEMIN_BIBLIOTHEQUE_API', GEN_CHEMIN_API);
/** Chemin vers la bibliothèque de Papyrus.*/
define('ADAU_CHEMIN_BIBLIOTHEQUE_GEN', GEN_CHEMIN_BIBLIO);
 
// Chemin vers les dossiers de l'application
/** Chemin vers l'application Admin Auth de Papyrus.*/
define('ADAU_CHEMIN_APPLICATION', GEN_CHEMIN_APPLICATION.'admin_auth/');
/** Chemin vers les images de l'application Admin Auth de Papyrus.*/
define('ADAU_CHEMIN_IMAGE_INTERFACE', ADAU_CHEMIN_APPLICATION.'presentations/images/interface/');
/** Chemin vers la bibliothèque de l'application Admin Auth de Papyrus.*/
define('ADAU_CHEMIN_BIBLIOTHEQUE', ADAU_CHEMIN_APPLICATION.'bibliotheque/');
/** Chemin vers les classes de l'application Admin Auth de Papyrus.*/
define('ADAU_CHEMIN_CLASSES', ADAU_CHEMIN_APPLICATION.'classes/');
/** Chemin vers les fichiers de traduction de l'application Admin Auth de Papyrus.*/
define('ADAU_CHEMIN_LANGUE', ADAU_CHEMIN_APPLICATION.'langues/');
/** Chemin vers les styles de l'application Admin Auth de Papyrus.*/
define('ADAU_CHEMIN_STYLE', ADAU_CHEMIN_APPLICATION.'presentations/styles/');
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_auth/bibliotheque/HTML_formulaireAuth.class.php
New file
0,0 → 1,182
<?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 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 |
// | General Public License for more details. |
// | |
// | You should have received a copy of the GNU 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: HTML_formulaireAuth.class.php,v 1.4 2006-04-28 12:41:49 florian Exp $
/**
* Application projet
*
* La classe HTML_formulaireAuth
*
*@package projet
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $
// +------------------------------------------------------------------------------------------------------+
*/
 
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
/** Inclure le fichier de langue pour utiliser cette classe de façon autonome. */
 
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/checkbox.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php' ;
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des constantes |
// +------------------------------------------------------------------------------------------------------+
 
 
/**
* class HTML_formulaireProjet
* Cette classe représente un formulaire pour saisir un projet ou le modifier.
*/
class HTML_formulaireAuth extends HTML_QuickForm
{
/**
* Constructeur
*
* @param string formName Le nom du formulaire.
* @param string method Soit get soit post, voir le protocole HTTP
* @param string action L'action du formulaire.
* @param string target La cible du formulaire.
* @param Array attributes Des attributs supplémentaires pour la balise <form>
* @param bool trackSubmit Pour repérer si la formulaire a été soumis.
* @return void
* @access public
*/
function HTML_formulaireAuth($formName = '', $method = 'post', $action = '', $target = '_self', $attributes = '', $trackSubmit = false)
{
HTML_QuickForm::HTML_QuickForm($formName, $method, $action, $target, $attributes, $trackSubmit);
$squelette =& $this->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li>'."\n".
'{label}'."\n".
'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">'.ADAU_SYMBOLE_CHP_OBLIGATOIRE.'</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">'.ADAU_SYMBOLE_CHP_OBLIGATOIRE.'</span> {requiredNote}</p>'."\n");
} // end of member function HTML_formulaireProjet
 
/**
* Renvoie le code HTML du formulaire.
*
* @return string
* @access public
*/
function toHTML()
{
$res = HTML_QuickForm::toHTML();
return $res;
} // end of member function toHTML
 
/**
* Ajoute les champs nécessaire au formulaire.
*
* @return void
* @access public
*/
function construitFormulaire($url_retour)
{
$tab_index = 1000;
$size = 60;
$cols = 50;
$rows = 6;
$form_debut = '<fieldset>'."\n".'<legend>'.ADAU_NOM_FORM.'</legend>'."\n".'<ul>'."\n";
$this->addElement('html', $form_debut);
$id = 'nom_auth';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => $size);
$label = '<label for="'.$id.'">'.ADAU_NOM_AUTH.'</label>';
$this->addElement('text', $id, $label, $aso_attributs);
$this->addRule('nom_auth', ADAU_NOM_AUTH_ALERTE, 'required', '', 'client');
$id = 'abreviation';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => $size);
$label = '<label for="'.$id.'">'.ADAU_ABREVIATION.'</label>';
$this->addElement('text', $id, $label, $aso_attributs);
$this->addRule('abreviation', ADAU_ABREVIATION_ALERTE, 'required', '', 'client');
$id = 'dsn';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => $size);
$label = '<label for="'.$id.'">'.ADAU_DSN.'</label>';
$this->addElement('text', $id, $label, $aso_attributs);
$this->addRule('dsn', ADAU_DSN_ALERTE, 'required', '', 'client');
$id = 'nom_table';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => $size);
$label = '<label for="'.$id.'">'.ADAU_NOM_TABLE.'</label>';
$this->addElement('text', $id, $label, $aso_attributs);
$this->addRule('nom_table', ADAU_NOM_TABLE_ALERTE, 'required', '', 'client');
$id = 'champs_login';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => $size);
$label = '<label for="'.$id.'">'.ADAU_CHAMPS_LOGIN.'</label>';
$this->addElement('text', $id, $label, $aso_attributs);
$this->addRule('champs_login', ADAU_CHAMPS_LOGIN_ALERTE, 'required', '', 'client');
$id = 'champs_passe';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => $size);
$label = '<label for="'.$id.'">'.ADAU_CHAMPS_PASSE.'</label>';
$this->addElement('text', $id, $label, $aso_attributs);
$this->addRule('champs_passe', ADAU_CHAMPS_PASSE_ALERTE, 'required', '', 'client');
$id = 'cryptage';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => $size);
$label = '<label for="'.$id.'">'.ADAU_CRYPTAGE.'</label>';
$this->addElement('text', $id, $label, $aso_attributs);
$this->addRule('cryptage', ADAU_CRYPTAGE_ALERTE, 'required', '', 'client');
$id = 'parametres';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => $rows, 'cols' => $cols);
$label = '<label for="'.$id.'">'.ADAU_PARAMETRE.'</label>';
$this->addElement('textarea', $id, $label, $aso_attributs);
$form_fin = '</ul>'."\n".'</fieldset>'."\n";
$this->addElement('html', $form_fin);
// Gestion des boutons
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$this->addElement('html', $liste_bouton_debut);
$this->addElement('submit', 'valider', ADAU_VALIDER);
$bouton_annuler = '<li><a class="bouton" href="'.str_replace ('&amp;', '&', $url_retour->getURL()).'">'.ADAU_ANNULER.'</a></li>'."\n";
$this->addElement('html', $bouton_annuler);
$liste_bouton_fin = '</ul>'."\n";
$this->addElement('html', $liste_bouton_fin);
$this->setRequiredNote(ADAU_CHAMPS_REQUIS);
} // end of member function _construitFormulaire
 
} // end of HTML_formulaireProjet
?>
/branches/livraison_menes/papyrus/applications/admin_auth/bibliotheque/adau_auth.fonct.php
New file
0,0 → 1,210
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: adau_auth.fonct.php,v 1.2 2005-04-14 13:54:51 jpm Exp $
/**
* Contient les fonctions de l'appli admin_auth
*
*
*
*
*@package Admin_auth
*@subpackage Fonctions
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.2 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/**
*
*
* @return
*/
function adau_supprimer_authentification($id_auth, &$db)
{
// Recherche l'identifiant de gen_site_auth_bdd à partir de gen_site_auth
$requete = 'SELECT gsa_ce_auth_bdd FROM gen_site_auth WHERE gsa_id_auth = '.$GLOBALS['id_auth'];
$resultat = $db->query ($requete) ;
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
$id_auth_bdd = $ligne->gsa_ce_auth_bdd ;
$requete = 'DELETE FROM gen_site_auth WHERE gsa_id_auth = '.$id_auth;
$resultat = $db->query($requete);
$requete = 'DELETE FROM gen_site_auth_bdd WHERE gsab_id_auth_bdd = '.$id_auth_bdd;
$resultat = $db->query($requete);
}
 
/**
*
*
* @return
*/
function adau_valeurs_par_defaut($id_auth, &$db)
{
// Requete sur gen_site_auth
$requete = 'SELECT * FROM gen_site_auth WHERE gsa_id_auth = '.$id_auth;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING);
return ;
}
$tableau_retour = array();
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$tableau_retour['nom_auth'] = $ligne->gsa_nom;
$tableau_retour['abreviation'] = $ligne->gsa_abreviation;
$tableau_retour['id_auth_bdd'] = $ligne->gsa_ce_auth_bdd;
$tableau_retour['id_auth'] = $ligne->gsa_id_auth;
unset($requete, $resultat);
// 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);
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;
$tableau_retour['champs_login'] = $ligne->gsab_nom_champ_login;
$tableau_retour['champs_passe'] = $ligne->gsab_nom_champ_mdp;
$tableau_retour['cryptage'] = $ligne->gsab_cryptage_mdp;
$tableau_retour['parametres'] = $ligne->gsab_parametres;
return $tableau_retour;
}
 
/**
*
*
* @return
*/
function insertion ($valeur, &$db)
{
$id_auth_bdd = SQL_obtenirNouveauId($db, 'gen_site_auth_bdd', 'gsab_id_auth_bdd');
$requete = 'INSERT INTO gen_site_auth SET gsa_id_auth = '
.SQL_obtenirNouveauId($db, 'gen_site_auth', 'gsa_id_auth').', '
.requete_site_auth($valeur)
.', gsa_ce_auth_bdd = '.$id_auth_bdd;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING);
return ;
}
$requete = 'INSERT INTO gen_site_auth_bdd SET gsab_id_auth_bdd = '.$id_auth_bdd.', '.requete_site_auth_bdd($valeur);
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING);
return ;
}
}
 
/**
*
*
* @return
*/
function mise_a_jour($valeur, &$db)
{
$requete = 'UPDATE gen_site_auth SET '.requete_site_auth($valeur).' '.
'WHERE gsa_id_auth = '.$GLOBALS['id_auth'];
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING);
return ;
}
unset($requete);
// Recherche l'identifiant de gen_site_auth_bdd à partir de gen_site_auth
$requete = 'SELECT gsa_ce_auth_bdd FROM gen_site_auth WHERE gsa_id_auth = '.$GLOBALS['id_auth'];
$resultat = $db->query($requete);
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$id_auth_bdd = $ligne->gsa_ce_auth_bdd;
$requete = 'UPDATE gen_site_auth_bdd SET '
.requete_site_auth_bdd($valeur)
.' WHERE gsab_id_auth_bdd = '.$id_auth_bdd;
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING);
return ;
}
}
 
/**
*
*
* @return string un morceau de code SQL
*/
function requete_site_auth(&$valeur)
{
return 'gsa_nom="'.$valeur['nom_auth'].'", '
.'gsa_ce_type_auth=1, '
.'gsa_abreviation="'.$valeur['abreviation'].'"' ;
}
 
/**
*
*
* @return
*/
function requete_site_auth_bdd (&$valeur)
{
return 'gsab_dsn="'.$valeur['dsn'].'", '
.'gsab_nom_table="'.$valeur['nom_table'].'", '
.'gsab_nom_champ_login="'.$valeur['champs_login'].'", '
.'gsab_nom_champ_mdp="'.$valeur['champs_passe'].'", '
.'gsab_parametres="'.$valeur['parametres'].'", '
.'gsab_cryptage_mdp="'.$valeur['cryptage'].'"';
}
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1 2005/03/09 10:49:52 jpm
* Changement d'un nom de fichier.
*
* Revision 1.2 2004/12/06 12:43:21 alex
* ajout du champs paramètre dans ls authentification
*
* Revision 1.1 2004/12/06 11:31:54 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_auth/langues/adau_langue_fr.inc.php
New file
0,0 → 1,86
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Papyrus. |
// | |
// | 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: adau_langue_fr.inc.php,v 1.4 2006-10-06 10:40:51 florian Exp $
/**
* Gestion des langues de l'application ADME
*
* Contient les constantes pour la langue française de l'application ADME.
*
*@package Admin_auth
*@subpackage Langues
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des CONSTANTES |
// +------------------------------------------------------------------------------------------------------+
define('ADAU_NOM_AUTH', 'Nom authentification');
define('ADAU_NOM_TABLE', 'Nom de la table annuaire');
define('ADAU_MODIFIER', 'Modifier');
define('ADAU_SUPPRIMER', 'Supprimer');
define('ADAU_SUPPRIMER_MESSAGE', 'Êtes vous sûr de vouloir supprimer cette identification ?');
define('ADAU_AJOUTER', 'Ajouter une authentification base de donnée');
define('ADAU_IDENTIFIEZ_VOUS','Veuillez vous identifier pour acc&egrave;der &agrave; ce menu.');
define('ADAU_NOM_FORM', 'Édition des informations d\'une identification');
define('ADAU_NOM_AUTH_ALERTE', 'Vous devez spécifier un nom');
define('ADAU_CHAMPS_REQUIS', 'Indique les champs requis');
define('ADAU_ABREVIATION', 'Abréviation');
define('ADAU_ABREVIATION_ALERTE', 'Vous devez indiquer une abréviation');
define('ADAU_DSN', 'Source des donnée (dsn)');
define('ADAU_DSN_ALERTE', 'Vous devez indiquer une source des données');
define('ADAU_NOM_TABLE_ALERTE', 'Vous devez indiquer le nom de la table annuaire');
define('ADAU_CHAMPS_LOGIN', 'Nom du champs login');
define('ADAU_CHAMPS_LOGIN_ALERTE', 'Vous devez indiquer le nom du champs login');
define('ADAU_CHAMPS_PASSE', 'Nom du champs mot de passe');
define('ADAU_CHAMPS_PASSE_ALERTE', 'Vous devez indiquer le nom du champs mot de passe');
define('ADAU_CRYPTAGE', 'Fonction de cryptage');
define('ADAU_CRYPTAGE_ALERTE', 'Vous devez indiquer un algorithme de cryptage');
define('ADAU_PARAMETRE', 'Paramètres');
define('ADAU_ANNULER', 'Annuler');
define('ADAU_VALIDER', 'Valider');
define('ADAU_SYMBOLE_CHP_OBLIGATOIRE', '*');
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2005/04/14 13:54:51 jpm
* Amélioration de l'interface et mise en conformité.
*
* Revision 1.2 2004/12/13 18:07:57 alex
* ajout de labels
*
* Revision 1.1 2004/12/06 11:31:37 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/applications/admin_auth/admin_auth.php
New file
0,0 → 1,200
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: admin_auth.php,v 1.6 2006-10-06 10:40:51 florian Exp $
/**
* Application gérant les authentifications de Papyrus
*
* Cette application permet de gérer les authentifications de papyrus
* elle permet de spécifier pour un monde quel annuaire utiliser
* et de gérer des authentifications de spip et ou wikini
*
*@package Admin_auth
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.6 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications/admin_auth/configuration/adau_configuration.inc.php';
 
//Utilisation de la bibliothèque PEAR NET_URL
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
/** Inclusion de la bibliothèque PEAR de conception de formulaire : select.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php';
 
/** Inclusion de l'API de fonctions gérant les erreurs sql.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php';
/** Inclusion des fonctions de manipulation du sql.
* Permet la récupération d'un nouvel identifiant d'une table.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
/** Inclusion de la bibliothèque premettant de créer des Tableau HTML fragmentés.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_API.'html/HTML_TableFragmenteur.php' ;
 
/** Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';
/** Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';
/** Inclusion de la bibliothèque de fonctions concernant les tables "gen_applications..." de Papyrus.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php';
 
/** Inclusion de la bibliothèque de fonctions concernant l'affichage commun.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE.'adau_auth.fonct.php';
/** Inclusion de la classe créer les formulaire des l'appli.*/
require_once ADAU_CHEMIN_BIBLIOTHEQUE.'HTML_formulaireAuth.class.php' ;
 
 
// Inclusion des fichiers de traduction de l'appli ADME dePapyrus
if (file_exists(ADAU_CHEMIN_LANGUE.'adau_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
/** Inclusion du fichier de traduction suite à la transaction avec le navigateur.*/
require_once ADAU_CHEMIN_LANGUE.'adau_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
} else {
/** Inclusion du fichier de traduction par défaut.*/
require_once ADAU_CHEMIN_LANGUE.'adau_langue_'.ADAU_I18N_DEFAUT.'.inc.php';
}
 
// Stockage des styles de l'application
GEN_stockerStyleExterne('adau_standard', ADAU_CHEMIN_STYLE.'adau_standard.css');
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
function afficherContenuCorps()
{
$db =& $GLOBALS['_GEN_commun']['pear_db'] ;
$url =& $GLOBALS['_GEN_commun']['url'] ;
$auth =& $GLOBALS['_GEN_commun']['pear_auth'] ;
isset ($GLOBALS['action']) ? '' : $GLOBALS['action'] = '' ; // On déclare action si elle n'existe pas
$res='';
if (!$auth->getAuth()) {
$res .= '<p class="zone_alert">'.ADAU_IDENTIFIEZ_VOUS.'</p>'."\n" ;
$res .= '<form id="form_connexion" style="clear:both;" class="form_identification" action="' ;
$res .= $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 ;
} else {
// Le lien pour une nouvelle entrée
$res = '<a href="'.$url->getURL().'&amp;action=nouveau">'.ADAU_AJOUTER.'</a>'."\n".'<br />';
// traitement de la suppression
if (isset ($GLOBALS['action']) && $GLOBALS['action'] == 'supprimer') adau_supprimer_authentification($GLOBALS['id_auth'], $db);
// Traitement de l'ajout
if (isset ($GLOBALS['action']) || isset ($GLOBALS['id_auth'])) {
$formulaire = new HTML_formulaireAuth('formulaire_auth', '', str_replace ('&amp;', '&', $url->getURL()));
$formulaire->construitFormulaire($url);
// On ajoute un champs caché avec action=nouveau_v
if ($GLOBALS['action'] == 'nouveau') {
$formulaire->addElement ('hidden', 'action', 'nouveau_v');
return $formulaire->toHTML();
}
if (isset ($GLOBALS['id_auth']) && $GLOBALS['action'] != 'modifier_v' && $GLOBALS['action'] != 'supprimer') {
$formulaire->addElement ('hidden', 'action', 'modifier_v');
$formulaire->addElement ('hidden', 'id_auth', $GLOBALS['id_auth']);
$formulaire->setDefaults(adau_valeurs_par_defaut($GLOBALS['id_auth'], $db));
return $formulaire->toHTML();
}
if ($GLOBALS['action'] == 'modifier_v') {
if ($formulaire->validate()) {
mise_a_jour ($formulaire->getSubmitValues(), $db);
}
}
if ($GLOBALS['action'] == 'nouveau_v') {
if ($formulaire->validate()) {
insertion ($formulaire->getSubmitValues(), $db);
}
}
}
// Comportement par défaut
// requete sur la table gen_site_auth
$requete = 'SELECT gsa_ce_auth_bdd, gsa_nom, gsab_nom_table '.
'FROM gen_site_auth, gen_site_auth_bdd '.
'WHERE gsa_id_auth <> 0 '.
'AND gsa_ce_auth_bdd = gsab_id_auth_bdd';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
trigger_error('Échec de la requete : '.$requete.'<br />'.$resultat->getMessage(), E_USER_WARNING);
return ;
}
$liste = new HTML_TableFragmenteur() ;
$liste->construireEntete(array (ADAU_NOM_AUTH, ADAU_NOM_TABLE, ADAU_MODIFIER, ADAU_SUPPRIMER));
$tableau_auth = array();
while ($ligne = $resultat->fetchRow()) {
$url->addQueryString('id_auth', $ligne[0]);
array_push ($tableau_auth, array ('<a href="'.$url->getURL().'">'.$ligne[1].'</a>'."\n", // Première colonne, le nom de l'authentification
$ligne[2], // deuxième colonne, le nom de la table d'annuaire
'<a href="'.$url->getURL().'">'.ADAU_MODIFIER.'</a>'."\n", // Colonne modifier
'<a href="'.$url->getURL().'&amp;action=supprimer" onclick="javascript:return confirm(\''.ADAU_SUPPRIMER_MESSAGE.'\');">'.ADAU_SUPPRIMER.'</a>'."\n"
));
$url->removeQueryString('id_auth');
}
$liste->construireListe($tableau_auth);
$res .= $liste->toHTML();
return $res;
}
}// Fin de la fonction afficherContenuCorps()
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.5 2006/09/21 15:22:04 jp_milcent
* Nettoyage dans l'url de la querystring id_auth.
*
* Revision 1.4 2005/04/14 13:54:51 jpm
* Amélioration de l'interface et mise en conformité.
*
* Revision 1.3 2005/03/09 10:50:08 jpm
* Changement d'un nom de fichier.
*
* Revision 1.2 2005/02/28 10:32:37 jpm
* Changement de nom de dossier.
*
* Revision 1.1 2004/12/06 11:31:59 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>