2010-12-07 6 views
0

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

Répondre

0

Depuis Magento est aveuglante simplement la conversion de la table, la suppression des entrées de la table empêche Magento d'essayer de les convertir. Remplacer la classe d'assistance et supprimer les entrées que vous ne voulez pas voir et vous devriez être sur votre chemin.

Dans la mesure où les afficher correctement dans le panneau d'administration, est-ce un problème distinct si vous enregistrez ces caractères non latins? Des informations plus spécifiques seraient utiles.

+0

J'ai mis à jour ma question originale avec plus de tests et d'informations. – pablo

+0

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

Questions connexes