Subversion Repositories Applications.papyrus

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1987 → Rev 1988

/branches/v5.0-ouadji/papyrus/applications/installateur/bibliotheque/instal_installation.fonct.php
New file
0,0 → 1,356
<?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.7 2007-01-04 17:06:03 alexandre_tb 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.7 $ $Date: 2007-01-04 17:06:03 $
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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 .= '<p class="erreur">'.$texte_erreur.'</p>';
}
$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.6 2006/04/28 12:41:49 florian
* corrections erreurs chemin
*
* 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/v5.0-ouadji/papyrus/applications/installateur/installateur.php
New file
0,0 → 1,212
<?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.17 2008-11-19 09:25:36 aperonnet 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 Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.17 $ $Date: 2008-11-19 09:25:36 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | 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ête 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 &eacute;tape par &eacute;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&eacute;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.16 2007-04-20 13:31:42 florian
* remplacement des caracteres speciaux par des entite html
*
* Revision 1.15 2006/10/16 15:49:07 ddelon
* Refactorisation code mulitlinguisme et gestion menu invisibles
*
* Revision 1.14 2006/10/09 14:35:50 ddelon
* bug caractere invalide trainant dans fichier
*
* Revision 1.13 2006/10/05 15:17:29 florian
* changement presentation
*
* Revision 1.12 2006/10/05 15:11:17 florian
* changement presentation
*
* Revision 1.11 2006/10/05 14:41:53 florian
* changement presentation
*
* Revision 1.10 2005/09/23 14:20:23 florian
* nouvel habillage installateur, plus correction de quelques bugs
*
* Revision 1.9 2004/10/27 11:43:32 jpm
* Correction bogues diff mise à jour / installation.
*
* 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 Papyrus 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 Papyrus 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 Papyrus.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/styles/installateur.css
New file
0,0 → 1,105
/*****************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; }
.erreur {background-color:#FFEEEE;border:1px;
border: 1px dotted #A81106;padding:1px;margin:3px;}
/*****************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;}
label {padding-right:10px;}
input {margin:2px;background:#EEEEE9;}
/*****************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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/Logo_papyrus.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/Bandeau_haut.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/logo-firefox.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/Bandeau_bas.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/logo-css.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/Agraphe.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/Main_Erreur.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/logo-xhtml11.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_augmenter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_ajouter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_descendre.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_diminuer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_modifier.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_fermer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_administrer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_monter.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_ouvrir.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/navigation/adme_supprimer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/Calendrier-coin-jaune.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/Infos.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/presentations/images/picto.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/installateur/instal_fichier.inc.php
New file
0,0 → 1,474
<?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.36 2007-08-28 14:37:11 jp_milcent Exp $
/**
* Page de creation des fichiers necessaire a l'installation de Papyrus.
*
* Page permettant de creer 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.36 $ $Date: 2007-08-28 14:37:11 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | 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>Étape n&deg;'.$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&ecirc;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 recuperons uniquement les constantes a 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, ou 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 &ecirc;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);
}
$tempfn = tempnam('','');
$temp = fopen($tempfn, 'w');
 
fwrite($temp, $configCode);
fclose($temp);
$fichier_config_source = $tempfn;
$fichier_config_cible = $fichier['PAP_FTP_RACINE'].'papyrus/configuration/pap_config.inc.php';
// Nous écrivons le fichier de config sur le disque
$txt_ecriture_conf = '&Eacute;criture sur le serveur de <tt>'.$fichier_config_cible.'</tt>...';
$txt_ecriture_conf_erreur = '<span class="failed">AVERTISSEMENT:</span> Le fichier de configuration <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>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><pre>'.htmlentities($configCode).'</pre></code></div>'."\n";
$erreur = testerConfig($sortie_verif, $txt_ecriture_conf,
ftp_put($ftp, $fichier_config_cible, $fichier_config_source, FTP_ASCII),
$txt_ecriture_conf_erreur, 1, $erreur);
 
// +-----------------------------------------------------------------------------------------------------------+
// Tentative d'écriture du fichier .htaccess
$fichier_htaccess_chemin = $fichier['PAP_FTP_RACINE'].'.htaccess';
$url_ftp_htaccess = 'ftp://'.$fichier['PAP_FTP_UTILISATEUR'].':'.$fichier['PAP_FTP_MOT_DE_PASSE'].
'@'.$fichier['PAP_FTP_SERVEUR'].$fichier['PAP_FTP_RACINE'].'/.htaccess';
if (isset($pref['PAP_HTACCESS_REGENERATION']) && $pref['PAP_HTACCESS_REGENERATION'] == 1) {
$txt_suppression_htaccess = 'Suppression de <tt>'.$fichier_htaccess_chemin.'</tt>...';
$txt_suppression_htaccess_erreur = '<p>Le fichier <tt>'.$fichier_htaccess_chemin.'</tt> ne peut &ecirc;tre supprimer automatiquement. '.
'Veuillez utiliser un logiciel de transfert de fichier par FTP pour le supprimer.</p>';
$erreur = testerConfig($sortie_verif, $txt_suppression_htaccess, unlink($url_ftp_htaccess), $txt_suppression_htaccess_erreur, 1, $erreur);
}
$url_parse = parse_url('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$prefixe = dirname($url_parse['path']);
// Gestion des urls du style : http://www.tela-botanica.org/~mon_home/
$prefixe_tilde = '';
if (preg_match('/^\/~/', $prefixe)) {
$prefixe_tilde = $prefixe.'/';
}
$url = 'http://'.$_SERVER['HTTP_HOST'].$prefixe;
if (isset($pref['PAP_URL_REECRITURE']) && $pref['PAP_URL_REECRITURE'] == 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".
'# Réecriture d\'url pour valider les inscriptions'."\n".
'RewriteRule ^ins_([0-9a-z]*)$ page:inscription?id=$1 [QSA,L]'."\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} ^'.$prefixe.'/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:.+$ '.$prefixe_tilde.'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:.+$ '.$prefixe_tilde.'papyrus.php [QSA,L]'."\n\n".
'# Gestion des erreurs 404'."\n".
'ErrorDocument 404 '.$prefixe.'/erreur_http.php?erreur=404';
if (file_exists($fichier_htaccess_chemin)) {
$sortie_verif .='<p>Attention: Un fichier .htaccess est d&eacute;j&agrave; pr&eacute;sent sur le serveur.'.
'<br />'.$fichier_htaccess_chemin.
'<br />Veillez &agrave; le configurer correctement<br /><br />'.
'Contenu par d&eacute;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 = $fichier_htaccess_chemin;
$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);
 
}
// maj_fichier_config_appli($ftp,$fichier,'api/fckeditor/editor/filemanager/browser/default/connectors/php/config.php',array("Caldeira"=>"DDDDD"));
}
}
 
 
// Mise à jour des fichiers de configuration de chaque application :
function maj_fichier_config_appli($ftp, $fichier, $fichierconfig, $elements) {
$tempfn = tempnam('', '');
ftp_get($ftp,$tempfn,$fichier['PAP_FTP_RACINE'].$fichierconfig,FTP_ASCII);
$fp = fopen($tempfn, 'r');
if ($fp) {
while (!feof($fp)) {
$cont .= fread($fp, 500);
}
fclose($fp);
$fp = fopen($tempfn, 'w');
if ($fp) {
foreach ($elements as $element) {
list($expr,$rempl)=$elements;
preg_replace('/'.$expr.'/',$rempl,$cont);
}
fwrite($fp, $cont);
fclose($fp);
ftp_put($ftp, $fichier['PAP_FTP_RACINE'].$fichierconfig, $tempfn, FTP_ASCII);
}
}
}
 
// 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)) {
// Verification 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 &agrave; nouveau" /></li>'."\n";
$sortie .= ' </ul>'."\n";
$sortie .= ' </form>';
$sortie .= $sortie_verif;
} else if (($erreur == 0 || $erreur == 1) && !empty($sortie_verif)) {
// Verification du fichier sans interuption... passage a l'etape 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 |
// +------------------------------------------------------------------------------------------------------+
 
// Creation du formulaire de configuration de la base de donnees
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&egrave;s</h2></li>'."\n";
$sortie_form .= '<li>Entrer le nom de dommaine pour acc&eacute;der &agrave; votre d&eacute;p&ocirc;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&eacute;ro du port pour le service FTP sur la machine h&eacute;bergeant Papyrus. '.
'En g&eacute;n&eacute;ral c\'est 21.</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="ftp_port">N&deg; du port d\'acc&egrave;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&eacute;p&ocirc;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&ugrave; vous avez d&eacute;pos&eacute; les fichiers de Papyrus, le '.
'dossier le plus haut auquel vous pouvez acc&eacute;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&eacute;p&ocirc;t FTP :</label>'.
'<input id="ftp_racine"'.$disabled.'type="text" size="60" name="fichier[PAP_FTP_RACINE]" value="'.$fichier['PAP_FTP_RACINE'].'" />'.
'</li>'."\n";
$sortie_form .= '<li>Si vous voulez générer un nouveau fichier .htaccess, cochez cette case (si vous ne savez pas ce qu\'est un fichier .htaccess '.
'n\'activez pas cette option).</li>'."\n";
$sortie_form .= '<li>'."\n".
'<label for="htaccess_regeneration">Remplacer mon fichier .htacces :</label>'.
'<input id="htaccess_regeneration"'.$disabled.'type="checkbox" name="pref[PAP_HTACCESS_REGENERATION]" value="1" />'.
'Activation'.'</li>'."\n";
return $sortie_form;
}
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.35 2007-06-26 12:08:18 jp_milcent
* Correction de l'encodage et de la création du htaccess.
*
* Revision 1.34 2007-04-20 14:55:24 alexandre_tb
* charset
*
* Revision 1.33 2007/04/20 12:55:07 ddelon
* config fckeditor
*
* Revision 1.32 2007/04/20 12:49:41 ddelon
* config fckeditor
*
* Revision 1.31 2007/04/20 10:15:15 alexandre_tb
* correction typo
*
* Revision 1.30 2007/04/20 09:18:09 alexandre_tb
* correction pb encodage
*
* Revision 1.29 2007/04/20 09:13:37 alexandre_tb
* correction pb encodage
*
* Revision 1.28 2007/04/20 09:05:46 alexandre_tb
* correction pb encodage
*
* Revision 1.27 2007/04/19 16:53:57 neiluj
* fix de l'upload des fichiers de conf (ftp_put)
*
* Revision 1.26 2007/04/19 15:34:35 neiluj
* préparration release (livraison) "Narmer" - v0.25
*
* Revision 1.25 2006/12/01 15:43:01 alexandre_tb
* prise en compte dans le rewriteengine de l'activation ou non de la reecriture
*
* 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/v5.0-ouadji/papyrus/applications/installateur/instal_base_de_donnees.inc.php
New file
0,0 → 1,401
<?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.35 2007-08-28 14:37:11 jp_milcent 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.35 $ $Date: 2007-08-28 14:37:11 $
// +------------------------------------------------------------------------------------------------------+
**/
 
