Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

ЧПУ в ocStore 2.1.0.2.1


arthyrgrex
 Поделиться

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

Добрый день.

Домен:
http://modamio2.ru/

Версия ocStore 2.1.0.2.1

Включено тип ЧПУ SeoPro - все отлично работает (и категории, и подкатегории, и товары).

Структура ЧПУ следующая:
Главная страница:
http://modamio2.ru/

Главная страница > Каталог женской одежды:

http://modamio2.ru/vitrina/

Главная страница > Каталог женской одежды > Детская одежда:
http://modamio2.ru/vitrina/detskaya-odejda/

Главная страница > Каталог женской одежды > Детская одежда > Трикотаж для девочек:
http://modamio2.ru/vitrina/detskaya-odejda/trikotaj-dlya-devochek/

Главная страница > Каталог женской одежды > Детская одежда > Трикотаж для девочек > Детский джемпер в морском стиле:
http://modamio2.ru/detskiy-djemper-v-morskom-style

Вопрос:
Как сделать так, чтобы ЧПУ каждой отдельной страницы формировался сразу после http://modamio2.ru/ без дополнительных категорий и подкатегорий ?

Пример (по вышеуказанным страницам):
Главная страница:
http://modamio2.ru/

Главная страница > Каталог женской одежды:
http://modamio2.ru/vitrina/

Главная страница > Каталог женской одежды > Детская одежда:
http://modamio2.ru/detskaya-odejda/

Главная страница > Каталог женской одежды > Детская одежда > Трикотаж для девочек:
http://modamio2.ru/trikotaj-dlya-devochek/

Главная страница > Каталог женской одежды > Детская одежда > Трикотаж для девочек > Детский джемпер в морском стиле:
http://modamio2.ru/detskiy-djemper-v-morskom-style

Заранее вам благодарен!
А то уже обыскался - все никак не найду решения..
 

Изменено пользователем arthyrgrex
Ссылка на комментарий
Поделиться на других сайтах


faede8a6cd.jpg

КЕП внимательно читайте чего просит Автор темы!

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

Читайте инструкцию по ссылке

Сначала выполняем действия из второго сообщения, а потом из первого!

У вас все получиться  :-)

Изменено пользователем Waha
  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

КЕП внимательно читайте чего просит Автор темы!

Блин, точно.

А с таким решением не будет неправильных хлебных крошек при входе в карточку из модулей?

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

Блин, точно.

А с таким решением не будет неправильных хлебных крошек при входе в карточку из модулей?

Пример работающего сайта отправил в ЛС

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

Читайте инструкцию по ссылке

Сначала выполняем действия из второго сообщения, а потом из первого!

У вас все получиться  :-)

Блин, Waha - красавчик, люблю тебя ! ))

Все отлично работает - урлы формируются без родительских категорий http://modamio2.ru/

Только есть 1 но =)

По инструкции 2-й пункт выполнил, а вот в первом:

https://opencartforum.com/topic/59699-%D1%85%D0%BB%D0%B5%D0%B1%D0%BD%D1%8B%D0%B5-%D0%BA%D1%80%D0%BE%D1%88%D0%BA%D0%B8-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9-%D0%B1%D0%B5%D0%B7-%D1%80%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B3%D0%BE-url-%D0%B2-seo-pr/?do=findComment&comment=534193

"Заходим в catalog/controller/catalog/category.php перед строкой"

У меня нету такого каталога catalog/controller/catalog/

Может его создать?

 

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


Сорян это вначале ошибся, а исправить низзя))
Это catalog/controller/product/

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

Сорян это вначале ошибся, а исправить низзя))

Это catalog/controller/product/

Вот только писал, что есть в product )

пробую )

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


 

Заходим в catalog/controller/catalog/category.php перед строкой

$category_info = $this->model_catalog_category->getCategory($category_id);

