Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 1086 → Rev 1087

/branches/livraison_menes/papyrus/bibliotheque/classes/pap_url.class.php
New file
0,0 → 1,404
<?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: pap_url.class.php,v 1.4 2006-10-11 18:04:11 jp_milcent Exp $
/**
* Classe de gestion des url de Papyrus
*
* Permet de gérer la réecriture des url.
*
*@package Papyrus
*@subpackage Classes
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $ $Date: 2006-10-11 18:04:11 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
class Pap_URL extends Net_URL {
/** Identifiant du menu
*
* @var integer
*/
var $id;
/** Chaine contenant le permalien.
*
* @var string
*/
var $permalien = '';
/** Booléen indiquant si on affiche ou pas un permalien.
*
* @var boolean
*/
var $permalien_bool;
/** Chaine indiquant le type d'url.
*
* @var string
*/
var $url_type = 'MENU';
/** Code numérique du menu courant
*
* @var integer
*/
var $code_num;
/** Code alphanumérique du menu courant
*
* @var string
*/
var $code_alpha;
/**
* PHP4 Constructeur
*
* @see __construct()
*/
function Pap_URL($url = null, $useBrackets = true)
{
$this->__construct($url, $useBrackets);
// Gestion de la réecriture d'url
if (defined('PAP_URL_REECRITURE') AND PAP_URL_REECRITURE == '1') {
$this->setPermalienBool(true);
}
}
/** Méthode setId() - Définit l'id du menu courant
*
* @param integer l'identifiant du menu courant.
* @return mixed false en cas d'erreur
* @access public
*/
function setId($id)
{
// Nous transformons en entier l'identifiant
settype($id, "integer");
// Nous vérifions que l'identifiant est bien un entier
if (is_integer($id)) {
$this->id = $id;
} else {
return false;
}
}
/** Méthode getId() - Retourne l'id du menu courant
*
* @return integer l'identifiant du menu courant.
* @access public
*/
function getId()
{
return $this->id;
}
/** Méthode setPermalien() - Définit le permaliens
*
* @param string valeur
* @return mixed false en cas d'erreur
* @access public
*/
function setPermalien($chaine = '')
{
// Nous vérifions que l'identifiant est bien un entier
if (is_string($chaine) && $chaine != '') {
if ($this->permalien != '') {
$this->permalien .= PAP_URL_REECRITURE_SEP;
} else {
$this->permalien = constant('PAP_URL_REECRITURE_'.$this->getUrlType()).PAP_URL_REECRITURE_SEP;
}
$this->permalien .= $chaine;
} else if ($chaine == '') {
$this->permalien = '';
} else {
return false;
}
}
/** Méthode getPermalien() - Retourne le permalien
*
* @return string le permalien
* @access public
*/
function getPermalien()
{
return $this->permalien;
}
/** Méthode setUrlType() - Définit le type d'URL
*
* @param string type d'URL (SITE ou MENU)
* @return mixed false en cas d'erreur
* @access public
*/
function setUrlType($type)
{
// Nous vérifions que l'identifiant est bien un entier
if (is_string($type) && ($type == 'MENU' || $type == 'SITE')) {
$this->url_type = $type;
} else {
return false;
}
}
/** Méthode getUrlType() - Retourne le type de l'URL
*
* @return string le type d'URL
* @access public
*/
function getUrlType()
{
return $this->url_type;
}
/** Méthode setPermalienBool() - Définit le type d'utilisation des permaliens
*
* @param boolean true ou false
* @return mixed false en cas d'erreur
* @access public
*/
function setPermalienBool($bool)
{
// Nous vérifions que l'identifiant est bien un entier
if (is_bool($bool)) {
$this->permalien_bool = $bool;
} else {
return false;
}
}
/** Méthode getPermalienBool() - Retourne booléen indiquant si on utilise ou pas les permaliens
*
* @return boolean true ou false
* @access public
*/
function getPermalienBool()
{
return $this->permalien_bool;
}
/** Méthode setCodeAlpha() - Définit le code alphanumérique de l'url
*
* @param string le code alphanumérique pour l'url du menu
* @return mixed false en cas d'erreur
* @access public
*/
function setCodeAlpha($code_alpha)
{
if (is_string($code_alpha)) {
$this->code_alpha = $code_alpha;
} else {
return false;
}
}
/** Méthode getCodeNum() - Retourne le code numérique de l'url
*
* @return string le code numérique pour l'url du menu
* @access public
*/
function getCodeNum()
{
return $this->code_num;
}
/** Méthode setCodeNum() - Définit le code numérique de l'url
*
* @param string le code numérique pour l'url du menu
* @return mixed false en cas d'erreur
* @access public
*/
function setCodeNum($code_num)
{
if (is_integer($code_num)) {
$this->code_num = $code_num;
} else {
return false;
}
}
/** Méthode getCodeAlpha() - Retourne le code alphanumérique de l'url
*
* @return string le code alphanumérique pour l'url du menu
* @access public
*/
function getCodeAlpha()
{
return $this->code_alpha;
}
/**
* Méthode getURL() - Retourne l'url
*
* @return string l'url complète.
* @access public
*/
function getURL()
{
// Identifiant de la langue choisie
if ( (isset($GLOBALS['_GEN_commun']['i18n'])) && (!empty($GLOBALS['_GEN_commun']['i18n'])) ) {
if ($GLOBALS['_GEN_commun']['i18n'] != GEN_I18N_ID_DEFAUT) {
$this->addQueryString(GEN_URL_CLE_I18N, $GLOBALS['_GEN_commun']['i18n']);
}
}
// Nous regardons si un id de menu existe
if ($this->getId() != '') {
// Préparation des noms des champs des codes pour le site et le menu
$champs_code_site = (GEN_URL_ID_TYPE_SITE == 'int') ? 'gs_code_num' : 'gs_code_alpha';
$champs_code_menu = (GEN_URL_ID_TYPE_MENU == 'int') ? 'gm_code_num' : 'gm_code_alpha';
if ($this->getUrlType() == 'MENU') {
// Récupération du nom de l'entrée du menu à afficher
$requete = 'SELECT gm_code_alpha, gm_code_num, gm_ce_i18n, gm_ce_site '.
'FROM gen_menu '.
'WHERE gm_id_menu = '.$this->id.' ';
$resultat = $GLOBALS['_GEN_commun']['pear_db']->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$resultat->free();
// Nous vérifions si nous avons à faire à un menu commun ou pas
if ($ligne['gm_ce_site'] != 0) {
// Récupération des infos sur le site
$bln_url_site = false;
$requete_site = 'SELECT gs_code_alpha, gs_code_num '.
'FROM gen_site '.
'WHERE gs_id_site = '.$ligne['gm_ce_site'].' ';
$resultat_site = $GLOBALS['_GEN_commun']['pear_db']->query($requete_site);
(DB::isError($resultat_site)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_site->getMessage(), $requete_site)) : '';
$ligne_site = $resultat_site->fetchRow(DB_FETCHMODE_ASSOC);
$resultat_site->free();
} else {
// Menu commun
$bln_url_site = true;
$ligne_site[$champs_code_site] = $GLOBALS['_GEN_commun']['info_site']->$champs_code_site;
}
$this->addQueryString(GEN_URL_CLE_MENU, $ligne[$champs_code_menu]);
$this->setCodeAlpha($ligne['gm_code_alpha']);
$this->setCodeNum($ligne['gm_code_num']);
} else if ($this->getUrlType() == 'SITE') {
$bln_url_site = true;
$requete_site = 'SELECT gs_code_alpha, gs_code_num '.
'FROM gen_site '.
'WHERE gs_id_site = '.$this->getId().' ';
$resultat_site = $GLOBALS['_GEN_commun']['pear_db']->query($requete_site);
(DB::isError($resultat_site)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_site->getMessage(), $requete_site)) : '';
$ligne_site = $resultat_site->fetchRow(DB_FETCHMODE_ASSOC);
$resultat_site->free();
$this->setCodeAlpha($ligne_site['gs_code_alpha']);
$this->setCodeNum($ligne_site['gs_code_num']);
}
// Préparation de l'url de l'entrée
if ($bln_url_site) {
$this->addQueryString(GEN_URL_CLE_SITE, $ligne_site[$champs_code_site]);
}
if ( (isset($GLOBALS['_GEN_commun']['url_i18n'])) && (!empty($GLOBALS['_GEN_commun']['url_i18n'])) ) {
$this->addQueryString(GEN_URL_CLE_I18N, $GLOBALS['_GEN_commun']['url_i18n']);
}
if ( (isset($GLOBALS['_GEN_commun']['url_date'])) && (!empty($GLOBALS['_GEN_commun']['url_date'])) ) {
$this->addQueryString(GEN_URL_CLE_DATE, $GLOBALS['_GEN_commun']['url_date']);
}
if ( (isset($GLOBALS['_GEN_commun']['url_format'])) && (!empty($GLOBALS['_GEN_commun']['url_format'])) ) {
$this->addQueryString(GEN_URL_CLE_FORMAT, $GLOBALS['_GEN_commun']['url_format']);
}
}
// Construction du permalien ou pas
if ($this->getPermalienBool()) {
// Récupération du chemin jusqu'au fichier principal de Papyrus
$this->path = (dirname($this->path) == DIRECTORY_SEPARATOR) ? DIRECTORY_SEPARATOR : dirname($this->path).DIRECTORY_SEPARATOR;
// On vide le permalien construite par les appels à getUrl() avant de le remplir
$this->setPermalien();
if (constant('GEN_URL_RACCOURCI_ID_TYPE_'.$this->getUrlType()) == 'int') {
$this->setPermalien($this->getCodeNum());
} else {
$this->setPermalien($this->getCodeAlpha());
}
$this->removeQueryString(GEN_URL_CLE_SITE);
$this->removeQueryString(GEN_URL_CLE_MENU);
$querystring = $this->getQueryString();
} else {
$querystring = $this->getQueryString();
}
// Construction de l'url
$this->url = $this->protocol . '://'
. $this->user . (!empty($this->pass) ? ':' : '')
. $this->pass . (!empty($this->user) ? '@' : '')
. $this->host . ($this->port == $this->getStandardPort($this->protocol) ? '' : ':' . $this->port)
. $this->path
. $this->getPermalien()
. (!empty($querystring) ? '?' . $querystring : '')
. (!empty($this->anchor) ? '#' . $this->anchor : '');
return $this->url;
}
/** Méthode retournant la valeur d'un paramêtre de l'URL.
*
* @return mixed la valeur du paramêtre demandé ou false
* @access public
*/
function retournerUnParametre($parametre)
{
if (!empty($this->querystring)) {
if (isset($this->querystring[$parametre])) {
return $this->querystring[$parametre];
}
}
return FALSE;
}
 
}
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.2.2.1 2005/12/27 15:56:00 ddelon
* Fusion Head vers multilinguisme (wikini double clic)
*
* Revision 1.2 2005/04/18 16:40:50 jpm
* Modifications pour contrôler les permaliens.
*
* Revision 1.1 2005/04/14 13:56:25 jpm
* Ajout de la classe URL de Papyrus.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_identification.fonct.php
New file
0,0 → 1,155
<?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: pap_identification.fonct.php,v 1.4 2005-03-03 14:36:09 jpm Exp $
/**
* Bibliothèque de fonctions d'identification de Papyrus.
*
* Ce paquetage contient des fonctions d'identifiacation pour différents besoin
* de Papyrus.
*
*@package Papyrus
*@subpackage Fonctions
//Auteur original :
*@author Alexandre GRANIER <alex@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $ $Date: 2005-03-03 14:36:09 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +-------------------------------------------------------------------------+
// | Liste des fonctions |
// +-------------------------------------------------------------------------+
 
/** Fonction GEN_afficherInfoIdentification() - Retourne un message demandant l'identification.
*
* Cette fonction informe l'utilisateur qu'il doit utiliser le formulaire d'identification
* mis à sa dispositon. Ce formulaire peut être placé n'importe où dans le squelette via la
* balise <!-- IDENTIFICATION -->. Un note précise de contacter le webmaster si le formulaire
* d'identification est indisponible.
*
* @return string note précisant la nécessité de s'identifier sur le site.
*/
function GEN_afficherInfoIdentification()
{
$res = "\n";
$res .= str_repeat(' ', 12).'<p>';
$res .= 'Veuillez vous identifier dans la zone d\'identification mise à votre disposition sur ce site.';
$res .= str_repeat(' ', 12).'</p>'."\n";
$res .= str_repeat(' ', 12).'<p>';
$res .= '<strong>Note : </strong>Veuillez contacter le webmaster si cette zone d\'identification est absente.';
$res .= str_repeat(' ', 12).'</p>'."\n";
return $res;
}
 
