Pour permettre à symfony de livrer du HTML au lieu du XHTML, il suffit de surcharger les quelques fonctions d'affichage. Il faut aussi modifier le fichier layout.php de l'application et remplacer le doctype XHTML par celui qui va bien:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Il faut aussi supprimer les tags fermants des balises contenues dans la partie head
Les fonctions d'affichages des différents tags HTML sont toutes gérées dans le helper TagHelper.php. J'ai donc récupérer ce fichier dans le répertoire lib/helper/ de symfony et je l'ai placé dans le répertoire lib/helper/ de mon application et j'ai modifié la fonction tag pour livrer du HTML au lieu du XHTML. En fait j'ai simplement supprimé le slash de fin de tag:
sortie de la commande diff:
- return '<'.$name._tag_options($options).(($open) ? '>' : ' />');
+ return '<'.$name._tag_options($options).(($open) ? '>' : '>');
Cela fonctionne parfaitement mais cela a deux inconvénients. Il ne faut pas oublier de garder toutes les autres fonctions présentes dans ce fichier. L'autre inconvénient est que si on met à jour symfony on risque de passer à côté de modifications dans ce fichier puisqu'on l'aura surchargé.
1 De Hugo -
Donc si je comprends bien, si j'écris <input type="text" name="nom" /> je ne fais pas du HTML 4.01 correct ? En quoi celà est gênant de fermer les mono-tags HTML ?
2 De Nicolas -
> Donc si je comprends bien, si j'écris <input type="text" name="nom" /> je ne fais pas du HTML 4.01 correct ? En quoi celà est gênant de fermer les mono-tags HTML ?
C'est bien cela. C'est dingue ; on en apprend tous les jours!!! Je te fais un billet sur le sujet, aujourd'hui ou ce weekend.
3 De Hugo -
>> C'est bien cela. C'est dingue ; on en apprend tous les jours!!! Je te fais un billet sur le sujet, aujourd'hui ou ce weekend.
Volontiers :)