Добавляем

        //Fix Category breadscrumbs FULL with SEO_PRO

        $pathway = $this->model_catalog_category->getCategoryPath($category_id);

        if($pathway){

            foreach ($pathway as $way) {

                $category_way = $this->model_catalog_category->getCategory($way['path_id']);

                 $this->data['breadcrumbs'][] = array(

                     'text' => $category_way['name'],

                        'href' => $this->url->link('product/category', 'path=' . $way['path_id'] . $url),

                'separator' => $this->language->get('text_separator')

            );             

            }

        }

Есть такое.

А вот:

 

 

Ниже примерно в 170 строке удалите код 

            $this->data['breadcrumbs'][] = array(

                'text' => $category_info['name'],

                'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']),

                'separator' => $this->language->get('text_separator')

            );

Нету

Похожие строки встречаются в 4-х местах.

Изменено пользователем arthyrgrex
Ссылка на комментарий
Поделиться на других сайтах


Вот мой /catalog/controller/product/catalog.php

class ControllerProductCategory extends Controller {
public function index() {
$this->load->language('product/category');

$this->load->model('catalog/category');

$this->load->model('catalog/product');

$this->load->model('tool/image');

if (isset($this->request->get['filter'])) {
$filter = $this->request->get['filter'];
} else {
$filter = '';
}

if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
$sort = 'p.sort_order';
}

if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
$order = 'ASC';
}

if (isset($this->request->get['page'])) {
$page = $this->request->get['page'];
} else {
$page = 1;
}

if (isset($this->request->get['limit'])) {
$limit = (int)$this->request->get['limit'];
} else {
$limit = $this->config->get('config_product_limit');
}

$data['breadcrumbs'] = array();

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home')
);

if (isset($this->request->get['path'])) {
$url = '';

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$path = '';

$parts = explode('_', (string)$this->request->get['path']);

$category_id = (int)array_pop($parts);

foreach ($parts as $path_id) {
if (!$path) {
$path = (int)$path_id;
} else {
$path .= '_' . (int)$path_id;
}

$category_info = $this->model_catalog_category->getCategory($path_id);

if ($category_info) {
$data['breadcrumbs'][] = array(
'text' => $category_info['name'],
'href' => $this->url->link('product/category', 'path=' . $path . $url)
);
}
}
} else {
$category_id = 0;
}

$category_info = $this->model_catalog_category->getCategory($category_id);

if ($category_info) {

if ($category_info['meta_title']) {
$this->document->setTitle($category_info['meta_title']);
} else {
$this->document->setTitle($category_info['name']);
}

$this->document->setDescription($category_info['meta_description']);
$this->document->setKeywords($category_info['meta_keyword']);

if ($category_info['meta_h1']) {
$data['heading_title'] = $category_info['meta_h1'];
} else {
$data['heading_title'] = $category_info['name'];
}

$data['text_refine'] = $this->language->get('text_refine');
$data['text_empty'] = $this->language->get('text_empty');
$data['text_quantity'] = $this->language->get('text_quantity');
$data['text_manufacturer'] = $this->language->get('text_manufacturer');
$data['text_model'] = $this->language->get('text_model');
$data['text_price'] = $this->language->get('text_price');
$data['text_tax'] = $this->language->get('text_tax');
$data['text_points'] = $this->language->get('text_points');
$data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
$data['text_sort'] = $this->language->get('text_sort');
$data['text_limit'] = $this->language->get('text_limit');

$data['button_cart'] = $this->language->get('button_cart');
$data['button_wishlist'] = $this->language->get('button_wishlist');
$data['button_compare'] = $this->language->get('button_compare');
$data['button_continue'] = $this->language->get('button_continue');
$data['button_list'] = $this->language->get('button_list');
$data['button_grid'] = $this->language->get('button_grid');

// Set the last category breadcrumb
$data['breadcrumbs'][] = array(
'text' => $category_info['name'],
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'])
);

if ($category_info['image']) {
$data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
$this->document->setOgImage($data['thumb']);
} else {
$data['thumb'] = '';
}

$data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
$data['compare'] = $this->url->link('product/compare');

$url = '';

if (isset($this->request->get['filter'])) {
$url .= '&filter=' . $this->request->get['filter'];
}

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$data['categories'] = array();

$results = $this->model_catalog_category->getCategories($category_id);

foreach ($results as $result) {
$filter_data = array(
'filter_category_id' => $result['category_id'],
'filter_sub_category' => true
);

$data['categories'][] = array(
'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
);
}

$data['products'] = array();

$filter_data = array(
'filter_category_id' => $category_id,
'filter_filter' => $filter,
'sort' => $sort,
'order' => $order,
'start' => ($page - 1) * $limit,
'limit' => $limit
);

$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

$results = $this->model_catalog_product->getProducts($filter_data);

foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
} else {
$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
}

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = false;
}

