Merge remote-tracking branch 'refs/remotes/origin/3.0'
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / search.tpl
1 {include file='header' __disableAds=true}
2
3 {include file='formError'}
4
5 {if $errorMessage|isset}
6 <p class="error">{@$errorMessage}</p>
7 {/if}
8
9 <form method="post" action="{link controller='Search'}{/link}">
10 <div class="section">
11 <dl{if $errorField == 'q'} class="formError"{/if}>
12 <dt><label for="searchTerm">{lang}wcf.search.query{/lang}</label></dt>
13 <dd>
14 <input type="text" id="searchTerm" name="q" value="{$query}" class="long" maxlength="255" autofocus>
15 {if $errorField == 'q'}
16 <small class="innerError">
17 {if $errorType == 'empty'}
18 {lang}wcf.global.form.error.empty{/lang}
19 {else}
20 {lang}wcf.search.query.error.{@$errorType}{/lang}
21 {/if}
22 </small>
23 {/if}
24 <label><input type="checkbox" name="subjectOnly" value="1"{if $subjectOnly == 1} checked{/if}> {lang}wcf.search.subjectOnly{/lang}</label>
25 {event name='queryOptions'}
26
27 <small>{lang}wcf.search.query.description{/lang}</small>
28 </dd>
29 </dl>
30
31 <dl>
32 <dt><label for="searchAuthor">{lang}wcf.search.author{/lang}</label></dt>
33 <dd>
34 <input type="text" id="searchAuthor" name="username" value="{$username}" class="medium" maxlength="255" autocomplete="off">
35 <label><input type="checkbox" name="nameExactly" value="1"{if $nameExactly == 1} checked{/if}> {lang}wcf.search.matchExactly{/lang}</label>
36 {event name='authorOptions'}
37 </dd>
38 </dl>
39
40 <dl>
41 <dt><label for="startDate">{lang}wcf.search.period{/lang}</label></dt>
42 <dd>
43 <input type="date" id="startDate" name="startDate" value="{$startDate}" data-placeholder="{lang}wcf.date.period.start{/lang}">
44 <input type="date" id="endDate" name="endDate" value="{$endDate}" data-placeholder="{lang}wcf.date.period.end{/lang}">
45 {event name='periodOptions'}
46 </dd>
47 </dl>
48
49 <dl>
50 <dt><label for="sortField">{lang}wcf.search.sortBy{/lang}</label></dt>
51 <dd>
52 <select id="sortField" name="sortField">
53 <option value="relevance"{if $sortField == 'relevance'} selected{/if}>{lang}wcf.search.sortBy.relevance{/lang}</option>
54 <option value="subject"{if $sortField == 'subject'} selected{/if}>{lang}wcf.global.subject{/lang}</option>
55 <option value="time"{if $sortField == 'time'} selected{/if}>{lang}wcf.search.sortBy.time{/lang}</option>
56 <option value="username"{if $sortField == 'username'} selected{/if}>{lang}wcf.search.sortBy.username{/lang}</option>
57 </select>
58
59 <select name="sortOrder">
60 <option value="ASC"{if $sortOrder == 'ASC'} selected{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
61 <option value="DESC"{if $sortOrder == 'DESC'} selected{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
62 </select>
63
64 {event name='displayOptions'}
65 </dd>
66 </dl>
67
68 {event name='generalFields'}
69
70 <dl>
71 <dt>{lang}wcf.search.type{/lang}</dt>
72 <dd class="floated">
73 {foreach from=$objectTypes key=objectTypeName item=objectType}
74 {if $objectType->isAccessible()}
75 <label><input id="{@'.'|str_replace:'_':$objectTypeName}" type="checkbox" name="types[]" value="{@$objectTypeName}"{if $objectTypeName|in_array:$selectedObjectTypes} checked{/if}> {lang}wcf.search.type.{@$objectTypeName}{/lang}</label>
76 {/if}
77 {/foreach}
78 </dd>
79 </dl>
80 </div>
81
82 {event name='sections'}
83
84 {foreach from=$objectTypes key=objectTypeName item=objectType}
85 {if $objectType->isAccessible() && $objectType->getFormTemplateName()}
86 {assign var='__jsID' value='.'|str_replace:'_':$objectTypeName}
87 <section class="section" id="{@$__jsID}Form">
88 <h2 class="sectionTitle">{lang}wcf.search.type.{@$objectTypeName}{/lang}</h2>
89
90 {include file=$objectType->getFormTemplateName() application=$objectType->getApplication()}
91
92 <script data-relocate="true">
93 $(function() {
94 $('#{@$__jsID}').click(function() {
95 if (this.checked) $('#{@$__jsID}Form').wcfFadeIn();
96 else $('#{@$__jsID}Form').wcfFadeOut();
97 });
98 {if !$objectTypeName|in_array:$selectedObjectTypes}$('#{@$__jsID}Form').hide();{/if}
99 });
100 </script>
101 </section>
102 {/if}
103 {/foreach}
104
105 {include file='captcha' supportsAsyncCaptcha=true}
106
107 <div class="formSubmit">
108 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
109 {@SECURITY_TOKEN_INPUT_TAG}
110 </div>
111 </form>
112
113 <script data-relocate="true">
114 $(function() {
115 new WCF.Search.User($('#searchAuthor'), function(data) {
116 $('#searchAuthor').val(data.label);//.focus();
117 });
118 });
119 </script>
120
121 {include file='footer' __disableAds=true}