Jump to content

Recommended Posts

Bonjour

 

J'ai activé la réécriture d'url sur ma boutique Prestashop mais les accents tronquent mes urls. Quand je n'ai pas d'accent dans mon url, ca fonctionne bien mais dans le cas contraire mon url se coupe.

 

Exemple: MonSite.com/MaCategorie/bient-les-vacances alors que je voudrais ../bientot-les-vacances

 

Savez-vous ou se situe la gestion de la réécriture des urls. Idéalement j'aimerais pouvoir compléter la règle actuelle en indiquant les caractères à remplacer dans chaque cas (é=>e, ô =>o, etc)

 

- Version Prestashop : 1.4.0 customisée

- Hébergement : OVH mutulualisé

 

Merci d'avance

Bertrand

Link to comment
Share on other sites

  • 1 month later...

Savez-vous ou se situe la gestion de la réécriture des urls. Idéalement j'aimerais pouvoir compléter la règle actuelle en indiquant les caractères à remplacer dans chaque cas (é=>e, ô =>o, etc)

 

bonsoir, c'est un problème intéressant pour moi.

Réfrigérateurs et congélateurs

427-r--frig--rateurs-et-cong--lateurs ...Je n'aime pas

 

parce que les développeurs n'ont pas pensé à remplacer toutes les lettres accentuées et caractères spéciaux avec les normal caractères correspondants?

427-refrigerateurs-et-congelateurs

 

aucun d'entre vous savez comment faire? Merci beaucoup :)

Link to comment
Share on other sites

pardon, et avec 10.000 produits???? :DPeut-être que vous n'êtes pas sérieux? Seulement une méthode automatique est possible.

Je pense que quelque chose doit être ajouté dans .htaccess mais je ne savez pas la chaîne exacte...ou dans la fonction qui gère SEO URLs.

Merci

Link to comment
Share on other sites

Bonjour,

 

le soucis d'accents que vous rencontrez n'est pas normal car la génération des url simplifiées prend en compte cela cas des accents en français (la moindre des choses pour un script français tout de même).

 

Donc, je ne sais pas si vous utilisez la dernière version de Prestashop, mais peut être pourriez vous regarder de ce côté là dans un premier temps afin de corriger ce bug que vous rencontrez.

Link to comment
Share on other sites

  • 1 year later...
  • 3 months later...

Bonjour

J'ai modifié ainsi Tools.php (dans classes) c'est censé remplacer les é par e, etc

mais ça ne doit pas marcher pour tout le monde (ni pour moi)

Fred

 

/**
 * Replace all accented chars by their equivalent non accented chars.
 *
 * @param string $str
 * @return string
 */
public static function replaceAccentedChars($str)
{
 $patterns = array(
  /* Lowercase */
  '/[\x{0105}\x{00E0}\x{00E1}\x{00E2}\x{00E3}\x{00E4}\x{00E5}]/u',
  '/[\x{00E7}\x{010D}\x{0107}]/u',
  '/[\x{010F}]/u',
  '/[\x{00E8}\x{00E9}\x{00EA}\x{00EB}\x{011B}\x{0119}]/u',
  '/[\x{00EC}\x{00ED}\x{00EE}\x{00EF}]/u',
  '/[\x{0142}\x{013E}\x{013A}]/u',
  '/[\x{00F1}\x{0148}]/u',
  '/[\x{00F2}\x{00F3}\x{00F4}\x{00F5}\x{00F6}\x{00F8}]/u',
  '/[\x{0159}\x{0155}]/u',
  '/[\x{015B}\x{0161}]/u',
  '/[\x{00DF}]/u',
  '/[\x{0165}]/u',
  '/[\x{00F9}\x{00FA}\x{00FB}\x{00FC}\x{016F}]/u',
  '/[\x{00FD}\x{00FF}]/u',
  '/[\x{017C}\x{017A}\x{017E}]/u',
  '/[\x{00E6}]/u',
  '/[\x{0153}]/u',
  /* Uppercase */
  '/[\x{0104}\x{00C0}\x{00C1}\x{00C2}\x{00C3}\x{00C4}\x{00C5}]/u',
  '/[\x{00C7}\x{010C}\x{0106}]/u',
  '/[\x{010E}]/u',
  '/[\x{00C8}\x{00C9}\x{00CA}\x{00CB}\x{011A}\x{0118}]/u',
  '/[\x{0141}\x{013D}\x{0139}]/u',
  '/[\x{00D1}\x{0147}]/u',
  '/[\x{00D3}]/u',
  '/[\x{0158}\x{0154}]/u',
  '/[\x{015A}\x{0160}]/u',
  '/[\x{0164}]/u',
  '/[\x{00D9}\x{00DA}\x{00DB}\x{00DC}\x{016E}]/u',
  '/[\x{017B}\x{0179}\x{017D}]/u',
  '/[\x{00C6}]/u',
  '/[\x{0152}]/u');
    $replacements = array(
		    'a', 'c', 'd', 'e', 'i', 'l', 'n', 'o', 'r', 's', 'ss', 't', 'u', 'y', 'z', 'ae', 'oe',
		    'A', 'C', 'D', 'E', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'Z', 'AE', 'OE'
	    );
    $accents =    array('é','è','ê','ë','à','â','ï','î','ô','ó','û','ù','ç','€','ñ','É','È','Ë','Ê','Ç','Ï','º','Ô');
    $no_accents = array('e','e','e','e','a','a','i','i','o','o','u','u','c','E','n','E','E','E','E','C','I','o','O');
 //return preg_replace($patterns, $replacements, $str);
 return preg_replace($accents, $no_accents, $str);
}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...