Перейти к содержимому


Еще один фильтр. Теперь на AJAX.


  • Вы не можете ответить в тему
Сообщений в теме: 187

#101 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 04 May 2015 - 04:50 PM

СПАСИБО!!! по умолчанию в дефолтом шаблоне прописана загрузка jquery, нодо ее удалить и фильтр работает!!!

может отвалится что-то другое :)
дефолтный jquery новее чем идет с фильтром.
  • 0
502 Bad Gateway

#102 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 04 May 2015 - 04:58 PM

А какую лучше отключить ?
<link rel="stylesheet" type="text/css" href="http://ajax.googleap...jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleap...n.js"></script>
<script type="text/javascript" src="http://ajax.googleap...n.js"></script>
  • 0

#103 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 04 May 2015 - 05:01 PM

jquery и jquery-ui это разные вещи )

вместо строки с 1.7/jquery.min.js перенести jquery из подвала.
  • 0
502 Bad Gateway

#104 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 05 May 2015 - 07:52 PM

Все разобрался! Может кому пригодится. В разделе валют обязательно должна присутствовать валюта Доллары, без нее фильтр не работает.

Это чушь. Валюта "Доллары США" отличается от остальных валют только тем, что у нее после инсталляции ID=1 и курс=1, т.е. это первая валюта в таблице и она имеет единичный курс. Я бы еще мог поверить, что по какой-то причине фильтру обязательно нужно наличие Валюты с ID=1 или единичным курсом, но у меня несколько сайтов, где валюта ТОЛЬКО рубль (с ID>1), а обязательность единичного курса я проверил. Повторюсь - чушь собачья. Очевидно, что есть какие-то причины для возникновения Ваших проблем, но ни сохранение штатной валюты "Доллары США", ни валюта с единичным курсом не являются обязательными для работы этого фильтра. И не являются прямой причиной Ваших проблем.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#105 Den

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 117 сообщений
Репутация: 0
Начинающий

Отправлено 18 May 2015 - 05:40 PM

badisoft, столкнулся с проблемой при одновременно установленном модуле фильтра и модуле автоматического выбора другого шаблона при заходе с мобильного. В режиме "мобильного" шаблона, после отработки фильтра, товары выводятся через дефолтный caterory.tpl.html (который в папке с основным шаблоном), а не через тот, что в папке с мобильным шаблоном.
  • 0

#106 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 May 2015 - 07:11 PM

В режиме "мобильного" шаблона, после отработки фильтра, товары выводятся через дефолтный caterory.tpl.html (который в папке с основным шаблоном), а не через тот, что в папке с мобильным шаблоном.

Начало filter.php:

<?php
require ( "core/smarty/smarty.class.php" );
$smarty = new Smarty;
$template = isset($_SESSION["CUSTOM_DESIGN"])?$_SESSION["CUSTOM_DESIGN"]:CONF_DEFAULT_TEMPLATE;
$smarty->template_dir = "core/tpl/user/".$template;
$smarty->compile_id = $template;
if (CONF_SMARTY_FORCE_COMPILE) $smarty->force_compile = true;
define('TPL', $template);
...

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#107 Den

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 117 сообщений
Репутация: 0
Начинающий

Отправлено 18 May 2015 - 07:54 PM

Начало filter.php:

Badisoft, очень признателен за оперативный ответ, попробовал заменить:
<?php
require ( "core/smarty/smarty.class.php" );
$smarty = new Smarty;
$smarty->template_dir = "core/tpl/user/".CONF_DEFAULT_TEMPLATE;
if (CONF_SMARTY_FORCE_COMPILE) $smarty->force_compile = true;
define('TPL', CONF_DEFAULT_TEMPLATE);
на
<?php
require ( "core/smarty/smarty.class.php" );
$smarty = new Smarty;
$template = isset($_SESSION["CUSTOM_DESIGN"])?$_SESSION["CUSTOM_DESIGN"]:CONF_DEFAULT_TEMPLATE;
$smarty->template_dir = "core/tpl/user/".$template;
$smarty->compile_id = $template;
if (CONF_SMARTY_FORCE_COMPILE) $smarty->force_compile = true;
define('TPL', $template);
Но ничего не изменилось :( А у вас работает? Кстати, filter.tpl.html тоже смотрю берет из дефолтного шаблона...
  • 0

#108 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 May 2015 - 08:19 PM

Но ничего не изменилось :( А у вас работает?

Не могу проверить. Я давно заменил этот модуль на ручной выбор шаблона, где для каждого шаблона отдельно настраиваются "Общие настройки" и "Управление блоками". Надобность в мобильном выборе отпала, т.к. основным шаблоном делаю шаблон на bootstrap. Там это работает, т.е. код именно оттуда.

Штатно (поскольку задача не вставала) filter.php использует обычный template_dir, дефолтовый. И compile_id="". Надо изменить template_dir в зависимости от выбранного текущего темплейта, мобильного или нет. А также изменить либо compile_dir (чтобы разные шаблоны компилились в разные каталоги), либо compile_id, чтобы у разных шаблонов были разные имена ОТКОМПИЛИРОВАННЫХ файлов. Что, собственно, в этом исправлении и сделано.

PS. Мне очень странно, что эта правка не работает. Ведь в модуле смены мобильного/обычного темплейта используется та же самая $_SESSION["CUSTOM_DESIGN"].

Кстати, filter.tpl.html тоже смотрю берет из дефолтного шаблона...

Без переделок так и должен. Он ВСЕ шаблоны берет из дефолтного. Точнее, из заданного в "Общих настройках". Ведь в filter.php задано

smarty->template_dir = "core/tpl/user/".CONF_DEFAULT_TEMPLATE;

т.е. брать шаблоны из подкаталога, заданного в CONF_DEFAULT_TEMPLATE, а это выбор шаблона в "Общих настройках". А вот после переделки - думаю, очевидно, что должно быть и откуда берется template_dir.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#109 Den

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 117 сообщений
Репутация: 0
Начинающий

Отправлено 19 May 2015 - 11:31 AM

Надо изменить template_dir в зависимости от выбранного текущего темплейта, мобильного или нет.
....
Мне очень странно, что эта правка не работает. Ведь в модуле смены мобильного/обычного темплейта используется та же самая $_SESSION["CUSTOM_DESIGN"].

Немного не понимаю логику работы выбора шаблона в filter.php... В index.php вижу такую конструкцию:
if ($_SESSION['mobile_template'])
  {
  $smarty->template_dir = "core/tpl/user/".CONF_MOBILE_TEMPLATE;
  define('TPL', CONF_MOBILE_TEMPLATE);
  }
  elseif (isset($_SESSION["CUSTOM_DESIGN"]))
  {
	  $smarty->template_dir = "core/tpl/user/".$_SESSION["CUSTOM_DESIGN"];
	  define('TPL', $_SESSION["CUSTOM_DESIGN"]);
  }
  else
  {
	  $smarty->template_dir = "core/tpl/user/".CONF_DEFAULT_TEMPLATE;
	  define('TPL', CONF_DEFAULT_TEMPLATE);
  }
- здесь в зависимости от сессии, если я правильно понимаю, выбирается мобильный шаблон, выбранный пользователем или заданный в админке. А в модифицированном filter.php:
$template = isset($_SESSION["CUSTOM_DESIGN"])?$_SESSION["CUSTOM_DESIGN"]:CONF_DEFAULT_TEMPLATE;
$smarty->template_dir = "core/tpl/user/".$template;
$smarty->compile_id = $template;
вижу только что вводится доп. переменная $template, а логики выбора нужного шаблона в зависимости от сессии не вижу. Неужели этого кода достаточно?
  • 0

#110 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 19 May 2015 - 12:58 PM

Значит, в мобильном темплейте мной использовалась не $_SESSION["CUSTOM_DESIGN"], а отдельная сеттинг-константа. Т.е. в index.php строка будет такой:

$template = $_SESSION["mobile_template"]?CONF_MOBILE_TEMPLATE:CONF_DEFAULT_TEMPLATE;

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#111 Den

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 117 сообщений
Репутация: 0
Начинающий

Отправлено 20 May 2015 - 10:10 AM

Спасибо, Badisoft!!! Теперь шаблоны используются корректные.

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

заменить:
$smarty->template_dir = "core/tpl/user/".CONF_DEFAULT_TEMPLATE;
if (CONF_SMARTY_FORCE_COMPILE) $smarty->force_compile = true;
define('TPL', CONF_DEFAULT_TEMPLATE);
на:
$template = $_SESSION["mobile_template"]?CONF_MOBILE_TEMPLATE:CONF_DEFAULT_TEMPLATE;
$smarty->template_dir = "core/tpl/user/".$template;
$smarty->compile_id = $template;
if (CONF_SMARTY_FORCE_COMPILE) $smarty->force_compile = true;
define('TPL', $template);

  • 0

#112 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 23 May 2015 - 10:30 PM

Поставил этот фильтр на 3.1.3 в результате выбор диапазона цен с помощью ползунков работает некорректно: плавное передвижение ползунка захватом мышкой не работает, а по клику на полосе диапазона работает. Помогите исправить, кто ставил на этот шаблон.
  • 0

#113 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 23 May 2015 - 10:46 PM

http://new.badisoft....osnye-stantsii/ - работает? :)
Насколько я помню, эту проблему я лечил заменой версии jquery на более старую.
Штатно в шаблоне от 3.1.3 стоит jquery 1.11.1, на сайте стоит 1.7
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#114 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 23 May 2015 - 11:03 PM

Спасибо, теперь все в порядке.
  • 0

#115 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 24 May 2015 - 09:35 PM

Как можно в шаблоне от 3.1.3 на bootstrap реализовать сортировку в форме выпадающего селектора, предложенную здесь в результатах этого фильтра, чтобы она была на том же месте, что и при обычном просмотре? Как перенести из фильтра в каталог я нашел в этой ветке, но как выполнить в том же виде с иконками, не получается, поскольку на самом деле это не select, а button с выпадающим меню, а фильтр передает параметры сортировки через select.value.

P.S. Чтобы пагинацию в результатах работы фильтра привести к 3.1.3, нужно в файле filter.php
заменить это:
if ($prdcount > $prdPerPage)
	{
	$nav = (($start > 0)?"<span class='filterhref' onclick='go2page(".max($start-$prdPerPage,0).");":"<span style='color:grey")."'>&lt;&lt; пред</span> &nbsp";
	$n = 1;
	$nav_pages = 20;
	$nav_start = min(max(1,$start/$prdPerPage-$nav_pages/2+1),$pagecount-$nav_pages);
	for ($i=0; $i<$prdcount; $i+=$prdPerPage)
		{
		if ($n >= $nav_start && $n <= $nav_start+$nav_pages)
			$nav .= (($i==$start)?("<b>$n</b>")<img src='http://vsupport.club/public/style_emoticons/<#EMO_DIR#>/sad.png' class='bbc_emoticon' alt=':(' />"<span class='filterhref' onclick='go2page($i)'>$n</span>"))." &nbsp";
		$n++;
		$lastOffset = $i;
		}
	$nav .= (($start < $lastOffset)?"<span class='filterhref' onclick='go2page(".min($start+$prdPerPage,$prdcount).");":"<span style='color:grey")."'>след &gt;&gt;</span>";
	}

на это:
if ($prdcount > $prdPerPage)
	{
	 $nav = "<div class='row'><div class='pull-left' style='margin-left:20px;'><ul class='pagination' style='margin: 0'>";	
  if ($start > 0) $nav .= "<li><a href='#' onclick='go2page(".max($start-$prdPerPage,0).")'>&lt;&lt; пред</a></li>";
  $n = 1;
	 $nav_pages = 20;
	 $nav_start = min(max(1,$start/$prdPerPage-$nav_pages/2+1),$pagecount-$nav_pages);
	 for ($i=0; $i<$prdcount; $i+=$prdPerPage)
		 {
		  if ($n >= $nav_start && $n <= $nav_start+$nav_pages)
		  $nav .= (($i==$start)?("<li class='active'><a href='#'>$n</a></li>")<img src='http://vsupport.club/public/style_emoticons/<#EMO_DIR#>/sad.png' class='bbc_emoticon' alt=':(' />"<li><a href='#' onclick='go2page($i)'>$n</a></li>"));
		  $n++;
		  $lastOffset = $i;
		 }
	 if ($start < $lastOffset) $nav .= "<li><a href='#' onclick='go2page(".min($start+$prdPerPage,$prdcount).")'>след &gt;&gt;</a></li>";
	 $nav .= "</ul></div></div>";	
}

  • 0

#116 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 25 May 2015 - 09:56 PM

Как можно в шаблоне от 3.1.3 на bootstrap реализовать сортировку в форме выпадающего селектора, предложенную здесь в результатах этого фильтра, чтобы она была на том же месте, что и при обычном просмотре? Как перенести из фильтра в каталог я нашел в этой ветке, но как выполнить в том же виде с иконками, не получается, поскольку на самом деле это не select, а button с выпадающим меню, а фильтр передает параметры сортировки через select.value.

Честно говоря, не понял, в чем проблема. Какая разница, как делать - через селект или через баттон, - если значение сортировки находится в

<input type="hidden" name="sort" id="sort" value="{$smarty.const.CONF_DEFAULT_SORT_ORDER}">

,а меняется косвенно JS-функцией sortSubmit(select) по onchange.
В случае с селектом в эту функцию передается аргументом весь селект, из которого потом используется select.value.
Передавайте по onclick в эту функцию желаемое, а затем используйте внутри функции для изменения вышеуказанного инпута.

PS. http://new.badisoft....-myaso-kolbasa/ - совершенно ничего сложного.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#117 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 25 May 2015 - 10:00 PM

PS. http://new.badisoft....-myaso-kolbasa/ - совершенно ничего сложного.


поделитесь пожалуйста как это сделать. Уже час бьюсь на этой "несложной" задачей.
  • 0

