J'utilise le système de template de PHPlib (PHPbb)
J'ai fait une fonction qui affiche un message d'information et redirige vers une autre page.
Voici la fonction :
// Permet d'afficher un message d'information aux utilisateurs
function information($texte, $url= NULL, $titre= NULL)
{
global $template, $dossier, $user_design, $tuks_config, $lang, $user, $db;
// Vérifie qu'on est dans l'admin
include_once($dossier.'systeme/systeme.php');
$meta= NULL;
if ( !empty($url) )
{
$texte .= sprintf($lang['info_information'], $url);
$meta = '<meta http-equiv="refresh" content="5;url='.$url.'" />';
}
$template->set_filenames(array('information' => 'information.tpl'));
$titre = (isset($titre) AND !empty($titre)) ? $titre : 'Information';
$template->assign_vars(array(
'TITRE' => $titre,
'TEXT' => $texte,
'META' => $meta,
'ALT_INFORMATION' => $lang['alt_information'],
));
$template->pparse('information');
// Vérifie qu'on est dans l'admin
if (defined('IN_ADMIN') AND constant('IN_ADMIN') == TRUE )
{
include_once($dossier.'admin/admin_footer.php');
}
else
{
include_once($dossier.'systeme/footer.php');
}
exit;
}
Voici le header.tpl :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>{PAGE_TITRE}</title>
<link rel="stylesheet" media="screen" type="text/css" title="style" href="{URL_LOCATION}style.css" />
</head>
<body>
<div id="en_tete"><img src="{URL_LOCATION}images/logo_tuks.png" alt="{ALT_LOGO_TUKS}" />
<div id="Barre">
<a href="{SITE_RACINE}index.php">{T_INDEX}</a>
<a href="{SITE_RACINE}forum/">{T_FORUM}</a>
<a href="{SITE_RACINE}faq/">{T_FAQ}</a>
<a href="{SITE_RACINE}livre_or/index.php?pseudo={USER_NOM}">{T_LIVREOR}</a>
</div>
</div>
Un gros problème c'est que mon META s'affiche dans une balise <body> donc j'ai voulu mettre mon META dans une balise head, normal quoi.Le problème c'est que dans chaque page j'inclus header.php qui ouvre header.tpl qui lui contient l'ouverture de <head> et sa fermeture.
Alors je ne peu plus rajouter mon META dans la balise <header>
J'ai trouver une solution, que je n'arrive pas à mettre à place, qui est celle-ci :
La solution est que la fonction quand elle s'exécute ignore tout le code en aval, comme ça depuis la fonction on fait une inclusion du header, je définit la variable TPL -> META dans le fichier header.tpl et le problème est résolue.
Mais à mes connaissance on ne peu pas faire ça, il faut donc trouver un moyen pour qu'on accède à cette fonction sans que la header soit inclue.
Pour pimenter le tout ma fonction est utiliser pour gérer mes erreurs SQL, donc je n'arrive pas à ne pas inclure header.php avant la fonction information.
J'ai essayer d'être le plus clair possible, mais si je ne le suis pas, posez moi des questions.
Merci d'avance.
Rem73