Jump to content
Sign in to follow this  
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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.