==b-search.input

===Описание
Обязательный элемент поисковой формы, представляет собой поле для ввода запроса.

{{TOC}}

===XML-формат
%%(html)
<lego:b-search>
    <lego:input>
        <!-- необязательные вложенные элементы: -->
        <lego:sample/> <!-- поисковые подсказки -->
        <lego:precise/> <!-- уточняющие чекбоксы -->
        <lego:b-suggest/> <!-- саджест -->
    </lego:input>
    ...
</lego:b-search>
%%

===Кастомизация средствами XML
Элементам ##lego:input## можно задать атрибуты ##id##, ##class## и ##name##:
%%(html)
<lego:b-search>
    <lego:input id="search" class="search-input" name="search"/>
    ...
%%
(можно также задать и ##value##, но это не имеет особого смысла и проще делать это динамически xsl'ем, см. ниже)

В случае, когда ##lego:input## один, можно не указывать ##name##, в этом случае будет использоваться дефолтное значение, определенное вот так:
%%(html)
<xsl:variable name="lego:b-search-default-input-name" select="'text'"/>
%%

Если же форма имеет два поля ввода, у каждого ##lego:input##'а должен быть задан атрибут ##name## -- он используется для передачи параметров.

===Передача параметров для ##lego:input## и его вложенных элементов
Параметры передаются через ##lego:params## примерно в таком же виде, как и исходный xml.
В случае "двойной" формы (##lego:type="double"##) каждому ##lego:input## в xml'е соответствует свой ##lego:input## в параметрах. Соответствие устанавливается посредством атрибута ##name##.
%%(html)
<xsl:template match="/" mode="lego:params">
    ...
    <lego:b-search>
        <lego:input name="who"> <!-- в случае одного инпута атрибут name необязателен -->
            <lego:value>кого-то искали</lego:value>
            <lego:sample>кто-то интересный</lego:sample>
            ...
        </lego:input>
        <!-- "двойная форма" -->
        <!--
        <lego:input name="what">
            <lego:value>что-то искали</lego:value>
            <lego:sample>что-то интересное</lego:sample>
            ...
        </lego:input>
        -->
    </lego:b-search>
</xsl:template>
%%

====Метки
Метки в виде серого текста, расположенного над инпутом и пропадающего при нажатии на поле ввода, задаются следующим образом:
%%(html)
<xsl:template match="/" mode="lego:params">
    <lego:b-search>
        <lego:input>
            <lego:hint>
                <lego:b-hint-input>поиск</lego:b-hint-input>
            </lego:hint>
        </lego:input>
        ...
    </lego:b-search>
%%
((../../b-hint-input/b-hint-input.wiki Подробнее про b-hint-input))

====Метки в "двойных" формах
Метки-подписи, расположенные слева от полей ввода, задаются через ##lego:params## следующим образом:
%%(html)
<xsl:template match="/" mode="lego:params">
<lego:b-search>
    <lego:input name="who">
        <lego:label>Кто:</lego:label>
    </lego:input>
    <lego:input name="what">
        <lego:label>Что:</lego:label>
    </lego:input>
    ...
%%

====Значение (поисковый запрос)
Задается аналогично меткам. Если ##lego:input## один и для него не задан атрибут ##name##:
%%(html)
<xsl:template match="/" mode="lego:params">
<lego:b-search>
    <lego:input name="who"> <!-- в случае одного инпута атрибут name необязателен -->
        <lego:value>кого-то искали</lego:value>
    </lego:input>
    <!-- "двойная форма" -->
    <!--
    <lego:input name="what">
        <lego:value>что-то искали</lego:value>
    </lego:input>
    -->
    ...
%%

====Поисковые подсказки, уточняющие чекбоксы и т.д.
Все эти параметры группируются аналогично. Конкретный формат параметров см. в соответствующих разделах.
%%(html)
<xsl:template match="/" mode="lego:params">
<lego:b-search>
    <lego:input name="who">
        <lego:sample>кто-то интересный<lego:sample>
        <lego:precise>...</lego:precise>
    </lego:input>
    <lego:input name="what">
        <lego:sample>что-то интересное<lego:sample>
    </lego:input>
    ...
%%

