developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.
Opened 14 years ago
Closed 10 years ago
#61 closed bug (fixed)
metas non prise en compte dans les templates de zones
Reported by: | laurentj | Owned by: | laurentj |
---|---|---|---|
Priority: | highest | Milestone: | Jelix 1.3 beta 1 |
Component: | jelix:core | Version: | 1.0alpha5 |
Severity: | major | Keywords: | template meta zone |
Cc: | Blocked By: | ||
Blocking: | Documentation needed: | yes | |
Hosting Provider: | Php version: |
Description
Quand il est affiché une zone dans le template principale, via le tag de template {zone}, les metas qui sont indiquées dans le template de la zone ne sont pas pris en compte.
La faute à jResponseHtml, qui génère le <head> avant d'afficher le template principal. Donc les metas des templates de zones appellées par {zone} sont traités trop tard pour être inclus dans le <head>.
Solution simple mais pas optimum : faire un fetch du template principal dans jResponseHtml, avant de générer le <head>. Mais niveau mémoire, ce n'est pas top..
Note : le problème n'apparait pas pour les zones appelées directement dans les actions via jTpl::assignZone ou jZone::processZone (car à ce moment là, la reponse html n'a pas encore été traitée).
Attachments (2)
Change History (13)
comment:1 Changed 14 years ago by laurentj
- Milestone changed from Jelix 1.0beta2 to post jelix 1.0
comment:2 Changed 14 years ago by laurentj
- Milestone changed from Later to Jelix 1.1
comment:3 Changed 13 years ago by laurentj
- Milestone changed from Jelix 1.1 to Jelix 1.2
comment:4 Changed 12 years ago by laurentj
- Documentation needed unset
Changed 12 years ago by Lipki
comment:5 Changed 12 years ago by Lipki
laurentj: durant la génération de la page html, on pourrait générer le <body> en utilisant ob_start &co
mais ça veut dire qu'on stocke le contenu du body en mémoire avant envoi au lieu de l'envoyer directement sur des serveurs chargés, à mon avis ça doit pas être anodins
lipki: oui et puis c'est un gros changement de concept
laurentj: gros changement, je ne sais pas, parce que ça change rien du point de >vue de l'utilisation du framework
mis à part la fixation de ce bug faudrait voir si ça change de beaucoup au niveau utilisation mémoire parce que même avec des echo, il est possible que PHP bufferise quand même je crois qu'il y a des paramètres pour ça d'ailleurs dans le php.ini à la limite, on pourrait avoir un paramètre dans la classe jResponseHtml ou la config, pour dire si il faut bufferiser ou pas, ça permet de s'adapter au contexte serveur
(...)
laurentj: mais cette histoire de configuration, ça me plait pas super des masses non plus parce que si un type fait son module qui finalement ne fonctionne qu'en mode buffer, et qu'un autre le réutilise et qu'il est en mode non buffer, ça va être chiant
Finalement voilà un patch vite écrit vite testé. C'est surement pas optimal, mais c'est une réponse au problème en tous cas. Je ne l'ai fait que pour jResponseHtml mais je suppose qu'il serait aussi utile pour d'autres.
Pour ce qui est de la demande de loic_m,
loic_m: j'aimerais bien qu'on puisse faire un addJS(Link) avec un param pour dire qu'on veut le foutre en bas de page
et de ma suggestion,
lipki: plutôt que de perdre les js, les insérer dans la page la ou il sont appeler.
Ça peut faire l'objet d'un autres ticket.
comment:6 Changed 12 years ago by Lipki
- review set to review?
Changed 12 years ago by Lipki
comment:7 Changed 11 years ago by laurentj
- review changed from review? to review-
[reponseshtml]
je préfère qu'on l'appelle responses_options
$GLOBALS['gJConfig']->reponseshtml['buffered']
tu l'utilises deux fois. vaut mieux le stocker dans une variable locale.
echo "\r".
Horreur ! :-) pas de \r svp. on bosse pas exclusivement sous windows ou mac. \n est la rêgle.
comment:8 Changed 11 years ago by Lipki
promis je ne le ferais plus :)
comment:9 Changed 11 years ago by laurentj
- Milestone changed from Jelix 1.2 beta to Jelix 1.2
any news ?
comment:10 Changed 10 years ago by laurentj
- Milestone changed from Jelix 1.2 to Jelix 1.3
- Priority changed from normal to highest
Avec la nouvelle gestion d'erreur que j'ai en préparation, pour la 1.3, mon patch corrige déjà le problème. ce patch ne sera donc plus d'actualité.
comment:11 Changed 10 years ago by laurentj
- Documentation needed set
- Resolution set to fixed
- review review- deleted
- Status changed from new to closed
problème corrigé. https://bitbucket.org/jelix/jelix-trunk/changeset/b4c2d9f57b27
Même problème avec les plugins qui ajoutent des feuilles CSS, liens js etc..