Magento:商店代码中的短划线

时间:2012-04-27 15:40:02

标签: magento seo

我正在使用带有多个商店和商店视图的Magento(1个网站,4个商店,每个商店都有一个商店视图)。我激活了“将商店代码添加到网址”选项,并可以通过http://example.com/storecode/访问我的不同商店,这样可以正常工作。但是,我有一个商店代码,应该用两个单词命名为SEO目的。不幸的是,Magento只允许使用下划线(_)代替短划线( - )作为商店代码:

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

作为dashes are recommended分隔网址中的字词,我正在寻找一种方法来使用短划线作为商店代码。覆盖Magento的验证没有问题,但我想知道是否有任何特殊原因在这里禁用破折号。有人有想法吗?

谢谢, 的Mathias

1 个答案:

答案 0 :(得分:4)

您可以随时尝试在Mage_Core_Model_Mysql4_Store中复制app/code/local并修改正则表达式以允许短划线。可能的原因是Magento将_解释为命名约定中的分隔符或空格的方式。

我认为有一个原因,但具体而言我不确定。如果您确实进行了更改,我建议您先在代码库/ 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;
}