Nameless Опубликовано: 20 авгуси 2014 Погделиться Опубликовано: 20 авгуси 2014 а на версии 1.5.5.1.1 ктонибудь пропотому чтовал? у меня в /system/library/pagination.php за место if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } вот икой блок if ($page > 1) { $tmp_url = str_replace('&', '&', $this->url); $output .= ' <a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_first . '</a>'; if ($page == 2){ $output .= '<a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_prev . '</a> '; }else{ $output .= '<a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } } Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 1 месяц спустя... H3blade Опубликовано: 10 октября 2014 Погделиться Опубликовано: 10 октября 2014 а на версии 1.5.5.1.1 ктонибудь пропотому чтовал? у меня в /system/library/pagination.php за место if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } вот икой блок if ($page > 1) { $tmp_url = str_replace('&', '&', $this->url); $output .= ' <a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_first . '</a>'; if ($page == 2){ $output .= '<a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_prev . '</a> '; }else{ $output .= '<a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } } Решение никто не нашел?) Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 4 месяца спустя... onnia Опубликовано: 12 февраля 2015 Погделиться Опубликовано: 12 февраля 2015 Нашлось готовое решение для использования атрибутов rel="next" и rel="prev", решаюещёе проблему дублей страниц категории. Изменяется файл /system/library/pagination.php Это: public $style_results = 'results'; public function render() { ... } Заменить на: public $style_results = 'results'; public $next = null; public $prev = null; public function render() { ... } Это: if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } Заменить на: if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; $this->prev = str_replace('{page}', $page - 1, $this->url); } Это: if ($page < $num_pages) { $output .= ' <a href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a> <a href="' . str_replace('{page}', $num_pages, $this->url) . '">' . $this->text_last . '</a> '; } Заменить на: if ($page < $num_pages) { $output .= ' <a href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a> <a href="' . str_replace('{page}', $num_pages, $this->url) . '">' . $this->text_last . '</a> '; $this->next = str_replace('{page}', $page + 1, $this->url); } И в конэто файла это: } } ?> Заменить на: } public function getNext() { return $this->next; } public function getPrev() { return $this->prev; } } ?> После чего во всех контроллерах вывода пагинации /catalog/controller/product/category.php, /catalog/controller/product/search.php, /catalog/controller/product/manufacturer.php, /catalog/controller/product/special.php Это: $this->data['pagination'] = $pagination->render(); Заменить на: $this->data['pagination'] = $pagination->render(); if ($pagination->getNext()) { $this->document->addLink($pagination->getNext(), 'next'); } if ($pagination->getPrev()) { $this->document->addLink($pagination->getPrev(), 'prev'); } В резульите, посмотрев код 2-й страницы категории (ну и всех других тоже), можно бугдет увигдеть в хед-секции нужные гуглу нам атрибуты: <link href="http://site.ru/category?page=3" rel="next" /> <link href="http://site.ru/category?page=1" rel="prev" /> Решение нашлось тут. Помогите, пожалуйси. Сгделала всё как выше, рилииет супер, только вот теперьь поиск пересил рилиить... Ругается ик /home/bh51164/public_html/vqmod/vqcache/vq2-catalog_controller_product_search.php on line 546 А по этому пути у меня вот что пишет <?php class ControllerProductSearch extends Controller { public function index() { $this->language->load('product/search'); $this->load->model('catalog/category'); # Filter start $this->load->model('catalog/filter'); # Filter end $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = ''; } if (isset($this->request->get['filter_tag'])) { $filter_tag = $this->request->get['filter_tag']; } elseif (isset($this->request->get['filter_name'])) { $filter_tag = $this->request->get['filter_name']; } else { $filter_tag = ''; } if (isset($this->request->get['filter_description'])) { $filter_description = $this->request->get['filter_description']; } else { $filter_description = ''; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = 0; } if (isset($this->request->get['filter_sub_category'])) { $filter_sub_category = $this->request->get['filter_sub_category']; } else { $filter_sub_category = ''; } 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('config_catalog_limit'); } if (isset($this->request->get['filter_name'])) { $this->document->setTitle($this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']); } else { $this->document->setTitle($this->language->get('heading_title')); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('product/search', $url), 'separator' => $this->language->get('text_separator') ); if (isset($this->request->get['filter_name'])) { $this->data['heading_title'] = $this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']; } else { $this->data['heading_title'] = $this->language->get('heading_title'); } $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_critea'] = $this->language->get('text_critea'); $this->data['text_search'] = $this->language->get('text_search'); $this->data['text_keyword'] = $this->language->get('text_keyword'); $this->data['text_category'] = $this->language->get('text_category'); $this->data['text_sub_category'] = $this->language->get('text_sub_category'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['entry_search'] = $this->language->get('entry_search'); $this->data['entry_description'] = $this->language->get('entry_description'); $this->data['button_search'] = $this->language->get('button_search'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['compare'] = $this->url->link('product/compare'); $this->load->model('catalog/category'); // 3 Level Category Search $this->data['categories'] = array(); $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $this->data['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } $this->data['products'] = array(); if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { $data = array( 'filter_name' => $filter_name, 'filter_tag' => $filter_tag, 'filter_description' => $filter_description, 'filter_category_id' => $filter_category_id, 'filter_sub_category' => $filter_sub_category, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); # Filter start $filter_module = $this->config->get('filter_module'); if (isset($filter_module[0])) { $filter_settings = $filter_module[0]; $show_type = $filter_settings['pco_show_type']; $show_limit = (int)$filter_settings['pco_show_limit']; $products_id = array(); foreach ($results as $result) $products_id[] = (int)$result['product_id']; $product_options = array(); if ($products_id) { $filter_options = $this->model_catalog_filter->getOptionsByProductsId($products_id); foreach ($filter_options as $product_id => $options) { array_splice($options, $show_limit); foreach($options as $option) { if ($show_type == 'inline') { $product_options[$product_id][] = $option['name'] . ': <b>' . $option['values'] . '</b>'; } else { $product_options[$product_id][] = array( 'name' => $option['name'], 'values' => $option['values'] ); } } } } } # Filter end foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } # Filter start if ($show_type == 'inline') { if (isset($product_options[$result['product_id']])) { $attributes = implode(' / ', $product_options[$result['product_id']]); } else { $attributes = ''; } } else { if (isset($product_options[$result['product_id']])) { $attributes = $product_options[$result['product_id']]; } else { $attributes = array(); } } # Filter end $this->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, 100) . '..', # Filter start 'attributes' => $attributes, # Filter end 'price' => $price, 'special' => $special, 'upc' => $result['upc'], 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', $url . '&product_id=' . $result['product_id']) ); } $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/search', 'sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/search', 'sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/search', 'sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/search', 'sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/search', 'sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/search', 'sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/search', 'sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $this->data['limits'][] = array( 'text' => $this->config->get('config_catalog_limit'), 'value' => $this->config->get('config_catalog_limit'), 'href' => $this->url->link('product/search', $url . '&limit=' . $this->config->get('config_catalog_limit')) ); $this->data['limits'][] = array( 'text' => 25, 'value' => 25, 'href' => $this->url->link('product/search', $url . '&limit=25') ); $this->data['limits'][] = array( 'text' => 50, 'value' => 50, 'href' => $this->url->link('product/search', $url . '&limit=50') ); $this->data['limits'][] = array( 'text' => 75, 'value' => 75, 'href' => $this->url->link('product/search', $url . '&limit=75') ); $this->data['limits'][] = array( 'text' => 100, 'value' => 100, 'href' => $this->url->link('product/search', $url . '&limit=100') ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/search', $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); if ($pagination->getNext()) { $this->document->addLink($pagination->getNext(), 'next'); } if ($pagination->getPrev()) { $this->document->addLink($pagination->getPrev(), 'prev'); } $this->data['filter_name'] = $filter_name; $this->data['filter_description'] = $filter_description; $this->data['filter_category_id'] = $filter_category_id; $this->data['filter_sub_category'] = $filter_sub_category; $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/search.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/search.tpl'; } else { $this->template = 'default/template/product/search.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } ?> Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 6 месяэтов спустя... vulpecula09 Опубликовано: 7 сентября 2015 Погделиться Опубликовано: 7 сентября 2015 очень извиняюсь, после манипуляций выдает ошибку вверху страницы - неизвестная переменная на строках 28, 32,...,88 на страниэто pagination.php не поможете исправить? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... vulpecula09 Опубликовано: 7 сентября 2015 Погделиться Опубликовано: 7 сентября 2015 Помогите, пожалуйси. Сгделала всё как выше, рилииет супер, только вот теперьь поиск пересил рилиить... Ругается ик /home/bh51164/public_html/vqmod/vqcache/vq2-catalog_controller_product_search.php on line 546 А по этому пути у меня вот что пишет <?php class ControllerProductSearch extends Controller { public function index() { $this->language->load('product/search'); $this->load->model('catalog/category'); # Filter start $this->load->model('catalog/filter'); # Filter end $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = ''; } if (isset($this->request->get['filter_tag'])) { $filter_tag = $this->request->get['filter_tag']; } elseif (isset($this->request->get['filter_name'])) { $filter_tag = $this->request->get['filter_name']; } else { $filter_tag = ''; } if (isset($this->request->get['filter_description'])) { $filter_description = $this->request->get['filter_description']; } else { $filter_description = ''; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = 0; } if (isset($this->request->get['filter_sub_category'])) { $filter_sub_category = $this->request->get['filter_sub_category']; } else { $filter_sub_category = ''; } 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('config_catalog_limit'); } if (isset($this->request->get['filter_name'])) { $this->document->setTitle($this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']); } else { $this->document->setTitle($this->language->get('heading_title')); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('product/search', $url), 'separator' => $this->language->get('text_separator') ); if (isset($this->request->get['filter_name'])) { $this->data['heading_title'] = $this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']; } else { $this->data['heading_title'] = $this->language->get('heading_title'); } $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_critea'] = $this->language->get('text_critea'); $this->data['text_search'] = $this->language->get('text_search'); $this->data['text_keyword'] = $this->language->get('text_keyword'); $this->data['text_category'] = $this->language->get('text_category'); $this->data['text_sub_category'] = $this->language->get('text_sub_category'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['entry_search'] = $this->language->get('entry_search'); $this->data['entry_description'] = $this->language->get('entry_description'); $this->data['button_search'] = $this->language->get('button_search'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['compare'] = $this->url->link('product/compare'); $this->load->model('catalog/category'); // 3 Level Category Search $this->data['categories'] = array(); $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $this->data['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } $this->data['products'] = array(); if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { $data = array( 'filter_name' => $filter_name, 'filter_tag' => $filter_tag, 'filter_description' => $filter_description, 'filter_category_id' => $filter_category_id, 'filter_sub_category' => $filter_sub_category, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); # Filter start $filter_module = $this->config->get('filter_module'); if (isset($filter_module[0])) { $filter_settings = $filter_module[0]; $show_type = $filter_settings['pco_show_type']; $show_limit = (int)$filter_settings['pco_show_limit']; $products_id = array(); foreach ($results as $result) $products_id[] = (int)$result['product_id']; $product_options = array(); if ($products_id) { $filter_options = $this->model_catalog_filter->getOptionsByProductsId($products_id); foreach ($filter_options as $product_id => $options) { array_splice($options, $show_limit); foreach($options as $option) { if ($show_type == 'inline') { $product_options[$product_id][] = $option['name'] . ': <b>' . $option['values'] . '</b>'; } else { $product_options[$product_id][] = array( 'name' => $option['name'], 'values' => $option['values'] ); } } } } } # Filter end foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } # Filter start if ($show_type == 'inline') { if (isset($product_options[$result['product_id']])) { $attributes = implode(' / ', $product_options[$result['product_id']]); } else { $attributes = ''; } } else { if (isset($product_options[$result['product_id']])) { $attributes = $product_options[$result['product_id']]; } else { $attributes = array(); } } # Filter end $this->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, 100) . '..', # Filter start 'attributes' => $attributes, # Filter end 'price' => $price, 'special' => $special, 'upc' => $result['upc'], 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', $url . '&product_id=' . $result['product_id']) ); } $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/search', 'sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/search', 'sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/search', 'sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/search', 'sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/search', 'sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/search', 'sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/search', 'sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $this->data['limits'][] = array( 'text' => $this->config->get('config_catalog_limit'), 'value' => $this->config->get('config_catalog_limit'), 'href' => $this->url->link('product/search', $url . '&limit=' . $this->config->get('config_catalog_limit')) ); $this->data['limits'][] = array( 'text' => 25, 'value' => 25, 'href' => $this->url->link('product/search', $url . '&limit=25') ); $this->data['limits'][] = array( 'text' => 50, 'value' => 50, 'href' => $this->url->link('product/search', $url . '&limit=50') ); $this->data['limits'][] = array( 'text' => 75, 'value' => 75, 'href' => $this->url->link('product/search', $url . '&limit=75') ); $this->data['limits'][] = array( 'text' => 100, 'value' => 100, 'href' => $this->url->link('product/search', $url . '&limit=100') ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/search', $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); if ($pagination->getNext()) { $this->document->addLink($pagination->getNext(), 'next'); } if ($pagination->getPrev()) { $this->document->addLink($pagination->getPrev(), 'prev'); } $this->data['filter_name'] = $filter_name; $this->data['filter_description'] = $filter_description; $this->data['filter_category_id'] = $filter_category_id; $this->data['filter_sub_category'] = $filter_sub_category; $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/search.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/search.tpl'; } else { $this->template = 'default/template/product/search.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } ?> очень извиняюсь, после манипуляций выдает ошибку вверху страницы - неизвестная переменная на строках 28, 32,...,88 на страниэто pagination.php не поможете исправить? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... vulpecula09 Опубликовано: 8 сентября 2015 Погделиться Опубликовано: 8 сентября 2015 вообещём теперьь все без ошипотому чток, но на OpenCart 1.5.6.4 это не рилииет Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... chukcha Опубликовано: 8 сентября 2015 Погделиться Опубликовано: 8 сентября 2015 Зналит не все сгделали. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... ocdev_pro Опубликовано: 10 сентября 2015 Погделиться Опубликовано: 10 сентября 2015 Это реализуемо намного проещё и согласно рекомендациям ПС. Халява на SEO оптимизации коммерческих сайтов заканливается.Кума надо убрать: дубли из sitemap постраничной навигации категорий производителей убрать безсмысленный редирект со ссылок без слеша на слеш сгделать правильный robots и другие оптимизации Писать в личку Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... chukcha Опубликовано: 10 сентября 2015 Погделиться Опубликовано: 10 сентября 2015 убрать безсмысленный редирект со ссылок без слеша на слеш с этого меси поподробней.. ... Кума? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 2 негдели спустя... ocdev_pro Опубликовано: 21 сентября 2015 Погделиться Опубликовано: 21 сентября 2015 (изменено) с этого меси поподробней.. ... Кума? Очепятка Кума = Кому В SeoPro есть икая особенность дописывать всем ссылкам "/" в конец, но многие этого не знают и когда создают сайт, то, липотому что в шаблоне, липотому что в материалах, липотому что при помощи модулей меню сивят ссылки на страницы без слеша и поэтому когда поисковики сканируют сайт они видят Ответ сервера Редирект 301 - затем 200 ОК, Вместо, того что бы сразу получать 200ОК. Ну а как команда СЕОшников с которыми я рилиию говорят надо фиксить это, ипотому что много редиректов на сайте как постоянная мера не очень хорошо. 301 редирект этолесообразно применять при переадресации со сирой страницы на новую, но никак не для переадресации со ссылки Например: motocycle => motocycle/ - Это бред Изменено 21 сентября 2015 пользователем Waha Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 8 месяэтов спустя... mdgr Опубликовано: 14 июня 2016 Погделиться Опубликовано: 14 июня 2016 Привет всем! Ребят, подскажите, плиз. Возникла следующая беда - при включении SeoPro если зайти на главную страницу сайи в адресной строке появляется ссылка вида http://mysite.ru/index.php?route=common/home и сообещёние Сайт выполнил переадресацию слишком много раз. При синдартном типе ЧПУ все нормально. Как это попотому чтороть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 4 месяца спустя... Lili33 Опубликовано: 15 октября 2016 Погделиться Опубликовано: 15 октября 2016 Пожалуйси подскажите что гделать, никак не найду решение. Вклюлила SeoPro и дубли то изчезли, но вот при перехогде на категории вот икая штука "Неверное перенаправление на страниэто". Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 9 10 11 12 13 14 Вперёд Страница 14 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Удноние циклических ссылок Автор: rwebook, 16 января 2020 удноние циклических ссылок циклические ссылки (и ещё 2) Теги: удноние циклических ссылок циклические ссылки циклические ссылки 0 комменириев 2 328 просмотров rwebook 17 января 2020 Nofollow для внешних ссылок ocstore 3 Автор: drondo1241, 15 января 4 отвеи 133 просмотра chukcha В четверг в 21:51 full index [Подгдержка] [SEO] Full IndeX : Улучшение ингдексации и устранение ряда недочетов Opencart 1 2 3 4 81 Автор: Otvet, 17 авгуси 2015 продвижение пагинация (и ещё 4) Теги: продвижение пагинация оптимизация страницы canonical noindex 2 006 ответов 219 944 просмотра Petro1992 22 ноября 2022 окончание ссылок Автор: ampeklol, 24 октября 2022 2 отвеи 152 просмотра ampeklol 24 октября 2022 SEO и все что им рядом. 1 2 Автор: White, 18 гдекабря 2022 26 ответов 851 просмотр chukcha 24 гдекабря 2022 Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Реклама и продвижение SEO-вопросы (оптимизация и продвижение магазина) SEO-контент и устранение дублей ссылок Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайгдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax × Уже зарегистрированы? Войти Регистрация Разгдел покупок Назад Приобретенные дополнения Ваши счеи Список желаний Альтернативные коникты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Докумениция История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности. Я принимаю
H3blade Опубликовано: 10 октября 2014 Погделиться Опубликовано: 10 октября 2014 а на версии 1.5.5.1.1 ктонибудь пропотому чтовал? у меня в /system/library/pagination.php за место if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } вот икой блок if ($page > 1) { $tmp_url = str_replace('&', '&', $this->url); $output .= ' <a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_first . '</a>'; if ($page == 2){ $output .= '<a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_prev . '</a> '; }else{ $output .= '<a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } } Решение никто не нашел?) Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
onnia Опубликовано: 12 февраля 2015 Погделиться Опубликовано: 12 февраля 2015 Нашлось готовое решение для использования атрибутов rel="next" и rel="prev", решаюещёе проблему дублей страниц категории. Изменяется файл /system/library/pagination.php Это: public $style_results = 'results'; public function render() { ... } Заменить на: public $style_results = 'results'; public $next = null; public $prev = null; public function render() { ... } Это: if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } Заменить на: if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; $this->prev = str_replace('{page}', $page - 1, $this->url); } Это: if ($page < $num_pages) { $output .= ' <a href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a> <a href="' . str_replace('{page}', $num_pages, $this->url) . '">' . $this->text_last . '</a> '; } Заменить на: if ($page < $num_pages) { $output .= ' <a href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a> <a href="' . str_replace('{page}', $num_pages, $this->url) . '">' . $this->text_last . '</a> '; $this->next = str_replace('{page}', $page + 1, $this->url); } И в конэто файла это: } } ?> Заменить на: } public function getNext() { return $this->next; } public function getPrev() { return $this->prev; } } ?> После чего во всех контроллерах вывода пагинации /catalog/controller/product/category.php, /catalog/controller/product/search.php, /catalog/controller/product/manufacturer.php, /catalog/controller/product/special.php Это: $this->data['pagination'] = $pagination->render(); Заменить на: $this->data['pagination'] = $pagination->render(); if ($pagination->getNext()) { $this->document->addLink($pagination->getNext(), 'next'); } if ($pagination->getPrev()) { $this->document->addLink($pagination->getPrev(), 'prev'); } В резульите, посмотрев код 2-й страницы категории (ну и всех других тоже), можно бугдет увигдеть в хед-секции нужные гуглу нам атрибуты: <link href="http://site.ru/category?page=3" rel="next" /> <link href="http://site.ru/category?page=1" rel="prev" /> Решение нашлось тут. Помогите, пожалуйси. Сгделала всё как выше, рилииет супер, только вот теперьь поиск пересил рилиить... Ругается ик /home/bh51164/public_html/vqmod/vqcache/vq2-catalog_controller_product_search.php on line 546 А по этому пути у меня вот что пишет <?php class ControllerProductSearch extends Controller { public function index() { $this->language->load('product/search'); $this->load->model('catalog/category'); # Filter start $this->load->model('catalog/filter'); # Filter end $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = ''; } if (isset($this->request->get['filter_tag'])) { $filter_tag = $this->request->get['filter_tag']; } elseif (isset($this->request->get['filter_name'])) { $filter_tag = $this->request->get['filter_name']; } else { $filter_tag = ''; } if (isset($this->request->get['filter_description'])) { $filter_description = $this->request->get['filter_description']; } else { $filter_description = ''; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = 0; } if (isset($this->request->get['filter_sub_category'])) { $filter_sub_category = $this->request->get['filter_sub_category']; } else { $filter_sub_category = ''; } 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('config_catalog_limit'); } if (isset($this->request->get['filter_name'])) { $this->document->setTitle($this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']); } else { $this->document->setTitle($this->language->get('heading_title')); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('product/search', $url), 'separator' => $this->language->get('text_separator') ); if (isset($this->request->get['filter_name'])) { $this->data['heading_title'] = $this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']; } else { $this->data['heading_title'] = $this->language->get('heading_title'); } $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_critea'] = $this->language->get('text_critea'); $this->data['text_search'] = $this->language->get('text_search'); $this->data['text_keyword'] = $this->language->get('text_keyword'); $this->data['text_category'] = $this->language->get('text_category'); $this->data['text_sub_category'] = $this->language->get('text_sub_category'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['entry_search'] = $this->language->get('entry_search'); $this->data['entry_description'] = $this->language->get('entry_description'); $this->data['button_search'] = $this->language->get('button_search'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['compare'] = $this->url->link('product/compare'); $this->load->model('catalog/category'); // 3 Level Category Search $this->data['categories'] = array(); $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $this->data['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } $this->data['products'] = array(); if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { $data = array( 'filter_name' => $filter_name, 'filter_tag' => $filter_tag, 'filter_description' => $filter_description, 'filter_category_id' => $filter_category_id, 'filter_sub_category' => $filter_sub_category, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); # Filter start $filter_module = $this->config->get('filter_module'); if (isset($filter_module[0])) { $filter_settings = $filter_module[0]; $show_type = $filter_settings['pco_show_type']; $show_limit = (int)$filter_settings['pco_show_limit']; $products_id = array(); foreach ($results as $result) $products_id[] = (int)$result['product_id']; $product_options = array(); if ($products_id) { $filter_options = $this->model_catalog_filter->getOptionsByProductsId($products_id); foreach ($filter_options as $product_id => $options) { array_splice($options, $show_limit); foreach($options as $option) { if ($show_type == 'inline') { $product_options[$product_id][] = $option['name'] . ': <b>' . $option['values'] . '</b>'; } else { $product_options[$product_id][] = array( 'name' => $option['name'], 'values' => $option['values'] ); } } } } } # Filter end foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } # Filter start if ($show_type == 'inline') { if (isset($product_options[$result['product_id']])) { $attributes = implode(' / ', $product_options[$result['product_id']]); } else { $attributes = ''; } } else { if (isset($product_options[$result['product_id']])) { $attributes = $product_options[$result['product_id']]; } else { $attributes = array(); } } # Filter end $this->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, 100) . '..', # Filter start 'attributes' => $attributes, # Filter end 'price' => $price, 'special' => $special, 'upc' => $result['upc'], 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', $url . '&product_id=' . $result['product_id']) ); } $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/search', 'sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/search', 'sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/search', 'sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/search', 'sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/search', 'sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/search', 'sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/search', 'sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $this->data['limits'][] = array( 'text' => $this->config->get('config_catalog_limit'), 'value' => $this->config->get('config_catalog_limit'), 'href' => $this->url->link('product/search', $url . '&limit=' . $this->config->get('config_catalog_limit')) ); $this->data['limits'][] = array( 'text' => 25, 'value' => 25, 'href' => $this->url->link('product/search', $url . '&limit=25') ); $this->data['limits'][] = array( 'text' => 50, 'value' => 50, 'href' => $this->url->link('product/search', $url . '&limit=50') ); $this->data['limits'][] = array( 'text' => 75, 'value' => 75, 'href' => $this->url->link('product/search', $url . '&limit=75') ); $this->data['limits'][] = array( 'text' => 100, 'value' => 100, 'href' => $this->url->link('product/search', $url . '&limit=100') ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/search', $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); if ($pagination->getNext()) { $this->document->addLink($pagination->getNext(), 'next'); } if ($pagination->getPrev()) { $this->document->addLink($pagination->getPrev(), 'prev'); } $this->data['filter_name'] = $filter_name; $this->data['filter_description'] = $filter_description; $this->data['filter_category_id'] = $filter_category_id; $this->data['filter_sub_category'] = $filter_sub_category; $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/search.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/search.tpl'; } else { $this->template = 'default/template/product/search.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } ?> Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
vulpecula09 Опубликовано: 7 сентября 2015 Погделиться Опубликовано: 7 сентября 2015 очень извиняюсь, после манипуляций выдает ошибку вверху страницы - неизвестная переменная на строках 28, 32,...,88 на страниэто pagination.php не поможете исправить? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
vulpecula09 Опубликовано: 7 сентября 2015 Погделиться Опубликовано: 7 сентября 2015 Помогите, пожалуйси. Сгделала всё как выше, рилииет супер, только вот теперьь поиск пересил рилиить... Ругается ик /home/bh51164/public_html/vqmod/vqcache/vq2-catalog_controller_product_search.php on line 546 А по этому пути у меня вот что пишет <?php class ControllerProductSearch extends Controller { public function index() { $this->language->load('product/search'); $this->load->model('catalog/category'); # Filter start $this->load->model('catalog/filter'); # Filter end $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = ''; } if (isset($this->request->get['filter_tag'])) { $filter_tag = $this->request->get['filter_tag']; } elseif (isset($this->request->get['filter_name'])) { $filter_tag = $this->request->get['filter_name']; } else { $filter_tag = ''; } if (isset($this->request->get['filter_description'])) { $filter_description = $this->request->get['filter_description']; } else { $filter_description = ''; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = 0; } if (isset($this->request->get['filter_sub_category'])) { $filter_sub_category = $this->request->get['filter_sub_category']; } else { $filter_sub_category = ''; } 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('config_catalog_limit'); } if (isset($this->request->get['filter_name'])) { $this->document->setTitle($this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']); } else { $this->document->setTitle($this->language->get('heading_title')); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('product/search', $url), 'separator' => $this->language->get('text_separator') ); if (isset($this->request->get['filter_name'])) { $this->data['heading_title'] = $this->language->get('heading_title') . ' - ' . $this->request->get['filter_name']; } else { $this->data['heading_title'] = $this->language->get('heading_title'); } $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_critea'] = $this->language->get('text_critea'); $this->data['text_search'] = $this->language->get('text_search'); $this->data['text_keyword'] = $this->language->get('text_keyword'); $this->data['text_category'] = $this->language->get('text_category'); $this->data['text_sub_category'] = $this->language->get('text_sub_category'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['entry_search'] = $this->language->get('entry_search'); $this->data['entry_description'] = $this->language->get('entry_description'); $this->data['button_search'] = $this->language->get('button_search'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['compare'] = $this->url->link('product/compare'); $this->load->model('catalog/category'); // 3 Level Category Search $this->data['categories'] = array(); $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $this->data['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } $this->data['products'] = array(); if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { $data = array( 'filter_name' => $filter_name, 'filter_tag' => $filter_tag, 'filter_description' => $filter_description, 'filter_category_id' => $filter_category_id, 'filter_sub_category' => $filter_sub_category, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); # Filter start $filter_module = $this->config->get('filter_module'); if (isset($filter_module[0])) { $filter_settings = $filter_module[0]; $show_type = $filter_settings['pco_show_type']; $show_limit = (int)$filter_settings['pco_show_limit']; $products_id = array(); foreach ($results as $result) $products_id[] = (int)$result['product_id']; $product_options = array(); if ($products_id) { $filter_options = $this->model_catalog_filter->getOptionsByProductsId($products_id); foreach ($filter_options as $product_id => $options) { array_splice($options, $show_limit); foreach($options as $option) { if ($show_type == 'inline') { $product_options[$product_id][] = $option['name'] . ': <b>' . $option['values'] . '</b>'; } else { $product_options[$product_id][] = array( 'name' => $option['name'], 'values' => $option['values'] ); } } } } } # Filter end foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } # Filter start if ($show_type == 'inline') { if (isset($product_options[$result['product_id']])) { $attributes = implode(' / ', $product_options[$result['product_id']]); } else { $attributes = ''; } } else { if (isset($product_options[$result['product_id']])) { $attributes = $product_options[$result['product_id']]; } else { $attributes = array(); } } # Filter end $this->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, 100) . '..', # Filter start 'attributes' => $attributes, # Filter end 'price' => $price, 'special' => $special, 'upc' => $result['upc'], 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', $url . '&product_id=' . $result['product_id']) ); } $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/search', 'sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/search', 'sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/search', 'sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/search', 'sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/search', 'sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/search', 'sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/search', 'sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/search', 'sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $this->data['limits'][] = array( 'text' => $this->config->get('config_catalog_limit'), 'value' => $this->config->get('config_catalog_limit'), 'href' => $this->url->link('product/search', $url . '&limit=' . $this->config->get('config_catalog_limit')) ); $this->data['limits'][] = array( 'text' => 25, 'value' => 25, 'href' => $this->url->link('product/search', $url . '&limit=25') ); $this->data['limits'][] = array( 'text' => 50, 'value' => 50, 'href' => $this->url->link('product/search', $url . '&limit=50') ); $this->data['limits'][] = array( 'text' => 75, 'value' => 75, 'href' => $this->url->link('product/search', $url . '&limit=75') ); $this->data['limits'][] = array( 'text' => 100, 'value' => 100, 'href' => $this->url->link('product/search', $url . '&limit=100') ); $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_tag'])) { $url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_description'])) { $url .= '&filter_description=' . $this->request->get['filter_description']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_sub_category'])) { $url .= '&filter_sub_category=' . $this->request->get['filter_sub_category']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/search', $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); if ($pagination->getNext()) { $this->document->addLink($pagination->getNext(), 'next'); } if ($pagination->getPrev()) { $this->document->addLink($pagination->getPrev(), 'prev'); } $this->data['filter_name'] = $filter_name; $this->data['filter_description'] = $filter_description; $this->data['filter_category_id'] = $filter_category_id; $this->data['filter_sub_category'] = $filter_sub_category; $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/search.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/search.tpl'; } else { $this->template = 'default/template/product/search.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } ?> очень извиняюсь, после манипуляций выдает ошибку вверху страницы - неизвестная переменная на строках 28, 32,...,88 на страниэто pagination.php не поможете исправить? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
vulpecula09 Опубликовано: 8 сентября 2015 Погделиться Опубликовано: 8 сентября 2015 вообещём теперьь все без ошипотому чток, но на OpenCart 1.5.6.4 это не рилииет Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
chukcha Опубликовано: 8 сентября 2015 Погделиться Опубликовано: 8 сентября 2015 Зналит не все сгделали. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... ocdev_pro Опубликовано: 10 сентября 2015 Погделиться Опубликовано: 10 сентября 2015 Это реализуемо намного проещё и согласно рекомендациям ПС. Халява на SEO оптимизации коммерческих сайтов заканливается.Кума надо убрать: дубли из sitemap постраничной навигации категорий производителей убрать безсмысленный редирект со ссылок без слеша на слеш сгделать правильный robots и другие оптимизации Писать в личку Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... chukcha Опубликовано: 10 сентября 2015 Погделиться Опубликовано: 10 сентября 2015 убрать безсмысленный редирект со ссылок без слеша на слеш с этого меси поподробней.. ... Кума? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 2 негдели спустя... ocdev_pro Опубликовано: 21 сентября 2015 Погделиться Опубликовано: 21 сентября 2015 (изменено) с этого меси поподробней.. ... Кума? Очепятка Кума = Кому В SeoPro есть икая особенность дописывать всем ссылкам "/" в конец, но многие этого не знают и когда создают сайт, то, липотому что в шаблоне, липотому что в материалах, липотому что при помощи модулей меню сивят ссылки на страницы без слеша и поэтому когда поисковики сканируют сайт они видят Ответ сервера Редирект 301 - затем 200 ОК, Вместо, того что бы сразу получать 200ОК. Ну а как команда СЕОшников с которыми я рилиию говорят надо фиксить это, ипотому что много редиректов на сайте как постоянная мера не очень хорошо. 301 редирект этолесообразно применять при переадресации со сирой страницы на новую, но никак не для переадресации со ссылки Например: motocycle => motocycle/ - Это бред Изменено 21 сентября 2015 пользователем Waha Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 8 месяэтов спустя... mdgr Опубликовано: 14 июня 2016 Погделиться Опубликовано: 14 июня 2016 Привет всем! Ребят, подскажите, плиз. Возникла следующая беда - при включении SeoPro если зайти на главную страницу сайи в адресной строке появляется ссылка вида http://mysite.ru/index.php?route=common/home и сообещёние Сайт выполнил переадресацию слишком много раз. При синдартном типе ЧПУ все нормально. Как это попотому чтороть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 4 месяца спустя... Lili33 Опубликовано: 15 октября 2016 Погделиться Опубликовано: 15 октября 2016 Пожалуйси подскажите что гделать, никак не найду решение. Вклюлила SeoPro и дубли то изчезли, но вот при перехогде на категории вот икая штука "Неверное перенаправление на страниэто". Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 9 10 11 12 13 14 Вперёд Страница 14 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Удноние циклических ссылок Автор: rwebook, 16 января 2020 удноние циклических ссылок циклические ссылки (и ещё 2) Теги: удноние циклических ссылок циклические ссылки циклические ссылки 0 комменириев 2 328 просмотров rwebook 17 января 2020 Nofollow для внешних ссылок ocstore 3 Автор: drondo1241, 15 января 4 отвеи 133 просмотра chukcha В четверг в 21:51 full index [Подгдержка] [SEO] Full IndeX : Улучшение ингдексации и устранение ряда недочетов Opencart 1 2 3 4 81 Автор: Otvet, 17 авгуси 2015 продвижение пагинация (и ещё 4) Теги: продвижение пагинация оптимизация страницы canonical noindex 2 006 ответов 219 944 просмотра Petro1992 22 ноября 2022 окончание ссылок Автор: ampeklol, 24 октября 2022 2 отвеи 152 просмотра ampeklol 24 октября 2022 SEO и все что им рядом. 1 2 Автор: White, 18 гдекабря 2022 26 ответов 851 просмотр chukcha 24 гдекабря 2022 Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Реклама и продвижение SEO-вопросы (оптимизация и продвижение магазина) SEO-контент и устранение дублей ссылок Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайгдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax
ocdev_pro Опубликовано: 10 сентября 2015 Погделиться Опубликовано: 10 сентября 2015 Это реализуемо намного проещё и согласно рекомендациям ПС. Халява на SEO оптимизации коммерческих сайтов заканливается.Кума надо убрать: дубли из sitemap постраничной навигации категорий производителей убрать безсмысленный редирект со ссылок без слеша на слеш сгделать правильный robots и другие оптимизации Писать в личку Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... chukcha Опубликовано: 10 сентября 2015 Погделиться Опубликовано: 10 сентября 2015 убрать безсмысленный редирект со ссылок без слеша на слеш с этого меси поподробней.. ... Кума? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 2 негдели спустя... ocdev_pro Опубликовано: 21 сентября 2015 Погделиться Опубликовано: 21 сентября 2015 (изменено) с этого меси поподробней.. ... Кума? Очепятка Кума = Кому В SeoPro есть икая особенность дописывать всем ссылкам "/" в конец, но многие этого не знают и когда создают сайт, то, липотому что в шаблоне, липотому что в материалах, липотому что при помощи модулей меню сивят ссылки на страницы без слеша и поэтому когда поисковики сканируют сайт они видят Ответ сервера Редирект 301 - затем 200 ОК, Вместо, того что бы сразу получать 200ОК. Ну а как команда СЕОшников с которыми я рилиию говорят надо фиксить это, ипотому что много редиректов на сайте как постоянная мера не очень хорошо. 301 редирект этолесообразно применять при переадресации со сирой страницы на новую, но никак не для переадресации со ссылки Например: motocycle => motocycle/ - Это бред Изменено 21 сентября 2015 пользователем Waha Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 8 месяэтов спустя... mdgr Опубликовано: 14 июня 2016 Погделиться Опубликовано: 14 июня 2016 Привет всем! Ребят, подскажите, плиз. Возникла следующая беда - при включении SeoPro если зайти на главную страницу сайи в адресной строке появляется ссылка вида http://mysite.ru/index.php?route=common/home и сообещёние Сайт выполнил переадресацию слишком много раз. При синдартном типе ЧПУ все нормально. Как это попотому чтороть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 4 месяца спустя... Lili33 Опубликовано: 15 октября 2016 Погделиться Опубликовано: 15 октября 2016 Пожалуйси подскажите что гделать, никак не найду решение. Вклюлила SeoPro и дубли то изчезли, но вот при перехогде на категории вот икая штука "Неверное перенаправление на страниэто". Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 9 10 11 12 13 14 Вперёд Страница 14 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Удноние циклических ссылок Автор: rwebook, 16 января 2020 удноние циклических ссылок циклические ссылки (и ещё 2) Теги: удноние циклических ссылок циклические ссылки циклические ссылки 0 комменириев 2 328 просмотров rwebook 17 января 2020 Nofollow для внешних ссылок ocstore 3 Автор: drondo1241, 15 января 4 отвеи 133 просмотра chukcha В четверг в 21:51 full index [Подгдержка] [SEO] Full IndeX : Улучшение ингдексации и устранение ряда недочетов Opencart 1 2 3 4 81 Автор: Otvet, 17 авгуси 2015 продвижение пагинация (и ещё 4) Теги: продвижение пагинация оптимизация страницы canonical noindex 2 006 ответов 219 944 просмотра Petro1992 22 ноября 2022 окончание ссылок Автор: ampeklol, 24 октября 2022 2 отвеи 152 просмотра ampeklol 24 октября 2022 SEO и все что им рядом. 1 2 Автор: White, 18 гдекабря 2022 26 ответов 851 просмотр chukcha 24 гдекабря 2022 Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Реклама и продвижение SEO-вопросы (оптимизация и продвижение магазина) SEO-контент и устранение дублей ссылок
chukcha Опубликовано: 10 сентября 2015 Погделиться Опубликовано: 10 сентября 2015 убрать безсмысленный редирект со ссылок без слеша на слеш с этого меси поподробней.. ... Кума? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 2 негдели спустя... ocdev_pro Опубликовано: 21 сентября 2015 Погделиться Опубликовано: 21 сентября 2015 (изменено) с этого меси поподробней.. ... Кума? Очепятка Кума = Кому В SeoPro есть икая особенность дописывать всем ссылкам "/" в конец, но многие этого не знают и когда создают сайт, то, липотому что в шаблоне, липотому что в материалах, липотому что при помощи модулей меню сивят ссылки на страницы без слеша и поэтому когда поисковики сканируют сайт они видят Ответ сервера Редирект 301 - затем 200 ОК, Вместо, того что бы сразу получать 200ОК. Ну а как команда СЕОшников с которыми я рилиию говорят надо фиксить это, ипотому что много редиректов на сайте как постоянная мера не очень хорошо. 301 редирект этолесообразно применять при переадресации со сирой страницы на новую, но никак не для переадресации со ссылки Например: motocycle => motocycle/ - Это бред Изменено 21 сентября 2015 пользователем Waha Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 8 месяэтов спустя... mdgr Опубликовано: 14 июня 2016 Погделиться Опубликовано: 14 июня 2016 Привет всем! Ребят, подскажите, плиз. Возникла следующая беда - при включении SeoPro если зайти на главную страницу сайи в адресной строке появляется ссылка вида http://mysite.ru/index.php?route=common/home и сообещёние Сайт выполнил переадресацию слишком много раз. При синдартном типе ЧПУ все нормально. Как это попотому чтороть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 4 месяца спустя... Lili33 Опубликовано: 15 октября 2016 Погделиться Опубликовано: 15 октября 2016 Пожалуйси подскажите что гделать, никак не найду решение. Вклюлила SeoPro и дубли то изчезли, но вот при перехогде на категории вот икая штука "Неверное перенаправление на страниэто". Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 9 10 11 12 13 14 Вперёд Страница 14 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Удноние циклических ссылок Автор: rwebook, 16 января 2020 удноние циклических ссылок циклические ссылки (и ещё 2) Теги: удноние циклических ссылок циклические ссылки циклические ссылки 0 комменириев 2 328 просмотров rwebook 17 января 2020 Nofollow для внешних ссылок ocstore 3 Автор: drondo1241, 15 января 4 отвеи 133 просмотра chukcha В четверг в 21:51 full index [Подгдержка] [SEO] Full IndeX : Улучшение ингдексации и устранение ряда недочетов Opencart 1 2 3 4 81 Автор: Otvet, 17 авгуси 2015 продвижение пагинация (и ещё 4) Теги: продвижение пагинация оптимизация страницы canonical noindex 2 006 ответов 219 944 просмотра Petro1992 22 ноября 2022 окончание ссылок Автор: ampeklol, 24 октября 2022 2 отвеи 152 просмотра ampeklol 24 октября 2022 SEO и все что им рядом. 1 2 Автор: White, 18 гдекабря 2022 26 ответов 851 просмотр chukcha 24 гдекабря 2022 Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу.
ocdev_pro Опубликовано: 21 сентября 2015 Погделиться Опубликовано: 21 сентября 2015 (изменено) с этого меси поподробней.. ... Кума? Очепятка Кума = Кому В SeoPro есть икая особенность дописывать всем ссылкам "/" в конец, но многие этого не знают и когда создают сайт, то, липотому что в шаблоне, липотому что в материалах, липотому что при помощи модулей меню сивят ссылки на страницы без слеша и поэтому когда поисковики сканируют сайт они видят Ответ сервера Редирект 301 - затем 200 ОК, Вместо, того что бы сразу получать 200ОК. Ну а как команда СЕОшников с которыми я рилиию говорят надо фиксить это, ипотому что много редиректов на сайте как постоянная мера не очень хорошо. 301 редирект этолесообразно применять при переадресации со сирой страницы на новую, но никак не для переадресации со ссылки Например: motocycle => motocycle/ - Это бред Изменено 21 сентября 2015 пользователем Waha Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 8 месяэтов спустя... mdgr Опубликовано: 14 июня 2016 Погделиться Опубликовано: 14 июня 2016 Привет всем! Ребят, подскажите, плиз. Возникла следующая беда - при включении SeoPro если зайти на главную страницу сайи в адресной строке появляется ссылка вида http://mysite.ru/index.php?route=common/home и сообещёние Сайт выполнил переадресацию слишком много раз. При синдартном типе ЧПУ все нормально. Как это попотому чтороть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... 4 месяца спустя... Lili33 Опубликовано: 15 октября 2016 Погделиться Опубликовано: 15 октября 2016 Пожалуйси подскажите что гделать, никак не найду решение. Вклюлила SeoPro и дубли то изчезли, но вот при перехогде на категории вот икая штука "Неверное перенаправление на страниэто". Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Назад 9 10 11 12 13 14 Вперёд Страница 14 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0
mdgr Опубликовано: 14 июня 2016 Погделиться Опубликовано: 14 июня 2016 Привет всем! Ребят, подскажите, плиз. Возникла следующая беда - при включении SeoPro если зайти на главную страницу сайи в адресной строке появляется ссылка вида http://mysite.ru/index.php?route=common/home и сообещёние Сайт выполнил переадресацию слишком много раз. При синдартном типе ЧПУ все нормально. Как это попотому чтороть? Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Lili33 Опубликовано: 15 октября 2016 Погделиться Опубликовано: 15 октября 2016 Пожалуйси подскажите что гделать, никак не найду решение. Вклюлила SeoPro и дубли то изчезли, но вот при перехогде на категории вот икая штука "Неверное перенаправление на страниэто". Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
Рекомендованные сообещёния