// +------------------------------------------------------------------------------------------------------+
// | 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&deg;'.$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&eacute;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érifier 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&eacute;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&eacute;es du fichier sql version '.$version.'</h2>';
$sql_contenu = PMA_readFile($file_sql_contenu);
} else
unset($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&eacute;ation table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'D&eacute;j&agrave; cr&eacute;&eacute;e ?', 0, $erreur);
} else if ($requete_type == 'alter') {
$erreur = testerConfig( $sortie_verif, 'Modification structure table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'D&eacute;j&agrave; modifi&eacute;e ?', 0, $erreur);
} else if ($requete_type == 'insert') {
$erreur = testerConfig( $sortie_verif, 'Insertion table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Donn&eacute;es d&eacute;j&agrave; pr&eacute;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&eacute;ation table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'D&eacute;j&agrave; cr&eacute;&eacute; ?', 0, $erreur);
} else if ($requete_type == 'alter') {
$erreur = testerConfig( $sortie_verif, 'Modification structure table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'D&eacute;j&agrave; modifi&eacute;e ?', 0, $erreur);
} else if ($requete_type == 'insert') {
$erreur = testerConfig( $sortie_verif, 'Insertion table '.$table_nom.'...', @mysql_query($value['query'], $dblink),
'Donn&eacute;es d&eacute;j&agrave; pr&eacute;sente ?', 0, $erreur);
}
}
}
}
}
//Insertion des requêtes dépendant du formulaire d'installation
$sortie_verif .= '<h2>Insertion des donn&eacute;es d&eacute;pendant du formulaire pr&eacute;c&eacute;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&eacute;es d&eacute;j&agrave; pr&eacute;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/', 'page:inscription', $pref['PAP_URL']);
$url_inscription_erreur = preg_replace ('/papyrus\.php/', 'page:inscription?action&#61;mdp_oubli', $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.' url_erreur='.$url_inscription_erreur.'");';
 
$erreur = testerConfig($sortie_verif, 'Insertion de l\'authentification utilisateurs ...', @mysql_query($requete_auth, $dblink),
'Donn&eacute;es d&eacute;j&agrave; pr&eacute;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 &agrave; 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 données
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.34 2007-06-26 12:08:18 jp_milcent
* Correction de l'encodage et de la création du htaccess.
*
* Revision 1.33 2007-06-25 12:15:07 alexandre_tb
* merge from narmer
*
* Revision 1.32 2007/04/20 09:05:46 alexandre_tb
* correction pb encodage
*
* Revision 1.31 2007/04/19 16:19:45 neiluj
* optimisation
*
* Revision 1.30 2007/04/19 16:18:05 neiluj
* correction bug lecture fichier SQL
*
* Revision 1.29 2006/12/01 14:05:57 alexandre_tb
* affichage des mesages d erreurs quand on se trompe dans les parametres mysql
*
* 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/v5.0-ouadji/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/v5.0-ouadji/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 ----------------------------------------------------------------------------------------+
*/
?>
/branches/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/admin_auth/bibliotheque/HTML_formulaireAuth.class.php
New file
0,0 → 1,203
<?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.5 2007-06-26 14:18:53 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.5 $
// +------------------------------------------------------------------------------------------------------+
*/
 
 
// +------------------------------------------------------------------------------------------------------+
// | 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( '<p class="formulaire_element"><span class="form_label">'."\n".
'{label}'."\n".
'<!-- BEGIN required --><span style="color:red; width:5px; margin:0; padding:0;">*</span><!-- END required -->'."\n".
'</span>'."\n".'{element}'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</p>'."\n");
$squelette->setGroupElementTemplate('<p style="display:inline">{element}</p>', 'form_boutons');
$squelette->setRequiredNoteTemplate("\n".'<p class="symbole_obligatoire">*&nbsp;:&nbsp;{requiredNote}</p>'."\n");
//Note pour les erreurs javascript
$this->setJsWarnings('Erreur de saisie', 'Veuillez verifier vos informations saisies');
// Note de fin de formulaire
$this->setRequiredNote('Indique les champs obligatoires');
// $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 = 35;
$cols = 50;
$rows = 6;
$form_debut = '<fieldset>'."\n".'<legend>'.ADAU_NOM_FORM.'</legend>'."\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 = "\n".'</fieldset>'."\n";
$this->addElement('html', $form_fin);
// Gestion des boutons
$buttons[] = &HTML_QuickForm::createElement('link', 'annuler', ADAU_ANNULER,
str_replace ("&amp;", "&", $url_retour->getURL()), ADAU_ANNULER); // Le preg_replace contourne un pb de QuickForm et Net_URL
// qui remplacent deux fois les & par des &amp;
//Bouton de validation du formulaire // ce qui fait échouer le lien
$buttons[] = &HTML_QuickForm::createElement('submit', 'valider', ADAU_VALIDER);
$this->addGroup($buttons, 'form_boutons', null, '&nbsp;');
// $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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/admin_application/bibliotheque/HTML_formulaireAppli.class.php
New file
0,0 → 1,123
<?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.5 2007-06-26 14:18:53 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.5 $
// +------------------------------------------------------------------------------------------------------+
*/
 
 
// +------------------------------------------------------------------------------------------------------+
// | 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)
{
$squelette =& $this->defaultRenderer();
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<p class="formulaire_element"><span class="form_label">'."\n".
'{label}'."\n".
'<!-- BEGIN required --><span style="color:red; width:5px; margin:0; padding:0;">*</span><!-- END required -->'."\n".
'</span>'."\n".'{element}'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</p>'."\n");
$squelette->setGroupElementTemplate('<p style="display:inline">{element}</p>', 'form_boutons');
$squelette->setRequiredNoteTemplate("\n".'<p class="symbole_obligatoire">*&nbsp;:&nbsp;{requiredNote}</p>'."\n");
//Note pour les erreurs javascript
$this->setJsWarnings('Erreur de saisie', 'Veuillez verifier vos informations saisies');
// Note de fin de formulaire
$this->setRequiredNote('Indique les champs obligatoires');
$this->addElement ('text', 'nom_appl', ADAP_NOM_APPL, array ('size' => 35)) ;
$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' => 35)) ;
$this->addElement('html', '<br />');
$this->setRequiredNote(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, 'form_boutons', null, '&nbsp;');
} // end of member function _construitFormulaire
} // end of HTML_formulaireProjet
?>
/branches/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/admin_application/admin_application.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 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.9 2007-08-28 14:02:06 jp_milcent 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.9 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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'] ;
$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
$url->addQueryString('action', 'nouveau');
$url_nouveau = $url->getURL();
$url->removeQueryString('action', 'nouveau');
$res .= '<a href="'.$url_nouveau.'">'.ADAP_AJOUTER.'</a>'."\n<br />" ;
// traitement de la suppression
if (isset ($_REQUEST['action']) && $_REQUEST['action'] == 'supprimer') adap_supprimer_application($_REQUEST['id_appl'], $db) ;
// traitement de l'ajout
if (isset ($_REQUEST['action']) || isset ($_REQUEST['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 (isset ($_REQUEST['action']) && $_REQUEST['action'] == 'nouveau') {
$formulaire->addElement ('hidden', 'action', 'nouveau_v') ;
return $formulaire->toHTML() ;
}
if (isset ($_REQUEST['id_appl']) && !isset ($_REQUEST['action'])) {
$formulaire->addElement ('hidden', 'action', 'modifier_v') ;
$formulaire->addElement ('hidden', 'id_appl', $_REQUEST['id_appl']) ;
$formulaire->setDefaults(adap_valeurs_par_defaut($_REQUEST['id_appl'], $db)) ;
return $formulaire->toHTML() ;
}
if ($_REQUEST['action'] == 'modifier_v') {
if ($formulaire->validate()) {
mise_a_jour ($formulaire->getSubmitValues(), $db) ;
}
}
if ($_REQUEST['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.8 2007-03-20 14:17:36 alexandre_tb
* remplacement des varaibles $GLOBALS par $_REQUEST, pour que l appli fonctionne avec les register_globals à Off
*
* Revision 1.7 2006/12/01 10:39:14 alexandre_tb
* Suppression des références aux applettes
*
* 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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/admin_menu/bibliotheque/adme_general.fonct.php
New file
0,0 → 1,398
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)
//
// Ce logiciel est un programme informatique servant à gérer du contenu et des
// applications web.
// Ce logiciel est régi par la licence CeCILL soumise au droit français et
// respectant les principes de diffusion des logiciels libres. Vous pouvez
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
// sur le site "http://www.cecill.info".
 
// En contrepartie de l'accessibilité au code source et des droits de copie,
// de modification et de redistribution accordés par cette licence, il n'est
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
// seule une responsabilité restreinte pèse sur l'auteur du programme, le
// titulaire des droits patrimoniaux et les concédants successifs.
 
// A cet égard l'attention de l'utilisateur est attirée sur les risques
// associés au chargement, à l'utilisation, à la modification et/ou au
// développement et à la reproduction du logiciel par l'utilisateur étant
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à
// manipuler et qui le réserve donc à des développeurs et des professionnels
// avertis possédant des connaissances informatiques approfondies. Les
// utilisateurs sont donc invités à charger et tester l'adéquation du
// logiciel à leurs besoins dans des conditions permettant d'assurer la
// sécurité de leurs systèmes et ou de leurs données et, plus généralement,
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
 
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
// pris connaissance de la licence CeCILL, et que vous en avez accepté les
// termes.
// ----
// CVS : $Id: adme_general.fonct.php,v 1.20 2007-10-24 14:43:02 ddelon Exp $
/**
* Contient l'affichage par défaut de l'appli quand aucune actin
*
* Ce fichier contient les fonctions d'affichage commune à toute l'application Admin Menu.
* Nous y trouvons, entre autre, la fonction d'affichage par défaut de l'appli.
*
*@package Admin_menu
*@subpackage Fonctions
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.20 $ $Date: 2007-10-24 14:43:02 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
/** Fonction ADME_afficherFormPrincipal() - Affichage par défaut.
*
* Fournit l'affichage par défaut de l'application Admin Menus.
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'url de base.
* @return string le XHTML par défaut de la page.
*/
function ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action)
{
$db=$objet_pear_db;
$id_langue = $GLOBALS['_GEN_commun']['i18n']; //identifiant de la langue choisie
// Langue en cours : langue choisie ou langue par defaut (principale)
if (isset($id_langue) && ($id_langue!='')) {
$langue_test=$id_langue;
} else {
$langue_test=GEN_I18N_ID_DEFAUT;
}
 
//$langue_test=GEN_I18N_ID_DEFAUT;
//requete pour recuperer l'id du menu par defaut
$requete = 'SELECT gs_id_site '.
'FROM gen_site, gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_site_01 = gs_id_site '.
'AND gsr_id_valeur=101 '.
'AND gs_ce_i18n = "'.$langue_test.'" ';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$id_site_par_defaut=$ligne->gs_id_site;
}
// Liste des sites principaux :
// Recherche de tous les sites langue en cours
$requete = 'SELECT * '.
'FROM gen_site, gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_site_01 = gs_id_site '.
'AND gsr_id_valeur IN (102, 103) '.
'AND gs_ce_i18n = "'.$langue_test.'" '.
'ORDER BY gsr_ordre';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$liste_site=array();
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
if ($langue_test == GEN_I18N_ID_DEFAUT) {
$requete_est_traduction = 'SELECT gsr_id_site_01 '.
'FROM gen_site_relation '.
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
'AND gsr_id_site_01 <> gsr_id_site_02 ' .
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
$resultat_est_traduction = $db->query($requete_est_traduction);
(DB::isError($resultat_est_traduction))
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
: '';
if ( $resultat_est_traduction->numRows() == 0 ) {
$liste_site[]=$ligne;
}
}
else {
$liste_site[]=$ligne;
}
}
$resultat->free();
// Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue
// la langue par defaut, non traduits dans la langue en cours et n'etant pas des traductions
if ($langue_test != GEN_I18N_ID_DEFAUT) {
 
$requete = 'SELECT * '.
'FROM gen_site, gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gs_id_site = gsr_id_site_01 '.
'AND gsr_id_valeur IN (102, 103) '.
'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.
'ORDER BY gs_code_num ASC';// 102 = site "principal" et 103 = site "externe"
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Recherche de tous les sites de la langue principale qui ne sont pas traduits dans la langue en cours
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$requete_est_traduction = 'SELECT gsr_id_site_01 '.
'FROM gen_site_relation '.
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
'AND gsr_id_site_01 <> gsr_id_site_02 ' .
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
$resultat_est_traduction = $db->query($requete_est_traduction);
(DB::isError($resultat_est_traduction))
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
: '';
if ( $resultat_est_traduction->numRows() == 0 ) {
if (isset($id_langue) && ($id_langue!='')) {
$langue_test=$id_langue;
} else {
$langue_test=GEN_I18N_ID_DEFAUT;
}
$requete_traduction = 'SELECT gsr_id_site_01 '.
'FROM gen_site_relation, gen_site '.
'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
'AND gsr_id_site_02 = gs_id_site '.
'AND gs_ce_i18n = "'.$langue_test.'" '.
'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
$resultat_traduction = $db->query($requete_traduction);
(DB::isError($resultat_traduction))
? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
: '';
if ( $resultat_traduction->numRows() == 0 ) {
$liste_site []=$ligne;
}
$resultat_traduction->free();
}
$resultat_est_traduction->free();
}
$resultat->free();
}
// Traduction d'un site principal uniquement :
$requete = 'SELECT * '.
'FROM gen_site_relation '.
'WHERE gsr_id_site_02 = '.$adme_site_id.' '.
'AND gsr_id_valeur =1 '; // 1 = "avoir traduction"
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
if ( $resultat->numRows() == 0 ) {
$adme_site_id =$adme_site_id;
}
else {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$adme_site_id = $ligne->gsr_id_site_01;
}
$resultat->free();
//---------------------------------------------------------------------------------------------------------------
// Création du formulaire
// Notes : Quickform semble remplacer les & des &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();
//print $adme_site_id;
 
foreach ($liste_site as $ligne ) {
if (!isset($adme_site_id) || $adme_site_id == 0) {
$adme_site_id = $ligne->gs_id_site;
}
// print $ligne->gs_id_site;
if ($ligne->gs_id_site == $adme_site_id) {
$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site, 'selected="selected"');
// Attribution du nom du site sur lequel on travaille pour le titre
$site_nom = $ligne->gs_nom;
} else {
$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site);
}
}
$form->addElement($objet_select);
$form->addElement('submit', 'choisir_site', ADME_LG_FORM_SITE_VALIDER);
$partie_site_fin = "\n".'</fieldset>';
$form->addElement('html', $partie_site_fin);
// Instanciation des valeurs par défaut du formulaire
if (isset($id_site_par_defaut)) {
if (!isset($_GET['adme_site_id'])) {
$adme_site_id=$id_site_par_defaut;
} else {
$adme_site_id=$_GET['adme_site_id'];
}
}
$form->setDefaults(array('adme_site_id' => $adme_site_id));
$retour ='';
$retour .= '<h1>'.ADME_LG_MENU_TITRE.$site_nom.'</h1>'."\n";
$retour .= $form->toHTML()."\n";
//---------------------------------------------------------------------------------------------------------------
// Gestion des menus classiques
$retour .= '<p>'."\n";
$objet_pear_url_copie = $objet_pear_url;
$objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_AJOUTER);
$objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id);
$objet_pear_url_copie->addQueryString('adme_menu_id', 0);
$url_ajout_menu_classique_n1 = $objet_pear_url_copie->getURL();
//unset($url_ajout_menu_n1);
$retour .= '<a href="'.$url_ajout_menu_classique_n1.'" >'.
ADME_LG_MENU_CLASSIQUE_RACINE.'&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.19 2007-04-19 15:34:35 neiluj
* préparration release (livraison) "Narmer" - v0.25
*
* Revision 1.18 2006/10/16 15:49:07 ddelon
* Refactorisation code mulitlinguisme et gestion menu invisibles
*
* Revision 1.17 2006/10/06 13:38:45 florian
* ergonomie amélioree
*
* Revision 1.16 2006/04/28 12:41:49 florian
* corrections erreurs chemin
*
* Revision 1.15 2006/03/24 13:03:24 ddelon
* bug afficheur multilinguisme
*
* Revision 1.14 2006/03/23 20:24:59 ddelon
* *** empty log message ***
*
* Revision 1.13 2006/03/13 21:00:20 ddelon
* Suppression messages d'erreur multilinguisme
*
* Revision 1.12 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.11.2.1 2006/02/28 14:02:11 ddelon
* Finition multilinguisme
*
* Revision 1.11 2005/07/18 16:14:32 ddelon
* css admin + menu communs
*
* Revision 1.10 2005/07/08 21:57:24 ddelon
* Copyright
*
* Revision 1.9 2005/05/12 16:51:37 alex
* Changement de l'odre d'apparition des sites dans l'administration des menus.
*
* Revision 1.8 2005/01/26 16:18:05 jpm
* Correction bogue 221 : mauvais réglage du titre.
*
* Revision 1.7 2004/11/24 11:31:51 jpm
* Ajout d'une contante de langue à la place d'un texte.
*
* Revision 1.6 2004/11/10 17:26:07 jpm
* Fin gestion de la traduction.
*
* Revision 1.5 2004/11/10 11:58:54 jpm
* Mise en place des constantes de traduction de l'appli.
*
* Revision 1.4 2004/11/09 17:48:35 jpm
* Gestion de différentes interfaces d'administration.
*
* Revision 1.3 2004/11/09 12:37:34 jpm
* Fin de gestion des menus et mise en conformité avec la convention de codage.
*
* Revision 1.2 2004/11/08 17:41:07 jpm
* Légères corrections : multisite, corrections SQL.
*
* Revision 1.1 2004/11/04 12:26:42 jpm
* Contient les fonctions d'affichage général de l'appli ADME.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/v5.0-ouadji/papyrus/applications/admin_menu/bibliotheque/adme_menu_classique.fonct.php
New file
0,0 → 1,1999
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)
//
// Ce logiciel est un programme informatique servant à gérer du contenu et des
// applications web.
// Ce logiciel est régi par la licence CeCILL soumise au droit français et
// respectant les principes de diffusion des logiciels libres. Vous pouvez
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
// sur le site "http://www.cecill.info".
 
// En contrepartie de l'accessibilité au code source et des droits de copie,
// de modification et de redistribution accordés par cette licence, il n'est
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
// seule une responsabilité restreinte pèse sur l'auteur du programme, le
// titulaire des droits patrimoniaux et les concédants successifs.
 
// A cet égard l'attention de l'utilisateur est attirée sur les risques
// associés au chargement, à l'utilisation, à la modification et/ou au
// développement et à la reproduction du logiciel par l'utilisateur étant
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à
// manipuler et qui le réserve donc à des développeurs et des professionnels
// avertis possédant des connaissances informatiques approfondies. Les
// utilisateurs sont donc invités à charger et tester l'adéquation du
// logiciel à leurs besoins dans des conditions permettant d'assurer la
// sécurité de leurs systèmes et ou de leurs données et, plus généralement,
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
 
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
// pris connaissance de la licence CeCILL, et que vous en avez accepté les
// termes.
// ----
// CVS : $Id: adme_menu_classique.fonct.php,v 1.42 2007-10-25 14:26:56 ddelon Exp $
/**
* Fonctions de gestion des menus classiques
*
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus classiques.
* Par menus classiques nous entendons tous les menus devant paraitre dans l'arborescences
* des menus disponibles pour le site courant.
*
*@package Admin_menu
*@subpackage Fonctions
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.42 $ $Date: 2007-10-25 14:26:56 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** Fonction ADME_afficherListeMenuClassique () - Affiche un arbre de menu en xhtml
*
* Elle forme l'arbre des menus classiques à administrer.
* Ancien nom : deployer_menu().
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'url de base.
* @param integer l'identifiant du menu à administrer.
* @param integer l'identifiant du menu sur lequel on agit.
* @param string le nom de l'action courante.
* @param integer l'identifiant du menu en cours de déploiement.
* @param boolean true indique que l'on a à faire au premier appel de cette fonction récursive.
* @return string le code XHTML constituant l'arbre des menus à administrer.
*/
function ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $id_menu_a_deployer, $bln_premier_appel = true)
{
 
// Initialisation des variables :
$retour = '';
// Est-ce que ces menus comporte des sous-menus ?
$requete_sous_menu = 'SELECT gm_id_menu '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR01.gmr_id_menu_02 = '.$id_menu_a_deployer.' '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
'AND gm_ce_site = '.$adme_site_id.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
'ORDER BY GMR01.gmr_ordre ASC';
$resultat_sous_menu = $db->query($requete_sous_menu) ;
if (DB::isError($resultat_sous_menu)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_sous_menu->getMessage(), $requete_sous_menu));
}
// Gestion du stockage ou déstockage des menus ouverts
if (($adme_action == ADME_LG_ACTION_DEPLIER || $adme_action == ADME_LG_ACTION_CLASSIQUE_AJOUTER) && $id_menu_a_deployer != 0) {
$_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id] = $adme_menu_id;
}
if ($adme_action == ADME_LG_ACTION_PLIER && $id_menu_a_deployer != 0) {
unset($_SESSION['adme_menus_classiques_ouverts'][$adme_menu_id]);
foreach ($_SESSION['adme_menus_classiques_ouverts'] as $val) {
if (GEN_etreAncetre($adme_menu_id, $val)) {
unset($_SESSION['adme_menus_classiques_ouverts'][$val]);
}
}
}
// Gestion affichage des menus
if ($resultat_sous_menu->numRows() > 0) {
// Ici, on sait qu'un menu a des sous menus, on commence par l'afficher:
if ($bln_premier_appel == false) {
$retour .= '<li>'."\n";
if (GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) ||
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_DEPLIER) ||
isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer])
){
// Affiche un -
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 1);
} else if ( !GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) ||
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_PLIER) ||
!isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer])
){
// Affiche un +
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 2);
}
}
if ($bln_premier_appel == true || GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) ||
($id_menu_a_deployer == $adme_menu_id && $adme_action == ADME_LG_ACTION_DEPLIER) ||
isset($_SESSION['adme_menus_classiques_ouverts'][$id_menu_a_deployer])
){
$retour .= '<ul class="menu_classique">'."\n";
while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
$retour .= ADME_afficherListeMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $ligne_sous_menu->gm_id_menu, false);
}
$retour .= '</ul>'."\n";
}
if ($bln_premier_appel == false) {
$retour .= '</li>'."\n";
}
} else if ($resultat_sous_menu->numRows() == 0 && $bln_premier_appel == false) {
$retour .= '<li>'."\n";
$retour .= ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $id_menu_a_deployer, 0);
$retour .= '</li>'."\n";
}
return $retour;
}
 