if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}

if ($this->config->get('config_tax')) {
$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
} else {
$tax = false;
}

if ($this->config->get('config_review_status')) {
$rating = (int)$result['rating'];
} else {
$rating = false;
}

$data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
'price' => $price,
'special' => $special,
'tax' => $tax,
'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1,
'rating' => $result['rating'],
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
);
}

$url = '';

if (isset($this->request->get['filter'])) {
$url .= '&filter=' . $this->request->get['filter'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$data['sorts'] = array();

$data['sorts'][] = array(
'text' => $this->language->get('text_default'),
'value' => 'p.sort_order-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
);

$data['sorts'][] = array(
'text' => $this->language->get('text_name_asc'),
'value' => 'pd.name-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url)
);

$data['sorts'][] = array(
'text' => $this->language->get('text_name_desc'),
'value' => 'pd.name-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url)
);

$data['sorts'][] = array(
'text' => $this->language->get('text_price_asc'),
'value' => 'p.price-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url)
);

$data['sorts'][] = array(
'text' => $this->language->get('text_price_desc'),
'value' => 'p.price-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url)
);

if ($this->config->get('config_review_status')) {
$data['sorts'][] = array(
'text' => $this->language->get('text_rating_desc'),
'value' => 'rating-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url)
);

$data['sorts'][] = array(
'text' => $this->language->get('text_rating_asc'),
'value' => 'rating-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url)
);
}

$data['sorts'][] = array(
'text' => $this->language->get('text_model_asc'),
'value' => 'p.model-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url)
);

$data['sorts'][] = array(
'text' => $this->language->get('text_model_desc'),
'value' => 'p.model-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url)
);

$url = '';

if (isset($this->request->get['filter'])) {
$url .= '&filter=' . $this->request->get['filter'];
}

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

$data['limits'] = array();

$limits = array_unique(array($this->config->get('config_product_limit'), 25, 50, 75, 100));

sort($limits);

foreach($limits as $value) {
$data['limits'][] = array(
'text' => $value,
'value' => $value,
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value)
);
}

$url = '';

if (isset($this->request->get['filter'])) {
$url .= '&filter=' . $this->request->get['filter'];
}

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$pagination = new Pagination();
$pagination->total = $product_total;
$pagination->page = $page;
$pagination->limit = $limit;
$pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}');

$data['pagination'] = $pagination->render();

$data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

// http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html
if ($page == 1) {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], 'SSL'), 'canonical');
} elseif ($page == 2) {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], 'SSL'), 'prev');
} else {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page - 1), 'SSL'), 'prev');
}

if ($limit && ceil($product_total / $limit) > $page) {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), 'SSL'), 'next');
}

$data['sort'] = $sort;
$data['order'] = $order;
$data['limit'] = $limit;

$data['continue'] = $this->url->link('common/home');

$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {
$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/category.tpl', $data));
} else {
$this->response->setOutput($this->load->view('default/template/product/category.tpl', $data));
}
} else {
$url = '';

if (isset($this->request->get['path'])) {
$url .= '&path=' . $this->request->get['path'];
}

if (isset($this->request->get['filter'])) {
$url .= '&filter=' . $this->request->get['filter'];
}

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_error'),
'href' => $this->url->link('product/category', $url)
);

$this->document->setTitle($this->language->get('text_error'));