/** Fonction verification_mot_de_passe() - Met à jour les mots de passe vers le cryptage MD5.
*
* Cette fonction permet de mettre à jour en douceur l'annuaire des inscrits à Tela Botanica.
* Les mots de passe anciennement crypté avec la fonction password de Mysql sont progressivement
* passé en cryptage MD5.
*
* @param mixed l'objet de Pear DB permettant la connexion à la base de données.
* @param string le mot de passe non crypté de l'utilisateur.
* @param string le login de l'utilisateur.
* @return void une requête modifie la base de données.
*/
function verification_mot_de_passe($objet_pear_db, $password, $username)
{
// Requête pour la taille du champs mot de passe pour l'individu
$requete = 'SELECT U_PASSWD, LENGTH(U_PASSWD) AS longueur '.
'FROM annuaire_tela '.
'WHERE U_MAIL = "'.$username.'"';
$resultat = $objet_pear_db->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$longueur = $ligne->longueur;
$mot_de_passe_crypte = $ligne->U_PASSWD;
unset($ligne);
$resultat->free();
if ($longueur == 16) {
// Le couple login / mot de passe est-il bon ?
$requete = 'SELECT PASSWORD("'.$password.'")';
$resultat = $objet_pear_db->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_ORDERED);
$resultat->free();
// Est-ce que le mot de passe est bon ?
if ($ligne[0] == $mot_de_passe_crypte) {
// On met à jour le champs de U_PASSWD pour le mettre en md5
$requete = 'UPDATE annuaire_tela '.
'SET U_PASSWD = "'.md5($password).'" '.
'WHERE U_MAIL = "'.$username.'"';
$resultat = $objet_pear_db->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
}
}
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log: not supported by cvs2svn $
* Revision 1.3 2004/10/25 14:49:59 jpm
* Correction orthographe.
*
* Revision 1.2 2004/09/23 14:32:03 jpm
* Correction bogue sur l'annuaire_tela.
*
* Revision 1.1 2004/06/15 15:10:15 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.8 2004/05/01 11:42:40 jpm
* Suppression de la fonction GEN_afficherFormIdentification() transformée en applette.
*
* Revision 1.7 2004/04/09 16:23:41 jpm
* Prise en compte des tables i18n.
*
* Revision 1.6 2004/04/02 16:33:04 jpm
* Ajout de commentaires aux fonctions.
* Modification des formulaires d'identification.
*
* Revision 1.5 2004/04/01 11:24:51 jpm
* Ajout et modification de commentaires pour PhpDocumentor.
*
* Revision 1.4 2004/03/26 12:51:24 jpm
* Modification mineure sur l'indentation.
*
* Revision 1.3 2004/03/24 17:31:54 jpm
* Ajout de l'indentation du xhtml de la fonction loginFunction().
* Mise en forme.
*
* Revision 1.2 2004/03/22 18:36:49 jpm
* Ajout de la fonction de mise à jour des mots de passe de l'annuaire Tela Botanica. Cette fonction devrait à terme intégré l'application Annuaire Tela Botanica.
*
* Revision 1.1 2004/03/22 11:34:19 jpm
* Bibliothèque de fonctions gérant l'identification dans Génésia.
*
*
* +--Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_initialisation.fonct.php
New file
0,0 → 1,126
<?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: pap_initialisation.fonct.php,v 1.4 2004-10-21 18:15:20 jpm Exp $
/**
* Bibliothèque de fonction pour l'initialisation de Papyrus.
*
* Cette bibliothèque contient des fonctions utilisé lors de l'initialisation de Papyrus.
*
*@package Papyrus
*@subpackage Fonctions
//Auteur original :
*@author Alexandre GRANIER <alexadandre@tela-botanica.org
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $ $Date: 2004-10-21 18:15:20 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** Fonction GEN_donnerIdPremiereApplicationLiee() - Renvoie l'id de la première application liée à un menu.
*
* Cette fonction recherche l'application liée à un menu et l'identifiant de ce menu, mais comme il peut
* ne pas y en avoir, elle cherche alors l'application du menu fils qui
* lui-même peut ne pas en avoir, etc...
*
* @param integer l'identifiant d'un menu.
* @return mixed tableau associatif indexé avec gm_id_menu et gm_ce_application et leur valeur ou false en cas d'erreur.
*/
function GEN_donnerIdPremiereApplicationLiee($id_menu)
{
global $db;
$aso_application_info = array();
$requete = 'SELECT gm_id_menu, gm_ce_application '.
'FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu;
$resultat = $db->query($requete) ;
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$aso_application_info =& $resultat->fetchRow(DB_FETCHMODE_ASSOC);
if ($aso_application_info['gm_ce_application'] == 0) {
// Le menu demandé n'a pas d'application liée, nous cherchons celle du premièr menu fils.
$requete_fils = 'SELECT gm_id_menu '.
'FROM gen_menu, gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.$id_menu.' '.
'AND gmr_id_valeur = 1 '.
'AND gmr_id_menu_01 = gm_id_menu '.
'ORDER BY gmr_ordre ASC ';
$resultat_fils = $db->query($requete_fils) ;
(DB::isError($resultat_fils))
? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_fils->getMessage(), $requete_fils))
: '' ;
if ($resultat_fils->numRows() >= 1) {
// Nous avons un menu fils, nous rappelons récursivement la fontion avec son identifiant
// pour récuperer l'application liée.
$ligne_fils = $resultat_fils->fetchRow(DB_FETCHMODE_OBJECT);
$aso_application_info = GEN_donnerIdPremiereApplicationLiee($ligne_fils->gm_id_menu);
}
else {
// Gestion des erreurs sur la recherche de l'application liée.
return false;
}
}
return $aso_application_info ;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2004/06/30 07:26:52 jpm
* Modification nom de la fonction.
*
* Revision 1.2 2004/06/18 15:51:27 alex
* Modification fonction de recherche d'application liée, elle renvoie maintenant un tableau.
*
* Revision 1.1 2004/06/15 15:10:44 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.6 2004/04/28 12:04:40 jpm
* Changement du modèle de la base de données.
*
* Revision 1.5 2004/04/09 16:23:41 jpm
* Prise en compte des tables i18n.
*
* Revision 1.4 2004/04/02 16:34:03 jpm
* Modifications de commentaires des fonctions.
*
* Revision 1.3 2004/04/01 11:24:51 jpm
* Ajout et modification de commentaires pour PhpDocumentor.
*
* Revision 1.2 2004/03/31 16:53:05 jpm
* Modification du code vis à vis du modèle revision 1.9 de Génésia.
*
* Revision 1.1 2004/03/29 14:53:25 jpm
* Création du fichier et ajout de la fonction donnerIdPremiereApplicationLiee().
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_style.fonct.php
New file
0,0 → 1,178
<?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: pap_style.fonct.php,v 1.3 2005-10-12 17:20:33 ddelon Exp $
/**
* Les fonctions permettant d'inclure des styles CSS.
*
* Ces fonctions permettent d'inclure des CSS directement dans les pages
* des applications. Elles peuvent donc être appelées par les applications
* intégrées à Papyrus.
*
*@package Papyrus
*@subpackage Fonctions
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2005-10-12 17:20:33 $
// +------------------------------------------------------------------------------------------------------+
*/
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** Fonction GEN_modifierTypeStyle() - Permet de stocker le type des styles intégrés.
*
* Papyrus permet à une application donnée d'intégrer des styles directement dans
* l'entête de la page. Cette fonction définit le type Mime des styles utilisés.
* En XHTML strict, cette fonction ne devrait pas être utilisé car les styles devraient être
* stockés dans des fichiers séparés.
*
* @deprecated déprécier dans le cadre d'application XHTML.
* @global string "style_type" : utilisé pour stocker le type des styles intégrés dans l'entête de la page.
* @param string le type des styles intégrés.
* @return void le type des styles intégrés est stocké dans une variable globale.
*/
function GEN_modifierTypeStyle($type = 'text/css')
{
global $_GEN_commun;
$_GEN_commun['style_type'] .= $type;
}
 
/** Fonction GEN_stockerStyleIntegree() - Permet de stocker un style utilisé par une application.
*
* Papyrus permet à une application donnée de stocker des styles intégrés
* directement dans l'entête de la page. En XHTML strict, l'utilisation de cette
* fonction est déconseillée. Utiliser plutôt une feuille de styles externes qui
* sera appelé par l'entête. Cette fonction peut être appelé plusieurs fois. Elle ne
* fait que stocker les styles dans une variable globale utilisée par Génésia.
*
* @deprecated déprécier dans le cadre d'application XHTML.
* @global string "style_integree" : utilisé pour stocker les styles intégrés.
* @param string le style à insérer.
* @return void le style est stocké dans une variable globale.
*/
function GEN_stockerStyleIntegree($style_integree)
{
global $_GEN_commun;
$_GEN_commun['style_integree'] .= $style_integree;
}
 
/** Fonction GEN_stockerStyleExterne() - Permet de stocker des fichiers de styles externes.
*
* Papyrus permet à une application donnée de stocker des feuilles de styles externes qui seront
* appelés depuis l'entête de la page. En XHTML strict, l'utilisation de cette
* fonction est conseillée.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que stocker les chemin des
* feuilles de styles externes dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @global array "style_fichier" : utilisé pour stocker les chemins des feuilles de styles externes.
* @param string la clé du tableau de fichiers, par exemple le nom de la feuille de styles externes à insérer.
* @param string le chemin complet du fichier de styles à insérer.
* @param string le titre de la feuille de styles externes.
* @param string la relation de la feuille de style (stylesheet, alternate stylesheet, ...).
* @param string le type MIME des styles (text/css, ...).
* @param string le type de média concerné par la feuille de styles (screen, print, aural, ...).
* @return void le chemin du fichier CSS est stocké dans une variable (tableau associatif) globale.
*/
function GEN_stockerStyleExterne($id_fichier, $chemin_fichier, $titre = '', $rel = 'stylesheet', $type = 'text/css', $media = 'screen')
{
global $_GEN_commun;
if (empty($_GEN_commun['style_externe'][$id_fichier])) {
$_GEN_commun['style_externe'][$id_fichier]['rel'] = $rel;
$_GEN_commun['style_externe'][$id_fichier]['type'] = $type;
$_GEN_commun['style_externe'][$id_fichier]['media'] = $media;
$_GEN_commun['style_externe'][$id_fichier]['titre'] = $titre;
$_GEN_commun['style_externe'][$id_fichier]['chemin'] = $chemin_fichier;
}
}
 
