Искать  
 
   
 
модуль Super Search - динамическое выделение чекбоксов
Отправлено: 09 Август 2011 05:44 P.M.   [ Игнорировать ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2009-05-13

Кто-нибудь с опытом работы по данному модулю знает как заставить работать такую конструкцию?

{exp:channel:entries  channel="residential-houses" limit="1" dinamic="no" disable="category_fields|member_data|trackbacks|comments"}
             
<dt><strong>Тип жилой дом</strong></dt>
             <
dd>
               <
ul>
                 
{immo_type_house:all_options}
                   {super_search_immo_type_house_array}
                     
<li><?php $nval='{option_name}'?><input name="immo_type_house[]" class="checkbox" type="checkbox" value="{option_name}" {if super_search_immo_type_house_<?php echo $nval?>}checked=“checked”{/if}{option}</li>
                   
{/super_search_immo_type_house_array}
                 {
/immo_type_house:all_options}
               
</ul>
             </
dd>
             
{/exp:channel:entries} 

Нужно, чтобы последние параметры поиска сохранялись. Непонятно почему, если сделать константой, например, $nval=‘2’, то все пункты выделяются, а если задавать {option_name}, то ничего не происходит...

Можно конечно делать как-то так для каждого пункта:

<li><input name="immo_type_house[]" class="checkbox" type="checkbox" value="1" {if super_search_immo_type_house_1}checked=“checked”{/if}{option}</li>
<
li><input name="immo_type_house[]" class="checkbox" type="checkbox" value="2" {if super_search_immo_type_house_2}checked=“checked”{/if}{option}</li>
... 

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

Профиль
 
 
Отправлено: 11 Август 2011 12:30 A.M.   [ Игнорировать ]   [ # 1 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  645
Зарегистрирован  2009-04-11

может

<li><input name="immo_type_house[]" class="checkbox" type="checkbox" value="1" {if super_search_immo_type_house_1 == "1"}checked=“checked”{/if}{option}</li
 Подпись 

Няшка, программист, фотограф, подкастер, блоггер и CEO студии FDCore Studio

Профиль
 
 
Отправлено: 11 Август 2011 10:39 A.M.   [ Игнорировать ]   [ # 2 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2009-05-13

NetSoul, нет, super_search_immo_type_house_1 == “1” не проходит. Для этого нужно использовать super_search_immo_type_house == “1”. Но в том то и дело, что у меня в immo_type_house передается не просто одно значение, а строка. Например, 1+2+3+22 и т.п. Мне нужно определить есть ли конкретный параметр в данной строке или нет.

Я не могу понять почему когда я делаю так $nval=2, то вышеприведенная конструкция работает (но естественно выделяются все чекбоксы), а если $nval={option_name}, то никаких результатов в {if super_search_immo_type_house_<?php echo $nval; ?>}checked=“checked”{/if} не замечаю.

Профиль
 
 
Отправлено: 11 Август 2011 05:09 P.M.   [ Игнорировать ]   [ # 3 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  645
Зарегистрирован  2009-04-11

к сожалению я ничо не понял :-(

 Подпись 

Няшка, программист, фотограф, подкастер, блоггер и CEO студии FDCore Studio

Профиль
 
 
Отправлено: 11 Август 2011 07:41 P.M.   [ Игнорировать ]   [ # 4 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
{if super_search_immo_type_house_{option_name} == option_name}checked=“checked”{/if} 

а так будет работать?

Профиль
 
 
Отправлено: 11 Август 2011 07:53 P.M.   [ Игнорировать ]   [ # 5 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2009-05-13

и так не работает((
В принципе вот что я пытаюсь безуспешно использовать http://www.solspace.com/docs/detail/super_search_search/#super_search_field_name_array

Вот это должно по идее работать, но не работает.

<?php $nval='{option_name}'?><input name="immo_type_house[]" class="checkbox" type="checkbox" value="{option_name}" {if super_search_immo_type_house_<?php echo $nval?>}checked=“checked”{/if} 

Повторюсь, почему-то когда задаю константу вместо этого

<?php $nval='{option_name}'?> 
например, вот это
<?php $nval='1'?> 

, тогда работает.
То-есть при наличии в параметрах запроса “1”-цы ../search-results/search&immo_type_house=1+2+3+22/ - нескольких выбранных полей (где 1, 2, 3, 22 - option_name) все поля выделяются. А вот когда пытаюсь динамически подставить {option_name}, чтобы выделялись только те что были выбраны, то не фурычит...

Профиль
 
 
Отправлено: 11 Август 2011 08:47 P.M.   [ Игнорировать ]   [ # 6 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20

Artics, возможно у вас настройка php на input, тогда здесь:

<?php $nval='{option_name}'?> 

вы пытаетесь присвоить переменной несуществующее значение,
так как по условиям очередности парсинга шаблона, теги
модулей и плагинов обрабатываются гораздо позднее php-input.

Профиль
 
 
Отправлено: 11 Август 2011 09:25 P.M.   [ Игнорировать ]   [ # 7 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2009-05-13
Afgan - 11 Август 2011 08:47 P.M.

вы пытаетесь присвоить переменной несуществующее значение,
так как по условиям очередности парсинга шаблона, теги
модулей и плагинов обрабатываются гораздо позднее php-input.

Попытка поставить php-output тоже ничего не дала((

Профиль
 
 
Отправлено: 11 Август 2011 10:34 P.M.   [ Игнорировать ]   [ # 8 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20

Ну, а могло-ли быть иначе, если обработка условия {if}{/if}
производится до выполнения php-output?

Ничего не напоминает ситуация?

Попробуйте заменить:

{if super_search_immo_type_house_<?php echo $nval?>}checked=“checked”{/if} 

на

<?php if ('super_search_immo_type_house_{option_name}'{echo 'checked="checked"';} ?> 
Профиль
 
 
Отправлено: 12 Август 2011 11:32 A.M.   [ Игнорировать ]   [ # 9 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2009-05-13
Afgan - 11 Август 2011 10:34 P.M.

Попробуйте заменить:

{if super_search_immo_type_house_<?php echo $nval?>}checked=“checked”{/if} 

на

<?php if ('super_search_immo_type_house_{option_name}'{echo 'checked="checked"';} ?> 

Попробовал, также испробовал разные комбинации такого выражения, но увы ничего не работает (то есть не перебирает значения из {option_name}, а выделяет все чекбоксы подряд) ... Я вижу проблему в том, что сама переменная {super_search_FIELD_NAME_1} явным образом ничего не возвращает. Я имею ввиду TRUE/FALSE. Как я понимаю, это работает как функция, которая разбирает массив параметров и сообщает, есть там значение (например _1 или _green) или нет.


P.S. Странно, но поиски на оф. форуме не увенчались успехом. Неужели никто не сталкивается с такой проблемой? Или я что-то упустил? Если честно, то уже пару недель ищу выход, чтобы не писать левый разбор этой переменной, но ничего не получается.

Профиль
 
 
Отправлено: 12 Август 2011 02:10 P.M.   [ Игнорировать ]   [ # 10 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20

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

Проверить это можно вставив переменную в тело итератора:

<li>...  {super_search_immo_type_house_1}</li
Профиль
 
 
Отправлено: 12 Август 2011 05:16 P.M.   [ Игнорировать ]   [ # 11 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2009-05-13

В итоге сделал так (привожу полный код):

{exp:channel:entries  channel="residential-houses" limit="1" dinamic="no" disable="category_fields|member_data|trackbacks|comments"}

<?php $srchstr 
"{super_search_immo_type_house}"?>

               
<ul>
                 
{immo_type_house:all_options}
                   {super_search_immo_type_house_array}
                     {if 
"{option_name}"!=""}<li><input name="immo_type_house[]" class="checkbox" type="checkbox" value="{option_name}" <?php if (in_array('{option_name}'explode(' ',$srchstr))) echo 'checked="checked"'?> {option}</li>{/if}
                   {
/super_search_immo_type_house_array}
                 {
/immo_type_house:all_options}
               
</ul>

{/exp:channel:entries} 

Также, обязательно поставить обработку php на output.
Использую поле P&T.

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

Профиль
 
 
Отправлено: 19 Сентябрь 2016 04:09 P.M.   [ Игнорировать ]   [ # 12 ]
Новичок
Rank
Всего сообщений:  2
Зарегистрирован  2016-07-29

Добрый день
Прошу помочь модуль Super Search
Не могу добиться поиска по полям
Поле {plo} площадь
Код  в форме
  <input type=“hidden” id=“ploFrom” name=“plo-from” >
      <input type=“hidden” id=“ploTo” name=“plo-to” >
              <input type=‘radio’ class=“check” id=‘ad-plo1’ name=‘plo’ value=’’ data-plostart=“0” data-ploend=“100”> <label for=‘ad-plo1’><span></span>до 100 м²</label>
              <input type=‘radio’ class=“check” id=‘ad-plo2’ name=‘plo’ value=’’ data-plostart=“101” data-ploend=“200”> <label for=‘ad-plo2’><span></span>100-200 м²</label>
              <input type=‘radio’ class=“check” id=‘ad-plo3’ name=‘plo’ value=’’ data-plostart=“201” data-ploend=“99999”> <label for=‘ad-plo3’><span></span>от 200 м²</label>
              [removed]
                    $(document).ready( function(){
                    $(“input[id^=‘ad-plo’]”).click(function(){
                      $(”#ploFrom”).val($(this).data(“plostart”));
                      $(”#ploTo”).val($(this).data(“ploend”));
                    });
                    });
          [removed]


Адресная строка http://.ru/search/search&plo-from=0&plo-to=100&orderby=plo+asc
Помогите разобраться.

Профиль