Problème de balise META

lea.legrand

Nouveau WRInaute
Bonjour,


Je fais un site en MVC. De plus , j'utilise le framework CodeIgniter (mais en s'en fou de ça).

Je charge le haut, le menu et la bas à chaque vue que je fais car ce sont les parties qui ne changent jamais
SAUF
pour les META. Chaque vue a des META différents qui sont en lien avec ce que propose la vue. Le problème c'est que la balise HEAD est fermé quand je commence la vue. On se trouve donc dans le body.

Je sais que ce n'est pas conventionnel de faire cela mais est-il possible de mettre les META dans le BODY ?
Y a t'il un moyen facile et efficace de mettre les META en rapport avec la vue dans le HEAD sachant que c'est une partie qui est censé ne pas changer?

Merci pour votre aide.
 

lea.legrand

Nouveau WRInaute
Justement, dans cet exemple, on voit bien que la page repart de zéro :
<html>
<head>
</head>
<body>
</body>
</html>

Moi la partie :
<html>
<head>
</head>
<body>
Est fixe (écrit dans un fichier). Chargé sur chaque page par le contrôleur.

Mon but est d'écrire les META (différents selon chaque vue)
-soit dans la vue (Mais dans ces cas là ils seront dans le BODY)
-soit en modifiant ma partie fixe (pas logique) selon chaque vue.

Me suis-je bien faite comprendre ?
 

spout

WRInaute accro
Donc tu tapes le head HTML dans chaque controller ? :roll:
Je savais que CI c'est pas terrible mais qd même pas à ce point ? :mrgreen:
 

zeb

WRInaute accro
Ajoute une sur-couche de template que tu parse pour adapter avant le flush ...
 

lea.legrand

Nouveau WRInaute
spout : non le head HTML est chargé automatiquement à partir d'un fichier.
Pour le peu d'utilisation que j'en fais, CI est super bien. Ce n'est pas le framework qui est mauvais mais la personne qui l'utilise.

Zeb: J'ai rien compris à ce que tu as dit !?

Je veux mettre des META à chaque vue que je fais mais la vue commence dans le body c'est ça mon problème !
 

zeb

WRInaute accro
lea.legrand a dit:
la vue commence dans le body c'est ça mon problème !
non c'est pas un problème c'est une contrainte (qui à la base montre un souci de conception mais c'est un autre débat)

Dès le départ tu compose ton <head> de cette façon :
<html>
<head>
{meta}
</head>

et juste avant d'envoyer ta page (flush du buffer apache par exemple) tu fait un str_replace de {meta} qui a ce stade sont forcement connues.
 

Discussions similaires

Haut