Magento将产品和类别的URL关键字中的非拉丁字符转换为拉丁字符。我如何使用非拉丁字符?在magento中使用产品和类别URL的非相关字符
formatUrlKey
在Mage/Catalog/Model/Product/Url.php
使用$_convertTable
在Mage/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几个倍。 我不明白为什么。
感谢
我已经更新了我原来的问题有更多的测试和信息。 – pablo 2010-12-07 12:20:33