Cédric Girard Posted January 3, 2009 Share Posted January 3, 2009 BonsoirJ'ai légèrement modifié le module tags et l'URL Rewriting de manière à avoir des URLs sympas sur les tags, le hic est que les accents ne passent pas vraiment bien >:-( (chose étrange : ils passent dans les expressions passées en paramètres d'URL mais pas dans les URLs réécrites...)BrefMes quelques essais m'ont montré que les recherches fonctionnent sans accents, du coup j'aimerais bien trouver le truc pour virer les accents quand je forme les URLs au niveau du module blocktags !Il me faudrait trouver ça sur l'expression suivante : {$tag.name|urlencode} Objectif : remplacer tous les accents par les lettres équivalentes sans accents... À ce propos, je ne trouve pas "urlencode" dans la doc Smarty ? C'est un truc de la Prestateam ou bien ? Link to comment Share on other sites More sharing options...
Bruno Leveque Posted January 3, 2009 Share Posted January 3, 2009 Hello,Tu peux utiliser la plupart des fonctions PHP classique avec Smarty via le "|", exemple : {$name|strtolower} Il est donc normal qu'urlencode ne soit pas dans la doc Smarty Pour supprimer les accents, j'utiliserai plutôt la fonctionne toute prête Tools::linkRewrite() dans la classe Tools.php Link to comment Share on other sites More sharing options...
Cédric Girard Posted January 4, 2009 Author Share Posted January 4, 2009 OK merci ;-)Je peux donc utiliser {$tag.name|tools::linkRewrite} ? J'ai vraiment du mal à trouver une doc "concise" sur Smarty, dont je comprends les concepts mais pas trop certaines finesses de la syntaxe :roll: Link to comment Share on other sites More sharing options...
Cédric Girard Posted January 5, 2009 Author Share Posted January 5, 2009 Bon !J'ai essayé ça : {$tag.name|escape:htmlall:'UTF-8'|regex_replace:"/&(.)(acute|grave|circ|uml|cedil|ring|tilde|slash);/":"\1"} Mais le second pipe ne s'exécute à priori pas sur le premier ??? L'objectif étant de "formater" la chaîne en HTML (avec par ex. & eacute; en lieu et place de é) puis de remplacer les accents par leurs caractères correspondants... J'ai pas trouvé plus simple :cheese: mais ça fonctionne pô >:-( Link to comment Share on other sites More sharing options...
Cédric Girard Posted January 5, 2009 Author Share Posted January 5, 2009 Up !Fonctionne avec ça (suffisait de remplacer les guillemets par des cotes simples :wow: et de gérer les séparateurs pour les expressions à plusieurs mots) {$tag.name|escape:htmlall:'UTF-8'|regex_replace:'/&(.)(acute|grave|circ|uml|cedil|ring|tilde|slash);/':'\1'|replace:' ':'+'} Un peu tiré par les cheveux j'en conviens :cheese:(ndlr : je dois retester ce truc pour les expressions tordues, genre avec des apostrophes, etc... Pour une raison qui m'échappe, le remplacement direct de caractère accentué vers caractère non accentué ne fonctionne pas !) 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now