$data['heading_title'] = $this->language->get('text_error');

$data['text_error'] = $this->language->get('text_error');

$data['button_continue'] = $this->language->get('button_continue');

$data['continue'] = $this->url->link('common/home');

$this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found');

$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/error/not_found.tpl', $data));
} else {
$this->response->setOutput($this->load->view('default/template/error/not_found.tpl', $data));
}
}
}
}

Изменено пользователем arthyrgrex
Ссылка на комментарий
Поделиться на других сайтах


Вот мой /catalog/controller/product/catalog.php

class ControllerProductCategory extends Controller {

public function index() {

$this->load->language('product/category');

$this->load->model('catalog/category');

$this->load->model('catalog/product');

$this->load->model('tool/image');

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

$filter = $this->request->get['filter'];

} else {

$filter = '';

}

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

$sort = $this->request->get['sort'];

} else {

$sort = 'p.sort_order';

}

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

$order = $this->request->get['order'];

} else {

$order = 'ASC';

}

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

$page = $this->request->get['page'];

} else {

$page = 1;

}

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

$limit = (int)$this->request->get['limit'];

} else {

$limit = $this->config->get('config_product_limit');

}

$data['breadcrumbs'] = array();

$data['breadcrumbs'][] = array(

'text' => $this->language->get('text_home'),

'href' => $this->url->link('common/home')

);

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

$url = '';

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

$url .= '&sort=' . $this->request->get['sort'];

}

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

$url .= '&order=' . $this->request->get['order'];

}

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

$url .= '&limit=' . $this->request->get['limit'];

}

$path = '';

$parts = explode('_', (string)$this->request->get['path']);

$category_id = (int)array_pop($parts);

foreach ($parts as $path_id) {

if (!$path) {

$path = (int)$path_id;

} else {

$path .= '_' . (int)$path_id;

}

$category_info = $this->model_catalog_category->getCategory($path_id);

if ($category_info) {

$data['breadcrumbs'][] = array(

'text' => $category_info['name'],

'href' => $this->url->link('product/category', 'path=' . $path . $url)

);

}

}

} else {

$category_id = 0;

}

$category_info = $this->model_catalog_category->getCategory($category_id);

if ($category_info) {

if ($category_info['meta_title']) {

$this->document->setTitle($category_info['meta_title']);

} else {

$this->document->setTitle($category_info['name']);

}

$this->document->setDescription($category_info['meta_description']);

$this->document->setKeywords($category_info['meta_keyword']);

if ($category_info['meta_h1']) {

$data['heading_title'] = $category_info['meta_h1'];

} else {

$data['heading_title'] = $category_info['name'];

}

$data['text_refine'] = $this->language->get('text_refine');

$data['text_empty'] = $this->language->get('text_empty');

$data['text_quantity'] = $this->language->get('text_quantity');

$data['text_manufacturer'] = $this->language->get('text_manufacturer');

$data['text_model'] = $this->language->get('text_model');

$data['text_price'] = $this->language->get('text_price');

$data['text_tax'] = $this->language->get('text_tax');

$data['text_points'] = $this->language->get('text_points');

$data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));

$data['text_sort'] = $this->language->get('text_sort');

$data['text_limit'] = $this->language->get('text_limit');

$data['button_cart'] = $this->language->get('button_cart');

$data['button_wishlist'] = $this->language->get('button_wishlist');

$data['button_compare'] = $this->language->get('button_compare');

$data['button_continue'] = $this->language->get('button_continue');

$data['button_list'] = $this->language->get('button_list');

$data['button_grid'] = $this->language->get('button_grid');

// Set the last category breadcrumb

$data['breadcrumbs'][] = array(

'text' => $category_info['name'],

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'])

);

if ($category_info['image']) {

$data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));

$this->document->setOgImage($data['thumb']);

} else {

$data['thumb'] = '';

}

$data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');

$data['compare'] = $this->url->link('product/compare');

$url = '';

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

