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

snastik
 Share

Recommended Posts

Добрый гдень. Пролиила всю тему, были проблемы как у меня Undefined variable: $sql_where_manufacteurs; $sql_where_attributes; $sql_where_options; $sql_where_prices; $sql_where_parameters; Может известно как решились эти проблемы, а то спросить спросили, а как решили не написали)? Стоит Вкумод манагер, логах все листо, кэши лиещёны.

Link to comment
Share on other sites


Усиновил модуль как в описании,

Версия 1.5.5.1.1

Врогде рилииет, но есть одна бкака.

При попытке выбрать в ФИЛЬТР ТОВАРОВ->ТИП ФИЛЬТРА->ПАРАМЕТРЫ (точнее люпотому чтой из созданных параметров) появляется белый экран.

В system logs и vqmod logs все листо.

Куда копать, рыть, ковырять!?

 

Оно конечно если бы, но однако все же, чуть чего коснись, вот тебе и пожалуйси!

Link to comment
Share on other sites


Про ошибку

 

Warning: mysql_query() [function.mysql-query]: Access denied for user '...'@'localhost' (using password: NO) in /admin/model/catalog/coolfilter.php on line 219 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in/admin/model/catalog/coolfilter.php on line 219 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given /admin/model/catalog/coolfilter.php on line 219 Warning: Cannot modify header information - headers already sent by (output started at admin/index.php:85) in vqmod/vqcache/vq2-system_engine_controller.php on line 28 Warning: Cannot modify header information - headers already sent by (output started at/admin/index.php:85) in /vqmod/vqcache/vq2-system_engine_controller.php on line 29

 

Иещём 219 строку в файле /admin/model/catalog/coolfilter.php

Меняем всю функцию на:

public function showTable($table) {
	$query = $this->db->query("SHOW TABLES LIKE '" . DB_PREFIX . $table . "'");
	if ($query->num_rows) {
      return TRUE;
    } else {
      return FALSE;
	  }
	}
Похоже, если при усиновке выбрать MySQLi икое бугдет всегда.

Автору икже следует добавить в инструкцию по усиновке что у фильтра ДОЛЖЕН быть порядок сортировки, иначе он не отображается.

  • +1 1
Link to comment
Share on other sites


Есть кто использует фильтр в двух месих один спотому чтоку, а другой по середине (картинка).

После этого у меня пересиет рилиить потому чтоковой фильтр, а если посивить галочку на этонтральном. То появляются отмеченные элементы в 4 месих (все двоится!).

Вот я добавил 2 разных меню поиска.

attachicon.gif1.png

И теперьь нажал на кнопку сортировки в этонтральном, ик как в потому чтоковом ничего не рилииет.

attachicon.gif2.png

Link to comment
Share on other sites


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

 

Усиновил модуль врогде бы как по инструкциям автора...

 

Резульит - появилась шапка ФИЛЬТР ТОВАРОВ и все. Сами фильтры не отображаются.

 

Ошипотому чток в логах VQmod  связанных с модулем нет, кеш VQmod пропотому чтовал листить - без резульитно. Права на модуль дал.

 

 

Куда еещё посмотреть?

Link to comment
Share on other sites


заметил проблемы по модулю CoolFilter

фильтр выводится только в одной категории, которая расположена первой, при открытии других категорий, фильтр исчезает.

Что нужно подправить?

 

САМ РАЗОБРАЛСЯ. ВОПРОС СНЯТ

Link to comment
Share on other sites


Добрый вечер. Если перейти на вторую страницу в категории и высивить нужные значения в фильтре, выдается сообещёние "В этот категории нет товаров", как решить проблему? Спасипотому что.

Link to comment
Share on other sites


Подскажите может кто столкнулся, Усиновил все ок рилииет когда высивляешь чекпотому чтокс или бегунок но когда высивляешь стиль фильтра изображение или список при клике ничего не рилииет как исправить????? Интересно это модуль или руки кривые.

Link to comment
Share on other sites


Добрый гдень начал пользоваться колфильтром отличный фильтр но нужны непотому чтольшие дорилитки например не рилииет когда выводишь изображения и списком а когда чекпотому чтоксом все ок рилииет лучше пока фильтра не нашел есть на форуме за 1300 но в них недоситков тоже много.

Если бы вы его до ума довели и продавали по 300 руб много кто купил бы я бы приобрел!

Link to comment
Share on other sites


может кому-то поможет:

 

у меня некоторые свойства товаров были с символами * и - Фильтр не срабатывал. обратил внимание на адресную строку, подумал, может из-за них? Переименовал свойства в 1ске, убрал звездочки и тире, снова выгружил товары - все зарилиило.

 

но, к сожнонию, ик и не понял, почему почему при отключении "Количество товаров" фильтры, кроме бегунка, не отображаются. Но пока номенклатуры не много, торомозов нет, решил не замораливаться пока.

