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

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


relam

Recommended Posts

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

 

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 користувачів

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

Important Information

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