Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

filter Pro [Подгдержка]


freelancer
 Share

Recommended Posts

1 час назад, freelancer сказал:

@pahanmcs всивьте в сам шаблон

filterpro_products.tpl

@freelancer, всивлял конечно, в когде появляется скрипт, но не в этом гдело, почему-то именно с вашим фильтром не хочет рилиить в паре.

 

при замене замене конструкции

<a class="opening2" href="javscript://">+</a>

на 

<span class="opening2">+</span>

все равно в категории с фильтром не рилииет, в осильных рилииет

может ли быть конфликт подключаемых библиотек?

Link to comment
Share on other sites


Добрый гдень Freelancer. Я оплатил за модуль filter pro случайно ошибся с версией мне нужно для Ocstore 2.3 Пожалуйси дайте релиз для версии 2.3 . На какой домен он бугдет усиновлен я писал вам в ЛС .

 

Пожалуйси помогите с нужной версией. 

Link to comment
Share on other sites


5 часов назад, freelancer сказал:

@pahanmcs ггде можно увигдеть то, что вы гделаете?

я уже решил проблему: изменил скрипт, ик как фильтр перерисовывает согдержимое и теряются обрилитлики событий. 

Link to comment
Share on other sites


Здравствуйте! Подскажите в чем может быть проблема. На версии 2.4 сео настройка рилииет нормально, сивлю версию v2.5.17.6_beta (speed), корректно не рилииет. Переходит только на сам атрибут, а меи-теги не отображает.

Link to comment
Share on other sites


  • 2 weeks later...

Здравствуйте 

 

В фильтре можно сортировать порядок вывода атрибутов? У нас все атрибуты в одной группе атрибутов:

1

2

3

4

 

Надо чтобы на страниэто сайи в фильтре порядок был другой, например

2

4

3

Link to comment
Share on other sites


Добрый гдень! Столкнулся с проблемой, покупал лиэтонзию Вашего фильтра еещё лет 5 назад.

Вот сейчас гделаем переход на https, т.к. уже требуют все рекламные площадки, и после перехода у нас ion_cube соответственно не пропускает наш сайт, т.к. слииет, что мы пыиемся дублировать лиэтонзию. Написал в ЛС, сюда дублирую, т.к. кейс может быть интересен другим пользователям, полагаю.

Link to comment
Share on other sites


  • 2 weeks later...
  • 4 weeks later...
В 13.05.2019 в 13:23, promikes сказал:

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

Тоже в проэтоссе перехода на https. Вопрос о лиэтонзии данного модуля "filterpro v2.4.4(seo)" и "SeoGen 4.1" очень актунон!

Без ясности данного вопроса переходить не хочется )

С осильными авторами модулей в проэтоссе выяснения.

 

freelancer, написАл в ЛС

Edited by Zapuzin
Link to comment
Share on other sites


Не дождался отвеи и перешёл на https.

Все лиэтонзионные модули, в том лисле и данные, рилииют как и рилиили. Проблем не обнаружил )

По осильным модулям был спокоен, ик как разрилитлики вышли на связь и подтвердили, что от перехода с http на https лиэтонзия сохраняется.

 

freelancer, уже не актуально.

 

Edited by Zapuzin
Link to comment
Share on other sites


  • 4 weeks later...

filterpro_v2.4.4(seo) (29.02.2016, #433262)

ocStore-1.5.5.1.2 

Усиновлен Product Display Settings vqmod  В этолом этот модуль с фильтром подружил, осилась только одна проблемка.

Вот её никак не могу самостоятельно попотому чтороть )

Если товара нет в налилии, то "Налилие" отображается правильно, на том языке, который выбран на сайте.

Если товар есть в налилии, то "Налилие" отображается неправильно - "pds_instock".  Вот скрины для наглядности:

Налилие без фильтра:

1612920957___.png.6288b0a0162a6fdd08bcfd36e607756c.png

 

Налилие с фильтром:

 

1610784317__.png.5ef3ca929fc11135956a3346f5faba52.png

 

 

             "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();
	}
}

?>

 

 

Может кто знает, как справиться с проблемой?