/** Fonction GEN_afficherStyle() - Permet de renvoyer les styles dans l'entete.
*
* Cette fonction récupère les feuilles de styles stockés dans les variables globales de Papyrus
* et les retourne formatés pour l'affichage dans l'entête du squelette du site.
* C'est la balise Génésia <!-- STYLES --> qui permet de situer l'endroit où afficher
* les CSS.
*
* @global array "style_externe" : utilisé pour stocker les chemins des feuilles de styles externes et
* "style_integree" : utilisé pour stocker les styles intégrés directement dans l'entête.
* @return string le code XHTML contenant les styles à insérer dans l'entête.
*/
function GEN_afficherStyle()
{
global $_GEN_commun;
$sortie = '';
$styles_externes = '';
if (isset($_GEN_commun['style_externe'])) {
foreach ($_GEN_commun['style_externe'] as $cle => $valeur) {
$styles_externes .= str_repeat(' ', 8).
'<link rel="'.$valeur['rel'].'" '.
'type="'.$valeur['type'].'" '.
'media="'.$valeur['media'].'" '.
'title="'.$valeur['titre'].'" '.
'href="'.$valeur['chemin'].'" />'."\n";
}
$sortie .= $styles_externes;
} else {
$sortie .= '<!-- Aucun style externe -->'."\n";
}
$styles_integrees = '';
$styles_integrees = $_GEN_commun['style_integree'];
if ($styles_integrees != '') {
$sortie .= "\n";
$sortie .= str_repeat(' ', 8).'<style type="'.$_GEN_commun['style_type'].'">'."\n";
$sortie .= str_repeat(' ', 12).'<!--/*--><![CDATA[//><!--'."\n";
$sortie .= $styles_integrees."\n";
$sortie .= str_repeat(' ', 12).'//--><!]]>'."\n";
$sortie .= str_repeat(' ', 8).'</style>';
} else {
$sortie .= '<!-- Aucun style intégré -->'."\n";
}
return $sortie;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/12/06 17:53:32 jpm
* Correction Génésia en Papyrus.
*
* Revision 1.1 2004/06/15 15:14:32 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.3 2004/04/20 15:25:58 jpm
* Ajout de commentaire html à la place d'une chaine vide lors du remplacement de balise Genesia.
*
* Revision 1.1 2004/04/20 10:46:43 jpm
* Ajout de la bibliothèque gérant les styles.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_compression.fonct.php
New file
0,0 → 1,166
<?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: pap_compression.fonct.php,v 1.3 2006-03-15 09:30:50 florian Exp $
/**
* Bibliothèque de fonction de compression et d'envoi de données.
*
* Cette bibliothèque contient toutes les fonctions nécessaires à l'envoi de
* données au navigateur client. Cela consiste donc à vérifier le support de
* la compression par le navigateur du client et à compresser puis envoyer ces donées.
*
*@package Papyrus
*@subpackage Fonctions
//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-03-15 09:30:50 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
/** Fonction GEN_compresserDonneesZLIB() - Compresse des données si nécessaire et les retourne.
*
* Si les données sont plus grandes que 2048 caractères nous compressons et nous les retournons
* compressées. Si la compression est un echec false est retourné. Si le nombre de caractères des
* données à compresser ou que l'extension ZLIB n'est pas présente, la valeur vide est retournée.
*
* @param string données à compresser.
* @param int taux de compression à utiliser.
* @param int nombre de caractères minimums que doivent comporter les données pour être compressé.
* @return mixed données compressées, "false" si la compression échoue, void s'il n'est pas nécessaire de compresser.
*/
function GEN_compresserDonneesZLIB($donnees, $taux_compression = 9, $valeur_incompressible = 2048)
{
// Si les données sont infèrieures à 2048 nous ne compressons pas.
if ((strlen($donnees) < $valeur_incompressible) || (! extension_loaded('zlib')) ) {
return '';
}
// Tentative de compression des donnée
$donnees_gzip = gzcompress($donnees, $taux_compression);
if (! $donnees_gzip) {
return false;
} else {
return $donnees_gzip;
}
}
 
/** Fonction GEN_decompresserDonneesZLIB() - Décompresse des données si nécessaire et les retourne.
*
* Nous décompressons les données. Si la décompression renvoie faut, nous retournons les données
* tels qu'elle nous été transmises.
*
* @param mixed données à décompresser.
* @return mixed données décompressées ou "false" si les données n'ont pas pue être décompréssées...
*/
function GEN_decompresserDonneesZLIB($donnees)
{
$donnees_ungzip = gzuncompress($donnees);
if (! $donnees_ungzip) {
return false;
} else {
return $donnees_ungzip;
}
}
 
/** Fonction GEN_retournerTypeCompressionNavigateur() - Retourne le type de compression du navigateur du client.
*
* Si le navigateur supporte la compression nous retournons le type d'encodage supporté.
* Dans tous les autres cas, nous retournons une chaine vide.
* Nous utilisons la superglobale $_SERVER permettant d'obtenir "SERVER_PROTOCOL" et "HTTP_ACCEPT_ENCODING".
*
* @return string la chaine correspondant au type d'encodage surpporté par le navigateur du client.
*/
function GEN_retournerTypeCompressionNavigateur()
{
// Si les entêtes HTTP ont déjà été envoyés, nous retournons void.
if (headers_sent()) return '';
if ($_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.1') return '';
if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return 'x-gzip';
if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) return 'gzip';
return '';
}
 
/** Fonction GEN_envoyerDonneesCompressees() - Envoi les données au navigateur du client.
*
* Si le navigateur supporte la compression nous lui envoyons les données compressées. Sinon,
* nous lui envoyons les données décompressées. Si la décompression échoue nous n'envoyons rien
* et la fonction retourne false. Si l'envoi est un succès la fonction retourne true.
* Cett fonction fait appel aux fonctions GEN_retournerTypeCompressionNavigateur() et
* GEN_decompresserDonneesZLIB().
*
* @param mixed données compressées (ou pas) à envoyer au navigateur.
* @return bool booléen indiquant si l'envoi est un succès (true) ou pas (false).
*/
function GEN_envoyerDonneesCompressees($donnees_compressees)
{
// Le navigateur du client accepte-t-il la compression?
$type_encodage = GEN_retournerTypeCompressionNavigateur();
// La compression n'est pas supportée.
if (empty($type_encodage)) {
$donnees_decompressees = GEN_decompresserDonneesZLIB($donnees_compressees);
if (! $donnees_decompressees) {
return false;
}
$res = $donnees_decompressees;
return $res;
} else {
// La compression est supportée. Nous envoyons les données compressées.
header('Content-Encoding: gzip');
// Laisser la chaine ci-dessous entre guillemets. Les cotes font planter le programme!
$res = "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$res .= $donnees_compressees;
}
return $res;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/06/22 15:27:15 alex
* ajout du test d'existence la variable $_SERVER['HTTP_ENCODING_TYPE'] avant de tester sa valeur
*
* Revision 1.1 2004/06/15 15:09:26 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.4 2004/04/22 08:39:05 jpm
* Correction d'une déclaration en tant que global d'une variable superglobale.
*
* Revision 1.3 2004/04/09 16:22:49 jpm
* Envoi d'une page sous forme compressée si l'extenssion ZLIB existe. Sinon, la page part non compréssée.
*
* Revision 1.2 2004/04/06 15:56:33 jpm
* Changement de l'ordre des fonctions dans le fichier.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_application.fonct.php
New file
0,0 → 1,217
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This 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: pap_application.fonct.php,v 1.3 2006-04-28 12:41:49 florian Exp $
/**
* Biblibothèque de fonction sur les applications.
*
* Liste des fonctions sur les applications.
*
*@package Papyrus
*@subpackage Fonctions
//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-04-28 12:41:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
/** Fonction GEN_verifierPresenceInterfaceAdmin() - Vérifie la présence d'une interface d'administration.
*
* Vérifie que l'application attribuée à un menu possède une interface d'administration.
*
* @param object objet Pear de connection à la base de données.
* @param integer l'identifiant de l'application.
* @return boolean true si l'appli peut être administrer, sinon false.
*/
function GEN_verifierPresenceInterfaceAdmin($db, $id_appli) {
// Gestion des erreurs
if ($id_appli == 0) {
return false;
}
// Requête sur les applications
$requete = 'SELECT * '.
'FROM gen_application '.
'WHERE gap_id_application = '.$id_appli;
$resultat = $db->query($requete);
$ligne_appli = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$chemin_appli = $ligne_appli->gap_chemin;
$chemin_appli = preg_replace('/.php$/', '.admin.php', $chemin_appli);
if (file_exists($chemin_appli)) {
return true;
} else {
return false;
}
}
 
/** Fonction GEN_retournerCheminInterfaceAdmin() - Retourne le chemin de l'interface d'administration d'une appli.
*
* Retourne le chemin de l'interface d'administration d'une appli si elle en possède sinon false
*
* @param object objet Pear de connection à la base de données.
* @param integer l'identifiant de l'application.
* @return mixed le chemin si l'appli peut être administrer, sinon false.
*/
function GEN_retournerCheminInterfaceAdmin($db, $id_appli) {
// Requête sur les applications
$requete = 'SELECT gap_chemin '.
'FROM gen_application '.
'WHERE gap_id_application = '.$id_appli.' ';
$resultat = $db->query($requete);
$ligne_appli = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$chemin_appli = $ligne_appli->gap_chemin;
$chemin_interface_admin = preg_replace('/.php$/', '.admin.php', $chemin_appli);
if (file_exists($chemin_interface_admin)) {
return $chemin_interface_admin;
} else {
return false;
}
}
 
/** Fonction GEN_retournerNomInterfaceAdmin() - Retourne le nom de la classe d'une interface d'administration d'une appli.
*
* Retourne le nom de la classe d'une interface d'administration d'une appli si elle en possède sinon false
*
* @param object objet Pear de connection à la base de données.
* @param integer l'identifiant de l'application.
* @return mixed le nom de l'interface d'admin de l'appli, sinon false.
*/
function GEN_retournerNomInterfaceAdmin($db, $id_appli) {
// Requête sur les applications
$requete = 'SELECT gap_chemin '.
'FROM gen_application '.
'WHERE gap_id_application = '.$id_appli.' ';
$resultat = $db->query($requete);
$ligne_appli = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$chemin_appli = $ligne_appli->gap_chemin;
$morceaux='';
preg_match('/([\w_]+).php$/', $chemin_appli, $morceaux);
$nom_interface_admin = ucfirst($morceaux[1]).'_Admin';
return $nom_interface_admin;
}
 
/** Fonction GEN_retournerNomAppli() - Retourne le nom de la classe d'une appli.
*
* Retourne le nom de la classe d'une appli.
*
* @param object objet Pear de connection à la base de données.
* @param integer l'identifiant de l'application.
* @return mixed le nom de la classe de l'appli, sinon false.
*/
function GEN_retournerNomAppli($db, $id_appli) {
// Requête sur les applications
$requete = 'SELECT gap_chemin '.
'FROM gen_application '.
'WHERE gap_id_application = '.$id_appli.' ';
$resultat = $db->query($requete);
$ligne_appli = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$chemin_appli = $ligne_appli->gap_chemin;
$morceaux='';
preg_match('/([\w_]+).php$/', $chemin_appli, $morceaux);
preg_replace('/_(\w)/', '_'.ucfirst(${1}),$morceaux[1]);
$nom_classe_appli = $morceaux[1];
return $nom_classe_appli;
}
 
/** Fonction GEN_retournerInfoAppliMenu() - Retourne les infos de l'application d'un menu.
*
* Retourne un objet contenant les infos de l'application liée à un menu
*
* @param object objet Pear de connection à la base de données.
* @param integer l'identifiant du menu.
* @return mixed l'objet représentant les infos de l'appli, sinon false.
*/
function GEN_retournerInfoAppliMenu($db, $id_menu) {
// Gestion des erreurs
if ($id_menu == 0) {
return false;
}
// Requête sur les applications
$requete = 'SELECT gen_application.* '.
'FROM gen_application, gen_menu '.
'WHERE gm_id_menu = '.$id_menu.' '.
'AND gm_ce_application = gap_id_application';
$resultat = $db->query($requete);
$ligne_appli = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
return $ligne_appli;
}
 
/** Fonction GEN_retournerIdAppliMenu() - Retourne l'identifiant de l'application d'un menu.
*
* Retourne l'identifiant de l'application liée à un menu
*
* @param object objet Pear de connection à la base de données.
* @param integer l'identifiant du menu.
* @return integer identifiant de l'appli du menu, sinon false.
*/
function GEN_retournerIdAppliMenu($db, $id_menu) {
// Requête sur les applications
$requete = 'SELECT gen_application.* '.
'FROM gen_application, gen_menu '.
'WHERE gm_id_menu = '.$id_menu.' '.
'AND gm_ce_application = gap_id_application';
$resultat = $db->query($requete);
$ligne_appli = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
return $ligne_appli->gap_id_application;
}
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2005/02/28 11:12:03 jpm
* Modification des auteurs.
*
* Revision 1.1 2004/11/09 17:54:50 jpm
* Ajout de fonction permettant de manipuler les informations liées aux applications.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_cache.fonct.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: pap_cache.fonct.php,v 1.1 2004-06-15 15:08:02 jpm Exp $
/**
* Bibliothèque de fonctions utilisées dans le cadre de la gestion du cache.
*
* Contient des fonctions permettant de gérer le cache.
*
*@package Papyrus
*@subpackage Fonctions
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2004-06-15 15:08:02 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
/** Fonction GEN_concatenerTaleauAsso() - Retourne une chaine des valeurs et clés du tableau.
*
* Cette fonction prend un tableau associatif en paramêtre dont elle concatène les clés et valeurs,
* puis ces paires clé-valeur entre elles.
* Il est possible de définir la chaine utilisée pour liée une clé avec sa valeur et la chaine liant
* les paires clé-valeur.
*
* @param string chaine utilisé pour faire la liaison entre les clés et les valeurs du tableau associatif.
* @param string chaine utilisé pour faire la liaison entre chaque paire clé-valeur du tableau associatif.
* @param array le tableau associatif à transformer en chaine.
* @return string la chaine des des clés et valeurs du tableau associatif concaténés.
*/
function GEN_concatenerTaleauAsso($liaison_cle_val, $liaison_paire, $tableau_associatif)
{
$tab_sortie = array();
foreach( $tableau_associatif as $cle => $valeur ) {
$tab_sortie[] = $cle.$liaison_cle_val.$valeur;
}
return implode($liaison_paire, $tab_sortie);
}
 
/** Fonction GEN_donnerMD5UriPostSession() - Retourne une chaine des valeurs de l'Uri, du Post et du Session.
*
* Cette fonction retourne une valeur md5 d'une chaine contenant la concaténation de l'URI et des paires
* clé-valeur des tableaux $_POST et $_SESSION. Les données des tableaux sont ajoutés à l'URI en utilisant "="
* pour séparé les clés des valeurs et "&" pour séparer les paires clé-valeur.
*
* @return string la valeur md5 de la chaine concaténant l'uri aux paires clé-valeur des tableaux _POST et _SESSION.
*/
function GEN_donnerMD5UriPostSession()
{
$chaine_variable_post = GEN_concatenerTaleauAsso('=', '&', $_POST);
$chaine_variable_session = GEN_concatenerTaleauAsso('=', '&', $_SESSION);
return md5($_SERVER['REQUEST_URI'].'&'.$chaine_variable_post.'&'.$chaine_variable_session);
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/04/09 16:23:20 jpm
* Amélioration de la gestion du cache côté serveur avec prise en compte des variables de session.
*
* Revision 1.1 2004/04/08 12:21:21 jpm
* Ajout de fonction utilisées dans le cadre de la mise en cache d'une page générée par Génésia.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_menu.fonct.php
New file
0,0 → 1,1058
<?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: pap_menu.fonct.php,v 1.27 2006-10-16 15:50:10 ddelon Exp $
/**
* Bibliothèque de fonction sur le rendu.
*
* Cette bibliothèque contient des fonctions utilisé par le rendu des pages de Papyrus.
*
*@package Papyrus
*@subpackage Fonctions
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Alexandre GRANIER <alexadandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.27 $ $Date: 2006-10-16 15:50:10 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE des FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** Fonction GEN_donnerProfondeurMax() - Renvoie le nombre de niveau de menu.
*
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant
* l'arbre des menus jusqu'au feuilles.
* Ici on l'utilise en passant l'argument égal à zéro c'est à dire
* en partant du menu racine d'un site gmr_id_menu_02 = 0.
* C'est une fonction récursive.
* Noter que la variable $prof est statique.
*
* @param integer identifiant du site sur lequel la profondeur est calculé.
* @param integer identifiant du menu à partir delaquelle on souhaite calculer la profondeur.
* @return integer le nombre de niveau de menu.
*/
function GEN_donnerProfondeurMax($id_site, $id_menu)
{
global $db;
static $prof = 0;
 
// Requête sur les relations de type "avoir père" entre menus
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu, gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.$id_menu.' '.
'AND gmr_id_menu_01 = gm_id_menu '.
'AND gm_ce_site = '.$id_site.' '.
'AND gmr_id_valeur = 1 '.
'ORDER BY gmr_ordre ASC';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() == 0) {
return $prof;
}
$prof++;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01);
}
return $prof;
}
 
