Переход на SEO_PRO со стандартного ЧПУ-формирователя

Просмотров: 1937Комментарии: 4

Особенности адресации

Часто возникает необходимость перехода на seo_pro на ранее запущенном сайте. При этом не желательно менять адресацию, во избежании просадок, как минимум на несколько месяцев.

В стандартном контроллере используется адресация без вложенностей и лишних слешей.

Канонические адреса имеют вид:

site.com/product
site.com/last_category

После установки же важно активировать в настройках "Товары без категории".

Однако для категорий такого нет, категории имеют вложенность, плюс в конце добавляется слеш.

Для исправления данной ситуации потребуется правка кода seo_pro

Убираем слеш

Находим в коде

$seo_url .= '/';

и закомментируем строку

//$seo_url .= '/';

почему комментируем, а не удаляем?

есть вероятность попытки привязки модов

Убираем вложенность

case 'path':
    $categories = explode('_', $value);
    foreach ($categories as $category) {
        $queries[] = 'category_id=' . $category;
    }
    unset($data[$key]);
    break;

приводим к виду

case 'path':
    $categories = explode('_', $value);
    //foreach ($categories as $category) {
        $queries[] = 'category_id=' . end($categories);
    //}
    unset($data[$key]);
    break;

Сохраняем хлебные крошки

} elseif (isset($this->request->get['path'])) {
    $this->request->get['route'] = 'product/category';
}

добавляем просчет пути

} elseif (isset($this->request->get['path'])) {
    $this->request->get['route'] = 'product/category';                
        $category = explode('_', $this->request->get['path']);
        $category_id = (int)end($category);
        $path = $this->getPathByCategory($category_id);
        if ($path) $this->request->get['path'] = $path;                
}

SEO_PRO OPENACRT 3.0

Порт SEO_Pro от 2.3 на скорую руку (тщательно проверяйте работу), с включением вышеописанных изменений для бесшовного перехода со стандартного seo_url.

Скачать

После установки для создания поля "Главная категория" нажать сюда:

Особенности:

  • Рекомендуется для магазинов без Мультиязычности т.к. не пишет в сессию язык (не переключает)
  • Контроллер перенесен в controller/extension/seo/pro.php, т.к. в опенкарт версии 3 нельзя записывать файлы в папку controller/startup
  • В связи с пунктом выше, в сторонних модификаторах нужно изменять путь/имя seo_pro

Комментариев: 4 RSS

Оставьте комментарий!
  • Без регистрации
  • Вход/Регистрация

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

  • 1bdv00707-05-2019 20:09Учитываю...

    Это я так понимаю на 2.* версию, а под 3-ю?

    • 2Аноним06-11-2019 19:41Учитываю...

      bdv007, там так же почти

  • 3Дмитрий28-10-2019 14:38Учитываю...

    ocstore 2.3

    Была ошибка Bad Request - длинные имена, сейчас норм, разжевано и по шагам.

    Искал на другом форуме - https://****/short-seo-url, непонятно было

    Ваш способ помог.

    Спасибо

  • 4Alex20-01-2020 18:39Учитываю...

    А как сделать, чтобы в ссылке остался путь с подкатегориями?

    Сейчас: site.ru/product

    Хотелось бы: site.ru/category/sub-category/product

    Хлебные крошки на сайте работают нормально. Путь сохраняется к товару по категориям.