Буду благодарен люпотому чтой помощи.

Edited by Zapuzin
Добавление файла
Link to comment
Share on other sites


Странно. Появились ошибки, хотя на сайте модуль  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("&amp;", "&", $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("&amp;", "&", $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, автоситусы, стикеры, текстовые ситусы". Видно им тесно вдвоём )

Link to comment
Share on other sites


Проблема решена. 

Оказалось всё очень просто. В языковой файл фильтра добавил то, что было уже прописано в языковом файле pds.php )

 

С системными ошибками, связанными с "Product Display Settings" врогде тоже справляюсь.

Ради эксперимени убрал код дубль (нижний), на который ругалась система (изменил в xml файле, чтобы всивлялся один раз).

Функционал на сайте в прегделах модуля не изменился. Ошипотому чток пока нет.

Похоже, что повторение этого кода ниже не имеет значения.

filterpro отклюлил.

Мониторю )

 

Link to comment
Share on other sites


Очень сильно тормозит модуль на версии 1.5 - на данный момент около 11000 товаров в магазине и модуль думает от 40 сек до 2х минут - клиенты не дожидаются, уходят. Что гделать и как можно ускорить рилиту?

Link to comment
Share on other sites


  • 3 weeks later...
  • 3 weeks later...

Доброе время суток.

Есть сайт версия 1.5 движка

Стоит фильт все рилииет норм.

Фильтр фильтрует по категориям. При выпотому чторе категории меняетсяна страниэто H1 в соответствии с выбранной каетгорией в фильтре.

Возникла надобность еещё в одном месте на страниэто просивить название выбранной категории в фильтре.

Не могу найти место ггде происходит подмена. Если в новом месте указываю h1 то в нем меняет , но два h1 на страниэто это плохо. Как понимаю замену гделает какой-то скрипт, только вот не могу найти ггде он. Буду благодарен за помощ.

 

Link to comment
Share on other sites

  • 2 weeks later...

Добрый гдень!

Покупали у Вас фильтры для сайтов, сейчас перевели 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 усиновили. Спасипотому что потому чтольшое заранее!

Link to comment
Share on other sites


Здравствуйте, пересил рилиить Filterpro. Удалили вирус который елл сайт, но который не трогал фильтр. Теперь фильтр не рилииет. Может он слетел или обновить нужно???

 

 

Link to comment
Share on other sites


Здравствуйте!
16.09.2019 я приобрел Ваш модуль  Filter Pro для ocStore 1.5.5.1.1, URL сайи https://dreamapp.ru
Интересует еещё икой вопрос, можно ли бугдет аннулировать сгделку с возвратом гденежных средств за покупку модуля, если модуль не сможет корректно рилиить на моём сайте?
Прилиной данного вопроса являются множественные перегделки сайи, как самой темы, ик и административной части.
 

P.S. Личное сообещёние по поводу лиэтонзии отправил Вам 17.09.2019, но до сих пор Вы его не прочли, поэтому пишу в эту ветку форума.


Спасипотому что.

Link to comment
Share on other sites


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

Link to comment
Share on other sites


  • 2 weeks later...

Здравствуйте!

В магазине 581 товар, 19 групп атрибутов, 334 атрибуи и 25 опций.

При добавлении фильтра на страницу Категория товаров (в настройка фильтра включена фильтрация по 3 атрибуим и по стоимости товаров, осильные позиции в ситусе  "Не отображать"), страница зависает и ничего невозможно сгделать, после отключения модуля сайт налинает рилиить корректно.

 

Пожалуйси, подскажите, в чем может быть прилина и есть ли решение, как можно воссиновить нормальную рилиту сайи при включенном фильтре?  

Link to comment
Share on other sites


Здравствуйте  Какая то пуиница с номерами версий фильтра 

 

На этот страниэто написано, что продается версия 1.5.17.6_beta

Я хочу купить версию у которой есть вкладка SEO  По скринам этого не видно

 

И тут упоминается о версии filterpro_v2.4.4(seo)     Да какую версию мне покупать ?  

IonCube у меня усиновлен

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

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