/** Fonction GEN_donnerDernierFreres() - Renvoie l'id du dernier menu frère.
*
* Cette fonction regarde si un menu donné possède au moins un frère dans l'arbre
* des menus. Elle retourne l'id du dernier menu frére en utilisant gmr_ordre.
* Cette fonction fait appel à la fonction : GEN_lireIdentifiantMenuPere().
*
* @param integer identifiant du menu.
* @return boolean renvoi l'id du dernier menu frère sinon faux.
*/
function GEN_donnerDernierFreres($id_menu)
{
// Initialisation des variables.
global $db;
 
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
'AND gmr_id_valeur = 1 '.
'AND gmr_id_menu_01 <> '.$id_menu.' '.
'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);
if ($resultat->numRows() > 0) {
return $ligne->gmr_id_menu_01;
} else {
return false;
}
}
 
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
*
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
* des menus. Nous regardons si les menus ont le même identifiant comme père.
*
* @param integer identifiant du premier menu.
* @param integer identifiant du seconde menu.
* @return boolean renvoi vrai si les deux menus sont frères sinon faux.
*/
function GEN_etreFreres($id_menu_1, $id_menu_2)
{
// Initialisation des variables.
global $db;
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_1.' '.
'AND gmr_id_valeur = 1 ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$id_pere_1 = $ligne->gmr_id_menu_02;
$resultat->free();
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
'AND gmr_id_valeur = 1 ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$id_pere_2 = $ligne->gmr_id_menu_02;
$resultat->free();
 
return ($id_pere_1 == $id_pere_2);
}
 
/** Fonction GEN_etreAncetre() - Renvoie vrai si le premier argument (identifiant de menu) est un ancètre du second.
*
* Nous récupérons l'identifiant du père du menu passé en argument numéro 2. Puis,
* nous le comparons à l'argument 1. Si c'est les même on retourne faux. Sinon on rapelle
* la fonction avec l'identifiant du père trouvé pour l'argument 2. Ainsi de suite jusqu'a
* renvoyé vrai où tomber sur un menu racine (idetifiant du père = 0).
* Si les variable sont null nous retournons false.
* C'est une fonction récursive.
*
* @param integer identifiant d'un menu numéro 1.
* @param integer identifiant d'un menu numéro 2.
* @return boolean vrai si le menu numéro 1 est ancètre du second.
*/
function GEN_etreAncetre($id_menu_1, $id_menu_2)
{
//Test erreur
if (is_null($id_menu_1) || is_null($id_menu_2)) {
return false;
}
 
// Initialisation des variables.
global $db;
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
'AND gmr_id_valeur = 1 ';
 
$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)) {
if ($ligne->gmr_id_menu_02 == 0) {
return false;
} else if ($ligne->gmr_id_menu_02 == $id_menu_1) {
return true;
} else {
return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
}
}
}
 
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
*
* Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
* menu dont le père est le menu racine (identifiant = 0) pour le menu passé en paramètre.
*
* @global mixed objet Pear DB de connexion à la base de données..
* @param int identifiant du menu dont il faut rechercher le père.
* @return int identifiant du menu ancètre du menu passé en paramètre.
*/
function GEN_lireIdentifiantMenuAncetre($id_menu)
{
global $db;
// On teste si on est au niveau d'un menu racine i.e GM_ID_PERE=0
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu.' '.
'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$resultat->free();
 
// Dans le cas où le menu en paramètre est un menu racine
if ($ligne->gmr_id_menu_02 == 0) {
return $id_menu;
}
 
return GEN_lireIdentifiantMenuAncetre($ligne->gmr_id_menu_02);
}
 
/** Fonction GEN_lireIdentifiantMenuPere() - Renvoie l'identifiant du père du menu passé en paramètre.
*
* Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
* menu père du menu passé en paramètre.
*
* @global mixed objet Pear DB de connexion à la base de données..
* @param int l'identifiant du fils
* @param mixed une instance de la classse Pear DB.
* @return mixed l'identifiant du père,ou false en cas d'erreur.
*/
function GEN_lireIdentifiantMenuPere($id_menu, $db = null)
{
if (is_null($db)) {
$db =& $GLOBALS['_GEN_commun']['pear_db'];
}
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu.' '.
'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
 
$resultat = $db->getOne($requete) ;
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
return $resultat;
}
 
/** Fonction GEN_lireInfoMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu
*
* Retourne la ligne de la table gen_menu concernant le menu ayant pour identifiant la valeur
* passée en paramètre.
* Ancien nom : getLevel()
*
* @param mixed une instance de la classse Pear DB.
* @param int l'identifiant d'un menu.
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @return mixed un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu, ou false en cas d'erreur.
*/
function GEN_lireInfoMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
{
 
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT * '.
'FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu;
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow($mode);
$resultat->free();
 
return $info_menu;
}
/** Fonction GEN_retournerMenuCodeNum() - Renvoie le code num d'un menu en fonction du code Alphanumérique
*
* Retourne le code numérique d'un menu en fonction du code alphanumérique.
*
* @param mixed une instance de la classse Pear DB.
* @param string le code alphanumérique d'un menu.
* @return mixed le code numérique du menu sinon false.
*/
function GEN_retournerMenuCodeNum(&$db, $code_alphanum)
{
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_alpha = "'.$code_alphanum.'"';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$code_num = $info_menu->gm_code_num;
$resultat->free();
 
return $code_num;
}
 