$url .= '&filter=' . $this->request->get['filter'];

}

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

$url .= '&sort=' . $this->request->get['sort'];

}

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

$url .= '&order=' . $this->request->get['order'];

}

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

$url .= '&limit=' . $this->request->get['limit'];

}

$data['categories'] = array();

$results = $this->model_catalog_category->getCategories($category_id);

foreach ($results as $result) {

$filter_data = array(

'filter_category_id' => $result['category_id'],

'filter_sub_category' => true

);

$data['categories'][] = array(

'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)

);

}

$data['products'] = array();

$filter_data = array(

'filter_category_id' => $category_id,

'filter_filter' => $filter,

'sort' => $sort,

'order' => $order,

'start' => ($page - 1) * $limit,

'limit' => $limit

);

$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

$results = $this->model_catalog_product->getProducts($filter_data);

foreach ($results as $result) {

if ($result['image']) {

$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));

} else {

$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));

}

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {

$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));

} else {

$price = false;

}

if ((float)$result['special']) {

$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));

} else {

$special = false;

}

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

$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);

} else {

$tax = false;

}

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

$rating = (int)$result['rating'];

} else {

$rating = false;

}

$data['products'][] = array(

'product_id' => $result['product_id'],

'thumb' => $image,

'name' => $result['name'],

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',

'price' => $price,

'special' => $special,

'tax' => $tax,

'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1,

'rating' => $result['rating'],

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

);

}

$url = '';

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

$url .= '&filter=' . $this->request->get['filter'];

}

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

$url .= '&limit=' . $this->request->get['limit'];

}

$data['sorts'] = array();

$data['sorts'][] = array(

'text' => $this->language->get('text_default'),

'value' => 'p.sort_order-ASC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)

);

$data['sorts'][] = array(

'text' => $this->language->get('text_name_asc'),

'value' => 'pd.name-ASC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url)

);

$data['sorts'][] = array(

'text' => $this->language->get('text_name_desc'),

'value' => 'pd.name-DESC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url)

);

$data['sorts'][] = array(

'text' => $this->language->get('text_price_asc'),

'value' => 'p.price-ASC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url)

);

$data['sorts'][] = array(

'text' => $this->language->get('text_price_desc'),

'value' => 'p.price-DESC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url)

);

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

$data['sorts'][] = array(

'text' => $this->language->get('text_rating_desc'),

'value' => 'rating-DESC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url)

);

$data['sorts'][] = array(

'text' => $this->language->get('text_rating_asc'),

'value' => 'rating-ASC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url)

);

}

$data['sorts'][] = array(

'text' => $this->language->get('text_model_asc'),

'value' => 'p.model-ASC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url)

);

$data['sorts'][] = array(

'text' => $this->language->get('text_model_desc'),

'value' => 'p.model-DESC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url)

);

$url = '';

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

$url .= '&filter=' . $this->request->get['filter'];

}

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

$url .= '&sort=' . $this->request->get['sort'];

}

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

$url .= '&order=' . $this->request->get['order'];

}

$data['limits'] = array();

$limits = array_unique(array($this->config->get('config_product_limit'), 25, 50, 75, 100));

sort($limits);

foreach($limits as $value) {

$data['limits'][] = array(

'text' => $value,

'value' => $value,

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value)

);

}

$url = '';

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

$url .= '&filter=' . $this->request->get['filter'];

}

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

$url .= '&sort=' . $this->request->get['sort'];

}

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

$url .= '&order=' . $this->request->get['order'];

}

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

$url .= '&limit=' . $this->request->get['limit'];

}

$pagination = new Pagination();

$pagination->total = $product_total;

$pagination->page = $page;

$pagination->limit = $limit;

$pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}');

$data['pagination'] = $pagination->render();

$data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

// http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html

if ($page == 1) {

$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], 'SSL'), 'canonical');

} elseif ($page == 2) {

$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], 'SSL'), 'prev');

} else {

$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page - 1), 'SSL'), 'prev');

}