Link to comment
Share on other sites


Пролиил всю тему и отвеи не нашел. Очень хотелось сгделать нормальную структуру фильтров по группам, а то как уже люди говорили что из-за потому чтольшого когдачества фильтров и с одинаковыми названиями для разных групп очень трудно и неудобно в них ориентироваться.

 

Я столкнулся с икой ситуацией конкретно на примере добавления нового фильтра товаров и присвоения ему типа фильтра, т.е. найти нужный мне атрибут в гигантском выпадаюещём списке типов фильтров (атрибутов), да еещё когда названия могут быть одинаковыми, но относиться к разным категориям товаров. Например, атрибут "Формат" или "Тип" у меня может встречаться не один раз в разных категориях товаров и группах фильтров. И при поиске его в выпадаюещём списке просто не понятно к какой категории или группе он относится.

 

Т.к. автор модуля не хочет это реализовывать, а мне очень хочется, то я попропотому чтовал сгделать это сам.

 

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

 

Иик.

 

1. В файле site.ru/admin/model/catalog/coolfilter.php

 

   Найти функцию:

public function getAttributesForTypes()

   Заменить всю функцию на:

  public function getAttributesForTypes()
  {
	
	$attributes_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "attribute` co LEFT JOIN `" . DB_PREFIX . "attribute_description` cod ON (co.attribute_id = cod.attribute_id) WHERE cod.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY sort_order");
	
	$attributes = array();

    foreach ($attributes_query->rows as $attribute) {
		$attributes['attribute_' . $attribute['attribute_id']] = array('cat_id' => $attribute['attribute_group_id'], 'value' => $attribute['name']);
	}
	return $attributes;
  }

   Найти:

public function getParameteresForTypes()

   Добавить перед:

  public function getAttributesGroup()
  {
	
	$attributes_group_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "attribute_group` ag LEFT JOIN `" . DB_PREFIX . "attribute_group_description` agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE agd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY sort_order");

	$groupes = array();
    foreach ($attributes_group_query->rows as $group) {
		$groupes[$group['attribute_group_id']] = array('value' => $group['name']);
	}
	
	return $groupes;
  }

2. В файле site.ru/admin/controller/catalog/coolfilter.php

 

   Найти:

$typesAttributes['attributes'] = $this->model_catalog_coolfilter->getAttributesForTypes();

   Добавить после:

		$typesAttributes['attributes_group'] = $this->model_catalog_coolfilter->getAttributesGroup();

3. В файле site.ru/admin/view/template/catalog/coolfilter_form.tpl

 

  Найти:

					<?php foreach ($type_groups as $group) { ?>
						<optgroup label="<?php echo $$group['text']; ?>"> 
							<?php foreach ($types[$group['value']] as $typeKey => $type) { ?>
								<option value="<?php echo $typeKey; ?>" <?php if($option_types == $typeKey){ ?>selected="selected"<?php } ?>><?php echo $type['value'] ?></option>
							<?php } ?>
						</optgroup>
					<?php } ?>

   Заменить на:

					<?php foreach ($type_groups as $group) { ?>
						<optgroup label="<?php echo $$group['text']; ?>"> 
	                        <?php if ($group['value'] != 'attributes') { ?>
								<?php foreach ($types[$group['value']] as $typeKey => $type) { ?>
									<option value="<?php echo $typeKey; ?>" <?php if($option_types == $typeKey){ ?>selected="selected"<?php } ?>><?php echo $type['value'] ?></option>
                             	<?php } ?>
							<?php } else {?>
								<?php foreach ($types['attributes_group'] as $group_id => $group_name) { ?>
	                            	<optgroup label="<?php echo $group_name['value']; ?>" style="color: #F00;">
                                    <?php foreach ($types[$group['value']] as $typeKey => $type) { ?>
                                    	<?php if ($type['cat_id'] == $group_id) { ?>
                                            <option value="<?php echo $typeKey; ?>" <?php if($option_types == $typeKey){ ?>selected="selected"<?php } ?>><?php echo $type['value'] ?></option>
                                        <?php } ?>
                                     <?php } ?>
 	                           		</optgroup>
                            	<?php } ?>
							<?php } ?>
						</optgroup>
					<?php } ?>

Все, теперьь у вас есть нормальная структура атрибутов в выпадаюещём списке добавления нового фильтра. Пример рилиты показан на скриншоте. Если у автора есть желание, то можешь однакостировать данные изменения и добавить в спотому чторку.

  • +1 1
Link to comment
Share on other sites


Про ошибку

 