/** Fonction ADME_retournerXhtmlMenuClassique() - Effectue une sortie d'un menu en XHTML
*
* Retourne le XHTML d'une ligne de l'arbre des menus "classiques" permettant de l'administer.
* Ancien nom : menu_toHtml().
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'url de base.
* @param integer l'identifiant du site à administrer.
* @param integer l'identifiant du menu à administrer.
* @param integer 0 indique que le menu ne possède pas de fils, 1 qu'il faut afficher un - et 2 un +.
* @return string une ligne de liste XHTML
*/
function ADME_retournerXhtmlMenuClassique($db, $url, $adme_site_id, $adme_menu_id, $int_deplier,$est_traduction=false,$menu_traduction_defaut=0)
{
//-------------------------------------------------------------------------------------------------------------------
// Initialisation des variables
 
//-------------------------------------------------------------------------------------------------------------------
// Récupération des infos concernant l'administrateur d'un menu
$requete = 'SELECT gen_menu.*, ga_prenom '.
'FROM gen_menu, gen_annuaire '.
'WHERE gm_id_menu = '.$adme_menu_id.' '.
'AND gm_ce_admin = ga_id_administrateur';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
//-------------------------------------------------------------------------------------------------------------------
// Recupération des infos de l'appli du menu courant.
$ligne_app = GEN_retournerInfoAppliMenu($db, $adme_menu_id);
//-------------------------------------------------------------------------------------------------------------------
// XHTML image plier-déplier
$url->addQueryString('adme_site_id', $adme_site_id);
$url->addQueryString('adme_menu_id', $adme_menu_id);
$xhtml_pd = '';
if ($int_deplier != 0) {
if ($int_deplier == 1) {
// Afficher un -
$image_plier_deplier = ADME_IMAGE_MOINS;
$alt = ADME_LG_ACTION_PLIER_ALT;
$url->addQueryString('adme_action', ADME_LG_ACTION_PLIER);
$url_plier_deplier = $url->getURL();
} else if ($int_deplier == 2) {
// Afficher un +
$image_plier_deplier = ADME_IMAGE_PLUS;
$alt = ADME_LG_ACTION_DEPLIER_ALT;
$url->addQueryString('adme_action', ADME_LG_ACTION_DEPLIER);
$url_plier_deplier = $url->getURL();
}
$xhtml_pd = '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'.
'<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'.
'</a>'.'&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) {
$requete_traduction = 'SELECT gmr_id_menu_02, gm_ce_i18n '.
'FROM gen_menu_relation, gen_menu '.
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' .
'AND gmr_id_menu_02 = gm_id_menu '.
'AND gmr_id_valeur = 2 ';// 2 = "avoir traduction"
$resultat_traduction = $db->query($requete_traduction);
(DB::isError($resultat_traduction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
: '';
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_TRADUIRE);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_TRADUIRE_TITLE.'">'.
ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ALT.
'</a>&nbsp;'."\n";
 
// Restriction possible à une langue si pas traduit
 
if ($resultat_traduction->numRows() == 0 ) {
 
$requete_lang = 'SELECT * FROM gen_i18n ';
 
$resultat_lang = $db->query($requete_lang);
(DB::isError($resultat_lang)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_lang->getMessage(), $requete_lang)) : '';
$requete_restriction = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE '.$adme_menu_id.' = gmr_id_menu_01 ' .
'AND gmr_id_valeur = 106 ';// 106 restriction de menu
$resultat_restriction = $db->query($requete_restriction);
(DB::isError($resultat_restriction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_restriction->getMessage(), $requete_restriction))
: '';
if ($resultat_restriction->numRows() == 0 ) {
$restriction=0;
}
else {
$restriction=1;
}
while ($ligne_lang = $resultat_lang->fetchRow(DB_FETCHMODE_OBJECT) ) {
if (($restriction) && ($ligne->gm_ce_i18n==$ligne_lang->gi_id_i18n)) {
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_OUVRIR);
$url->addQueryString('zone',$ligne_lang->gi_id_i18n);
$xhtml_action .= '<i><b><a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_OUVRIR_TITLE.'">'.
$ligne_lang->gi_id_i18n.
'</a></b></i>&nbsp;'."\n";
}
else {
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_LIMITER);
$url->addQueryString('zone',$ligne_lang->gi_id_i18n);
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_LIMITER_TITLE.'">'.
$ligne_lang->gi_id_i18n.
'</a>&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);
$script = 'function switchMenu(obj) {
var el = document.getElementById(obj);
if(el.style.display != "block")
{
el.style.display = "block";
}
else
{
el.style.display = "none";
}
}';
GEN_stockerCodeScript($script);
// Nous sommes toujours en modification car un menu est ajouté automatiquement!
// Récupération des informations du menu concerné.
if (!isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) {
$aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC);
if ($aso_valeurs === false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'.
'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
// Requete pour récupérer les informations issues des relations du site à modifier
$ligne = GEN_lireInfoMenuRelation($db, $adme_menu_id, $id_valeur = 101);
$aso_valeurs['defaut'] = false;
if (isset($ligne) && !empty($ligne)) {
if ($ligne->gmr_id_valeur != false) {// 101 = site par défaut
$aso_valeurs['defaut'] = true;
}
}
}
// Titre de la page
if ($traduction) {
$retour = '<h1>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL_TRADUCTION.'</h1>'."\n";
}
else {
$retour = '<h1>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL.'</h1>'."\n";
}
 
$retour .= '<p class="adme_menu_id" >'.ADME_LG_FORM_MENU_ID.'<span id="adme_menu_id">'.$aso_valeurs['gm_id_menu'].'</span></p>'."\n";
// Création du formulaire
// Notes : Quickform semble remplacer les & des &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( '<p class="formulaire_element"><span class="form_label">'."\n".
'{label}'."\n".
'<!-- BEGIN required --><span style="color:red; width:5px; margin:0; padding:0;">*</span><!-- END required -->'."\n".
'</span>'."\n".'{element}'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</p>'."\n");
$squelette->setGroupElementTemplate('<p style="display:inline">{element}</p>', 'form_boutons');
$squelette->setRequiredNoteTemplate("\n".'<p class="symbole_obligatoire">*&nbsp;:&nbsp;{requiredNote}</p>'."\n");
//Note pour les erreurs javascript
$form->setJsWarnings('Erreur de saisie', 'Veuillez verifier vos informations saisies');
// Note de fin de formulaire
$form->setRequiredNote(ADME_LG_FORM_TXT_CHP_OBLIGATOIRE);
 
$partie_menu_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG.'</legend>'."\n";
$form->addElement('html', $partie_menu_debut);
$id = 'gm_code_alpha';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 50);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CODE_ALPHA.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_CODE_ALPHA, 'required', '', 'client');
$id = 'gm_nom';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_NOM.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_NOM, 'required', '', 'client');
$form->applyFilter($id, 'trim');
$id = 'gm_description_resume';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 50);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_INFO_BULLE.'</label>';
$form->addElement('textarea', $id, $label, $aso_attributs);
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_INFO_BULLE, 'required', '', 'client');
// Requête sur les applications
$requete = 'SELECT gap_id_application, gap_nom '.
'FROM gen_application '.
'WHERE gap_bool_applette = 0 '.
'ORDER BY gap_nom ASC';// Pour éviter d'afficher les applettes.
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$aso_options = array();
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$aso_options[$ligne->gap_id_application] = $ligne->gap_nom;
}
$resultat->free();
$id = 'gm_ce_application';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_APPLI.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
if ($traduction) {
// Recherche liste des menu deja traduits
$requete = 'SELECT distinct gm_ce_i18n '.
'FROM gen_menu_relation, gen_menu '.
'WHERE gmr_id_menu_01 = ' . $adme_menu_id .' '.
'AND gm_id_menu = gmr_id_menu_02 '.
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction"
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$not_in_langue='';
if ( $resultat->numRows() == 0 ) {
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')";
}
else {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$not_in_langue="'".$ligne->gm_ce_i18n."'".",".$not_in_langue;
$end="'".$ligne->gm_ce_i18n."'";
}
if ($not_in_langue) {
$not_in_langue="'".$aso_valeurs['gm_ce_i18n']."'".",".$not_in_langue;
$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
}
else {
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')";
}
}
$resultat->free();
$requete = "SELECT * FROM gen_i18n where ".$not_in_langue;
/*$requete = 'SELECT * '.
'FROM gen_i18n ';*/
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$aso_options = array();
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
$aso_options[$ligne->gi_id_i18n] = $ligne->gi_id_i18n;
}
$resultat->free();
$id = 'gs_ce_i18n';
$aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.'Langue : '.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
}
$id = 'gm_titre';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_mots_cles';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 50);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_MOT_CLE.'</label>';
$form->addElement('textarea', $id, $label, $aso_attributs);
$id = 'gm_description_libre';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DESCRIPTION.'</label>';
$form->addElement('textarea', $id, $label, $aso_attributs);
$partie_menu_fin = "\n".'</fieldset>'."\n";
$form->addElement('html', $partie_menu_fin);
//Lien javascript pour cacher les options compliquées
$form->addElement('html', '<a href="#" onclick="switchMenu(\'config_avancee\');" title="'.ADME_VOIR_CONFIG_AVANCEE.'">'.ADME_VOIR_CONFIG_AVANCEE.'</a><br />'."\n");
//début de la div cachée pour les options compliquées-----------------------------------------------
$form->addElement('html', '<div id="config_avancee" style="display:none;">');
$partie_entete_debut = '<fieldset>'."\n".'<legend>'.ADME_CONFIG_AVANCEE.'</legend>'."\n";
$form->addElement('html', $partie_entete_debut);
$id = 'gm_code_num';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 5, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CODE_NUM.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule($id, ADME_LG_FORM_MENU_REGLE_CODE_NUM, 'required', '', 'client');
$id = 'gm_raccourci_clavier';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_RACCOURCI.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'defaut';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
if ($aso_valeurs[$id] === true) {
$aso_attributs['checked'] = 'checked';
}
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DEFAUT.'</label>';
$form->addElement('checkbox', $id, $label, '', $aso_attributs);
$id = 'gm_fichier_squelette';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_FICHIER_SQUELETTE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_application_arguments';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_APPLI_ARGUMENT.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_robot';
$aso_options = array( 'index,follow' => ADME_LG_FORM_MENU_INDEX_FOLLOW,
'index' => ADME_LG_FORM_MENU_INDEX,
'noindex' => ADME_LG_FORM_MENU_NOINDEX,
'noindex,nofollow' => ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW,
'' => ADME_LG_FORM_MENU_INDEX_VIDE);
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ROBOT.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
$id = 'gm_titre_alternatif';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TITRE_ALTERNATIF.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_description_table_matieres';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TABLE_MATIERE.'</label>';
$form->addElement('textarea', $id, $label, $aso_attributs);
$id = 'gm_source';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_SOURCE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_auteur';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_AUTEUR.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_contributeur';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 2, 'cols' => 45);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CONTRIBUTEUR.'</label>';
$form->addElement('textarea', $id, $label, $aso_attributs);
$id = 'gm_editeur';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 65000);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_EDITEUR.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_date_creation';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DATE_CREATION.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_date_debut_validite';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_date_fin_validite';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DATE_VALIDITE_FIN.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_date_copyright';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 19, 'maxlength' => 19);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_DATE_COPYRIGHT.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_licence';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_URL_LICENCE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_categorie';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_CATEGORIE.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_public';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 255);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_PUBLIC.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_public_niveau';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 25, 'maxlength' => 45);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_PUBLIC_NIVEAU.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_ce_type_portee_spatiale';
$aso_options = array( '' => ADME_LG_FORM_MENU_ZG_VIDE,
'iso3166' => ADME_LG_FORM_MENU_ZG_ISO,
'Point' => ADME_LG_FORM_MENU_ZG_POINT,
'Box' => ADME_LG_FORM_MENU_ZG_DC,
'TGN' => ADME_LG_FORM_MENU_ZG_GTGN);
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ZG_TYPE.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
$id = 'gm_portee_spatiale';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_ZG_VALEUR.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$id = 'gm_ce_type_portee_temporelle';
$aso_options = array( '' => ADME_LG_FORM_MENU_TMP_VIDE,
'W3CDTF' => ADME_LG_FORM_MENU_TMP_W3C,
'Period' => ADME_LG_FORM_MENU_TMP_DC);
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_TYPE.'</label>';
$form->addElement('select', $id, $label, $aso_options, $aso_attributs);
$id = 'gm_portee_temporelle';
$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 35, 'maxlength' => 100);
$label = '<label for="'.$id.'">'.ADME_LG_FORM_MENU_TMP_VALEUR.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
// Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
if (!isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER]) && !isset($aso_valeurs[ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) {
$requete_admin = 'SELECT * '.
'FROM gen_annuaire '.
'WHERE ga_id_administrateur = '.$aso_valeurs['gm_ce_admin'];
$resultat_admin = $db->query($requete_admin);
if (DB::isError($resultat_admin)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
}
$ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
$info_admin = '<p class="info">Dernière modification par '.$ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'</p>';
$form->addElement('html', $info_admin);
}
//fin de la div cachée pour les options compliquées-------------------------------------------------
$form->addElement('html', "\n".'</fieldset>'."\n".'</div>');
$buttons[] = &HTML_QuickForm::createElement('link', 'annuler', ADME_LG_FORM_MENU_ANNULER,
str_replace ("&amp;", "&", $url->getURL()), ADME_LG_FORM_MENU_ANNULER); // Le preg_replace contourne un pb de QuickForm et Net_URL
// qui remplacent deux fois les & par des &amp;
//Bouton de validation du formulaire
if ($traduction) {
$buttons[] = &HTML_QuickForm::createElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION, ADME_LG_FORM_MENU_VALIDER);
$form->addElement('hidden', 'adme_site_id', $adme_site_id);
}
else {
$buttons[] = &HTML_QuickForm::createElement('submit', ADME_LG_ACTION_CLASSIQUE_VERIFIER, ADME_LG_FORM_MENU_VALIDER);
}
$form->addGroup($buttons, 'form_boutons', null, '&nbsp;');
$form->addElement('hidden', 'gm_id_menu', $aso_valeurs['gm_id_menu']);
// Instanciation avec les valeur par défaut
$form->setDefaults($aso_valeurs);
$retour .= $form->toHTML()."\n";
return $retour;
}
 
