/tags/v5.0-ouadji/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/papyrus/bibliotheque/fonctions/pap_menu.fonct.php |
---|
New file |
0,0 → 1,1188 |
<?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.34 2008-08-08 14:42:14 jp_milcent 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.34 $ $Date: 2008-08-08 14:42:14 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | 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 duquel 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_donnerProfondeur() - Renvoie le niveau du menu. |
* |
* Cette fonction calcule, pour un menu donné, son niveau par rapport à la racine. |
* 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 dont on souhaite connaître la profondeur. |
* @param integer profondeur de départ (par défaut 0). Ne devrait pas être modifié... |
* @return integer le nombre de niveau de menu. |
*/ |
function GEN_donnerProfondeur($id_site, $id_menu, $prof = 0) |
{ |
global $db; |
// Requête sur les relations de type "avoir père" entre menus |
$requete = 'SELECT gmr_id_menu_02 '. |
'FROM gen_menu, gen_menu_relation '. |
'WHERE gmr_id_menu_01 = '.$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) { |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$prof = GEN_donnerProfondeur($id_site, $ligne->gmr_id_menu_02, ++$prof); |
} |
} |
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_lireContenuMenuHistorique() - 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. Toutes les versions archivées du contenu du menu sont retournées. |
* |
* @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_lireContenuMenuHistorique(&$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; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
if ($resultat->numRows() < 1) { |
return false; |
} |
$resultat =& $db->query($requete); |
(PEAR::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
while ($menu_contenu = $resultat->fetchRow($mode)) { |
$aso_info[] = $menu_contenu; |
} |
return $aso_info; |
} |
/** 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 ($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 && $tab_cat[0] != '') { |
$requete .= 'AND ' ; |
} |
for ($i = 0; $i < count($tab_cat); $i++) { |
if ($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].'%" '; |
} |
} |
$requete .= 'ORDER BY gm_date_creation 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_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()) |
{ |
global $_GEN_commun; |
$id_langue = $_GEN_commun['i18n'];//identifiant de la langue choisie |
if ($id_langue != GEN_I18N_ID_DEFAUT) { |
$i18n_url=$id_langue; |
} |
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
$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)) { |
$requete_restriction = 'SELECT gmr_id_menu_02 '. |
'FROM gen_menu_relation '. |
'WHERE '.$ligne['gm_id_menu'].' = gmr_id_menu_01 ' . |
'AND gmr_id_valeur = 106 ';// 106 restriction de menu |
$resultat_restriction = $db->query($requete_restriction); |
(DB::isError($resultat_restriction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_restriction->getMessage(), $requete_restriction)) |
: ''; |
if ($resultat_restriction->numRows()>0 && $langue_test!=$ligne['gm_ce_i18n']) { |
$select_menu=0; |
} |
else { |
$select_menu=1; |
} |
// if ($select_menu) { |
$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_retournerIdMenuParCodeNum() |
* |
* Recherche les info d'une menu à partir du code numérique du menu d'un site et en fonction de la langue. |
* |
* @param object objet Pear de connection à la base de données. |
* @param integer code numérique du menu |
* @return identifiant menu |
*/ |
function GEN_retournerIdMenuParCodeNum($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_rechercheMenuCode() |
* |
* Allias de GEN_retournerIdMenuAvecCodeNum(). |
* |
* @param object objet Pear de connection à la base de données. |
* @param integer code numérique du menu |
* @return identifiant menu |
*/ |
function GEN_rechercheMenuCode($db, $code_menu) { |
return GEN_retournerIdMenuParCodeNum($db, $code_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; |
} |
function GEN_rechercheContenuIdentifiant($db, $id_contenu, $mode = DB_FETCHMODE_OBJECT) { |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu, gmc_date_modification '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_id_contenu = '.$id_contenu.' '; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
if ($resultat->numRows() != 1) { |
return false; |
} |
$ligne_contenu = $resultat->fetchRow($mode); |
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.33 2007-11-22 17:24:09 jp_milcent |
* Fusion avec la livraison AHA : 22 novembre 2007 |
* |
* Revision 1.32 2007-11-19 09:54:49 ddelon |
* Gestion des menus reservés à une langue |
* |
* Revision 1.31 2007-06-26 15:39:46 jp_milcent |
* Ajout de fonctions utiles pour la gestion du contenu des menus. |
* |
* Revision 1.30 2006-12-12 17:19:58 jp_milcent |
* Ajout de test supplémentaire pour éviter les erreurs. |
* |
* Revision 1.29 2006/12/12 13:32:58 jp_milcent |
* Mise en forme. |
* |
* Revision 1.28 2006/12/08 20:13:57 jp_milcent |
* Mise en allias de GEN_rechercherMenuCode(), remplacée par GEN_retournerIdMenuParCodeNum(). |
* |
* Revision 1.27 2006/10/16 15:50:10 ddelon |
* Refactorisation code mulitlinguisme et gestion menu invisibles |
* |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/papyrus/bibliotheque/fonctions/pap_script.fonct.php |
---|
New file |
0,0 → 1,257 |
<?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.6 2008-10-01 08:25:00 alexandre_tb 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.6 $ $Date: 2008-10-01 08:25:00 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | 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', $attributs = array()) |
{ |
if (empty($GLOBALS['_GEN_commun']['script_fichier'][$id_fichier])) { |
$GLOBALS['_GEN_commun']['script_fichier'][$id_fichier]['type'] = $type_fichier; |
$GLOBALS['_GEN_commun']['script_fichier'][$id_fichier]['chemin'] = $chemin_fichier; |
$GLOBALS['_GEN_commun']['script_fichier'][$id_fichier]['attributs'] = $attributs; |
} else { |
if (GEN_DEBOGAGE) { |
$GLOBALS['_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() |
{ |
$sortie = ''; |
$fichiers = ''; |
if (isset($GLOBALS['_GEN_commun']['script_fichier'])) { |
while (list($cle, $valeur) = each($GLOBALS['_GEN_commun']['script_fichier'])) { |
$fichiers .= str_repeat(' ', 8).'<script type="'.$valeur['type'].'" src="'.$valeur['chemin'].'"'; |
if (is_array ($valeur['attributs'])) foreach ($valeur['attributs'] as $attr => $val) $fichiers .= ' '.$attr.'="'.$val.'"'; |
$fichiers .= '></script>'."\n"; |
} |
$sortie .= $fichiers; |
} else { |
$sortie .= '<!-- Aucun script externe -->'."\n"; |
} |
$fonctions = ''; |
while (list($cle, $valeur) = each($GLOBALS['_GEN_commun']['script_fonction'])) { |
$fonctions .= $valeur; |
} |
$code = ''; |
$code = $GLOBALS['_GEN_commun']['script_code']; |
if ($fonctions != '' || $code != '') { |
$sortie .= "\n"; |
$sortie .= str_repeat(' ', 8).'<script type="'.$GLOBALS['_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; |
} |
/* |
* Ajout ou suppression des attributs de la balise BODY |
* (ex: pour Google MAPS) |
* - |
* pour supprimer un attribut, appeler la fonction avec un seul parametre. |
*/ |
function GEN_AttributsBody($nomAttribut, $valeurAttribut = NULL) |
{ |
global $_GEN_commun; |
$_GEN_commun['attributs_body'][$nomAttribut] = $valeurAttribut; |
if($valeurAttribut == NULL && isset($_GEN_commun['attributs_body'][$nomAttribut])) |
unset($_GEN_commun['attributs_body'][$nomAttribut]); |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.5 2008-08-26 15:32:57 alexandre_tb |
* ajout du parametre $attributs dans la fonction GEN_stockerFichierScript |
* |
* Revision 1.4 2007-09-06 14:45:06 neiluj |
* ajout de la balise PAPYRUS_BODY_ATTRIBUTS |
* |
* Revision 1.3 2005/02/28 11:12:03 jpm |
* Modification des auteurs. |
* |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/papyrus/bibliotheque/fonctions/pap_site.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_site.fonct.php,v 1.8 2007-04-04 15:15:22 neiluj 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.8 $ $Date: 2007-04-04 15:15:22 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | 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 site. |
* @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 GEN_lireInfoSiteI18nCodeAlpha() - 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é. |
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du site. |
* @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, $mode = DB_FETCHMODE_OBJECT) |
{ |
$requete = 'SELECT * '. |
'FROM gen_site '. |
'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($mode); |
$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.7 2006/12/08 20:15:21 jp_milcent |
* Correction bogue requete sql dans fonction GEN_lireInfoSiteI18nCodeAlpha(). |
* |
* Revision 1.6 2006/12/08 18:48:43 jp_milcent |
* Amélioration du mode de reception des données pour GEN_lireInfoSiteI18nCodeAlpha(). |
* |
* Revision 1.5 2006/10/11 18:04:11 jp_milcent |
* Gestion avancée de la réecriture d'URL. |
* |
* 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 Papyrus. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/tags/v5.0-ouadji/papyrus/bibliotheque/fonctions/pap_identification.fonct.php |
---|
New file |
0,0 → 1,165 |
<?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.6 2007-11-19 13:01:14 alexandre_tb 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.6 $ $Date: 2007-11-19 13:01:14 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +-------------------------------------------------------------------------+ |
// | 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); |
if (!is_object ($ligne)) return; |
$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 OLD_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.5.4.1 2007-11-19 12:59:29 alexandre_tb |
* suppression d un warning dans la fonction verification_mot_de_passe |
* |
* Revision 1.5 2006/12/14 10:31:04 jp_milcent |
* Modification de PASSWORD en OLD_PASSWORD pour Mysql5 |
* |
* Revision 1.4 2005/03/03 14:36:09 jpm |
* Correction orthographe. |
* |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |