1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-02 22:45:02 +03:00

Оптимизация форм поиска

This commit is contained in:
Denis Shakhov 2013-06-03 00:02:54 +07:00
parent 3eaf4c9739
commit cae867499c
38 changed files with 403 additions and 174 deletions

View file

@ -2,16 +2,15 @@
<h2 class="page-header">{$aLang.blogs}</h2>
<form action="" method="POST" id="form-blogs-search" onsubmit="return false;" class="search search-item">
<input type="text" placeholder="{$aLang.blogs_search_title_hint}" autocomplete="off" name="blog_title" class="input-text" value="" onkeyup="ls.timer.run(ls.blog.searchBlogs,'blogs_search',['form-blogs-search'],1000);">
</form>
{include file='form.search.blogs.tpl'}
<div id="blogs-list-search" style="display:none;"></div>
<div id="blogs-list-original">
{if !$sBlogsRootPage}
{if ! $sBlogsRootPage}
{router page='blogs' assign=sBlogsRootPage}
{/if}
{include file='blog_list.tpl' bBlogsUseOrder=true sBlogsRootPage=$sBlogsRootPage}
{include file='paging.tpl' aPaging=$aPaging}
</div>

View file

@ -1,15 +1,5 @@
{include file='header.tpl' nav='people'}
<form action="" method="POST" id="form-users-search" onsubmit="return false;" class="search search-item">
<input id="search-user-login" type="text" placeholder="{$aLang.user_search_title_hint}" autocomplete="off" name="user_login" value="" class="input-text" onkeyup="ls.timer.run(ls.user.searchUsers,'users_search',['form-users-search'],1000);">
</form>
<ul id="user-prefix-filter" class="search-abc">
<li class="active"><a href="#" class="link-dotted" onclick="return ls.user.searchUsersByPrefix('',this);">{$aLang.user_search_filter_all}</a></li>
{foreach from=$aPrefixUser item=sPrefixUser}
<li><a href="#" class="link-dotted" onclick="return ls.user.searchUsersByPrefix('{$sPrefixUser}',this);">{$sPrefixUser}</a></li>
{/foreach}
</ul>
{include file='form.search.users.tpl'}
<div id="users-list-search" style="display:none;"></div>

View file

@ -2,15 +2,5 @@
<h2 class="page-header">{$aLang.search}</h2>
{hook run='search_begin'}
<form action="{router page='search'}topics/" class="search">
{hook run='search_form_begin'}
<input type="text" placeholder="{$aLang.search}" maxlength="255" name="q" class="input-text">
<input type="submit" value="" title="{$aLang.search_submit}" class="input-submit icon icon-search">
{hook run='search_form_end'}
</form>
{hook run='search_end'}
{include file='form.search.main.tpl'}
{include file='footer.tpl'}

View file

@ -1,17 +1,9 @@
{include file='header.tpl'}
<h2 class="page-header">{$aLang.search_results}</h2>
<form action="{router page='search'}topics/" class="search">
{hook run='search_form_begin'}
<input type="text" value="{$aReq.q|escape:'html'}" placeholder="{$aLang.search}" maxlength="255" name="q" class="input-text">
<input type="submit" value="" title="{$aLang.search_submit}" class="input-submit icon icon-search">
{hook run='search_form_end'}
</form>
{include file='form.search.main.tpl'}
{if $bIsResults}
<ul class="nav nav-pills">
@ -19,6 +11,7 @@
<li {if $aReq.sType == $sType}class="active"{/if}>
<a href="{router page='search'}{$sType}/?q={$aReq.q|escape:'html'}">
{$iCount}
{if $sType=="topics"}
{$aLang.search_results_count_topics}
{elseif $sType=="comments"}
@ -31,7 +24,6 @@
{/foreach}
</ul>
{if $aReq.sType == 'topics'}
{include file='topics/topic_list.tpl'}
{elseif $aReq.sType == 'comments'}
@ -44,5 +36,4 @@
{/if}
{include file='footer.tpl'}

View file

@ -1,10 +1,7 @@
{include file='header.tpl'}
<h2 class="page-header">{$aLang.block_tags_search}</h2>
<form action="" method="GET" class="js-tag-search-form search-tags">
<input type="text" name="tag" placeholder="{$aLang.block_tags_search}" value="{$sTag|escape:'html'}" class="input-text input-width-full autocomplete-tags js-tag-search" />
</form>
{include file='form.search.tags.tpl'}
{include file='topics/topic_list.tpl'}
{include file='footer.tpl'}

View file

@ -13,7 +13,12 @@
{if $oUserCurrent}
<small class="note">{$aLang.stream_settings_note_follow_user}</small>
<p><input type="text" id="activity-block-users-input" autocomplete="off" placeholder="{$aLang.stream_block_config_append}" class="autocomplete-users input-text input-width-full" /></p>
<div class="search-form">
<div class="search-form-search">
<input type="text" id="activity-block-users-input" autocomplete="off" placeholder="{$aLang.stream_block_config_append}" class="search-form-input autocomplete-users width-full" />
<div onclick="ls.stream.appendUser();" class="search-form-submit icon-search"></div>
</div>
</div>
{if $aStreamSubscribedUsers}
<ul id="activity-block-users" class="user-list-mini max-height-200 js-activity-block-users">

View file

@ -21,9 +21,7 @@
{/block}
{block name='block_content'}
<form action="" method="GET" class="js-tag-search-form search-tags">
<input type="text" name="tag" placeholder="{$aLang.block_tags_search}" value="" class="input-text input-width-full autocomplete-tags js-tag-search" />
</form>
{include file='form.search.tags.tpl'}
<div data-type="tab-content">
<div class="tab-pane" data-type="tab-pane" id="js-tab-pane-all" style="display: block">

View file

@ -14,7 +14,12 @@
<small class="note">{$aLang.userfeed_settings_note_follow_user}</small>
<div class="stream-settings-userlist">
<p><input type="text" id="userfeed-block-users-input" autocomplete="off" placeholder="{$aLang.userfeed_block_users_append}" class="autocomplete-users input-text input-width-full" /></p>
<div class="search-form">
<div class="search-form-search">
<input type="text" id="userfeed-block-users-input" autocomplete="off" placeholder="{$aLang.userfeed_block_users_append}" class="search-form-input autocomplete-users width-full" />
<div onclick="ls.userfeed.appendUser();" class="search-form-submit icon-search"></div>
</div>
</div>
{if count($aUserfeedSubscribedUsers)}
<ul id="userfeed-block-users" class="user-list-mini max-height-200 js-userfeed-block-users">

View file

@ -11,6 +11,7 @@
.block .text { font-size: 13px; line-height: 18px; }
.block .max-height-200 { overflow: auto; max-height: 200px; position: relative; }
.block .loading { min-height: 100px; background-image: url(../images/loader.gif); background-position: 50% 45px; }
.block .search-form { padding: 0; margin-bottom: 20px; }
/* Header */
.block-header { padding: 13px 15px; background: #f5f5f5; border-top: 1px solid #eee; position: relative; }

View file

@ -64,24 +64,6 @@
/* Поиск
---------------------------------------------------- */
.search { width: 200px; margin-bottom: 20px; position: relative; }
.search .input-text { width: 200px; padding-right: 25px; }
.search .input-submit { border: none; width: 16px; height: 16px; position: absolute; top: 6px; right: 5px; opacity: .7; filter: alpha(opacity=70); }
.search .input-submit:hover { opacity: 1; filter: alpha(opacity=100); }
.search.search-item { margin-bottom: 15px; width: 100%; }
.search.search-item .input-text { width: 100%; padding-right: 5px; }
.search-abc { overflow: hidden; zoom: 1; padding: 10px 15px; background: #fafafa; margin-bottom: 15px; }
.search-abc li { float: left; margin-right: 10px; }
.search-abc li.active a { color: #333; border: none; }
.search-tags { margin-bottom: 15px; }
/* Облако тегов
---------------------------------------------------- */
.tag-cloud { width: 100%; }

View file

@ -46,4 +46,21 @@
.editor-help-item { margin-bottom: 20px; }
.editor-help-item:last-child { margin-bottom: 0; }
.editor-help-item h4 { font-family: monospace; font-weight: bold; margin-bottom: 3px; }
.editor-help-item h4 { font-family: monospace; font-weight: bold; margin-bottom: 3px; }
/**
* Форма поиска
*
* @file forms/form.search.base.tpl
*/
.search-form { padding: 15px; margin-bottom: 20px; background: #f7f7f7; }
.search-form-search { position: relative; }
.search-form-input[type="text"] { padding-right: 30px; }
.search-form-submit { border: none; position: absolute; top: 7px; right: 7px; cursor: pointer; opacity: .7; filter: alpha(opacity=70); }
.search-form-submit:hover { opacity: 1; filter: alpha(opacity=100); }
.search-form-alphabet { margin-top: 10px; overflow: hidden; }
.search-form-alphabet li { float: left; margin-right: 10px; }
.search-form-alphabet li.active a { color: #333; border: none; }

View file

@ -23,7 +23,7 @@
background: linear-gradient(top, #ffffff 0%,#f3f3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f3f3f3',GradientType=0 );
}
#userbar .search { float: right; margin: 5px 5px 0 6px; *margin: 4px 0 0 4px; }
#userbar .search-form { float: right; width: 200px; position: relative; margin: 5px 5px 0 5px; padding: 0; }
.nav.nav-userbar { float: left; }
.nav.nav-userbar li { border-right: 1px solid #eaeaea; }

View file

@ -0,0 +1,54 @@
{**
* Базовый шаблоны формы поиска
*
* bNoSubmitButton Не показывать кнопку Искать
*
* @styles css/forms.css
*}
{block name='search_before'}{/block}
<form action="{block name='search_action'}{/block}"
method="{block name='search_method'}get{/block}"
class="search-form search-form-type-{block name='search_type'}default{/block} {block name='search_classes'}{/block}"
{block name='search_attributes'}{/block}>
{block name='search_begin'}{/block}
{block name='search_input'}
<div class="search-form-search">
<input type="text"
class="search-form-input width-full {block name='search_input_classes'}{/block}"
name="{block name='search_input_name'}q{/block}"
value="{block name='search_input_value'}{$aReq.q|escape:'html'}{/block}"
autocomplete="off"
placeholder="{block name='search_input_placeholder'}{$aLang.search}{/block}"
{block name='search_input_attributes'}{/block}>
{if ! $bNoSubmitButton}
<input type="submit"
value="{block name='search_submit_value'}{/block}"
title="{block name='search_submit_title'}{$aLang.search_submit}{/block}"
class="search-form-submit icon-search"
{block name='search_submit_attributes'}{/block}>
{/if}
</div>
{/block}
{block name='search_input_after'}{/block}
{if $aPrefixes}
<div class="search-form-alphabet">
<ul>
<li class="active"><a href="#" class="link-dotted" data-letter="">{$aLang.user_search_filter_all}</a></li>
{foreach from=$aPrefixes item=sPrefixUser}
<li><a href="#" class="link-dotted" data-letter="{$sPrefixUser}">{$sPrefixUser}</a></li>
{/foreach}
</ul>
</div>
{/if}
{block name='search_end'}{/block}
</form>
{block name='search_after'}{/block}

View file

@ -0,0 +1,23 @@
{**
* Форма поиска блогов
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{block name='search_before'}
{$bNoSubmitButton = true}
{/block}
{* Форма *}
{block name='search_type'}blog{/block}
{block name='search_method'}post{/block}
{block name='search_attributes'}id="form-blogs-search" onsubmit="return false;"{/block}
{* Поле ввода *}
{block name='search_input_placeholder'}{$aLang.blogs_search_title_hint}{/block}
{block name='search_input_name'}blog_title{/block}
{block name='search_input_attributes'}
onkeyup="ls.timer.run(ls.blog.searchBlogs,'blogs_search',['form-blogs-search'],1000);"
{/block}

View file

@ -0,0 +1,16 @@
{**
* Форма основного поиска (по топикам и комментариям)
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{* Форма *}
{block name='search_action'}{router page='search'}topics/{/block}
{* Хуки *}
{block name='search_before'}{hook run='search_begin'}{/block}
{block name='search_begin'}{hook run='search_form_begin'}{/block}
{block name='search_end'}{hook run='search_form_end'}{/block}
{block name='search_after'}{hook run='search_end'}{/block}

View file

@ -0,0 +1,17 @@
{**
* Форма поиска по тегам
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{* Форма *}
{block name='search_type'}tags{/block}
{block name='search_classes'}js-tag-search-form{/block}
{* Поле ввода *}
{block name='search_input_value'}{$sTag|escape:'html'}{/block}
{block name='search_input_placeholder'}{$aLang.block_tags_search}{/block}
{block name='search_input_classes'}autocomplete-tags js-tag-search{/block}
{block name='search_input_name'}tag{/block}

View file

@ -0,0 +1,35 @@
{**
* Форма поиска блогов
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{block name='search_before'}
{$bNoSubmitButton = true}
{/block}
{* Форма *}
{block name='search_type'}blog{/block}
{block name='search_method'}post{/block}
{block name='search_attributes'}id="form-users-search" onsubmit="return false;"{/block}
{* Поле ввода *}
{block name='search_input_placeholder'}{$aLang.user_search_title_hint}{/block}
{block name='search_input_name'}user_login{/block}
{block name='search_input_attributes'}
id="search-user-login"
onkeyup="ls.timer.run(ls.user.searchUsers,'users_search',['form-users-search'],1000);"
{/block}
{* Алфавитный указатель *}
{block name='search_input_after'}
<ul id="user-prefix-filter" class="search-form-alphabet">
<li class="active"><a href="#" class="link-dotted" onclick="return ls.user.searchUsersByPrefix('',this);">{$aLang.user_search_filter_all}</a></li>
{foreach from=$aPrefixUser item=sPrefixUser}
<li><a href="#" class="link-dotted" onclick="return ls.user.searchUsersByPrefix('{$sPrefixUser}',this);">{$sPrefixUser}</a></li>
{/foreach}
</ul>
{/block}

View file

@ -43,9 +43,9 @@
</ul>
{/if}
<form action="{router page='search'}topics/" class="search">
<input type="text" placeholder="{$aLang.search}" maxlength="255" name="q" class="input-text">
<input type="submit" value="" title="{$aLang.search_submit}" class="input-submit icon icon-search">
<form action="{router page='search'}topics/" class="search-form">
<input type="text" placeholder="{$aLang.search}" maxlength="255" name="q" class="search-form-input width-full">
<input type="submit" value="" title="{$aLang.search_submit}" class="search-form-submit icon-search">
</form>
</nav>

View file

@ -2,12 +2,7 @@
<h2 class="page-header">{$aLang.blogs}</h2>
<form action="" method="POST" id="form-blogs-search" onsubmit="return false;" class="search-item">
<div class="search-input-wrapper">
<input type="text" placeholder="{$aLang.blogs_search_title_hint}" autocomplete="off" name="blog_title" class="input-text" value="" onkeyup="ls.timer.run(ls.blog.searchBlogs,'blogs_search',['form-blogs-search'],1000);">
<div class="input-submit" onclick="jQuery('#form-blogs-search').submit()"></div>
</div>
</form>
{include file='form.search.blogs.tpl'}
<div id="blogs-list-search" style="display:none;"></div>

View file

@ -2,20 +2,7 @@
<h2 class="page-header">{$aLang.people}</h2>
<form action="" method="POST" id="form-users-search" onsubmit="return false;" class="search-item search-item-abc">
<div class="search-input-wrapper">
<input id="search-user-login" type="text" placeholder="{$aLang.user_search_title_hint}" autocomplete="off" name="user_login" value="" class="input-text" onkeyup="ls.timer.run(ls.user.searchUsers,'users_search',['form-users-search'],1000);">
<div class="input-submit" onclick="jQuery('#form-users-search').submit()"></div>
</div>
<ul id="user-prefix-filter" class="search-abc">
<li class="active"><a href="#" onclick="return ls.user.searchUsersByPrefix('',this);"><span>{$aLang.user_search_filter_all}</span></a></li>
{foreach from=$aPrefixUser item=sPrefixUser}
<li><a href="#" onclick="return ls.user.searchUsersByPrefix('{$sPrefixUser}',this);"><span>{$sPrefixUser}</span></a></li>
{/foreach}
</ul>
</form>
{include file='form.search.users.tpl'}
<div id="users-list-search" style="display:none;"></div>

View file

@ -2,15 +2,5 @@
<h2 class="page-header">{$aLang.search}</h2>
{hook run='search_begin'}
<form action="{router page='search'}topics/" class="search">
{hook run='search_form_begin'}
<input type="text" placeholder="{$aLang.search}" maxlength="255" name="q" class="input-text input-width-full">
<input type="submit" value="" title="{$aLang.search_submit}" class="input-submit icon icon-search">
{hook run='search_form_end'}
</form>
{hook run='search_end'}
{include file='form.search.main.tpl'}
{include file='footer.tpl'}

View file

@ -1,17 +1,8 @@
{include file='header.tpl'}
<h2 class="page-header">{$aLang.search_results}</h2>
<form action="{router page='search'}topics/" class="search">
{hook run='search_form_begin'}
<input type="text" value="{$aReq.q|escape:'html'}" placeholder="{$aLang.search}" maxlength="255" name="q" class="input-text input-width-full">
<input type="submit" value="" title="{$aLang.search_submit}" class="input-submit icon icon-search">
{hook run='search_form_end'}
</form>
{include file='form.search.main.tpl'}
{if $bIsResults}
<ul class="nav nav-pills">
@ -44,5 +35,4 @@
{/if}
{include file='footer.tpl'}

View file

@ -1,10 +1,7 @@
{include file='header.tpl'}
<h2 class="page-header">{$aLang.block_tags_search}</h2>
<form action="" method="GET" class="js-tag-search-form search-tags">
<input type="text" name="tag" placeholder="{$aLang.block_tags_search}" value="{$sTag|escape:'html'}" class="input-text input-width-full autocomplete-tags js-tag-search" />
</form>
{include file='form.search.tags.tpl'}
{include file='topics/topic_list.tpl'}
{include file='footer.tpl'}

View file

@ -13,10 +13,10 @@
{if $oUserCurrent}
<small class="note">{$aLang.stream_settings_note_follow_user}</small>
<div class="search-form-wrapper">
<div class="search-input-wrapper">
<input type="text" id="activity-block-users-input" autocomplete="off" placeholder="{$aLang.stream_block_config_append}" class="autocomplete-users input-text input-width-full" />
<div onclick="ls.stream.appendUser();" class="input-submit"></div>
<div class="search-form">
<div class="search-form-search">
<input type="text" id="activity-block-users-input" autocomplete="off" placeholder="{$aLang.stream_block_config_append}" class="search-form-input autocomplete-users width-full" />
<div onclick="ls.stream.appendUser();" class="search-form-submit"></div>
</div>
</div>

View file

@ -21,12 +21,7 @@
{/block}
{block name='block_content'}
<form action="" method="GET" class="js-tag-search-form search-form-wrapper">
<div class="search-input-wrapper">
<input type="text" name="tag" placeholder="{$aLang.block_tags_search}" value="" class="input-text input-width-full autocomplete-tags js-tag-search" />
<div class="input-submit" onclick="jQuery('.js-tag-search-form').submit()"></div>
</div>
</form>
{include file='form.search.tags.tpl'}
<div data-type="tab-content">
<div class="tab-pane" data-type="tab-pane" id="js-tab-pane-all" style="display: block">

View file

@ -14,10 +14,10 @@
<small class="note">{$aLang.userfeed_settings_note_follow_user}</small>
<div class="stream-settings-userlist">
<div class="search-form-wrapper">
<div class="search-input-wrapper">
<input type="text" id="userfeed-block-users-input" autocomplete="off" placeholder="{$aLang.userfeed_block_users_append}" class="autocomplete-users input-text input-width-full" />
<div onclick="ls.userfeed.appendUser();" class="input-submit"></div>
<div class="search-form">
<div class="search-form-search">
<input type="text" id="userfeed-block-users-input" autocomplete="off" placeholder="{$aLang.userfeed_block_users_append}" class="search-form-input autocomplete-users width-full" />
<div onclick="ls.userfeed.appendUser();" class="search-form-submit"></div>
</div>
</div>

View file

@ -105,13 +105,12 @@ h2.header-table span { color: #949aa1; }
/* Навигация
---------------------------------------------------- */
#nav .button.button-write { float: right; margin-left: 35px; margin-top: 1px; }
#nav .nav.nav-menu { margin-top: 1px; }
#nav .search-header { float: right; }
#nav .search-header .search-header-show { font-size: 11px; margin-top: 4px; }
#nav .search-header .search-header-show a { color: #878e96; border-color: #878e96; }
#nav .search-header .search-header-show a:hover { color: #f00; border-color: #f00; }
#nav .search-header .search-header-form { position: relative; top: 0px; }
#nav .search-header .search-header-form .input-text { padding: 4px 25px 4px 5px; width: 290px; }
#nav .search-header .search-header-form .input-submit { position: absolute; top: 5px; right: 5px; width: 16px; height: 16px; border: none; background: url(../images/icons-synio.png) -115px -55px no-repeat; }
#nav .search-header .search-form { position: relative; top: 0px; padding: 0; margin: 0; border-radius: 0; }

View file

@ -10,6 +10,7 @@
.block .loading { min-height: 100px; background-image: url(../images/loader-circle.gif); background-position: 50% 0; }
.block .max-height-200 { overflow: auto; max-height: 200px; position: relative; }
.block .search-form { margin-bottom: 15px; background: #f9fbfb; }
/* Header */
.block .block-header { position: relative; margin-bottom: 15px; }

View file

@ -196,37 +196,6 @@
.user-list-mini li:hover i { display: block; }
/* Поиск
---------------------------------------------------- */
.search { margin-bottom: 20px; position: relative; }
.search .input-text { padding-right: 25px; }
.search .input-submit { border: none; width: 16px; height: 16px; position: absolute; top: 6px; right: 5px; opacity: .7; filter: alpha(opacity=70); }
.search .input-submit:hover { opacity: 1; filter: alpha(opacity=100); }
.search-item { margin-bottom: 35px; padding: 15px; background: #f8fbfe; }
.search-item .input-text { width: 100%; padding-right: 5px; }
.search-item .submit { width: 16px; height: 16px; background: url(../images/icons-synio.png) -115px -55px no-repeat; }
.search-item.search-item-abc ul { overflow: hidden; zoom: 1; margin-top: 10px; }
.search-item.search-item-abc ul li { float: left; }
.search-item.search-item-abc ul li a { float: left; color: #727a90; text-decoration: none; padding: 1px 5px; border-radius: 3px; }
.search-item.search-item-abc ul li a span { border-bottom: 1px dotted #727a90; }
.search-item.search-item-abc ul li a:hover { background: #64ceff; color: #fff; }
.search-item.search-item-abc ul li a:hover span { border: none; }
.search-item.search-item-abc ul li.active a { color: #333; }
.search-item.search-item-abc ul li.active a:hover { color: #333; background: none; }
.search-item.search-item-abc ul li.active a span { border: none; }
.search-tags { margin-bottom: 15px; }
.search-form-wrapper { background: #f9fbfb; padding: 15px; border-radius: 5px; margin-bottom: 15px; }
.search-input-wrapper { position: relative; }
.search-input-wrapper .input-submit { position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border: none; background: url(../images/icons-synio.png) -319px -24px no-repeat; cursor: pointer; }
.search-input-wrapper .input-submit:hover { background-position: -341px -24px; }
.search-input-wrapper .input-submit:active { background-position: -363px -24px; }
.search-input-wrapper .input-text { padding-right: 25px; }
/* Облако тегов
---------------------------------------------------- */

View file

@ -14,11 +14,12 @@ textarea,
input[type="text"],
input[type="password"],
.input-text {
padding: 5px;
padding: 5px 5px 6px;
border: 1px solid #c9c9c9;
-webkit-box-shadow: 0 2px 4px rgba(0,0,0,.07) inset;
box-shadow: 0 2px 4px rgba(0,0,0,.07) inset;
border-radius: 3px;
vertical-align: middle;
}
textarea:focus,
@ -164,4 +165,37 @@ dl.form-item dd { float: left; width: 250px; }
top: 9px;
right: 20px;
border-bottom: 1px dotted #D2D5D9;
}
}
/**
* Форма поиска
*
* @file forms/form.search.base.tpl
*/
.search-form { margin-bottom: 35px; padding: 15px; background: #f8fbfe; border-radius: 5px; }
.search-form-search { position: relative; }
.search-form-input[type="text"] { padding-right: 25px; }
.search-form-submit {
position: absolute;
top: 3px;
right: 3px;
width: 22px;
height: 22px;
border: none;
background: url(../images/icons-synio.png) -319px -24px no-repeat;
cursor: pointer;
}
.search-form-submit:hover { background-position: -341px -24px; }
.search-form-submit:active { background-position: -363px -24px; }
.search-form-alphabet { overflow: hidden; zoom: 1; margin-top: 15px; }
.search-form-alphabet li { float: left; }
.search-form-alphabet li a { float: left; color: #727a90; text-decoration: none; padding: 1px 5px; border-radius: 3px; }
.search-form-alphabet li a span { border-bottom: 1px dotted #727a90; }
.search-form-alphabet li a:hover { background: #64ceff; color: #fff; }
.search-form-alphabet li a:hover span { border: none; }
.search-form-alphabet li.active a { color: #333; }
.search-form-alphabet li.active a:hover { color: #333; background: none; }
.search-form-alphabet li.active a span { border: none; }

View file

@ -6,10 +6,10 @@
#header-back { position: absolute; top: 0; left: 0; width: 100%; height: 51px; background: #090909; }
#header { background: #090909; height: 51px; margin: 0 auto; position: relative; padding-right: 270px; }
#nav {
min-height: 26px;
min-height: 28px;
margin-bottom: 32px;
overflow: hidden;
padding: 12px 17px 15px;
padding: 15px 17px;
-webkit-box-shadow: 0 0 10px rgba(0,0,0,.15); box-shadow: 0 0 10px rgba(0,0,0,.15);
border-radius: 0 0 10px 10px;
position: relative;

View file

@ -0,0 +1,54 @@
{**
* Базовый шаблоны формы поиска
*
* bNoSubmitButton Не показывать кнопку Искать
*
* @styles css/forms.css
*}
{block name='search_before'}{/block}
<form action="{block name='search_action'}{/block}"
method="{block name='search_method'}get{/block}"
class="search-form search-form-type-{block name='search_type'}default{/block} {block name='search_classes'}{/block}"
{block name='search_attributes'}{/block}>
{block name='search_begin'}{/block}
{block name='search_input'}
<div class="search-form-search">
<input type="text"
class="search-form-input width-full {block name='search_input_classes'}{/block}"
name="{block name='search_input_name'}q{/block}"
value="{block name='search_input_value'}{$aReq.q|escape:'html'}{/block}"
autocomplete="off"
placeholder="{block name='search_input_placeholder'}{$aLang.search}{/block}"
{block name='search_input_attributes'}{/block}>
{if ! $bNoSubmitButton}
<input type="submit"
value="{block name='search_submit_value'}{/block}"
title="{block name='search_submit_title'}{$aLang.search_submit}{/block}"
class="search-form-submit"
{block name='search_submit_attributes'}{/block}>
{/if}
</div>
{/block}
{block name='search_input_after'}{/block}
{if $aPrefixes}
<div class="search-form-alphabet">
<ul>
<li class="active"><a href="#" class="link-dotted" data-letter="">{$aLang.user_search_filter_all}</a></li>
{foreach from=$aPrefixes item=sPrefixUser}
<li><a href="#" class="link-dotted" data-letter="{$sPrefixUser}">{$sPrefixUser}</a></li>
{/foreach}
</ul>
</div>
{/if}
{block name='search_end'}{/block}
</form>
{block name='search_after'}{/block}

View file

@ -0,0 +1,23 @@
{**
* Форма поиска блогов
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{block name='search_before'}
{$bNoSubmitButton = true}
{/block}
{* Форма *}
{block name='search_type'}blog{/block}
{block name='search_method'}post{/block}
{block name='search_attributes'}id="form-blogs-search" onsubmit="return false;"{/block}
{* Поле ввода *}
{block name='search_input_placeholder'}{$aLang.blogs_search_title_hint}{/block}
{block name='search_input_name'}blog_title{/block}
{block name='search_input_attributes'}
onkeyup="ls.timer.run(ls.blog.searchBlogs,'blogs_search',['form-blogs-search'],1000);"
{/block}

View file

@ -0,0 +1,16 @@
{**
* Форма основного поиска (по топикам и комментариям)
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{* Форма *}
{block name='search_action'}{router page='search'}topics/{/block}
{* Хуки *}
{block name='search_before'}{hook run='search_begin'}{/block}
{block name='search_begin'}{hook run='search_form_begin'}{/block}
{block name='search_end'}{hook run='search_form_end'}{/block}
{block name='search_after'}{hook run='search_end'}{/block}

View file

@ -0,0 +1,17 @@
{**
* Форма поиска по тегам
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{* Форма *}
{block name='search_type'}tags{/block}
{block name='search_classes'}js-tag-search-form{/block}
{* Поле ввода *}
{block name='search_input_value'}{$sTag|escape:'html'}{/block}
{block name='search_input_placeholder'}{$aLang.block_tags_search}{/block}
{block name='search_input_classes'}autocomplete-tags js-tag-search{/block}
{block name='search_input_name'}tag{/block}

View file

@ -0,0 +1,35 @@
{**
* Форма поиска блогов
*
* @styles css/forms.css
*}
{extends file='form.search.base.tpl'}
{block name='search_before'}
{$bNoSubmitButton = true}
{/block}
{* Форма *}
{block name='search_type'}blog{/block}
{block name='search_method'}post{/block}
{block name='search_attributes'}id="form-users-search" onsubmit="return false;"{/block}
{* Поле ввода *}
{block name='search_input_placeholder'}{$aLang.user_search_title_hint}{/block}
{block name='search_input_name'}user_login{/block}
{block name='search_input_attributes'}
id="search-user-login"
onkeyup="ls.timer.run(ls.user.searchUsers,'users_search',['form-users-search'],1000);"
{/block}
{* Алфавитный указатель *}
{block name='search_input_after'}
<ul id="user-prefix-filter" class="search-form-alphabet">
<li class="active"><a href="#" onclick="return ls.user.searchUsersByPrefix('',this);"><span>{$aLang.user_search_filter_all}</span></a></li>
{foreach from=$aPrefixUser item=sPrefixUser}
<li><a href="#" onclick="return ls.user.searchUsersByPrefix('{$sPrefixUser}',this);"><span>{$sPrefixUser}</span></a></li>
{/foreach}
</ul>
{/block}

View file

@ -320,14 +320,14 @@ jQuery(document).ready(function($){
var write = $('#modal_write_show');
search_show.click(function(){
search_form.toggle().find('.input-text').focus();
search_form.toggle().find('input[type=text]').focus();
$(this).toggle();
write.toggle();
return false;
});
$(document).click(function(){
if (search_form.find('.input-text').val() == '') {
if (search_form.find('input[type=text]').val() == '') {
search_form.hide();
search_show.show();
write.show();

View file

@ -7,12 +7,19 @@
<a href="{router page='topic'}add/" class="button button-write" data-type="modal-toggle" data-option-target="modal-write">{$aLang.block_create}</a>
{/if}
{**
* Форма поиска
*
* @scripts js/init.js
*}
<div class="search-header">
<div class="search-header-show" id="search-header-show"><i class="icon-synio-search"></i> <a href="#" class="link-dotted">{$aLang.search_submit}</a></div>
<form class="search-header-form" id="search-header-form" action="{router page='search'}topics/" style="display: none">
<input type="text" placeholder="{$aLang.search}" maxlength="255" name="q" class="input-text">
<input type="submit" value="" title="{$aLang.search_submit}" class="input-submit">
<form class="search-form" id="search-header-form" action="{router page='search'}topics/" style="display: none">
<div class="search-form-search">
<input type="text" placeholder="{$aLang.search}" maxlength="255" name="q" class="search-form-input width-250">
<input type="submit" value="" title="{$aLang.search_submit}" class="search-form-submit">
</div>
</form>
</div>
</nav>