/** Fonction ADME_validerFormAjouterMenuClassique() - Valide les données issues du formulaire pour gen_menu.
*
* Cette fonction valide les données à ajouter dans la table gen_menu.
*
* @param PEAR::DB l'objet pear de connexion à la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @return string retourne les messages d'erreurs sinon rien.
*/
function ADME_validerFormAjouterMenuClassique($db, $aso_valeurs)
{
$message = '';
if ($aso_valeurs['gm_code_alpha'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_ALPHA.'</p>';
}
if ($aso_valeurs['gm_code_num'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_NUM.'</p>';
}
if ($aso_valeurs['gm_nom'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_NOM.'</p>';
}
if ($aso_valeurs['gm_description_resume'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_INFO_BULLE.'</p>';
}
return $message;
}
 
 
/** Fonction ADME_validerFormTraduireMenuClassique() - Valide les données issues du formulaire de traduction de menu
*
* Cette fonction valide les données à ajouter dans la table gen_menu.
*
* @param PEAR::DB l'objet pear de connexion à la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @return string retourne les messages d'erreurs sinon rien.
*/
function ADME_validerFormTraduireMenuClassique($db, $aso_valeurs)
{
$message = '';
if ($aso_valeurs['gm_code_alpha'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_ALPHA.'</p>';
}
if ($aso_valeurs['gm_code_num'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_CODE_NUM.'</p>';
}
if ($aso_valeurs['gm_nom'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_NOM.'</p>';
}
if ($aso_valeurs['gm_description_resume'] == '') {
$message .= '<p class="pap_erreur">'.ADME_LG_FORM_MENU_REGLE_INFO_BULLE.'</p>';
}
return $message;
}
 
 
 
/** Fonction ADME_modifierMenuClassique() - Met à jour les infos d'un menu classique
*
* Fonction modifiant un menu commun à Papyrus.
* Ancien nom : commitUpdateLevel()
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'authentification.
* @param integer l'identifiant du menu à administrer.
* @param array le tableau des valeurs à modifier.
* @return void les changement sont fait dans la base de données.
*/
function ADME_modifierMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs)
{
$requete = 'UPDATE gen_menu SET '.
'gm_ce_application = '.$aso_valeurs['gm_ce_application'].', '.
'gm_application_arguments = "'.$aso_valeurs['gm_application_arguments'].'", '.
'gm_fichier_squelette = "'.$aso_valeurs['gm_fichier_squelette'].'", '.
'gm_code_num = '.$aso_valeurs['gm_code_num'].', '.
'gm_code_alpha = "'.$aso_valeurs['gm_code_alpha'].'", '.
'gm_nom = "'.$aso_valeurs['gm_nom'].'", '.
'gm_raccourci_clavier = "'.$aso_valeurs['gm_raccourci_clavier'].'", '.
'gm_robot = "'.$aso_valeurs['gm_robot'].'", '.
'gm_titre = "'.$aso_valeurs['gm_titre'].'", '.
'gm_titre_alternatif = "'.$aso_valeurs['gm_titre_alternatif'].'", '.
'gm_mots_cles = "'.$aso_valeurs['gm_mots_cles'].'", '.
'gm_description_libre = "'.$aso_valeurs['gm_description_libre'].'", '.
'gm_description_resume = "'.$aso_valeurs['gm_description_resume'].'", '.
'gm_description_table_matieres = "'.$aso_valeurs['gm_description_table_matieres'].'", '.
'gm_source = "'.$aso_valeurs['gm_source'].'", '.
'gm_auteur = "'.$aso_valeurs['gm_auteur'].'", '.
'gm_contributeur = "'.$aso_valeurs['gm_contributeur'].'", '.
'gm_editeur = "'.$aso_valeurs['gm_editeur'].'", '.
'gm_date_creation = "'.$aso_valeurs['gm_date_creation'].'", '.
'gm_date_debut_validite = "'.$aso_valeurs['gm_date_debut_validite'].'", '.
'gm_date_fin_validite = "'.$aso_valeurs['gm_date_fin_validite'].'", '.
'gm_date_copyright = "'.$aso_valeurs['gm_date_copyright'].'", '.
'gm_licence = "'.$aso_valeurs['gm_licence'].'", '.
'gm_categorie = "'.$aso_valeurs['gm_categorie'].'", '.
'gm_public = "'.$aso_valeurs['gm_public'].'", '.
'gm_public_niveau = "'.$aso_valeurs['gm_public_niveau'].'", '.
'gm_ce_type_portee_spatiale = "'.$aso_valeurs['gm_ce_type_portee_spatiale'].'", '.
'gm_portee_spatiale = "'.$aso_valeurs['gm_portee_spatiale'].'", '.
'gm_ce_type_portee_temporelle = "'.$aso_valeurs['gm_ce_type_portee_temporelle'].'", '.
'gm_portee_temporelle = "'.$aso_valeurs['gm_portee_temporelle'].'", '.
'gm_ce_admin = "'.$auth->getAuthData('ga_id_administrateur').'" '.
'WHERE gm_id_menu = '.$adme_menu_id;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Gestion de la relation menu par défaut
if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
$requete_id_menu_supr_defaut = 'SELECT GM01.gm_id_menu AS id_menu_supr_defaut '.
'FROM gen_menu AS GM01, gen_menu AS GM02, gen_menu_relation '.
'WHERE GM02.gm_id_menu = '.$adme_menu_id.' '.
'AND GM02.gm_ce_site = GM01.gm_ce_site '.
'AND GM01.gm_id_menu = gmr_id_menu_01 '.
'AND gmr_id_valeur = 101 ';// 101 = menu par "defaut"
$resultat_menu_supr_defaut = $db->query($requete_id_menu_supr_defaut);
if (DB::isError($resultat_menu_supr_defaut)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu_supr_defaut->getMessage(), $requete_id_menu_supr_defaut));
}
$ligne_menu_supr_defaut = $resultat_menu_supr_defaut->fetchRow(DB_FETCHMODE_OBJECT);
if ($resultat_menu_supr_defaut->numRows() > 0 ) {
$requete_supr_defaut = 'DELETE FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = gmr_id_menu_02 '.
'AND gmr_id_valeur = 101 '.// 101 = menu par "defaut"
'AND gmr_id_menu_01 = '.$ligne_menu_supr_defaut->id_menu_supr_defaut;
$resultat_supr_defaut = $db->query($requete_supr_defaut);
if (DB::isError($resultat_supr_defaut)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
}
}
$resultat_menu_supr_defaut->free();
// Requete d'insertion de la relation menu par défaut
$requete = 'INSERT INTO gen_menu_relation '.
'SET gmr_id_menu_01 = '.$adme_menu_id.', '.
'gmr_id_menu_02 = '.$adme_menu_id.', '.
'gmr_id_valeur = 101, '.
'gmr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
}
 
/** Fonction ADME_deplacerMenuClassique() - Permet de déplacer un menu dans la hiérarchie.
*
* Permet de déplacer un menu dans la hiérarchie des menus classiques.
* Ancien nom : moveMenu()
*
* @param mixed objet Pear DB de connexion à la base de données.
* @param integer identifiant du site administré.
* @param integer identifiant du menu à déplacer.
* @param boolean indique si on veut monter le menu (true) ou le descendre (false).
* @return void modifie la base de données.
*/
function ADME_deplacerMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_monter)
{
//-------------------------------------------------------------------------------------------------------------------
// Récupération d'information sur le site de ce menu.
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id);
if ($objet_site == false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'.
'Id du site : '. $adme_site_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//-------------------------------------------------------------------------------------------------------------------
// Récupération d'informations sur les relations du menu courant.
$ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $adme_menu_id, '1');
if ($ligne_menu_courant_relation == false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'.
'Identifiant menu : '. $adme_menu_id .'<br />'.
'Identifiant valeur relation : 1 <br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//-------------------------------------------------------------------------------------------------------------------
// Récupération de l'identifiant du menu pére
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id);
if ($id_pere === false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'.
'Identifiant menu fils : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//-------------------------------------------------------------------------------------------------------------------
// Recherche d'information sur le menu précédent ou suivant le menu courant
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU
'AND gm_ce_site = '.$objet_site->gs_id_site.' '.
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique"
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '.
'AND GMR01.gmr_id_valeur = 1 ';// 1 = relation menu "père"
if ($bln_monter) {
$requete .= 'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre DESC';
} else {
$requete .= 'AND GMR01.gmr_ordre > '.$ligne_menu_courant_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre ASC';
}
$resultat_menu = $db->query($requete);
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
$resultat_menu->free();
//-------------------------------------------------------------------------------------------------------------------
// Si la requete ne retourne rien nous ne faisons rien.
if (! $ligne_menu) {
return null;
}
//-------------------------------------------------------------------------------------------------------------------
// Mise à jour des relations du menu courant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.$ligne_menu->nouvel_ordre.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat_update = $db->query($requete);
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
//-------------------------------------------------------------------------------------------------------------------
// Mise à jour des relations du menu précédent ou suivant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu->id_menu_remplace.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat_update = $db->query($requete);
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
}
 
 
/** Fonction ADME_traduireMenuClassique() - Permet de traduire un menu classique
*
* Permet de traduire un menu classique
*
* @param mixed objet Pear DB de connexion à la base de données.
* @param integer identifiant du site administré.
* @param integer identifiant du menu à déplacer.
* @return void modifie la base de données.
*/
function ADME_traduireMenuClassique($db, $auth, $adme_menu_id, $aso_valeurs) {
 
// Récupération d'infos sur le site principal.
$objet_site = GEN_lireInfoSitePrincipal($db, $aso_valeurs['adme_site_id']);
if ($objet_site == false) {
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'.
'ID du site : '.$aso_valeurs['adme_site_id'].'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu');
$auteur = $auth->getAuthData('ga_prenom').' '.$auth->getAuthData('ga_nom');
$requete = 'INSERT INTO gen_menu '.
'SET gm_id_menu = '.$nouveau_id_menu.', '.
'gm_ce_site = '.$aso_valeurs['adme_site_id'].', '.
'gm_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
'gm_ce_application = '.$aso_valeurs['gm_ce_application'].', '.
'gm_application_arguments = "'.$aso_valeurs['gm_application_arguments'].'", '.
'gm_fichier_squelette = "'.$aso_valeurs['gm_fichier_squelette'].'", '.
'gm_code_num = '.$aso_valeurs['gm_code_num'].', '.
'gm_code_alpha = "'.$aso_valeurs['gm_code_alpha'].'", '.
'gm_nom = "'.$aso_valeurs['gm_nom'].'", '.
'gm_raccourci_clavier = "'.$aso_valeurs['gm_raccourci_clavier'].'", '.
'gm_robot = "'.$aso_valeurs['gm_robot'].'", '.
'gm_titre = "'.$aso_valeurs['gm_titre'].'", '.
'gm_titre_alternatif = "'.$aso_valeurs['gm_titre_alternatif'].'", '.
'gm_mots_cles = "'.$aso_valeurs['gm_mots_cles'].'", '.
'gm_description_libre = "'.$aso_valeurs['gm_description_libre'].'", '.
'gm_description_resume = "'.$aso_valeurs['gm_description_resume'].'", '.
'gm_description_table_matieres = "'.$aso_valeurs['gm_description_table_matieres'].'", '.
'gm_source = "'.$aso_valeurs['gm_source'].'", '.
'gm_auteur = "'.$aso_valeurs['gm_auteur'].'", '.
'gm_contributeur = "'.$aso_valeurs['gm_contributeur'].'", '.
'gm_editeur = "'.$aso_valeurs['gm_editeur'].'", '.
'gm_date_creation = "'.$aso_valeurs['gm_date_creation'].'", '.
'gm_date_debut_validite = "'.$aso_valeurs['gm_date_debut_validite'].'", '.
'gm_date_fin_validite = "'.$aso_valeurs['gm_date_fin_validite'].'", '.
'gm_date_copyright = "'.$aso_valeurs['gm_date_copyright'].'", '.
'gm_licence = "'.$aso_valeurs['gm_licence'].'", '.
'gm_categorie = "'.$aso_valeurs['gm_categorie'].'", '.
'gm_public = "'.$aso_valeurs['gm_public'].'", '.
'gm_public_niveau = "'.$aso_valeurs['gm_public_niveau'].'", '.
'gm_ce_type_portee_spatiale = "'.$aso_valeurs['gm_ce_type_portee_spatiale'].'", '.
'gm_portee_spatiale = "'.$aso_valeurs['gm_portee_spatiale'].'", '.
'gm_ce_type_portee_temporelle = "'.$aso_valeurs['gm_ce_type_portee_temporelle'].'", '.
'gm_portee_temporelle = "'.$aso_valeurs['gm_portee_temporelle'].'", '.
'gm_ce_admin = "'.$auth->getAuthData('ga_id_administrateur').'" ';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Ajout de la relation traduction
if (!isset($adme_menu_id) && empty($adme_menu_id)) {
$adme_menu_id = 0 ;// Identifiant du père
}
//----------------------------------------------------------------------------
// Récupération d'infos sur la hierarchie du menu
$requete = 'SELECT GMR01.gmr_ordre '.
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique"
'ORDER BY GMR01.gmr_ordre DESC';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_menu = $ligne->gmr_ordre + 1;
$resultat->free();
// Traduction :
$requete = 'INSERT INTO gen_menu_relation '.
'SET gmr_id_menu_01 = '.$adme_menu_id.', '.
'gmr_id_menu_02 = '.$nouveau_id_menu.', '.
'gmr_id_valeur = 2, '. // Avoir traduction
'gmr_ordre = '.$nouveau_ordre_menu;
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Ajout de la relation-type "menu classique"
// Récupération d'infos sur la hierarchie du menu
$requete = 'SELECT * '.
'FROM gen_menu_relation, gen_menu '.
'WHERE gmr_id_menu_02 = gmr_id_menu_01 '.
'AND gmr_id_valeur = 100 '.// 100 = type menu "classique"
'AND gmr_id_menu_01 = gm_id_menu '.
'AND gm_ce_site = '.$aso_valeurs['adme_site_id'].' '.
'ORDER BY gmr_ordre DESC';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_menu_classique = $ligne->gmr_ordre + 1;
$resultat->free();
$requete = 'INSERT INTO gen_menu_relation '.
'SET gmr_id_menu_01 = '.$nouveau_id_menu.', '.
'gmr_id_menu_02 = '.$nouveau_id_menu.', '.
'gmr_id_valeur = 100, '.
'gmr_ordre = '.$nouveau_ordre_menu_classique;
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
}
 
/** Fonction ADME_indenterMenuClassique() - Permet d'augmenter ou diminuer l'indentation d'un menu dans la
* hierarchie
*
* Permet d'augmenter ou diminuer l'indentation d'un menu dans la hierarchie
*
* @param mixed objet Pear DB de connexion à la base de données.
* @param integer identifiant du site administré.
* @param integer identifiant du menu à déplacer.
* @param boolean indique si on veut diminuer (gauche) l'indentation (true) ou augmenter (droite) l'indentation (false).
* @return void modifie la base de données.
*/
function ADME_indenterMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_diminuer) {
 
//-------------------------------------------------------------------------------------------------------------------
// Récupération d'information sur le site de ce menu.
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id);
if ($objet_site == false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'.
'Id du site : '. $adme_site_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//-------------------------------------------------------------------------------------------------------------------
// Récupération d'informations sur les relations du menu courant.
$ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $adme_menu_id, '1');
if ($ligne_menu_courant_relation == false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'.
'Identifiant menu : '. $adme_menu_id .'<br />'.
'Identifiant valeur relation : 1 <br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//-------------------------------------------------------------------------------------------------------------------
// Récupération de l'identifiant du menu pére
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id);
if ($id_pere === false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'.
'Identifiant menu fils : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
if ($bln_diminuer) {
// Diminution d'un niveau
if ($id_pere) {
// Récupération de l'identifiant du menu grand pére, sera le nouveau pere
$id_grand_pere = GEN_lireIdentifiantMenuPere($id_pere);
if ($id_grand_pere === false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'.
'Identifiant menu fils : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
// Récupération d'informations sur les relations du menu pere
$ligne_menu_pere_relation = GEN_lireInfoMenuRelation($db, $id_pere, '1');
if ($ligne_menu_pere_relation == false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'.
'Identifiant menu : '. $adme_menu_id .'<br />'.
'Identifiant valeur relation : 1 <br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//-------------------------------------------------------------------------------------------------------------------
// Recherche d'information sur le menu suivant le menu pere
//-------------------------------------------------------------------------------------------------------------------
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU
'AND gm_ce_site = '.$objet_site->gs_id_site.' '.
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique"
'AND GMR01.gmr_id_menu_02 = '.$id_grand_pere.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père"
'AND GMR01.gmr_ordre > '.$ligne_menu_pere_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre DESC';
$resultat_menu = $db->query($requete);
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
$resultat_menu->free();
//-------------------------------------------------------------------------------------------------------------------
// Si la requete ne retourne rien nous ne faisons rien.
if (! $ligne_menu) {
$no=$ligne_menu_pere_relation->gmr_ordre+1;
}
else {
$no=$ligne_menu->nouvel_ordre+1;
}
// Mise à jour pere menu courant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_id_menu_02 = '.$id_grand_pere.' ,'.
'gmr_ordre = '.$no.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat_update = $db->query($requete);
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
}
}
else {
 
$requete = 'SELECT GMR01.gmr_id_menu_01 '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU
'AND gm_ce_site = '.$objet_site->gs_id_site.' '.
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique"
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père"
'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre DESC';
$resultat_menu = $db->query($requete);
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
 
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
$resultat_menu->free();
//-------------------------------------------------------------------------------------------------------------------
// Si la requete ne retourne rien nous ne faisons rien.
if (! $ligne_menu) {
return null;
}
//----------------------------------------------------------------------------
// Recherche dernier fils
$requete = 'SELECT GMR01.gmr_ordre '.
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR01.gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique"
'ORDER BY GMR01.gmr_ordre DESC';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$resultat->free();
 
if (isset($ligne)) {
$no = $ligne->gmr_ordre + 1;
}
else {
$no = 1;
}
// Mise à jour pere menu courant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' ,'.
'gmr_ordre = '.$no.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat_update = $db->query($requete);
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
}
}
 
 
/** Fonction ADME_supprimerMenuClassique() - Supprime un menu classique.
*
* Supprime de la base de données de Papyrus toutes les traces du menu classiques
* passé en paramètre.
* Ancien nom : deleteMenu()
*
* @param mixed l'objet Pear DB de connexion à la base de données.
* @param integer l'identifiant du site du menu à supprimer
* @param integer l'identifiant du menu à supprimer
* @return void le menu classique est supprimé de la base de données.
*/
function ADME_supprimerMenuClassique($db, $adme_id_site, $id_menu_a_supprimer)
{
$code_menu = GEN_lireInfoMenu($db, $id_menu_a_supprimer, DB_FETCHMODE_ASSOC);
//----------------------------------------------------------------------------
// Y a t'il des sous_menus
$requete = 'SELECT COUNT(gm_id_menu) AS compte '.
'FROM gen_menu, gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.$id_menu_a_supprimer.' '.
'AND gmr_id_valeur = 1 '.
'AND gmr_id_menu_01 = gm_id_menu ';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
if ($ligne && ($ligne->compte > 0)) {
return ADME_LG_ERREUR_EXISTE_SOUS_MENU;
}
//-------------------------------------------------------------------------------------------------------------------
// Mise à jour de l'ordre des menus
$ligne_menu_supr_relation = GEN_lireInfoMenuRelation($db, $id_menu_a_supprimer, '1'); // 1 = relation "avoir père"
$requete = 'SELECT GMR01.gmr_id_menu_01, GMR01.gmr_ordre '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU
'AND gm_ce_site = '.$adme_id_site.' '.// le site du menu!
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique"
'AND GMR01.gmr_id_menu_02 = '.$ligne_menu_supr_relation->gmr_id_menu_02.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père"
'AND GMR01.gmr_ordre > '.$ligne_menu_supr_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre ASC';
$resultat = $db->query($requete);
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
// Mise à jour des relations hiérarchiques du menu courant
$requete_maj = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.($ligne->gmr_ordre - 1).' '.
'WHERE gmr_id_menu_01 = '.$ligne->gmr_id_menu_01.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat_maj = $db->query($requete_maj);
(DB::isError($resultat_maj)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_maj->getMessage(), $requete_maj)) : '';
}
$resultat->free();
//----------------------------------------------------------------------------
// S'il n'y a plus de sous niveau, on supprime le menu
$requete = 'DELETE FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu_a_supprimer;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Puis on supprime les relations de ce menu
$requete = 'DELETE FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_a_supprimer;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Suppression du contenu !!!!
$requete = 'DELETE FROM gen_menu_contenu '.
'WHERE gmc_ce_menu= '.$id_menu_a_supprimer.' ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
/** Fonction ADME_supprimerMenuClassiqueTraduction() - Supprime une traduction de menu classique.
*
* Supprime de la base de données de Papyrus toutes les traces du menu classiques
* passé en paramètre.
* Ancien nom : deleteMenu()
*
* @param mixed l'objet Pear DB de connexion à la base de données.
* @param integer l'identifiant du site du menu à supprimer
* @param integer l'identifiant du menu à supprimer
* @return void le menu classique est supprimé de la base de données.
*/
function ADME_supprimerMenuClassiqueTraduction($db, $adme_id_site, $id_menu_a_supprimer)
{
$code_menu = GEN_lireInfoMenu($db, $id_menu_a_supprimer, DB_FETCHMODE_ASSOC);
if ($code_menu === false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'.
'Idenitifiant du menu n° : '. $id_menu_a_supprimer .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
$requete = 'DELETE FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu_a_supprimer;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Puis on supprime les relations de ce menu
$requete = 'DELETE FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_a_supprimer;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Puis on supprime les relations de ce menu
$requete = 'DELETE FROM gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.$id_menu_a_supprimer;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Suppression du contenu !!!!
$requete = 'DELETE FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu_a_supprimer.' ';
 
 
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
function ADME_verifier_traduction_possible($db, $url, $adme_site_id, $adme_menu_id) {
$aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC);
if ($aso_valeurs === false) {
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU.'<br />'.
'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
// Recherche liste des menu deja traduits
$requete = 'SELECT distinct gm_ce_i18n '.
'FROM gen_menu_relation, gen_menu '.
'WHERE gmr_id_menu_01 = ' . $adme_menu_id .' '.
'AND gm_id_menu = gmr_id_menu_02 '.
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction"
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$not_in_langue='';
if ( $resultat->numRows() == 0 ) {
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')";
}
else {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$not_in_langue="'".$ligne->gm_ce_i18n."'".",".$not_in_langue;
$end="'".$ligne->gm_ce_i18n."'";
}
if ($not_in_langue) {
$not_in_langue="'".$aso_valeurs['gm_ce_i18n']."'".",".$not_in_langue;
$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
}
else {
$not_in_langue="gi_id_i18n not in('".$aso_valeurs['gm_ce_i18n']."')";
}
}
$requete = "SELECT * FROM gen_i18n where ".$not_in_langue;
 
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$retour = $resultat->numRows();
$resultat->free();
$message='';
if ($retour == 0) {
$message = '<p class="pap_erreur">Plus de traduction possible pour ce menu </p>';
}
return $message;
}
 
 
 
/** Fonction ADME_selectionnerMenuClassiqueTraduction()() Selection un menu classique comme traduction par defaut
*
*
* @param mixed l'objet Pear DB de connexion à la base de données.
* @param integer l'identifiant du site du menu à supprimer
* @param integer l'identifiant du menu à supprimer
* @return void le menu classique est supprimé de la base de données.
*/
function ADME_selectionnerMenuClassiqueTraduction($db, $adme_id_site, $id_menu)
{
// 1 : Rechercher traduction parente : si presente on est dans une traduc. si absente on
// est dans un menu en version originale
$requete_origine_traduction = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu_relation, gen_menu '.
'WHERE gmr_id_menu_02 = ' . $id_menu .' '.
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction"
$resultat_origine_traduction = $db->query($requete_origine_traduction) ;
if (DB::isError($resultat_origine_traduction)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete_origine_traduction) );
}
if ($resultat_origine_traduction->numRows() > 0) {
$ligne_origine_traduction = $resultat_origine_traduction->fetchRow(DB_FETCHMODE_OBJECT);
$id_menu_origine=$ligne_origine_traduction->gmr_id_menu_01;
}
else {
$id_menu_origine=$id_menu;
}
 
$requete_suppression = 'DELETE from gen_menu_relation '.
'WHERE gmr_id_menu_01 = ' . $id_menu_origine . ' ' .
'AND gmr_id_valeur=105 '; // 105 Traduction par defaut
 
$resultat_suppression = $db->query($requete_suppression);
(DB::isError($resultat_suppression)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_suppression->getMessage(), $requete_suppression)) : '';
 
$requete_insertion = 'INSERT into gen_menu_relation '.
' SET gmr_id_menu_01 = ' . $id_menu_origine . ', ' .
' gmr_id_menu_02 = ' . $id_menu . ', ' .
' gmr_id_valeur = 105' ;
 
$resultat_insertion = $db->query($requete_insertion);
(DB::isError($resultat_insertion)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_insertion->getMessage(), $requete_insertion)) : '';
 
 
}
 
/** Fonction ADME_limiterMenuClassique() (limiter) un menu classique à la langue selectionne
*
*
* @param mixed l'objet Pear DB de connexion à la base de données.
* @param integer l'identifiant du site du menu à supprimer
* @param integer l'identifiant du menu à supprimer
* @return void le menu classique est supprimé de la base de données.
*/
function ADME_limiterMenuClassique($db, $adme_id_site, $id_menu, $zone)
{
 
$requete_insertion = 'INSERT into gen_menu_relation '.
' SET gmr_id_menu_01 = ' . $id_menu . ', ' .
' gmr_id_menu_02 = ' . $id_menu . ', ' .
' gmr_id_valeur = 106' ;
 
$resultat_insertion = $db->query($requete_insertion);
 
 
 
$requete_mise_a_jour = 'UPDATE gen_menu SET '.
'gm_ce_i18n = "'.$zone.'" '.
'WHERE gm_id_menu = '.$id_menu;
$resultat_mise_a_jour = $db->query($requete_mise_a_jour);
(DB::isError($resultat_mise_a_jour)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_mise_a_jour->getMessage(), $requete_mise_a_jour)) : '';
 
}
 
