Используйте непоследовательные символы для URL-адреса продукта и категории в magento - PullRequest
0 голосов
/ 07 декабря 2010

Magento преобразует нелатинские символы в ключе URL продуктов и категорий в латинские символы. Как я могу использовать нелатинские символы?

formatUrlKey в Mage/Catalog/Model/Product/Url.php использует $_convertTable в Mage/Catalog/Helper/Product/Url.php. Я пытался изменить код, но не могу заставить Magento сохранять нелатинские URL-адреса и правильно отображать их в админке.

Я удалил буквы иврита из таблицы $ _convertTable, когда вы предлагаете. Проблема в том, что formatUrlKey заменяет символы, которые не являются 0-9 или a-z, на '-':

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, но она не работает в браузере. При попытке получить доступ к URL продукта я получаю 404.

Если вместо preg_replace, strtolower и trim я использую только:

$urlKey = urlencode($str);

Это также не работает, потому что magento вызывает formatUrlKey несколько раз. Я не понимаю почему.

Спасибо

Ответы [ 2 ]

1 голос
/ 04 июня 2011
0 голосов
/ 07 декабря 2010

Поскольку Magento просто ослепляет конвертирование из таблицы, удаление записей из таблицы не позволит Magento попытаться конвертировать их. Переопределите вспомогательный класс и удалите записи, которые вы не хотите видеть, и вы должны быть в порядке.

Что касается их правильного отображения в панели администратора, это отдельная проблема, если вы сохраняете эти нелатинские символы? Было бы полезно получить более конкретную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...