2010-12-07 51 views
0

Magento将产品和类别的URL关键字中的非拉丁字符转换为拉丁字符。我如何使用非拉丁字符?在magento中使用产品和类别URL的非相关字符

formatUrlKeyMage/Catalog/Model/Product/Url.php使用$_convertTableMage/Catalog/Helper/Product/Url.php。我试图更改代码,但我无法让Magento保存非拉丁文网址并在管理中正确显示它们。

我已经从suggets中删除了$ _convertTable中的希伯来字母。 的问题是,formatUrlKey取代了不是0-9或AZ字符“ - ”:

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; 
} 

所以我重写此方法,并将其更改为:

$urlKey = preg_replace('#[^0-9a-zא-ת]+#i', '-', Mage::helper('url')->format($str)); 

现在的Magento正确保存并显示url字符串,但它在浏览器中不起作用。 当试图访问产品网址我得到404

如果不是的preg_replace,用strtolower和修剪我只使用:

$urlKey = urlencode($str); 

它也不起作用,因为Magento的要求formatUrlKey几个倍。 我不明白为什么。

感谢

回答

0

由于Magento的如此耀眼从表中转换,从表中删除条目将防止从Magento的尝试将它们转换。覆盖助手类并删除你不想看到的条目,你应该很顺利。

只要在管理面板中正确显示它们,这是一个单独的问题,如果您保存这些非拉丁字符?更具体的信息会有帮助。

+0

我已经更新了我原来的问题有更多的测试和信息。 – pablo 2010-12-07 12:20:33