Magentoは、製品とカテゴリのURLキーのラテン文字以外の文字をラテン文字に変換します。ラテン文字以外の文字はどうやって使うことができますか?マゼンタの製品およびカテゴリのURLキーには非文字を使用
formatUrlKey
Mage/Catalog/Model/Product/Url.php
は$_convertTable
をMage/Catalog/Helper/Product/Url.php
で使用します。私はコードを変更しようとしましたが、Magentoに非ラテンのURLを保存させて管理者に正しく表示させることはできません。
私はsuggstedとして$ _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文字列を正しく保存して表示しますが、ブラウザでは機能しません。 私はそうではなくにpreg_replace、strtolowerの404
を得ている製品のURLにアクセスして、私は使用していトリムしようとすると:
$urlKey = urlencode($str);
MagentoのはformatUrlKeyいくつかを呼び出すので、それはまた、動作しません。回。 私はなぜそれが理解できません。 Magentoのは、ちょうどテーブルから変換盲目にされているので
おかげ
多くのテストと情報で私の元の質問を更新しました。 – pablo
formatUrlKey関数を変更してstrを変更しないで、URLエンコードされた文字列を手動で保存すると(%D7%90%D7%91%D7%92)、フロントエンドにאבגとして正しく表示され、製品へのリンクページが動作します。 – pablo