/trunk/papyrus/bibliotheque/fonctions/pap_initialisation.fonct.php |
---|
New file |
0,0 → 1,120 |
<?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.1 2004-06-15 15:10:44 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.1 $ $Date: 2004-06-15 15:10:44 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE des FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction donnerIdPremiereApplicationLiee() - Renvoie l'id de la première application liée à un menu. |
* |
* Cette fonction recherche l'application liée à un 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 integer l'identifiant de la première application trouvée. |
*/ |
function donnerIdPremiereApplicationLiee($id_menu) |
{ |
global $db; |
$aso_application_info = array(); |
$requete = 'SELECT gm_ce_application, gm_application_arguments '. |
'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 = donnerIdPremiereApplicationLiee($ligne_fils->gm_id_menu); |
} |
else { |
// Gestion des erreurs sur la recherche de l'application liée. |
die('ERREUR Génésia : aucune application trouvable pour le menu demandé. <br />'. |
'Menu : '.$id_menu.'<br />'. |
'Ligne n° : '. __LINE__ . '<br />'. |
'Fichier : '. __FILE__ . '<br />'); |
} |
} |
return $aso_application_info['gm_ce_application']; |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_style.fonct.php |
---|
New file |
0,0 → 1,177 |
<?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.1 2004-06-15 15:14:32 jpm 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.1 $ $Date: 2004-06-15 15:14:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | 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; |
} else { |
die('ERREUR Génésia : cet identifiant de fichier à déjà été enregistré par GEN_stockerStyleExterne(). <br />'. |
'Identifiant : '. $id_fichier .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier : '. __FILE__); |
} |
} |
/** 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.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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_compression.fonct.php |
---|
New file |
0,0 → 1,160 |
<?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.1 2004-06-15 15:09:26 jpm 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.1 $ $Date: 2004-06-15 15:09:26 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | 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 (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return 'x-gzip'; |
if (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; |
} |
echo $donnees_decompressees; |
return true; |
} 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! |
echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; |
echo $donnees_compressees; |
} |
return true; |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_verification.fonct.php |
---|
New file |
0,0 → 1,65 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This 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_verification.fonct.php,v 1.1 2004-06-15 15:14:52 jpm Exp $ |
/** |
* Bibliothèque de fonctions de vérification. |
* |
* Liste de fonctions utilisé dans le cadre de la vérification de Papyrus. |
* |
*@package Papyrus |
*@subpackage Fonctions |
//Auteur original : |
*@author Laurent COUDOUNEAU <lc@gsite.org> |
//Autres auteurs : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2004-06-15 15:14:52 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/**Fonction GEN_envoyerMessageErreur() - Envoie un message d'erreur et arrête le programme. |
* |
* Cette fonction renvoie un message d'erreur, dont les caractères spéciaux sont |
* transformés en entités HTML, et termine l'execution du programme. |
* |
* @param string un message d'erreur. |
* @return void arrête du programme avec envoie du message via la fonction exit(). |
*/ |
function GEN_envoyerMessageErreur($message) |
{ |
exit('<strong>'.htmlentities($message).'</strong>'); |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.1 2004/04/08 13:23:55 jpm |
* Ajout de la bibliothèque de fonction à utiliser dans le cadre de la gestion des erreurs. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_menu.fonct.php |
---|
New file |
0,0 → 1,421 |
<?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.1 2004-06-15 15:11:37 jpm 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 Laurent COUDOUNEAU <laurent.coudouneau@ema.fr> |
//Autres auteurs : |
*@author Alexandre GRANIER <alexadandre@tela-botanica.org> |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2004-06-15 15:11:37 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE des FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction GEN_donnerProfondeurMax() - Renvoie le nombre de niveau de menu. |
* |
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant |
* l'arbre des menus jusqu'au feuilles. |
* Ici on l'utilise en passant l'argument égal à zéro c'est à dire |
* en partant du menu racine d'un site gmr_id_menu_02 = 0. |
* C'est une fonction récursive. |
* Noter que la variable $prof est statique. |
* |
* @param integer identifiant du site sur lequel la profondeur est calculé. |
* @param integer identifiant du menu à partir delaquelle on souhaite calculer la profondeur. |
* @return integer le nombre de niveau de menu. |
*/ |
function GEN_donnerProfondeurMax($id_site, $id_menu) |
{ |
global $db; |
static $prof = 0; |
// Requête sur les relations de type "avoir père" entre menus |
$requete = 'SELECT gmr_id_menu_01 '. |
'FROM gen_menu, gen_menu_relation '. |
'WHERE gmr_id_menu_02 = '.$id_menu.' '. |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gm_ce_site = '.$id_site.' '. |
'AND gmr_id_valeur = 1 '. |
'ORDER BY gmr_ordre ASC'; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
if ($resultat->numRows() == 0) { |
return $prof; |
} |
$prof++; |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) { |
$prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01); |
} |
return $prof; |
} |
/** Fonction GEN_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). |
* 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) |
{ |
// 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 ($ligne->gmr_id_menu_02 == 0) { |
return false; |
} |
elseif ($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 |
* @return mixed l'identifiant du père,ou false en cas d'erreur. |
*/ |
function GEN_lireIdentifiantMenuPere($id_menu) |
{ |
global $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->query($requete) ; |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
//if ($resultat->numRows() != 1) { |
// return false; |
//} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat->free(); |
return $ligne->gmr_id_menu_02; |
} |
/** 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, $menuid, $mode = DB_FETCHMODE_OBJECT) |
{ |
//---------------------------------------------------------------------------- |
// Recherche des informations sur le menu |
$requete = 'SELECT * '. |
'FROM gen_menu '. |
'WHERE gm_id_menu = '.$menuid; |
$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_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation |
* |
* Par défaut recherch 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 n 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; |
} |
// +------------------------------------------------------------------------------------------------------+ |
// A NORMALISER !!! |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction niveau_menu() - Renvoie le niveau d'un menu. |
* |
* Fournit le niveau d'un menu dans l'arbre des menus d'un site |
* donné. |
* C'est une fonction récursive. |
* |
* @param integer l'identifiant du site du menu. |
* @param integer l'identifiant de la langue du site du menu. |
* @param integer l'identifiant d'un menu. |
* @return integer le niveau d'un menu. |
*/ |
function niveau_menu($id_site, $id_langue, $id_menu) |
{ |
global $db ; |
static $niveau = 1; |
$requete = 'SELECT gm_ce_menu_pere '. |
'FROM gen_menu '. |
'WHERE gm_id_menu = '.$id_menu.' '. |
'AND gm_id_i18n = "'.$id_langue.'" '. |
'AND gm_id_site = '.$id_site; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
if ($resultat->numRows() == 0) { |
return $niveau; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
if ($ligne->gm_ce_menu_pere == 0) { |
$niveau++; |
$niveau = niveau_menu($id_site, $id_langue, $ligne->gm_ce_menu_pere); |
} |
return $niveau; |
} |
/** Fonction id_ancetre_niveau() - Renvoie l'identifiant de l'ancetre de niveau $niveau |
* |
* Renvoie l'identifiant de l'ancetre de niveau $niveau. |
* C'est une fonction récursive. |
* |
* @param integer identifiant du site du menu dont on cherche l'ancètre. |
* @param integer identifiant de la langue du site du menu dont on cherche l'ancètre. |
* @param integer identifiant du menu dont on cherche l'ancètre. |
* @param integer niveau souhaité. |
* @return integer identifiant de l'ancètre cherché. |
*/ |
function id_ancetre_niveau($id_site, $id_langue, $id_menu, $niveau) |
{ |
global $db; |
static $id_et_niveau = array(); |
$requete = 'SELECT gp_ce_page_pere '. |
'FROM gen_page '. |
'WHERE gp_id_page = '.$id_page; |
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
if ($ligne->gm_ce_menu_pere != 0) { |
array_push ($id_et_niveau, $ligne->gm_ce_menu_pere); |
} else { |
return array_pop($id_et_niveau); |
} |
$resultat->free(); |
return id_ancetre_niveau($id_site, $id_langue, $ligne->gm_ce_menu_pere, $niveau); |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log: not supported by cvs2svn $ |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_script.fonct.php |
---|
New file |
0,0 → 1,219 |
<?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.1 2004-06-15 15:13:07 jpm Exp $ |
/** |
* Les fonctions permettant d'inclure des scripts. |
* |
* Ces fonctions permettent d'inclure des scripts, éxécuté côté client, directement dans les pages |
* des applications. Elles peuvent donc être appelées par les applications |
* intégrées à Génésia. Par défaut, c'est le Javascript qui est conscidéré commé utilisé. |
* |
*@package Papyrus |
*@subpackage Fonctions |
//Auteur original : |
*@author Laurent COUDOUNEAU <lc@gsite.org> |
//Autres auteurs : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2004-06-15 15:13:07 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction GEN_modifierTypeScript() - Permet de stocker le type des scripts. |
* |
* Génésia 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. |
* |
* Génésia 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 { |
die('ERREUR Génésia : 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 Génésia. |
* |
* @global array "script_fichier" : utilisé pour stocker les chemins des scripts. |
* @param string la clé du tableau de fichiers, par exemple le nom du fichier à insérer. |
* @param string le chemin complet du fichier à insérer. |
* @param string le type MIME du langage de script utilisé dans le fichier à insérer. |
* @return void le chemin du fichier est stocké dans une variable (tableau associatif) globale. |
*/ |
function GEN_stockerFichierScript($id_fichier, $chemin_fichier, $type_fichier = 'text/javascript') |
{ |
global $_GEN_commun; |
if (empty($_GEN_commun['script_fichier'][$id_fichier])) { |
$_GEN_commun['script_fichier'][$id_fichier]['type'] = $type_fichier; |
$_GEN_commun['script_fichier'][$id_fichier]['chemin'] = $chemin_fichier; |
} else { |
die('ERREUR Génésia : cet identifiant de fichier à déjà été enregistré par GEN_stockerFichierJavascript(). <br />'. |
'Identifiant : '. $id_fichier .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier : '. __FILE__); |
} |
} |
/** Fonction GEN_afficherScript() - Permet de renvoyer les scripts. |
* |
* Cette fonction récupère les scripts stockés dans les variables globales de Papyrus |
* et le retourne formaté pour l'affichage dans l'entête du squelette du site. |
* C'est la balise Papyrus <!-- SCRIPTS --> qui permet de situer l'endroit où afficher |
* les script. |
* |
* @global array "script_fichier" : utilisé pour stocker les chemins des scripts, |
* "script_fonction" : utilisé pour stocker le code des fontions et "script_code" : |
* utilisé pour stocker le code des script. |
* @return string le code XHTML contenant les scripts à insérer dans l'entête. |
*/ |
function GEN_afficherScript() |
{ |
global $_GEN_commun; |
$sortie = ''; |
$fichiers = ''; |
if (isset($_GEN_commun['script_fichier'])) { |
while (list($cle, $valeur) = each($_GEN_commun['script_fichier'])) { |
$fichiers .= str_repeat(' ', 8).'<script type="'.$valeur['type'].'" src="'.$valeur['chemin'].'" ></script>'."\n"; |
} |
$sortie .= $fichiers; |
} else { |
$sortie .= '<!-- Aucun script externe -->'."\n"; |
} |
$fonctions = ''; |
while (list($cle, $valeur) = each($_GEN_commun['script_fonction'])) { |
$fonctions .= $valeur; |
} |
$code = ''; |
$code = $_GEN_commun['script_code']; |
if ($fonctions != '' || $code != '') { |
$sortie .= "\n"; |
$sortie .= str_repeat(' ', 8).'<script type="'.$_GEN_commun['script_type'].'">'."\n"; |
$sortie .= str_repeat(' ', 12).'<!--/*--><![CDATA[//><!--'."\n"; |
$sortie .= $fonctions."\n"; |
$sortie .= $code."\n"; |
$sortie .= str_repeat(' ', 12).'//--><!]]>'."\n"; |
$sortie .= str_repeat(' ', 8).'</script>'; |
} else { |
$sortie .= '<!-- Aucun script intégré -->'."\n"; |
} |
return $sortie; |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_site.fonct.php |
---|
New file |
0,0 → 1,125 |
<?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.1 2004-06-15 15:13:37 jpm 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.1 $ $Date: 2004-06-15 15:13:37 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** 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. |
* @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) |
{ |
$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(DB_FETCHMODE_OBJECT); |
$resultat->free(); |
return $info_site_principal; |
} |
/** Fonction getSiteI18nInfos() - Renvoie un objet contenant une ligne de la table gen_site |
* |
* Retourne la ligne de la table gen_site concernant un site ayant pour code alphanumérique et identifiant |
* i18n les valeurs passées en paramètres. |
* Ancien nom :getSiteI18nInfos(): |
* |
* @param mixed une instance de la classse Pear DB. |
* @param string le code alphanumérique du site recherché. |
* @param string l'identifiant i18n possédé par le site recherché. |
* @return mixed un objet résultat de Pear DB contenant une ligne de la table gen_site, ou false en cas d'erreur. |
*/ |
function GEN_lireInfoSiteI18nCodeAlpha($objet_pear_db, $code_alpha, $i18n) |
{ |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gs_code_alpha = "'.$code_alpha.'" '. |
'AND gs_ce_i18n = "'.$i18n.'" '; |
$resultat = $objet_pear_db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
if ($resultat->numRows() != 1) { |
return false; |
} |
$info_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat->free(); |
return $info_site; |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.1 2004/05/03 16:26:07 jpm |
* Ajout de la bibliothèque de fonctions permettant de manipuler les informations issues des tables "gen_site_..." de Génésia. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_meta.fonct.php |
---|
New file |
0,0 → 1,196 |
<?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.1 2004-06-15 15:12:12 jpm 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.1 $ $Date: 2004-06-15 15:12:12 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction GEN_stockerMetaHttpEquiv() - Permet de stocker des informations Http-Equiv. |
* |
* Génésia 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 Génésia. |
* |
* @global array "meta_http_equiv" : utilisé pour stocker les informations des meta contenant l'attribut http-equiv. |
* @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) |
{ |
global $_GEN_commun; |
if (empty($_GEN_commun['meta_http_equiv'][$id_http_equiv])) { |
$_GEN_commun['meta_http_equiv'][$id_http_equiv] = $content; |
} else { |
die('ERREUR Génésia : cette balise meta à déjà été enregistré par GEN_stockerMetaHttpEquiv(). <br />'. |
'Identifiant : '. $id_http_equiv .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier : '. __FILE__); |
} |
} |
/** Fonction GEN_stockerMetaName() - Permet de stocker des informations pour la balise meta. |
* |
* Génésia 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 Génésia. |
* |
* @global array "meta_name" : utilisé pour stocker les informations des meta contenant l'attribut name. |
* @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) |
{ |
global $_GEN_commun; |
if (empty($_GEN_commun['meta_name'][$id_name])) { |
$_GEN_commun['meta_name'][$id_name] = $content; |
} else { |
die('ERREUR Génésia : cette balise meta à déjà été enregistré par GEN_stockerMetaName(). <br />'. |
'Identifiant : '. $id_name .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier : '. __FILE__); |
} |
} |
/** Fonction GEN_stockerMetaNameDC() - Permet de stocker des informations Dublin Core pour la balise meta. |
* |
* Génésia 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 Génésia. |
* |
* @global array "meta_name_dc" : utilisé pour stocker les informations des meta contenant l'attribut name. |
* @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 = '') |
{ |
global $_GEN_commun; |
if (empty($_GEN_commun['meta_name_dc'][$id_name])) { |
$_GEN_commun['meta_name_dc'][$id_name]['contenu'] = $content; |
$_GEN_commun['meta_name_dc'][$id_name]['langue'] = $lang; |
$_GEN_commun['meta_name_dc'][$id_name]['scheme'] = $scheme; |
} else { |
die('ERREUR Génésia : cette balise meta à déjà été enregistré par GEN_stockerMetaNameDC(). <br />'. |
'Identifiant : '. $id_name .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier : '. __FILE__); |
} |
} |
/** Fonction GEN_afficherMeta() - Permet d'afficher les meta informations. |
* |
* Cette fonction affiche les meta informations Http-Equiv stockées |
* dans une variable (tableau associatif) globale utilisée par Génésia. |
* |
* @global array "meta_http_equiv" : utilisé pour stocker les informations des meta contenant l'attribut http-equiv |
* et "meta_name" : utilisé pour stocker les informations des meta contenant l'attribut name. |
* @param string le type de balise meta à afficher (http-equiv, name, dc). |
* @return void les informations sont stockées dans une variable (tableau associatif) globale. |
*/ |
function GEN_afficherMeta($type = 'name') |
{ |
global $_GEN_commun; |
$sortie = ''; |
if ($type == 'http-equiv' && isset($_GEN_commun['meta_http_equiv'])) { |
while (list($cle, $valeur) = each($_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($_GEN_commun['meta_name'])) { |
while (list($cle, $valeur) = each($_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($_GEN_commun['meta_name_dc'])) { |
while (list($cle, $valeur) = each($_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; |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.1 2004/04/20 15:24:54 jpm |
* Ajout de la bibliotheque de fonctions gérant les meta. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/fonctions/pap_identification.fonct.php |
---|
New file |
0,0 → 1,146 |
<?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.1 2004-06-15 15:10:15 jpm Exp $ |
/** |
* Bibliothèque de fonctions d'identification de Papyrus. |
* |
* Ce paquetage contient des fonctions d'identifiacation pour différents besoin |
* de Papyrus. |
* |
*@package Papyrus |
*@subpackage Fonctions |
//Auteur original : |
*@author Alexandre GRANIER <alex@tela-botanica.org> |
//Autres auteurs : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2004-06-15 15:10:15 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +-------------------------------------------------------------------------+ |
// | 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 mis à 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 abscente.'; |
$res .= str_repeat(' ', 12).'</p>'."\n"; |
return $res; |
} |
/** Fonction verification_mot_de_passe() - Met à jour les mots de passe vers le cryptage MD5. |
* |
* Cette fonction permet de mettre à jour en douceur l'annuaire des inscrits à Tela Botanica. |
* Les mots de passe anciennement crypté avec la fonction password de Mysql sont progressivement |
* passé en cryptage MD5. |
* |
* @param mixed l'objet de Pear DB permettant la connexion à la base de données. |
* @param string le mot de passe non crypté de l'utilisateur. |
* @param string le login de l'utilisateur. |
* @return void une requête modifie la base de données. |
*/ |
function verification_mot_de_passe($objet_pear_db, $password, $username) |
{ |
// Requête pour la taille du champs mot de passe pour l'individu |
$requete = 'SELECT U_PASSWD, LENGTH(U_PASSWD) AS longueur '. |
'FROM annuaire_tela '. |
'WHERE U_MAIL = "'.$username.'"' ; |
$resultat = $objet_pear_db->query($requete) ; |
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ; |
$longueur = $ligne ->longueur ; |
$mot_de_passe_crypte = $ligne->U_PASSWD ; |
unset ($ligne) ; |
$resultat->free() ; |
if ($longueur == 16) { |
// Le couple login / mot de passe est-il bon ? |
$requete = 'SELECT PASSWORD("'.$password.'")' ; |
$resultat = $objet_pear_db->query($requete) ; |
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
$ligne = $resultat->fetchRow(DB_FETCHMODE_ORDERED) ; |
$resultat->free() ; |
// Est-ce que le mot de passe est bon ? |
if ($ligne[0] == $mot_de_passe_crypte) { |
// On met à jour le champs de U_PASSWD pour le mettre en md5 |
$requete = 'UPDATE annuaire_tela '. |
'SET U_PASSWD = "'.md5($password).'" '. |
'WHERE U_MAIL = "'.$username.'"' ; |
$resultat = $objet_pear_db->query($requete) ; |
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
} |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log: not supported by cvs2svn $ |
* Revision 1.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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/papyrus/bibliotheque/autres/fonctions.php |
---|
New file |
0,0 → 1,634 |
<?php |
// 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 |
//------------------------------------------------------------------------------ |
//============================================================================== |
// gs_hex2bin ($data) |
// $data : hex data (string) to be converted to binary. |
// |
// Convert hex value into binary value. |
//============================================================================== |
function gs_hex2bin ($data) { |
$len = strlen ($data); |
return pack ("H$len", $data); |
} |
//============================================================================== |
// gs_localizeTimestamp ($ts, $locale) |
// $ts : unix time stamp |
// $locale : locale code |
// |
// Convert an unix time stamp in respect with locale (en, fr, sp). |
//============================================================================== |
function gs_localizeTimestamp ($ts, $locale) { |
$format = 'Y/m/d H:m:s'; |
if ($locale == 'fr') $format = 'd/m/Y H:m:s'; |
if ($locale == 'sp') $format = 'd/m/Y H:m:s'; |
return date ($format, $ts); |
} |
//============================================================================== |
// gs_localizeDate ($date, $locale) |
// $date : date (MySQL format: YYYY-MM-DD) |
// $locale : locale code |
// |
// Convert a MySQL date in respect with locale (en, fr, sp). |
//============================================================================== |
function gs_localizeDate ($date, $locale) { |
$dateArray = explode ('-', $date); |
$y = $dateArray[0]; |
$m = $dateArray[1]; |
$d = $dateArray[2]; |
if ($locale == 'en') return "$y/$m/$d"; |
if ($locale == 'fr') return "$d/$m/$y"; |
if ($locale == 'sp') return "$d/$m/$y"; |
return $date; |
} |
//============================================================================== |
// gs_localizeDateTime ($date, $locale) |
// $datetime : datetime field (MySQL format: YYYY-MM-DD HH:MM:SS) |
// $locale : locale code |
// |
// Convert a MySQL date in respect with locale (en, fr, sp). |
//============================================================================== |
function gs_localizeDateTime ($datetime, $locale) { |
$date = substr ($datetime, 0, 10); |
$time = substr ($datetime, 11, 8); |
return gs_localizeDate ($date, $locale).' - '.$time; |
} |
//============================================================================== |
// gs_localizeDate2MySQL ($date, $locale) |
// $date : date (following locale) |
// $locale : locale code |
// |
// Convert a date to MySQL format in respect with locale (en, fr, sp). |
//============================================================================== |
function gs_localizeDate2MySQL ($date, $locale) { |
$dateArray = explode ('/', $date); |
if ($locale == 'en') return "$dateArray[0]-$dateArray[1]-$dateArray[2]"; |
if ($locale == 'fr') return "$dateArray[2]-$dateArray[1]-$dateArray[0]"; |
if ($locale == 'sp') return "$dateArray[2]-$dateArray[1]-$dateArray[0]"; |
return $date; |
} |
//============================================================================== |
// gs_getLabel ($db, $link, $ident, $locale, $appl, $entities) |
// $db : database name |
// $link : database link |
// $ident : label name |
// $locale : locale code |
// $appl : application name |
// $entities : htmlentities transformation ? |
// |
// Get localized label. If the label appears into a JavaScript string, $entities |
// MUST be false. |
//============================================================================== |
function gs_getLabel ($dbname, $link, $ident, $locale, $appl = '', $entities = true) { |
static $labelsCache = array (); |
$tag = "$ident $locale $appl"; |
if (isset ($labelsCache[$tag])) { |
return ($entities ? htmlentities ($labelsCache[$tag]) : $labelsCache[$tag]); |
} |
$query = |
"select L_TRANSLATION from $dbname.LABELS". |
" where L_IDENT='$ident' and L_LOCALE='$locale' and L_APPL='$appl'"; |
$result = mysql_query ($query, $link); |
if (! $result) { |
die ("Unable to perform query ($query / " . mysql_error ($link) . ")"); |
} |
if (mysql_num_rows ($result) == 0) { |
mysql_free_result ($result); |
return "($ident)"; |
} |
$row = mysql_fetch_object ($result); |
mysql_free_result ($result); |
$labelsCache[$tag] = $row->L_TRANSLATION; |
return ($entities ? htmlentities ($row->L_TRANSLATION) : $row->L_TRANSLATION); |
} |
//============================================================================== |
// gs_buildControlAndPages ($db, $link, $locale, $url, $first, $max, $numItems, |
// $noResponse, $oneResponse, $responses, |
// $width, $style, $imgdir) |
// $db : database name |
// $link : database link |
// $locale : locale code |
// $url : URL to show datas, without first and max limits |
// $first : in the result set, the index of the first item to show |
// $max : max count of results by page |
// $numItems : results count |
// $noResponse : label (if no responses) |
// $oneResponse : label (if only one response) |
// $responses : label (if more than one response) |
// $width : table widh (if equal to zero, 100%) |
// $style : style used into the images control cells |
// $imgdir : the image set used for the control buttons |
// |
// Generation of control buttons (first, previous, next, last) and pages numbers |
// (search result, for example). |
//============================================================================== |
function gs_buildControlAndPages ($db, $link, $locale, |
$url, |
$first, $max, $numItems, |
$noResponse = null, |
$oneResponse = null, |
$responses = null, |
$width = null, |
$style = null, |
$imgdir = null, |
$appl = 'gsite') { |
//---------------------------------------------------------------------------- |
// Manage default values. |
if (empty ($noResponse)) $noResponse = 'ctrl_no_response'; |
if (empty ($oneResponse)) $oneResponse = 'ctrl_one_response'; |
if (empty ($responses)) $responses = 'ctrl_responses'; |
if (empty ($width)) $width = '100%'; |
if (empty ($style)) $style = 'line'; |
if (empty ($imgdir)) $imgdir = 'dft'; |
//---------------------------------------------------------------------------- |
// Build style. |
global $GS_GLOBAL; |
$STYLErow = $GS_GLOBAL['style_row']; |
$fontStyle = |
"font-family:$STYLErow->S_FONT_FAMILY;". |
"font-size:$STYLErow->S_FONT_SIZE_SMALL;". |
"color:$STYLErow->S_COLOR_TEXT;". |
"font-style:normal;". |
"font-weight:bold;"; |
$anchorStyle = ""; |
// "text-decoration:none;". |
// "color:$STYLErow->S_COLOR_TEXT;"; |
//---------------------------------------------------------------------------- |
// Get labels. |
$pageLabel = gs_getLabel ($db, $link, 'ctrl_page', $locale, $appl); |
$numresLabel0 = gs_getLabel ($db, $link, $noResponse, $locale, $appl); |
$numresLabel1 = gs_getLabel ($db, $link, $oneResponse, $locale, $appl); |
$numresLabel = gs_getLabel ($db, $link, $responses, $locale, $appl); |
//---------------------------------------------------------------------------- |
// Build labels, switch number of results. |
$responses = ''; |
if ($numItems == 0) { |
$responses = $numresLabel0; |
} else if ($numItems == 1) { |
$responses = $numresLabel1; |
} else { |
$responses = $numresLabel.' : '.$numItems; |
} |
//---------------------------------------------------------------------------- |
// Build pages count. |
if ($numItems > $max) { |
//-- More than one page. |
$count = $pageLabel.' :'; |
$pgcount = 1; |
//-- For all sets of items. |
$current = 0; |
$blockArray = array (); |
for ($i = 0; $i < $numItems; $i += $max) { |
if ($first == $i) { |
//-- This is the current set. |
$current = $pgcount; |
$tag = '['.$pgcount.']'; |
} else { |
//-- Another set: [$i, $i+$max] |
$href = $url.'&first='.$i.'&max='.$max; |
$tag = ('<A href="'.$href.'" style="'.$anchorStyle.'">'.$pgcount.'</A>'); |
} |
$blockArray[$pgcount] = $tag; |
$pgcount++; |
} |
$firstTag = ($current - 5 > 0 ? $current - 5 : 1); |
$lastTag = $firstTag + 10; |
if ($firstTag > 1) $count .= ' ... '; |
while (list ($k, $v) = each ($blockArray)) { |
if (($k >= $firstTag) && ($k <= $lastTag)) { |
$count .= ' '.$v; |
} |
} |
if ($lastTag + 1 < $pgcount) $count .= ' ... '; |
} else { |
//-- Zero or one page. |
$count = ' '; |
} |
//---------------------------------------------------------------------------- |
// Build table. |
$str = ''; |
$str .= "\n".' <TABLE width="'.$width.'" border="0" cellspacing="0" cellpadding="0" summary="">'; |
$str .= "\n".' <TR>'; |
$str .= "\n".' <TD width="25%" align="left">'.gs_buildControl ($url, $first, $max, $numItems, $style, $imgdir).'</TD>'; |
$str .= "\n".' <TD width="50%" align="center"><SPAN style="'.$fontStyle.'">'.$responses.'</SPAN></TD>'; |
$str .= "\n".' <TD width="25%" style="'.$fontStyle.'" align="right"><SPAN style="'.$fontStyle.'">'.$count.'</SPAN></TD>'; |
$str .= "\n".' </TR>'; |
$str .= "\n".' </TABLE>'; |
return $str; |
} |
//============================================================================== |
// gs_buildControl ($url, $first, $max, $numItems, $style = 'line', $imgdir = 'dft') |
// $url : URL to show datas, without first and max limits |
// $first : in the result set, the index of the first item to show |
// $max : max count of results by page |
// $numItems : results count |
// $style : style used into the images control cells |
// $imgdir : the image set used for the control buttons |
// |
// Generation of control buttons (first, previous, next, last) for search |
// result, for example. |
//============================================================================== |
function gs_buildControl ($url, |
$first, $max, $numItems, |
$style = 'line', |
$imgdir = 'dft') { |
//---------------------------------------------------------------------------- |
// Compute index of last set. |
if ($numItems == 0) { |
$last = 0; |
} else { |
$last = ($numItems % $max == 0 ? |
((int)($numItems / $max) - 1) * $max : |
((int)($numItems / $max)) * $max); |
} |
//---------------------------------------------------------------------------- |
// Build infos for gs_control. |
$ctrlParam = array ( |
'style' => $style, |
'imgdir' => $imgdir, |
'begin' => $url.'&first=0&max='.$max, |
'last' => $url.'&first='.$last.'&max='.$max |
); |
if ($first > 0) { |
$ctrlParam['prev'] = $url.'&first='.($first - $max).'&max='.$max; |
} |
if ($first + $max < $numItems) { |
$ctrlParam['next'] = $url.'&first='.($first + $max).'&max='.$max; |
} |
//---------------------------------------------------------------------------- |
// Build control. |
return gs_control ($ctrlParam); |
} |
//============================================================================== |
// gs_control ($param) |
// $param : (...) |
// |
// Dump a table containing images for first, prev, next, last navigation, |
// according to $param parameters array. |
// |
// $param is an array, with the following items: |
// - style : style used for the table cells |
// - imgdir : the directory of the control images set (Local/controls/$imgdir) |
// - begin : URL to the first set |
// - prev : URL to the previous set |
// - next : URL to the next set |
// - last : URL to the last set |
//============================================================================== |
function gs_control ($param) { |
$imgdir = (empty ($param['imgdir']) ? 'dft' : $param['imgdir']); |
$icon1 = "Local/controls/$imgdir/01$imgdir.gif"; |
$icon2 = "Local/controls/$imgdir/02$imgdir.gif"; |
$icon3 = "Local/controls/$imgdir/03$imgdir.gif"; |
$icon4 = "Local/controls/$imgdir/04$imgdir.gif"; |
$icon5 = "Local/controls/$imgdir/05$imgdir.gif"; |
$icon6 = "Local/controls/$imgdir/06$imgdir.gif"; |
$beginImg = '<IMG src="'.$icon2.'" border="0" alt="">'; |
$prevImg = '<IMG src="'.$icon3.'" border="0" alt="">'; |
$nextImg = '<IMG src="'.$icon4.'" border="0" alt="">'; |
$lastImg = '<IMG src="'.$icon5.'" border="0" alt="">'; |
$style = (empty ($param['style']) ? '' : ' class="'.$param['style'].'"'); |
$beginImg = (empty ($param['begin']) ? $beginImg : '<A href="'.$param['begin'].'">'.$beginImg.'</A>'); |
$prevImg = (empty ($param['prev']) ? $prevImg : '<A href="'.$param['prev'].'">'.$prevImg.'</A>'); |
$nextImg = (empty ($param['next']) ? $nextImg : '<A href="'.$param['next'].'">'.$nextImg.'</A>'); |
$lastImg = (empty ($param['last']) ? $lastImg : '<A href="'.$param['last'].'">'.$lastImg.'</A>'); |
$str = ''; |
$str .= "\n".'<TABLE border="0" cellspacing="0" cellpadding="0" summary="">'; |
$str .= "\n".' <TR>'; |
$str .= "\n".' <TD><IMG src="'.$icon1.'" border="0" alt=""></TD>'; |
$str .= "\n".' <TD'.$style.'>'.$beginImg.'</TD>'; |
$str .= "\n".' <TD'.$style.'>'.$prevImg.'</TD>'; |
$str .= "\n".' <TD'.$style.'>'.$nextImg.'</TD>'; |
$str .= "\n".' <TD'.$style.'>'.$lastImg.'</TD>'; |
$str .= "\n".' <TD><IMG src="'.$icon6.'" border="0" alt=""></TD>'; |
$str .= "\n".' </TR>'; |
$str .= "\n".'</TABLE>'; |
return $str; |
} |
//============================================================================== |
// gs_buildOptionInVar ($db, $link, $query, $current, $valueFieldName, $labelFieldName, $locale, $appl, $isLabel) |
// $db : database name |
// $link : database link |
// $query : query to perform |
// $current : current expected value of the select (option SELECTED) |
// $valueFieldName : in the query, the field name of the value |
// $labelFieldName : in the query, the field name of the text |
// $locale : current locale, in case of labelled text |
// $name : name of application, for labels |
// $isLabel : true if $labelFieldName field is a label name. |
// |
// According to the result of the query $query, build SELECT options. The result |
// is a string. |
//============================================================================== |
function gs_buildOptionInVar ($db, $query, $current, $valueFieldName, $labelFieldName, $locale = '', $appl= '', $isLabel = false) { |
//---------------------------------------------------------------------------- |
// Perform query. |
$res = $db->query ($query); |
if (DB::isError($res)) { |
die ("Unable to perform query ($query / " . $res->getMessage() . ")"); |
} |
//---------------------------------------------------------------------------- |
// Build options. |
$str = ''; |
while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
//-- Option label. If $isLabel is true, the field named $labelFieldName is |
//-- used as a label. Otherwise, it's only a string. |
$label = htmlentities ($row[$labelFieldName]); |
//-- The value: field $valueFieldName of the result set. |
$value = $row[$valueFieldName]; |
//-- If the value if equal to $current, this option is selected. |
$selected = ($current == $value ? ' selected' : ''); |
//-- Build option. |
$str .= "\n".'<OPTION value="'.$value.'"'.$selected.'>'.$label.'</OPTION>'; |
} |
$res->free(); |
return $str; |
} |
//============================================================================== |
// gs_localePutLanguagesFlagsInVar ($dbname, $dblink, $project) |
// $dbname : database name |
// $dblink : database link |
// $project : project name |
// |
// Dump array of flags, one for each language supported by the project. |
// Images are taken from Local/flags directory. |
//============================================================================== |
function gs_localePutLanguagesFlagsInVar ($dbname, $dblink, $project) { |
//---------------------------------------------------------------------------- |
// List of all the languages supported by project. |
$query = |
"select * from $dbname.LOCALE, $dbname.LOCALE_PRJ". |
" where LP_PROJECT='$project' and LP_CODE=L_CODE". |
" order by LP_ORDER"; |
$result = mysql_query ($query, $dblink); |
if (! $result) { |
die ("Unable to perform query (" . mysql_error ($dblink) . ")"); |
} |
//---------------------------------------------------------------------------- |
// Only one language ? Do nothing. |
if (mysql_num_rows ($result) <= 1) { |
mysql_free_result ($result); |
return; |
} |
//---------------------------------------------------------------------------- |
// Dump array of flags. |
$outputText = ''; |
$outputText .= "\n".'<TABLE summary="" cellspacing="3" cellpadding="0" border="0">'; |
$outputText .= "\n".' <TR>'; |
while ($row = mysql_fetch_object ($result)) { |
//-------------------------------------------------------------------------- |
// The flags images are taken from Local/flags. |
$url = "index.php?project=$project&locale=$row->LP_CODE"; |
$img = "Local/flags/$row->L_FLAG"; |
$alt = htmlentities ($row->L_DESCRIPTION); |
$outputText .= "\n".'<TD>'; |
$outputText .= '<A target="_top" href="'.$url.'">'; |
$outputText .= '<IMG border="0" src="'.$img.'" alt="'.$alt.'">'; |
$outputText .= '</A>'; |
$outputText .= '</TD>'; |
} |
$outputText .= "\n".' </TR>'; |
$outputText .= "\n".'</TABLE>'; |
mysql_free_result ($result); |
return $outputText; |
} |
//============================================================================== |
// FUNCTION gs_putAmount ($frf, $euro) |
// |
// Convert an amount into euro. |
// |
// NOTE: must be move into project module. |
//============================================================================== |
function gs_putAmount ($frf, $euro) { |
if ($euro == 0) { |
$euro = $frf / 6.55957; |
$euro = (round ($euro * 100)) / 100; |
} |
if ($euro == 0) return ' '; |
if ($euro >= 150000) return 'A ( >= 150 000 € )'; |
if ($euro >= 45000) return 'B ( < 150 000 €, >= 45 000 € )'; |
if ($euro >= 15000) return 'C ( < 45 000 €, >= 15 000 € )'; |
return 'D ( < 15 000 €)'; |
} |
/** function includeFile () Inclue des fichiers en essayant dans divers lieux |
* |
* @param mixed Un tableau contenant les fichiers à inclure |
* @param string Un message d'erreur |
* return boolean true en cas de succès |
*/ |
function includeFile($incFiles, $msg) { |
if (! isset ($incFiles)) die ('Bad include path'); |
if (! is_array ($incFiles)) die ('Bad include path'); |
$searchPath = ''; |
for ($i = 0; $i < count ($incFiles); $i++) { |
$searchPath .= $incFiles[$i].'<BR>'."\n"; |
if (file_exists ($incFiles[$i])) { |
include_once ($incFiles[$i]); |
return; |
} |
} |
die ("$msg<BR>\nSearch path:<BR>\n$searchPath"); |
} |
//============================================================================== |
// FUNCTION gs_getUser ($db, $link, $annu, $userid) |
// |
// Returns an array with user informations. |
//============================================================================== |
function gs_getUser ($db, $link, $annu, $userid) { |
$query = |
"select * from $db.annu_USERS". |
" where U_ID=$userid". |
" and U_ANNU_NAME='$annu'"; |
$result = mysql_query ($query, $link); |
if (! $result) { |
die ("Unable to perform query ($query / " . mysql_error ($link) . ")"); |
} |
$row = mysql_fetch_object ($result); |
if (! $row) return false; |
$userInfo['login'] = $row->U_LOGIN; |
$userInfo['name'] = $row->U_NAME; |
$userInfo['surname'] = $row->U_SURNAME; |
$userInfo['row'] = $row; |
mysql_free_result ($result); |
return $userInfo; |
} |
//============================================================================== |
//============================================================================== |
//============================================================================== |
//============================================================================== |
//============================================================================== |
// FUNCTION messageTo ($project, $locale, $to) |
// |
// Dump an icon to send a message. |
//============================================================================== |
function messageTo ($project, $locale, $to) { |
$args = "'$project', '$locale', $to"; |
$icon = '<IMG src="Local/icons/newmsg.gif" alt="" width="16" height="16" border="0">'; |
return |
'<A href="javascript:openMessenger ('.$args.')">'. |
$icon. |
'</A>'; |
} |
//============================================================================== |
//============================================================================== |
function gs_print ($item) { |
ob_start (); |
print_r ($item); |
$p = ob_get_contents (); |
ob_end_clean (); |
echo '<PRE>'.htmlentities ($p).'</PRE>'; |
} |
//============================================================================== |
?> |