Логотип

Документация по макросам и шаблонам UMI.CMS

Пример использования

$data = $this->macros('search', 'insert_form');

Не возвращает практически никаких полезных данных для построения формы поиска в данном шаблонизаторе. Форму поиска нужно реализовывать самостоятельно.

В XSLT-шаблонизаторе макрос выводит только строку предыдущего поиска (last_search_string), саму форму необходимо задать в шаблоне самостоятельно.

Пример вызова

udata://search/insert_form/

XML-ответ UData

<udata module="search" method="insert_form" generation-time="0.001417">
  <last_search_string>Поиск</last_search_string>
</udata>

Элементы и атрибуты

<last_search_string>

Предыдущий поисковый запрос.

При перенаправлении на страницу результатов поиска, в URL будет присутствовать параметр "?search_string=предыдущий_поисковый_запрос". Значение этого параметра будет в этом элементе.

Примеры использования

Мы можем вставить в том месте, где хотим вывести форму поиска инструкцию:

<xsl:apply-templates select="document('udata://search/insert_form')/udata" />

И описать шаблон с формой:

<xsl:template match="udata[@method = 'insert_form']">

  <form id="search" class="block" method="get" action="{$pre_lang}/search/search_do/">
    <input 
     type="text" 
     class="textinputs" 
     style="width:180px;"
     name="search_string"
     value="{last_search_string}"
     onfocus="javascript: if(this.value == '{last_search_string}') this.value = '';"
     onblur="javascript: if(this.value == '') this.value = '{last_search_string}';"/>
    <input type="submit" value="Искать"/>
  </form>

</xsl:template>

Способ определения переменной $pre_lang описан в примере использования макроса %system getLangsList%.

Вывод формы поиска осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода свойства будет использован шаблон по умолчанию — default.tpl.

Для определения языкового префикса служит макрос %pre_lang%.

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/search/.

Используемые блоки шаблона

search_form

Выводит форму поиска по сайту.

%last_search_string%

Выводит предыдущий поисковый запрос, если такой был.

Примеры использования

<?php

$FORMS = Array();

$FORMS['search_form'] = <<<END

 <form id="search" class="block" method="get" action="%pre_lang%/search/search_do/">
  <input 
   type="text" 
   class="textinputs" 
   style="width:180px;"
   name="search_string"
   value="%last_search_string%"
   onfocus="javascript: if(this.value == '%last_search_string%') this.value = '';"
   onblur="javascript: if(this.value == '') { this.value = '%last_search_string%';}"/>
  <input type="submit" value="Искать"/>
 </form>

END;

?>

Название

%search insert_form()% — Выводит форму поиска по сайту.

Параметры: search insert_form([template = 'default'])

template

Имя шаблона, по которому следует вывести форму поиска.В XSLT-шаблонизаторе игнорируется.

Описание

Макрос отвечает за форму поиска по сайту.

Обратите внимание, что форма должна иметь атрибут action равный языковой_префикс/search/search_do/ и method get. Название тега input, который передает поисковый запрос должно быть равно «search_string».

Дополнительные сведения