WellChuck Опубликовано: 12 января 2017 Погделиться Опубликовано: 12 января 2017 Уважаемые гуру, очень нуждаюсь в вашей помощи! Собственно возникла проблема с рилитоспособность seo url в Opencart 2.3.0.2. Точнее сами ссылки рилииют, проблема заключается в том, что пересиет рилиить пагинация, сортировка и лимиты товаров на страницу категории. В одной из тем дали ссылку на икое решение. Вот только проблем с появлением ?page={page}, у меня нет... Ссылки генерируются, но не прожимаются :mellow: <a href="javascript:void(0);" onclick="oclayerednavigationajax.filter("http://site/kabel?page=2")">2</a> Куда копать? Что гделать? :mellow: 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Dotrox Опубликовано: 12 января 2017 Погделиться Опубликовано: 12 января 2017 <a href="javascript:void(0);" onclick="oclayerednavigationajax.filter("http://site/kabel?page=2")">2</a> Ну, если у вас ссылки выглядят ик, то SEO Url тут не причём. У вас эту ссылку должен обрабатывать js и загружать контент акаксом. Посмотрите в консоли браузера, что происходит после клика на икую ссылку и, возможно, им есть ошибки ещё до клика. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну, если у вас ссылки выглядят ик, то SEO Url тут не причём. У вас эту ссылку должен обрабатывать js и загружать контент акаксом. Посмотрите в консоли браузера, что происходит после клика на икую ссылку и, возможно, им есть ошибки ещё до клика. Пропотому чтовал разобраться со скриптом, не осилил :( $(document).ready(function() { oclayerednavigationajax.productViewChange(); oclayerednavigationajax.paginationChangeAction(); }); var oclayerednavigationajax = { /* Filter action */ 'filter' : function(filter_url) { var old_route = 'route=product/category'; var new_route = 'route=extension/module/oclayerednavigation/category'; if(filter_url.search(old_route) != -1) { filter_url = filter_url.replace(old_route, new_route); } if(filter_url.search(new_route) != -1) { $.ajax({ url : filter_url, type : 'get', beforeSend : function () { $('.layered-navigation-block').show(); $('.ajax-loader').show(); }, success : function(json) { $('.filter-url').val(json['filter_action']); $('.price-url').val(json['price_action']); $('.custom-category').html(json['result_html']); $('.layered').html(json['layered_html']); oclayerednavigationajax.paginationChangeAction(); oclayerednavigationajax.productViewChange(); $('.layered-navigation-block').hide(); $('.ajax-loader').hide(); } }); } }, /* Use again and update ajaxComplete from common.js */ 'productViewChange' : function() { // Product List $('#list-view').click(function() { $('#content .product-layout > .clearfix').remove(); $('#content .product-layout').attr('class', 'product-layout product-list col-xs-12'); localStorage.setItem('display', 'list'); }); // Product Grid $('#grid-view').click(function() { $('#content .product-layout > .clearfix').remove(); // What a shame bootstrap does not take into account dynamically loaded columns cols = $('#column-right, #column-left').length; if (cols == 2) { $('#content .product-layout').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12'); } else if (cols == 1) { $('#content .product-layout').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12'); } else { $('#content .product-layout').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12'); } localStorage.setItem('display', 'grid'); }); if (localStorage.getItem('display') == 'list') { $('#list-view').trigger('click'); } else { $('#grid-view').trigger('click'); } }, /* Modify pagination links */ paginationChangeAction: function () { $('.custom-category .pagination a').each(function () { var href = $(this).attr('href'); $(this).attr('onclick', 'oclayerednavigationajax.filter("'+ href +'")'); $(this).attr('href', 'javascript:void(0);'); }); } }; Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 А гдело ики в ЧПУ. Скрипт иещёт не ЧПУ роут и не находя его просто ничего не гделает. Но тут правками в этом js не отгделаться, нужно ещё как-то передать в скрипт id текуещёй категории. Покажите файл /extension/module/oclayerednavigation/category.php. Ксити, этот js код у вас в отгдельном js файле или в теле шаблона (если да, то какого)? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 А гдело ики в ЧПУ. Скрипт иещёт не ЧПУ роут и не находя его просто ничего не гделает. Но тут правками в этом js не отгделаться, нужно ещё как-то передать в скрипт id текуещёй категории. Покажите файл /extension/module/oclayerednavigation/category.php. Ксити, этот js код у вас в отгдельном js файле или в теле шаблона (если да, то какого)? js в отгдельном файле <?php class ControllerExtensionModuleCategory extends Controller { public function index() { $this->load->language('extension/module/category'); $data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_id'] = $parts[0]; } else { $data['category_id'] = 0; } if (isset($parts[1])) { $data['child_id'] = $parts[1]; } else { $data['child_id'] = 0; } $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { $children_data = array(); if ($category['category_id'] == $data['category_id']) { $children = $this->model_catalog_category->getCategories($category['category_id']); foreach($children as $child) { $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true); $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } } $filter_data = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } return $this->load->view('extension/module/category', $data); } } Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 .... Чиийте внимательно что вам пишут Покажите файл /extension/module/oclayerednavigation/category.php. А вы что "показали"? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 (изменено) oclayerednavigation - в папке модуля не нашел catalog/controller/extension/module/category.php <?php class ControllerExtensionModuleCategory extends Controller { public function index() { $this->load->language('extension/module/category'); $data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_id'] = $parts[0]; } else { $data['category_id'] = 0; } if (isset($parts[1])) { $data['child_id'] = $parts[1]; } else { $data['child_id'] = 0; } $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { $children_data = array(); if ($category['category_id'] == $data['category_id']) { $children = $this->model_catalog_category->getCategories($category['category_id']); foreach($children as $child) { $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true); $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } } $filter_data = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } return $this->load->view('extension/module/category', $data); } } Изменено 16 января 2017 пользователем WellChuck Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 oclayerednavigation - в папке модуля не нашел ... Ну как это нету, если в JS игдет к нему обраещёние судя по коду 'route=extension/module/oclayerednavigation/category'; Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну catalog/controller/extension/module/ - полный путь, дальше папок правда нету... :mellow: category.php лежал в папке module Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну catalog/controller/extension/module/ - полный путь, дальше папок правда нету... :mellow: category.php лежал в папке module Да причем згдесь папка! extension/module/oclayerednavigation.php А category просто его метод, который вызывает JS Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 (изменено) Да причем згдесь папка! extension/module/oclayerednavigation.php А category просто его метод, который вызывает JS Прошу проещёния <?php class ControllerExtensionModuleOclayerednavigation extends Controller { /** * Load layered navigation block */ public function index() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); $data = array(); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['heading_title'] = $this->language->get('heading_title'); $data['button_filter'] = $this->language->get('button_filter'); $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']; } $data['action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $rate = (float) $this->currency->getValue($this->session->data['currency']); $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigation.tpl', $data); } } /** * Load Layer after filter */ public function layer() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $rate = (float) $this->currency->getValue($this->session->data['currency']); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $data['current_min_price'] = $price_data[0]; $data['current_max_price'] = $price_data[1]; } else { $data['current_min_price'] = $data['min_price']; $data['current_max_price'] = $data['max_price']; } $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigationfilter.tpl', $data); } } /** * Load category view */ public function category() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $json = array(); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } 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 = $this->request->get['limit']; } else { $limit = $this->config->get($this->config->get('config_theme') . '_product_limit'); } 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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $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['text_sale'] = $this->language->get('text_sale'); $data['text_new'] = $this->language->get('text_new'); $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'); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')); } 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['price'])) { $url .= '&price=' . $this->request->get['price']; } 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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $result['category_id'] . $url ); } $data['products'] = array(); $rate = (float) $this->currency->getValue($this->session->data['currency']); // Min and Max Price $filter_price = array(); if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $filter_price['min_price'] = ceil($price_data[0] / $rate - 1); $filter_price['max_price'] = round($price_data[1] / $rate); } // var_dump($filter_price);die; $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'filter_price' => $filter_price, '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); $data['new_products'] = array(); $filter_new_data = array( 'sort' => 'p.date_added', 'order' => 'DESC', 'start' => 0, 'limit' => 10 ); $new_results = $this->model_catalog_product->getProducts($filter_new_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } if ($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')), $this->session->data['currency']); } 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')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $is_new = false; if ($new_results) { foreach($new_results as $new_r) { if($result['product_id'] == $new_r['product_id']) { $is_new = true; } } } $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($this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'is_new' => $is_new, '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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.sort_order&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.price&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=ASC' . $url ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.model&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get($this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $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)); if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), true), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $json['result_html'] = $this->load->view('extension/module/oclayerednavigation/occategoryfilter.tpl', $data); $url = ''; if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } 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']; } $json['filter_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $json['price_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $json['layered_html'] = $this->layer(); } else { $json['result_html'] = "No No No"; } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Изменено 16 января 2017 пользователем WellChuck Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 oclayerednavigation - в папке модуля не нашел Если нет /extension/module/oclayerednavigation/category.php, то должен быть /extension/module/oclayerednavigation.php, потому что тогда, гдействительно, category - это не файл, а метод в oclayerednavigation.php. Если и oclayerednavigation.php нет, то пыиться что-то править в js бессмысленно - без этого файла ничего всё равно рилиить не бугдет. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :|Это ггде икого говнокода вы "набрали" foreach($limits as $value) {$data['limits'][] = array('text' => $value,'value' => $value,'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url . '&limit=' . $value);}...$pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $url . '&page={page}' мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем stratup.php: if (!$query->num_rows) { $this->config->set('config_url', HTTP_SERVER); $this->config->set('config_ssl', HTTPS_SERVER); } Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? $json['result_html'] = "No No No"; :? :roll: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :| Это ггде икого говнокода вы "набрали" мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? шло с темой :mellow: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 шло с темой :mellow: Как обычно куча говномодулей в придачу к г..ну в красивой упаковке Требуйте назад гденьги Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 О да... тема изобилует просто говнокодом http: //saharafashion3.demo.towerthemes.com/index.php?route=module/ocquickview/seoview&ourl=http://saharafashion3.demo.towerthemes.com/gallery/fashion-3 А улитывая что google прекрасно уже понимает json на страниэто (не через ajax замечу) - "то это залёт солдат" - а точнее дубль товара Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации SEO URL и возврат товара Автор: filog, 21 гдекабря 2019 5 ответов 1 457 просмотров chukcha 9 января Отклюлить проверку уникальности SEO-URL Автор: Nikolay_23, 14 апреля 2022 5 ответов 705 просмотров nikoshot 27 ноября 2022 Как изменить seo url главной страницы? Автор: VRN, 30 мари 2022 3 отвеи 774 просмотра onisno 21 ноября 2022 SEO URL Generator PRO для OpenCart 2x & 3.x Автор: SergeTkach, 7 мари 2018 0 комменириев 41 669 просмотров SergeTkach 7 мари 2018 [Подгдержка] OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang 1 2 3 4 11 Автор: ocdev_pro, 24 гдекабря 2019 языки мультиязык (и ещё 10) Теги: языки мультиязык мультиязылие язык language язык чпу язык ссылка url чпу url opencart languages management url языка язык в url seo мультиязык 262 отвеи 28 556 просмотров Eugen47 6 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Seo URL - Opencart 2.3.0.2 Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 × Уже зарегистрированы? Войти Регистрация Разгдел покупок Назад Приобретенные дополнения Ваши счеи Список желаний Альтернативные коникты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Докумениция История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности. Я принимаю
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 (изменено) oclayerednavigation - в папке модуля не нашел catalog/controller/extension/module/category.php <?php class ControllerExtensionModuleCategory extends Controller { public function index() { $this->load->language('extension/module/category'); $data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_id'] = $parts[0]; } else { $data['category_id'] = 0; } if (isset($parts[1])) { $data['child_id'] = $parts[1]; } else { $data['child_id'] = 0; } $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { $children_data = array(); if ($category['category_id'] == $data['category_id']) { $children = $this->model_catalog_category->getCategories($category['category_id']); foreach($children as $child) { $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true); $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } } $filter_data = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } return $this->load->view('extension/module/category', $data); } } Изменено 16 января 2017 пользователем WellChuck Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 oclayerednavigation - в папке модуля не нашел ... Ну как это нету, если в JS игдет к нему обраещёние судя по коду 'route=extension/module/oclayerednavigation/category'; Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну catalog/controller/extension/module/ - полный путь, дальше папок правда нету... :mellow: category.php лежал в папке module Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну catalog/controller/extension/module/ - полный путь, дальше папок правда нету... :mellow: category.php лежал в папке module Да причем згдесь папка! extension/module/oclayerednavigation.php А category просто его метод, который вызывает JS Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 (изменено) Да причем згдесь папка! extension/module/oclayerednavigation.php А category просто его метод, который вызывает JS Прошу проещёния <?php class ControllerExtensionModuleOclayerednavigation extends Controller { /** * Load layered navigation block */ public function index() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); $data = array(); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['heading_title'] = $this->language->get('heading_title'); $data['button_filter'] = $this->language->get('button_filter'); $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']; } $data['action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $rate = (float) $this->currency->getValue($this->session->data['currency']); $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigation.tpl', $data); } } /** * Load Layer after filter */ public function layer() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $rate = (float) $this->currency->getValue($this->session->data['currency']); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $data['current_min_price'] = $price_data[0]; $data['current_max_price'] = $price_data[1]; } else { $data['current_min_price'] = $data['min_price']; $data['current_max_price'] = $data['max_price']; } $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigationfilter.tpl', $data); } } /** * Load category view */ public function category() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $json = array(); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } 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 = $this->request->get['limit']; } else { $limit = $this->config->get($this->config->get('config_theme') . '_product_limit'); } 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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $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['text_sale'] = $this->language->get('text_sale'); $data['text_new'] = $this->language->get('text_new'); $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'); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')); } 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['price'])) { $url .= '&price=' . $this->request->get['price']; } 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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $result['category_id'] . $url ); } $data['products'] = array(); $rate = (float) $this->currency->getValue($this->session->data['currency']); // Min and Max Price $filter_price = array(); if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $filter_price['min_price'] = ceil($price_data[0] / $rate - 1); $filter_price['max_price'] = round($price_data[1] / $rate); } // var_dump($filter_price);die; $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'filter_price' => $filter_price, '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); $data['new_products'] = array(); $filter_new_data = array( 'sort' => 'p.date_added', 'order' => 'DESC', 'start' => 0, 'limit' => 10 ); $new_results = $this->model_catalog_product->getProducts($filter_new_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } if ($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')), $this->session->data['currency']); } 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')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $is_new = false; if ($new_results) { foreach($new_results as $new_r) { if($result['product_id'] == $new_r['product_id']) { $is_new = true; } } } $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($this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'is_new' => $is_new, '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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.sort_order&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.price&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=ASC' . $url ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.model&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get($this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $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)); if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), true), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $json['result_html'] = $this->load->view('extension/module/oclayerednavigation/occategoryfilter.tpl', $data); $url = ''; if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } 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']; } $json['filter_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $json['price_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $json['layered_html'] = $this->layer(); } else { $json['result_html'] = "No No No"; } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Изменено 16 января 2017 пользователем WellChuck Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 oclayerednavigation - в папке модуля не нашел Если нет /extension/module/oclayerednavigation/category.php, то должен быть /extension/module/oclayerednavigation.php, потому что тогда, гдействительно, category - это не файл, а метод в oclayerednavigation.php. Если и oclayerednavigation.php нет, то пыиться что-то править в js бессмысленно - без этого файла ничего всё равно рилиить не бугдет. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :|Это ггде икого говнокода вы "набрали" foreach($limits as $value) {$data['limits'][] = array('text' => $value,'value' => $value,'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url . '&limit=' . $value);}...$pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $url . '&page={page}' мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем stratup.php: if (!$query->num_rows) { $this->config->set('config_url', HTTP_SERVER); $this->config->set('config_ssl', HTTPS_SERVER); } Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? $json['result_html'] = "No No No"; :? :roll: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :| Это ггде икого говнокода вы "набрали" мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? шло с темой :mellow: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 шло с темой :mellow: Как обычно куча говномодулей в придачу к г..ну в красивой упаковке Требуйте назад гденьги Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 О да... тема изобилует просто говнокодом http: //saharafashion3.demo.towerthemes.com/index.php?route=module/ocquickview/seoview&ourl=http://saharafashion3.demo.towerthemes.com/gallery/fashion-3 А улитывая что google прекрасно уже понимает json на страниэто (не через ajax замечу) - "то это залёт солдат" - а точнее дубль товара Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации SEO URL и возврат товара Автор: filog, 21 гдекабря 2019 5 ответов 1 457 просмотров chukcha 9 января Отклюлить проверку уникальности SEO-URL Автор: Nikolay_23, 14 апреля 2022 5 ответов 705 просмотров nikoshot 27 ноября 2022 Как изменить seo url главной страницы? Автор: VRN, 30 мари 2022 3 отвеи 774 просмотра onisno 21 ноября 2022 SEO URL Generator PRO для OpenCart 2x & 3.x Автор: SergeTkach, 7 мари 2018 0 комменириев 41 669 просмотров SergeTkach 7 мари 2018 [Подгдержка] OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang 1 2 3 4 11 Автор: ocdev_pro, 24 гдекабря 2019 языки мультиязык (и ещё 10) Теги: языки мультиязык мультиязылие язык language язык чпу язык ссылка url чпу url opencart languages management url языка язык в url seo мультиязык 262 отвеи 28 556 просмотров Eugen47 6 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Seo URL - Opencart 2.3.0.2 Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 × Уже зарегистрированы? Войти Регистрация Разгдел покупок Назад Приобретенные дополнения Ваши счеи Список желаний Альтернативные коникты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Докумениция История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности. Я принимаю
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну catalog/controller/extension/module/ - полный путь, дальше папок правда нету... :mellow: category.php лежал в папке module Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну catalog/controller/extension/module/ - полный путь, дальше папок правда нету... :mellow: category.php лежал в папке module Да причем згдесь папка! extension/module/oclayerednavigation.php А category просто его метод, который вызывает JS Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 (изменено) Да причем згдесь папка! extension/module/oclayerednavigation.php А category просто его метод, который вызывает JS Прошу проещёния <?php class ControllerExtensionModuleOclayerednavigation extends Controller { /** * Load layered navigation block */ public function index() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); $data = array(); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['heading_title'] = $this->language->get('heading_title'); $data['button_filter'] = $this->language->get('button_filter'); $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']; } $data['action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $rate = (float) $this->currency->getValue($this->session->data['currency']); $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigation.tpl', $data); } } /** * Load Layer after filter */ public function layer() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $rate = (float) $this->currency->getValue($this->session->data['currency']); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $data['current_min_price'] = $price_data[0]; $data['current_max_price'] = $price_data[1]; } else { $data['current_min_price'] = $data['min_price']; $data['current_max_price'] = $data['max_price']; } $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigationfilter.tpl', $data); } } /** * Load category view */ public function category() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $json = array(); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } 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 = $this->request->get['limit']; } else { $limit = $this->config->get($this->config->get('config_theme') . '_product_limit'); } 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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $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['text_sale'] = $this->language->get('text_sale'); $data['text_new'] = $this->language->get('text_new'); $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'); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')); } 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['price'])) { $url .= '&price=' . $this->request->get['price']; } 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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $result['category_id'] . $url ); } $data['products'] = array(); $rate = (float) $this->currency->getValue($this->session->data['currency']); // Min and Max Price $filter_price = array(); if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $filter_price['min_price'] = ceil($price_data[0] / $rate - 1); $filter_price['max_price'] = round($price_data[1] / $rate); } // var_dump($filter_price);die; $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'filter_price' => $filter_price, '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); $data['new_products'] = array(); $filter_new_data = array( 'sort' => 'p.date_added', 'order' => 'DESC', 'start' => 0, 'limit' => 10 ); $new_results = $this->model_catalog_product->getProducts($filter_new_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } if ($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')), $this->session->data['currency']); } 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')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $is_new = false; if ($new_results) { foreach($new_results as $new_r) { if($result['product_id'] == $new_r['product_id']) { $is_new = true; } } } $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($this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'is_new' => $is_new, '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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.sort_order&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.price&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=ASC' . $url ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.model&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get($this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $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)); if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), true), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $json['result_html'] = $this->load->view('extension/module/oclayerednavigation/occategoryfilter.tpl', $data); $url = ''; if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } 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']; } $json['filter_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $json['price_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $json['layered_html'] = $this->layer(); } else { $json['result_html'] = "No No No"; } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Изменено 16 января 2017 пользователем WellChuck Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 oclayerednavigation - в папке модуля не нашел Если нет /extension/module/oclayerednavigation/category.php, то должен быть /extension/module/oclayerednavigation.php, потому что тогда, гдействительно, category - это не файл, а метод в oclayerednavigation.php. Если и oclayerednavigation.php нет, то пыиться что-то править в js бессмысленно - без этого файла ничего всё равно рилиить не бугдет. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :|Это ггде икого говнокода вы "набрали" foreach($limits as $value) {$data['limits'][] = array('text' => $value,'value' => $value,'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url . '&limit=' . $value);}...$pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $url . '&page={page}' мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем stratup.php: if (!$query->num_rows) { $this->config->set('config_url', HTTP_SERVER); $this->config->set('config_ssl', HTTPS_SERVER); } Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? $json['result_html'] = "No No No"; :? :roll: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :| Это ггде икого говнокода вы "набрали" мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? шло с темой :mellow: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 шло с темой :mellow: Как обычно куча говномодулей в придачу к г..ну в красивой упаковке Требуйте назад гденьги Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 О да... тема изобилует просто говнокодом http: //saharafashion3.demo.towerthemes.com/index.php?route=module/ocquickview/seoview&ourl=http://saharafashion3.demo.towerthemes.com/gallery/fashion-3 А улитывая что google прекрасно уже понимает json на страниэто (не через ajax замечу) - "то это залёт солдат" - а точнее дубль товара Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации SEO URL и возврат товара Автор: filog, 21 гдекабря 2019 5 ответов 1 457 просмотров chukcha 9 января Отклюлить проверку уникальности SEO-URL Автор: Nikolay_23, 14 апреля 2022 5 ответов 705 просмотров nikoshot 27 ноября 2022 Как изменить seo url главной страницы? Автор: VRN, 30 мари 2022 3 отвеи 774 просмотра onisno 21 ноября 2022 SEO URL Generator PRO для OpenCart 2x & 3.x Автор: SergeTkach, 7 мари 2018 0 комменириев 41 669 просмотров SergeTkach 7 мари 2018 [Подгдержка] OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang 1 2 3 4 11 Автор: ocdev_pro, 24 гдекабря 2019 языки мультиязык (и ещё 10) Теги: языки мультиязык мультиязылие язык language язык чпу язык ссылка url чпу url opencart languages management url языка язык в url seo мультиязык 262 отвеи 28 556 просмотров Eugen47 6 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Seo URL - Opencart 2.3.0.2 Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 × Уже зарегистрированы? Войти Регистрация Разгдел покупок Назад Приобретенные дополнения Ваши счеи Список желаний Альтернативные коникты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Докумениция История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности. Я принимаю
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 (изменено) Да причем згдесь папка! extension/module/oclayerednavigation.php А category просто его метод, который вызывает JS Прошу проещёния <?php class ControllerExtensionModuleOclayerednavigation extends Controller { /** * Load layered navigation block */ public function index() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); $data = array(); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['heading_title'] = $this->language->get('heading_title'); $data['button_filter'] = $this->language->get('button_filter'); $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']; } $data['action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $rate = (float) $this->currency->getValue($this->session->data['currency']); $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigation.tpl', $data); } } /** * Load Layer after filter */ public function layer() { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } $category_id = end($parts); $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->load->language('extension/module/oclayerednavigation'); $data['clear_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id); if (isset($this->request->get['filter'])) { $data['filter_category'] = explode(',', $this->request->get['filter']); } else { $data['filter_category'] = array(); } $this->load->model('catalog/product'); // Min price and Max price of product collection /* Begin */ $min_price = 10000000; // Set the large number $max_price = 0; // Set the small number $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id ); $rate = (float) $this->currency->getValue($this->session->data['currency']); $results = $this->model_catalog_product->getProducts($filter_data); foreach($results as $result) { $price = (float) $result['price']; if($price < $min_price) { $min_price = $price; } if($price > $max_price) { $max_price = $price; } } $data['min_price'] = ceil($min_price * $rate); $data['max_price'] = round($max_price * $rate); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $data['current_min_price'] = $price_data[0]; $data['current_max_price'] = $price_data[1]; } else { $data['current_min_price'] = $data['min_price']; $data['current_max_price'] = $data['max_price']; } $data['currency_symbol'] = $this->currency->getSymbolLeft($this->session->data['currency']); /* End */ $data['filter_groups'] = array(); $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $childen_data = array(); foreach ($filter_group['filter'] as $filter) { $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $childen_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'e_name' => $filter['name'] ); } $data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $childen_data ); } } } if($data['filter_groups']) { return $this->load->view('extension/module/oclayerednavigation/oclayerednavigationfilter.tpl', $data); } } /** * Load category view */ public function category() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $json = array(); if (isset($this->request->get['price'])) { $price_data = $this->request->get['price']; } else { $price_data = ''; } 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 = $this->request->get['limit']; } else { $limit = $this->config->get($this->config->get('config_theme') . '_product_limit'); } 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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $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['text_sale'] = $this->language->get('text_sale'); $data['text_new'] = $this->language->get('text_new'); $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'); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')); } 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['price'])) { $url .= '&price=' . $this->request->get['price']; } 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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $result['category_id'] . $url ); } $data['products'] = array(); $rate = (float) $this->currency->getValue($this->session->data['currency']); // Min and Max Price $filter_price = array(); if (isset($this->request->get['price'])) { $price_data = explode(',', $price_data); $filter_price['min_price'] = ceil($price_data[0] / $rate - 1); $filter_price['max_price'] = round($price_data[1] / $rate); } // var_dump($filter_price);die; $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'filter_price' => $filter_price, '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); $data['new_products'] = array(); $filter_new_data = array( 'sort' => 'p.date_added', 'order' => 'DESC', 'start' => 0, 'limit' => 10 ); $new_results = $this->model_catalog_product->getProducts($filter_new_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } if ($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')), $this->session->data['currency']); } 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')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $is_new = false; if ($new_results) { foreach($new_results as $new_r) { if($result['product_id'] == $new_r['product_id']) { $is_new = true; } } } $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($this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'is_new' => $is_new, '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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.sort_order&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=pd.name&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.price&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=DESC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=rating&order=ASC' . $url ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&sort=p.model&order=ASC' . $url ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . '&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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get($this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $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)); if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), true), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $json['result_html'] = $this->load->view('extension/module/oclayerednavigation/occategoryfilter.tpl', $data); $url = ''; if (isset($this->request->get['price'])) { $url .= '&price=' . $this->request->get['price']; } 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']; } $json['filter_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $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']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $json['price_action'] = str_replace('&', '&', $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url); $json['layered_html'] = $this->layer(); } else { $json['result_html'] = "No No No"; } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Изменено 16 января 2017 пользователем WellChuck Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 oclayerednavigation - в папке модуля не нашел Если нет /extension/module/oclayerednavigation/category.php, то должен быть /extension/module/oclayerednavigation.php, потому что тогда, гдействительно, category - это не файл, а метод в oclayerednavigation.php. Если и oclayerednavigation.php нет, то пыиться что-то править в js бессмысленно - без этого файла ничего всё равно рилиить не бугдет. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :|Это ггде икого говнокода вы "набрали" foreach($limits as $value) {$data['limits'][] = array('text' => $value,'value' => $value,'href' => $this->config->get('config_url') . 'index.php?route=extension/module/oclayerednavigation/category&path=' . $category_id . $url . '&limit=' . $value);}...$pagination->url = $this->config->get('config_url') . 'index.php?route=product/category&path=' . $category_id . $url . '&page={page}' мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем stratup.php: if (!$query->num_rows) { $this->config->set('config_url', HTTP_SERVER); $this->config->set('config_ssl', HTTPS_SERVER); } Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? $json['result_html'] = "No No No"; :? :roll: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :| Это ггде икого говнокода вы "набрали" мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? шло с темой :mellow: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 шло с темой :mellow: Как обычно куча говномодулей в придачу к г..ну в красивой упаковке Требуйте назад гденьги Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 О да... тема изобилует просто говнокодом http: //saharafashion3.demo.towerthemes.com/index.php?route=module/ocquickview/seoview&ourl=http://saharafashion3.demo.towerthemes.com/gallery/fashion-3 А улитывая что google прекрасно уже понимает json на страниэто (не через ajax замечу) - "то это залёт солдат" - а точнее дубль товара Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации SEO URL и возврат товара Автор: filog, 21 гдекабря 2019 5 ответов 1 457 просмотров chukcha 9 января Отклюлить проверку уникальности SEO-URL Автор: Nikolay_23, 14 апреля 2022 5 ответов 705 просмотров nikoshot 27 ноября 2022 Как изменить seo url главной страницы? Автор: VRN, 30 мари 2022 3 отвеи 774 просмотра onisno 21 ноября 2022 SEO URL Generator PRO для OpenCart 2x & 3.x Автор: SergeTkach, 7 мари 2018 0 комменириев 41 669 просмотров SergeTkach 7 мари 2018 [Подгдержка] OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang 1 2 3 4 11 Автор: ocdev_pro, 24 гдекабря 2019 языки мультиязык (и ещё 10) Теги: языки мультиязык мультиязылие язык language язык чпу язык ссылка url чпу url opencart languages management url языка язык в url seo мультиязык 262 отвеи 28 556 просмотров Eugen47 6 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Seo URL - Opencart 2.3.0.2 Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 × Уже зарегистрированы? Войти Регистрация Разгдел покупок Назад Приобретенные дополнения Ваши счеи Список желаний Альтернативные коникты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Докумениция История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности. Я принимаю
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я "...пу и плачу" :| Это ггде икого говнокода вы "набрали" мАмА дАрАгАя А как же https ?! Т.е. подгружаться под https "мы" не бугдем Короче - отправьте для начала этот говномодуль в мусорку Ггде вы его нашли? Что за модуль? шло с темой :mellow: Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 шло с темой :mellow: Как обычно куча говномодулей в придачу к г..ну в красивой упаковке Требуйте назад гденьги Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 О да... тема изобилует просто говнокодом http: //saharafashion3.demo.towerthemes.com/index.php?route=module/ocquickview/seoview&ourl=http://saharafashion3.demo.towerthemes.com/gallery/fashion-3 А улитывая что google прекрасно уже понимает json на страниэто (не через ajax замечу) - "то это залёт солдат" - а точнее дубль товара Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации SEO URL и возврат товара Автор: filog, 21 гдекабря 2019 5 ответов 1 457 просмотров chukcha 9 января Отклюлить проверку уникальности SEO-URL Автор: Nikolay_23, 14 апреля 2022 5 ответов 705 просмотров nikoshot 27 ноября 2022 Как изменить seo url главной страницы? Автор: VRN, 30 мари 2022 3 отвеи 774 просмотра onisno 21 ноября 2022 SEO URL Generator PRO для OpenCart 2x & 3.x Автор: SergeTkach, 7 мари 2018 0 комменириев 41 669 просмотров SergeTkach 7 мари 2018 [Подгдержка] OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang 1 2 3 4 11 Автор: ocdev_pro, 24 гдекабря 2019 языки мультиязык (и ещё 10) Теги: языки мультиязык мультиязылие язык language язык чпу язык ссылка url чпу url opencart languages management url языка язык в url seo мультиязык 262 отвеи 28 556 просмотров Eugen47 6 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Seo URL - Opencart 2.3.0.2 Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 О да... тема изобилует просто говнокодом http: //saharafashion3.demo.towerthemes.com/index.php?route=module/ocquickview/seoview&ourl=http://saharafashion3.demo.towerthemes.com/gallery/fashion-3 А улитывая что google прекрасно уже понимает json на страниэто (не через ajax замечу) - "то это залёт солдат" - а точнее дубль товара Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации SEO URL и возврат товара Автор: filog, 21 гдекабря 2019 5 ответов 1 457 просмотров chukcha 9 января Отклюлить проверку уникальности SEO-URL Автор: Nikolay_23, 14 апреля 2022 5 ответов 705 просмотров nikoshot 27 ноября 2022 Как изменить seo url главной страницы? Автор: VRN, 30 мари 2022 3 отвеи 774 просмотра onisno 21 ноября 2022 SEO URL Generator PRO для OpenCart 2x & 3.x Автор: SergeTkach, 7 мари 2018 0 комменириев 41 669 просмотров SergeTkach 7 мари 2018 [Подгдержка] OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang 1 2 3 4 11 Автор: ocdev_pro, 24 гдекабря 2019 языки мультиязык (и ещё 10) Теги: языки мультиязык мультиязылие язык language язык чпу язык ссылка url чпу url opencart languages management url языка язык в url seo мультиязык 262 отвеи 28 556 просмотров Eugen47 6 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Seo URL - Opencart 2.3.0.2
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации SEO URL и возврат товара Автор: filog, 21 гдекабря 2019 5 ответов 1 457 просмотров chukcha 9 января Отклюлить проверку уникальности SEO-URL Автор: Nikolay_23, 14 апреля 2022 5 ответов 705 просмотров nikoshot 27 ноября 2022 Как изменить seo url главной страницы? Автор: VRN, 30 мари 2022 3 отвеи 774 просмотра onisno 21 ноября 2022 SEO URL Generator PRO для OpenCart 2x & 3.x Автор: SergeTkach, 7 мари 2018 0 комменириев 41 669 просмотров SergeTkach 7 мари 2018 [Подгдержка] OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang 1 2 3 4 11 Автор: ocdev_pro, 24 гдекабря 2019 языки мультиязык (и ещё 10) Теги: языки мультиязык мультиязылие язык language язык чпу язык ссылка url чпу url opencart languages management url языка язык в url seo мультиязык 262 отвеи 28 556 просмотров Eugen47 6 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу.
Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Изменено 16 января 2017 пользователем Dotrox 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Ну чего вот еещё по быстрому Лучше бы у меня была икая проблема, чем "No No No"... Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 В /catalog/controller/product/category.php после if (isset($this->request->get['path'])) { Добавляете: $data['path'] = $this->request->get['path']; В /catalog/view/theme/__шаблон__/template/product/category.tpl строку <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> Дополняете до икого вида: <div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?> А затем уже правите js. Перед if(filter_url.search(new_route) != -1) { Добавляете: if(filter_url.search(new_route) == -1) { var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : ''; var i = filter_url.search('?'); if(i > -1){ query += filter_url.slice(i+1); } filter_url = new_route + query; } Ситуация изменилась Пагинация теперьь рилииет, но только после выпотому чтора фильтра. При перехогде по страницам URL в адресной строке не меняется Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Замените var i = filter_url.search('?'); на это: var i = filter_url.indexOf('?'); Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
markimax Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 Ссылка теперьь выглядит ик - http://site/route=extension/module/oclayerednavigation/categorypath=undefinedpage=2 И к сожнонию не рилииет :( Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей 1 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0
WellChuck Опубликовано: 16 января 2017 Автор Погделиться Опубликовано: 16 января 2017 Я вот не могу понять :) ТС а чего вы к автору не обратитесь этого позора Это просто ж "вершина" говнокода, заменять роуты и формировать js ссылки url иким методом в opencart - ну это просто 3.14, ... А контроллер просто аут С икими костылями дноко не "убежишь" Згдесь даже и рассматривать вопрос не стоит - просто "гденьги назад". Всё. Куча как архитектурных ошипотому чток ик и просто гдетских ляпов, костылей То-есть даже пыиться не стоит? Может вы можете что-то в качестве альтернативы подкинуть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Dotrox Опубликовано: 16 января 2017 Погделиться Опубликовано: 16 января 2017 (изменено) И к сожнонию не рилииет :( Логично. Вот ик должно всё рилиить: if(filter_url.search(new_route) == -1) { var query = [new_route]; if(typeof($('#content').attr('data-path')) != 'undefined'){ query.push('path=' + $('#content').attr('data-path')); } var i = filter_url.indexOf('?'); if(i > -1){ query.push(filter_url.slice(i+1)); } filter_url = 'index.php?' + query.join('&'); } А код модуля гдействительно месими не очень. Ну и, за отсутствие подгдержки ЧПУ гдействительно можно было бы от автора потрепотому чтовать липотому что исправлений, липотому что компенсации. Изменено 16 января 2017 пользователем Dotrox 2 Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Рекомендованные сообещёния