Problème de balise head à réouvrir
Posté : 20 août 2008, 18:29
Bonjour,
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 :
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
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