New file |
0,0 → 1,119 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 5.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2006 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | Ce logiciel est un programme informatique servant à gérer du contenu et des applications web. | | |
// | | |
// | Ce logiciel est régi par la licence CeCILL soumise au droit français et respectant les principes de | |
// | diffusion des logiciels libres. Vous pouvez utiliser, modifier et/ou redistribuer ce programme sous | |
// | les conditions de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA sur le site | |
// | "http://www.cecill.info". | |
// | | |
// | En contrepartie de l'accessibilité au code source et des droits de copie, de modification et de | |
// | redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie limitée. | |
// | Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du programme, le | |
// | titulaire des droits patrimoniaux et les concédants successifs. | |
// | | |
// | A cet égard l'attention de l'utilisateur est attirée sur les risques associés au chargement, à | |
// | l'utilisation, à la modification et/ou au développement et à la reproduction du logiciel par | |
// | l'utilisateur étant donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler | |
// | et qui le réserve donc à des développeurs et des professionnels avertis possédant des connaissances | |
// | informatiques approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation | |
// | du logiciel à leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes | |
// | et ou de leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions | |
// | de sécurité. | |
// | | |
// | Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris connaissance de la | |
// | licence CeCILL, et que vous en avez accepté les termes. | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: pap_rendu.class.php,v 1.1 2006-12-01 16:36:07 florian Exp $ |
/** |
* Classe : pap_rendu |
* |
* Fournit des méthodes pour le rendu. |
* |
*@package Papyrus |
*@subpackage Classes |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2006 |
*@version $Revision: 1.1 $ $Date: 2006-12-01 16:36:07 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
|
class Pap_Rendu { |
|
function pap_rendu() |
{ |
|
} |
|
function parserBaliseApplette($contenu) |
{ |
$noms_applettes = 'IDENTIFICATION|MENU|MOTEUR_RECHERCHE|SELECTEUR_SITES|VOUS_ETES_ICI';// Compatibilité ancienne syntaxe |
$GLOBALS['_PAPYRUS_']['applette']['nbr_balise'] = preg_match_all( |
'/\{\{(\w+) ?[^}]+\}\}|<!-- (?:'.$GLOBALS['_GEN_commun']['balise_prefixe'].'|'.$GLOBALS['_GEN_commun']['balise_prefixe_client'].')('.$noms_applettes.')[^ ]* -->/', |
$contenu, |
$tab_decoupage, |
PREG_SET_ORDER); |
for ($i = 0; $i < $GLOBALS['_PAPYRUS_']['applette']['nbr_balise']; $i++) { |
// Création du nom de l'applette. |
$applette_nom = ''; |
if (!empty($tab_decoupage[$i][1])) { |
$applette_nom = strtolower($tab_decoupage[$i][1]); |
} else if (!empty($tab_decoupage[$i][2])) { |
$applette_nom = strtolower($tab_decoupage[$i][2]); |
} |
if (!isset($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom])) { |
$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'] = $applette_nom; |
|
// Recherche du fichier de l'applette |
if (file_exists(GEN_CHEMIN_APPLETTE.$applette_nom.GEN_SEP.$applette_nom.'.php')) { |
$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_APPLETTE.$applette_nom.GEN_SEP.$applette_nom.'.php'; |
} else if (file_exists(GEN_CHEMIN_CLIENT.$applette_nom.GEN_SEP.$applette_nom.'.php')) { |
$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_CLIENT.$applette_nom.GEN_SEP.$applette_nom.'.php'; |
} else { |
// On supprime l'applette de la liste |
unset($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]); |
// Ne devrait pas arréter le programme! Mais instancier le gestionnaire de déboguage. |
echo('ERREUR Papyrus : Impossible de trouver le fichier de l\'applette. <br />'. |
'Nom applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'].' <br />'. |
'Chemin fichier applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'].' <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier : '. __FILE__ ); |
} |
|
// Nous incluons l'applette |
if (file_exists($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'])) { |
include_once($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin']); |
// Nous récupérons l'expression régulière de la balise pour l'utiliser lors de l'appel |
// de la fonction de l'applette. L'appel des fonctions des applettes à lieu aprés l'appel |
// de l'application pour permettre à l'appli de modifier certains paramêtres (identification, ordre des menus). |
$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'] = $GLOBALS['_GEN_commun']['info_applette_balise']; |
$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_fonction'] = $GLOBALS['_GEN_commun']['info_applette_nom_fonction']; |
} |
} |
// Récupération des infos sur la balise courrante. |
if (preg_match( '/'.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'].'/', $tab_decoupage[$i][0], $applet_arguments)) { |
$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['balises'][] = $applet_arguments; |
} else { |
$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['balises'][] = array(); |
echo('ERREUR Papyrus : Impossible de récupérer les arguments de l\'applette. <br />'. |
'Nom applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'].' <br />'. |
'Chemin fichier applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'].' <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier : '. __FILE__ ); |
} |
} |
} |
} |
?> |