2010-12-07 7 views
0

Magentoは、製品とカテゴリのURLキーのラテン文字以外の文字をラテン文字に変換します。ラテン文字以外の文字はどうやって使うことができますか?マゼンタの製品およびカテゴリのURLキーには非文字を使用

formatUrlKeyMage/Catalog/Model/Product/Url.php$_convertTableMage/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のは、ちょうどテーブルから変換盲目にされているので

おかげ

答えて

0

は、テーブルからエントリを削除すると、それらを変換しようとしているからMagentoのを防ぐことができます。ヘルパークラスをオーバーライドして、表示したくないエントリを削除してください。あなたはあなたのやり方でかなりうまくいくはずです。

管理パネルで正しく表示する限り、これらの非ラテン文字を保存すると別の問題になりますか?より具体的な情報が役に立つでしょう。

+0

多くのテストと情報で私の元の質問を更新しました。 – pablo

+0

formatUrlKey関数を変更してstrを変更しないで、URLエンコードされた文字列を手動で保存すると(%D7%90%D7%91%D7%92)、フロントエンドにאבגとして正しく表示され、製品へのリンクページが動作します。 – pablo

関連する問題