Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

SEO PRO и одноименные категории


boxbaster

Recommended Posts

Подскажите пожалуйста, каким образом можно реализовать:

1. Категории - уникальны

2.Подкатегории - уникальны

3. Под-подкатегории - одноименные на все подкатегории.

4. товары - уникальны

так вот, 3 этап никак не могу реализовать, Seo Pro отказывается искать под-подкатегории (404), так как чпу не уникален, подскажите пожалуйста, такое возможно вообще на данном движке. (1.5.1.3)

Спасибо за ответы

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Тоже недавно столкнулся с этой проблемой. Почему-то если есть две категории с одинаковым псевдонимом (например printers/hp/2012 и scaners/hp/2013) то выдает ошибку 404. Кто-нибудь искал решение проблемы?

Надіслати
Поділитися на інших сайтах

Кстати сейчас проверил - в версии 0.2.2 с этим все в порядке. Как выяснилось я вносил изменения в файл catalogcontrollercommonseo_url.php, для версии 1.5.1 тоже работает. Не помню откуда брал этот способ. На форуме не нашел.

1) Итак, открываем упомянутый файл catalogcontrollercommonseo_url.php

2) находим примерно на 13 строке текст "foreach ($parts as $part) {" Сразу за ней идет строка "$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");" - ее мы удаляем.

3) вместо нее ставляем текст:

/*~~~ Поддержка одинаковых псевдонимов категорий ~~~*/

if( $this->config->get('config_seo_url_replace') ) {

$part = str_replace('_', ' ', $part);

}

if (isset($url[1])) {

$query = $this->db->query("SELECT a.* FROM " . DB_PREFIX . "url_alias a, " . DB_PREFIX . "category c WHERE a.keyword = '" . $this->db->escape($part) . "' AND a.query=CONCAT('category_id=', c.category_id) AND c.parent_id='$url[1]'");

} else {

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");

}

/*~~~ # Поддержка одинаковых псевдонимов категорий ~~~*/

4) Лезем в админку: Система -> Настройки -> Сервер -> Тип ЧПУ ставим "По умолчанию"

Для SeoPro в этой же папке открываем seo_pro.php

находим строку // Decode URL и от нее до строки public function rewrite($link) { все удаляем, а на их место вставляем:

// Decode URL

if (isset($this->request->get['_route_'])) {

$parts = explode('/', $this->request->get['_route_']);

foreach ($parts as $part) {

if( $this->config->get('config_seo_url_replace') ) {

$part = str_replace('_', ' ', $part);

}

if (isset($url[1])) {

$query = $this->db->query("SELECT a.* FROM " . DB_PREFIX . "url_alias a, " . DB_PREFIX . "category c WHERE a.keyword = '" . $this->db->escape($part) . "' AND a.query=CONCAT('category_id=', c.category_id) AND c.parent_id='$url[1]'");

} else {

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");

}

if ($query->num_rows) {

$url = explode('=', $query->row['query']);

if ($url[0] == 'product_id') {

$this->request->get['product_id'] = $url[1];

}

if ($url[0] == 'category_id') {

if (!isset($this->request->get['path'])) {

$this->request->get['path'] = $url[1];

} else {

$this->request->get['path'] .= '_' . $url[1];

}

}

if ($url[0] == 'manufacturer_id') {

$this->request->get['manufacturer_id'] = $url[1];

}

if ($url[0] == 'information_id') {

$this->request->get['information_id'] = $url[1];

}

} else {

$this->request->get['route'] = 'error/not_found';

}

}

if (isset($this->request->get['product_id'])) {

$this->request->get['route'] = 'product/product';

} elseif (isset($this->request->get['path'])) {

$this->request->get['route'] = 'product/category';

} elseif (isset($this->request->get['manufacturer_id'])) {

$this->request->get['route'] = 'product/manufacturer/product';

} elseif (isset($this->request->get['information_id'])) {

$this->request->get['route'] = 'information/information';

}

if (isset($this->request->get['route'])) {

return $this->forward($this->request->get['route']);

}

}

}

Надіслати
Поділитися на інших сайтах

А ответ на ваши вопросы у вас прямо перед глазами. Посмотрите на ссылки на этом форуме, они тоже сеошные. Вот догадайтесь, как у ipboard-а решён вопрос уникальности ссылок...

Небольшая подсказка по опенкарт: я использую айдишники.

Надіслати
Поділитися на інших сайтах


А ответ на ваши вопросы у вас прямо перед глазами. Посмотрите на ссылки на этом форуме, они тоже сеошные. Вот догадайтесь, как у ipboard-а решён вопрос уникальности ссылок...

Небольшая подсказка по опенкарт: я использую айдишники.

Но ведь можно обойтись и без айдишников. Для статей id в урле нормально, для товара тоже сойдет, но категории смотрятся не очень. Тут тоже категории без id - /topic/ а не /01-topic/
Надіслати
Поділитися на інших сайтах

Но ведь можно обойтись и без айдишников. Для статей id в урле нормально, для товара тоже сойдет, но категории смотрятся не очень. Тут тоже категории без id - /topic/ а не /01-topic/

Если придумаете как, вы молодец! Не забудьте поделиться!

Не корректно сравнивать topic на форуме с категориями, потому что topic всегда так называется, а кроме него есть ещё user, files, tracker и ещё парочка, они наглухо зашиты, никогда не меняют своё имя. А категорий у вас может быть тысяча штук, с абсолютно не предугадываемыми названиями.

Вы можете при выгрузке в ИМ проверять категории на уникальность. В экселе формулами или откуда вы там грузите. Так тоже можно, но если где-то пропустите пробел или какая ещё ошибка закрадется, то платить за неё вы будете довольно дорого, потерей лояльности потенциального клиента, который попадёт на 404 страницу.

Надіслати
Поділитися на інших сайтах


Она так называется потому что ей дали такую переменную. Это для людей она topic, для скрипта там свой ID который не меняется как ни называй категорию, поэтому путаницы никакой не произойдет. Я видел много ЧПУ на разных скриптах и уверен можно обойтись без id в ЧПУ (т.к. для людей никакой смысловой нагрузки не несут) Указанный выше скрипт позволяет использовать одинаковые категории, но немного глючит при клике на товар. Если его подлатать то будет идеальный вариант.

Надіслати
Поділитися на інших сайтах

  • 6 months later...
  • 1 month later...

вот немного дописал seo_pro.php может кому понадобиться тут

Что-то у меня значительно файл seo_pro.php от вашего отличается. Не могли бы подробнее расписать какие строчки добавлять/править

заменил стандартный файл на ваш и при включении "ЧПУ товаров с категориями" при клике на товар выдает ошибку 404. "Окончание ЧПУ" тоже не работает пробовал на 1.5.3.1

Есть переделка стандартного модуля seo_url.php которая работает с одноименными категориями любой вложенности, если кого интересует отпишитесь, выложу.

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Для SeoPro в этой же папке открываем seo_pro.php

Решение в данном аспекте работает, только вот тогда теряются хлебные крошки в конкретном товаре (собственно ради которых SeoPro) и устанавливался)

Для решения обоих проблем помог апдейтик от фрилансера

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.