/** Fonction ADME_ouvrirMenuClassique() Ouvrir un menu classique à toutes les langues (suite à une fermeture)
*
*
* @param mixed l'objet Pear DB de connexion à la base de données.
* @param integer l'identifiant du site du menu à supprimer
* @param integer l'identifiant du menu à supprimer
* @return void le menu classique est supprimé de la base de données.
*/
function ADME_ouvrirMenuClassique($db, $adme_id_site, $id_menu)
{
 
$requete_suppression = 'DELETE from gen_menu_relation '.
'WHERE gmr_id_menu_01 = ' . $id_menu . ' ' .
'AND gmr_id_valeur=106 '; // 106 fermeture du menu
 
$resultat_suppression = $db->query($requete_suppression);
 
 
$requete_mise_a_jour = 'UPDATE gen_menu SET '.
'gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.
'WHERE gm_id_menu = '.$id_menu;
$resultat_mise_a_jour = $db->query($requete_mise_a_jour);
(DB::isError($resultat_mise_a_jour)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_mise_a_jour->getMessage(), $requete_mise_a_jour)) : '';
 
}
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.41 2007-10-24 14:43:02 ddelon
* Gestion des menus reservés à une langue
*
* Revision 1.40 2007-07-03 14:35:11 florian
* correction bug maj non prise en charge
*
* Revision 1.39 2007-07-03 14:07:02 florian
* correction bug maj non prise en charge
*
* Revision 1.38 2007-06-26 14:18:53 florian
* amélioration des formulaires des différentes applis de l'interface d'administration afin de les simplifier
*
* Revision 1.37 2006/10/16 15:49:07 ddelon
* Refactorisation code mulitlinguisme et gestion menu invisibles
*
* Revision 1.36 2006/10/06 13:38:45 florian
* ergonomie amélioree
*
* Revision 1.35 2006/09/07 13:45:56 jp_milcent
* Trie par ordre alphabétique des appli.
*
* Revision 1.34 2006/06/29 23:04:01 ddelon
* Bug defaut traduction sur menu commun
*
* Revision 1.33 2006/06/29 18:58:57 ddelon
* Multilinguisme : menu par defaut pour les menu commun
*
* Revision 1.32 2006/06/28 12:53:34 ddelon
* Multilinguisme : menu par defaut
*
* Revision 1.31 2006/04/12 21:11:54 ddelon
* Multilinguisme menus communs
*
* Revision 1.30 2006/03/27 14:33:04 ddelon
* Gestion suppression de contenu menu afficheur
*
* Revision 1.29 2006/03/23 20:24:59 ddelon
* *** empty log message ***
*
* Revision 1.28 2006/03/15 09:30:50 florian
* suppression des echos, qui entrainaient des problemes d'affichages
*
* Revision 1.27 2006/03/13 21:00:20 ddelon
* Suppression messages d'erreur multilinguisme
*
* Revision 1.26 2006/03/10 11:02:36 alexandre_tb
* remplacement de l'image "Traduire" par un texte "traduire" vu qu'on a pas d'image pour la notion de traduire...
*
* Revision 1.25 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.24.2.1 2006/02/28 14:02:11 ddelon
* Finition multilinguisme
*
* Revision 1.24 2005/09/23 13:58:07 ddelon
* Php5, Projet et Redirection
*
* Revision 1.23 2005/09/20 17:01:22 ddelon
* php5 et bugs divers
*
* Revision 1.22 2005/07/08 21:13:15 ddelon
* Gestion indentation menu
*
* Revision 1.21 2005/05/26 16:13:08 jpm
* Correction taille éditeur: passage en text
*
* Revision 1.19 2005/05/26 15:34:46 jpm
* Ajout d'un espace.
*
* Revision 1.18 2005/05/26 08:54:20 jpm
* Ajout info admin ayant fait la dernière modif.
*
* Revision 1.17 2005/04/19 16:47:16 jpm
* Gestion des dates de fin de validité des menus.
*
* Revision 1.16 2005/03/29 15:49:12 jpm
* Ajout de la date de création dans le formulaire des menus.
*
* Revision 1.15 2005/02/28 11:05:06 jpm
* Modification des auteurs.
*
* Revision 1.14 2004/12/01 16:47:28 jpm
* Ajout d'une boite javascript de confirmation de suppression d'un menu.
*
* Revision 1.13 2004/11/29 18:34:51 jpm
* Correction bogue checkbox.
*
* Revision 1.12 2004/11/15 16:51:12 jpm
* Correction bogue de mise à jour de l'ordre des menus.
*
* Revision 1.11 2004/11/10 19:41:14 jpm
* Correction bogue.
*
* Revision 1.10 2004/11/10 17:26:07 jpm
* Fin gestion de la traduction.
*
* Revision 1.9 2004/11/09 17:53:00 jpm
* Changement des noms des actions sur les menus classiques.
*
* Revision 1.8 2004/11/09 17:48:35 jpm
* Gestion de différentes interfaces d'administration.
*
* Revision 1.7 2004/11/09 12:37:34 jpm
* Fin de gestion des menus et mise en conformité avec la convention de codage.
*
* Revision 1.6 2004/11/08 17:40:07 jpm
* Gestion correcte de l'ouverture et fermeture des menus.
* Utilisation des sessions.
*
* Revision 1.5 2004/11/04 19:11:38 jpm
* Mise en conformité vis à vis de la convention de codage.
* Amélioration de la récursivité de la gestion de l'affichage des menus.
*
* Revision 1.4 2004/10/25 16:27:42 jpm
* Correction d'un bogue dans la gestion du déplacement des menus.
*
* Revision 1.3 2004/09/23 17:45:13 jpm
* Amélioration de la gestion des liens annuler et du selecteur de sites.
*
* Revision 1.2 2004/07/06 17:07:37 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.1 2004/06/16 15:04:32 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.27 2004/05/10 12:13:03 jpm
* Modification des formulaires.
*
* Revision 1.26 2004/05/07 16:31:20 jpm
* Amélioration du formulaire d'un menu classique.
*
* Revision 1.25 2004/05/07 07:23:53 jpm
* Amélioration du code, des commentaires et correction de bogues.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/v5.0-ouadji/papyrus/applications/admin_menu/bibliotheque/adme_menu_commun.fonct.php
New file
0,0 → 1,1646
<?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.28 2007-10-24 14:43:02 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.28 $ $Date: 2007-10-24 14:43:02 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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.27 2006-10-16 15:49:07 ddelon
* Refactorisation code mulitlinguisme et gestion menu invisibles
*
* Revision 1.26 2006/10/06 13:38:45 florian
* ergonomie amélioree
*
* 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/v5.0-ouadji/papyrus/applications/admin_menu/langues/adme_langue_en.inc.php
New file
0,0 → 1,299
<?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.3 2007-10-25 14:26:56 ddelon Exp $
/**
* Gestion des langues de l'application ADME
*
* Contient les constantes pour la langue française de l'application ADME.
*
*@package Admin_menu
*@subpackage Langues
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2007-10-25 14:26:56 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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_MODIFIER_ACTION', 'classical_menu_modify_action');
 
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_SUPPRIMER_TRADUCTION', 'classical_menu_remove_translation');
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_ALT', 'Remove');
define('ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TRADUCTION_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');
define('ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION', 'classical_menu_check_translation');
 
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT', 'classical_menu_translation_default');
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_ALT', 'Chose this menu as default translation');
define('ADME_LG_ACTION_CLASSIQUE_TRADUCTION_DEFAUT_TITLE', 'Chose this menu as default translation');
 
define ('ADME_LG_ACTION_CLASSIQUE_LIMITER', 'classical_menu_limit');
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR', 'menu_classique_open');
define ('ADME_LG_ACTION_CLASSIQUE_LIMITER_TITLE', 'Restrict menu to this lang');
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR_TITLE', 'Always show this menu');
 
 
 
// 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_MODIFIER_ACTION', 'common_menu_modify_action');
 
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_SUPPRIMER_TRADUCTION', 'common_menu_remove_translation');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_ALT', 'Remove');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_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');
define('ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION', 'common_menu_check_translation');
 
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT', 'common_menu_translation_default');
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_ALT', 'Chose this menu as default translation');
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_TITLE', 'Chose this menu as default translation');
 
 
// 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.2 2007-10-23 14:10:00 ddelon
* Ajout traductions manquantes pour l'anglais
*
* 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 + 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/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/admin_menu/langues/adme_langue_fr.inc.php
New file
0,0 → 1,337
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)
//
// Ce logiciel est un programme informatique servant à gérer du contenu et des
// applications web.
// Ce logiciel est régi par la licence CeCILL soumise au droit français et
// respectant les principes de diffusion des logiciels libres. Vous pouvez
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
// sur le site "http://www.cecill.info".
 
// En contrepartie de l'accessibilité au code source et des droits de copie,
// de modification et de redistribution accordés par cette licence, il n'est
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
// seule une responsabilité restreinte pèse sur l'auteur du programme, le
// titulaire des droits patrimoniaux et les concédants successifs.
 
// A cet égard l'attention de l'utilisateur est attirée sur les risques
// associés au chargement, à l'utilisation, à la modification et/ou au
// développement et à la reproduction du logiciel par l'utilisateur étant
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à
// manipuler et qui le réserve donc à des développeurs et des professionnels
// avertis possédant des connaissances informatiques approfondies. Les
// utilisateurs sont donc invités à charger et tester l'adéquation du
// logiciel à leurs besoins dans des conditions permettant d'assurer la
// sécurité de leurs systèmes et ou de leurs données et, plus généralement,
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
 
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
// pris connaissance de la licence CeCILL, et que vous en avez accepté les
// termes.
// ----
// CVS : $Id: adme_langue_fr.inc.php,v 1.19 2007-10-25 14:26:56 ddelon Exp $
/**
* Gestion des langues de l'application ADME
*
* Contient les constantes pour la langue française de l'application ADME.
*
*@package Admin_menu
*@subpackage Langues
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.19 $ $Date: 2007-10-25 14:26:56 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
define ('ADME_IDENTIFIEZ_VOUS','Veuillez vous identifier pour acc&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_CLASSIQUE_LIMITER', 'menu_classique_limiter');
define ('ADME_LG_ACTION_CLASSIQUE_LIMITER_TITLE', 'Restreindre le menu &agrave cette langue');
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR', 'menu_classique_ouvrir');
define ('ADME_LG_ACTION_CLASSIQUE_OUVRIR_TITLE', 'Faire apparaitre ce menu dans toutes les langues');
 
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT', 'menu_classique_traduction_defaut');
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_ALT', 'Choisir ce menu comme traduction par défaut');
define('ADME_LG_ACTION_COMMUN_TRADUCTION_DEFAUT_TITLE', 'Choisir ce menu comme traduction par défaut');
 
 
// Les actions des menus communs:
define('ADME_LG_ACTION_COMMUN_MODIFIER', 'menu_commun_modifier');
define('ADME_LG_ACTION_COMMUN_MODIFIER_ALT', 'Modifier');
define('ADME_LG_ACTION_COMMUN_MODIFIER_ACTION', 'menu_commun_modifier_action');
define('ADME_LG_ACTION_COMMUN_MODIFIER_TITLE', 'Modifier ce menu');
 
define('ADME_LG_ACTION_COMMUN_MONTER', 'menu_commun_monter');
define('ADME_LG_ACTION_COMMUN_MONTER_ALT', 'Monter');
define('ADME_LG_ACTION_COMMUN_MONTER_TITLE', 'Monter ce menu');
 
define('ADME_LG_ACTION_COMMUN_DESCENDRE', 'menu_commun_descendre');
define('ADME_LG_ACTION_COMMUN_DESCENDRE_ALT', 'Descendre');
define('ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE', 'Descendre ce menu');
 
define('ADME_LG_ACTION_COMMUN_DIMINUER', 'menu_commun_diminuer');
define('ADME_LG_ACTION_COMMUN_DIMINUER_ALT', 'Diminuer');
define('ADME_LG_ACTION_COMMUN_DIMINUER_TITLE', 'Diminuer d\'un niveau ce menu');
 
define('ADME_LG_ACTION_COMMUN_AUGMENTER', 'menu_commun_augmenter');
define('ADME_LG_ACTION_COMMUN_AUGMENTER_ALT', 'Augmenter');
define('ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE', 'Augmenter d\'un niveau ce menu');
 
define('ADME_LG_ACTION_COMMUN_TRADUIRE', 'menu_commun_traduire');
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION', 'menu_commun_traduire_action');
define('ADME_LG_ACTION_COMMUN_TRADUIRE_ALT', 'Traduire');
define('ADME_LG_ACTION_COMMUN_TRADUIRE_TITLE', 'Traduire ce menu');
 
define('ADME_LG_ACTION_COMMUN_SUPPRIMER', 'menu_commun_supprimer');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_ALT', 'Supprimer');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TITLE', 'Supprimer ce menu');
 
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION', 'menu_commun_supprimer_traduction');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_ALT', 'Supprimer');
define('ADME_LG_ACTION_COMMUN_SUPPRIMER_TRADUCTION_TITLE', 'Supprimer ce menu');
 
 
define('ADME_LG_ACTION_COMMUN_AJOUTER', 'menu_commun_ajouter');
define('ADME_LG_ACTION_COMMUN_AJOUTER_ALT', 'Ajouter');
define('ADME_LG_ACTION_COMMUN_AJOUTER_TITLE', 'Ajouter ce menu');
 
define('ADME_LG_ACTION_COMMUN_VERIFIER', 'menu_commun_verifier');
define ('ADME_LG_ACTION_COMMUN_VERIFIER_TRADUCTION','menu_commun_verifier_traduction');
 
 
// Les actions générales:
define('ADME_LG_ACTION_ADMINISTRER', 'administrer');
define('ADME_LG_ACTION_ADMINISTRER_ALT', 'Administrer');
define('ADME_LG_ACTION_ADMINISTRER_TITLE', 'Administrer l\'application de ce menu');
 
define('ADME_LG_ACTION_PLIER', 'adme_menu_fermer');
define('ADME_LG_ACTION_PLIER_ALT', 'Plier');
 
define('ADME_LG_ACTION_DEPLIER', 'adme_menu_ouvrir');
define('ADME_LG_ACTION_DEPLIER_ALT', 'Déplier');
 
define('ADME_LG_ACTION_SUPPRIMER_CONFIRMATION', 'Êtes vous sûr de vouloir supprimer ce menu?');
 
// Les erreurs:
define('ADME_LG_ERREUR_INFO_MENU', 'impossible de lire les infos du menu.');
define('ADME_LG_ERREUR_INFO_SITE', 'impossible de lire les infos du site.');
define('ADME_LG_ERREUR_INFO_MENU_RELATION', 'impossible de lire les infos sur les relations du menu.');
define('ADME_LG_ERREUR_ID_MENU_PERE', 'impossible de lire identifiant du menu père.');
define('ADME_LG_ERREUR_CODE_NUM', "La valeur %s pour le champ \"Code numérique\" existe déjà.");
define('ADME_LG_ERREUR_CODE_ALPHA', "La valeur %s pour le champ \"Code alphanumérique\" existe déjà.");
define('ADME_LG_ERREUR_EXISTE_SOUS_MENU', 'Ce menu contient encore des sous menus. Veuillez commencez par supprimer ces sous menus.');
 
// Le formulaire de modification d'un menu :
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL', 'Modification menu');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL', 'Modification menu commun');
 
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_GENERAL_TRADUCTION', 'Traduction menu');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_GENERAL_TRADUCTION', 'Traduction menu commun');
 
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_CONFIG', 'Configuration du menu');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_CONFIG', 'Configuration du menu commun');
define('ADME_LG_FORM_MENU_ID', 'Identifiant de ce menu : ');
define('ADME_LG_FORM_MENU_CODE_NUM', 'Code numérique du menu');
define('ADME_LG_FORM_MENU_REGLE_CODE_NUM', 'Un code numérique est requis pour le menu !');
define('ADME_LG_FORM_MENU_CODE_ALPHA', 'Code alphanumérique du menu');
define('ADME_LG_FORM_MENU_REGLE_CODE_ALPHA', 'Un code alphanumérique est requis pour le menu !');
define('ADME_LG_FORM_MENU_NOM', 'Nom du menu');
define('ADME_LG_FORM_MENU_REGLE_NOM', 'Un nom est requis pour le menu !');
define('ADME_LG_FORM_MENU_RACCOURCI', 'Raccourci clavier');
define('ADME_LG_FORM_MENU_DEFAUT', 'En faire le menu par défaut');
define('ADME_LG_FORM_MENU_FICHIER_SQUELETTE', 'Fichier squelette');
define('ADME_LG_FORM_MENU_INFO_BULLE', 'Contenu info-bulle');
define('ADME_LG_FORM_MENU_REGLE_INFO_BULLE', 'Une description courte pour l\'info-bulle est requise pour ce menu !');
define('ADME_LG_FORM_MENU_APPLI', 'Application');
define('ADME_LG_FORM_MENU_APPLI_ARGUMENT', 'Arguments de l\'application');
 
define('ADME_LG_FORM_MENU_CLASSIQUE_TITRE_ENTETE', 'Entête des pages du menu');
define('ADME_LG_FORM_MENU_COMMUN_TITRE_ENTETE', 'Entête des pages du menu commun');
define('ADME_LG_FORM_MENU_ROBOT', 'Indexation par robots');
define('ADME_LG_FORM_MENU_INDEX_FOLLOW', 'Indexer cette page et les suivantes');
define('ADME_LG_FORM_MENU_INDEX', 'Indexer seulement cette page');
define('ADME_LG_FORM_MENU_NOINDEX_NOFOLLOW', 'Ne pas indexer cette page et les suivantes');
define('ADME_LG_FORM_MENU_NOINDEX', 'Ne pas indexer cette page');
define('ADME_LG_FORM_MENU_INDEX_VIDE', 'Aucune');
define('ADME_LG_FORM_MENU_TITRE', 'Titre de la page');
define('ADME_LG_FORM_MENU_TITRE_ALTERNATIF', 'Titre alternatif de la page');
define('ADME_LG_FORM_MENU_MOT_CLE', 'Mots-clés');
define('ADME_LG_FORM_MENU_DESCRIPTION', 'Description du contenu');
define('ADME_LG_FORM_MENU_TABLE_MATIERE', 'Table des matières');
define('ADME_LG_FORM_MENU_SOURCE', 'Source');
define('ADME_LG_FORM_MENU_AUTEUR', 'Auteur');
define('ADME_LG_FORM_MENU_CONTRIBUTEUR', 'Contributeur');
define('ADME_LG_FORM_MENU_EDITEUR', 'Éditeur');
define('ADME_LG_FORM_MENU_DATE_CREATION', 'Date de création');
define('ADME_LG_FORM_MENU_DATE_VALIDITE_DEBUT', 'Date de début de validité');
define('ADME_LG_FORM_MENU_DATE_VALIDITE_FIN', 'Date de fin de validité');
define('ADME_LG_FORM_MENU_DATE_COPYRIGHT', 'Année pour le copyright');
define('ADME_LG_FORM_MENU_URL_LICENCE', 'URL de la licence');
define('ADME_LG_FORM_MENU_CATEGORIE', 'Catégorie');
define('ADME_LG_FORM_MENU_PUBLIC', 'Public pour la page');
define('ADME_LG_FORM_MENU_PUBLIC_NIVEAU', 'Niveau du public pour la page');
define('ADME_LG_FORM_MENU_ZG_TYPE', 'Type de portée spatiale');
define('ADME_LG_FORM_MENU_ZG_VALEUR', 'Portée spatiale de la page');
define('ADME_LG_FORM_MENU_ZG_VIDE', 'Aucun');
define('ADME_LG_FORM_MENU_ZG_ISO', 'Code de pays sur deux lettres (iso3166)');
define('ADME_LG_FORM_MENU_ZG_DC', 'Représentation des régions géographiques du Dublin Core');
define('ADME_LG_FORM_MENU_ZG_POINT', 'Point géographique');
define('ADME_LG_FORM_MENU_ZG_GTGN', 'Noms issus du Getty Thesaurus of Geographic Names');
define('ADME_LG_FORM_MENU_TMP_TYPE', 'Type de portée temporelle');
define('ADME_LG_FORM_MENU_TMP_VALEUR', 'Portée temporelle de la page');
define('ADME_LG_FORM_MENU_TMP_VIDE', 'Aucun');
define('ADME_LG_FORM_MENU_TMP_W3C', 'Codage des dates et heures du W3C');
define('ADME_LG_FORM_MENU_TMP_DC', 'Représentation des intervalles de temps du Dublin Core');
 
define('ADME_LG_FORM_MENU_VALIDER', 'Enregistrer');
define('ADME_LG_FORM_MENU_ANNULER', 'Annuler');
define('ADME_LG_FORM_TXT_CHP_OBLIGATOIRE', 'Indique les champs obligatoires');
define('ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE', '*');
define ('ADME_VOIR_CONFIG_AVANCEE', 'Afficher/Cacher la configuration avanc&eacute;e');
define ('ADME_CONFIG_AVANCEE', 'Configuration avanc&eacute;e');
 
 
// Charactère spéciaux:
define('ADME_LG_PARENTHESE_OUVRANTE', '(');
define('ADME_LG_PARENTHESE_FERMANTE', ')');
define('ADME_LG_SLASH', '/');
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.18 2007-10-25 10:08:55 alexandre_tb
* nouvelle constante multilinguisme
*
* Revision 1.17 2007-06-26 14:18:53 florian
* amélioration des formulaires des différentes applis de l'interface d'administration afin de les simplifier
*
* Revision 1.16 2006/10/06 10:40:51 florian
* harmonisation des messages d'erreur de l'authentification
*
* Revision 1.15 2006/06/29 18:58:57 ddelon
* Multilinguisme : menu par defaut pour les menu commun
*
* Revision 1.14 2006/06/28 12:53:34 ddelon
* Multilinguisme : menu par defaut
*
* Revision 1.13 2006/05/10 16:02:49 ddelon
* Finition multilinguise et schizo flo
*
* Revision 1.12 2006/05/10 15:01:57 florian
* ajout de constantes, pour éviter les warnings
*
* Revision 1.11 2006/04/12 21:11:54 ddelon
* Multilinguisme menus communs
*
* Revision 1.10 2006/03/23 20:24:58 ddelon
* *** empty log message ***
*
* Revision 1.9 2006/03/13 21:00:20 ddelon
* Suppression messages d'erreur multilinguisme
*
* Revision 1.8 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.7.2.1 2006/02/28 14:02:10 ddelon
* Finition multilinguisme
*
* Revision 1.7 2005/07/18 16:14:32 ddelon
* css admin + menu communs
*
* Revision 1.6 2005/07/08 21:13:15 ddelon
* Gestion indentation menu
*
* Revision 1.5 2005/05/26 15:45:09 jpm
* Ajout d'une majuscule accentuée.
*
* Revision 1.4 2005/03/29 15:49:31 jpm
* Ajout de la constante pour la date de création dans le formulaire des menus.
*
* Revision 1.3 2004/12/01 16:47:07 jpm
* Ajout d'un texte pour la boite javascript de confirmation de suppression de menu.
*
* Revision 1.2 2004/11/10 17:26:12 jpm
* Fin gestion de la traduction.
*
* Revision 1.1 2004/11/10 11:58:31 jpm
* Début de la traduction de l'appli.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/admin_menu/admin_menu.php
New file
0,0 → 1,618
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)
//
// Ce logiciel est un programme informatique servant à gérer du contenu et des
// applications web.
// Ce logiciel est régi par la licence CeCILL soumise au droit français et
// respectant les principes de diffusion des logiciels libres. Vous pouvez
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
// sur le site "http://www.cecill.info".
 
// En contrepartie de l'accessibilité au code source et des droits de copie,
// de modification et de redistribution accordés par cette licence, il n'est
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
// seule une responsabilité restreinte pèse sur l'auteur du programme, le
// titulaire des droits patrimoniaux et les concédants successifs.
 
// A cet égard l'attention de l'utilisateur est attirée sur les risques
// associés au chargement, à l'utilisation, à la modification et/ou au
// développement et à la reproduction du logiciel par l'utilisateur étant
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à
// manipuler et qui le réserve donc à des développeurs et des professionnels
// avertis possédant des connaissances informatiques approfondies. Les
// utilisateurs sont donc invités à charger et tester l'adéquation du
// logiciel à leurs besoins dans des conditions permettant d'assurer la
// sécurité de leurs systèmes et ou de leurs données et, plus généralement,
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
 
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
// pris connaissance de la licence CeCILL, et que vous en avez accepté les
// termes.
// ----
// CVS : $Id: admin_menu.php,v 1.29 2007-10-25 10:10:23 alexandre_tb Exp $
/**
* Application gérant les menus de Papyrus
*
* Cette application permet de gérer les menus classiques, les menus communs
* et les liaison d'une application à un menu.
*
*@package Admin_menu
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@author Laurent COUDOUNEAU <lc@gsite.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.29 $ $Date: 2007-10-25 10:10:23 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php';
 
//Utilisation de la bibliotheque PEAR NET_URL
 
/** Inclusion de la bibliotheque PEAR de conception de formulaire.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php';
 
/** Inclusion de l'API de fonctions gerant les erreurs sql.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php';
 
/** Inclusion des fonctions de manipulation du sql.
* Permet la recuperation d'un nouvel identifiant d'une table.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
 
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_site..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';
 
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_menu..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';
 
/** <BR> Inclusion de la bibliotheque de fonctions concernant les tables "gen_applications..." de Papyrus.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_application.fonct.php';
 
/** <BR> Inclusion de la bibliotheque de fonctions concernant l'affichage commun.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_general.fonct.php';//ok
 
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion des menus classiques.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_classique.fonct.php';//ok
 
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion des menus communs.*/
require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_commun.fonct.php';//ok
 
