Перейти к содержанию
relam

Модуль рекомендуемое

Рекомендуемые сообщения

Боролся с дублями страниц товаров вот таким способом:

 

1) Нам потребуется в каждом модуле, который выводит товары, поменять ссылки. Чтобы эти ссылки создать — нужны ID категорий, к которым этот товар привязан.

Открываем

/catalog/controller/product/category.php

и ищем строчку:

1
foreach ($results as $result) {

и после нее вставляем следующий код:

// получаем ID категории для генерации правильного URL
 // и сортируем по родительской категории, чтобы родительская шла всегда первой
 $categories_for_url = $this->db->query("
 SELECT `t1`.`category_id` FROM `" . DB_PREFIX . "product_to_category` as `t1`
 LEFT JOIN `" . DB_PREFIX . "category` as `t2` ON `t1`.`category_id` = `t2`.`category_id`
 WHERE `t1`.`product_id`='" . $result['product_id'] . "'
 ORDER BY `t2`.`parent_id` ASC
 ");
 
if($categories_for_url->num_rows > 0) {
 
$category_path = '';
 
foreach($categories_for_url->rows as $category) {
 
$category_path .= $category['category_id'] . '_';
 
}
 
$category_path = trim($category_path, '_');
 
}

В этом коде мы получаем ID категорий в нужной нам последовательности: сначала ID родительской, затем дочерней. Это нужно для того, чтобы построить правильный путь. В стандартном виде ссылка в OpenCart выглядит как index.php?route=product/product&path=categoriesid&product_id=1, к такому виду мы и приводим.

Далее ищем строчку

1
2
3
4
$this->data['products'][] = array(
...
...
'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])

и меняем значение ключа массива ‘href’ на

'href'        => $this->url->link('product/product', 'path=' . $category_path . '&product_id=' . $result['product_id'])

 

 
Везде где нужен был вывод товара получилось, и в производителях, новинках, категориях, связанных продуктах. Но вот в рекомендуемом ни как не хочет. Там вместо переменных foreach ($results as $result), стоит foreach ($products as $product_id) и ссылки выходят такого типа /index.php?route=product/product&path=&product_id= которая ведет к несуществующему товару, немного поэкспериментировав получилось только вывести цифры в конце ссылки &product_id=, но всеравно ничего полезного это не дало. все ссылки такого вида /категория/подкатегория/товар
 
Подскажите кто знает где что подправить.
 
Версия Opencart 1.5.6.1 rus.
 
прикреплю файл модуля на всякий случай

 

featured.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На что только люди не идут, лишь бы бесплатный SeoPro не ставить.

P.S. Проверенный на oc1564 вариант лежит на гитхабе https://github.com/rb2/opencart-seopro

Слева выбираете нужную ветку (по умолчанию branch: oc1564), в правой колонке есть кнопка Download ZIP.

Думаю, на oc1561 встанет без всяких изменений.

У @freelancer где-то vQmod XML-ка лежала. Я vQmod-ом не пользуюсь, не сохранял, не подскажу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

уже все настроено вот только с этим модулем проблема, хотелось бы добить этот вопрос таким способом, просто не понимаю где что подправить, что бы нормально все отображалось.

У меня уже стоит какой-то seo... правда не помню что за он

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.