Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


freelancer

Recommended Posts

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

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

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

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

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

 

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

1

2

3

4

 

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

2

4

3

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


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

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

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

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

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

 

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

Змінено користувачем Zapuzin
Надіслати
Поділитися на інших сайтах


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

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

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

 

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

 

Змінено користувачем Zapuzin
Надіслати
Поділитися на інших сайтах


  • 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

1137140394____2.thumb.png.b4df3a7e5a579b4083a262d9e35105f5.png

 

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

 

1610784317__.png.5ef3ca929fc11135956a3346f5faba52.png

1721026006___2.thumb.png.666ced85414b07252ca2b93d5bf9d425.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();
	}
}

?>

 

 

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

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

Змінено користувачем Zapuzin
Добавление файла
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


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

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

 

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

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

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

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

filterpro отключил.

Мониторю )

 

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


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

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

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

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

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

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

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

 

Надіслати
Поділитися на інших сайтах

  • 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 установили. Спасибо большое заранее!

Надіслати
Поділитися на інших сайтах


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

 

 

image.thumb.png.91ecaebbc4645c40da2b140e5593335e.png

image.thumb.png.2636f2a1566c34746558fef9ac8fd11e.png

Надіслати
Поділитися на інших сайтах


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

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


Спасибо.

Надіслати
Поділитися на інших сайтах


4 часа назад, KDS898 сказал:

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

 

 

image.thumb.png.91ecaebbc4645c40da2b140e5593335e.png

image.thumb.png.2636f2a1566c34746558fef9ac8fd11e.png

 

Ошибка при нажатии редактирования:

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

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

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

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

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

 

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

Надіслати
Поділитися на інших сайтах


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

 

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

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

 

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

IonCube у меня установлен

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Здравствуйте  Спасибо  Активировали

Теперь вопрос на счет SEO урлов

Хотелось бы, что-бы  при  выборе  в фильтре  и совпадении  выбора  с урлом указанным во вкладке SEO  в адресной строке выводился SEO  урл, а не это
#category_id=75&page=1&path=59_75&sort=p.sort_order&order=ASC&limit

То есть не понятно  Это  реализовано вообще ?  Может  просто  у нас не работает ?

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Добрый день, @freelancer ! Можно ли как-то заставить фильтр, при заходе на определенную категорию, выставлять определенные атрибуты в чекбоксах?

Пример:

есть 2 категории "смартфоны" и "телефоны"

у всех товаров в категории "смартфоны" присутствует атрибут "сенсорный экран"

у всех товаров в категории "телефоны" присутствует атрибут "калькулятор" 

Вот можно ли чтобы данные атрибуты сразу выставлялись. По аналогии в принципе и производители. в категории "sony" выставлялся производитель "сони"

 

Подобную опцию увидел на одном сайте, к вашему фильтру он отношения не имеет, но функционал весьма удобен.

 

Змінено користувачем Sunjahman
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.