ncandelier Posted March 16, 2011 Share Posted March 16, 2011 Bonjour,Voila je cherche un moyen de forcer un retour chariot dans le nom du produit.Effectivement sur ma page de produit (productlist) j'ai des noms de produits de la forme : Television écran plat 16/9 alors que je souhaiterai quelque chose de la forme : Télévision écran plat 16/9 Je ne sais pas si il est très simple de forcer la prise en charge du code HTML dans le champ "nom du produit" en saisie, ce qui serait l'idéal ou de déclarer une fonction TRUNCATE pares la saisie de 16 caractère par ex.. (cette derniere solution n'est pas tres smart parce que je retrouve le pb sur d'autres produits du catalogue ou le Truncate ne tombera pas au meme endroit..)Merci pour vos lumières. Link to comment Share on other sites More sharing options...
pblanc Posted March 16, 2011 Share Posted March 16, 2011 Salut,dans mon cas, j'ai fait ça comme ça : (je devais remplacer un + par un retour chariot) {if isset($product.new) && $product.new == 1}{l s='New'}{/if}{$product.name|regex_replace:"/\+/":" + "} Dans ton cas, si tu dois ajouter le retour chariot après le premier mot, je pense que ceci devrait convenir (si regex_replace gère les $0,$1 etc...) je n'ai pas tester {if isset($product.new) && $product.new == 1}{l s='New'}{/if}{$product.name|regex_replace:"/^([-a-Z_]+)/":"$1 "} Link to comment Share on other sites More sharing options...
ncandelier Posted March 16, 2011 Author Share Posted March 16, 2011 Salut pblanc,merci pour ta réponse.Je n'ai pas exactement le même code dans productlist.tplJ'ai remplacé la partie de code par celle que tu m'a donné (dans productlist.tpl donc) {$product.name|regex_replace:"/^([-a-Z_]+)/":"$1 "} mais le nom du produit disparait complètement.Par contre j'ai essayé avec ton code pour le "+" et cela fonctionne bien.Pour etre précis en fait, les retours chariots peuvent se situer autant apres le premier mot que le second ou le troisieme etc ..ex:Television Ledecran plat 16/9le retour peut donc se faire apres le deuxieme mot ici.Ce qui me donne l'idée, je ne sais pas si c'est possible, de faire interpréter au code la présence d'un caractère (le '+' par exemple) comme un retour chariot imposé, mais sans l'afficher ... ( ce qui reviendrait en fait a insérer un ...).. ou encore afficher le caractère "+" en couleur blanche pour tromper l'affichage comme ceci : {$product.name|regex_replace:"/\+/":" + "} mais mon code ne fonctione pas la, j'ai une page de produit blanche. Link to comment Share on other sites More sharing options...
pblanc Posted March 16, 2011 Share Posted March 16, 2011 essaye avec $0 à la place de $1 Link to comment Share on other sites More sharing options...
ncandelier Posted March 16, 2011 Author Share Posted March 16, 2011 idem avec $0la piste du {$product.name|regex_replace:"/\+/":" +"} je pense que c'est du au fait que le css impose une couleur. Link to comment Share on other sites More sharing options...
pblanc Posted March 16, 2011 Share Posted March 16, 2011 d'après : http://www.smarty.net/docsv2/fr/language.modifier.regex.replace.tplregex_replace utilise : http://fr.php.net/preg_replacedonc, si j'ai bien compris en remplaçant $1 par \\1 cela devrait marcher (sauf si ma regex qui décrit un mot n'est pas bonne) Link to comment Share on other sites More sharing options...
ncandelier Posted March 16, 2011 Author Share Posted March 16, 2011 je me répond a moi même : tout simplement : {$product.name|regex_replace:"/\+/":" "} ce qui a pour effet de provoquer un retour chariot des la présence d'un + dans le titre du produit, sans afficher le +Merci pour la piste Link to comment Share on other sites More sharing options...
pblanc Posted March 16, 2011 Share Posted March 16, 2011 le problème avec ça c'est que tu risques de retrouver des + a des endroits où tu ne le souhaites pas.si tu veux le retour chariot apres le premier mot, essaye plutôt : {$product.name|regex_replace:"/^(\w+)/":"\\1 "} de cette façon tu ne devrais pas avoir besoin d'ajouter un + dans le nom de ton produit Link to comment Share on other sites More sharing options...
ncandelier Posted March 16, 2011 Author Share Posted March 16, 2011 Merci En fait avec ce code, le "+" que j'ajoute est remplacé par un retour chariot et n'apparait pas , donc c'est niquel car je peux non seulement l'ajouter apres le premier mot mais également le second, troisieme etc ... ce qui est souvent le cas dans mon catalogueCe qui répond a me demande initiale.Je te remercie pour cette piste.Bonne nuit. Link to comment Share on other sites More sharing options...
Prestalearner Posted May 4, 2011 Share Posted May 4, 2011 Bonjour a tous,Je viens de tester le code suivant: {$product.name|regex_replace:"/^(\w+)/":"\\1 "} Et cela fonctionne! Merci.Mais je veux faire un retour à la ligne à partir du deuxième mot. Quelle modification dois-je faire sur le code?Merci d'avance. Link to comment Share on other sites More sharing options...
pblanc Posted May 4, 2011 Share Posted May 4, 2011 {$product.name|regex_replace:"/^(\w+\s+\w+)/":"\\1 "} devrait te satisfaire Link to comment Share on other sites More sharing options...
Fontaine77 Posted June 8, 2015 Share Posted June 8, 2015 Bonjour, Ce post concerne la solution que je cherche exactement. J'utilise prestashop 1.6.0.14, mais je n'arrive pas à faire fonctionner la solution proposée en modifiant mon fichier product-list.tpl. En fait, le seul résultat que j'obtient c'est l'affichage 2 fois du titre produit. Quelqu'un pour m'aider? Link to comment Share on other sites More sharing options...
romelik Posted January 15, 2016 Share Posted January 15, 2016 (edited) Bonjour Le post date un peu mais sur une version 1.6.1.x j'ai utilisé le code suivant avec succès : {$product.name|regex_replace:"/\+/":"<br>"} ou plus simplement {$product.name|replace:"+":"<br>"} Si cela peut servir à quelqu'un ... Edited January 15, 2016 by romelik (see edit history) Link to comment Share on other sites More sharing options...
Alia Posted November 1, 2018 Share Posted November 1, 2018 Et sous Prestashop 1.7, ça marche avec ce code-ci : {$product.name|replace:'+':'<br>' nofilter} 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