/** Fonction GEN_retournerMenuCodeAlpha() - Renvoie le code alphanumérique d'un menu en fonction du code numérique
*
* Retourne le code alphanumérique d'un menu en fonction du code numérique.
*
* @param mixed une instance de la classse Pear DB.
* @param string le code numérique d'un menu.
* @return mixed le code alphanumérique du menu sinon false.
*/
function GEN_retournerMenuCodeAlpha(&$db, $code_num)
{
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT gm_code_alpha '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$code_num;
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$code_alphanum = $info_menu->gm_code_alpha;
$resultat->free();
 
return $code_alphanum;
}
 
/** Fonction GEN_lireContenuMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_contenu
*
* Retourne la ligne de la table gen_menu_contenu concernant le menu ayant pour identifiant la valeur
* passée en paramètre. Seul la dernière version du contenu du menu est retourné.
*
* @param mixed une instance de la classse Pear DB.
* @param int l'identifiant d'un menu.
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @return mixed un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu_contenu, ou false en cas d'erreur.
*/
function GEN_lireContenuMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
{
//----------------------------------------------------------------------------
// Gestion des erreurs
 
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT * '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu.' '.
'AND gmc_bool_dernier = 1';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow($mode);
$resultat->free();
 
return $info_menu;
}
 
/** Fonction GEN_retournerMenus() - Renvoie un tableau contenant les id de l'ensemble des menus
*
* Retourne un tableau contenant les id de l'ensemble des menus des différents sites de Papyrus.
*
* @param mixed une instance de la classse Pear DB.
* @return array tableau contenant les id de chaque menu.
*/
function GEN_retournerMenus(&$db)
{
//----------------------------------------------------------------------------
// Gestion des erreurs
 
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT gm_id_menu '.
'FROM gen_menu ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
//----------------------------------------------------------------------------
// Récupération des infos
$tab_retour = array();
while ($info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
array_push($tab_retour, $info_menu->gm_id_menu);
}
$resultat->free();
 
return $tab_retour;
}
 
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
*
* Par défaut recherche une relation de type père.
* Ancien nom : getMenuRelation().
*
* @param mixed Une instance de la classse PEAR_DB
* @param int l'identifiant d'un menu.
* @param int l'identifiant d'une valeur de relation.
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @return mixed un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
*/
function GEN_lireInfoMenuRelation(&$db, $menuid, $id_valeur = 1, $mode = DB_FETCHMODE_OBJECT)
{
//----------------------------------------------------------------------------
// Recherche des informations sur la relation de menu
$requete = 'SELECT * '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$menuid.' '.
'AND gmr_id_valeur = '.$id_valeur;
 
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
 
if ($result->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu_relation = $result->fetchRow($mode);
$result->free();
 
return $info_menu_relation;
}
 
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
*
* Permet de vérifier dans la base de données si le code fournie (alphanumérique ou numérique) a déjà
* été attribué à un menu ou pas!
*
* @param mixed Une instance de la classse PEAR_DB
* @param string le type du code (int ou string).
* @param integer l'identifiant du menu courant.
* @param mixed le code numérique ou alphanumérique.
* @return mixed retourne l'identifiant du menu possédant le code sinon false.
*/
function GEN_verifierPresenceCodeMenu(&$db, $type, $id_menu, $code)
{
// Gestion des erreurs
if ($code == '') {
return true;
}
 
// Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
$requete = 'SELECT gm_id_menu '.
'FROM gen_menu '.
'WHERE gm_id_menu <> '.$id_menu.' ';
 
// Complément de requête en fonction du type de code
if ($type == 'int') {
$requete .= 'AND gm_code_num = '.$code;
} else {
$requete .= 'AND gm_code_alpha = "'.$code.'"';
}
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$nombre_reponse = $resultat->numRows();
if ($nombre_reponse >= 1) {
return true;
} else {
return false;
}
}
/** Fonction GEN_lireInfoMenuMotsCles() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés présents dans
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
* @param array un tableau de mots clés.
* @param string la condition séparant chaque rechercher de mots-clés (AND ou OR).
* @param string l'ordre d'affichage des Menus (ASC ou DESC).
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @param boolean true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
* @return mixed un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
*/
function GEN_lireInfoMenuMotsCles(&$db, $tab_mots, $condition = 'OR', $ordre = 'ASC', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
{
//----------------------------------------------------------------------------
// Recherche des informations sur les menus en fonctions des mots clés
$requete = 'SELECT DISTINCT * '.
'FROM gen_menu '.
'WHERE ';
for ($i = 0; $i < count($tab_mots); $i++) {
if ($i == 0) {
$requete .= 'gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
} else {
$requete .= $condition.' gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
}
}
$requete .= 'ORDER BY gm_date_creation '.$ordre;
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
 
/** Fonction GEN_lireInfoMenuMeta() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés,
* catégories, id_menu,
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
* @param array un tableau de mots clés.
* @param string la condition séparant chaque rechercher de mots-clés (AND ou OR).
* @param string l'ordre d'affichage des Menus (ASC ou DESC).
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @param boolean true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
* @return mixed un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
*/
function GEN_lireInfoMenuMeta(&$db, $tab_mots, $tab_cat, $condition = 'OR', $condition2="OR", $ordre = 'ASC', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
{
//----------------------------------------------------------------------------
// Recherche des informations sur les menus en fonctions des mots clés
$requete = 'SELECT DISTINCT * '.
'FROM gen_menu '.
'WHERE ';
for ($i = 0; $i < count($tab_mots); $i++) {
if ($i == 0) {
$requete .= 'gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
} else {
$requete .= $condition.' gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
}
}
if (count($tab_mots) != 0) $requete .= 'AND ' ;
for ($i = 0; $i < count($tab_cat); $i++) {
if ($i == 0) {
$requete .= 'gm_categorie LIKE "%'.$tab_cat[$i].'%" ';
} else {
$requete .= $condition2.' gm_categorie LIKE "%'.$tab_cat[$i].'%" ';
}
}
$requete .= 'ORDER BY gm_date_creation '.$ordre;
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
/** Fonction GEN_lireInfoMenuCategorie() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
* @param array un tableau de catégorie(s).
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @param boolean true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
* @return mixed un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
*/
function GEN_lireInfoMenuCategorie(&$db, $tab_categories, $mode = DB_FETCHMODE_OBJECT, $groupe = false)
{
//----------------------------------------------------------------------------
// Recherche des informations sur les menus en fonctions des mots clés
$requete = 'SELECT DISTINCT * '.
'FROM gen_menu '.
'WHERE ';
for ($i = 0; $i < count($tab_categories); $i++) {
if ($i == 0) {
$requete .= 'gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
} else {
$requete .= 'OR gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
}
}
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
/** Fonction GEN_lireInfoMenuContenuDate() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
* @param array le type de modification.
* @param array le code alphanumérique du site ou de plusieurs sites séparés par des virgules.
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @param boolean true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
* @return mixed un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
*/
function GEN_lireInfoMenuContenuDate(&$db, $type_modif = '', $site = '', $categorie='', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
{
$type_modif_sql = 'AND gmc_ce_type_modification IN (%s) ';
if (!empty($type_modif)) {
$type_modif = sprintf($type_modif_sql, $type_modif);
} else {
$type_modif = sprintf($type_modif_sql, '1, 2');
}
$site_sql = 'AND gs_code_alpha IN (%s) ';
if (!empty($site)) {
$site = sprintf($site_sql, '"'.implode('", "', array_map('trim', explode(',', $site))).'"');
} else {
$site = '';
}
 
if (!empty($categorie)) {
$categorie = 'AND gm_categorie like "%'.$categorie.'%"' ;
} else {
$categorie = '';
}
// Recherche des informations sur les menus en fonctions des mots clés
$requete = 'SELECT DISTINCT gen_menu.*, gs_code_alpha, gmc_date_modification, gmc_resume_modification, gmc_ce_type_modification '.
'FROM gen_site, gen_menu, gen_menu_contenu '.
'WHERE gmc_date_modification <= "'.date('Y-m-d H:i:s', time()).'" '.
'AND (gm_ce_site = gs_id_site OR gm_ce_site = 0) '.
'AND gm_id_menu = gmc_ce_menu '.
'AND gmc_bool_dernier = 1 '.
$site.
$type_modif.
$categorie.
'ORDER BY gmc_date_modification DESC';
 
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
/** Fonction GEN_retournerTableauMenusSiteCodeAlpha() - Renvoie un tableau de tableau contenant des lignes de la table gen_menu
*
* Renvoie un tableau de tableau contenant les lignes de la table gen_menu pour un site donné. Les tableaux sont imbriquées
* pour reproduire l'arborescence des menus.
*
* @param mixed Une instance de la classse PEAR_DB
* @param string le code alphanumérique du site.
* @return array un tableau de tableau contenant des lignes de la table gen_menu.
*/
function GEN_retournerTableauMenusSiteCodeAlpha(&$db, $site, $id_pere = 0, $aso_site_menus = array())
{
 
$requete = 'SELECT gen_menu.* '.
'FROM gen_site, gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR01.gmr_id_menu_02 = '.$id_pere.' '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
'AND gs_code_alpha = "'.$site.'" '.
'AND gm_ce_site = gs_id_site '.
'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 = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
 
if ($resultat->numRows() > 0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$aso_site_menus[$ligne['gm_id_menu']] = $ligne;
$aso_site_menus[$ligne['gm_id_menu']]['sous_menus'] = GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $ligne['gm_id_menu']);
}
}
return $aso_site_menus;
}
 
 
// Code menu --> Identifiant
// Identifiant menu --> Identifiant version originale
// Identifiant menu --> Identifiant version par défaut
// Identifiant menu --> Contenu
// Identifiant menu --> Contenu version originale
// Identifiant menu --> Contenu version par défaut
 
// Identifiant menu --> Identifiant version originale
 
/** Fonction GEN_rechercheMenuIdentifiant() - Recherche code menu à partir de l'identifiant d'un site
*
*
* @param object objet Pear de connection à la base de données.
*/
 
function GEN_rechercheMenuIdentifiant($db, $id_menu) {
$requete = 'SELECT gm_code_num '.
'FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu.' ';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
 
$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
return $ligne->gm_code_num;
}
 
/** Fonction GEN_rechercheMenuCode() - Recherche identifiant à partir du code menu d'un site et en fonction de la langue
*
*
* @param object objet Pear de connection à la base de données.
* @param code menu
* @return identifiant menu
*/
 
function GEN_rechercheMenuCode($db, $code_menu) {
 
// Si identifiant existe pour la langue choisie : retour identifiant
// Si identifiant n'existe pas : retour identifiant de la langue par defaut :
// Recherche de l'identifiant par defaut
// Recherche de l'identifiant de la langue du site
// Recherche de l'identifiant par defaut
$id_langue = $GLOBALS['_GEN_commun']['i18n'];
if (isset($id_langue) && ($id_langue!='')) {
$langue_test=$id_langue;
} else {
$langue_test=GEN_I18N_ID_DEFAUT;
}
$requete = 'SELECT gm_id_menu, gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$code_menu.' '.
'AND gm_ce_i18n = "'.$langue_test.'" ';
$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);
return $ligne->gm_id_menu;
}
else {
// Recherche defaut :
 
$requete = 'SELECT gm_id_menu, gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$code_menu.' ';
'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" ';
$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);
if ($langue_test!=GEN_I18N_ID_DEFAUT) {
return GEN_rechercheMenuIdentifiantVersionParDefaut($db,$ligne->gm_id_menu);
}
else {
return $ligne->gm_id_menu;
}
}
}
 
 
}
 
/* Fonction GEN_rechercheContenu
*
*/
function GEN_rechercheContenu($db,$id_menu,$type_fetch=DB_FETCHMODE_OBJECT) {
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Rien trouvé ? : Pas encore de contenu
// Recherche identifiant par défaut
if ( $resultat->numRows() == 0 ) {
 
$id_menu_defaut=GEN_rechercheMenuIdentifiantVersionParDefaut($db,$id_menu);
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu_defaut.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ( $resultat->numRows() == 0 ) {
// Toujours rien ?
// Tentative recherche dans la langue du site par defaut
$id_menu_origine=GEN_rechercheMenuIdentifiantVersionOriginale($db,$id_menu);
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu_origine.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
}
$ligne_contenu = $resultat->fetchRow($type_fetch);
 
return $ligne_contenu;
 
}
 
/** Fonction GEN_rechercheMenuIdentifiantVersionOriginale() - Recherche identifiant de la version orginale d'un menu
*
*
* @param object objet Pear de connection à la base de données.
* @param identifiant menu
* @return identifiant menu
*/
 
function GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu) {
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_02 = ' . $id_menu .' '.
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction"
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
if ($resultat->numRows() > 0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->gmr_id_menu_01;
}
else {
return $id_menu;
}
}
 
/** Fonction GEN_rechercheMenuIdentifiantVersionParDefaut() - Recherche identifiant par defaut d'un menu
*
*
* @param object objet Pear de connection à la base de données.
* @param identifiant menu
* @return identifiant menu
*/
 
 
function GEN_rechercheMenuIdentifiantVersionParDefaut($db, $id_menu) {
 
$identifiantVersionOrginale=GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu);
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = ' . $identifiantVersionOrginale .' '.
'AND gmr_id_valeur = 105 '; // 105
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
if ($resultat->numRows() > 0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->gmr_id_menu_02;
}
else {
return $identifiantVersionOrginale;
}
 
}
 
 
 
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log: not supported by cvs2svn $
* Revision 1.26 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.25.2.1 2005/12/20 14:40:24 ddelon
* Fusion Head vers Livraison
*
* Revision 1.25 2005/11/08 17:43:46 ddelon
* Bug Nouveaute ne s'affichant pas pour les menu communs
*
* Revision 1.24 2005/09/20 17:01:22 ddelon
* php5 et bugs divers
*
* Revision 1.23 2005/08/29 09:05:12 ddelon
* Suppression message debug
*
* Revision 1.22 2005/07/08 15:16:37 alexandre_tb
* ajout de la fonction GEN_lireInfoMenuMeta() qui permet de sélectionner des menus en fonction de leur mot clé et leur catégorie
*
* Revision 1.21 2005/06/08 19:11:43 jpm
* Ajout de ordre et condition pour la fonction de lecture des infos sur les menus.
*
* Revision 1.20 2005/05/26 08:00:51 jpm
* Correction dans la fonction GEN_retournerTableauMenusSiteCodeAlpha().
*
* Revision 1.19 2005/05/25 13:46:58 jpm
* Changement du sql de la fonction GEN_lireContenuMenu().
*
* Revision 1.18 2005/04/19 17:21:19 jpm
* Utilisation des références d'objets.
*
* Revision 1.17 2005/04/18 16:41:25 jpm
* Ajout d'une fonction pour récupérer tous les menus d'un site avec son code alphanumérique.
*
* Revision 1.16 2005/04/14 17:40:31 jpm
* Modification fonction pour les actions.
*
* Revision 1.15 2005/04/14 13:56:53 jpm
* Modification d'une ancienne fonction.
*
* Revision 1.14 2005/04/12 16:13:50 jpm
* Ajout de fonction renvoyant des infos sur un menu en fonction des mots clés, catégories ou date de modification du contenu.
*
* Revision 1.13 2005/03/30 08:53:59 jpm
* Ajout de fonctions permettant de récupérer les codes alphanumériques ou numériques en fonction de l'un ou de l'autre.
*
* Revision 1.12 2005/02/28 11:12:03 jpm
* Modification des auteurs.
*
* Revision 1.11 2004/12/06 19:49:35 jpm
* Ajout d'une fonction permettant de récupérer le contenu d'un menu.
*
* Revision 1.10 2004/12/06 17:53:55 jpm
* Ajout fonction GEN_retournerMenus().
*
* Revision 1.9 2004/11/29 18:34:42 jpm
* Correction bogue.
*
* Revision 1.8 2004/11/10 17:25:51 jpm
* Modification de fonction suite à des bogues.
*
* Revision 1.7 2004/11/09 17:55:26 jpm
* Suppresion de fonctions inutiles et mise en conformité.
*
* Revision 1.6 2004/11/08 17:39:32 jpm
* Suppression d'une fonction inutile.
* GEN_etreFils() n'est pas utile. On peut utiliser GEN_etreAncetre() à la place.
*
* Revision 1.5 2004/11/04 12:51:45 jpm
* Suppression de message de débogage.
*
* Revision 1.4 2004/11/04 12:23:50 jpm
* Nouvelles fonctions sur les menus frères.
*
* Revision 1.3 2004/10/25 14:16:21 jpm
* Suppression de code commenté.
*
* Revision 1.2 2004/10/21 18:15:21 jpm
* Ajout de gestion d'erreur aux fonctions.
*
* Revision 1.1 2004/06/15 15:11:37 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.43 2004/05/05 06:13:27 jpm
* Extraction de la fonction générant le "vous êtes ici", transformée en applette.
*
* Revision 1.42 2004/05/04 16:24:06 jpm
* Amélioration de la fonction générant le "vous êtes ici".
*
* Revision 1.41 2004/05/04 16:17:31 jpm
* Ajout de la fonction générant le "vous êtes ici".
*
* Revision 1.40 2004/05/03 11:18:17 jpm
* Normalisation de deux fonctions issues du fichier fontctions.php.
*
* Revision 1.39 2004/05/01 16:17:11 jpm
* Suppression des fonctions liées à la création des listes de menu. Elles ont été transformées en applette.
*
* Revision 1.38 2004/05/01 11:43:16 jpm
* Suppression des fonction GEN_afficherMenuCommun() et GEN_afficherSelecteurSites() transformées en applette.
*
* Revision 1.37 2004/04/30 16:18:41 jpm
* Correction d'un bogue dans les fonctions de gestion des scripts.
*
* Revision 1.36 2004/04/28 12:04:40 jpm
* Changement du modèle de la base de données.
*
* Revision 1.35 2004/04/09 16:23:41 jpm
* Prise en compte des tables i18n.
*
* Revision 1.34 2004/04/02 16:34:44 jpm
* Extraction de variable globale des fonction, remplacé par un passage en paramètre.
*
* Revision 1.33 2004/04/01 11:24:51 jpm
* Ajout et modification de commentaires pour PhpDocumentor.
*
* Revision 1.32 2004/03/31 16:52:30 jpm
* Modification du code vis à vis du modèle revision 1.9 de Génésia.
*
* Revision 1.31 2004/03/29 17:13:05 jpm
* Suppression de fonction, passer en code classique.
*
* Revision 1.30 2004/03/27 11:11:58 jpm
* Début changement nom de variable dans fonction creerInfoPageEtApplication().
*
* Revision 1.29 2004/03/26 12:52:25 jpm
* Ajout des fonctions creerInfoPageEtApplication() et donnerIdPremiereApplicationLiee().
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_script.fonct.php
New file
0,0 → 1,231
<?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: pap_script.fonct.php,v 1.3 2005-02-28 11:12:03 jpm Exp $
/**
* Les fonctions permettant d'inclure des scripts.
*
* Ces fonctions permettent d'inclure des scripts, éxécuté côté client, directement dans les pages
* des applications. Elles peuvent donc être appelées par les applications
* intégrées à Génésia. Par défaut, c'est le Javascript qui est conscidéré commé utilisé.
*
*@package Papyrus
*@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.3 $ $Date: 2005-02-28 11:12:03 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** Fonction GEN_modifierTypeScript() - Permet de stocker le type des scripts.
*
* Papyrus permet à une application donnée d'intégrer du code de scripts, exécuté côté client,
* directement dans l'entête de la page. Cette fonction définit le type Mime du langage de script utilisé.
* En XHTML strict, cette fonction ne devrait pas être utilisé car les scripts devraient être
* stocké dans des fichiers séparés.
*
* @deprecated déprécier dans le cadre d'application XHTML.
* @global string "script_type" : utilisé pour stocker le type des scripts intégrés.
* @param string le code à insérer.
* @return void le code est stocké dans une variable globale.
*/
function GEN_modifierTypeScript($type = 'text/javascript')
{
global $_GEN_commun;
$_GEN_commun['script_type'] .= $type;
}
 
/** Fonction GEN_stockerCodeScript() - Permet de stocker le code d'un script côté client utilisé par une application.
*
* Papyrus permet à une application donnée de stocker du code de script, exécuté côté client, qui sera
* envoyer directement dans l'entête de la page. En XHTML strict, l'utilisation de cette
* fonction est déconseillée. Utiliser plutôt une fichier de scripts séparé qui
* sera appelé par l'entête. Cette fonction peut être appelé plusieurs fois. Elle ne
* fait que stocker le code dans une variable globale utilisée par Génésia.
*
* @deprecated déprécier dans le cadre d'application XHTML.
* @global string "script_code" : utilisé pour stocker le code des scripts.
* @param string le code à insérer.
* @return void le code est stocké dans une variable globale.
*/
function GEN_stockerCodeScript($bloc_code)
{
global $_GEN_commun;
$_GEN_commun['script_code'] .= $bloc_code;
}
 
/** Fonction GEN_stockerFonctionScript() - Permet de stocker des fonctions Javascript.
*
* Papyrus permet à une application donnée de stocker des fonctions dans un langage de script donné
* qui seront envoyer directement dans l'entête de la page. En XHTML strict, l'utilisation de cette
* fonction est déconseillée. Utiliser plutôt une fichier de scripts séparé qui
* sera appelé par l'entête. Cette fonction peut être appelé plusieurs fois. Elle ne
* fait que stocker les fonctions dans une variable (tableau associatif) globale utilisée
* par Génésia.
*
* @deprecated déprécier dans le cadre d'application XHTML.
* @global array "script_fonction" : utilisé pour stocker le code des fontions du script.
* @param string la clé du tableau de fontion, par exemple le nom de la fonction à insérer.
* @param string le code complet de la fonction à insérer.
* @return void la fonction est stockée dans une variable (tableau associatif) globale.
*/
function GEN_stockerFonctionScript($id_fonction, $code_fonction)
{
global $_GEN_commun;
if (empty($_GEN_commun['script_fonction'][$id_fonction])) {
$_GEN_commun['script_fonction'][$id_fonction] = $code_fonction;
} else {
if (GEN_DEBOGAGE) {
$_GEN_commun['debogage_info'] .=
'ERREUR Papyrus : cet identifiant de fonction à déjà été enregistré par GEN_stockerFonctionJavascript(). <br />'.
'Identifiant : '. $id_fonction .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__;
}
}
}
 
/** Fonction GEN_stockerFichierScript() - Permet de stocker des fichiers de scripts.
*
* Papyrus permet à une application donnée de stocker des fichiers de script qui seront
* appelés depuis l'entête de la page. En XHTML strict, l'utilisation de cette
* fonction est conseillée.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que stocker les chemin des
* fichiers dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @global array "script_fichier" : utilisé pour stocker les chemins des scripts.
* @param string la clé du tableau de fichiers, par exemple le nom du fichier à insérer.
* @param string le chemin complet du fichier à insérer.
* @param string le type MIME du langage de script utilisé dans le fichier à insérer.
* @return void le chemin du fichier est stocké dans une variable (tableau associatif) globale.
*/
function GEN_stockerFichierScript($id_fichier, $chemin_fichier, $type_fichier = 'text/javascript')
{
global $_GEN_commun;
if (empty($_GEN_commun['script_fichier'][$id_fichier])) {
$_GEN_commun['script_fichier'][$id_fichier]['type'] = $type_fichier;
$_GEN_commun['script_fichier'][$id_fichier]['chemin'] = $chemin_fichier;
} else {
if (GEN_DEBOGAGE) {
$_GEN_commun['debogage_info'] .=
'ERREUR Papyrus : cet identifiant de fichier à déjà été enregistré par GEN_stockerFichierJavascript(). <br />'.
'Identifiant : '. $id_fichier .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__;
}
}
}
 
/** Fonction GEN_afficherScript() - Permet de renvoyer les scripts.
*
* Cette fonction récupère les scripts stockés dans les variables globales de Papyrus
* et le retourne formaté pour l'affichage dans l'entête du squelette du site.
* C'est la balise Papyrus <!-- SCRIPTS --> qui permet de situer l'endroit où afficher
* les script.
*
* @global array "script_fichier" : utilisé pour stocker les chemins des scripts,
* "script_fonction" : utilisé pour stocker le code des fontions et "script_code" :
* utilisé pour stocker le code des script.
* @return string le code XHTML contenant les scripts à insérer dans l'entête.
*/
function GEN_afficherScript()
{
global $_GEN_commun;
$sortie = '';
$fichiers = '';
if (isset($_GEN_commun['script_fichier'])) {
while (list($cle, $valeur) = each($_GEN_commun['script_fichier'])) {
$fichiers .= str_repeat(' ', 8).'<script type="'.$valeur['type'].'" src="'.$valeur['chemin'].'" ></script>'."\n";
}
$sortie .= $fichiers;
} else {
$sortie .= '<!-- Aucun script externe -->'."\n";
}
$fonctions = '';
while (list($cle, $valeur) = each($_GEN_commun['script_fonction'])) {
$fonctions .= $valeur;
}
$code = '';
$code = $_GEN_commun['script_code'];
if ($fonctions != '' || $code != '') {
$sortie .= "\n";
$sortie .= str_repeat(' ', 8).'<script type="'.$_GEN_commun['script_type'].'">'."\n";
$sortie .= str_repeat(' ', 12).'<!--/*--><![CDATA[//><!--'."\n";
$sortie .= $fonctions."\n";
$sortie .= $code."\n";
$sortie .= str_repeat(' ', 12).'//--><!]]>'."\n";
$sortie .= str_repeat(' ', 8).'</script>';
} else {
$sortie .= '<!-- Aucun script intégré -->'."\n";
}
return $sortie;
}
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/09/10 16:40:41 jpm
* Ajout de messages d'erreurs dans les infos de débogage.
*
* Revision 1.1 2004/06/15 15:13:07 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.6 2004/04/30 16:18:56 jpm
* Correction d'un bogue dans les fonctions de gestion des scripts.
*
* Revision 1.5 2004/04/20 15:25:58 jpm
* Ajout de commentaire html à la place d'une chaine vide lors du remplacement de balise Genesia.
*
* Revision 1.4 2004/04/20 12:18:03 jpm
* Ajout d'une fonction permettant de modifier le type de scripts intégrés à une page.
*
* Revision 1.3 2004/04/20 10:46:58 jpm
* Modification des commentaires.
*
* Revision 1.2 2004/04/05 16:37:08 jpm
* Correction de bogues concernant les variables globales javascript.
*
* Revision 1.1 2004/04/05 12:35:09 jpm
* Ajout du fichier contenant les fonctions permettant d'inclure le Javascript dans l'entete des pages générées par Génésia.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_site.fonct.php
New file
0,0 → 1,295
<?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: pap_site.fonct.php,v 1.5 2006-10-11 18:04:11 jp_milcent Exp $
/**
* Bibliothèque de fonctions concernant les sites.
*
* Bibliothèque de fonctions permettant de manipuler les tables :
* - gen_site,
* - gen_site_auth,
* - gen_site_auth_bdd,
* - gen_site_auth_ldap,
* - gen_site_categorie,
* - gen_site_categorie_valeur.
*
*@package Papyrus
*@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.5 $ $Date: 2006-10-11 18:04:11 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** Fonction GEN_lireInfoSites() - Renvoie un tableau contenant les lignes de la table gen_site
*
* Retourne un tableau contenant les lignes de la table gen_site pour les sites "classiques".
*
* @param mixed une instance de la classse Pear DB.
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @param integer le type de site (par défaut 102 = site "principal")
* @return array un tableau contenant les lignes de la table gen_site pour les sites "principaux".
*/
function GEN_lireInfoSites(&$bdd, $mode = DB_FETCHMODE_OBJECT, $type_site = 102)
{
$aso_sites = array();
$requete = 'SELECT gen_site.* '.
'FROM gen_site, gen_site_relation '.
'WHERE gs_id_site = gsr_id_site_01 '.
'AND gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = '.$type_site.' '; // 102 = par défaut site "principal"
$resultat = $bdd->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ($resultat->numRows() > 0) {
while ($ligne = $resultat->fetchRow($mode)) {
array_push($aso_sites, $ligne);
}
}
$resultat->free();
return $aso_sites;
}
 
/** Fonction GEN_lireInfoSitePrincipal() - Renvoie un objet contenant une ligne de la table gen_site
*
* Retourne la ligne de la table gen_site concernant le site principal ayant pour identifiant la valeur
* passée en paramètre.
*
* @param mixed une instance de la classse Pear DB.
* @param string l'identifiant du site.
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @return mixed un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur.
*/
function GEN_lireInfoSitePrincipal(&$objet_pear_db, $site_id, $mode = DB_FETCHMODE_OBJECT)
{
$requete = 'SELECT * '.
'FROM gen_site, gen_site_relation '.
'WHERE gs_id_site = '.$site_id.' '.
'AND gs_id_site = gsr_id_site_01 '.
'AND gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 102 '; // 102 = site "principal"
$resultat = $objet_pear_db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ($resultat->numRows() != 1) {
// Impossible de récupérer des informations sur le site principal ayant pour code alpha $code_alpha
return false;
}
$info_site_principal = $resultat->fetchRow($mode);
$resultat->free();
return $info_site_principal;
}
 
/** Fonction GEN_lireInfoSitePrincipalCodeAlpha() - Renvoie un objet contenant une ligne de la table gen_site
*
* Retourne la ligne de la table gen_site concernant le site principal ayant pour code alphanumérique la valeur
* passée en paramètre.
* Ancien nom : getProjectInfos()
*
* @param mixed une instance de la classse Pear DB.
* @param string le code alphanumérique du site.
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
* @return mixed un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur.
*/
function GEN_lireInfoSitePrincipalCodeAlpha(&$objet_pear_db, $code_alpha, $mode = DB_FETCHMODE_OBJECT)
{
$requete = 'SELECT * '.
'FROM gen_site, gen_site_relation '.
'WHERE gs_code_alpha = "'.$code_alpha.'" '.
'AND gs_id_site = gsr_id_site_01 '.
'AND gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 102 '; // 102 = site "principal"
$resultat = $objet_pear_db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ($resultat->numRows() != 1) {
// Impossible de récupérer des informations sur le site principal ayant pour code alpha $code_alpha
return false;
}
$info_site_principal = $resultat->fetchRow($mode);
$resultat->free();
return $info_site_principal;
}
 
/** Fonction getSiteI18nInfos() - Renvoie un objet contenant une ligne de la table gen_site
*
* Retourne la ligne de la table gen_site concernant un site ayant pour code alphanumérique et identifiant
* i18n les valeurs passées en paramètres.
* Ancien nom :getSiteI18nInfos():
*
* @param mixed une instance de la classse Pear DB.
* @param string le code alphanumérique du site recherché.
* @param string l'identifiant i18n possédé par le site recherché.
* @return mixed un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur.
*/
function GEN_lireInfoSiteI18nCodeAlpha(&$objet_pear_db, $code_alpha, $i18n)
{
$requete = 'SELECT * '.
'FROM gen_site, gen_site_relation '.
'WHERE gs_code_alpha = "'.$code_alpha.'" '.
'AND gs_ce_i18n = "'.$i18n.'" ';
$resultat = $objet_pear_db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ($resultat->numRows() != 1) {
return false;
}
$info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$resultat->free();
return $info_site;
}
 
/** Fonction GEN_retournerTableauTypeSiteExterne() - Renvoie un tableau des types site externe
*
* Retourne un tableau de tableaux associatifs contenant les valeurs des types des sites externes.
*
* @param mixed une instance de la classse Pear DB.
* @return mixed un tableau de tableaux associatifs contenant les valeurs des types des sites externes
*/
function GEN_retournerTableauTypeSiteExterne(&$objet_pear_db)
{
$requete = 'SELECT * '.
'FROM gen_site_categorie_valeur '.
'WHERE gscv_id_categorie = 3 ';// 3 = type de site externe
$resultat = $objet_pear_db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ($resultat->numRows() == 0) {
return false;
}
$tab_type = array();
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
$aso_type_site_externe = array('id' => $ligne->gscv_id_valeur, 'intitule' => $ligne->gscv_intitule_valeur);
array_push($tab_type, $aso_type_site_externe);
}
$resultat->free();
return $tab_type;
}
 