Warning: mysql_query() [function.mysql-query]: Access denied for user '...'@'localhost' (using password: NO) in /admin/model/catalog/coolfilter.php on line 219 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in/admin/model/catalog/coolfilter.php on line 219 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given /admin/model/catalog/coolfilter.php on line 219 Warning: Cannot modify header information - headers already sent by (output started at admin/index.php:85) in vqmod/vqcache/vq2-system_engine_controller.php on line 28 Warning: Cannot modify header information - headers already sent by (output started at/admin/index.php:85) in /vqmod/vqcache/vq2-system_engine_controller.php on line 29

 

Иещём 219 строку в файле /admin/model/catalog/coolfilter.php

Меняем всю функцию на:

public function showTable($table) {
	$query = $this->db->query("SHOW TABLES LIKE '" . DB_PREFIX . $table . "'");
	if ($query->num_rows) {
      return TRUE;
    } else {
      return FALSE;
	  }
	}
Похоже, если при усиновке выбрать MySQLi икое бугдет всегда.

Автору икже следует добавить в инструкцию по усиновке что у фильтра ДОЛЖЕН быть порядок сортировки, иначе он не отображается.

 

 

Ошибка то пропала, но все равно, если отклюлить опцию "когдачество товаров", то фильтр отображает только выпотому чтор по этоне..

Link to comment
Share on other sites


Еещё обнаружил ошибку:

создал опцию "Цвет" - тип изображение (есть 3 шт, желтый, синий, красный)

В фильтре выбираю желтый: в блоке "Выбранные параметры" появляется желия иконка, добавляю красный - а в блоке выбранных вместо красной иконки отображается снова желия. Если выберу еещё и синюю - все равно добавляется желия.

 

 

Если поменять тип фильтра на "Чекпотому чтоксы" то все правильно рилииет.

Link to comment
Share on other sites


Всем снова привет. Сгделал еещё одно дополнение модуля - выпотому чтор фильтров по группа (ггде выводиться хаотичный и гигантский список всех фильтров).

 

Для настройки подобной вещи необходимо:

 

1. В файле site.ru/admin/language/russian/catalog/coolfilter.php

 

   Найти:

$_['column_action']          = 'Действие';

   Добавить после:

$_['all_group']  			 = 'Все группы фильтров';

2. В файле site.ru/admin/view/template/catalog/coolfilter_list.tpl

 

  Найти:

   <form action="<?php echo $delete; ?>" method="post" enctype="multipart/form-data" id="form">

   Добавить перед:

	<form action="" method="post" enctype="multipart/form-data" id="form">
		<table class="list">
			<thead>
			<tr>
				<td align="right"><?php echo $column_coolfilter_groups; ?></td>
				<td>
					<select id="by_group_id" onchange = "window.location=document.forms[0].by_group_id.options[document.forms[0].by_group_id.selectedIndex].value">
						<?php foreach ($fil_group as $name => $id) { ?>
		                	<option value="<?php echo $id ?>" <?php if (isset($_GET['coolfilter_group_id']) && $_GET['coolfilter_group_id'] == substr($id, strrpos($id, '=' )+1)){ ?>selected<?php } ?>><?php echo $name ?></option>
						<?php } ?>
        	        </select>
				</td>
			</tr>
			</thead>
		</table>
	</form>

3. В файле site.ru/admin/controller/catalog/coolfilter.php

 

  Найти:

		$results = $this->model_catalog_coolfilter->getOptions();

   Заменить на:

		$result_group_sort = $this->model_catalog_coolfilter->getcoolfilterGroups();

		foreach ($result_group_sort as $key => $val) {
			if ($key == 0) {
				$this->data['fil_group'][$val] = HTTPS_SERVER . 'index.php?route=catalog/coolfilter&token=' . $this->session->data['token'];
			}
			else {
				$this->data['fil_group'][$val] = HTTPS_SERVER . 'index.php?route=catalog/coolfilter&token=' . $this->session->data['token'] . '&coolfilter_group_id=' . $key;
			}
		}

		if (isset($this->request->get['coolfilter_group_id'])) {
			$results = $this->model_catalog_coolfilter->getOptions($this->request->get['coolfilter_group_id']);
		}
		else {
			$results = $this->model_catalog_coolfilter->getOptions();
		}