/** <BR> Inclusion de la bibliotheque de fonctions concernant la gestion de la redaction de contenu.*/
//require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_contenu.fonct.php';//ok
 
// Inclusion des fichiers de traduction de l'appli ADME dePapyrus
if (file_exists(ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
/** Inclusion du fichier de traduction suite a la transaction avec le navigateur.*/
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
} else {
/** Inclusion du fichier de traduction par defaut.*/
require_once ADME_CHEMIN_LANGUE.'adme_langue_'.ADME_I18N_DEFAUT.'.inc.php';
}
 
// Stockage des styles de l'application
GEN_stockerStyleExterne('adme_standard', ADME_CHEMIN_STYLE.'adme_standard.css');
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
function afficherContenuCorps()
{
 
//-------------------------------------------------------------------------------------------------------------------
// Initialisation des variables
$sortie_xhtml = '';
$objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
$objet_pear_db = $GLOBALS['_GEN_commun']['pear_db'];
$objet_pear_url = $GLOBALS['_GEN_commun']['url'];
$copie_objet_pear_url = (PHP_VERSION < 5) ? $objet_pear_url : clone($objet_pear_url);
$url_site = $GLOBALS['_GEN_commun']['url_site'];
if (isset($GLOBALS['_GEN_commun']['url_menu'])) {
$url_menu = $GLOBALS['_GEN_commun']['url_menu'];
}
if (isset($_POST['adme_site_id'])) {
$_GET['adme_site_id'] = $_POST['adme_site_id'];
} else {
$_GET['adme_site_id'] = (!isset($_GET['adme_site_id'])) ? 1 : $_GET['adme_site_id'];
}
$_GET['adme_menu_id'] = (!isset($_GET['adme_menu_id'])) ? 0 : $_GET['adme_menu_id'];
$_GET['adme_action'] = (!isset($_GET['adme_action'])) ? '' : $_GET['adme_action'];
//-------------------------------------------------------------------------------------------------------------------
// Authentification
if ($objet_pear_auth->getAuth()) {
//---------------------------------------------------------------------------------------------------------------
// GESTION DES MENUS CLASSIQUES
// Ajouter un menu classique
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AJOUTER) {
$message = ADME_ajouterMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_site_id'], $_GET['adme_menu_id']);
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
header("Location: ".str_replace('&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;
}
//var_dump($_POST);
if (isset($_POST['form_boutons'][ADME_LG_ACTION_CLASSIQUE_VERIFIER])) {
// Nous cherchons a enregistrer une modification de menu
$message = ADME_validerFormAjouterMenuClassique($objet_pear_db, $_POST);
if (!empty($message)) {
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
return $sortie_xhtml;
} else {
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart.
$message = ADME_modifierMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
}
}
// Deplacer le menu vers le haut
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_MONTER) {
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
}
// Deplacer le menu vers le bas
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DESCENDRE) {
ADME_deplacerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
}
// Deplacer le menu vers la gauche (diminuer d'un niveau)
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_DIMINUER) {
ADME_indenterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
}
// Deplacer le menu vers la droite (augmenter d'un niveau)
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_AUGMENTER) {
ADME_indenterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
}
// Traduire le menu
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_TRADUIRE) {
$message='';
$message = ADME_verifier_traduction_possible($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
if ((!empty($message))) {
// Pas de traduction possible !
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
return $sortie_xhtml;
}
else {
// Les données sont valide. Nous affichons le formulaire de traduction
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']);
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_TRADUIRE_ACTION);
header("Location: ".str_replace('&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['form_boutons'][ADME_LG_ACTION_CLASSIQUE_VERIFIER_TRADUCTION])) {
// Nous cherchons a enregistrer une traduction de menu
$message = ADME_validerFormTraduireMenuClassique($objet_pear_db, $_POST);
if (!empty($message)) {
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormMenuClassique($objet_pear_db, $objet_pear_url, $_GET['adme_menu_id'], $_POST);
return $sortie_xhtml;
} else {
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart.
$message = ADME_traduireMenuClassique($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
}
}
// Supprimer le menu
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_SUPPRIMER) {
// Recuperation du menu de remplacement pour eviter de fermer l'arborescence
if (GEN_donnerDernierFreres($_GET['adme_menu_id']) == false) {
$adme_menu_id_remplacement = GEN_lireIdentifiantMenuPere($_GET['adme_menu_id']);;
} else {
$adme_menu_id_remplacement = GEN_donnerDernierFreres($_GET['adme_menu_id']);
}
// Suppression du menu classique
$message = ADME_supprimerMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']);
// Remplacement de l'id du menu courant par le remplacant.
$_GET['adme_menu_id'] = $adme_menu_id_remplacement;
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
header("Location: ".str_replace('&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;
}
// Restreindre le menu a la langue selectionne
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_LIMITER) {
$message = ADME_limiterMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'],$_GET['zone']);
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id'],$_GET['zone']);
header("Location: ".str_replace('&amp;', '&', $copie_objet_pear_url->getUrl()));
exit;
}
 
// Ouvrir le menu suite a une restriction
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_CLASSIQUE_OUVRIR) {
$message = ADME_ouvrirMenuClassique($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id']);
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
header("Location: ".str_replace('&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 a jour du menu commun.
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MODIFIER) {
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']);
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_MODIFIER_ACTION);
header("Location: ".str_replace('&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 a enregistrer une modification de menu
$message = ADME_validerFormAjouterMenuCommun($objet_pear_db, $_POST);
if (!empty($message)) {
// Les donnees ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormMenuCommun($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
return $sortie_xhtml;
} else {
// Les donnees sont valide. Nous les enregistrons et retournons au formulaire de depart.
$message = ADME_modifierMenuCommun($objet_pear_db, $objet_pear_auth, $_GET['adme_menu_id'], $_POST);
}
}
// Deplace vers le haut de la hierarchie un menu commun
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_MONTER) {
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
}
// Deplace vers le bas de la hierarchie un menu commun
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DESCENDRE) {
ADME_deplacerMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
}
 
// Deplacer le menu vers la gauche (diminuer d'un niveau)
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_DIMINUER) {
ADME_indenterMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], true);
}
// Deplacer le menu vers la droite (augmenter d'un niveau)
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_AUGMENTER) {
ADME_indenterMenuCommun($objet_pear_db, $_GET['adme_site_id'], $_GET['adme_menu_id'], false);
}
// Traduire le menu
if (isset($_GET['adme_action']) && $_GET['adme_action'] == ADME_LG_ACTION_COMMUN_TRADUIRE) {
$message='';
$message = ADME_verifier_traduction_possible($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_POST);
if ((!empty($message))) {
// Pas de traduction possible !
$sortie_xhtml .= $message;
$sortie_xhtml .= ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
return $sortie_xhtml;
}
else {
// Les données sont valide. Nous affichons le formulaire de traduction
$copie_objet_pear_url->addQueryString('adme_site_id',$_GET['adme_site_id']);
$copie_objet_pear_url->addQueryString('adme_menu_id',$_GET['adme_menu_id']);
$copie_objet_pear_url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_TRADUIRE_ACTION);
header("Location: ".str_replace('&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.28 2007-10-24 14:43:01 ddelon
* Gestion des menus reservés à une langue
*
* Revision 1.27 2007-07-04 14:59:13 florian
* correction bug maj non prise en charge
*
* Revision 1.26 2007/04/19 15:34:35 neiluj
* préparration release (livraison) "Narmer" - v0.25
*
* Revision 1.25 2006/10/06 10:40:51 florian
* harmonisation des messages d'erreur de l'authentification
*
* Revision 1.24 2006/06/29 19:13:26 ddelon
* Bug defaut traduction sur menu commun
*
* Revision 1.23 2006/06/29 18:58:57 ddelon
* Multilinguisme : menu par defaut pour les menu commun
*
* Revision 1.22 2006/06/28 12:53:34 ddelon
* Multilinguisme : menu par defaut
*
* Revision 1.21 2006/04/12 21:11:54 ddelon
* Multilinguisme menus communs
*
* Revision 1.20 2006/03/23 20:24:58 ddelon
* *** empty log message ***
*
* Revision 1.19 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.18.2.2 2006/02/28 14:02:08 ddelon
* Finition multilinguisme
*
* Revision 1.18.2.1 2005/12/27 15:56:00 ddelon
* Fusion Head vers multilinguisme (wikini double clic)
*
* Revision 1.18 2005/09/23 15:27:17 florian
* correction de bugs
*
* Revision 1.17 2005/07/18 16:14:32 ddelon
* css admin + menu communs
*
* Revision 1.16 2005/07/08 21:13:15 ddelon
* Gestion indentation menu
*
* Revision 1.15 2005/02/28 11:04:25 jpm
* Modification des auteurs.
*
* Revision 1.14 2005/02/28 10:31:41 jpm
* Changement de nom de dossier.
*
* Revision 1.13 2004/11/16 13:01:41 jpm
* Ajout d'un commentaire.
*
* Revision 1.12 2004/11/15 16:51:08 jpm
* Correction bogue de mise à jour de l'ordre des menus.
*
* Revision 1.11 2004/11/10 17:26:18 jpm
* Fin gestion de la traduction.
*
* Revision 1.10 2004/11/10 11:58:58 jpm
* Mise en place des constantes de traduction de l'appli.
*
* Revision 1.9 2004/11/09 17:53:03 jpm
* Changement des noms des actions sur les menus classiques.
*
* Revision 1.8 2004/11/09 17:49:11 jpm
* Mise en conformité et gestion de différentes interfaces d'administration.
*
* Revision 1.7 2004/10/25 16:28:02 jpm
* Correction convention de codage.
*
* Revision 1.6 2004/09/23 17:45:19 jpm
* Amélioration de la gestion des liens annuler et du selecteur de sites.
*
* Revision 1.5 2004/09/23 16:49:24 jpm
* Correction d'une erreur dans l'url de l'ajout de menu commun.
*
* Revision 1.4 2004/07/06 17:24:54 jpm
* Suppression d'inclusions de fichiers inutiles.
*
* Revision 1.3 2004/07/06 17:07:28 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.2 2004/06/16 15:06:30 jpm
* Suppression fichier inutile.
*
* Revision 1.1 2004/06/16 15:04:39 jpm
* Changement de nom de Papyrus en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.26 2004/05/10 14:32:21 jpm
* Changement du titre.
*
* Revision 1.25 2004/05/10 12:13:23 jpm
* Ajout de la sélection des sites.
*
* Revision 1.24 2004/05/07 16:33:05 jpm
* Intégration de constantes.
*
* Revision 1.23 2004/05/07 07:23:53 jpm
* Amélioration du code, des commentaires et correction de bogues.
*
* Revision 1.22 2004/05/05 06:45:44 jpm
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.
*
* Revision 1.21 2004/05/04 16:27:33 jpm
* Réduction de code pour la fonction afficherContenuTete().
*
* Revision 1.20 2004/05/03 11:23:26 jpm
* Début mise en conformité des commentaires.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/v5.0-ouadji/papyrus/applications/admin_site/bibliotheque/adsi_site.fonct.php
New file
0,0 → 1,2041
<?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.42 2007-10-23 13:31:22 ddelon Exp $
/**
* Bibliotheque de fonctions d'admininistration des projets
*
* Contient un ensemble de fonctions permettant a l'application Administrateur de Papyrus, de modifier des informations
* sur les projets (=sites geres 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.42 $ $Date: 2007-10-23 13:31:22 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
if (GEN_FTP_UTILISE) {
/** Inclusion bibliotheque de PEAR gerant le FTP.*/
require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
}
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Fonction ADMIN_afficherListeSites()- Genere le xhtml permettant de choisir un site parmis une liste.
*
* Cette fonction fournie une liste des sites principaux geres par papyrus.
*
* @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 a 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 defaut, 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 donnees du formulaire
if (empty($aso_valeurs['form_sites_id_site'])) {
$message .= '<p class="pap_erreur">Vous devez d\'abord s&eacute;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 a la base de donnees.
* @param string l'url a laquelle renvoyer le formulaire.
* @param string le tableau contenant les valeurs du formulaire.
* @param string un message a destination de l'utilisateur.
* return string le code XHTML a 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 a 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 recuperer les informations sur le site a 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 recuperer les informations issues des relations du site a 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 defaut
$aso_valeurs['defaut'] = true;
}
foreach ($tab_type as $cle => $val) {
if ($ligne->gsr_id_valeur == $val['id']) {// 20x = type de site externe a 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;
}
// Debogage :
//$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
//-------------------------------------------------------------------------------------------------------------------
// Information precedent 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( '<p class="formulaire_element"><span class="form_label">'."\n".
'{label}'."\n".
'<!-- BEGIN required --><span style="color:red; width:5px; margin:0; padding:0;">*</span><!-- END required -->'."\n".
'</span>'."\n".'{element}'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</p>'."\n");
$squelette->setGroupElementTemplate('<p style="display:inline">{element}</p>', 'form_boutons');
$squelette->setRequiredNoteTemplate("\n".'<p class="symbole_obligatoire">*&nbsp;:&nbsp;{requiredNote}</p>'."\n");
//Note pour les erreurs javascript
$form->setJsWarnings('Erreur de saisie', 'Veuillez verifier vos informations saisies');
// Note de fin de formulaire
$form->setRequiredNote('Indique les champs obligatoires');
// $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";
$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' => 35, '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&eacute;rique : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule('gs_code_alpha', 'Un code alphanum&eacute;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&eacute;rique : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$form->addRule('gs_code_num', 'Un code num&eacute;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&eacute;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 present dans le dossier du site
// creation de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// creation 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))) {
return ('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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();
if (PEAR::isError($tab_squelettes)) {
return ('ERREUR Papyrus admin : impossible d\'acc&eacute; aux fichiers par ftp.<br />'.
'Chemin : '. $chemin_squelettes .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __FILE__ .'<br />'.
'Message : '. $tab_squelettes->getMessage());
}
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();
}
// Verification de la presence 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&eacute;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' => 35, 'maxlength' => 255, 'value' => 'http://');
$label = '<label>'.'URL du site externe : '.'</label>';
$form->addElement('text', $id, $label, $aso_attributs);
$partie_site_fin = "\n".'</fieldset>'."\n";
$form->addElement('html', $partie_site_fin);
$partie_entete_debut = '<fieldset>'."\n".'<legend>Ent&egrave;te par d&eacute;faut des pages du site</legend>'."\n";
$form->addElement('html', $partie_entete_debut);
$id = 'gs_titre';
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 35, '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&eacute;s : '.'</label>';
$zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
$zone_mots_cles->setValue('mots-cl&eacute;s du site');
$form->addElement($zone_mots_cles);
$form->addRule($id, 'Des mots cl&eacute;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' => 35, '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 = "\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&eacute;&eacute; le '.$aso_valeurs['gs_date_creation'].'. Derni&egrave;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 defaut du formulaire
$form->setDefaults($aso_valeurs);
// Javascript pour la validation cote client
$regles_javascript = $form->getValidationScript();
// 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 donnees issues du formulaire pour gen_site.
*
* Cette fonction valide les donnees a ajouter dans la table gen_site.
*
* @param string l'objet pear de connexion a 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 donnees du formulaire
if (empty($aso_valeurs['gs_nom'])) {
$message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas &ecirc;tre vide.</p>';
}
if (empty($aso_valeurs['gs_code_alpha'])) {
$message .= '<p class="pap_erreur">Le champ "Code alphanum&eacute;rique" ne doit pas &ecirc;tre vide.</p>';
}
if ($aso_valeurs['gs_code_num'] == '') {
// Note: ne pas utilisez empty() car si on veut saisir 0, cela est considéré comme vide!
$message .= '<p class="pap_erreur">Le champ "Code num&eacute;rique" ne doit pas &ecirc;tre vide.</p>';
}
if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
$message .= '<p class="pap_erreur">Le champ "Code num&eacute;rique" doit contenir un nombre.</p>';
}
// Requete pour verifier l'absence du code numerique et alphanumerique 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&eacute;rique" existe d&eacute;j&agrave;.</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&eacute;rique" existe d&eacute;j&agrave;.</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 &ecirc;tre vide.</p>';
}
if (empty($aso_valeurs['gs_mots_cles'])) {
$message .= '<p class="pap_erreur">Le champ "Mots cl&eacute;s" ne doit pas &ecirc;tre vide.</p>';
}
if (empty($aso_valeurs['gs_description'])) {
$message .= '<p class="pap_erreur">Le champ "Description" ne doit pas &ecirc;tre vide.</p>';
}
if (empty($aso_valeurs['gs_auteur'])) {
$message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas &ecirc;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&eacute;sign&eacute; ce site comme &eacute;tant externe. Il est n&eacute;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&eacute;rez donc ce site comme &eacute;tant externe. Il est n&eacute;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 verifions si nous avons a faire a un site externe.
$id_type_site = '102';// par defaut 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 repertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante definie
// par l'utilisateur dans le fichier de config avancee.
$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&eacute;er le r&eacute;pertoire.<br />'.
'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;er le fichier de squellete par d&eacute;faut.<br />'.
'Fichier : '. $chemin_squelette_site .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;er le fichier de style par d&eacute;faut.<br />'.
'Fichier : '. $chemin_style_site .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __FILE__ .'<br /></p>';
return $message;
}
} else if (GEN_FTP_UTILISE && $id_type_site != '103') { // 103 est le type "site externe"
// Creation d'une connection ftp avec Net_FTP de PEAR
// voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
// creation de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
// creation 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&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __FILE__ .'<br /><p>';
return $message;
}
$resultat = $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
if (PEAR::isError($resultat)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
'R&eacute;pertoire : '. PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'] .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __FILE__ .'<br /></p>';
return $message;
}
//$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&eacute;er le r&eacute;pertoire par ftp.<br />'.
'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute; : '. $chemin_squelette_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute; : '. $chemin_style_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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 le dossier images par ftp.<br />'.
'Fichier origine : '. $chemin_image_defaut .'<br />'.
'Fichier copi&eacute; : '. $chemin_image_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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 papyrus admin : impossible de r&eacute;cup&eacute;rer un identifiant pour la table gen_site.<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __FILE__ .'<br /></p>';
return $message;
}
// Modification de la requete si nous avons a faire a 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 numero 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 defaut
$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&eacute;s de l\'ajout du site.'.'</p>';
return $message;
}
 
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
*
* Cette fonction traduit un site a Papyrus, c'est a dire :
* - 1. Creation des repertoire du projet en fonction du nom et des sous-repertoires.
* - 2. Insertion d'une ligne dans la table "gen_site".
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liees si necessaire.
*
* @param string l'objet pear de connexion a la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @param int identifiant de l'administrateur realisant cette création.
* @return string retourne un message en cas de succes ou d'echec.
*/
 
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
{
// Nous verifions si nous avons a faire a un site externe.
$id_type_site = '102';// par defaut on considere 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 repertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante definie
// par l'utilisateur dans le fichier de config avancee.
$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&eacute;er le r&eacute;pertoire.<br />'.
'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;er le fichier de squellete par d&eacute;faut.<br />'.
'Fichier : '. $chemin_squelette_site .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;er le fichier de style par défaut.<br />'.
'Fichier : '. $chemin_style_site .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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;
if (!copy($chemin_image_defaut, $chemin_image_site)) {
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er les fichhiers image par defaut.<br />'.
'Fichier : '. $chemin_style_site .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __FILE__ .'<br /><p>';
return $message;
}
$objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
//$objet_pear_ftp->cd(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
foreach ($tab_rep_langue as $nom_rep_langue) {
$objet_pear_ftp->mkdir(PAP_CHEMIN_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_CHEMIN_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&eacute;pertoire : '. $chemin_repertoire .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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;
$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&eacute; : '. $chemin_squelette_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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;
$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&eacute; : '. $chemin_style_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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 le dossier images par ftp.<br />'.
'Fichier origine : '. $chemin_image_defaut .'<br />'.
'Fichier copi&eacute; : '. $chemin_image_site .'<br />'.
'Erreur origine : '. $resultat->getMessage() .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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 Papyrus admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;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 considè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&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __FILE__ .'<br /></p>';
return $message;
}
} else {
$chemin_site_ancien = PAP_FTP_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&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;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&eacute;pertoire.<br />'.
'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;pertoire par ftp.<br />'.
'Erreur ftp : '.$resultat->getMessage().'<br />'.
'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
'Ligne n&deg; : '. __LINE__ .'<br />'.
'Fichier n&deg; : '. __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&eacute;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.41 2007-10-21 16:44:37 ddelon
* Pb Pap chemin
*
* Revision 1.40 2007-10-04 12:57:37 ddelon
* retablisssement chemin ftp dans traduction site
*
* Revision 1.39 2007-06-26 14:18:53 florian
* amélioration des formulaires des différentes applis de l'interface d'administration afin de les simplifier
*
* Revision 1.38 2007-06-25 12:15:06 alexandre_tb
* merge from narmer
*
* Revision 1.37 2007/04/24 13:27:57 alexandre_tb
* encodage
*
* Revision 1.36 2007/04/20 13:48:31 alexandre_tb
* nettoyage accent
*
* Revision 1.35 2007/04/20 10:42:42 neiluj
* suite oubli, fix des derniers bugs FTP
*
* Revision 1.34 2007/04/20 09:21:41 neiluj
* correction bug ftp création/suppression/modification de site
* (changé PAP_FTP_RACINE en PAP_CHEMIN_RACINE)
* voir compatibilité chroot() du serveur FTP)
*
* Revision 1.33 2007/04/19 15:34:35 neiluj
* préparration release (livraison) "Narmer" - v0.25
*
* Revision 1.32 2006/10/16 15:49:06 ddelon
* Refactorisation code mulitlinguisme et gestion menu invisibles
*
* 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 Papyrus 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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/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/v5.0-ouadji/papyrus/applications/afficheur/configuration/affi_fckconfig.js
New file
0,0 → 1,335
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2008 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Editor configuration settings.
*
* Follow this link for more information:
* http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options
*/
 
FCKConfig.CustomConfigurationsPath = '' ;
 
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
FCKConfig.EditorAreaStyles = '' ;
FCKConfig.ToolbarComboPreviewCSS = '' ;
 
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 ;
 
// The following option determines whether the "Show Blocks" feature is enabled or not at startup.
FCKConfig.StartupShowBlocks = false ;
 
FCKConfig.Debug = false ;
FCKConfig.AllowQueryStringDebug = true ;
 
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
FCKConfig.SkinEditorCSS = '' ; // FCKConfig.SkinPath + "|<minified css>" ;
FCKConfig.SkinDialogCSS = '' ; // FCKConfig.SkinPath + "|<minified css>" ;
 
FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;
 
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
 
// FCKConfig.Plugins.Add( 'autogrow' ) ;
// FCKConfig.Plugins.Add( 'dragresizetable' );
FCKConfig.AutoGrowMax = 400 ;
 
// FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ; // ASP style server side code <%...%>
// FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ; // PHP style server side code
// FCKConfig.ProtectedSource.Add( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ) ; // ASP.Net style tags <asp:control>
 
FCKConfig.AutoDetectLanguage = true ;
FCKConfig.DefaultLanguage = 'fr' ;
FCKConfig.ContentLangDirection = 'ltr' ;
 
FCKConfig.ProcessHTMLEntities = true ;
FCKConfig.IncludeLatinEntities = true ;
FCKConfig.IncludeGreekEntities = true ;
 
FCKConfig.ProcessNumericEntities = false ;
 
FCKConfig.AdditionalNumericEntities = '' ; // Single Quote: "'"
 
FCKConfig.FillEmptyBlocks = true ;
 
FCKConfig.FormatSource = true ;
FCKConfig.FormatOutput = true ;
FCKConfig.FormatIndentator = ' ' ;
 
FCKConfig.EMailProtection = 'encode' ; // none | encode | function
FCKConfig.EMailProtectionFunction = 'mt(NAME,DOMAIN,SUBJECT,BODY)' ;
 
FCKConfig.StartupFocus = false ;
FCKConfig.ForcePasteAsPlainText = false ;
FCKConfig.AutoDetectPasteFromWord = true ; // IE only.
FCKConfig.ShowDropDialog = true ;
FCKConfig.ForceSimpleAmpersand = false ;
FCKConfig.TabSpaces = 0 ;
FCKConfig.ShowBorders = true ;
FCKConfig.SourcePopup = false ;
FCKConfig.ToolbarStartExpanded = true ;
FCKConfig.ToolbarCanCollapse = true ;
FCKConfig.IgnoreEmptyParagraphValue = true ;
FCKConfig.FloatingPanelsZIndex = 10000 ;
FCKConfig.HtmlEncodeOutput = false ;
 
FCKConfig.TemplateReplaceAll = true ;
FCKConfig.TemplateReplaceCheckbox = true ;
 
FCKConfig.ToolbarLocation = 'In' ;
 
FCKConfig.ToolbarSets["Default"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['FitWindow','ShowBlocks','-','About'] // No comma for the last row.
] ;
 
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
 
FCKConfig.ToolbarSets["Papyrus"] = [
['FitWindow','ShowBlocks','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','Link','Unlink','Table','Rule','SpecialChar'],
['FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['About']
] ;
 
FCKConfig.EnterMode = 'p' ; // p | div | br
FCKConfig.ShiftEnterMode = 'br' ; // p | div | br
 
FCKConfig.Keystrokes = [
[ CTRL + 65 /*A*/, true ],
[ CTRL + 67 /*C*/, true ],
[ CTRL + 70 /*F*/, true ],
[ CTRL + 83 /*S*/, true ],
[ CTRL + 84 /*T*/, true ],
[ CTRL + 88 /*X*/, true ],
[ CTRL + 86 /*V*/, 'Paste' ],
[ CTRL + 45 /*INS*/, true ],
[ SHIFT + 45 /*INS*/, 'Paste' ],
[ CTRL + 88 /*X*/, 'Cut' ],
[ SHIFT + 46 /*DEL*/, 'Cut' ],
[ CTRL + 90 /*Z*/, 'Undo' ],
[ CTRL + 89 /*Y*/, 'Redo' ],
[ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],
[ CTRL + 76 /*L*/, 'Link' ],
[ CTRL + 66 /*B*/, 'Bold' ],
[ CTRL + 73 /*I*/, 'Italic' ],
[ CTRL + 85 /*U*/, 'Underline' ],
[ CTRL + SHIFT + 83 /*S*/, 'Save' ],
[ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],
[ SHIFT + 32 /*SPACE*/, 'Nbsp' ]
] ;
 
FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form','DivContainer'] ;
FCKConfig.BrowserContextMenuOnCtrl = false ;
FCKConfig.BrowserContextMenu = false ;
 
FCKConfig.EnableMoreFontColors = true ;
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.FontFormats = 'p;h1;h2;h3;h4;h5;h6;pre;address;div' ;
FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
FCKConfig.FontSizes = 'smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ;
 
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ;
FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ;
 
FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/download.php' ;
FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; // Available extension: .php .cfm .pl
FCKConfig.FirefoxSpellChecker = false ;
 
FCKConfig.MaxUndoLevels = 15 ;
 
FCKConfig.DisableObjectResizing = false ;
FCKConfig.DisableFFTableHandles = true ;
 
FCKConfig.LinkDlgHideTarget = false ;
FCKConfig.LinkDlgHideAdvanced = false ;
 
FCKConfig.ImageDlgHideLink = false ;
FCKConfig.ImageDlgHideAdvanced = false ;
 
FCKConfig.FlashDlgHideAdvanced = false ;
 
FCKConfig.ProtectedTags = '' ;
 
// This will be applied to the body element of the editor
FCKConfig.BodyId = '' ;
FCKConfig.BodyClass = '' ;
 
FCKConfig.DefaultStyleLabel = '' ;
FCKConfig.DefaultFontFormatLabel = '' ;
FCKConfig.DefaultFontLabel = '' ;
FCKConfig.DefaultFontSizeLabel = '' ;
 
FCKConfig.DefaultLinkTarget = '' ;
 
// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word
FCKConfig.CleanWordKeepsStructure = false ;
 
// Only inline elements are valid.
FCKConfig.RemoveFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' ;
 
// Attributes that will be removed
FCKConfig.RemoveAttributes = 'class,style,lang,width,height,align,hspace,valign' ;
 
FCKConfig.CustomStyles =
{
'Red Title' : { Element : 'h3', Styles : { 'color' : 'Red' } }
};
 
// Do not add, rename or remove styles here. Only apply definition changes.
FCKConfig.CoreStyles =
{
// Basic Inline Styles.
'Bold' : { Element : 'strong', Overrides : 'b' },
'Italic' : { Element : 'em', Overrides : 'i' },
'Underline' : { Element : 'u' },
'StrikeThrough' : { Element : 'strike' },
'Subscript' : { Element : 'sub' },
'Superscript' : { Element : 'sup' },
 
// Basic Block Styles (Font Format Combo).
'p' : { Element : 'p' },
'div' : { Element : 'div' },
'pre' : { Element : 'pre' },
'address' : { Element : 'address' },
'h1' : { Element : 'h1' },
'h2' : { Element : 'h2' },
'h3' : { Element : 'h3' },
'h4' : { Element : 'h4' },
'h5' : { Element : 'h5' },
'h6' : { Element : 'h6' },
 
// Other formatting features.
'FontFace' :
{
Element : 'span',
Styles : { 'font-family' : '#("Font")' },
Overrides : [ { Element : 'font', Attributes : { 'face' : null } } ]
},
 
'Size' :
{
Element : 'span',
Styles : { 'font-size' : '#("Size","fontSize")' },
Overrides : [ { Element : 'font', Attributes : { 'size' : null } } ]
},
 
'Color' :
{
Element : 'span',
Styles : { 'color' : '#("Color","color")' },
Overrides : [ { Element : 'font', Attributes : { 'color' : null } } ]
},
 
'BackColor' : { Element : 'span', Styles : { 'background-color' : '#("Color","color")' } },
 
'SelectionHighlight' : { Element : 'span', Styles : { 'background-color' : 'navy', 'color' : 'white' } }
};
 
// The distance of an indentation step.
FCKConfig.IndentLength = 40 ;
FCKConfig.IndentUnit = 'px' ;
 
// Alternatively, FCKeditor allows the use of CSS classes for block indentation.
// This overrides the IndentLength/IndentUnit settings.
FCKConfig.IndentClasses = [] ;
 
// [ Left, Center, Right, Justified ]
FCKConfig.JustifyClasses = [] ;
 
// The following value defines which File Browser connector and Quick Upload
// "uploader" to use. It is valid for the default implementaion and it is here
// just to make this configuration file cleaner.
// It is not possible to change this value using an external file or even
// inline when creating the editor instance. In that cases you must set the
// values of LinkBrowserURL, ImageBrowserURL and so on.
// Custom implementations should just ignore it.
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
 
// Don't care about the following two lines. It just calculates the correct connector
// extension to use for the default File Browser (Perl uses "cgi").
var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ;
 
FCKConfig.LinkBrowser = true ;
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;
FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70%
FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70%
 
FCKConfig.ImageBrowser = true ;
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;
FCKConfig.ImageBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70% ;
FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% ;
 
FCKConfig.FlashBrowser = true ;
FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;
FCKConfig.FlashBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; //70% ;
FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; //70% ;
 
FCKConfig.LinkUpload = true ;
FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;
FCKConfig.LinkUploadAllowedExtensions = ".(7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip)$" ; // empty for all
FCKConfig.LinkUploadDeniedExtensions = "" ; // empty for no one
 
FCKConfig.ImageUpload = true ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Image' ;
FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ; // empty for all
FCKConfig.ImageUploadDeniedExtensions = "" ; // empty for no one
 
FCKConfig.FlashUpload = true ;
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Flash' ;
FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ; // 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 = 210 ;
 
FCKConfig.BackgroundBlockerColor = '#ffffff' ;
FCKConfig.BackgroundBlockerOpacity = 0.50 ;
 
FCKConfig.MsWebBrowserControlCompat = false ;
 
FCKConfig.PreventSubmitHandler = false ;
/branches/v5.0-ouadji/papyrus/applications/afficheur/configuration/affi_configuration.inc.php
New file
0,0 → 1,152
<?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.14 2007-06-26 13:30:48 jp_milcent 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.14 $ $Date: 2007-06-26 13:30:48 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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 squelettes de l'application.*/
define('AFFI_CHEMIN_SQUELETTE', AFFI_CHEMIN_APPLICATION.'squelettes'.GEN_SEP);
/** Chemin vers le dossier des styles de l'application.*/
define('AFFI_CHEMIN_STYLE', AFFI_CHEMIN_SQUELETTE);
/** 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']);
// 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('//', '/', $dirname_base_url.GEN_SEP.AFFI_CHEMIN_APPLICATION.'configuration'.GEN_SEP.'affi_fckconfig.js');
 
// 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.13 2006-04-28 12:41:49 florian
* corrections erreurs chemin
*
* 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/v5.0-ouadji/papyrus/applications/afficheur/afficheur.admin.php
New file
0,0 → 1,367
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: afficheur.admin.php,v 1.24 2007-06-26 15:38:39 jp_milcent Exp $
/**
* Gestion de la rédaction du contenu pour Papyrus.
*
* Contient les fonctions nécessaires à la gestion du contenu de Papyrus.
*
*@package Afficheur
*@subpackage Administration
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.24 $ $Date: 2007-06-26 15:38:39 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
// Nous indiquons à Papyrus de ne pas chercher de balises d'applettes dans le contenu généré par l'appli
$GLOBALS['_PAPYRUS_']['applette']['analyse'] = false;
 
// +------------------------------------------------------------------------------------------------------+
// | CLASSE |
// +------------------------------------------------------------------------------------------------------+
class Afficheur_Admin {
var $objet_pear_auth;
var $objet_pear_db;
var $objet_pear_url;
var $sortie_xhtml;
/** Fonction redigerContenu() - Affiche le formulaire de rédaction
*
*
* @return string Le HTML
*/
function afficherContenuCorps()
{
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications'.GEN_SEP.'afficheur'.GEN_SEP.'configuration'.GEN_SEP.'affi_configuration.inc.php';
//-------------------------------------------------------------------------------------------------------------------
// Stockage des styles de l'application
GEN_stockerStyleExterne('afficheur', AFFI_CHEMIN_STYLE.'afficheur.css');
//-------------------------------------------------------------------------------------------------------------------
// Initialisation des attributs
$this->objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
$this->objet_pear_db = $GLOBALS['_GEN_commun']['pear_db'];
$this->objet_pear_url = $GLOBALS['_GEN_commun']['url'];
$this->sortie_xhtml = '';
//-------------------------------------------------------------------------------------------------------------------
// Gestion de l'interface
if (isset($_POST['afficheur_annuler'])) {
return false;
} else if (isset($_POST['afficheur_enregistrer_quitter'])) {
// Mise à jour du contenu
$this->_ajouterContenu($this->objet_pear_db, $this->objet_pear_url, $this->objet_pear_auth, $_GET['adme_menu_id'], $_POST);
return false;
} else if (isset($_POST['afficheur_enregistrer_rester'])) {
// Mise à jour du contenu
$this->_ajouterContenu($this->objet_pear_db, $this->objet_pear_url, $this->objet_pear_auth, $_GET['adme_menu_id'], $_POST);
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
} else if (isset($_POST['afficheur_historique'])) {
// Réediter une version archivée
$this->sortie_xhtml .= $this->_reediterContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
} else {
if (isset($_GET['adme_version'])) {
// Nous avons demandés la réedition d'une version archivées
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action'], $_GET['adme_version']);
} else {
// Nous affichons le dernier contenu
$this->sortie_xhtml .= $this->_redigerContenu($this->objet_pear_db, $this->objet_pear_url, $_GET['adme_site_id'], $_GET['adme_menu_id'], $_GET['adme_action']);
}
}
return $this->sortie_xhtml;
}
function _redigerContenu($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $adme_contenu_id = '')
{
//-------------------------------------------------------------------------------------------------------------------
// Initialisation de variable
$contenu = '';
$donnees = array();
$url->addQueryString('adme_site_id', $adme_site_id);
$url->addQueryString('adme_menu_id', $adme_menu_id);
$url->addQueryString('adme_action', $adme_action);
if ($adme_contenu_id != '') {
// Nous réeditons une version archivée
$ligne_dernier_contenu = GEN_rechercheContenuIdentifiant($db, $adme_contenu_id, DB_FETCHMODE_ASSOC);
$donnees['reedition_info'] = $ligne_dernier_contenu['gmc_date_modification'];
} else {
// Nous affichons la dernière version du contenu
$ligne_dernier_contenu = GEN_rechercheContenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC);
}
 
//-------------------------------------------------------------------------------------------------------------------
// Récupération des données
$donnees['form_url'] = $url->getUrl();
// Gestion de FckEditor
$donnees['fck_editor'] = '';
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()) {
$donnees['fck_editor'] = $fckeditor->CreateHtml();
}
}
 
// Identifiant du menu
$donnees['gmc_ce_menu'] = $adme_menu_id;
// Type de contenu
// Par défaut c'est du XHTML (donc 1)
$donnees['gmc_ce_type_contenu'] = 1;
if (isset($ligne_dernier_contenu['gmc_ce_type_contenu'])) {
$donnees['gmc_ce_type_contenu'] = $ligne_dernier_contenu['gmc_ce_type_contenu'];
}
$squelette = AFFI_CHEMIN_SQUELETTE.'formulaire.tpl.html';
return $this->_genererContenu($squelette, $donnees);
}
function _reediterContenu($db, $url, $adme_site_id, $adme_menu_id, $adme_action)
{
//-------------------------------------------------------------------------------------------------------------------
// Initialisation de variable
$contenu = '';
$donnees = array();
$url->addQueryString('adme_site_id', $adme_site_id);
$url->addQueryString('adme_menu_id', $adme_menu_id);
$url->addQueryString('adme_action', $adme_action);
$donnees['archives'] = GEN_lireContenuMenuHistorique(&$db, $adme_menu_id);
foreach ($donnees['archives'] as $cle => $archive) {
$url->addQueryString('adme_version', $archive->gmc_id_contenu);
$donnees['archives'][$cle]->url = $url->getURL();
$url->removeQueryString('adme_version');
}
// print_r($donnees['archives']);
 
$squelette = AFFI_CHEMIN_SQUELETTE.'historique.tpl.html';
return $this->_genererContenu($squelette, $donnees);
}
/** Méthode ajouterContenu() - Enregistre les infos du formulaire de saisie d'un menu
*
*
* @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)) : '';
}
function _genererContenu($squelette, $donnees)
{
//+------------------------------------------------------------------------------------------------------------+
// Extrait les variables et les ajoutes à l'espace de noms local
// Gestion des squelettes
extract($donnees);
// Démarre le buffer
ob_start();
// Inclusion du fichier
include($squelette);
// Récupérer le contenu du buffer
$contenu = ob_get_contents();
// Arrête et détruit le buffer
ob_end_clean();
return $contenu;
}
}// Fin de la classe
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.23 2007-06-26 13:30:48 jp_milcent
* Suppression de l'utilisation de Quickform.
* Utilisation de squellette PHP.
*
* Revision 1.22 2007-01-03 11:28:34 ddelon
* correction bug multilinguisme (portage bug livraison)
*
* Revision 1.21 2006/12/01 16:59:45 florian
* Ajout d'une variable parametrant la recherche de balise d'applette dans le contenu généré par l'appli.
*
* Revision 1.20 2006/12/01 11:23:23 ddelon
* Suppression mode wiki afficheur
*
* Revision 1.19 2006/10/16 15:49:07 ddelon
* Refactorisation code mulitlinguisme et gestion menu invisibles
*
* Revision 1.18 2006/04/28 12:41:49 florian
* corrections erreurs chemin
*
* Revision 1.17 2006/03/27 13:42:32 ddelon
* the last but not the least
*
* Revision 1.16 2006/03/27 11:21:49 ddelon
* Still some pb
*
* Revision 1.15 2006/03/27 10:14:43 ddelon
* Still some pb
*
* Revision 1.11 2006/03/13 22:27:23 ddelon
* bug afficheur multilinguisme
*
* Revision 1.10 2006/03/13 22:12:20 ddelon
* bug afficheur multilinguisme
*
* Revision 1.9 2006/03/13 21:00:20 ddelon
* Suppression messages d'erreur multilinguisme
*
* Revision 1.8 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.7.2.1 2006/02/28 14:02:11 ddelon
* Finition multilinguisme
*
* Revision 1.7 2005/07/18 08:53:14 ddelon
* Configuration Fcsk et menage
*
* Revision 1.6 2005/07/15 17:10:08 ddelon
* Configuration Fcsk et menage
*
* Revision 1.5 2005/06/03 18:39:30 jpm
* Ajout de la barre d'outil Papyrus FCKeditor.
*
* Revision 1.4 2005/05/31 13:43:57 jpm
* Ajout d'un bouton pour remplacer les entités html.
*
* Revision 1.3 2005/04/25 13:56:31 jpm
* Ajout de styles.
*
* Revision 1.2 2005/02/28 10:34:15 jpm
* Changement de nom Genesia en Papyrus.
*
* Revision 1.1 2004/11/09 17:53:49 jpm
* Interface d'administration de l'application afficheur.
*
* Revision 1.4 2004/11/08 17:40:33 jpm
* Mise en conformité avec la convention de codage.
* Légères corrections.
*
* Revision 1.3 2004/09/23 17:45:13 jpm
* Amélioration de la gestion des liens annuler et du selecteur de sites.
*
* Revision 1.2 2004/07/06 17:07:37 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*
* Revision 1.1 2004/06/16 15:04:32 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.5 2004/05/07 16:32:27 jpm
* Modification des commentaires.
*
* Revision 1.4 2004/05/07 07:23:53 jpm
* Amélioration du code, des commentaires et correction de bogues.
*
* Revision 1.3 2004/05/04 16:27:55 jpm
* Amélioration gestion du déplacement des menus.
*
* Revision 1.2 2004/05/03 14:51:59 jpm
* Normalisation du nom d'une fonction et ajout de la gestion d'une erreur.
*
* Revision 1.1 2004/04/30 16:21:30 jpm
* Ajout de la rédaction de contenu.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/v5.0-ouadji/papyrus/applications/afficheur/squelettes/formulaire.tpl.html
New file
0,0 → 1,41
<h1>Rédaction</h1>
<?php if (isset($reedition_info)) :?>
<p class="zone_info">Vous venez de rééditer la version archivée du <?=$reedition_info;?>.</p>
<?php endif; ?>
<form action="<?=$form_url;?>" method="post" name="form_modifier_contenu" id="form_modifier_contenu">
<ul>
<li>
<?=$fck_editor;?>
</li>
<li>
<label for="gmc_ce_type_modification">Type de modification : </label>
<select id="gmc_ce_type_modification" tabindex="1000" name="gmc_ce_type_modification">
<option value="1">Mineure</option>
<option value="2">Majeure</option>
</select>
</li>
<li>
<label for="gmc_resume_modification">Resumé modification : </label>
<input id="gmc_resume_modification" tabindex="1001" size="45" maxlength="255" name="gmc_resume_modification" type="text" />
</li>
<li>
<ul class="liste_bouton">
<li>
<input id="afficheur_enregistrer_quitter" name="afficheur_enregistrer_quitter" value="Enregistrer et quitter" type="submit" />
</li>
<li>
<input id="afficheur_enregistrer_rester" name="afficheur_enregistrer_rester" value="Enregistrer et rester en édition" type="submit" />
</li>
<li>
<input id="afficheur_historique" name="afficheur_historique" value="Réediter une version archivée" type="submit" />
</li>
<li>
<input id="afficheur_annuler" name="afficheur_annuler" value="Annuler" type="submit" />
</li>
</ul>
<input name="gmc_ce_type_contenu" type="hidden" value="<?=$gmc_ce_type_contenu;?>" />
<input name="gmc_ce_menu" type="hidden" value="<?=$gmc_ce_menu;?>" />
<input name="gmc_ce_type_contenu_table" type="hidden" value="1" />
</li>
</ul>
</form>
/branches/v5.0-ouadji/papyrus/applications/afficheur/squelettes/historique.tpl.html
New file
0,0 → 1,7
<h1>Archives</h1>
<p>Cliquer sur un des liens pour éditer à nouveau la version de la page sauvegardée à la date indiquée.</p>
<ul>
<?php foreach ($archives as $archive) : ?>
<li><a href="<?=$archive->url;?>"><?=$archive->gmc_date_modification;?></a></li>
<?php endforeach; ?>
</ul>
/branches/v5.0-ouadji/papyrus/applications/afficheur/squelettes/afficheur.css
New file
0,0 → 1,53
/* 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 2007-06-26 13:30:48 jp_milcent 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: jp_milcent $
VERSION : $Revision: 1.1 $ $Date: 2007-06-26 13:30:48 $
======================================================================================================= */
 