/** Fonction GEN_retournerSiteCodeNum() - Renvoie le code num d'un site en fonction du code Alphanumérique
*
* Retourne le code numérique d'un site en fonction du code alphanumérique.
*
* @param mixed une instance de la classe Pear DB.
* @param string le code alphanumérique d'un site.
* @return mixed le code numérique du site sinon false.
*/
function GEN_retournerSiteCodeNum(&$db, $code_alphanum)
{
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT gs_code_num '.
'FROM gen_site '.
'WHERE gs_code_alpha = "'.$code_alphanum.'"';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$code_num = $info_site->gs_code_num;
$resultat->free();
 
return $code_num;
}
 
/** Fonction GEN_retournerSiteCodeAlpha() - Renvoie le code alphanumérique d'un site en fonction du code numérique
*
* Retourne le code alphanumérique d'un site en fonction du code numérique.
*
* @param mixed une instance de la classse Pear DB.
* @param string le code numérique d'un site.
* @return mixed le code alphanumérique du site sinon false.
*/
function GEN_retournerSiteCodeAlpha(&$db, $code_num)
{
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT gs_code_alpha '.
'FROM gen_site '.
'WHERE gs_code_num = '.$code_num;
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$code_alphanum = $info_site->gs_code_alpha;
$resultat->free();
 
return $code_alphanum;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.4 2005/04/19 17:21:19 jpm
* Utilisation des références d'objets.
*
* Revision 1.3 2004/12/03 19:22:30 jpm
* Ajout d'une fonction retournant les types de sites externes gérés par Papyrus.
*
* Revision 1.2 2004/11/04 12:25:35 jpm
* Ajout d'une fonction permettant de récupérer les infos sur un site à partir de son id.
*
* Revision 1.1 2004/06/15 15:13:37 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.1 2004/05/03 16:26:07 jpm
* Ajout de la bibliothèque de fonctions permettant de manipuler les informations issues des tables "gen_site_..." de Génésia.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/branches/livraison_menes/papyrus/bibliotheque/fonctions/pap_meta.fonct.php
New file
0,0 → 1,305
<?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: pap_meta.fonct.php,v 1.5 2006-10-10 12:05:52 jp_milcent Exp $
/**
* Bibliothèque de fonctions permettant d'inclure des balises META.
*
* Cet ensemble de fonctions permet de manipuler les balise meta à intégrer dans l'entête
* des pages html. Cela peut être très pratique pour les applications voulant définir précisément
* ces informations.
*
*@package Papyrus
*@subpackage Fonctions
//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-10-10 12:05:52 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
/** Fonction GEN_stockerMetaHttpEquiv() - Permet de stocker des informations Http-Equiv.
*
* Papyrus permet à une application donnée de stocker les balises meta contenant l'attribut http-equiv
* à intégrer dans l'entête de la page.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que stocker les informations
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string la clé du tableau des meta http-equiv, l'information présente dans l'attribut http-equiv.
* @param string le contenu présent dans l'attribut content.
* @return void les informations sont stockées dans une variable (tableau associatif) globale.
*/
function GEN_stockerMetaHttpEquiv($id_http_equiv, $content)
{
if (empty($GLOBALS['_GEN_commun']['meta_http_equiv'][$id_http_equiv])) {
$GLOBALS['_GEN_commun']['meta_http_equiv'][$id_http_equiv] = $content;
} else {
die('ERREUR Papyrus : cette balise meta à déjà été enregistré par GEN_stockerMetaHttpEquiv(). <br />'.
'Identifiant : '. $id_http_equiv .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__);
}
}
 
/** Fonction GEN_modifierMetaHttpEquiv() - Permet de modifier les informations d'une balise http-equiv.
*
* Papyrus permet à une application donnée de modifier les balises meta contenant l'attribut http-equiv
* à intégrer dans l'entête de la page.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que modifier les informations
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string la clé du tableau des meta http-equiv, l'information présente dans l'attribut http-equiv.
* @param string le contenu présent dans l'attribut content.
* @return void les informations sont stockées dans une variable (tableau associatif) globale.
*/
function GEN_modifierMetaHttpEquiv($id_http_equiv, $content)
{
if ($content != '') {
$GLOBALS['_GEN_commun']['meta_http_equiv'][$id_http_equiv] = $content;
} else {
die('ERREUR Papyrus : cette balise ne peut avoir un contenu vide. <br />'.
'Contenu : '. $content .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__);
}
}
 
/** Fonction GEN_stockerMetaName() - Permet de stocker des informations pour la balise meta.
*
* Papyrus permet à une application donnée de stocker les balises meta contenant l'attribut name
* à intégrer dans l'entête de la page.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que stocker les informations
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string la clé du tableau des meta name, l'information présente dans l'attribut name.
* @param string le contenu présent dans l'attribut content.
* @return void les informations sont stockées dans une variable (tableau associatif) globale.
*/
function GEN_stockerMetaName($id_name, $content)
{
if (empty($GLOBALS['_GEN_commun']['meta_name'][$id_name])) {
$GLOBALS['_GEN_commun']['meta_name'][$id_name] = $content;
} else {
die('ERREUR Papyrus : cette balise meta à déjà été enregistré par GEN_stockerMetaName(). <br />'.
'Identifiant : '. $id_name .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__);
}
}
 
/** Fonction GEN_modifierMetaName() - Permet de modifier les informations d'une balise meta.
*
* Papyrus permet à une application donnée de modifier les balises meta contenant l'attribut name
* à intégrer dans l'entête de la page.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que modifier les informations
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string la clé du tableau des meta name, l'information présente dans l'attribut name.
* @param string le contenu présent dans l'attribut content.
* @return void les informations sont stockées dans une variable (tableau associatif) globale.
*/
function GEN_modifierMetaName($id_name, $content)
{
if ($content != '') {
$GLOBALS['_GEN_commun']['meta_name'][$id_name] = $content;
} else {
die('ERREUR Papyrus : cette balise ne peut avoir un contenu vide. <br />'.
'Contenu : '. $content .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__);
}
}
 
/** Fonction GEN_stockerMetaNameDC() - Permet de stocker des informations Dublin Core pour la balise meta.
*
* Papyrus permet à une application donnée de stocker des informations Dublin Core pour les balises meta
* à intégrer dans l'entête de la page.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que stocker les informations
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string la clé du tableau des meta name, l'information présente dans l'attribut name.
* @param string le contenu présent dans l'attribut content.
* @param string le contenu présent dans l'attribut lang.
* @param string le contenu présent dans l'attribut scheme.
* @return void les informations sont stockées dans une variable (tableau associatif) globale.
*/
function GEN_stockerMetaNameDC($id_name, $content, $lang = '', $scheme = '')
{
if (empty($GLOBALS['_GEN_commun']['meta_name_dc'][$id_name])) {
$GLOBALS['_GEN_commun']['meta_name_dc'][$id_name]['contenu'] = $content;
$GLOBALS['_GEN_commun']['meta_name_dc'][$id_name]['langue'] = $lang;
$GLOBALS['_GEN_commun']['meta_name_dc'][$id_name]['scheme'] = $scheme;
} else {
die('ERREUR Papyrus : cette balise meta à déjà été enregistré par GEN_stockerMetaNameDC(). <br />'.
'Identifiant : '. $id_name .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__);
}
}
 
/** Fonction GEN_modifierMetaNameDC() - Permet de modifier les informations d'une balise meta DC.
*
* Papyrus permet à une application donnée de modifier les balises meta DC contenant l'attribut name
* à intégrer dans l'entête de la page.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que modifier les informations
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string la clé du tableau des meta name DC, l'information présente dans l'attribut name.
* @param string le contenu présent dans l'attribut content.
* @param string le contenu présent dans l'attribut lang.
* @param string le contenu présent dans l'attribut scheme.
* @return void les informations sont stockées dans une variable (tableau associatif) globale.
*/
function GEN_modifierMetaNameDC($id_name, $content, $lang = '', $scheme = '')
{
if ($content != '') {
$GLOBALS['_GEN_commun']['meta_name_dc'][$id_name]['contenu'] = $content;
$GLOBALS['_GEN_commun']['meta_name_dc'][$id_name]['langue'] = $lang;
$GLOBALS['_GEN_commun']['meta_name_dc'][$id_name]['scheme'] = $scheme;
} else {
die('ERREUR Papyrus : cette balise ne peut avoir un contenu vide. <br />'.
'Contenu : '. $content .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__);
}
}
 
/** Fonction GEN_afficherMeta() - Permet d'afficher les meta informations.
*
* Cette fonction affiche les meta informations Http-Equiv, Meta ou DC stockées
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string le type de balise meta à afficher (http-equiv, name ou dc).
* @return void les informations sont stockées dans une variable (tableau associatif) globale.
*/
function GEN_afficherMeta($type = 'name')
{
$sortie = '';
if ($type == 'http-equiv' && isset($GLOBALS['_GEN_commun']['meta_http_equiv'])) {
while (list($cle, $valeur) = each($GLOBALS['_GEN_commun']['meta_http_equiv'])) {
$sortie .= str_repeat(' ', 8).'<meta http-equiv="'.$cle.'" content="'.$valeur.'" />'."\n";
}
if (empty($sortie)) {
$sortie .= '<!-- Aucune balise meta http-equiv -->'."\n";
}
}else if ($type == 'name' && isset($GLOBALS['_GEN_commun']['meta_name'])) {
while (list($cle, $valeur) = each($GLOBALS['_GEN_commun']['meta_name'])) {
if (! empty($valeur['contenu'])) {
$sortie .= str_repeat(' ', 8).'<meta name="'.$cle.'" content="'.$valeur.'" />'."\n";
}
}
if (empty($sortie)) {
$sortie .= '<!-- Aucune balise meta name -->'."\n";
}
} else if ($type == 'dc' && isset($GLOBALS['_GEN_commun']['meta_name_dc'])) {
while (list($cle, $valeur) = each($GLOBALS['_GEN_commun']['meta_name_dc'])) {
if (! empty($valeur['contenu'])) {
$sortie .= str_repeat(' ', 8).'<meta name="'.$cle.'" ';
if (! empty($valeur['langue'])) {
$sortie .= 'lang="'.$valeur['langue'].'" ';
}
if (! empty($valeur['scheme'])) {
$sortie .= 'scheme="'.$valeur['scheme'].'" ';
}
$sortie .= 'content="'.$valeur['contenu'].'" />'."\n";
}
}
// Ajout du schéma du Dublin Core si on affiche des informations DC
if (! empty($sortie)) {
$tmp = $sortie;
$sortie = str_repeat(' ', 8).'<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />'."\n";
$sortie .= $tmp;
} else {
$sortie .= '<!-- Aucune balise meta name Dublin Core -->'."\n";
}
}
return $sortie;
}
 
/** Fonction GEN_viderMeta() - Permet de vider les informations d'un type de balise meta.
*
* Papyrus permet à une application donnée de modifier les balises meta contenant l'attribut name
* à intégrer dans l'entête de la page.
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que modifier les informations
* dans une variable (tableau associatif) globale utilisée par Papyrus.
*
* @param string le type de balise meta à vider (http-equiv, name ou dc).
* @return void la variable (tableau associatif) globale contenant les infos meta est vidée.
*/
function GEN_viderMeta($type)
{
if ($type == 'http-equiv') {
if (count($GLOBALS['_GEN_commun']['meta_http_equiv']) > 0) {
foreach ($GLOBALS['_GEN_commun']['meta_http_equiv'] as $cle => $val) {
$GLOBALS['_GEN_commun']['meta_http_equiv'][$cle] = null;
}
}
} else if ($type == 'meta') {
if (count($GLOBALS['_GEN_commun']['meta']) > 0) {
foreach ($GLOBALS['_GEN_commun']['meta'] as $cle => $val) {
$GLOBALS['_GEN_commun']['meta'][$cle] = null;
}
}
} else if ($type == 'dc') {
if (count($GLOBALS['_GEN_commun']['meta_name_dc']) > 0) {
foreach ($GLOBALS['_GEN_commun']['meta_name_dc'] as $cle => $val) {
$GLOBALS['_GEN_commun']['meta_name_dc'][$cle] = null;
}
}
} else {
die('ERREUR Papyrus : le type de balise est incorrect. <br />'.
'Contenu : <br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__);
}
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.4 2006/04/28 12:41:49 florian
* corrections erreurs chemin
*
* Revision 1.3 2004/12/06 19:45:45 jpm
* Ajout d'une fonction permettant de vider les tableaux des meta.
*
* Revision 1.2 2004/12/06 17:58:02 jpm
* Ajout de fonctions permettant de modifier le contenu des balises meta : http-equiv, name et name DC.
*
* Revision 1.1 2004/06/15 15:12:12 jpm
* Changement de nom et d'arborescence de Genesia en Papyrus.
*
* Revision 1.1 2004/04/20 15:24:54 jpm
* Ajout de la bibliotheque de fonctions gérant les meta.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>