Тег advanced search form

Используя тег advanced search form вы можете создать детальную форму поиска, с помощью которой ваши пользователи могут выполнить "расширенный поиск", для поиска необходимой информации. Например:

{exp:search:advanced_form result_page="search/results"}

<table cellpadding='4' cellspacing='6' border='0' width='100%'>
<tr>
<td>

<fieldset class="fieldset">
<legend>{lang:search_by_keyword}</legend>

<input type="text" class="input" maxlength="100" size="40" name="keywords" style="width:100%;" />

<div class="default">
<select name="search_in">
<option value="titles" selected="selected">{lang:search_in_titles}</option>
<option value="entries">{lang:search_in_entries}</option>
<option value="everywhere" >{lang:search_everywhere}</option>
</select>
</div>

<div class="default">
<select name="where">
<option value="exact" selected="selected">{lang:exact_phrase_match}</option>
<option value="any">{lang:search_any_words}</option>
<option value="all" >{lang:search_all_words}</option>
<option value="word" >{lang:search_exact_word}</option>
</select>
</div>

</fieldset>

</td><td>

<fieldset class="fieldset">
<legend>{lang:search_by_member_name}</legend>

<input type="text" class="input" maxlength="100" size="40" name="member_name" style="width:100%;" />
<div class="default"><input type="checkbox" class="checkbox" name="exact_match" value="y" /> {lang:exact_name_match}</div>

</fieldset>

</td>
</tr>
</table>

<table cellpadding='4' cellspacing='6' border='0' width='100%'>
<tr>
<td valign="top" width="50%">

<table cellpadding='0' cellspacing='0' border='0'>
<tr>
<td valign="top">

<div class="defaultBold">{lang:weblogs}</div>

<select id="weblog_id" name='weblog_id[]' class='multiselect' size='12' multiple='multiple' onchange='changemenu(this.selectedIndex);'>
{weblog_names}
</select>

</td>
<td valign="top" width="16">&nbsp;</td>
<td valign="top">

<div class="defaultBold">{lang:categories}</div>

<select name='cat_id[]' size='12' class='multiselect' multiple='multiple'>
<option value='all' selected="selected">{lang:any_category}</option>
</select>

</td>
</tr>
</table>

</td>
<td valign="top" width="50%">

<fieldset class="fieldset">
<legend>{lang:search_entries_from}</legend>

<select name="date" style="width:150px">
<option value="0" selected="selected">{lang:any_date}</option>
<option value="1" >{lang:today_and}</option>
<option value="7" >{lang:this_week_and}</option>
<option value="30" >{lang:one_month_ago_and}</option>
<option value="90" >{lang:three_months_ago_and}</option>
<option value="180" >{lang:six_months_ago_and}</option>
<option value="365" >{lang:one_year_ago_and}</option>
</select>

<div class="default">
<input type='radio' name='date_order' value='newer' class='radio' checked="checked" />&nbsp;{lang:newer}
<input type='radio' name='date_order' value='older' class='radio' />&nbsp;{lang:older}
</div>

</fieldset>

<div class="default"><br /></div>

<fieldset class="fieldset">
<legend>{lang:sort_results_by}</legend>

<select name="orderby">
<option value="date" >{lang:date}</option>
<option value="title" >{lang:title}</option>
<option value="most_comments" >{lang:most_comments}</option>
<option value="recent_comment" >{lang:recent_comment}</option>
</select>

<div class="default">
<input type='radio' name='sort_order' class="radio" value='desc' checked="checked" /> {lang:descending}
<input type='radio' name='sort_order' class="radio" value='asc' /> {lang:ascending}
</div>

</fieldset>

</td>
</tr>
</table>

<div class='searchSubmit'>
<input type='submit' value='Search' class='submit' />
</div>

{/exp:search:advanced_form}

Результаты поиска будут отображаться на странице, которую вы указали, как result_page=. Результаты поиска выводятся с помощью тега search results.

Параметры

category=

category="1"

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

Как и с некоторыми другими параметрами, вы можете передать несколько категорий:

category="1|3|7"

Или вы можете использовать "not", чтобы исключить некоторые категории

category="not 2|8"

Примечание: Если родительская категория будет исключена из множественного списка выбора, то ее дочерние категории отображаться не будут.

cat_style=

cat_style="nested"

С помощью этого параметра вы можете определить формат вывода категорий: вложенный иерархический (nested) или линейный (linearly). Доступны значения "nested" и "linear".

id=

id="search_form"

Укажите атрибут ID для тега <form>, с помощью которого вы можете легко поменять стиль формы.

name=

name="search_form"

Укажите атрибут name для тега <form>, с помощью которого вы можете легко определить стиль CSS и JavaScript для формы.

no_result_page=

no_result_page="search/noresults"

Вы можете указать отдельный шаблон, для вывода на экран сообщения о том, что нет никаких результатов. Шаблон необходимо указать в виде "Группа шаблонов/Шаблон".

result_page=

result_page="news/searches"

Группа шаблонов/Шаблон, где вы хотите отобразить результаты поиска. Если вы не указали этот параметр, то будет использоваться шаблон "search/results", который по умолчанию является шаблоном для вывода результатов поиска.

results=

results="20"

Количество результатов поиска, которые отображаются на одной странице.

show_expired=

show_expired="yes"

Используя этот параметр, вы можете указать, будет или нет выполняться поиск в просроченных записях. По умолчанию, записи с истекшим сроком не включаются в результаты поиска. Вы можете установить для этого параметра "yes" или "no".

Вы можете разрешить пользователям самостоятельно производить выбор, используя поле формы Include Expired Entries. Если вы изменяете поле формы, то вам необходимо убедиться, что вы оставили только следующий атрибут name="show_expired".

<label for="field_show_expired">Include Expired Entries?</label>
<select name="show_expired" id="field_show_expired">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>

show_future_entries=

show_future_entries="yes"

Используя этот параметр, вы можете указать, будут или нет, включены в результаты поиска записи с будущей датой. По умолчанию записи с будущей датой не включаются в результаты поиска. Вы можете установить для этого параметра "yes" или "no".

Вы можете разрешить пользователям самостоятельно производить выбор, используя поле формы Include Future Entries. Если вы изменяете поле формы, то вам необходимо убедиться, что вы оставили только следующий атрибут name="show_future_entries".

<label for="field_show_future_entries">Include Future Entries?</label>
<select name="show_future_entries" id="field_show_future_entries">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>

status=

status="open"

Вы можете ограничить результаты поиска отдельным статусом. Вы можете указать несколько статусов, разделяя их символом ("|"):

status="draft|reviewed|published"

Или исключите некоторые статусы, используя "not"

status="not submitted|processing|closed"

weblog=

weblog="which"

Укажите раздел, в котором будет выполняться поиск записей. Дополнительно, вы можете использовать символ ("|"), для разделения нескольких разделов:

weblog="weblog1|weblog2|weblog3"

Или вы можете добавить слово "not" (с пробелом после него), для исключения разделов:

weblog="not weblog1|weblog2|weblog3"

Переменные

Полное обсуждение доступных переменных в данном руководстве практически невозможно, существует большая взаимозависимость между различными полями формы, переменными, и функциями javascript. Для изменения поведения поиска могут использоваться параметры. Если вы желаете непосредственно изменить форму поиска, просто используйте форму по умолчанию как основу и начинайте модернизацию с нее.

Наверх страницы