/* +----------------------------------------------------------------------------------------------------+
| STRUCTURE |
+----------------------------------------------------------------------------------------------------+*/
#gmc_contenu {
width: 100%;
min-height:400px;
}
 
/* +----------------------------------------------------------------------------------------------------+
| DESIGN |
+----------------------------------------------------------------------------------------------------+*/
 
/* +--Fin des CSS ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1 2005-04-25 13:56:08 jpm
* Ajout du style pour l'afficheur.
*
*
* +-- Fin des CSS ----------------------------------------------------------------------------------------+
*/
/branches/v5.0-ouadji/papyrus/applications/afficheur/afficheur.php
New file
0,0 → 1,384
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: afficheur.php,v 1.14 2007-06-26 15:38:39 jp_milcent Exp $
/**
* Application réalisant l'affichage du contenu stocké dans Papyrus.
*
* Récupère le dernier contenu lié à un menu et le retourne.
*
*@package Afficheur
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Alexandre GRANIER <alexandrel@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.14 $ $Date: 2007-06-26 15:38:39 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier de configuration de cette application.*/
require_once GEN_CHEMIN_PAP.'applications/afficheur/configuration/affi_configuration.inc.php';
// Inclusion de la bibliothèque PEAR Text_Wiki réalisées par Papyrus.
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Fonction afficherContenuTete() - Fonction appelé par le gestionnaire Papyrus.
*
* Elle retourne l'entête de l'application..
*
* @return string du code XHTML correspondant à la zone d'entête de l'application.
*/
function afficherContenuTete()
{
return '';
}
 