if ($limit && ceil($product_total / $limit) > $page) {

$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), 'SSL'), 'next');

}

$data['sort'] = $sort;

$data['order'] = $order;

$data['limit'] = $limit;

$data['continue'] = $this->url->link('common/home');

$data['column_left'] = $this->load->controller('common/column_left');

$data['column_right'] = $this->load->controller('common/column_right');

$data['content_top'] = $this->load->controller('common/content_top');

$data['content_bottom'] = $this->load->controller('common/content_bottom');

$data['footer'] = $this->load->controller('common/footer');

$data['header'] = $this->load->controller('common/header');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {

$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/category.tpl', $data));

} else {

$this->response->setOutput($this->load->view('default/template/product/category.tpl', $data));

}

} else {

$url = '';

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

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

}

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

$url .= '&filter=' . $this->request->get['filter'];

}

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

$url .= '&sort=' . $this->request->get['sort'];

}

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

$url .= '&order=' . $this->request->get['order'];

}

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

$url .= '&page=' . $this->request->get['page'];

}

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

$url .= '&limit=' . $this->request->get['limit'];

}

$data['breadcrumbs'][] = array(

'text' => $this->language->get('text_error'),

'href' => $this->url->link('product/category', $url)

);

$this->document->setTitle($this->language->get('text_error'));

$data['heading_title'] = $this->language->get('text_error');

$data['text_error'] = $this->language->get('text_error');

$data['button_continue'] = $this->language->get('button_continue');

$data['continue'] = $this->url->link('common/home');

$this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found');

$data['column_left'] = $this->load->controller('common/column_left');

$data['column_right'] = $this->load->controller('common/column_right');

$data['content_top'] = $this->load->controller('common/content_top');

$data['content_bottom'] = $this->load->controller('common/content_bottom');

$data['footer'] = $this->load->controller('common/footer');

$data['header'] = $this->load->controller('common/header');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {

$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/error/not_found.tpl', $data));

} else {

$this->response->setOutput($this->load->view('default/template/error/not_found.tpl', $data));

}

}

}

}

Это у вас контроллер OC 2.x 

 

По идее надо этот код удалить:

			// Set the last category breadcrumb
			$data['breadcrumbs'][] = array(
				'text' => $category_info['name'],
				'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'])
			);

Только тогда и все остальное что у меня в инструкции надо немного изменить.. под 2 версию, так как там все под 1,5 было

 

Изменено пользователем Waha
Ссылка на комментарий
Поделиться на других сайтах

После таких правок на странице товара все хорошо:
http://modamio2.ru/detskiy-djemper-v-morskom-style

а вот на страницах категорий и подкатегорий:
http://modamio2.ru/trikotaj-dlya-devochek/
http://modamio2.ru/detskaya-odejda/

ругается на 96 строку:
 

 

Notice: Indirect modification of overloaded property ControllerProductCategory::$data has no effect in /var/www/arthyrgrex/data/www/modamio2.ru/catalog/controller/product/category.php on line 96Notice: Indirect modification of overloaded property ControllerProductCategory::$data has no effect in /var/www/arthyrgrex/data/www/modamio2.ru/catalog/controller/product/category.php on line 96

это строка
 

 

$this->data['breadcrumbs'][] = array(

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


Попробовал изменить
$this->data['breadcrumbs'][] = array(
на
$data['breadcrumbs'][] = array(

Результат неоднозначный, но больше похож на правду )
Работает - но немного криво:

в Хлебных крошках дублируется предыдущая категория:
http://modamio2.ru/trikotaj-dlya-devochek/

Изменено пользователем arthyrgrex
Ссылка на комментарий
Поделиться на других сайтах


Попробовал изменить

$this->data['breadcrumbs'][] = array(

на

$data['breadcrumbs'][] = array(

Результат неоднозначный, но больше похож на правду )

Работает - но немного криво:

в Хлебных крошках дублируется предыдущая категория:

http://modamio2.ru/trikotaj-dlya-devochek/

 

Дайте фтп в ЛС гляну поправлю

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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