Est-il possible de dire à Smarty de PHP que vous voulez supprimer tous les espaces dans vos templates avant de les envoyer au navigateur, comme si tous vos templates étaient intégrés dans les tags {strip}? Une sorte de paramètre d'objet Smarty ou quelque chose?Éliminer les espaces des templates smarty de PHP
Répondre
Vous pouvez créer et enregistrer un output filter pour ce faire; Dans le filtre de sortie, vous pouvez utiliser par exemple this function pour supprimer les espaces inutiles.
Voici un autre filtre de sortie pour supprimer les espaces blancs.
http://www.smarty.net/forums/viewtopic.php?t=25&sid=26a10d55ac90d50dca7914e33fdc6fa1
Dans votre dossier de plug-in Smarty il y a un filtre qui peut être facilement adapté à la tâche: il est outputfilter.trimwhitespace.php
.
il suffit d'ajouter la ligne
$source = preg_replace("`\s+`ms", " ", $source);
(du post sur le forum lié par Martin) à la ligne 51, puis appeler le filtre de sortie.
L'avantage est que ledit filtre fait un bon travail de sauvegarde, puis restaurer les blocs de code où vous voudrez peut-être laisser des espaces seul - à l'intérieur scénario, pré et textarea éléments (I'dd ajouter le code élément à la liste, aussi).
Voici l'implémentation la plus récente du filtre de sortie trimWhitespace de smarty 3.1 qui semble faire ce que vous voulez.
navigateur source: http://code.google.com/p/smarty-php/source/browse/branches/Smarty_3_1_cleanup/distribution/libs/plugins/outputfilter.trimwhitespace.php?r=4136