Magento convertit les caractères non latins dans la clé d'URL des produits et des catégories en caractères latins. Comment puis-je utiliser des caractères non latins?Utilisation de caractères non-lating pour la clé d'URL de produit et de catégorie dans magento
formatUrlKey
dans Mage/Catalog/Model/Product/Url.php
utilise $_convertTable
dans Mage/Catalog/Helper/Product/Url.php
. J'ai essayé de changer le code, mais je ne peux pas faire en sorte que Magento enregistre les URL non latines et les affiche correctement dans l'admin. J'ai enlevé des lettres hébraïques du $ _convertTable comme vous avez suggéré. Le problème est que le formatUrlKey remplace les caractères qui ne sont pas 0-9 ou az avec « - »:
public function formatUrlKey($str)
{
$urlKey = preg_replace('#[^0-9a-z]+#i', '-', Mage::helper('catalog/product_url')->format($str));
$urlKey = strtolower($urlKey);
$urlKey = trim($urlKey, '-');
return $urlKey;
}
Je suis redéfinissant cette méthode et le changement à:
$urlKey = preg_replace('#[^0-9a-zא-ת]+#i', '-', Mage::helper('url')->format($str));
maintenant magento enregistre correctement et affiche la chaîne d'URL, mais cela ne fonctionne pas dans le navigateur. Lorsque vous essayez d'accéder à l'URL du produit que je reçois 404.
Si au lieu de preg_replace, strtolower et taillez J'utilise seulement:
$urlKey = urlencode($str);
Il ne fonctionne pas parce que magento appelle plusieurs formatUrlKey fois. Je ne comprends pas pourquoi.
Merci
J'ai mis à jour ma question originale avec plus de tests et d'informations. – pablo
Si je change la fonction formatUrlKey pour ne pas modifier la chaîne et enregistrer manuellement la chaîne encodée en url (% D7% 90% D7% 91% D7% 92), elle s'affiche correctement dans le frontend comme le lien vers le produit page fonctionne. – pablo