Jump to content

prestashop 1.7.6.2 regex_replace sur une variable avec caractères accentués


Recommended Posts

bonjour,

je bloque sur une regex_replace dans un tpl. (enfin pas que ca .....nb: je suis débutant +++++++:) )

je suis sur une version 1.7.6.2

dans le fichier template/catalog/_partial/product-customization.tpl

je souhaiterais enlever à l'affichage (ou mieux remplacer par le caractère non accentué)  tous les caractères accentués et certains symboles sur la variable field.text du fichier product-customization.tpl

la regex_replace dans ce fichier marche sur les symboles , par contre et la je bug complet, sur les caractères accentués ca ne marche pas , chaque caractères accentués est remplacé par un point d'interrogation (?)

ma regex:

{$field.text|upper|regex_replace:"/[ÇÀÂÄÃÈÉŒÊËÌÏÎÒÔÖÕÙÛÜѨ;_~?ÙÃ#^%§=$£¥]/":""}

j'ai donc essayé

{$field.text|escape:htmlall:'UTF-8'|regex_replace:'/&(.)(acute|grave|circ|uml|cedil|ring|tilde|slash);/':'\1'}

ca marche pas...forcement ca m'affiche des points d'interrogations moi a la place des & e acute ect...

j'ai essayé 400 soluces et pas trouvé la bonne :(

donc on oublie regex_replace, on suprime et:

  j'ai essayé de passer par un js ( testé dans un simple fichier php hors presta et fonctionne a merveille) dans le tpl avec les balises literal mais impossible (enfin je sais pas plutot comment recup la var TestTexte.... apperement cette maniere de faire n'est pas possible d'apres ce que j'ai pu comprendre dans des posts )

{literal}
<script>
var TabSpec = {"à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","è":"e","é":"e","ê":"e","ë":"e","ç":"c","ì":"i","í":"i","î":"i","ï":"i","ù":"u","ú":"u","û":"u","ü":"u","ÿ":"y","ñ":"n","-":" ","_":" "}; 
 
function replaceSpec(Texte){
	var reg=/[àáäâÉèéêëçìíîïòóôõöøùúûüÿñ_-]/gi; 
	return Texte.replace(reg,function(){ return TabSpec[arguments[0].toLowerCase()];}).toUpperCase();
 	}
 
var TestTexte="{/literal}{$field.text}{literal}"


</script>
{/literal}

 

dommage ce scirpt marche terrible....

alors on efface tout et dernière idée de  tentative: 

passé par une fonction php, mais alors là ...impossible de trouver dans tous les fichiers (customtext.php, product.php, frontcontroller ect ect)...où placer une fonction str_replace par exemple sur le champ text de customization..... j'ai cherché ...

 

je nage, je reconnais ne pas avoir assez de connaissances :(

 

Ultime idée (system D) que jai eu !! : était de passer par le fichier qui contient les fonctions de validation des formulaires (validate.php de mémoire), et qui affiche dans une div rose les erreurs de saisies

et la encore !! jai bien trouvé les fonctions de validation du formulaire pour le mail par exemple, pour le code postal, pour le password,ect.... mais pas pour ce formulaire de customization !! .....

j'ai le cerveau qui a frôlé la surtension.....et je tourne en rond sans trouver comment faire.

une ame charitable pourrait elle me filer un tuyau ?? (sans pour autant me dire daller prendre des cours même si c'est totalement vrai ;) )

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More