#118 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 25 May 2015 - 10:25 PM

поделитесь пожалуйста как это сделать. Уже час бьюсь на этой "несложной" задачей.

Э, нет.
Я потратил час на то, чтобы реализовать эту фишку (придумать, написать, отладить) вовсе не для того, чтобы подарить ее какому-то совершенно постороннему коммерческому сайту.
Идею решения я сказал.
А дальше либо разбирайтесь сами, это не сложно, либо платите.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#119 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 25 May 2015 - 10:28 PM

поделитесь пожалуйста как это сделать. Уже час бьюсь на этой "несложной" задачей.

Э, нет.
Я потратил час на то, чтобы реализовать эту фишку (придумать, написать, отладить) вовсе не для того, чтобы подарить ее какому-то совершенно постороннему коммерческому сайту.
Идею решения я сказал.
А дальше либо разбирайтесь сами, это не сложно, либо платите.


Спасибо за фильтр и за подсказки. Все получилось.
  • 0

#120 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 01 June 2015 - 03:02 PM

В дополнительных характеристиках товаров есть Производитель. На главной странице есть список производителей с картинками. Возможно ли по клику на картинку производителя отфильтровать этим фильтром товары по производителю? . Т.е. чтобы по ссылке соответственно в фильтре отображались галочки напротив производителя.
  • 0