3

私は複数のストアとストアビューでMagentoを使用しています(1つのWebサイト、それぞれ1つのストアビューを持つ4つのストア)。「URLにストアコードを追加する」オプションを有効にすると、 http://example.com/storecode/からさまざまなストアにアクセスできます。これは正常に機能します。しかし、私はSEOの目的で2つの単語にちなんで名付けられるべき1つのストアコードを持っています。残念ながら、Magentoでは、ストアコードとしてダッシュ(-)ではなくアンダースコア(_)しか使用できません。

The store code may contain only letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter.

URL内の単語を区切るにはダッシュが推奨されるため、ストアコードとしてダッシュを使用する方法を探しています。Magentoの検証をオーバーライドすることは問題ありませんが、ここでダッシュが無効になっている特別な理由があるのではないかと思います。誰かアイデアがありますか?

ありがとう、マティアス

4

1 に答える 1

4

いつでもMage_Core_Model_Mysql4_Storeinのコピーを作成app/code/localして正規表現を変更し、ダッシュを許可することができます。その理由として考えられるのは、Magento_が命名規則で仕切りまたはスペースとして解釈する方法です。

何らかの理由があると推測されますが、具体的にどのような理由があるのか​​はわかりません。変更を行う場合は、本番サイトで行う前に影響があるかどうかを判断するために、事前にコードベース/マジェントのコピーで行うことをお勧めします.

protected function _beforeSave(Mage_Core_Model_Abstract $model)
{
    if(!preg_match('/^[a-z]+[a-z0-9_\-]*$/',$model->getCode())) {
        Mage::throwException(
            Mage::helper('core')->__('The store code may contain only letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter'));
    }

    return $this;
}
于 2012-04-27T21:29:12.747 に答える