function afficherContenuCorps() {
$retour = '';
$db = $GLOBALS['_AFFICHEUR']['objet_pear_db'];
$id_or = GEN_rechercheMenuCode($db, GEN_rechercheMenuIdentifiant($db, $GLOBALS['_AFFICHEUR']['menu_courant_id']));
 
$ligne_contenu = GEN_rechercheContenu($db, $id_or);
$contenu = $ligne_contenu->gmc_contenu;
// Inclusion de la bibliothèque Text_Wiki_Papyrus effectuées par Papyrus précédement
// Les actions Text_Wiki_Papyrus sont gérées par Papyrus
// Nous regardons si nous avons à faire à un texte sous format Wikini ou XHTML
if (($ligne_contenu->gmc_ce_type_contenu == 1)||(substr($ligne_contenu->gmc_ce_type_contenu,-1)== 1)) {
$retour = $contenu;
} elseif (($ligne_contenu->gmc_ce_type_contenu == 2) || (substr($ligne_contenu->gmc_ce_type_contenu,-1)== 2)){
include_once AFFI_CHEMIN_BIBLIOTHEQUE_API.'text/wiki_wikini/Wikini.class.php';
// Création d'un objet Text_Wikini :
$wikini =& new Text_Wikini();
// Pour éviter de remplacer les caractères spéciaux du XHTML:
$wikini->setFormatConf('Xhtml', 'translate', false);
// Configuration de la règle Freelink :
$wikini->setRenderConf('Xhtml', 'freelink', 'pages', null);
$wikini->setRenderConf('Xhtml', 'freelink', 'view_url', AFFI_URL_PAPYRUS);
// Configuration de la règle Interwiki :
$wikini->setRenderConf('Xhtml', 'interwiki', 'sites', $GLOBALS['_AFFICHEUR']['interwiki_sites']);
// Application des règles de Wikini :
$retour = $wikini->transform($contenu, 'Xhtml');
}
//----------------------------------------------------------------------------
// Renvoie du contenu de la page
return $retour;
}
 
 
/** Fonction afficherContenuCorps() - Fonction appelé par le gestionnaire Papyrus.
*
* Elle retourne le contenu stocké dans Papyrus pour le menu courant demandé.
*
* @return string du code XHTML correspondant au contenu du menu demandé.
*/
function afficherContenuCorpsOld()
{
//----------------------------------------------------------------------------
// Initialisation des variable
$retour = '';
$id_langue = $GLOBALS['_GEN_commun']['i18n'];
if (isset($id_langue) && ($id_langue!='')) {
$langue_test=$id_langue;
} else {
$langue_test=GEN_I18N_ID_DEFAUT;
}
 
//-------------------------------------------------------------------------------------------------------------------
// Récupération des informations du contenu concerné.
$ligne_menu = GEN_lireInfoMenu($GLOBALS['_AFFICHEUR']['objet_pear_db'], $GLOBALS['_AFFICHEUR']['menu_courant_id'], DB_FETCHMODE_ASSOC);
if ($ligne_menu == false) {
die('ERREUR Papyrus Administrateur de Menus: impossible de lire les infos du menu.<br />'.
'Idenitifiant du menu n° : '. $GLOBALS['_AFFICHEUR']['objet_pear_db'] .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
 
// Comment ca marche ?
// Historiquement, le code menu est associé au contenu
// Depuis le passage au multilinguisme : ce comportement est conservé mais :
// Tout nouveau contenu, contient également l'information code gm_id_menu, enfoui dans le
// type contenu.
// Récupération identifiant du menu en cours
$requete = 'SELECT gm_id_menu, gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '.
'AND gm_ce_i18n = "'.$langue_test.'" ';
 
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ( $resultat->numRows() > 0 ) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
}
else {
// Recherche defaut :
 
$requete = 'SELECT gm_id_menu, gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' ';
'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" ';
 
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
 
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
if ($langue_test!=GEN_I18N_ID_DEFAUT) {
$requete_defaut = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '.
'FROM gen_menu_relation '.
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' .
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut
$resultat_defaut = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete_defaut);
(DB::isError($resultat_defaut)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_defaut->getMessage(), $requete_defaut))
: '';
if ($resultat_defaut->numRows() > 0) {
$ligne=$resultat_defaut->fetchRow(DB_FETCHMODE_OBJECT);
}
}
}
 
// Cas historique : ce menu n'a jamais été traduit.
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$ligne->gm_id_menu.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Rien trouvé ? : Migration multilinguisme ou pas encore de contenu
if ( $resultat->numRows() == 0 ) {
// Migration multilinguisme
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$ligne_menu['gm_code_num'].' '.
'AND truncate((gmc_ce_type_contenu/10),0) = '. $ligne->gm_id_menu . ' '.
'AND gmc_bool_dernier = 1';
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Pas de contenu, tentative de recuperation du contenu se
if ( $resultat->numRows() == 0 ) {
$requete = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '.
'FROM gen_menu_relation '.
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' .
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
: '';
 
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '.
'FROM gen_menu_contenu, gen_menu_relation '.
'WHERE truncate((gmc_ce_type_contenu/10),0) = gmr_id_menu_01 '.
'AND '.$ligne->gm_id_menu.' = gmr_id_menu_02 '.
'AND gmr_id_valeur = 2 '.
'AND gmc_bool_dernier = 1';
 
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
/*
$requete = 'SELECT gmr_id_menu_02 as gm_id_menu , ' . $ligne->gm_code_num . ' as gm_code_num '.
'FROM gen_menu_relation '.
'WHERE '.$ligne->gm_id_menu. ' = gmr_id_menu_01 ' .
'AND gmr_id_valeur = 105 ';// 105 Traduction par defaut
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
print_r ($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
: '';
*/
}
// Toujours rien ?
if ( $resultat->numRows() == 0 ) {
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$ligne->gm_code_num.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
}
$ligne_contenu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$contenu = $ligne_contenu->gmc_contenu;
// Inclusion de la bibliothèque Text_Wiki_Papyrus effectuées par Papyrus précédement
// Les actions Text_Wiki_Papyrus sont gérées par Papyrus
// Nous regardons si nous avons à faire à un texte sous format Wikini ou XHTML
if (($ligne_contenu->gmc_ce_type_contenu == 1)||(substr($ligne_contenu->gmc_ce_type_contenu,-1)== 1)) {
$retour = $contenu;
} elseif (($ligne_contenu->gmc_ce_type_contenu == 2) || (substr($ligne_contenu->gmc_ce_type_contenu,-1)== 2)){
include_once AFFI_CHEMIN_BIBLIOTHEQUE_API.'text/wiki_wikini/Wikini.class.php';
// Création d'un objet Text_Wikini :
$wikini =& new Text_Wikini();
// Pour éviter de remplacer les caractères spéciaux du XHTML:
$wikini->setFormatConf('Xhtml', 'translate', false);
// Configuration de la règle Freelink :
$wikini->setRenderConf('Xhtml', 'freelink', 'pages', null);
$wikini->setRenderConf('Xhtml', 'freelink', 'view_url', AFFI_URL_PAPYRUS);
// Configuration de la règle Interwiki :
$wikini->setRenderConf('Xhtml', 'interwiki', 'sites', $GLOBALS['_AFFICHEUR']['interwiki_sites']);
// Application des règles de Wikini :
$retour = $wikini->transform($contenu, 'Xhtml');
}
 
// +---------------------------------------------------------------------------------------------------------------+
// Nous regardons si nous voulons surligner ou pas des mots
if (isset($_GET['var_recherche'])) {
$tab_mots = explode(' ', rawurldecode($_GET['var_recherche']));
foreach ($tab_mots as $mot) {
if (strlen($mot) >= 2) {
$regexp = '/(>[^<]*)('.$mot.'\b)/Uis';
$retour = preg_replace($regexp, '$1<span class="surlignage">$2</span>', $retour);
}
}
}
 
//----------------------------------------------------------------------------
// Renvoie du contenu de la page
return $retour;
}
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.13 2006-11-21 18:52:20 jp_milcent
* Ajout de la possibilité de surligner des mots.
*
* Revision 1.12 2006/11/21 15:50:05 jp_milcent
* Ajout du surlignage des mots passé dans la query string via la variable var_recherche.
*
* Revision 1.11 2006/10/16 15:49:07 ddelon
* Refactorisation code mulitlinguisme et gestion menu invisibles
*
* Revision 1.10 2006/06/29 15:12:26 ddelon
* Multilinguisme : contenu par defaut
*
* Revision 1.9 2006/03/27 10:50:24 ddelon
* Still some pb
*
* Revision 1.7 2006/03/13 21:00:20 ddelon
* Suppression messages d'erreur multilinguisme
*
* Revision 1.6 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.5.2.3 2006/03/02 00:22:23 ddelon
* bug afficheur multilinguisme
*
* Revision 1.5.2.2 2006/03/01 23:51:07 ddelon
* bug afficheur multilinguisme
*
* Revision 1.5.2.1 2006/02/28 14:02:11 ddelon
* Finition multilinguisme
*
* Revision 1.5 2005/04/21 16:46:17 jpm
* Gestion via Papyrus du XHTML.
*
* Revision 1.4 2005/02/22 18:25:13 jpm
* Déplacement d'un message d'alerte en cas d'erreur sql.
*
* Revision 1.3 2004/12/07 12:24:30 jpm
* Changement chemin d'accés à l'api Text/Wiki...
*
* Revision 1.2 2004/11/26 13:10:05 jpm
* Utilisation des actions Papyrus et implémentation de la syntaxe Wikini.
*
* Revision 1.1 2004/06/16 14:35:26 jpm
* Changement de nom de Génésia en Papyrus.
* Changement de l'arborescence.
*
* Revision 1.12 2004/05/05 11:35:12 jpm
* Amélioration de la gestion de l'internationalisation.
*
* Revision 1.11 2004/05/05 06:45:40 jpm
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.
*
* Revision 1.10 2004/05/04 16:28:22 jpm
* Réduction de code pour la fonction afficherContenuTete().
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>