Компоненты Поиск
Реализация независимых друг от друга поисковиков
Каким образом можно осуществить такое?
Но т.к. родной настройки нет, взял это слово в кавычки.
Скорее всего, "настроить" можно в шаблоне модуля скрыв и выставив нужные input name в состояние checked.
Пробовал уже… Добавил в код условие, чтоб поставился чек только на нужное (здесь это "3D-модели"):Скорее всего, "настроить" можно в шаблоне модуля скрыв и выставив нужные input name в состояние checked.
<div class="search_select_component"> <label id="l_{$enable_component.link}" class="selected"> <input name="from_component[]" onclick="toggleInput('l_{$enable_component.link}')" type="checkbox" value="{$enable_component.link}" {if $enable_component.title=="3D-Модели"} checked="checked"{/if}/> {$enable_component.title} </label> {/foreach} </div>
Ну чтож… правим компонент… Код для поиска по компоненту "3D-Модели":
{if $col==1} <tr> {/if} <td width=""> {$enable_component.title} </label> </td> {if $col==5} </tr> {assign var="col" value="1"} {else} {math equation="x + 1" x=$col assign="col"} {/if} {/foreach}
Пример для фотогалереи:
<input name="from_component[]" type="checkbox" value="photos" checked="checked">
<input name="from_component[]" type="checkbox" value="content" checked="checked">
Каждый из модулей выводится только в нужном компоненте и ищет только в нужной части.
Вопрос в другом… После поиска он перенаправляет с модуля на компонент.. Я вот думаю, может быть как-то, при переходе от модуля к результатам поиска, передать поисковому компоненту переменную со значением value выбранного чекбокса? Ведь модуль передает компоненту слово! Значит, это возможно! Но как?
Т.к. я почти полный нуб в пхп и в архитектуре инстанта, я не могу понять как можно обмениваться переменными…
Так вроде то что я написал это и делает.Я вот думаю, может быть как-то, при переходе от модуля к результатам поиска, передать поисковому компоненту переменную со значением value выбранного чекбокса? Ведь модуль передает компоненту слово! Значит, это возможно! Но как?
Т.е. после нажатия в модуле на кнопку "найти". В компоненте поиска выдается результат по тому компоненту, где был указан чекбокс. И в настройках для повторного поиска чекбоксы стоят так как ему и передал модуль
Проверил на первом примере — после поиска по альбомам. Чекбокс с результате поиска стоял только на фото, остальные отключены.
Решение получилось следующее:
Компонент поиска править не пришлось… Скопирован модуль module.tpl…
Две его копии названы module_search_content.tpl и module_search_catalog.tpl…
В файлах, вместо {$mod.body} добавлен код из mod_search.tpl.
Код:
<label id="l_{$enable_component.link}" class="selected"> <input name="from_component[]" onclick="toggleInput('l_{$enable_component.link}')" type="checkbox" value="{$enable_component.link}" checked="checked" /> {$enable_component.title} </label> {/foreach}
<label id="l_content" class="selected" style="display:none;"><input name="from_component[]" type="checkbox" value="content" checked="checked">Статьи</label>
<label id="l_catalog" class="selected" style="display:none;"><input name="from_component[]" type="checkbox" value="catalog" checked="checked">Статьи</label>
Все… готово… как и требовалось, появились два независимых поисковика… так-же можно сделать третий, четвертый, сколько нужно..
Спасибо большое за поддержку!