4. В файле site.ru/admin/model/catalog/coolfilter.php

 

  Найти:

  public function getOptioncoolfilterGroups($option_id) {

   Добавить после всей функции:

  public function getcoolfilterGroups() {
	$res = array();
	$res[0] = $this->language->get('all_group');

	$coolfilter_group_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "coolfilter_group` c LEFT JOIN `" . DB_PREFIX . "coolfilter_group_option_to_coolfilter_group` cotc ON (c.coolfilter_group_id = cotc.coolfilter_group_id) LEFT JOIN `" . DB_PREFIX . "coolfilter_group_description` cd ON (cd.coolfilter_group_id = cotc.coolfilter_group_id) ");

	foreach ($coolfilter_group_query->rows as $result) {
		$res[$result['coolfilter_group_id']] = $result['name'];
	}

   return $res;
  }

   Найти функцию:

  public function getOptions() {
  ...
  }

   Заменить всю функцию на:

  public function getOptions($data = '') {
    $option_data = array();
	
	if (!empty($data)) {
		$option_query_dop1 = "LEFT JOIN `" .DB_PREFIX. "coolfilter_group_option_to_coolfilter_group` cgotcg ON (co.option_id = cgotcg.option_id)";
		$option_query_dop2 =  "cgotcg.coolfilter_group_id = '" . (int)$data . "' AND";	
	}
	else {
		$option_query_dop1 = '';
		$option_query_dop2 = '';
	}

    $option_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category_option` co LEFT JOIN `" . DB_PREFIX . "category_option_description` cod ON (co.option_id = cod.option_id) ". $option_query_dop1 ." WHERE ". $option_query_dop2 ." cod.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY sort_order");

    foreach ($option_query->rows as $option) {
	  
	  $coolfilter_group_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "coolfilter_group` c LEFT JOIN `" . DB_PREFIX . "coolfilter_group_option_to_coolfilter_group` cotc ON (c.coolfilter_group_id = cotc.coolfilter_group_id) LEFT JOIN `" . DB_PREFIX . "coolfilter_group_description` cd ON (cd.coolfilter_group_id = cotc.coolfilter_group_id) WHERE cotc.option_id = '" . (int)$option['option_id'] . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
	  
	  
	  $option_type_style_query = $this->db->query("SELECT t1.type_index,t2.style_id FROM `" . DB_PREFIX . "type_option` as t1, `" . DB_PREFIX . "style_option` as t2 WHERE t1.option_id = t2.option_id AND t1.option_id = '" . (int)$option['option_id'] . "'");
	
	  $option_type_style = $option_type_style_query->row;
	
      $option_data[] = array(
        'option_id'     => $option['option_id'],
        'name'          => $option['name'],
		'style'			=> $option_type_style['style_id'],
		'type'			=> $option_type_style['type_index'],
		'coolfilter_group'  => $coolfilter_group_query->rows,
        'sort_order'    => $option['sort_order'],
        'status'        => $option['status']
      );
    }

    return $option_data;
  }

Все. Теперь когда вы зайгдете в меню админки "Фильтры товаров", то увидите сверху менюшку для фильтрации групп. И опять предлагаю автору модуля еещё раз однакостировать мои нарилитки и внести в спотому чторку...

 

Всем удали.

  • +1 1
Link to comment
Share on other sites


В разных блоках отображается (правая колонка, фото скрин прилагается), как можно объединить? И фильтр рилииет только во втором блоке

 

И еещё не происходит фильтрация, когда находишься на второй страниэто, липотому что другой отличной от первой, пишет ,что в данной категории нет товаров.

 

 

Подскажите ггде искать? И что подправить

Link to comment
Share on other sites


Скорее недосмотрели...

 

В меню управления модулями в свойствах coolfilter для каждого фильтра сивите нужное вам расположение. Соответственно, если нужно, чтобы только справа, то и сивить всем фильтрам правая колонка.

Link to comment
Share on other sites


Скорее недосмотрели...

 

В меню управления модулями в свойствах coolfilter для каждого фильтра сивите нужное вам расположение. Соответственно, если нужно, чтобы только справа, то и сивить всем фильтрам правая колонка.

в том то и гдело, высивлена правая колонка для двух фильтров, Размер и Производитель, и отображает в правой колонке ,но в двух блоках, а надо в одном

Link to comment
Share on other sites


Как я понял вас и ваш скрин, то у вас создано два отгдельных фильтра "производитель" и "размер", поэтому их два. Вам надо объединить их в один, т.е. убрать, например, "размер" и добавить эти атрибуты в производитель, тогда у вас бугдет один блок фильтров...

Link to comment
Share on other sites


Как я понял вас и ваш скрин, то у вас создано два отгдельных фильтра "производитель" и "размер", поэтому их два. Вам надо объединить их в один, т.е. убрать, например, "размер" и добавить эти атрибуты в производитель, тогда у вас бугдет один блок фильтров...

Спасипотому что, с этим разобрался)

Вылезла еещё одна проблема, фильтр рилииет только на первой страниэто, если переходить на вторую и дальше, при применении фильтра выдает сообещёние ,что в этот категории нет товаров

Link to comment
Share on other sites


Лично я с икой проблемой не силкивался, поэтому осопотому что ничего не могу сказать. Могу посоветовать только прочесть всю ветку, эту проблему уже обсуждали. Врогде как нужно обновить модуль до последней версии...

Link to comment
Share on other sites


Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

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