pahanmcs Опубліковано: 25 квітня 2019 Share Опубліковано: 25 квітня 2019 5 часов назад, freelancer сказал: @pahanmcs где можно увидеть то, что вы делаете? я уже решил проблему: изменил скрипт, так как фильтр перерисовывает содержимое и теряются обработчики событий. Надіслати Поділитися на інших сайтах More sharing options...
serg34 Опубліковано: 26 квітня 2019 Share Опубліковано: 26 квітня 2019 Здравствуйте! Подскажите в чем может быть проблема. На версии 2.4 сео настройка работает нормально, ставлю версию v2.5.17.6_beta (speed), корректно не работает. Переходит только на сам атрибут, а мета-теги не отображает. Надіслати Поділитися на інших сайтах More sharing options...
qweezz Опубліковано: 5 травня 2019 Share Опубліковано: 5 травня 2019 Здравствуйте В фильтре можно сортировать порядок вывода атрибутов? У нас все атрибуты в одной группе атрибутов: 1 2 3 4 Надо чтобы на странице сайта в фильтре порядок был другой, например 2 4 3 Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 8 травня 2019 Автор Share Опубліковано: 8 травня 2019 @qweezz тут есть про сортировки для разных версий Надіслати Поділитися на інших сайтах More sharing options... promikes Опубліковано: 13 травня 2019 Share Опубліковано: 13 травня 2019 Добрый день! Столкнулся с проблемой, покупал лицензию Вашего фильтра еще лет 5 назад. Вот сейчас делаем переход на https, т.к. уже требуют все рекламные площадки, и после перехода у нас ion_cube соответственно не пропускает наш сайт, т.к. считает, что мы пытаемся дублировать лицензию. Написал в ЛС, сюда дублирую, т.к. кейс может быть интересен другим пользователям, полагаю. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... thecatus Опубліковано: 27 травня 2019 Share Опубліковано: 27 травня 2019 @freelancer, здравствуйте, прошу ответить на личное сообщение от 21.05. по вопросу поддержки модуля Надіслати Поділитися на інших сайтах More sharing options... 4 weeks later... Zapuzin Опубліковано: 19 червня 2019 Share Опубліковано: 19 червня 2019 (змінено) В 13.05.2019 в 13:23, promikes сказал: Вот сейчас делаем переход на https, т.к. уже требуют все рекламные площадки... Тоже в процессе перехода на https. Вопрос о лицензии данного модуля "filterpro v2.4.4(seo)" и "SeoGen 4.1" очень актуален! Без ясности данного вопроса переходить не хочется ) С остальными авторами модулей в процессе выяснения. freelancer, написАл в ЛС Змінено 19 червня 2019 користувачем Zapuzin Надіслати Поділитися на інших сайтах More sharing options... Zapuzin Опубліковано: 20 червня 2019 Share Опубліковано: 20 червня 2019 (змінено) Не дождался ответа и перешёл на https. Все лицензионные модули, в том числе и данные, работают как и работали. Проблем не обнаружил ) По остальным модулям был спокоен, так как разработчики вышли на связь и подтвердили, что от перехода с http на https лицензия сохраняется. freelancer, уже не актуально. Змінено 20 червня 2019 користувачем Zapuzin Надіслати Поділитися на інших сайтах More sharing options... 4 weeks later... Zapuzin Опубліковано: 14 липня 2019 Share Опубліковано: 14 липня 2019 (змінено) filterpro_v2.4.4(seo) (29.02.2016, #433262) ocStore-1.5.5.1.2 Установлен Product Display Settings vqmod В целом этот модуль с фильтром подружил, осталась только одна проблемка. Вот её никак не могу самостоятельно побороть ) Если товара нет в наличии, то "Наличие" отображается правильно, на том языке, который выбран на сайте. Если товар есть в наличии, то "Наличие" отображается неправильно - "pds_instock". Вот скрины для наглядности: Наличие без фильтра: Наличие с фильтром: "catalog/controller/product/category.php" из файла "product-display-settings.xml": Спойлер <file name="catalog/controller/product/category.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> "catalog/controller/module/filterpro.php" из файла "product-display-settings.xml": Спойлер <file name="catalog/controller/module/filterpro.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> Вот языковой файл "catalog/language/russian/product/pds.php": Спойлер <?php $_['pds_model'] = 'Код товара:'; $_['pds_sku'] = 'Страна производитель:'; $_['pds_brand'] = 'Бренд:'; $_['pds_upc'] = 'UPC:'; $_['pds_location'] = 'Гарантия:'; $_['pds_stock'] = 'Наличие:'; $_['pds_instock'] = 'В наличии:'; $_['pds_weight'] = 'Вес:'; ?> " vq2-catalog_controller_module_filterpro.php" Спойлер <?php class ControllerModuleFilterPro extends Controller { protected function index($setting) { if($setting['type'] == 1) { $this->language->load('product/filter'); $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->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $sort = 'p.sort_order'; $order = 'ASC'; $limit = $this->config->get('config_catalog_limit'); $url = ''; 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/filter', '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/filter', '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/filter', '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/filter', '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/filter', '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/filter', 'sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/filter', '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/filter', '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/filter', 'sort=p.model&order=DESC' . $url) ); $url = ''; if(isset($this->request->get['sort'])) { $url .= 'sort=' . $this->request->get['sort']; } if(isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $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/filter', $url . '&limit=' . $this->config->get('config_catalog_limit')) ); $this->data['limits'][] = array( 'text' => 25, 'value' => 25, 'href' => $this->url->link('product/filter', $url . '&limit=25') ); $this->data['limits'][] = array( 'text' => 50, 'value' => 50, 'href' => $this->url->link('product/filter', $url . '&limit=50') ); $this->data['limits'][] = array( 'text' => 75, 'value' => 75, 'href' => $this->url->link('product/filter', $url . '&limit=75') ); $this->data['limits'][] = array( 'text' => 100, 'value' => 100, 'href' => $this->url->link('product/filter', $url . '&limit=100') ); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data += $this->language->load('product/category'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_container.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/filterpro_container.tpl'; } else { $this->template = 'default/template/module/filterpro_container.tpl'; } } else { $this->language->load('module/filterpro'); 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'); } $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['page'] = $page; $this->data['limit'] = $limit; $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_out_of_stock'] = $this->language->get('button_out_of_stock'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['text_price_range'] = $this->language->get('text_price_range'); $this->data['text_manufacturers'] = $this->language->get('text_manufacturers'); $this->data['text_tags'] = $this->language->get('text_tags'); $this->data['text_categories'] = $this->language->get('text_categories'); $this->data['text_attributes'] = $this->language->get('text_attributes'); $this->data['text_all'] = $this->language->get('text_all'); $this->data['clear_filter'] = $this->language->get('clear_filter'); $this->data['text_instock'] = $this->language->get('text_instock'); $this->data['text_filer_special'] = $this->language->get('text_filer_special'); $this->data['text_filer_news'] = $this->language->get('text_filer_news'); $this->data['text_show_filer_special'] = $this->language->get('text_show_filer_special'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['symbol_right'] = $this->currency->getSymbolRight(); $this->data['symbol_left'] = $this->currency->getSymbolLeft(); $this->data['setting'] = $setting; if(VERSION == '1.5.0') { $filterpro_setting = unserialize($this->config->get('filterpro_setting')); } else { $filterpro_setting = $this->config->get('filterpro_setting'); } $this->data['text_show_filer_news'] = sprintf($this->language->get('text_show_filer_news'), $filterpro_setting['news_days']); $this->data['heading_title'] = $filterpro_setting['filterpro_name']; $this->data['heading_title'] = $this->language->get('heading_title'); $is_special = isset($this->request->get['route']) && $this->request->get['route'] == "product/special"; $is_bydate = isset($this->request->get['route']) && $this->request->get['route'] == "product/productsbydate"; $category_id = false; $this->data['path'] = ""; if(isset($this->request->get['path'])) { $this->data['path'] = $this->request->get['path']; $parts = explode('_', (string)$this->request->get['path']); $category_id = array_pop($parts); } $manufacturer_id = false; if(isset($this->request->get['manufacturer_id'])) { $manufacturer_id = $this->request->get['manufacturer_id']; $data = array( 'filter_manufacturer_id' => $this->request->get['manufacturer_id'] ); } else { $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => isset($filterpro_setting['subcategories']) ); } $this->load->model('catalog/product'); $product_total = $this->model_catalog_product->getTotalProducts($data); if($product_total < 2) { return; } $this->data['category_id'] = $category_id; $data = array('category_id' => $category_id, 'manufacturer_id' => $manufacturer_id, 'special' => $is_special, 'by_date' => $is_bydate,); $this->load->model('module/filterpro'); $this->data['manufacturers'] = false; if(isset($this->request->get['manufacturer_id'])) { $this->data['manufacturer_id'] = $this->request->get['manufacturer_id']; } else { if($filterpro_setting['display_manufacturer'] != 'none') { $this->data['manufacturers'] = $this->model_module_filterpro->getManufacturers($data); $this->data['display_manufacturer'] = $filterpro_setting['display_manufacturer']; $this->data['expanded_manufacturer'] = isset($filterpro_setting['expanded_manufacturer']) ? 1 : 0; } } $this->data['options'] = $this->model_module_filterpro->getOptions($data); $this->load->model('tool/image'); foreach($this->data['options'] as $i => $option) { if(!isset($filterpro_setting['display_option_' . $option['option_id']])) { $filterpro_setting['display_option_' . $option['option_id']] = 'none'; } $display_option = $filterpro_setting['display_option_' . $option['option_id']]; if($display_option != 'none') { $this->data['options'][$i]['display'] = $display_option; $this->data['options'][$i]['expanded'] = isset($filterpro_setting['expanded_option_' . $option['option_id']]) ? 1 : 0; foreach($this->data['options'][$i]['option_values'] as $j => $option_value) { $this->data['options'][$i]['option_values'][$j]['thumb'] = $this->model_tool_image->resize($this->data['options'][$i]['option_values'][$j]['image'], (int)$filterpro_setting['option_images_w'], (int)$filterpro_setting['option_images_h']); } } else { unset($this->data['options'][$i]); } } $this->data['tags'] = array(); if(version_compare(VERSION, "1.5.4") <= 0 && $filterpro_setting['display_tags'] != 'none') { $this->data['tags'] = $this->model_module_filterpro->getTags($data); $this->data['expanded_tags'] = isset($filterpro_setting['expanded_tags']) ? 1 : 0; } $this->data['categories'] = false; if($filterpro_setting['display_categories'] != 'none') { $this->data['categories'] = $this->model_module_filterpro->getSubCategories($data); $this->data['expanded_categories'] = isset($filterpro_setting['expanded_categories']) ? 1 : 0; } $this->data['attributes'] = $this->model_module_filterpro->getAttributes($data); foreach($this->data['attributes'] as $j => $attribute_group) { foreach($attribute_group['attribute_values'] as $attribute_id => $attribute) { if(!isset($filterpro_setting['display_attribute_' . $attribute_id])) { $filterpro_setting['display_attribute_' . $attribute_id] = 'none'; } $display_attribute = $filterpro_setting['display_attribute_' . $attribute_id]; if($display_attribute != 'none') { if($display_attribute == 'slider') { $values = $this->data['attributes'][$j]['attribute_values'][$attribute_id]['values']; $first = $values[0]; $this->data['attributes'][$j]['attribute_values'][$attribute_id]['suffix'] = preg_replace("/^[0-9]*(\\.[0-9]*)?/", '', $first); $values = array_map('floatVal', $values); $values = array_unique($values); sort($values); $this->data['attributes'][$j]['attribute_values'][$attribute_id]['values'] = $values; } $this->data['attributes'][$j]['attribute_values'][$attribute_id]['display'] = $display_attribute; $this->data['attributes'][$j]['attribute_values'][$attribute_id]['expanded'] = isset($filterpro_setting['expanded_attribute_' . $attribute_id]) ? 1 : 0; } else { unset($this->data['attributes'][$j]['attribute_values'][$attribute_id]); if(!$this->data['attributes'][$j]['attribute_values']) { unset($this->data['attributes'][$j]); } } } } $this->data['filter_groups'] = array(); $this->load->model('catalog/category'); $this->data['option_main_checkbox'] = isset($filterpro_setting['option_main_checkbox']) ? 1 : 0; if(version_compare(VERSION, "1.5.5") >= 0 && $filterpro_setting['filters']==1) { $this->data['expanded_filters'] = isset($filterpro_setting['expanded_filters']) ? 1 : 0; $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $filter_data = array(); foreach ($filter_group['filter'] as $filter) { $data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $filter_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($data) . ')' : '') ); } $this->data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $filter_data ); } } } $this->data['price_slider'] = $filterpro_setting['price_slider']; $this->data['attr_group'] = $filterpro_setting['attr_group']; $this->data['filer_special'] = isset($filterpro_setting['filer_special']); $this->data['filer_news'] = isset($filterpro_setting['filer_news']); $manufacturer = false; if(isset($this->request->get['manufacturer_id'])) { $manufacturer = array($this->request->get['manufacturer_id']); } $categories = false; if($category_id) { $categories = array($category_id); } $arr_data = array( 'instock' => isset($filterpro_setting['instock_checked']), 'option_value' => false, 'manufacturer' => $manufacturer, 'attribute_value' => false, 'tags' => false, 'categories' => $categories, 'attr_slider' => false, 'filter' => false, 'min_price' => 0, 'max_price' => 0, 'start' => 0, 'limit' => 1, 'sort' => false, 'order' => false ); if($this->data['filer_news']) { $product_total = $this->model_module_filterpro->getTotalProducts($arr_data + array('filer_news' => true)); $this->data['filer_news'] = $product_total > 0; // var_dump($product_total); } if($this->data['filer_special']) { $product_total = $this->model_module_filterpro->getTotalProducts($arr_data + array('special' => true, 'filer_news' => false)); $this->data['filer_special'] = $product_total > 0; // var_dump($product_total); } $this->data['instock_checked'] = isset($filterpro_setting['instock_checked']) ? 1 : 0; $this->data['instock_visible'] = isset($filterpro_setting['instock_visible']) ? 1 : 0; if($this->data['tags'] || $this->data['categories'] || $this->data['options'] || $this->data['manufacturers'] || $this->data['attributes'] || $this->data['price_slider']) { $this->document->addScript('catalog/view/javascript/jquery/jquery.tmpl.min.js'); $this->document->addScript('catalog/view/javascript/jquery/jquery.deserialize.min.js'); $this->document->addScript('catalog/view/javascript/jquery/jquery.loadmask.min.js'); $this->document->addScript('catalog/view/javascript/jquery/jquery.lazyload.min.js'); if(isset($filterpro_setting['enable_touch_screen'])) { $this->document->addScript('catalog/view/javascript/jquery/jquery.ui.touch-punch.min.js'); } $this->document->addScript('catalog/view/javascript/filterpro.min.js'); if(isset($filterpro_setting['jscrollpane'])) { $this->document->addScript('catalog/view/javascript/jquery/jscrollpane/jquery.mousewheel.js'); $this->document->addScript('catalog/view/javascript/jquery/jscrollpane/jquery.jscrollpane.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/jscrollpane/jquery.jscrollpane.css'); } if(isset($filterpro_setting['enable_endless_scroller'])) { $this->document->addScript('catalog/view/javascript/jquery/jquery.endlessScroll.js'); } if (isset($filterpro_setting['theme_mega'])){ $this->document->addStyle('catalog/view/theme/default/stylesheet/filterpro-mega.css'); $this->document->addScript('catalog/view/javascript/jquery/qtip2/mega/jquery.qtip.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/qtip2/mega/jquery.qtip.min.css'); } else{ $this->document->addStyle('catalog/view/theme/default/stylesheet/filterpro.css'); $this->document->addScript('catalog/view/javascript/jquery/qtip2/jquery.qtip.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/qtip2/jquery.qtip.min.css'); } $this->document->addStyle('catalog/view/theme/default/stylesheet/jquery.loadmask.css'); if($this->config->get('config_template') == 'shoppica2') { $this->document->addStyle('catalog/view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css'); } } $filter_hash = ""; if(isset($this->request->get['filter_id'])) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "filterpro_seo WHERE `url`='" . $this->db->escape("filter_id=" . $this->request->get['filter_id']) . "'"); if ($query->num_rows){ $filterpro_seo = unserialize($query->row['data']); $filter_hash = $filterpro_seo['url']; } } $this->data['filterpro_container'] = $filterpro_setting['filterpro_container']; $this->data['filterpro_afterload'] = html_entity_decode($filterpro_setting['filterpro_afterload'], ENT_QUOTES, 'UTF-8'); $this->data['filterOptions'] = json_encode(array( 'container' => $filterpro_setting['filterpro_container'], 'filter_redirect' => isset($this->request->get['filter_redirect'])?$this->request->get['filter_redirect']:null, 'filter_hash' => $filter_hash, 'window_hash' => !isset($filterpro_setting['hide_window_hash']), 'hide_count' => isset($filterpro_setting['hide_count']), 'hide_options' => isset($filterpro_setting['hide_options']), 'disable_mask' => isset($filterpro_setting['disable_mask']), 'endless_scroller' => isset($filterpro_setting['enable_endless_scroller']), )); if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/filterpro.tpl'; } else { $this->template = 'default/template/module/filterpro.tpl'; } } $this->render(); } public function getProducts() { if(!isset($this->request->post['min_price'])) { return; } $this->load->model('module/filterpro'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $getTotals = false; if(isset($this->request->post['getTotals']) && $this->request->post['getTotals']) { $getTotals = true; } list($filterpro_setting, $page, $limit, $manufacturer_id, $attribute_value, $option_value, $category_id, $data) = $this->model_module_filterpro->getData(); $is_special = (isset($this->request->post['route']) && $this->request->post['route'] == "product/special") || isset($this->request->post['filer_special']); $is_bydate = isset($this->request->post['route']) && $this->request->post['route'] == "product/productsbydate"; $data['special'] = $is_special; $data['by_date'] = $is_bydate; $data['filer_news'] = isset($this->request->post['filer_news']); $totals_manufacturers = array(); if ($getTotals && $filterpro_setting['display_manufacturer'] != 'none' && !isset($this->request->post['manufacturer_id'])){ $totals_manufacturers = $this->model_module_filterpro->getTotalManufacturers($data); } $totals_options = array(); $totals_attributes = array(); $totals_categories = array(); $totals_tags = array(); if($getTotals) { $totals_options = $this->model_module_filterpro->getTotalOptions($data); if(!isset($this->filterpro_setting['option_total_simple'])) { if($option_value) { foreach($option_value as $option_id => $option_value_id) { foreach($totals_options as $i => $totals_option) { if($totals_option['o'] == $option_id) { unset($totals_options[$i]); } } $temp_data = $data; unset($temp_data['option_value'][$option_id]); foreach($this->model_module_filterpro->getTotalOptions($temp_data) as $option) { if($option['o'] == $option_id) { $totals_options[] = $option; } } } } } $totals_attributes = $this->model_module_filterpro->getTotalAttributes($data); if(!isset($filterpro_setting['attr_total_simple'])) { foreach($attribute_value as $attribute_id => $values) { foreach($totals_attributes as $i => $attribute) { if($attribute['id'] == $attribute_id) { unset($totals_attributes[$i]); } } $temp_data = $data; unset($temp_data['attribute_value'][$attribute_id]); foreach($this->model_module_filterpro->getTotalAttributes($temp_data) as $attribute) { if($attribute['id'] == $attribute_id) { $totals_attributes[] = $attribute; } } } } $totals_tags = array(); if(version_compare(VERSION, "1.5.4") <= 0) { $totals_tags = $this->model_module_filterpro->getTotalTags($data); } $totals_categories = $this->model_module_filterpro->getTotalCategories($data, $category_id); } $results = $this->model_module_filterpro->getProducts($data); $min_price = false; $max_price = false; if(isset($this->request->post['getPriceLimits']) && $this->request->post['getPriceLimits']) { $priceLimits = $this->model_module_filterpro->getPriceLimits(array('category_id' => $category_id, 'manufacturer_id' => $manufacturer_id, 'special' =>$is_special, 'by_date' =>$is_bydate)); $min_price = $priceLimits['min_price']; $max_price = $priceLimits['max_price']; } $this->request->get['path'] = isset($this->request->post['path']) ? $this->request->post['path'] : ''; $product_total = $this->model_module_filterpro->getTotalProducts($data); $result_html = $this->getHtmlProducts($results, $product_total); $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); if (isset($this->request->post['manufacturer_id'])) { $pagination->url = $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->post['manufacturer_id'] . '&page={page}'); } else { $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&page={page}'); } $pagination = $pagination->render(); $k = 1; if((float)$filterpro_setting['tax'] > 0) { $k = 1 + (float)$filterpro_setting['tax'] / 100; } $min_price = $this->currency->convert($min_price * $k, $this->config->get('config_currency'), $this->currency->getCode()); $max_price = $this->currency->convert($max_price * $k, $this->config->get('config_currency'), $this->currency->getCode()); $json = json_encode(array('result_html' => $result_html, 'min_price' => $min_price, 'max_price' => $max_price, 'pagination' => $pagination, 'totals_data' => $getTotals ? array( 'product_total' => $product_total, 'manufacturers' => $totals_manufacturers, 'options' => $totals_options, 'attributes' => $totals_attributes, 'categories' => $totals_categories, 'tags' => $totals_tags) : false)); $this->response->setOutput($json); } private function getHtmlProducts($results, $product_total) { $this->data += $this->language->load('product/category'); $this->data['use_lazyload'] = isset($filterpro_setting['use_lazyload']) ? 1 : 0; $this->data['products'] = array(); $this->load->model('catalog/product_status'); $this->load->model('catalog/promotion'); foreach ($results as $result) { $promotions = $this->model_catalog_promotion->getHTMLProductPromotions($result['product_id']); if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } // module attribute to text $options = $this->config->get('attribute_to_text_options'); if (isset($options['show_catalog_attributes'])) { $this->load->model('catalog/attributes_to_text'); $description = $this->model_catalog_attributes_to_text->getText($result['product_id'], $options); if (empty($description) || $description == '<span class="attributes-text"></span>') { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } $this->data['products'][] = array( 'promotion' => $result['promotions']['category'], 'statuses' => $result['statuses']['category'], 'stickers' => $result['statuses']['category_stickers'], 'product_id' => $result['product_id'], 'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'thumb' => $image, 'name' => $result['name'], //produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']) ); } if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_list.tpl') && file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_grid.tpl') ) { $this->template = $this->config->get('config_template') . '/template/module/filterpro_list.tpl'; $return['list'] = $this->render(); $this->template = $this->config->get('config_template') . '/template/module/filterpro_grid.tpl'; $return['grid'] = $this->render(); return $return; } elseif(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_products.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/filterpro_products.tpl'; } else { $this->template = 'default/template/module/filterpro_products.tpl'; } return $this->render(); } } ?> Может кто знает, как справиться с проблемой? Буду благодарен любой помощи. Змінено 14 липня 2019 користувачем Zapuzin Добавление файла Надіслати Поділитися на інших сайтах More sharing options... Zapuzin Опубліковано: 14 липня 2019 Share Опубліковано: 14 липня 2019 Забыл написать, что ошибок в логах нет, как системных, так и vqmod. Надіслати Поділитися на інших сайтах More sharing options... Zapuzin Опубліковано: 15 липня 2019 Share Опубліковано: 15 липня 2019 Странно. Появились ошибки, хотя на сайте модуль Product Display Settings отображает всё, что нужно правильно, только фильтр про не хочет значение "Наличие" товаров, которые есть в наличии, переводить ) Ошибки появились через некоторое время. Во время экспериментов с проблемным модулем кеш чистился весь, и они не появлялись ) Спойлер 2019-07-15 0:59:07 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_manufacturer.php on line 386 2019-07-15 0:59:07 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_manufacturer.php on line 387 2019-07-15 10:57:34 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 404 2019-07-15 10:57:34 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 405 Весь "product-display-settings.xml" Спойлер <!-- Created using vQmod XML Generator by UKSB - http://www.opencart-extensions.co.uk //--> <modification> <id><![CDATA[Product Display Settings]]></id> <version><![CDATA[1.2]]></version> <vqmver><![CDATA[2.1.5]]></vqmver> <author><![CDATA[Flo from shopencart.com, edited by drbogger]]></author> <file name="admin/controller/setting/setting.php"> <operation> <search position="before" error="log"><![CDATA[if (isset($this->request->post['config_logo'])) {]]></search> <add><![CDATA[ //product display settings if (isset($this->request->post['config_display_sku'])) { $this->data['config_display_sku'] = $this->request->post['config_display_sku']; } else { $this->data['config_display_sku'] = $this->config->get('config_display_sku'); } if (isset($this->request->post['config_display_pweight'])) { $this->data['config_display_pweight'] = $this->request->post['config_display_pweight']; } else { $this->data['config_display_pweight'] = $this->config->get('config_display_pweight'); } if (isset($this->request->post['config_display_skup'])) { $this->data['config_display_skup'] = $this->request->post['config_display_skup']; } else { $this->data['config_display_skup'] = $this->config->get('config_display_skup'); } if (isset($this->request->post['config_display_model'])) { $this->data['config_display_model'] = $this->request->post['config_display_model']; } else { $this->data['config_display_model'] = $this->config->get('config_display_model'); } if (isset($this->request->post['config_display_modelp'])) { $this->data['config_display_modelp'] = $this->request->post['config_display_modelp']; } else { $this->data['config_display_modelp'] = $this->config->get('config_display_modelp'); } if (isset($this->request->post['config_display_brand'])) { $this->data['config_display_brand'] = $this->request->post['config_display_brand']; } else { $this->data['config_display_brand'] = $this->config->get('config_display_brand'); } if (isset($this->request->post['config_display_brandp'])) { $this->data['config_display_brandp'] = $this->request->post['config_display_brandp']; } else { $this->data['config_display_brandp'] = $this->config->get('config_display_brandp'); } if (isset($this->request->post['config_display_rewardsp'])) { $this->data['config_display_rewardsp'] = $this->request->post['config_display_rewardsp']; } else { $this->data['config_display_rewardsp'] = $this->config->get('config_display_rewardsp'); } if (isset($this->request->post['config_display_location'])) { $this->data['config_display_location'] = $this->request->post['config_display_location']; } else { $this->data['config_display_location'] = $this->config->get('config_display_location'); } if (isset($this->request->post['config_display_locationp'])) { $this->data['config_display_locationp'] = $this->request->post['config_display_locationp']; } else { $this->data['config_display_locationp'] = $this->config->get('config_display_locationp'); } if (isset($this->request->post['config_display_listock'])) { $this->data['config_display_listock'] = $this->request->post['config_display_listock']; } else { $this->data['config_display_listock'] = $this->config->get('config_display_listock'); } if (isset($this->request->post['config_display_upc'])) { $this->data['config_display_upc'] = $this->request->post['config_display_upc']; } else { $this->data['config_display_upc'] = $this->config->get('config_display_upc'); } if (isset($this->request->post['config_display_upcp'])) { $this->data['config_display_upcp'] = $this->request->post['config_display_upcp']; } else { $this->data['config_display_upcp'] = $this->config->get('config_display_upcp'); } //end of product display options]]></add> </operation> </file> <file name="admin/view/template/setting/setting.tpl"> <operation> <search position="after"><![CDATA[<div id="tab-option">]]></search> <add><![CDATA[<table class="form"> <tr> <td>Бонусные баллы на странице товара?</td> <td><?php if ($config_display_rewardsp) { ?> <input type="radio" name="config_display_rewardsp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_rewardsp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_rewardsp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_rewardsp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Вес на странице товара?</td> <td><?php if ($config_display_pweight) { ?> <input type="radio" name="config_display_pweight" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_pweight" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_pweight" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_pweight" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>SKU на странице товара?</td> <td><?php if ($config_display_sku) { ?> <input type="radio" name="config_display_sku" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_sku" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_sku" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_sku" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>SKU на странице категории?</td> <td><?php if ($config_display_skup) { ?> <input type="radio" name="config_display_skup" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_skup" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_skup" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_skup" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Код товара на странице категории?</td> <td><?php if ($config_display_model) { ?> <input type="radio" name="config_display_model" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_model" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_model" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_model" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Код товара на странице товара?</td> <td><?php if ($config_display_modelp) { ?> <input type="radio" name="config_display_modelp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_modelp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_modelp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_modelp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Бренд на странице категории?</td> <td><?php if ($config_display_brand) { ?> <input type="radio" name="config_display_brand" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brand" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_brand" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brand" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Бренд на странице товара?</td> <td><?php if ($config_display_brandp) { ?> <input type="radio" name="config_display_brandp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brandp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_brandp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brandp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Гарантия на странице категории?</td> <td><?php if ($config_display_location) { ?> <input type="radio" name="config_display_location" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_location" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_location" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_location" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr><tr> <td>Гарантия на странице товара?</td> <td><?php if ($config_display_locationp) { ?> <input type="radio" name="config_display_locationp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_locationp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_locationp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_locationp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>UPC на странице категории?</td> <td><?php if ($config_display_upc) { ?> <input type="radio" name="config_display_upc" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upc" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_upc" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upc" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr><tr> <td>UPC на странице товара?</td> <td><?php if ($config_display_upcp) { ?> <input type="radio" name="config_display_upcp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upcp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_upcp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upcp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Наличие товара на странице категории?</td> <td><?php if ($config_display_listock) { ?> <input type="radio" name="config_display_listock" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_listock" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_listock" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_listock" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr></table>]]></add> </operation> </file> <file name="catalog/controller/product/product.php"> <operation> <search position="after"><![CDATA[$this->data['points'] = $product_info['points'];]]></search> <add><![CDATA[//product display options $this->language->load('product/pds'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_weight'] = $this->language->get('pds_weight'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['sku'] = $product_info['sku']; $this->data['upc'] = $product_info['upc']; $this->data['location'] = $product_info['location']; if ($product_info['weight']) { $this->data['weight'] = $this->weight->format($product_info['weight'], $product_info['weight_class_id'], $this->language->get('decimal_point'), $this->language->get('thousand_point')); } else { $this->data['weight'] = ''; } ]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/product.tpl"> <operation> <search position="after"><![CDATA[<span><?php echo $text_model; ?></span> <?php echo $model; ?><br />]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_skup') && $sku) { ?> <span><?php echo $pds_sku; ?> </span> <?php echo $sku; ?><br /> <?php } ?> <?php if ($this->config->get('config_display_upcp') && $upc) { ?> <span><?php echo $pds_upc; ?> </span> <?php echo $upc; ?><br /> <?php } ?> <?php if ($this->config->get('config_display_locationp') && $location) { ?> <span><?php echo $pds_location; ?> </span> <?php echo $location; ?><br /> <?php } ?> <?php if ($this->config->get('config_display_pweight') && $weight) { ?> <span><?php echo $pds_weight; ?> </span> <?php echo $weight; ?><br /> <?php } ?> ]]></add> </operation> <operation> <search position="replace"><![CDATA[<?php if ($manufacturer) { ?>]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_brandp') && $manufacturer) { ?>]]></add> </operation> <operation> <search position="replace"><![CDATA[<?php if ($reward) { ?>]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_rewardsp') && $reward) { ?>]]></add> </operation> <operation> <search position="replace"><![CDATA[<span><?php echo $text_model; ?></span> <?php echo $model; ?><br />]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_modelp')) { ?> <span><?php echo $pds_model; ?></span> <?php echo $model; ?><br /> <?php } ?>]]></add> </operation> </file> <file name="catalog/controller/product/category.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/controller/product/search.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/controller/product/manufacturer.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/controller/product/special.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/search.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/category.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/special.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/manufacturer_info.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/controller/module/latest.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/latest');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/latest.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/bestseller.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/bestseller');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/bestseller.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/special.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/special');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/special.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/featured.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_info['quantity'] <= 0) { $rstock = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $product_info['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$product_info['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $product_info['sku'], 'model' => $product_info['model'], 'brand' => $product_info['manufacturer'], 'location' => $product_info['location'], 'upc' => $product_info['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $product_info['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/featured');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/featured.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/viewed.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_info['quantity'] <= 0) { $rstock = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $product_info['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$product_info['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $product_info['sku'], 'model' => $product_info['model'], 'brand' => $product_info['manufacturer'], 'location' => $product_info['location'], 'upc' => $product_info['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $product_info['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/viewed');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/viewed.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/filterpro.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/filterpro_products.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> </modification> vq2-catalog_controller_product_manufacturer.php Спойлер <?php class ControllerProductManufacturer extends Controller { public function index() { $this->language->load('product/manufacturer'); $this->load->model('catalog/manufacturer'); $this->load->model('tool/image'); $this->document->setTitle($this->language->get('heading_title')); $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_index'] = $this->language->get('text_index'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_brand'), 'href' => $this->url->link('product/manufacturer'), 'separator' => $this->language->get('text_separator') ); $this->data['categories'] = array(); $results = $this->model_catalog_manufacturer->getManufacturers(); foreach ($results as $result) { if (is_numeric(utf8_substr($result['name'], 0, 1))) { $key = '0 - 9'; } else { $key = utf8_substr(utf8_strtoupper($result['name']), 0, 1); } if (!isset($this->data['manufacturers'][$key])) { $this->data['categories'][$key]['name'] = $key; } $this->data['categories'][$key]['manufacturer'][] = array( 'name' => $result['name'], // ManufacturerLogo 'logo' => $this->model_tool_image->resize($result['image'], 100, 100), // ManufacturerLogo end 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id']) ); } $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/manufacturer_list.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/manufacturer_list.tpl'; } else { $this->template = 'default/template/product/manufacturer_list.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()); } public function info() { $this->language->load('product/manufacturer'); $this->load->model('catalog/manufacturer'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['manufacturer_id'])) { $manufacturer_id = (int)$this->request->get['manufacturer_id']; } else { $manufacturer_id = 0; } $filterpro_seo = false; $url_data = false; if(isset($this->request->get['filter_id'])) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "filterpro_seo WHERE `url`='" . $this->db->escape("filter_id=" . $this->request->get['filter_id']) . "'"); if($query->num_rows) { $filterpro_data = unserialize($query->row['data']); $filterpro_seo = $filterpro_data['lang'][(int)$this->config->get('config_language_id')]; parse_str(str_replace("&", "&", $filterpro_data['url']), $url_data); $url_data['filer_news'] = false; if (!isset($url_data['manufacturer_id']) || $url_data['manufacturer_id'] != $manufacturer_id) { $this->redirect($this->url->link('error/not_found')); } } } 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'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_brand'), 'href' => $this->url->link('product/manufacturer'), 'separator' => $this->language->get('text_separator') ); $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id); if ($manufacturer_info) { if ($manufacturer_info['seo_title']) { $this->document->setTitle($manufacturer_info['seo_title']); } else { $this->document->setTitle($manufacturer_info['name']); } $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->document->setDescription($manufacturer_info['meta_description']); $this->document->setKeywords($manufacturer_info['meta_keyword']); $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $manufacturer_info['name'], 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url), 'separator' => $this->language->get('text_separator') ); if ($manufacturer_info['seo_h1']) { $this->data['heading_title'] = $manufacturer_info['seo_h1']; } else { $this->data['heading_title'] = $manufacturer_info['name']; if($filterpro_seo) { $this->data['description'] = html_entity_decode($filterpro_seo['description'], ENT_QUOTES, 'UTF-8'); $this->data['heading_title'] = $filterpro_seo['h1']; $this->document->setTitle($filterpro_seo['title']); $this->document->setDescription($filterpro_seo['meta_description']); $this->document->setKeywords($filterpro_seo['meta_keywords']); } } $this->data['description'] = html_entity_decode($manufacturer_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['text_empty'] = $this->language->get('text_empty'); $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->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_out_of_stock'] = $this->language->get('button_out_of_stock'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['compare'] = $this->url->link('product/compare'); $this->data['products'] = array(); $data = array( 'filter_manufacturer_id' => $manufacturer_id, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); if($url_data) { $get = $this->request->get; unset($get['route']); unset($get['filter_id']); $this->request->get['filter_redirect'] = $this->url->link('product/category', http_build_query($get)); $this->request->post = $url_data; $this->load->model('module/filterpro'); list($f1, $f2, $f3, $f4, $f5, $f5, $f6, $url_data) = $this->model_module_filterpro->getData(); $url_data['filer_news'] = false; $product_total = $this->model_module_filterpro->getTotalProducts($url_data); $results = $this->model_module_filterpro->getProducts($url_data); } else { $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); } //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getTotalProducts($data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = 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 ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } // module attribute to text $options = $this->config->get('attribute_to_text_options'); if (isset($options['show_catalog_attributes'])) { $this->load->model('catalog/attributes_to_text'); $description = $this->model_catalog_attributes_to_text->getText($result['product_id'], $options); if (empty($description) || $description == '<span class="attributes-text"></span>') { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } $this->data['products'][] = array( 'promotion' => $result['promotions']['category'], 'statuses' => $result['statuses']['category'], 'stickers' => $result['statuses']['category_stickers'], 'product_id' => $result['product_id'], 'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'thumb' => $image, 'name' => $result['name'], //produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', '&manufacturer_id=' . $result['manufacturer_id'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; 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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.price&order=DESC' . $url) ); if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} 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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value){ $this->data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $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/manufacturer/info','manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/manufacturer_info.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/manufacturer_info.tpl'; } else { $this->template = 'default/template/product/manufacturer_info.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()); } else { $url = ''; if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } 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('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.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()); } } } ?> vq2-catalog_controller_product_category.php Спойлер <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $filterpro_seo = false; $url_data = false; if(isset($this->request->get['filter_id'])) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "filterpro_seo WHERE `url`='" . $this->db->escape("filter_id=" . $this->request->get['filter_id']) . "'"); if($query->num_rows) { $filterpro_data = unserialize($query->row['data']); $filterpro_seo = $filterpro_data['lang'][(int)$this->config->get('config_language_id')]; parse_str(str_replace("&", "&", $filterpro_data['url']), $url_data); $url_data['filer_news'] = false; if(!isset($url_data['category_id']) || $url_data['category_id'] != $category_id) { $this->redirect($this->url->link('error/not_found')); } } } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['seo_title']) { $this->document->setTitle($category_info['seo_title']); } else { $this->document->setTitle($category_info['name']); } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); if ($category_info['seo_h1']) { $this->data['heading_title'] = $category_info['seo_h1']; } else { $this->data['heading_title'] = $category_info['name']; } $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $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->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_out_of_stock'] = $this->language->get('button_out_of_stock'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); $this->document->setOgImage($this->data['thumb']); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); if($filterpro_seo) { $this->data['description'] = html_entity_decode($filterpro_seo['description'], ENT_QUOTES, 'UTF-8'); $this->data['heading_title'] = $filterpro_seo['h1']; $this->document->setTitle($filterpro_seo['title']); $this->document->setDescription($filterpro_seo['meta_description']); $this->document->setKeywords($filterpro_seo['meta_keywords']); } $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); if($url_data) { $get = $this->request->get; unset($get['route']); unset($get['filter_id']); $this->request->get['filter_redirect'] = $this->url->link('product/category', http_build_query($get)); $this->request->post = $url_data; $this->load->model('module/filterpro'); list($f1, $f2, $f3, $f4, $f5, $f5, $f6, $url_data) = $this->model_module_filterpro->getData(); $url_data['filer_news'] = false; $product_total = $this->model_module_filterpro->getTotalProducts($url_data); $results = $this->model_module_filterpro->getProducts($url_data); } else { $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); } //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getTotalProducts($data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } // module attribute to text $options = $this->config->get('attribute_to_text_options'); if (isset($options['show_catalog_attributes'])) { $this->load->model('catalog/attributes_to_text'); $description = $this->model_catalog_attributes_to_text->getText($result['product_id'], $options); if (empty($description) || $description == '<span class="attributes-text"></span>') { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } $this->data['products'][] = array( 'promotion' => $result['promotions']['category'], 'statuses' => $result['statuses']['category'], 'stickers' => $result['statuses']['category_stickers'], 'product_id' => $result['product_id'], 'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'thumb' => $image, 'name' => $result['name'], //produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} 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/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value){ $this->data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category.tpl'; } else { $this->template = 'default/template/product/category.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()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.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()); } } } ?> Что заметил. Системные ошибки, связанные с "Product Display Settings", периодически начали появляться после того, как добавился файл "product_statuses.xml" нового модуля "Статусы Товара PRO Speed, автостатусы, стикеры, текстовые статусы". Видно им тесно вдвоём ) Надіслати Поділитися на інших сайтах More sharing options... Zapuzin Опубліковано: 15 липня 2019 Share Опубліковано: 15 липня 2019 Проблема решена. Оказалось всё очень просто. В языковой файл фильтра добавил то, что было уже прописано в языковом файле pds.php ) С системными ошибками, связанными с "Product Display Settings" вроде тоже справляюсь. Ради эксперимента убрал код дубль (нижний), на который ругалась система (изменил в xml файле, чтобы вставлялся один раз). Функционал на сайте в пределах модуля не изменился. Ошибок пока нет. Похоже, что повторение этого кода ниже не имеет значения. filterpro отключил. Мониторю ) Надіслати Поділитися на інших сайтах More sharing options... mexx Опубліковано: 23 липня 2019 Share Опубліковано: 23 липня 2019 Очень сильно тормозит модуль на версии 1.5 - на данный момент около 11000 товаров в магазине и модуль думает от 40 сек до 2х минут - клиенты не дожидаются, уходят. Что делать и как можно ускорить работу? Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... slawik0707 Опубліковано: 13 серпня 2019 Share Опубліковано: 13 серпня 2019 Всем добрый день! Есть кто поможет установить и настроить фильтр на сайт? Версия 1.5.6.3. Напишите в личку пожалуйста! Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Serg9988 Опубліковано: 3 вересня 2019 Share Опубліковано: 3 вересня 2019 Доброе время суток. Есть сайт версия 1.5 движка Стоит фильт все работает норм. Фильтр фильтрует по категориям. При выборе категории меняетсяна странице H1 в соответствии с выбранной каетгорией в фильтре. Возникла надобность еще в одном месте на странице проставить название выбранной категории в фильтре. Не могу найти место где происходит подмена. Если в новом месте указываю h1 то в нем меняет , но два h1 на странице это плохо. Как понимаю замену делает какой-то скрипт, только вот не могу найти где он. Буду благодарен за помощ. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... Reistli Опубліковано: 17 вересня 2019 Share Опубліковано: 17 вересня 2019 Добрый день! Покупали у Вас фильтры для сайтов, сейчас перевели 1 сайт на https, а второй переименовали (убрали лишнюю точку): FilterPro v2.4.2.3.2 (mega) - betar-spb.ru (перевели на https) FilterPro v2.5.17.6_beta (speed) - shop.tvt.kz (переименовали в shoptvt.kz) Теперь ваши фильтры не работают, понятно почему. Собственно вопрос, можете ли Вы нам с этим как-нибудь помочь, кроме как покупки заново фильтров ? Может есть возможность хотя бы перевести с сайта без ssl на сайт c ssl? Сам домен не изменился, только вот https установили. Спасибо большое заранее! Надіслати Поділитися на інших сайтах More sharing options... KDS898 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 Здравствуйте, перестал работать Filterpro. Удалили вирус который елл сайт, но который не трогал фильтр. Теперь фильтр не работает. Может он слетел или обновить нужно??? Надіслати Поділитися на інших сайтах More sharing options... Vitaly84 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 Здравствуйте! 16.09.2019 я приобрел Ваш модуль Filter Pro для ocStore 1.5.5.1.1, URL сайта https://dreamapp.ru Интересует еще такой вопрос, можно ли будет аннулировать сделку с возвратом денежных средств за покупку модуля, если модуль не сможет корректно работать на моём сайте? Причиной данного вопроса являются множественные переделки сайта, как самой темы, так и административной части. P.S. Личное сообщение по поводу лицензии отправил Вам 17.09.2019, но до сих пор Вы его не прочли, поэтому пишу в эту ветку форума. Спасибо. Надіслати Поділитися на інших сайтах More sharing options... KDS898 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 4 часа назад, KDS898 сказал: Здравствуйте, перестал работать Filterpro. Удалили вирус который елл сайт, но который не трогал фильтр. Теперь фильтр не работает. Может он слетел или обновить нужно??? Ошибка при нажатии редактирования: Fatal error: Uncaught exception 'Exception' with message 'Error: Table 'doorclose_vlad.oc_filterpro_seo' doesn't exist<br />Error No: 1146<br />SELECT COUNT(*) AS total FROM `oc_filterpro_seo`' in /home/d/doorclose/complexds.ru/public_html/system/library/db/mysqli.php:45 Stack trace: #0 /home/d/doorclose/complexds.ru/public_html/system/library/db.php(21): DB\MySQLi->query('SELECT COUNT(*)...', Array) #1 /home/d/doorclose/complexds.ru/public_html/admin/model/module/seofilterpro.php(72): DB->query('SELECT COUNT(*)...') #2 [internal function]: ModelModuleSeofilterpro->getTotalSeoData() #3 /home/d/doorclose/complexds.ru/public_html/system/storage/modification/system/engine/loader.php(189): call_user_func_array(Array, Array) #4 [internal function]: Loader->{closure}(Array, Array) #5 /home/d/doorclose/complexds.ru/public_html/system/engine/proxy.php(30): call_user_func_array(Object(Closure), Array) #6 /home/d/doorclose/complexds.ru/public_html/admin/controller/module/seofilterpro.php(35): Proxy->__call('getTotalSeoData', Array) in /home/d/doorclose/complexds.ru/public_html/system/library/db/mysqli.php on line 45 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... Vitaly84 Опубліковано: 30 вересня 2019 Share Опубліковано: 30 вересня 2019 Здравствуйте! В магазине 581 товар, 19 групп атрибутов, 334 атрибута и 25 опций. При добавлении фильтра на страницу Категория товаров (в настройка фильтра включена фильтрация по 3 атрибутам и по стоимости товаров, остальные позиции в статусе "Не отображать"), страница зависает и ничего невозможно сделать, после отключения модуля сайт начинает работать корректно. Пожалуйста, подскажите, в чем может быть причина и есть ли решение, как можно восстановить нормальную работу сайта при включенном фильтре? Надіслати Поділитися на інших сайтах More sharing options... mirek Опубліковано: 7 жовтня 2019 Share Опубліковано: 7 жовтня 2019 Здравствуйте Какая то путаница с номерами версий фильтра На этой странице написано, что продается версия 1.5.17.6_beta Я хочу купить версию у которой есть вкладка SEO По скринам этого не видно И тут упоминается о версии filterpro_v2.4.4(seo) Так какую версию мне покупать ? IonCube у меня установлен Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... krashman Опубліковано: 19 жовтня 2019 Share Опубліковано: 19 жовтня 2019 Прошёл почти месяц с сообщения в ЛС @freelancer Ответа нет. Даже не прочитано. Надіслати Поділитися на інших сайтах More sharing options... mirek Опубліковано: 21 жовтня 2019 Share Опубліковано: 21 жовтня 2019 Здравствуйте Спасибо Активировали Теперь вопрос на счет SEO урлов Хотелось бы, что-бы при выборе в фильтре и совпадении выбора с урлом указанным во вкладке SEO в адресной строке выводился SEO урл, а не это #category_id=75&page=1&path=59_75&sort=p.sort_order&order=ASC&limit То есть не понятно Это реализовано вообще ? Может просто у нас не работает ? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... freelancer Опубліковано: 5 листопада 2019 Автор Share Опубліковано: 5 листопада 2019 небольшое обновление фильтр не требует ioncube, работает без лицензии. цена упала на 200р Надіслати Поділитися на інших сайтах More sharing options... Sunjahman Опубліковано: 13 листопада 2019 Share Опубліковано: 13 листопада 2019 (змінено) Добрый день, @freelancer ! Можно ли как-то заставить фильтр, при заходе на определенную категорию, выставлять определенные атрибуты в чекбоксах? Пример: есть 2 категории "смартфоны" и "телефоны" у всех товаров в категории "смартфоны" присутствует атрибут "сенсорный экран" у всех товаров в категории "телефоны" присутствует атрибут "калькулятор" Вот можно ли чтобы данные атрибуты сразу выставлялись. По аналогии в принципе и производители. в категории "sony" выставлялся производитель "сони" Подобную опцию увидел на одном сайте, к вашему фильтру он отношения не имеет, но функционал весьма удобен. Змінено 13 листопада 2019 користувачем Sunjahman Надіслати Поділитися на інших сайтах More sharing options... Назад 271 272 273 274 275 276 277 278 279 Вперед Сторінка 276 з 279 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 23 Перейти до списку тем Схожі публікації ajax filter [Поддержка] Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 21 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 5 відповідей 1 482 перегляди sevansht 17 вересня ajax filter Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 20 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 0 коментарів 5 384 перегляди kirians 21 жовтня 2021 batch [Поддержка] Универсальный массовый редактор товаров. MULTIEDIT AI 1 2 3 4 11 Автор: Sha, 16 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 253 відповіді 57 946 переглядів Sha В неділю в 21:25 batch Універсальний масовий редактор товарів. MultiEdit AI Автор: Sha, 15 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 0 коментарів 57 317 переглядів Sha 15 березня 2017 [Поддержка] Автор: Wadamir, 12 лютого 2021 админка фильтр (і ще %d) Теги: админка фильтр категории производитель 0 відповідей 745 переглядів Wadamir 23 лютого 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Фильтры filter Pro [Поддержка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
promikes Опубліковано: 13 травня 2019 Share Опубліковано: 13 травня 2019 Добрый день! Столкнулся с проблемой, покупал лицензию Вашего фильтра еще лет 5 назад. Вот сейчас делаем переход на https, т.к. уже требуют все рекламные площадки, и после перехода у нас ion_cube соответственно не пропускает наш сайт, т.к. считает, что мы пытаемся дублировать лицензию. Написал в ЛС, сюда дублирую, т.к. кейс может быть интересен другим пользователям, полагаю. Надіслати Поділитися на інших сайтах More sharing options...
thecatus Опубліковано: 27 травня 2019 Share Опубліковано: 27 травня 2019 @freelancer, здравствуйте, прошу ответить на личное сообщение от 21.05. по вопросу поддержки модуля Надіслати Поділитися на інших сайтах More sharing options...
Zapuzin Опубліковано: 19 червня 2019 Share Опубліковано: 19 червня 2019 (змінено) В 13.05.2019 в 13:23, promikes сказал: Вот сейчас делаем переход на https, т.к. уже требуют все рекламные площадки... Тоже в процессе перехода на https. Вопрос о лицензии данного модуля "filterpro v2.4.4(seo)" и "SeoGen 4.1" очень актуален! Без ясности данного вопроса переходить не хочется ) С остальными авторами модулей в процессе выяснения. freelancer, написАл в ЛС Змінено 19 червня 2019 користувачем Zapuzin Надіслати Поділитися на інших сайтах More sharing options...
Zapuzin Опубліковано: 20 червня 2019 Share Опубліковано: 20 червня 2019 (змінено) Не дождался ответа и перешёл на https. Все лицензионные модули, в том числе и данные, работают как и работали. Проблем не обнаружил ) По остальным модулям был спокоен, так как разработчики вышли на связь и подтвердили, что от перехода с http на https лицензия сохраняется. freelancer, уже не актуально. Змінено 20 червня 2019 користувачем Zapuzin Надіслати Поділитися на інших сайтах More sharing options...
Zapuzin Опубліковано: 14 липня 2019 Share Опубліковано: 14 липня 2019 (змінено) filterpro_v2.4.4(seo) (29.02.2016, #433262) ocStore-1.5.5.1.2 Установлен Product Display Settings vqmod В целом этот модуль с фильтром подружил, осталась только одна проблемка. Вот её никак не могу самостоятельно побороть ) Если товара нет в наличии, то "Наличие" отображается правильно, на том языке, который выбран на сайте. Если товар есть в наличии, то "Наличие" отображается неправильно - "pds_instock". Вот скрины для наглядности: Наличие без фильтра: Наличие с фильтром: "catalog/controller/product/category.php" из файла "product-display-settings.xml": Спойлер <file name="catalog/controller/product/category.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> "catalog/controller/module/filterpro.php" из файла "product-display-settings.xml": Спойлер <file name="catalog/controller/module/filterpro.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> Вот языковой файл "catalog/language/russian/product/pds.php": Спойлер <?php $_['pds_model'] = 'Код товара:'; $_['pds_sku'] = 'Страна производитель:'; $_['pds_brand'] = 'Бренд:'; $_['pds_upc'] = 'UPC:'; $_['pds_location'] = 'Гарантия:'; $_['pds_stock'] = 'Наличие:'; $_['pds_instock'] = 'В наличии:'; $_['pds_weight'] = 'Вес:'; ?> " vq2-catalog_controller_module_filterpro.php" Спойлер <?php class ControllerModuleFilterPro extends Controller { protected function index($setting) { if($setting['type'] == 1) { $this->language->load('product/filter'); $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->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $sort = 'p.sort_order'; $order = 'ASC'; $limit = $this->config->get('config_catalog_limit'); $url = ''; 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/filter', '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/filter', '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/filter', '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/filter', '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/filter', '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/filter', 'sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/filter', '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/filter', '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/filter', 'sort=p.model&order=DESC' . $url) ); $url = ''; if(isset($this->request->get['sort'])) { $url .= 'sort=' . $this->request->get['sort']; } if(isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $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/filter', $url . '&limit=' . $this->config->get('config_catalog_limit')) ); $this->data['limits'][] = array( 'text' => 25, 'value' => 25, 'href' => $this->url->link('product/filter', $url . '&limit=25') ); $this->data['limits'][] = array( 'text' => 50, 'value' => 50, 'href' => $this->url->link('product/filter', $url . '&limit=50') ); $this->data['limits'][] = array( 'text' => 75, 'value' => 75, 'href' => $this->url->link('product/filter', $url . '&limit=75') ); $this->data['limits'][] = array( 'text' => 100, 'value' => 100, 'href' => $this->url->link('product/filter', $url . '&limit=100') ); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data += $this->language->load('product/category'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_container.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/filterpro_container.tpl'; } else { $this->template = 'default/template/module/filterpro_container.tpl'; } } else { $this->language->load('module/filterpro'); 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'); } $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['page'] = $page; $this->data['limit'] = $limit; $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_out_of_stock'] = $this->language->get('button_out_of_stock'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['text_price_range'] = $this->language->get('text_price_range'); $this->data['text_manufacturers'] = $this->language->get('text_manufacturers'); $this->data['text_tags'] = $this->language->get('text_tags'); $this->data['text_categories'] = $this->language->get('text_categories'); $this->data['text_attributes'] = $this->language->get('text_attributes'); $this->data['text_all'] = $this->language->get('text_all'); $this->data['clear_filter'] = $this->language->get('clear_filter'); $this->data['text_instock'] = $this->language->get('text_instock'); $this->data['text_filer_special'] = $this->language->get('text_filer_special'); $this->data['text_filer_news'] = $this->language->get('text_filer_news'); $this->data['text_show_filer_special'] = $this->language->get('text_show_filer_special'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['symbol_right'] = $this->currency->getSymbolRight(); $this->data['symbol_left'] = $this->currency->getSymbolLeft(); $this->data['setting'] = $setting; if(VERSION == '1.5.0') { $filterpro_setting = unserialize($this->config->get('filterpro_setting')); } else { $filterpro_setting = $this->config->get('filterpro_setting'); } $this->data['text_show_filer_news'] = sprintf($this->language->get('text_show_filer_news'), $filterpro_setting['news_days']); $this->data['heading_title'] = $filterpro_setting['filterpro_name']; $this->data['heading_title'] = $this->language->get('heading_title'); $is_special = isset($this->request->get['route']) && $this->request->get['route'] == "product/special"; $is_bydate = isset($this->request->get['route']) && $this->request->get['route'] == "product/productsbydate"; $category_id = false; $this->data['path'] = ""; if(isset($this->request->get['path'])) { $this->data['path'] = $this->request->get['path']; $parts = explode('_', (string)$this->request->get['path']); $category_id = array_pop($parts); } $manufacturer_id = false; if(isset($this->request->get['manufacturer_id'])) { $manufacturer_id = $this->request->get['manufacturer_id']; $data = array( 'filter_manufacturer_id' => $this->request->get['manufacturer_id'] ); } else { $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => isset($filterpro_setting['subcategories']) ); } $this->load->model('catalog/product'); $product_total = $this->model_catalog_product->getTotalProducts($data); if($product_total < 2) { return; } $this->data['category_id'] = $category_id; $data = array('category_id' => $category_id, 'manufacturer_id' => $manufacturer_id, 'special' => $is_special, 'by_date' => $is_bydate,); $this->load->model('module/filterpro'); $this->data['manufacturers'] = false; if(isset($this->request->get['manufacturer_id'])) { $this->data['manufacturer_id'] = $this->request->get['manufacturer_id']; } else { if($filterpro_setting['display_manufacturer'] != 'none') { $this->data['manufacturers'] = $this->model_module_filterpro->getManufacturers($data); $this->data['display_manufacturer'] = $filterpro_setting['display_manufacturer']; $this->data['expanded_manufacturer'] = isset($filterpro_setting['expanded_manufacturer']) ? 1 : 0; } } $this->data['options'] = $this->model_module_filterpro->getOptions($data); $this->load->model('tool/image'); foreach($this->data['options'] as $i => $option) { if(!isset($filterpro_setting['display_option_' . $option['option_id']])) { $filterpro_setting['display_option_' . $option['option_id']] = 'none'; } $display_option = $filterpro_setting['display_option_' . $option['option_id']]; if($display_option != 'none') { $this->data['options'][$i]['display'] = $display_option; $this->data['options'][$i]['expanded'] = isset($filterpro_setting['expanded_option_' . $option['option_id']]) ? 1 : 0; foreach($this->data['options'][$i]['option_values'] as $j => $option_value) { $this->data['options'][$i]['option_values'][$j]['thumb'] = $this->model_tool_image->resize($this->data['options'][$i]['option_values'][$j]['image'], (int)$filterpro_setting['option_images_w'], (int)$filterpro_setting['option_images_h']); } } else { unset($this->data['options'][$i]); } } $this->data['tags'] = array(); if(version_compare(VERSION, "1.5.4") <= 0 && $filterpro_setting['display_tags'] != 'none') { $this->data['tags'] = $this->model_module_filterpro->getTags($data); $this->data['expanded_tags'] = isset($filterpro_setting['expanded_tags']) ? 1 : 0; } $this->data['categories'] = false; if($filterpro_setting['display_categories'] != 'none') { $this->data['categories'] = $this->model_module_filterpro->getSubCategories($data); $this->data['expanded_categories'] = isset($filterpro_setting['expanded_categories']) ? 1 : 0; } $this->data['attributes'] = $this->model_module_filterpro->getAttributes($data); foreach($this->data['attributes'] as $j => $attribute_group) { foreach($attribute_group['attribute_values'] as $attribute_id => $attribute) { if(!isset($filterpro_setting['display_attribute_' . $attribute_id])) { $filterpro_setting['display_attribute_' . $attribute_id] = 'none'; } $display_attribute = $filterpro_setting['display_attribute_' . $attribute_id]; if($display_attribute != 'none') { if($display_attribute == 'slider') { $values = $this->data['attributes'][$j]['attribute_values'][$attribute_id]['values']; $first = $values[0]; $this->data['attributes'][$j]['attribute_values'][$attribute_id]['suffix'] = preg_replace("/^[0-9]*(\\.[0-9]*)?/", '', $first); $values = array_map('floatVal', $values); $values = array_unique($values); sort($values); $this->data['attributes'][$j]['attribute_values'][$attribute_id]['values'] = $values; } $this->data['attributes'][$j]['attribute_values'][$attribute_id]['display'] = $display_attribute; $this->data['attributes'][$j]['attribute_values'][$attribute_id]['expanded'] = isset($filterpro_setting['expanded_attribute_' . $attribute_id]) ? 1 : 0; } else { unset($this->data['attributes'][$j]['attribute_values'][$attribute_id]); if(!$this->data['attributes'][$j]['attribute_values']) { unset($this->data['attributes'][$j]); } } } } $this->data['filter_groups'] = array(); $this->load->model('catalog/category'); $this->data['option_main_checkbox'] = isset($filterpro_setting['option_main_checkbox']) ? 1 : 0; if(version_compare(VERSION, "1.5.5") >= 0 && $filterpro_setting['filters']==1) { $this->data['expanded_filters'] = isset($filterpro_setting['expanded_filters']) ? 1 : 0; $filter_groups = $this->model_catalog_category->getCategoryFilters($category_id); if ($filter_groups) { foreach ($filter_groups as $filter_group) { $filter_data = array(); foreach ($filter_group['filter'] as $filter) { $data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter['filter_id'] ); $filter_data[] = array( 'filter_id' => $filter['filter_id'], 'name' => $filter['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($data) . ')' : '') ); } $this->data['filter_groups'][] = array( 'filter_group_id' => $filter_group['filter_group_id'], 'name' => $filter_group['name'], 'filter' => $filter_data ); } } } $this->data['price_slider'] = $filterpro_setting['price_slider']; $this->data['attr_group'] = $filterpro_setting['attr_group']; $this->data['filer_special'] = isset($filterpro_setting['filer_special']); $this->data['filer_news'] = isset($filterpro_setting['filer_news']); $manufacturer = false; if(isset($this->request->get['manufacturer_id'])) { $manufacturer = array($this->request->get['manufacturer_id']); } $categories = false; if($category_id) { $categories = array($category_id); } $arr_data = array( 'instock' => isset($filterpro_setting['instock_checked']), 'option_value' => false, 'manufacturer' => $manufacturer, 'attribute_value' => false, 'tags' => false, 'categories' => $categories, 'attr_slider' => false, 'filter' => false, 'min_price' => 0, 'max_price' => 0, 'start' => 0, 'limit' => 1, 'sort' => false, 'order' => false ); if($this->data['filer_news']) { $product_total = $this->model_module_filterpro->getTotalProducts($arr_data + array('filer_news' => true)); $this->data['filer_news'] = $product_total > 0; // var_dump($product_total); } if($this->data['filer_special']) { $product_total = $this->model_module_filterpro->getTotalProducts($arr_data + array('special' => true, 'filer_news' => false)); $this->data['filer_special'] = $product_total > 0; // var_dump($product_total); } $this->data['instock_checked'] = isset($filterpro_setting['instock_checked']) ? 1 : 0; $this->data['instock_visible'] = isset($filterpro_setting['instock_visible']) ? 1 : 0; if($this->data['tags'] || $this->data['categories'] || $this->data['options'] || $this->data['manufacturers'] || $this->data['attributes'] || $this->data['price_slider']) { $this->document->addScript('catalog/view/javascript/jquery/jquery.tmpl.min.js'); $this->document->addScript('catalog/view/javascript/jquery/jquery.deserialize.min.js'); $this->document->addScript('catalog/view/javascript/jquery/jquery.loadmask.min.js'); $this->document->addScript('catalog/view/javascript/jquery/jquery.lazyload.min.js'); if(isset($filterpro_setting['enable_touch_screen'])) { $this->document->addScript('catalog/view/javascript/jquery/jquery.ui.touch-punch.min.js'); } $this->document->addScript('catalog/view/javascript/filterpro.min.js'); if(isset($filterpro_setting['jscrollpane'])) { $this->document->addScript('catalog/view/javascript/jquery/jscrollpane/jquery.mousewheel.js'); $this->document->addScript('catalog/view/javascript/jquery/jscrollpane/jquery.jscrollpane.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/jscrollpane/jquery.jscrollpane.css'); } if(isset($filterpro_setting['enable_endless_scroller'])) { $this->document->addScript('catalog/view/javascript/jquery/jquery.endlessScroll.js'); } if (isset($filterpro_setting['theme_mega'])){ $this->document->addStyle('catalog/view/theme/default/stylesheet/filterpro-mega.css'); $this->document->addScript('catalog/view/javascript/jquery/qtip2/mega/jquery.qtip.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/qtip2/mega/jquery.qtip.min.css'); } else{ $this->document->addStyle('catalog/view/theme/default/stylesheet/filterpro.css'); $this->document->addScript('catalog/view/javascript/jquery/qtip2/jquery.qtip.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/qtip2/jquery.qtip.min.css'); } $this->document->addStyle('catalog/view/theme/default/stylesheet/jquery.loadmask.css'); if($this->config->get('config_template') == 'shoppica2') { $this->document->addStyle('catalog/view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css'); } } $filter_hash = ""; if(isset($this->request->get['filter_id'])) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "filterpro_seo WHERE `url`='" . $this->db->escape("filter_id=" . $this->request->get['filter_id']) . "'"); if ($query->num_rows){ $filterpro_seo = unserialize($query->row['data']); $filter_hash = $filterpro_seo['url']; } } $this->data['filterpro_container'] = $filterpro_setting['filterpro_container']; $this->data['filterpro_afterload'] = html_entity_decode($filterpro_setting['filterpro_afterload'], ENT_QUOTES, 'UTF-8'); $this->data['filterOptions'] = json_encode(array( 'container' => $filterpro_setting['filterpro_container'], 'filter_redirect' => isset($this->request->get['filter_redirect'])?$this->request->get['filter_redirect']:null, 'filter_hash' => $filter_hash, 'window_hash' => !isset($filterpro_setting['hide_window_hash']), 'hide_count' => isset($filterpro_setting['hide_count']), 'hide_options' => isset($filterpro_setting['hide_options']), 'disable_mask' => isset($filterpro_setting['disable_mask']), 'endless_scroller' => isset($filterpro_setting['enable_endless_scroller']), )); if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/filterpro.tpl'; } else { $this->template = 'default/template/module/filterpro.tpl'; } } $this->render(); } public function getProducts() { if(!isset($this->request->post['min_price'])) { return; } $this->load->model('module/filterpro'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $getTotals = false; if(isset($this->request->post['getTotals']) && $this->request->post['getTotals']) { $getTotals = true; } list($filterpro_setting, $page, $limit, $manufacturer_id, $attribute_value, $option_value, $category_id, $data) = $this->model_module_filterpro->getData(); $is_special = (isset($this->request->post['route']) && $this->request->post['route'] == "product/special") || isset($this->request->post['filer_special']); $is_bydate = isset($this->request->post['route']) && $this->request->post['route'] == "product/productsbydate"; $data['special'] = $is_special; $data['by_date'] = $is_bydate; $data['filer_news'] = isset($this->request->post['filer_news']); $totals_manufacturers = array(); if ($getTotals && $filterpro_setting['display_manufacturer'] != 'none' && !isset($this->request->post['manufacturer_id'])){ $totals_manufacturers = $this->model_module_filterpro->getTotalManufacturers($data); } $totals_options = array(); $totals_attributes = array(); $totals_categories = array(); $totals_tags = array(); if($getTotals) { $totals_options = $this->model_module_filterpro->getTotalOptions($data); if(!isset($this->filterpro_setting['option_total_simple'])) { if($option_value) { foreach($option_value as $option_id => $option_value_id) { foreach($totals_options as $i => $totals_option) { if($totals_option['o'] == $option_id) { unset($totals_options[$i]); } } $temp_data = $data; unset($temp_data['option_value'][$option_id]); foreach($this->model_module_filterpro->getTotalOptions($temp_data) as $option) { if($option['o'] == $option_id) { $totals_options[] = $option; } } } } } $totals_attributes = $this->model_module_filterpro->getTotalAttributes($data); if(!isset($filterpro_setting['attr_total_simple'])) { foreach($attribute_value as $attribute_id => $values) { foreach($totals_attributes as $i => $attribute) { if($attribute['id'] == $attribute_id) { unset($totals_attributes[$i]); } } $temp_data = $data; unset($temp_data['attribute_value'][$attribute_id]); foreach($this->model_module_filterpro->getTotalAttributes($temp_data) as $attribute) { if($attribute['id'] == $attribute_id) { $totals_attributes[] = $attribute; } } } } $totals_tags = array(); if(version_compare(VERSION, "1.5.4") <= 0) { $totals_tags = $this->model_module_filterpro->getTotalTags($data); } $totals_categories = $this->model_module_filterpro->getTotalCategories($data, $category_id); } $results = $this->model_module_filterpro->getProducts($data); $min_price = false; $max_price = false; if(isset($this->request->post['getPriceLimits']) && $this->request->post['getPriceLimits']) { $priceLimits = $this->model_module_filterpro->getPriceLimits(array('category_id' => $category_id, 'manufacturer_id' => $manufacturer_id, 'special' =>$is_special, 'by_date' =>$is_bydate)); $min_price = $priceLimits['min_price']; $max_price = $priceLimits['max_price']; } $this->request->get['path'] = isset($this->request->post['path']) ? $this->request->post['path'] : ''; $product_total = $this->model_module_filterpro->getTotalProducts($data); $result_html = $this->getHtmlProducts($results, $product_total); $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); if (isset($this->request->post['manufacturer_id'])) { $pagination->url = $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->post['manufacturer_id'] . '&page={page}'); } else { $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&page={page}'); } $pagination = $pagination->render(); $k = 1; if((float)$filterpro_setting['tax'] > 0) { $k = 1 + (float)$filterpro_setting['tax'] / 100; } $min_price = $this->currency->convert($min_price * $k, $this->config->get('config_currency'), $this->currency->getCode()); $max_price = $this->currency->convert($max_price * $k, $this->config->get('config_currency'), $this->currency->getCode()); $json = json_encode(array('result_html' => $result_html, 'min_price' => $min_price, 'max_price' => $max_price, 'pagination' => $pagination, 'totals_data' => $getTotals ? array( 'product_total' => $product_total, 'manufacturers' => $totals_manufacturers, 'options' => $totals_options, 'attributes' => $totals_attributes, 'categories' => $totals_categories, 'tags' => $totals_tags) : false)); $this->response->setOutput($json); } private function getHtmlProducts($results, $product_total) { $this->data += $this->language->load('product/category'); $this->data['use_lazyload'] = isset($filterpro_setting['use_lazyload']) ? 1 : 0; $this->data['products'] = array(); $this->load->model('catalog/product_status'); $this->load->model('catalog/promotion'); foreach ($results as $result) { $promotions = $this->model_catalog_promotion->getHTMLProductPromotions($result['product_id']); if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } // module attribute to text $options = $this->config->get('attribute_to_text_options'); if (isset($options['show_catalog_attributes'])) { $this->load->model('catalog/attributes_to_text'); $description = $this->model_catalog_attributes_to_text->getText($result['product_id'], $options); if (empty($description) || $description == '<span class="attributes-text"></span>') { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } $this->data['products'][] = array( 'promotion' => $result['promotions']['category'], 'statuses' => $result['statuses']['category'], 'stickers' => $result['statuses']['category_stickers'], 'product_id' => $result['product_id'], 'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'thumb' => $image, 'name' => $result['name'], //produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']) ); } if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_list.tpl') && file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_grid.tpl') ) { $this->template = $this->config->get('config_template') . '/template/module/filterpro_list.tpl'; $return['list'] = $this->render(); $this->template = $this->config->get('config_template') . '/template/module/filterpro_grid.tpl'; $return['grid'] = $this->render(); return $return; } elseif(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/filterpro_products.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/filterpro_products.tpl'; } else { $this->template = 'default/template/module/filterpro_products.tpl'; } return $this->render(); } } ?> Может кто знает, как справиться с проблемой? Буду благодарен любой помощи. Змінено 14 липня 2019 користувачем Zapuzin Добавление файла Надіслати Поділитися на інших сайтах More sharing options...
Zapuzin Опубліковано: 14 липня 2019 Share Опубліковано: 14 липня 2019 Забыл написать, что ошибок в логах нет, как системных, так и vqmod. Надіслати Поділитися на інших сайтах More sharing options...
Zapuzin Опубліковано: 15 липня 2019 Share Опубліковано: 15 липня 2019 Странно. Появились ошибки, хотя на сайте модуль Product Display Settings отображает всё, что нужно правильно, только фильтр про не хочет значение "Наличие" товаров, которые есть в наличии, переводить ) Ошибки появились через некоторое время. Во время экспериментов с проблемным модулем кеш чистился весь, и они не появлялись ) Спойлер 2019-07-15 0:59:07 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_manufacturer.php on line 386 2019-07-15 0:59:07 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_manufacturer.php on line 387 2019-07-15 10:57:34 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 404 2019-07-15 10:57:34 - PHP Notice: Undefined variable: result in /home/teploplc/public_html/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 405 Весь "product-display-settings.xml" Спойлер <!-- Created using vQmod XML Generator by UKSB - http://www.opencart-extensions.co.uk //--> <modification> <id><![CDATA[Product Display Settings]]></id> <version><![CDATA[1.2]]></version> <vqmver><![CDATA[2.1.5]]></vqmver> <author><![CDATA[Flo from shopencart.com, edited by drbogger]]></author> <file name="admin/controller/setting/setting.php"> <operation> <search position="before" error="log"><![CDATA[if (isset($this->request->post['config_logo'])) {]]></search> <add><![CDATA[ //product display settings if (isset($this->request->post['config_display_sku'])) { $this->data['config_display_sku'] = $this->request->post['config_display_sku']; } else { $this->data['config_display_sku'] = $this->config->get('config_display_sku'); } if (isset($this->request->post['config_display_pweight'])) { $this->data['config_display_pweight'] = $this->request->post['config_display_pweight']; } else { $this->data['config_display_pweight'] = $this->config->get('config_display_pweight'); } if (isset($this->request->post['config_display_skup'])) { $this->data['config_display_skup'] = $this->request->post['config_display_skup']; } else { $this->data['config_display_skup'] = $this->config->get('config_display_skup'); } if (isset($this->request->post['config_display_model'])) { $this->data['config_display_model'] = $this->request->post['config_display_model']; } else { $this->data['config_display_model'] = $this->config->get('config_display_model'); } if (isset($this->request->post['config_display_modelp'])) { $this->data['config_display_modelp'] = $this->request->post['config_display_modelp']; } else { $this->data['config_display_modelp'] = $this->config->get('config_display_modelp'); } if (isset($this->request->post['config_display_brand'])) { $this->data['config_display_brand'] = $this->request->post['config_display_brand']; } else { $this->data['config_display_brand'] = $this->config->get('config_display_brand'); } if (isset($this->request->post['config_display_brandp'])) { $this->data['config_display_brandp'] = $this->request->post['config_display_brandp']; } else { $this->data['config_display_brandp'] = $this->config->get('config_display_brandp'); } if (isset($this->request->post['config_display_rewardsp'])) { $this->data['config_display_rewardsp'] = $this->request->post['config_display_rewardsp']; } else { $this->data['config_display_rewardsp'] = $this->config->get('config_display_rewardsp'); } if (isset($this->request->post['config_display_location'])) { $this->data['config_display_location'] = $this->request->post['config_display_location']; } else { $this->data['config_display_location'] = $this->config->get('config_display_location'); } if (isset($this->request->post['config_display_locationp'])) { $this->data['config_display_locationp'] = $this->request->post['config_display_locationp']; } else { $this->data['config_display_locationp'] = $this->config->get('config_display_locationp'); } if (isset($this->request->post['config_display_listock'])) { $this->data['config_display_listock'] = $this->request->post['config_display_listock']; } else { $this->data['config_display_listock'] = $this->config->get('config_display_listock'); } if (isset($this->request->post['config_display_upc'])) { $this->data['config_display_upc'] = $this->request->post['config_display_upc']; } else { $this->data['config_display_upc'] = $this->config->get('config_display_upc'); } if (isset($this->request->post['config_display_upcp'])) { $this->data['config_display_upcp'] = $this->request->post['config_display_upcp']; } else { $this->data['config_display_upcp'] = $this->config->get('config_display_upcp'); } //end of product display options]]></add> </operation> </file> <file name="admin/view/template/setting/setting.tpl"> <operation> <search position="after"><![CDATA[<div id="tab-option">]]></search> <add><![CDATA[<table class="form"> <tr> <td>Бонусные баллы на странице товара?</td> <td><?php if ($config_display_rewardsp) { ?> <input type="radio" name="config_display_rewardsp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_rewardsp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_rewardsp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_rewardsp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Вес на странице товара?</td> <td><?php if ($config_display_pweight) { ?> <input type="radio" name="config_display_pweight" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_pweight" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_pweight" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_pweight" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>SKU на странице товара?</td> <td><?php if ($config_display_sku) { ?> <input type="radio" name="config_display_sku" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_sku" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_sku" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_sku" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>SKU на странице категории?</td> <td><?php if ($config_display_skup) { ?> <input type="radio" name="config_display_skup" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_skup" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_skup" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_skup" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Код товара на странице категории?</td> <td><?php if ($config_display_model) { ?> <input type="radio" name="config_display_model" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_model" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_model" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_model" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Код товара на странице товара?</td> <td><?php if ($config_display_modelp) { ?> <input type="radio" name="config_display_modelp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_modelp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_modelp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_modelp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Бренд на странице категории?</td> <td><?php if ($config_display_brand) { ?> <input type="radio" name="config_display_brand" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brand" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_brand" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brand" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Бренд на странице товара?</td> <td><?php if ($config_display_brandp) { ?> <input type="radio" name="config_display_brandp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brandp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_brandp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_brandp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Гарантия на странице категории?</td> <td><?php if ($config_display_location) { ?> <input type="radio" name="config_display_location" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_location" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_location" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_location" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr><tr> <td>Гарантия на странице товара?</td> <td><?php if ($config_display_locationp) { ?> <input type="radio" name="config_display_locationp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_locationp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_locationp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_locationp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>UPC на странице категории?</td> <td><?php if ($config_display_upc) { ?> <input type="radio" name="config_display_upc" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upc" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_upc" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upc" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr><tr> <td>UPC на странице товара?</td> <td><?php if ($config_display_upcp) { ?> <input type="radio" name="config_display_upcp" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upcp" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_upcp" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_upcp" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr> <tr> <td>Наличие товара на странице категории?</td> <td><?php if ($config_display_listock) { ?> <input type="radio" name="config_display_listock" value="1" checked="checked" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_listock" value="0" /> <?php echo $text_no; ?> <?php } else { ?> <input type="radio" name="config_display_listock" value="1" /> <?php echo $text_yes; ?> <input type="radio" name="config_display_listock" value="0" checked="checked" /> <?php echo $text_no; ?> <?php } ?></td> </tr></table>]]></add> </operation> </file> <file name="catalog/controller/product/product.php"> <operation> <search position="after"><![CDATA[$this->data['points'] = $product_info['points'];]]></search> <add><![CDATA[//product display options $this->language->load('product/pds'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_weight'] = $this->language->get('pds_weight'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['sku'] = $product_info['sku']; $this->data['upc'] = $product_info['upc']; $this->data['location'] = $product_info['location']; if ($product_info['weight']) { $this->data['weight'] = $this->weight->format($product_info['weight'], $product_info['weight_class_id'], $this->language->get('decimal_point'), $this->language->get('thousand_point')); } else { $this->data['weight'] = ''; } ]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/product.tpl"> <operation> <search position="after"><![CDATA[<span><?php echo $text_model; ?></span> <?php echo $model; ?><br />]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_skup') && $sku) { ?> <span><?php echo $pds_sku; ?> </span> <?php echo $sku; ?><br /> <?php } ?> <?php if ($this->config->get('config_display_upcp') && $upc) { ?> <span><?php echo $pds_upc; ?> </span> <?php echo $upc; ?><br /> <?php } ?> <?php if ($this->config->get('config_display_locationp') && $location) { ?> <span><?php echo $pds_location; ?> </span> <?php echo $location; ?><br /> <?php } ?> <?php if ($this->config->get('config_display_pweight') && $weight) { ?> <span><?php echo $pds_weight; ?> </span> <?php echo $weight; ?><br /> <?php } ?> ]]></add> </operation> <operation> <search position="replace"><![CDATA[<?php if ($manufacturer) { ?>]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_brandp') && $manufacturer) { ?>]]></add> </operation> <operation> <search position="replace"><![CDATA[<?php if ($reward) { ?>]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_rewardsp') && $reward) { ?>]]></add> </operation> <operation> <search position="replace"><![CDATA[<span><?php echo $text_model; ?></span> <?php echo $model; ?><br />]]></search> <add><![CDATA[<?php if ($this->config->get('config_display_modelp')) { ?> <span><?php echo $pds_model; ?></span> <?php echo $model; ?><br /> <?php } ?>]]></add> </operation> </file> <file name="catalog/controller/product/category.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/controller/product/search.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/controller/product/manufacturer.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/controller/product/special.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/search.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/category.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/special.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/manufacturer_info.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> <operation> <search position="before"><![CDATA[html += ' <div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444; position: absolute; transform: translate(-165px, 195px); -webkit-transform: translate(-165px, 195px); -o-transform: translate(-165px, 195px); -moz-transform: translate(-165px, 195px); font-size: 14px;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> <operation> <search position="after"><![CDATA[html += '<div class="name">' + $(element).find('.name').html() + '</div>';]]></search> <add><![CDATA[html += '<div class="extra" style="display: inline-block; color: #444;">' + $(element).find('.extra').html() + '</div>';]]></add> </operation> </file> <file name="catalog/controller/module/latest.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/latest');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/latest.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/bestseller.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/bestseller');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/bestseller.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/special.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/special');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/special.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/featured.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_info['quantity'] <= 0) { $rstock = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $product_info['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$product_info['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $product_info['sku'], 'model' => $product_info['model'], 'brand' => $product_info['manufacturer'], 'location' => $product_info['location'], 'upc' => $product_info['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $product_info['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/featured');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/featured.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/viewed.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_info['quantity'] <= 0) { $rstock = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = "Stock: " . $product_info['quantity']; } else { $rstock = $this->language->get('pds_instock'); }]]></add> </operation> <operation> <search position="after"><![CDATA[$product_info['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $product_info['sku'], 'model' => $product_info['model'], 'brand' => $product_info['manufacturer'], 'location' => $product_info['location'], 'upc' => $product_info['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $product_info['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->language->load('module/viewed');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/viewed.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> <file name="catalog/controller/module/filterpro.php"> <operation> <search position="before"><![CDATA[if ($this->config->get('config_review_status')) {]]></search> <add><![CDATA[if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }}]]></add> </operation> <operation> <search position="after"><![CDATA['name' => $result['name'],]]></search> <add><![CDATA[//produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['text_grid'] = $this->language->get('text_grid');]]></search> <add><![CDATA[$this->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock');]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/filterpro_products.tpl"> <operation> <search position="after"><![CDATA[<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>]]></search> <add><![CDATA[<div class="extra" style="display: inline-block; color: #444;"> <?php if ($this->config->get('config_display_sku') && $product['sku']) { ?> <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> <?php echo $product['sku']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_model') && $product['model']) { ?> <span style="color:#38b0e3"><?php echo $pds_model; ?></span> <?php echo $product['model']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_brand') && $product['brand']) { ?> <span style="color:#38b0e3"><?php echo $pds_brand; ?></span> <a href="<?php echo $product['brand_url']; ?>"><?php echo $product['brand']; ?></a> <br /> <?php } ?> <?php if ($this->config->get('config_display_location') && $product['location']) { ?> <span style="color:#38b0e3"><?php echo $pds_location; ?></span> <?php echo $product['location']; ?> <br /> <?php } ?> <?php if ($product['upc'] && $this->config->get('config_display_upc')) { ?> <span style="color:#38b0e3"><?php echo $pds_upc; ?></span> <?php echo $product['upc']; ?> <br /> <?php } ?> <?php if ($this->config->get('config_display_listock') && $product['stock']) { ?> <span style="color:#38b0e3"><?php echo $pds_stock; ?></span> <?php echo $product['stock']; ?> <br /> <?php } ?> </div>]]></add> </operation> </file> </modification> vq2-catalog_controller_product_manufacturer.php Спойлер <?php class ControllerProductManufacturer extends Controller { public function index() { $this->language->load('product/manufacturer'); $this->load->model('catalog/manufacturer'); $this->load->model('tool/image'); $this->document->setTitle($this->language->get('heading_title')); $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_index'] = $this->language->get('text_index'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_brand'), 'href' => $this->url->link('product/manufacturer'), 'separator' => $this->language->get('text_separator') ); $this->data['categories'] = array(); $results = $this->model_catalog_manufacturer->getManufacturers(); foreach ($results as $result) { if (is_numeric(utf8_substr($result['name'], 0, 1))) { $key = '0 - 9'; } else { $key = utf8_substr(utf8_strtoupper($result['name']), 0, 1); } if (!isset($this->data['manufacturers'][$key])) { $this->data['categories'][$key]['name'] = $key; } $this->data['categories'][$key]['manufacturer'][] = array( 'name' => $result['name'], // ManufacturerLogo 'logo' => $this->model_tool_image->resize($result['image'], 100, 100), // ManufacturerLogo end 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id']) ); } $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/manufacturer_list.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/manufacturer_list.tpl'; } else { $this->template = 'default/template/product/manufacturer_list.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()); } public function info() { $this->language->load('product/manufacturer'); $this->load->model('catalog/manufacturer'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['manufacturer_id'])) { $manufacturer_id = (int)$this->request->get['manufacturer_id']; } else { $manufacturer_id = 0; } $filterpro_seo = false; $url_data = false; if(isset($this->request->get['filter_id'])) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "filterpro_seo WHERE `url`='" . $this->db->escape("filter_id=" . $this->request->get['filter_id']) . "'"); if($query->num_rows) { $filterpro_data = unserialize($query->row['data']); $filterpro_seo = $filterpro_data['lang'][(int)$this->config->get('config_language_id')]; parse_str(str_replace("&", "&", $filterpro_data['url']), $url_data); $url_data['filer_news'] = false; if (!isset($url_data['manufacturer_id']) || $url_data['manufacturer_id'] != $manufacturer_id) { $this->redirect($this->url->link('error/not_found')); } } } 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'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_brand'), 'href' => $this->url->link('product/manufacturer'), 'separator' => $this->language->get('text_separator') ); $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id); if ($manufacturer_info) { if ($manufacturer_info['seo_title']) { $this->document->setTitle($manufacturer_info['seo_title']); } else { $this->document->setTitle($manufacturer_info['name']); } $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->document->setDescription($manufacturer_info['meta_description']); $this->document->setKeywords($manufacturer_info['meta_keyword']); $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $manufacturer_info['name'], 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url), 'separator' => $this->language->get('text_separator') ); if ($manufacturer_info['seo_h1']) { $this->data['heading_title'] = $manufacturer_info['seo_h1']; } else { $this->data['heading_title'] = $manufacturer_info['name']; if($filterpro_seo) { $this->data['description'] = html_entity_decode($filterpro_seo['description'], ENT_QUOTES, 'UTF-8'); $this->data['heading_title'] = $filterpro_seo['h1']; $this->document->setTitle($filterpro_seo['title']); $this->document->setDescription($filterpro_seo['meta_description']); $this->document->setKeywords($filterpro_seo['meta_keywords']); } } $this->data['description'] = html_entity_decode($manufacturer_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['text_empty'] = $this->language->get('text_empty'); $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->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_out_of_stock'] = $this->language->get('button_out_of_stock'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['compare'] = $this->url->link('product/compare'); $this->data['products'] = array(); $data = array( 'filter_manufacturer_id' => $manufacturer_id, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); if($url_data) { $get = $this->request->get; unset($get['route']); unset($get['filter_id']); $this->request->get['filter_redirect'] = $this->url->link('product/category', http_build_query($get)); $this->request->post = $url_data; $this->load->model('module/filterpro'); list($f1, $f2, $f3, $f4, $f5, $f5, $f6, $url_data) = $this->model_module_filterpro->getData(); $url_data['filer_news'] = false; $product_total = $this->model_module_filterpro->getTotalProducts($url_data); $results = $this->model_module_filterpro->getProducts($url_data); } else { $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); } //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getTotalProducts($data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = 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 ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } // module attribute to text $options = $this->config->get('attribute_to_text_options'); if (isset($options['show_catalog_attributes'])) { $this->load->model('catalog/attributes_to_text'); $description = $this->model_catalog_attributes_to_text->getText($result['product_id'], $options); if (empty($description) || $description == '<span class="attributes-text"></span>') { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } $this->data['products'][] = array( 'promotion' => $result['promotions']['category'], 'statuses' => $result['statuses']['category'], 'stickers' => $result['statuses']['category_stickers'], 'product_id' => $result['product_id'], 'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'thumb' => $image, 'name' => $result['name'], //produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', '&manufacturer_id=' . $result['manufacturer_id'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; 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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.price&order=DESC' . $url) ); if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} 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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&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/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value){ $this->data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $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/manufacturer/info','manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/manufacturer_info.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/manufacturer_info.tpl'; } else { $this->template = 'default/template/product/manufacturer_info.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()); } else { $url = ''; if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } 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('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.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()); } } } ?> vq2-catalog_controller_product_category.php Спойлер <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $filterpro_seo = false; $url_data = false; if(isset($this->request->get['filter_id'])) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "filterpro_seo WHERE `url`='" . $this->db->escape("filter_id=" . $this->request->get['filter_id']) . "'"); if($query->num_rows) { $filterpro_data = unserialize($query->row['data']); $filterpro_seo = $filterpro_data['lang'][(int)$this->config->get('config_language_id')]; parse_str(str_replace("&", "&", $filterpro_data['url']), $url_data); $url_data['filer_news'] = false; if(!isset($url_data['category_id']) || $url_data['category_id'] != $category_id) { $this->redirect($this->url->link('error/not_found')); } } } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['seo_title']) { $this->document->setTitle($category_info['seo_title']); } else { $this->document->setTitle($category_info['name']); } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); if ($category_info['seo_h1']) { $this->data['heading_title'] = $category_info['seo_h1']; } else { $this->data['heading_title'] = $category_info['name']; } $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $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->language->load('product/pds'); $this->data['pds_sku'] = $this->language->get('pds_sku'); $this->data['pds_upc'] = $this->language->get('pds_upc'); $this->data['pds_location'] = $this->language->get('pds_location'); $this->data['pds_model'] = $this->language->get('pds_model'); $this->data['pds_brand'] = $this->language->get('pds_brand'); $this->data['pds_stock'] = $this->language->get('pds_stock'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_out_of_stock'] = $this->language->get('button_out_of_stock'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); $this->document->setOgImage($this->data['thumb']); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); if($filterpro_seo) { $this->data['description'] = html_entity_decode($filterpro_seo['description'], ENT_QUOTES, 'UTF-8'); $this->data['heading_title'] = $filterpro_seo['h1']; $this->document->setTitle($filterpro_seo['title']); $this->document->setDescription($filterpro_seo['meta_description']); $this->document->setKeywords($filterpro_seo['meta_keywords']); } $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); if($url_data) { $get = $this->request->get; unset($get['route']); unset($get['filter_id']); $this->request->get['filter_redirect'] = $this->url->link('product/category', http_build_query($get)); $this->request->post = $url_data; $this->load->model('module/filterpro'); list($f1, $f2, $f3, $f4, $f5, $f5, $f6, $url_data) = $this->model_module_filterpro->getData(); $url_data['filer_news'] = false; $product_total = $this->model_module_filterpro->getTotalProducts($url_data); $results = $this->model_module_filterpro->getProducts($url_data); } else { $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); } //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getTotalProducts($data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } // module attribute to text $options = $this->config->get('attribute_to_text_options'); if (isset($options['show_catalog_attributes'])) { $this->load->model('catalog/attributes_to_text'); $description = $this->model_catalog_attributes_to_text->getText($result['product_id'], $options); if (empty($description) || $description == '<span class="attributes-text"></span>') { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..'; } $this->data['products'][] = array( 'promotion' => $result['promotions']['category'], 'statuses' => $result['statuses']['category'], 'stickers' => $result['statuses']['category_stickers'], 'product_id' => $result['product_id'], 'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'thumb' => $image, 'name' => $result['name'], //produc display settings 'sku' => $result['sku'], 'model' => $result['model'], 'brand' => $result['manufacturer'], 'location' => $result['location'], 'upc' => $result['upc'], 'stock' => $rstock, 'brand_url' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $result['manufacturer_id']), //end pds 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $result['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($product_total != 0) { if ($result['quantity'] <= 0) { $rstock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $rstock = $result['quantity']; } else { $rstock = $this->language->get('pds_instock'); }} 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/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value){ $this->data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category.tpl'; } else { $this->template = 'default/template/product/category.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()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.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()); } } } ?> Что заметил. Системные ошибки, связанные с "Product Display Settings", периодически начали появляться после того, как добавился файл "product_statuses.xml" нового модуля "Статусы Товара PRO Speed, автостатусы, стикеры, текстовые статусы". Видно им тесно вдвоём ) Надіслати Поділитися на інших сайтах More sharing options...
Zapuzin Опубліковано: 15 липня 2019 Share Опубліковано: 15 липня 2019 Проблема решена. Оказалось всё очень просто. В языковой файл фильтра добавил то, что было уже прописано в языковом файле pds.php ) С системными ошибками, связанными с "Product Display Settings" вроде тоже справляюсь. Ради эксперимента убрал код дубль (нижний), на который ругалась система (изменил в xml файле, чтобы вставлялся один раз). Функционал на сайте в пределах модуля не изменился. Ошибок пока нет. Похоже, что повторение этого кода ниже не имеет значения. filterpro отключил. Мониторю ) Надіслати Поділитися на інших сайтах More sharing options...
mexx Опубліковано: 23 липня 2019 Share Опубліковано: 23 липня 2019 Очень сильно тормозит модуль на версии 1.5 - на данный момент около 11000 товаров в магазине и модуль думает от 40 сек до 2х минут - клиенты не дожидаются, уходят. Что делать и как можно ускорить работу? Надіслати Поділитися на інших сайтах More sharing options...
slawik0707 Опубліковано: 13 серпня 2019 Share Опубліковано: 13 серпня 2019 Всем добрый день! Есть кто поможет установить и настроить фильтр на сайт? Версия 1.5.6.3. Напишите в личку пожалуйста! Надіслати Поділитися на інших сайтах More sharing options...
Serg9988 Опубліковано: 3 вересня 2019 Share Опубліковано: 3 вересня 2019 Доброе время суток. Есть сайт версия 1.5 движка Стоит фильт все работает норм. Фильтр фильтрует по категориям. При выборе категории меняетсяна странице H1 в соответствии с выбранной каетгорией в фильтре. Возникла надобность еще в одном месте на странице проставить название выбранной категории в фильтре. Не могу найти место где происходит подмена. Если в новом месте указываю h1 то в нем меняет , но два h1 на странице это плохо. Как понимаю замену делает какой-то скрипт, только вот не могу найти где он. Буду благодарен за помощ. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... Reistli Опубліковано: 17 вересня 2019 Share Опубліковано: 17 вересня 2019 Добрый день! Покупали у Вас фильтры для сайтов, сейчас перевели 1 сайт на https, а второй переименовали (убрали лишнюю точку): FilterPro v2.4.2.3.2 (mega) - betar-spb.ru (перевели на https) FilterPro v2.5.17.6_beta (speed) - shop.tvt.kz (переименовали в shoptvt.kz) Теперь ваши фильтры не работают, понятно почему. Собственно вопрос, можете ли Вы нам с этим как-нибудь помочь, кроме как покупки заново фильтров ? Может есть возможность хотя бы перевести с сайта без ssl на сайт c ssl? Сам домен не изменился, только вот https установили. Спасибо большое заранее! Надіслати Поділитися на інших сайтах More sharing options... KDS898 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 Здравствуйте, перестал работать Filterpro. Удалили вирус который елл сайт, но который не трогал фильтр. Теперь фильтр не работает. Может он слетел или обновить нужно??? Надіслати Поділитися на інших сайтах More sharing options... Vitaly84 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 Здравствуйте! 16.09.2019 я приобрел Ваш модуль Filter Pro для ocStore 1.5.5.1.1, URL сайта https://dreamapp.ru Интересует еще такой вопрос, можно ли будет аннулировать сделку с возвратом денежных средств за покупку модуля, если модуль не сможет корректно работать на моём сайте? Причиной данного вопроса являются множественные переделки сайта, как самой темы, так и административной части. P.S. Личное сообщение по поводу лицензии отправил Вам 17.09.2019, но до сих пор Вы его не прочли, поэтому пишу в эту ветку форума. Спасибо. Надіслати Поділитися на інших сайтах More sharing options... KDS898 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 4 часа назад, KDS898 сказал: Здравствуйте, перестал работать Filterpro. Удалили вирус который елл сайт, но который не трогал фильтр. Теперь фильтр не работает. Может он слетел или обновить нужно??? Ошибка при нажатии редактирования: Fatal error: Uncaught exception 'Exception' with message 'Error: Table 'doorclose_vlad.oc_filterpro_seo' doesn't exist<br />Error No: 1146<br />SELECT COUNT(*) AS total FROM `oc_filterpro_seo`' in /home/d/doorclose/complexds.ru/public_html/system/library/db/mysqli.php:45 Stack trace: #0 /home/d/doorclose/complexds.ru/public_html/system/library/db.php(21): DB\MySQLi->query('SELECT COUNT(*)...', Array) #1 /home/d/doorclose/complexds.ru/public_html/admin/model/module/seofilterpro.php(72): DB->query('SELECT COUNT(*)...') #2 [internal function]: ModelModuleSeofilterpro->getTotalSeoData() #3 /home/d/doorclose/complexds.ru/public_html/system/storage/modification/system/engine/loader.php(189): call_user_func_array(Array, Array) #4 [internal function]: Loader->{closure}(Array, Array) #5 /home/d/doorclose/complexds.ru/public_html/system/engine/proxy.php(30): call_user_func_array(Object(Closure), Array) #6 /home/d/doorclose/complexds.ru/public_html/admin/controller/module/seofilterpro.php(35): Proxy->__call('getTotalSeoData', Array) in /home/d/doorclose/complexds.ru/public_html/system/library/db/mysqli.php on line 45 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... Vitaly84 Опубліковано: 30 вересня 2019 Share Опубліковано: 30 вересня 2019 Здравствуйте! В магазине 581 товар, 19 групп атрибутов, 334 атрибута и 25 опций. При добавлении фильтра на страницу Категория товаров (в настройка фильтра включена фильтрация по 3 атрибутам и по стоимости товаров, остальные позиции в статусе "Не отображать"), страница зависает и ничего невозможно сделать, после отключения модуля сайт начинает работать корректно. Пожалуйста, подскажите, в чем может быть причина и есть ли решение, как можно восстановить нормальную работу сайта при включенном фильтре? Надіслати Поділитися на інших сайтах More sharing options... mirek Опубліковано: 7 жовтня 2019 Share Опубліковано: 7 жовтня 2019 Здравствуйте Какая то путаница с номерами версий фильтра На этой странице написано, что продается версия 1.5.17.6_beta Я хочу купить версию у которой есть вкладка SEO По скринам этого не видно И тут упоминается о версии filterpro_v2.4.4(seo) Так какую версию мне покупать ? IonCube у меня установлен Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... krashman Опубліковано: 19 жовтня 2019 Share Опубліковано: 19 жовтня 2019 Прошёл почти месяц с сообщения в ЛС @freelancer Ответа нет. Даже не прочитано. Надіслати Поділитися на інших сайтах More sharing options... mirek Опубліковано: 21 жовтня 2019 Share Опубліковано: 21 жовтня 2019 Здравствуйте Спасибо Активировали Теперь вопрос на счет SEO урлов Хотелось бы, что-бы при выборе в фильтре и совпадении выбора с урлом указанным во вкладке SEO в адресной строке выводился SEO урл, а не это #category_id=75&page=1&path=59_75&sort=p.sort_order&order=ASC&limit То есть не понятно Это реализовано вообще ? Может просто у нас не работает ? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... freelancer Опубліковано: 5 листопада 2019 Автор Share Опубліковано: 5 листопада 2019 небольшое обновление фильтр не требует ioncube, работает без лицензии. цена упала на 200р Надіслати Поділитися на інших сайтах More sharing options... Sunjahman Опубліковано: 13 листопада 2019 Share Опубліковано: 13 листопада 2019 (змінено) Добрый день, @freelancer ! Можно ли как-то заставить фильтр, при заходе на определенную категорию, выставлять определенные атрибуты в чекбоксах? Пример: есть 2 категории "смартфоны" и "телефоны" у всех товаров в категории "смартфоны" присутствует атрибут "сенсорный экран" у всех товаров в категории "телефоны" присутствует атрибут "калькулятор" Вот можно ли чтобы данные атрибуты сразу выставлялись. По аналогии в принципе и производители. в категории "sony" выставлялся производитель "сони" Подобную опцию увидел на одном сайте, к вашему фильтру он отношения не имеет, но функционал весьма удобен. Змінено 13 листопада 2019 користувачем Sunjahman Надіслати Поділитися на інших сайтах More sharing options... Назад 271 272 273 274 275 276 277 278 279 Вперед Сторінка 276 з 279 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 23 Перейти до списку тем Схожі публікації ajax filter [Поддержка] Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 21 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 5 відповідей 1 482 перегляди sevansht 17 вересня ajax filter Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 20 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 0 коментарів 5 384 перегляди kirians 21 жовтня 2021 batch [Поддержка] Универсальный массовый редактор товаров. MULTIEDIT AI 1 2 3 4 11 Автор: Sha, 16 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 253 відповіді 57 946 переглядів Sha В неділю в 21:25 batch Універсальний масовий редактор товарів. MultiEdit AI Автор: Sha, 15 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 0 коментарів 57 317 переглядів Sha 15 березня 2017 [Поддержка] Автор: Wadamir, 12 лютого 2021 админка фильтр (і ще %d) Теги: админка фильтр категории производитель 0 відповідей 745 переглядів Wadamir 23 лютого 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Фильтры filter Pro [Поддержка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
Reistli Опубліковано: 17 вересня 2019 Share Опубліковано: 17 вересня 2019 Добрый день! Покупали у Вас фильтры для сайтов, сейчас перевели 1 сайт на https, а второй переименовали (убрали лишнюю точку): FilterPro v2.4.2.3.2 (mega) - betar-spb.ru (перевели на https) FilterPro v2.5.17.6_beta (speed) - shop.tvt.kz (переименовали в shoptvt.kz) Теперь ваши фильтры не работают, понятно почему. Собственно вопрос, можете ли Вы нам с этим как-нибудь помочь, кроме как покупки заново фильтров ? Может есть возможность хотя бы перевести с сайта без ssl на сайт c ssl? Сам домен не изменился, только вот https установили. Спасибо большое заранее! Надіслати Поділитися на інших сайтах More sharing options...
KDS898 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 Здравствуйте, перестал работать Filterpro. Удалили вирус который елл сайт, но который не трогал фильтр. Теперь фильтр не работает. Может он слетел или обновить нужно??? Надіслати Поділитися на інших сайтах More sharing options...
Vitaly84 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 Здравствуйте! 16.09.2019 я приобрел Ваш модуль Filter Pro для ocStore 1.5.5.1.1, URL сайта https://dreamapp.ru Интересует еще такой вопрос, можно ли будет аннулировать сделку с возвратом денежных средств за покупку модуля, если модуль не сможет корректно работать на моём сайте? Причиной данного вопроса являются множественные переделки сайта, как самой темы, так и административной части. P.S. Личное сообщение по поводу лицензии отправил Вам 17.09.2019, но до сих пор Вы его не прочли, поэтому пишу в эту ветку форума. Спасибо. Надіслати Поділитися на інших сайтах More sharing options...
KDS898 Опубліковано: 19 вересня 2019 Share Опубліковано: 19 вересня 2019 4 часа назад, KDS898 сказал: Здравствуйте, перестал работать Filterpro. Удалили вирус который елл сайт, но который не трогал фильтр. Теперь фильтр не работает. Может он слетел или обновить нужно??? Ошибка при нажатии редактирования: Fatal error: Uncaught exception 'Exception' with message 'Error: Table 'doorclose_vlad.oc_filterpro_seo' doesn't exist<br />Error No: 1146<br />SELECT COUNT(*) AS total FROM `oc_filterpro_seo`' in /home/d/doorclose/complexds.ru/public_html/system/library/db/mysqli.php:45 Stack trace: #0 /home/d/doorclose/complexds.ru/public_html/system/library/db.php(21): DB\MySQLi->query('SELECT COUNT(*)...', Array) #1 /home/d/doorclose/complexds.ru/public_html/admin/model/module/seofilterpro.php(72): DB->query('SELECT COUNT(*)...') #2 [internal function]: ModelModuleSeofilterpro->getTotalSeoData() #3 /home/d/doorclose/complexds.ru/public_html/system/storage/modification/system/engine/loader.php(189): call_user_func_array(Array, Array) #4 [internal function]: Loader->{closure}(Array, Array) #5 /home/d/doorclose/complexds.ru/public_html/system/engine/proxy.php(30): call_user_func_array(Object(Closure), Array) #6 /home/d/doorclose/complexds.ru/public_html/admin/controller/module/seofilterpro.php(35): Proxy->__call('getTotalSeoData', Array) in /home/d/doorclose/complexds.ru/public_html/system/library/db/mysqli.php on line 45 Надіслати Поділитися на інших сайтах More sharing options...
Vitaly84 Опубліковано: 30 вересня 2019 Share Опубліковано: 30 вересня 2019 Здравствуйте! В магазине 581 товар, 19 групп атрибутов, 334 атрибута и 25 опций. При добавлении фильтра на страницу Категория товаров (в настройка фильтра включена фильтрация по 3 атрибутам и по стоимости товаров, остальные позиции в статусе "Не отображать"), страница зависает и ничего невозможно сделать, после отключения модуля сайт начинает работать корректно. Пожалуйста, подскажите, в чем может быть причина и есть ли решение, как можно восстановить нормальную работу сайта при включенном фильтре? Надіслати Поділитися на інших сайтах More sharing options...
mirek Опубліковано: 7 жовтня 2019 Share Опубліковано: 7 жовтня 2019 Здравствуйте Какая то путаница с номерами версий фильтра На этой странице написано, что продается версия 1.5.17.6_beta Я хочу купить версию у которой есть вкладка SEO По скринам этого не видно И тут упоминается о версии filterpro_v2.4.4(seo) Так какую версию мне покупать ? IonCube у меня установлен Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... krashman Опубліковано: 19 жовтня 2019 Share Опубліковано: 19 жовтня 2019 Прошёл почти месяц с сообщения в ЛС @freelancer Ответа нет. Даже не прочитано. Надіслати Поділитися на інших сайтах More sharing options... mirek Опубліковано: 21 жовтня 2019 Share Опубліковано: 21 жовтня 2019 Здравствуйте Спасибо Активировали Теперь вопрос на счет SEO урлов Хотелось бы, что-бы при выборе в фильтре и совпадении выбора с урлом указанным во вкладке SEO в адресной строке выводился SEO урл, а не это #category_id=75&page=1&path=59_75&sort=p.sort_order&order=ASC&limit То есть не понятно Это реализовано вообще ? Может просто у нас не работает ? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... freelancer Опубліковано: 5 листопада 2019 Автор Share Опубліковано: 5 листопада 2019 небольшое обновление фильтр не требует ioncube, работает без лицензии. цена упала на 200р Надіслати Поділитися на інших сайтах More sharing options... Sunjahman Опубліковано: 13 листопада 2019 Share Опубліковано: 13 листопада 2019 (змінено) Добрый день, @freelancer ! Можно ли как-то заставить фильтр, при заходе на определенную категорию, выставлять определенные атрибуты в чекбоксах? Пример: есть 2 категории "смартфоны" и "телефоны" у всех товаров в категории "смартфоны" присутствует атрибут "сенсорный экран" у всех товаров в категории "телефоны" присутствует атрибут "калькулятор" Вот можно ли чтобы данные атрибуты сразу выставлялись. По аналогии в принципе и производители. в категории "sony" выставлялся производитель "сони" Подобную опцию увидел на одном сайте, к вашему фильтру он отношения не имеет, но функционал весьма удобен. Змінено 13 листопада 2019 користувачем Sunjahman Надіслати Поділитися на інших сайтах More sharing options... Назад 271 272 273 274 275 276 277 278 279 Вперед Сторінка 276 з 279 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 23 Перейти до списку тем Схожі публікації ajax filter [Поддержка] Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 21 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 5 відповідей 1 482 перегляди sevansht 17 вересня ajax filter Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 20 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 0 коментарів 5 384 перегляди kirians 21 жовтня 2021 batch [Поддержка] Универсальный массовый редактор товаров. MULTIEDIT AI 1 2 3 4 11 Автор: Sha, 16 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 253 відповіді 57 946 переглядів Sha В неділю в 21:25 batch Універсальний масовий редактор товарів. MultiEdit AI Автор: Sha, 15 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 0 коментарів 57 317 переглядів Sha 15 березня 2017 [Поддержка] Автор: Wadamir, 12 лютого 2021 админка фильтр (і ще %d) Теги: админка фильтр категории производитель 0 відповідей 745 переглядів Wadamir 23 лютого 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Фильтры filter Pro [Поддержка]
krashman Опубліковано: 19 жовтня 2019 Share Опубліковано: 19 жовтня 2019 Прошёл почти месяц с сообщения в ЛС @freelancer Ответа нет. Даже не прочитано. Надіслати Поділитися на інших сайтах More sharing options...
mirek Опубліковано: 21 жовтня 2019 Share Опубліковано: 21 жовтня 2019 Здравствуйте Спасибо Активировали Теперь вопрос на счет SEO урлов Хотелось бы, что-бы при выборе в фильтре и совпадении выбора с урлом указанным во вкладке SEO в адресной строке выводился SEO урл, а не это #category_id=75&page=1&path=59_75&sort=p.sort_order&order=ASC&limit То есть не понятно Это реализовано вообще ? Может просто у нас не работает ? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... freelancer Опубліковано: 5 листопада 2019 Автор Share Опубліковано: 5 листопада 2019 небольшое обновление фильтр не требует ioncube, работает без лицензии. цена упала на 200р Надіслати Поділитися на інших сайтах More sharing options... Sunjahman Опубліковано: 13 листопада 2019 Share Опубліковано: 13 листопада 2019 (змінено) Добрый день, @freelancer ! Можно ли как-то заставить фильтр, при заходе на определенную категорию, выставлять определенные атрибуты в чекбоксах? Пример: есть 2 категории "смартфоны" и "телефоны" у всех товаров в категории "смартфоны" присутствует атрибут "сенсорный экран" у всех товаров в категории "телефоны" присутствует атрибут "калькулятор" Вот можно ли чтобы данные атрибуты сразу выставлялись. По аналогии в принципе и производители. в категории "sony" выставлялся производитель "сони" Подобную опцию увидел на одном сайте, к вашему фильтру он отношения не имеет, но функционал весьма удобен. Змінено 13 листопада 2019 користувачем Sunjahman Надіслати Поділитися на інших сайтах More sharing options... Назад 271 272 273 274 275 276 277 278 279 Вперед Сторінка 276 з 279 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 23 Перейти до списку тем Схожі публікації ajax filter [Поддержка] Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 21 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 5 відповідей 1 482 перегляди sevansht 17 вересня ajax filter Ajax Filter with Seo Link (Умный фильтр) Автор: kirians, 20 жовтня 2021 ajax фильтр ajax (і ще %d) Теги: ajax фильтр ajax filter ajax filter for brands filter seo filter products фильтр на ajax фильтр ajax filter pro with seo links 0 коментарів 5 384 перегляди kirians 21 жовтня 2021 batch [Поддержка] Универсальный массовый редактор товаров. MULTIEDIT AI 1 2 3 4 11 Автор: Sha, 16 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 253 відповіді 57 946 переглядів Sha В неділю в 21:25 batch Універсальний масовий редактор товарів. MultiEdit AI Автор: Sha, 15 березня 2017 top sale (і ще %d) Теги: top sale chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart new 0 коментарів 57 317 переглядів Sha 15 березня 2017 [Поддержка] Автор: Wadamir, 12 лютого 2021 админка фильтр (і ще %d) Теги: админка фильтр категории производитель 0 відповідей 745 переглядів Wadamir 23 лютого 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
freelancer Опубліковано: 5 листопада 2019 Автор Share Опубліковано: 5 листопада 2019 небольшое обновление фильтр не требует ioncube, работает без лицензии. цена упала на 200р Надіслати Поділитися на інших сайтах More sharing options... Sunjahman Опубліковано: 13 листопада 2019 Share Опубліковано: 13 листопада 2019 (змінено) Добрый день, @freelancer ! Можно ли как-то заставить фильтр, при заходе на определенную категорию, выставлять определенные атрибуты в чекбоксах? Пример: есть 2 категории "смартфоны" и "телефоны" у всех товаров в категории "смартфоны" присутствует атрибут "сенсорный экран" у всех товаров в категории "телефоны" присутствует атрибут "калькулятор" Вот можно ли чтобы данные атрибуты сразу выставлялись. По аналогии в принципе и производители. в категории "sony" выставлялся производитель "сони" Подобную опцию увидел на одном сайте, к вашему фильтру он отношения не имеет, но функционал весьма удобен. Змінено 13 листопада 2019 користувачем Sunjahman Надіслати Поділитися на інших сайтах More sharing options... Назад 271 272 273 274 275 276 277 278 279 Вперед Сторінка 276 з 279 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 23
Sunjahman Опубліковано: 13 листопада 2019 Share Опубліковано: 13 листопада 2019 (змінено) Добрый день, @freelancer ! Можно ли как-то заставить фильтр, при заходе на определенную категорию, выставлять определенные атрибуты в чекбоксах? Пример: есть 2 категории "смартфоны" и "телефоны" у всех товаров в категории "смартфоны" присутствует атрибут "сенсорный экран" у всех товаров в категории "телефоны" присутствует атрибут "калькулятор" Вот можно ли чтобы данные атрибуты сразу выставлялись. По аналогии в принципе и производители. в категории "sony" выставлялся производитель "сони" Подобную опцию увидел на одном сайте, к вашему фильтру он отношения не имеет, но функционал весьма удобен. Змінено 13 листопада 2019 користувачем Sunjahman Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts