Revize 3416b114
Přidáno uživatelem Jan Šedivý před asi 6 roky(ů)
app/FrontModule/component/Transliteration/TransliterationSearchForm.latte | ||
---|---|---|
1 |
{form form class => 'form'} |
|
2 |
<div class="form-group"> |
|
3 |
<div class="row"> |
|
4 |
<div class="col"> |
|
5 |
{label word1} |
|
6 |
{input word1 class => 'form-control'} |
|
7 |
</div> |
|
8 |
<div class="col"> |
|
9 |
{label word2} |
|
10 |
<div class="input-group"> |
|
11 |
{input word2_condition class => 'form-control'} |
|
12 |
{input word2 class => 'form-control'} |
|
13 |
</div> |
|
14 |
</div> |
|
15 |
<div class="col"> |
|
16 |
{label word3} |
|
17 |
<div class="input-group"> |
|
18 |
{input word3_condition class => 'form-control'} |
|
19 |
{input word3 class => 'form-control'} |
|
20 |
</div> |
|
21 |
</div> |
|
22 |
</div> |
|
23 |
{input exact_match} |
|
24 |
<hr> |
|
25 |
|
|
26 |
{*<div class="search-options">*} |
|
27 |
{*<div class="form-group row">*} |
|
28 |
{*<label for="book" class="col-sm-2 col-form-label">Book</label>*} |
|
29 |
{*<div class="col-sm-3">*} |
|
30 |
{*<div class="input-group">*} |
|
31 |
|
|
32 |
{*<select name="book-op" class="form-control">*} |
|
33 |
{*<option value="equals">*} |
|
34 |
{*equals*} |
|
35 |
{*</option>*} |
|
36 |
{*<option value="not equals">*} |
|
37 |
{*not equals*} |
|
38 |
{*</option>*} |
|
39 |
{*<option value="contains" selected="selected">*} |
|
40 |
{*contains*} |
|
41 |
{*</option>*} |
|
42 |
{*<option value="begins with">*} |
|
43 |
{*begins with*} |
|
44 |
{*</option>*} |
|
45 |
{*<option value="ends with">*} |
|
46 |
{*ends with*} |
|
47 |
{*</option>*} |
|
48 |
{*</select>*} |
|
49 |
{*<input type="text" id="book" name="book" class="form-control">*} |
|
50 |
{*</div>*} |
|
51 |
{*</div>*} |
|
52 |
{*</div>*} |
|
53 |
{*<div class="form-group row">*} |
|
54 |
{*<label for="museum-no" class="col-sm-2 col-form-label">Museum number</label>*} |
|
55 |
{*<div class="col-sm-3">*} |
|
56 |
{*<div class="input-group">*} |
|
57 |
|
|
58 |
{*<select name="museum-no-op" class="form-control">*} |
|
59 |
{*<option value="equals">*} |
|
60 |
{*equals*} |
|
61 |
{*</option>*} |
|
62 |
{*<option value="not equals">*} |
|
63 |
{*not equals*} |
|
64 |
{*</option>*} |
|
65 |
{*<option value="contains" selected="selected">*} |
|
66 |
{*contains*} |
|
67 |
{*</option>*} |
|
68 |
{*<option value="begins with">*} |
|
69 |
{*begins with*} |
|
70 |
{*</option>*} |
|
71 |
{*<option value="ends with">*} |
|
72 |
{*ends with*} |
|
73 |
{*</option>*} |
|
74 |
{*</select>*} |
|
75 |
{*<input type="text" name="museum-no" id="museum-no" class="form-control">*} |
|
76 |
{*</div>*} |
|
77 |
{*</div>*} |
|
78 |
{*</div>*} |
|
79 |
{*<div class="form-group row">*} |
|
80 |
{*<label for="id_book_type" class="col-sm-2 col-form-label">Type</label>*} |
|
81 |
{*<div class="col-sm-3">*} |
|
82 |
{*<div class="input-group">*} |
|
83 |
|
|
84 |
{*<select name="book-type-op" class="form-control">*} |
|
85 |
{*<option value="is">*} |
|
86 |
{*is*} |
|
87 |
{*</option>*} |
|
88 |
{*<option value="is not">*} |
|
89 |
{*is not*} |
|
90 |
{*</option>*} |
|
91 |
{*</select>*} |
|
92 |
{*<select name="id_book_type" id="id_book_type" class="form-control">*} |
|
93 |
|
|
94 |
{*<option value="0" label="- NOT SELECTED -">*} |
|
95 |
{*- NOT SELECTED -*} |
|
96 |
{*</option>*} |
|
97 |
{*<option value="1" label="letter">*} |
|
98 |
{*letter*} |
|
99 |
{*</option>*} |
|
100 |
{*<option value="2" label="document">*} |
|
101 |
{*document*} |
|
102 |
{*</option>*} |
|
103 |
{*<option value="3" label="epic">*} |
|
104 |
{*epic*} |
|
105 |
{*</option>*} |
|
106 |
{*<option value="4" label="hymn">*} |
|
107 |
{*hymn*} |
|
108 |
{*</option>*} |
|
109 |
{*<option value="5" label="incantation">*} |
|
110 |
{*incantation*} |
|
111 |
{*</option>*} |
|
112 |
{*<option value="6" label="legal text">*} |
|
113 |
{*legal text*} |
|
114 |
{*</option>*} |
|
115 |
{*<option value="8" label="mathematics">*} |
|
116 |
{*mathematics*} |
|
117 |
{*</option>*} |
|
118 |
{*<option value="9" label="omina">*} |
|
119 |
{*omina*} |
|
120 |
{*</option>*} |
|
121 |
{*<option value="10" label="other">*} |
|
122 |
{*other*} |
|
123 |
{*</option>*} |
|
124 |
{*<option value="11" label="royal inscription">*} |
|
125 |
{*royal inscription*} |
|
126 |
{*</option>*} |
|
127 |
{*<option value="13" label="school text">*} |
|
128 |
{*school text*} |
|
129 |
{*</option>*} |
|
130 |
|
|
131 |
{*</select>*} |
|
132 |
{*</div>*} |
|
133 |
{*</div>*} |
|
134 |
{*</div>*} |
|
135 |
{*<div class="form-group row">*} |
|
136 |
{*<label for="id_origin" class="col-sm-2 col-form-label">Origin</label>*} |
|
137 |
{*<div class="col-sm-3">*} |
|
138 |
{*<div class="input-group">*} |
|
139 |
|
|
140 |
{*<select name="origin-op" class="form-control">*} |
|
141 |
{*<option value="is">*} |
|
142 |
{*is*} |
|
143 |
{*</option>*} |
|
144 |
{*<option value="is not">*} |
|
145 |
{*is not*} |
|
146 |
{*</option>*} |
|
147 |
{*</select>*} |
|
148 |
{*<select name="id_origin" id="id_origin" class="form-control">*} |
|
149 |
|
|
150 |
{*<option value="0" label="- NOT SELECTED -">*} |
|
151 |
{*/ - NOT SELECTED -*} |
|
152 |
{*</option>*} |
|
153 |
{*<option value="9" label="Tell Ḫarīrī">*} |
|
154 |
{*Mari / Tell Ḫarīrī*} |
|
155 |
{*</option>*} |
|
156 |
{*<option value="10" label="Išān Baḫriyāt">*} |
|
157 |
{*Isin / Išān Baḫriyāt*} |
|
158 |
{*</option>*} |
|
159 |
{*<option value="11" label="Nuffar">*} |
|
160 |
{*Nippur / Nuffar*} |
|
161 |
{*</option>*} |
|
162 |
{*<option value="1" label="Babylon">*} |
|
163 |
{*Bābili / Babylon*} |
|
164 |
{*</option>*} |
|
165 |
{*<option value="2" label="Tell Inġarra, Tell al-Uḫaimir">*} |
|
166 |
{*Kiš / Tell Inġarra, Tell al-Uḫaimir*} |
|
167 |
{*</option>*} |
|
168 |
{*<option value="3" label="Abū Ḫaṭab">*} |
|
169 |
{*Kisurra / Abū Ḫaṭab*} |
|
170 |
{*</option>*} |
|
171 |
{*<option value="4" label="unknown">*} |
|
172 |
{*Lagaba / unknown*} |
|
173 |
{*</option>*} |
|
174 |
{*<option value="5" label="as-Sankara">*} |
|
175 |
{*Larsa / as-Sankara*} |
|
176 |
{*</option>*} |
|
177 |
{*<option value="6" label="Tell Harmal">*} |
|
178 |
{*Šaduppûm / Tell Harmal*} |
|
179 |
{*</option>*} |
|
180 |
{*<option value="12" label="Tell Asmar">*} |
|
181 |
{*Ešnunna / Tell Asmar*} |
|
182 |
{*</option>*} |
|
183 |
{*<option value="13" label="Tell al-Muqaiyar">*} |
|
184 |
{*Ur / Tell al-Muqaiyar*} |
|
185 |
{*</option>*} |
|
186 |
{*<option value="14" label="Tulūl al-Ḫumr">*} |
|
187 |
{*- / Tulūl al-Ḫumr*} |
|
188 |
{*</option>*} |
|
189 |
{*<option value="15" label="Tell Abū Duwari">*} |
|
190 |
{*Maškan-šāpir / Tell Abū Duwari*} |
|
191 |
{*</option>*} |
|
192 |
{*<option value="16" label="Khafajah">*} |
|
193 |
{*/ Khafajah*} |
|
194 |
{*</option>*} |
|
195 |
{*<option value="17" label="Borsippa, Birs Nimrūd">*} |
|
196 |
{*Barsip / Borsippa, Birs Nimrūd*} |
|
197 |
{*</option>*} |
|
198 |
{*<option value="18" label="Tell Abū Ḫabba">*} |
|
199 |
{*Sippar / Tell Abū Ḫabba*} |
|
200 |
{*</option>*} |
|
201 |
{*<option value="19" label="Tell Muḫammad">*} |
|
202 |
{*Diniktum? / Tell Muḫammad*} |
|
203 |
{*</option>*} |
|
204 |
{*<option value="21" label="Khafajah">*} |
|
205 |
{*Dūr-Samsu-iluna / Khafajah*} |
|
206 |
{*</option>*} |
|
207 |
{*<option value="22" label="">*} |
|
208 |
{*unknown /*} |
|
209 |
{*</option>*} |
|
210 |
{*<option value="24" label="Sūsa">*} |
|
211 |
{*Šūšan / Sūsa*} |
|
212 |
{*</option>*} |
|
213 |
{*<option value="23" label="Warka">*} |
|
214 |
{*Uruk / Warka*} |
|
215 |
{*</option>*} |
|
216 |
{*<option value="25" label="Ishchali">*} |
|
217 |
{*Nērebtum? / Ishchali*} |
|
218 |
{*</option>*} |
|
219 |
{*<option value="26" label="Cytheria (island)">*} |
|
220 |
{*/ Cytheria (island)*} |
|
221 |
{*</option>*} |
|
222 |
{*<option value="27" label="Cyprus">*} |
|
223 |
{*Iadnāna / Cyprus*} |
|
224 |
{*</option>*} |
|
225 |
{*<option value="29" label="Qalʾat Šarqāṭ">*} |
|
226 |
{*Aššur / Qalʾat Šarqāṭ*} |
|
227 |
{*</option>*} |
|
228 |
{*<option value="28" label="Tell Ḫaddād">*} |
|
229 |
{*Mê-Turran / Tell Ḫaddād*} |
|
230 |
{*</option>*} |
|
231 |
{*<option value="30" label="Tell Leilān">*} |
|
232 |
{*Šubat-Enlil / Tell Leilān*} |
|
233 |
{*</option>*} |
|
234 |
{*<option value="31" label="Acem Höyük">*} |
|
235 |
{*? / Acem Höyük*} |
|
236 |
{*</option>*} |
|
237 |
{*<option value="32" label="Tell al-ʾAšāra">*} |
|
238 |
{*Terqa / Tell al-ʾAšāra*} |
|
239 |
{*</option>*} |
|
240 |
{*<option value="33" label="Išān Dhaḫāk">*} |
|
241 |
{*/ Išān Dhaḫāk*} |
|
242 |
{*</option>*} |
|
243 |
{*<option value="34" label="Tell ad-Dibāʾī">*} |
|
244 |
{*Zaralulu / Tell ad-Dibāʾī*} |
|
245 |
{*</option>*} |
|
246 |
{*<option value="35" label="Tell al-Suleimaḫ">*} |
|
247 |
{*Batir? / Tell al-Suleimaḫ*} |
|
248 |
{*</option>*} |
|
249 |
{*<option value="36" label="Bardi Sanjian in Bītwāta">*} |
|
250 |
{*/ Bardi Sanjian in Bītwāta*} |
|
251 |
{*</option>*} |
|
252 |
{*<option value="37" label="near Tūz Ḫurmati">*} |
|
253 |
{*Ḫuršītum? / near Tūz Ḫurmati*} |
|
254 |
{*</option>*} |
|
255 |
{*<option value="38" label="Tell Šamšāra">*} |
|
256 |
{*Šušarrā / Tell Šamšāra*} |
|
257 |
{*</option>*} |
|
258 |
{*<option value="39" label="Dura-Europos">*} |
|
259 |
{*Damara / Dura-Europos*} |
|
260 |
{*</option>*} |
|
261 |
{*<option value="20" label="Tell ar-Rimāḫ">*} |
|
262 |
{*Qaṭṭarā / Tell ar-Rimāḫ*} |
|
263 |
{*</option>*} |
|
264 |
{*<option value="40" label="Tell Açana">*} |
|
265 |
{*Alalaḫ / Tell Açana*} |
|
266 |
{*</option>*} |
|
267 |
{*<option value="7" label="Rās aš-Šamra">*} |
|
268 |
{*Ugarit / Rās aš-Šamra*} |
|
269 |
{*</option>*} |
|
270 |
{*<option value="41" label="Tell Mardiḫ">*} |
|
271 |
{*Ebla / Tell Mardiḫ*} |
|
272 |
{*</option>*} |
|
273 |
{*<option value="42" label="Hillah (near Babylon)">*} |
|
274 |
{*/ Hillah (near Babylon)*} |
|
275 |
{*</option>*} |
|
276 |
{*<option value="43" label="Bismāya">*} |
|
277 |
{*Adab / Bismāya*} |
|
278 |
{*</option>*} |
|
279 |
{*<option value="44" label="al-Hibā">*} |
|
280 |
{*Lagaš / al-Hibā*} |
|
281 |
{*</option>*} |
|
282 |
{*<option value="45" label="Tell ed-Dēr">*} |
|
283 |
{*Sippar-Iaḫrūrum / Tell ed-Dēr*} |
|
284 |
{*</option>*} |
|
285 |
{*<option value="46" label="Tell Dulaiḫim or Tell Muḫaṭṭaṭ">*} |
|
286 |
{*Dilbat / Tell Dulaiḫim or Tell Muḫaṭṭaṭ*} |
|
287 |
{*</option>*} |
|
288 |
|
|
289 |
{*</select>*} |
|
290 |
{*</div>*} |
|
291 |
{*</div>*} |
|
292 |
{*</div>*} |
|
293 |
{*<div class="form-group row">*} |
|
294 |
{*<label for="reg_no" class="col-sm-2 col-form-label">Registration / Ex. number</label>*} |
|
295 |
{*<div class="col-sm-3">*} |
|
296 |
{*<div class="input-group">*} |
|
297 |
|
|
298 |
{*<select name="reg_no-op" class="form-control">*} |
|
299 |
{*<option value="equals">*} |
|
300 |
{*equals*} |
|
301 |
{*</option>*} |
|
302 |
{*<option value="not equals">*} |
|
303 |
{*not equals*} |
|
304 |
{*</option>*} |
|
305 |
{*<option value="contains" selected="selected">*} |
|
306 |
{*contains*} |
|
307 |
{*</option>*} |
|
308 |
{*<option value="begins with">*} |
|
309 |
{*begins with*} |
|
310 |
{*</option>*} |
|
311 |
{*<option value="ends with">*} |
|
312 |
{*ends with*} |
|
313 |
{*</option>*} |
|
314 |
{*</select>*} |
|
315 |
{*<input type="text" id="reg_no" name="reg_no" class="form-control">*} |
|
316 |
{*</div>*} |
|
317 |
{*</div>*} |
|
318 |
{*</div>*} |
|
319 |
{*<div class="form-group row">*} |
|
320 |
{*<label for="date" class="col-sm-2 col-form-label">Date</label>*} |
|
321 |
{*<div class="col-sm-3">*} |
|
322 |
{*<div class="input-group">*} |
|
323 |
|
|
324 |
{*<select name="date-op" class="form-control">*} |
|
325 |
{*<option value="equals">*} |
|
326 |
{*equals*} |
|
327 |
{*</option>*} |
|
328 |
{*<option value="not equals">*} |
|
329 |
{*not equals*} |
|
330 |
{*</option>*} |
|
331 |
{*<option value="contains" selected="selected">*} |
|
332 |
{*contains*} |
|
333 |
{*</option>*} |
|
334 |
{*<option value="begins with">*} |
|
335 |
{*begins with*} |
|
336 |
{*</option>*} |
|
337 |
{*<option value="ends with">*} |
|
338 |
{*ends with*} |
|
339 |
{*</option>*} |
|
340 |
{*</select>*} |
|
341 |
{*<input type="text" id="date" name="date" class="form-control">*} |
|
342 |
{*</div>*} |
|
343 |
{*</div>*} |
|
344 |
{*</div>*} |
|
345 |
{*</div>*} |
|
346 |
{*<hr>*} |
|
347 |
|
|
348 |
{*<label for="line-count">Representation of search result:</label>*} |
|
349 |
{*<div class="form-inline">*} |
|
350 |
{*<div class="form-group">*} |
|
351 |
{*<small class="text-muted">*} |
|
352 |
{*Print*} |
|
353 |
{*</small>*} |
|
354 |
{*<select name="line-count" id="line-count" class="form-control form-control-sm mx-sm-3">*} |
|
355 |
{*<option value="0" selected="selected">0</option>*} |
|
356 |
{*<option value="1">1</option>*} |
|
357 |
{*<option value="2">2</option>*} |
|
358 |
{*<option value="3">3</option>*} |
|
359 |
{*<option value="5">5</option>*} |
|
360 |
{*<option value="10">10</option>*} |
|
361 |
{*<option value="15">15</option>*} |
|
362 |
{*</select>*} |
|
363 |
{*<small id="passwordHelpInline" class="text-muted">*} |
|
364 |
{*lines before and after found line.*} |
|
365 |
{*</small>*} |
|
366 |
{*</div>*} |
|
367 |
{*</div>*} |
|
368 |
{*<div class="form-inline">*} |
|
369 |
{*<div class="form-group">*} |
|
370 |
{*<small class="text-muted">*} |
|
371 |
{*Show*} |
|
372 |
{*</small>*} |
|
373 |
{*<select name="r_limit" class="form-control form-control-sm mx-sm-3">*} |
|
374 |
{*<option value="1">1</option>*} |
|
375 |
{*<option value="2">2</option>*} |
|
376 |
{*<option value="3">3</option>*} |
|
377 |
{*<option value="5" selected="selected">5</option>*} |
|
378 |
{*<option value="10">10</option>*} |
|
379 |
{*<option value="15">15</option>*} |
|
380 |
{*<option value="30">30</option>*} |
|
381 |
{*</select>*} |
|
382 |
{*<small class="text-muted">*} |
|
383 |
{*found transliteration per site.*} |
|
384 |
{*</small>*} |
|
385 |
{*</div>*} |
|
386 |
{*</div>*} |
|
387 |
</div> |
|
388 |
<div class="form-group row"> |
|
389 |
<div class="col-sm-10"> |
|
390 |
{input submit class => 'btn btn-outline-dark'} |
|
391 |
</div> |
|
392 |
</div> |
|
393 |
|
|
394 |
{/form} |
app/FrontModule/component/Transliteration/TransliterationSearchForm.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\FrontModule\Components; |
|
4 |
|
|
5 |
use App\Enum\ELogicalConditions; |
|
6 |
use App\Model\TransliterationSearchModel; |
|
7 |
use Nette\Application\UI\Control; |
|
8 |
use Nette\Application\UI\Form; |
|
9 |
|
|
10 |
class TransliterationSearchForm extends Control |
|
11 |
{ |
|
12 |
/** @var TransliterationSearchModel */ |
|
13 |
private $transliterationSearchModel; |
|
14 |
|
|
15 |
/** |
|
16 |
* TransliterationSearchForm constructor. |
|
17 |
* @param TransliterationSearchModel $transliterationSearchModel |
|
18 |
*/ |
|
19 |
public function __construct(TransliterationSearchModel $transliterationSearchModel) |
|
20 |
{ |
|
21 |
parent::__construct(); |
|
22 |
$this->transliterationSearchModel = $transliterationSearchModel; |
|
23 |
} |
|
24 |
|
|
25 |
|
|
26 |
public function render() |
|
27 |
{ |
|
28 |
$this->template->setFile(__DIR__ . '/TransliterationSearchForm.latte'); |
|
29 |
$this->template->render(); |
|
30 |
} |
|
31 |
|
|
32 |
public function createComponentForm() |
|
33 |
{ |
|
34 |
$form = new Form(); |
|
35 |
|
|
36 |
$form->addText('word1', 'Word 1') |
|
37 |
->setRequired(true, 'Field Word 1 is required'); |
|
38 |
$form->addText('word2', 'Word 2'); |
|
39 |
$form->addSelect('word2_condition', '', ELogicalConditions::$selectValues); |
|
40 |
$form->addText('word3', 'Word 3'); |
|
41 |
$form->addSelect('word3_condition', '', ELogicalConditions::$selectValues); |
|
42 |
|
|
43 |
$form->addCheckbox('exact_match', ' Exact Match'); |
|
44 |
|
|
45 |
$form->addSubmit('submit', 'Search'); |
|
46 |
$form->onSuccess[] = [$this, 'formSuccess']; |
|
47 |
|
|
48 |
return $form; |
|
49 |
} |
|
50 |
|
|
51 |
public function formSuccess(Form $form) |
|
52 |
{ |
|
53 |
$values = $form->getValues(); |
|
54 |
$this->transliterationSearchModel->setSearchTerms($values); |
|
55 |
$this->presenter->redirect('Transliteration:searchResult'); |
|
56 |
} |
|
57 |
} |
|
58 |
|
|
59 |
interface ITransliterationSearchFormFactory{ |
|
60 |
/** |
|
61 |
* @return TransliterationSearchForm |
|
62 |
*/ |
|
63 |
public function create(); |
|
64 |
} |
app/FrontModule/presenters/TransliterationPresenter.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\FrontModule\Presenters; |
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
use App\FrontModule\Components\ITransliterationSearchFormFactory; |
|
8 |
use App\Model\Repository\TransliterationRepository; |
|
9 |
use App\Model\TransliterationSearchModel; |
|
10 |
use Nette\Application\UI\Presenter; |
|
11 |
|
|
12 |
class TransliterationPresenter extends Presenter |
|
13 |
{ |
|
14 |
/** @var ITransliterationSearchFormFactory */ |
|
15 |
private $transliterationSearchFormFactory; |
|
16 |
|
|
17 |
/** @var TransliterationRepository */ |
|
18 |
private $transliterationRepository; |
|
19 |
|
|
20 |
/** @var TransliterationSearchModel */ |
|
21 |
private $transliterationSearchModel; |
|
22 |
|
|
23 |
public function __construct( |
|
24 |
ITransliterationSearchFormFactory $transliterationSearchFormFactory, |
|
25 |
TransliterationRepository $transliterationRepository, |
|
26 |
TransliterationSearchModel $transliterationSearchModel |
|
27 |
) |
|
28 |
{ |
|
29 |
parent::__construct(); |
|
30 |
|
|
31 |
$this->transliterationSearchFormFactory = $transliterationSearchFormFactory; |
|
32 |
$this->transliterationRepository = $transliterationRepository; |
|
33 |
$this->transliterationSearchModel = $transliterationSearchModel; |
|
34 |
} |
|
35 |
|
|
36 |
|
|
37 |
public function actionSearch() |
|
38 |
{ |
|
39 |
|
|
40 |
} |
|
41 |
|
|
42 |
public function actionSearchResult() |
|
43 |
{ |
|
44 |
$searchTerms = $this->transliterationSearchModel->getSearchTerms(); |
|
45 |
|
|
46 |
if (!$searchTerms) |
|
47 |
{ |
|
48 |
$this->redirect('Transliteration:search'); |
|
49 |
} |
|
50 |
|
|
51 |
if(!$searchTerms['word1']) |
|
52 |
{ |
|
53 |
$this->redirect('Transliteration:search'); |
|
54 |
} |
|
55 |
|
|
56 |
$resultRows = $this->transliterationRepository->transliterationsFulltextSearch($searchTerms); |
|
57 |
|
|
58 |
$this->template->resultRows = $resultRows; |
|
59 |
} |
|
60 |
|
|
61 |
public function createComponentTransliterationSearchForm() |
|
62 |
{ |
|
63 |
return $this->transliterationSearchFormFactory->create(); |
|
64 |
} |
|
65 |
} |
app/FrontModule/templates/Transliteration/search.latte | ||
---|---|---|
1 |
{block content} |
|
2 |
<div class="display-5">Search in transliterations</div> |
|
3 |
<hr> |
|
4 |
{control transliterationSearchForm} |
|
5 |
{/block} |
app/FrontModule/templates/Transliteration/searchResult.latte | ||
---|---|---|
1 |
{block content} |
|
2 |
<div class="display-5">Search in texts - Results</div> |
|
3 |
|
|
4 |
<div class="row h-100 pagination-header"> |
|
5 |
<div class="col my-auto"> |
|
6 |
<nav aria-label="Page navigation example"> |
|
7 |
<ul class="pagination"> |
|
8 |
<li class="page-item"><a class="page-link" href="#"><span aria-hidden="true">«</span> |
|
9 |
<span class="sr-only">Previous</span></a></li> |
|
10 |
<li class="page-item"><a class="page-link" href="#"><span aria-hidden="true">‹</span> |
|
11 |
<span class="sr-only">Previous</span></a></li> |
|
12 |
<li class="page-item active"><a class="page-link" href="#">1</a></li> |
|
13 |
<li class="page-item"><a class="page-link" href="#">2</a></li> |
|
14 |
<li class="page-item"><a class="page-link" href="#">3</a></li> |
|
15 |
<li class="page-item"><a class="page-link" href="#">4</a></li> |
|
16 |
<li class="page-item"><a class="page-link" href="#">5</a></li> |
|
17 |
<li class="page-item"><a class="page-link" href="#"><span aria-hidden="true">›</span> |
|
18 |
<span class="sr-only">Next</span></a></li> |
|
19 |
<li class="page-item"><a class="page-link" href="#"><span aria-hidden="true">»</span> |
|
20 |
<span class="sr-only">Next</span></a></li> |
|
21 |
</ul> |
|
22 |
</nav> |
|
23 |
</div> |
|
24 |
<div class="col text-right my-auto"> |
|
25 |
<span class="text-muted align-middle"> |
|
26 |
Total count: 23655. Showing page 1 of 4731 (5 results per site). |
|
27 |
</span> |
|
28 |
</div> |
|
29 |
</div> |
|
30 |
|
|
31 |
{foreach $resultRows as $result} |
|
32 |
<hr> |
|
33 |
|
|
34 |
<a href="transliteration-info.html"> |
|
35 |
{$result->book_abrev}, {$result->chapter} |
|
36 |
</a> |
|
37 |
<div> |
|
38 |
<span class="lineno linefound">{$result->line_number}.</span> |
|
39 |
<span class="line">{$result->transliteration}</span> |
|
40 |
</div> |
|
41 |
|
|
42 |
{/foreach} |
|
43 |
{/block} |
app/component/Transliteration/TransliterationSearchForm.latte | ||
---|---|---|
1 |
{form form class => 'form'} |
|
2 |
<div class="form-group"> |
|
3 |
<div class="row"> |
|
4 |
<div class="col"> |
|
5 |
{label word1} |
|
6 |
{input word1 class => 'form-control'} |
|
7 |
</div> |
|
8 |
<div class="col"> |
|
9 |
{label word2} |
|
10 |
<div class="input-group"> |
|
11 |
{input word2_condition class => 'form-control'} |
|
12 |
{input word2 class => 'form-control'} |
|
13 |
</div> |
|
14 |
</div> |
|
15 |
<div class="col"> |
|
16 |
{label word3} |
|
17 |
<div class="input-group"> |
|
18 |
{input word3_condition class => 'form-control'} |
|
19 |
{input word3 class => 'form-control'} |
|
20 |
</div> |
|
21 |
</div> |
|
22 |
</div> |
|
23 |
<input name="exact-match" id="exact-match" type="checkbox"> |
|
24 |
<label for="exact-match">Exact Match</label> |
|
25 |
<br> |
|
26 |
<a href="/nobtc/app/webroot/pages/hints-for-search">Hints for search</a> |
|
27 |
<hr> |
|
28 |
|
|
29 |
<div class="search-options"> |
|
30 |
<div class="form-group row"> |
|
31 |
<label for="book" class="col-sm-2 col-form-label">Book</label> |
|
32 |
<div class="col-sm-3"> |
|
33 |
<div class="input-group"> |
|
34 |
|
|
35 |
<select name="book-op" class="form-control"> |
|
36 |
<option value="equals"> |
|
37 |
equals |
|
38 |
</option> |
|
39 |
<option value="not equals"> |
|
40 |
not equals |
|
41 |
</option> |
|
42 |
<option value="contains" selected="selected"> |
|
43 |
contains |
|
44 |
</option> |
|
45 |
<option value="begins with"> |
|
46 |
begins with |
|
47 |
</option> |
|
48 |
<option value="ends with"> |
|
49 |
ends with |
|
50 |
</option> |
|
51 |
</select> |
|
52 |
<input type="text" id="book" name="book" class="form-control"> |
|
53 |
</div> |
|
54 |
</div> |
|
55 |
</div> |
|
56 |
<div class="form-group row"> |
|
57 |
<label for="museum-no" class="col-sm-2 col-form-label">Museum number</label> |
|
58 |
<div class="col-sm-3"> |
|
59 |
<div class="input-group"> |
|
60 |
|
|
61 |
<select name="museum-no-op" class="form-control"> |
|
62 |
<option value="equals"> |
|
63 |
equals |
|
64 |
</option> |
|
65 |
<option value="not equals"> |
|
66 |
not equals |
|
67 |
</option> |
|
68 |
<option value="contains" selected="selected"> |
|
69 |
contains |
|
70 |
</option> |
|
71 |
<option value="begins with"> |
|
72 |
begins with |
|
73 |
</option> |
|
74 |
<option value="ends with"> |
|
75 |
ends with |
|
76 |
</option> |
|
77 |
</select> |
|
78 |
<input type="text" name="museum-no" id="museum-no" class="form-control"> |
|
79 |
</div> |
|
80 |
</div> |
|
81 |
</div> |
|
82 |
<div class="form-group row"> |
|
83 |
<label for="id_book_type" class="col-sm-2 col-form-label">Type</label> |
|
84 |
<div class="col-sm-3"> |
|
85 |
<div class="input-group"> |
|
86 |
|
|
87 |
<select name="book-type-op" class="form-control"> |
|
88 |
<option value="is"> |
|
89 |
is |
|
90 |
</option> |
|
91 |
<option value="is not"> |
|
92 |
is not |
|
93 |
</option> |
|
94 |
</select> |
|
95 |
<select name="id_book_type" id="id_book_type" class="form-control"> |
|
96 |
|
|
97 |
<option value="0" label="- NOT SELECTED -"> |
|
98 |
- NOT SELECTED - |
|
99 |
</option> |
|
100 |
<option value="1" label="letter"> |
|
101 |
letter |
|
102 |
</option> |
|
103 |
<option value="2" label="document"> |
|
104 |
document |
|
105 |
</option> |
|
106 |
<option value="3" label="epic"> |
|
107 |
epic |
|
108 |
</option> |
|
109 |
<option value="4" label="hymn"> |
|
110 |
hymn |
|
111 |
</option> |
|
112 |
<option value="5" label="incantation"> |
|
113 |
incantation |
|
114 |
</option> |
|
115 |
<option value="6" label="legal text"> |
|
116 |
legal text |
|
117 |
</option> |
|
118 |
<option value="8" label="mathematics"> |
|
119 |
mathematics |
|
120 |
</option> |
|
121 |
<option value="9" label="omina"> |
|
122 |
omina |
|
123 |
</option> |
|
124 |
<option value="10" label="other"> |
|
125 |
other |
|
126 |
</option> |
|
127 |
<option value="11" label="royal inscription"> |
|
128 |
royal inscription |
|
129 |
</option> |
|
130 |
<option value="13" label="school text"> |
|
131 |
school text |
|
132 |
</option> |
|
133 |
|
|
134 |
</select> |
|
135 |
</div> |
|
136 |
</div> |
|
137 |
</div> |
|
138 |
<div class="form-group row"> |
|
139 |
<label for="id_origin" class="col-sm-2 col-form-label">Origin</label> |
|
140 |
<div class="col-sm-3"> |
|
141 |
<div class="input-group"> |
|
142 |
|
|
143 |
<select name="origin-op" class="form-control"> |
|
144 |
<option value="is"> |
|
145 |
is |
|
146 |
</option> |
|
147 |
<option value="is not"> |
|
148 |
is not |
|
149 |
</option> |
|
150 |
</select> |
|
151 |
<select name="id_origin" id="id_origin" class="form-control"> |
|
152 |
|
|
153 |
<option value="0" label="- NOT SELECTED -"> |
|
154 |
/ - NOT SELECTED - |
|
155 |
</option> |
|
156 |
<option value="9" label="Tell Ḫarīrī"> |
|
157 |
Mari / Tell Ḫarīrī |
|
158 |
</option> |
|
159 |
<option value="10" label="Išān Baḫriyāt"> |
|
160 |
Isin / Išān Baḫriyāt |
|
161 |
</option> |
|
162 |
<option value="11" label="Nuffar"> |
|
163 |
Nippur / Nuffar |
|
164 |
</option> |
|
165 |
<option value="1" label="Babylon"> |
|
166 |
Bābili / Babylon |
|
167 |
</option> |
|
168 |
<option value="2" label="Tell Inġarra, Tell al-Uḫaimir"> |
|
169 |
Kiš / Tell Inġarra, Tell al-Uḫaimir |
|
170 |
</option> |
|
171 |
<option value="3" label="Abū Ḫaṭab"> |
|
172 |
Kisurra / Abū Ḫaṭab |
|
173 |
</option> |
|
174 |
<option value="4" label="unknown"> |
|
175 |
Lagaba / unknown |
|
176 |
</option> |
|
177 |
<option value="5" label="as-Sankara"> |
|
178 |
Larsa / as-Sankara |
|
179 |
</option> |
|
180 |
<option value="6" label="Tell Harmal"> |
|
181 |
Šaduppûm / Tell Harmal |
|
182 |
</option> |
|
183 |
<option value="12" label="Tell Asmar"> |
|
184 |
Ešnunna / Tell Asmar |
|
185 |
</option> |
|
186 |
<option value="13" label="Tell al-Muqaiyar"> |
|
187 |
Ur / Tell al-Muqaiyar |
|
188 |
</option> |
|
189 |
<option value="14" label="Tulūl al-Ḫumr"> |
|
190 |
- / Tulūl al-Ḫumr |
|
191 |
</option> |
|
192 |
<option value="15" label="Tell Abū Duwari"> |
|
193 |
Maškan-šāpir / Tell Abū Duwari |
|
194 |
</option> |
|
195 |
<option value="16" label="Khafajah"> |
|
196 |
/ Khafajah |
|
197 |
</option> |
|
198 |
<option value="17" label="Borsippa, Birs Nimrūd"> |
|
199 |
Barsip / Borsippa, Birs Nimrūd |
|
200 |
</option> |
|
201 |
<option value="18" label="Tell Abū Ḫabba"> |
|
202 |
Sippar / Tell Abū Ḫabba |
|
203 |
</option> |
|
204 |
<option value="19" label="Tell Muḫammad"> |
|
205 |
Diniktum? / Tell Muḫammad |
|
206 |
</option> |
|
207 |
<option value="21" label="Khafajah"> |
|
208 |
Dūr-Samsu-iluna / Khafajah |
|
209 |
</option> |
|
210 |
<option value="22" label=""> |
|
211 |
unknown / |
|
212 |
</option> |
|
213 |
<option value="24" label="Sūsa"> |
|
214 |
Šūšan / Sūsa |
|
215 |
</option> |
|
216 |
<option value="23" label="Warka"> |
|
217 |
Uruk / Warka |
|
218 |
</option> |
|
219 |
<option value="25" label="Ishchali"> |
|
220 |
Nērebtum? / Ishchali |
|
221 |
</option> |
|
222 |
<option value="26" label="Cytheria (island)"> |
|
223 |
/ Cytheria (island) |
|
224 |
</option> |
|
225 |
<option value="27" label="Cyprus"> |
|
226 |
Iadnāna / Cyprus |
|
227 |
</option> |
|
228 |
<option value="29" label="Qalʾat Šarqāṭ"> |
|
229 |
Aššur / Qalʾat Šarqāṭ |
|
230 |
</option> |
|
231 |
<option value="28" label="Tell Ḫaddād"> |
|
232 |
Mê-Turran / Tell Ḫaddād |
|
233 |
</option> |
|
234 |
<option value="30" label="Tell Leilān"> |
|
235 |
Šubat-Enlil / Tell Leilān |
|
236 |
</option> |
|
237 |
<option value="31" label="Acem Höyük"> |
|
238 |
? / Acem Höyük |
|
239 |
</option> |
|
240 |
<option value="32" label="Tell al-ʾAšāra"> |
|
241 |
Terqa / Tell al-ʾAšāra |
|
242 |
</option> |
|
243 |
<option value="33" label="Išān Dhaḫāk"> |
|
244 |
/ Išān Dhaḫāk |
|
245 |
</option> |
|
246 |
<option value="34" label="Tell ad-Dibāʾī"> |
|
247 |
Zaralulu / Tell ad-Dibāʾī |
|
248 |
</option> |
|
249 |
<option value="35" label="Tell al-Suleimaḫ"> |
|
250 |
Batir? / Tell al-Suleimaḫ |
|
251 |
</option> |
|
252 |
<option value="36" label="Bardi Sanjian in Bītwāta"> |
|
253 |
/ Bardi Sanjian in Bītwāta |
|
254 |
</option> |
|
255 |
<option value="37" label="near Tūz Ḫurmati"> |
|
256 |
Ḫuršītum? / near Tūz Ḫurmati |
|
257 |
</option> |
|
258 |
<option value="38" label="Tell Šamšāra"> |
|
259 |
Šušarrā / Tell Šamšāra |
|
260 |
</option> |
|
261 |
<option value="39" label="Dura-Europos"> |
|
262 |
Damara / Dura-Europos |
|
263 |
</option> |
|
264 |
<option value="20" label="Tell ar-Rimāḫ"> |
|
265 |
Qaṭṭarā / Tell ar-Rimāḫ |
|
266 |
</option> |
|
267 |
<option value="40" label="Tell Açana"> |
|
268 |
Alalaḫ / Tell Açana |
|
269 |
</option> |
|
270 |
<option value="7" label="Rās aš-Šamra"> |
|
271 |
Ugarit / Rās aš-Šamra |
|
272 |
</option> |
|
273 |
<option value="41" label="Tell Mardiḫ"> |
|
274 |
Ebla / Tell Mardiḫ |
|
275 |
</option> |
|
276 |
<option value="42" label="Hillah (near Babylon)"> |
|
277 |
/ Hillah (near Babylon) |
|
278 |
</option> |
|
279 |
<option value="43" label="Bismāya"> |
|
280 |
Adab / Bismāya |
|
281 |
</option> |
|
282 |
<option value="44" label="al-Hibā"> |
|
283 |
Lagaš / al-Hibā |
|
284 |
</option> |
|
285 |
<option value="45" label="Tell ed-Dēr"> |
|
286 |
Sippar-Iaḫrūrum / Tell ed-Dēr |
|
287 |
</option> |
|
288 |
<option value="46" label="Tell Dulaiḫim or Tell Muḫaṭṭaṭ"> |
|
289 |
Dilbat / Tell Dulaiḫim or Tell Muḫaṭṭaṭ |
|
290 |
</option> |
|
291 |
|
|
292 |
</select> |
|
293 |
</div> |
|
294 |
</div> |
|
295 |
</div> |
|
296 |
<div class="form-group row"> |
|
297 |
<label for="reg_no" class="col-sm-2 col-form-label">Registration / Ex. number</label> |
|
298 |
<div class="col-sm-3"> |
|
299 |
<div class="input-group"> |
|
300 |
|
|
301 |
<select name="reg_no-op" class="form-control"> |
|
302 |
<option value="equals"> |
|
303 |
equals |
|
304 |
</option> |
|
305 |
<option value="not equals"> |
|
306 |
not equals |
|
307 |
</option> |
|
308 |
<option value="contains" selected="selected"> |
|
309 |
contains |
|
310 |
</option> |
|
311 |
<option value="begins with"> |
|
312 |
begins with |
|
313 |
</option> |
|
314 |
<option value="ends with"> |
|
315 |
ends with |
|
316 |
</option> |
|
317 |
</select> |
|
318 |
<input type="text" id="reg_no" name="reg_no" class="form-control"> |
|
319 |
</div> |
|
320 |
</div> |
|
321 |
</div> |
|
322 |
<div class="form-group row"> |
|
323 |
<label for="date" class="col-sm-2 col-form-label">Date</label> |
|
324 |
<div class="col-sm-3"> |
|
325 |
<div class="input-group"> |
|
326 |
|
|
327 |
<select name="date-op" class="form-control"> |
|
328 |
<option value="equals"> |
|
329 |
equals |
|
330 |
</option> |
|
331 |
<option value="not equals"> |
|
332 |
not equals |
|
333 |
</option> |
|
334 |
<option value="contains" selected="selected"> |
|
335 |
contains |
|
336 |
</option> |
|
337 |
<option value="begins with"> |
|
338 |
begins with |
|
339 |
</option> |
|
340 |
<option value="ends with"> |
|
341 |
ends with |
|
342 |
</option> |
|
343 |
</select> |
|
344 |
<input type="text" id="date" name="date" class="form-control"> |
|
345 |
</div> |
|
346 |
</div> |
|
347 |
</div> |
|
348 |
</div> |
|
349 |
<hr> |
|
350 |
|
|
351 |
<label for="line-count">Representation of search result:</label> |
|
352 |
<div class="form-inline"> |
|
353 |
<div class="form-group"> |
|
354 |
<small class="text-muted"> |
|
355 |
|
|
356 |
</small> |
|
357 |
<select name="line-count" id="line-count" class="form-control form-control-sm mx-sm-3"> |
|
358 |
<option value="0" selected="selected">0</option> |
|
359 |
<option value="1">1</option> |
|
360 |
<option value="2">2</option> |
|
361 |
<option value="3">3</option> |
|
362 |
<option value="5">5</option> |
|
363 |
<option value="10">10</option> |
|
364 |
<option value="15">15</option> |
|
365 |
</select> |
|
366 |
<small id="passwordHelpInline" class="text-muted"> |
|
367 |
lines before and after found line. |
|
368 |
</small> |
|
369 |
</div> |
|
370 |
</div> |
|
371 |
<div class="form-inline"> |
|
372 |
<div class="form-group"> |
|
373 |
<small class="text-muted"> |
|
374 |
Show |
|
375 |
</small> |
|
376 |
<select name="r_limit" class="form-control form-control-sm mx-sm-3"> |
|
377 |
<option value="1">1</option> |
|
378 |
<option value="2">2</option> |
|
379 |
<option value="3">3</option> |
|
380 |
<option value="5" selected="selected">5</option> |
|
381 |
<option value="10">10</option> |
|
382 |
<option value="15">15</option> |
|
383 |
<option value="30">30</option> |
|
384 |
</select> |
|
385 |
<small class="text-muted"> |
|
386 |
found transliteration per site. |
|
387 |
</small> |
|
388 |
</div> |
|
389 |
</div> |
|
390 |
</div> |
|
391 |
<div class="form-group row"> |
|
392 |
<div class="col-sm-10"> |
|
393 |
{input submit class => 'btn btn-outline-dark'} |
|
394 |
</div> |
|
395 |
</div> |
|
396 |
|
|
397 |
{/form} |
app/component/Transliteration/TransliterationSearchForm.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Components; |
|
4 |
|
|
5 |
use App\Enum\ELogicalConditions; |
|
6 |
use Nette\Application\UI\Control; |
|
7 |
use Nette\Forms\Form; |
|
8 |
|
|
9 |
class TransliterationSearchForm extends Control |
|
10 |
{ |
|
11 |
public function render() |
|
12 |
{ |
|
13 |
$this->template->setFile(__DIR__ . '/TransliterationSearchForm.latte'); |
|
14 |
$this->template->render(); |
|
15 |
} |
|
16 |
|
|
17 |
public function createComponentForm() |
|
18 |
{ |
|
19 |
$form = new Form(); |
|
20 |
$form->addText('word1', 'Word 1'); |
|
21 |
$form->addText('word2', 'Word 2'); |
|
22 |
$form->addSelect('word2_condition', '', ELogicalConditions::$selectValues); |
|
23 |
$form->addText('word3', 'Word 3'); |
|
24 |
$form->addSelect('word3_condition', '', ELogicalConditions::$selectValues); |
|
25 |
|
|
26 |
$form->addSubmit('submit', 'Search'); |
|
27 |
|
|
28 |
$form->onSuccess[] = [$this, 'formSubmit']; |
|
29 |
|
|
30 |
return $form; |
|
31 |
} |
|
32 |
|
|
33 |
public function formSubmit() |
|
34 |
{ |
|
35 |
|
|
36 |
} |
|
37 |
} |
|
38 |
|
|
39 |
interface ITransliterationSearchFormFactory{ |
|
40 |
/** |
|
41 |
* @return TransliterationSearchForm |
|
42 |
*/ |
|
43 |
public function create(); |
|
44 |
} |
app/config/components.neon | ||
---|---|---|
6 | 6 |
# Formuláře |
7 | 7 |
- App\FrontModule\Components\ILoginFormFactory |
8 | 8 |
- App\AdminModule\Components\IUserEditFormFactory |
9 |
- App\Components\ITransliterationSearchFormFactory |
|
9 |
- App\FrontModule\Components\ITransliterationSearchFormFactory |
app/config/model.neon | ||
---|---|---|
1 | 1 |
services: |
2 |
#Repository |
|
2 | 3 |
- App\Model\Repository\Repository |
3 | 4 |
- App\Model\Repository\BookRepository |
4 | 5 |
- App\Model\Repository\BookTypeRepository |
... | ... | |
16 | 17 |
- App\Model\Repository\UserRepository |
17 | 18 |
- App\Model\Repository\UserRoleRepository |
18 | 19 |
|
19 |
- App\Model\Facade\UserFacade |
|
20 |
#Facade |
|
21 |
- App\Model\Facade\UserFacade |
|
22 |
|
|
23 |
#Sessions |
|
24 |
- App\Model\TransliterationSearchModel |
app/enum/ELogicalConditions.php | ||
---|---|---|
16 | 16 |
self::OR => 'OR', |
17 | 17 |
self::AND_NOT => 'AND NOT' |
18 | 18 |
]; |
19 |
|
|
20 |
public static $whereCondition = [ |
|
21 |
self::AND => 'AND', |
|
22 |
self::OR => 'OR', |
|
23 |
self::AND_NOT => 'AND NOT' |
|
24 |
]; |
|
19 | 25 |
} |
app/model/TransliterationSearchModel.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Model; |
|
4 |
|
|
5 |
|
|
6 |
use Nette\Http\Session; |
|
7 |
use Nette\Http\SessionSection; |
|
8 |
|
|
9 |
class TransliterationSearchModel |
|
10 |
{ |
|
11 |
const SECTION_NAME = 'TransliterationSearch'; |
|
12 |
const SECTION_EXPIRATION = 0; |
|
13 |
|
|
14 |
/** @var SessionSection */ |
|
15 |
private $section; |
|
16 |
|
|
17 |
public function __construct(Session $session) |
|
18 |
{ |
|
19 |
$this->section = $session->getSection(self::SECTION_NAME); |
|
20 |
$this->section->setExpiration(self::SECTION_EXPIRATION); |
|
21 |
} |
|
22 |
|
|
23 |
/** |
|
24 |
* @return SessionSection |
|
25 |
*/ |
|
26 |
public function getTransliterationSearchSection() |
|
27 |
{ |
|
28 |
return $this->section; |
|
29 |
} |
|
30 |
|
|
31 |
public function setSearchTerms($searchTerms) |
|
32 |
{ |
|
33 |
$this->section->searchTerms = $searchTerms; |
|
34 |
} |
|
35 |
|
|
36 |
public function getSearchTerms() |
|
37 |
{ |
|
38 |
return $this->section->searchTerms; |
|
39 |
} |
|
40 |
} |
app/model/repository/TransliterationRepository.php | ||
---|---|---|
2 | 2 |
|
3 | 3 |
namespace App\Model\Repository; |
4 | 4 |
|
5 |
use App\Enum\ELogicalConditions; |
|
6 |
|
|
5 | 7 |
/** |
6 | 8 |
* Repository pro práci s tabulkou `transliteration` |
7 | 9 |
* |
... | ... | |
25 | 27 |
const COLUMN_REG_NO = 'reg_no'; |
26 | 28 |
const COLUMN_DATE = 'date'; |
27 | 29 |
const COLUMN_NOTE = 'note'; |
30 |
|
|
31 |
public function transliterationsFulltextSearch($queryParams) |
|
32 |
{ |
|
33 |
$where = ''; |
|
34 |
$whereArgs = []; |
|
35 |
|
|
36 |
if($queryParams['exact_match']) |
|
37 |
{ |
|
38 |
$where .= "l.transliteration LIKE '%?%' "; |
|
39 |
$whereArgs[] = $queryParams['word1']; |
|
40 |
} |
|
41 |
else |
|
42 |
{ |
|
43 |
$where .= "l.transliteration LIKE '%?%' "; |
|
44 |
$whereArgs[] = $queryParams['word1']; |
|
45 |
} |
|
46 |
|
|
47 |
$query = "SELECT b.book_abrev, t.chapter, l.transliteration, l.line_number FROM transliteration t |
|
48 |
LEFT JOIN surface s ON s.id_transliteration = t.id_transliteration |
|
49 |
LEFT JOIN line l ON l.id_surface = s.id_surface |
|
50 |
LEFT JOIN book b on t.id_book = b.id_book |
|
51 |
WHERE " . $where; |
|
52 |
|
|
53 |
return $this->context->queryArgs($query, $whereArgs); |
|
54 |
} |
|
28 | 55 |
} |
app/presenters/TransliterationPresenter.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Presenters; |
|
4 |
|
|
5 |
|
|
6 |
use App\Components\ITransliterationSearchFormFactory; |
|
7 |
use Nette\Application\UI\Presenter; |
|
8 |
|
|
9 |
class TransliterationPresenter extends Presenter |
|
10 |
{ |
|
11 |
/** @var ITransliterationSearchFormFactory */ |
|
12 |
private $transliterationSearchFormFactory; |
|
13 |
|
|
14 |
public function __construct(ITransliterationSearchFormFactory $transliterationSearchFormFactory) |
|
15 |
{ |
|
16 |
parent::__construct(); |
|
17 |
|
|
18 |
$this->transliterationSearchFormFactory = $transliterationSearchFormFactory; |
|
19 |
} |
|
20 |
|
|
21 |
|
|
22 |
public function actionSearch() |
|
23 |
{ |
|
24 |
|
|
25 |
} |
|
26 |
|
|
27 |
public function actionSearchResult(array $searchTerms = null) |
|
28 |
{ |
|
29 |
|
|
30 |
} |
|
31 |
|
|
32 |
public function createComponentTransliterationSearchForm() |
|
33 |
{ |
|
34 |
return $this->transliterationSearchFormFactory->create(); |
|
35 |
} |
|
36 |
} |
app/presenters/templates/Transliteration/search.latte | ||
---|---|---|
1 |
{block content} |
|
2 |
<div class="display-5">Search in transliterations</div> |
|
3 |
<hr> |
|
4 |
{control transliterationSearchForm} |
|
5 |
{/block} |
app/router/RouterFactory.php | ||
---|---|---|
19 | 19 |
$router = new RouteList; |
20 | 20 |
|
21 | 21 |
$frontRouter = new RouteList('Front'); |
22 |
$frontRouter[] = new Route('<action>[/<id>]', 'Homepage:default'); |
|
22 |
$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
|
|
23 | 23 |
|
24 | 24 |
$adminRouter = new RouteList('Admin'); |
25 | 25 |
$adminRouter[] = new Route('admin/<presenter>/<action>[/<id>]', 'Default:default'); |
Také k dispozici: Unified diff
Re #7327 Předávání parametrů vyhledávání přes nově vytvořenou session sekci