index.phtml 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <?php
  2. declare(strict_types=1);
  3. /** @var FreshRSS_View $this */
  4. $this->partial('aside_subscription');
  5. ?>
  6. <main class="post">
  7. <h1><?= _t('gen.menu.advanced_search') ?></h1>
  8. <p class="help"><?= _i('help') ?> <?= _t('gen.search.advanced_search_help') ?></p>
  9. <p><?= _t('gen.search.full_documentation') ?></p>
  10. <form method="post" action="<?= _url('search', 'submit') ?>">
  11. <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
  12. <fieldset>
  13. <legend><?= _t('gen.search.text') ?></legend>
  14. <p class="help"><?= _i('help') ?> <?= _t('gen.search.text_help') ?></p>
  15. <div class="form-group">
  16. <label class="group-name" for="free_text"><?= _t('gen.search.free_text') ?></label>
  17. <div class="group-controls">
  18. <textarea id="free_text" name="free_text" rows="2" placeholder="<?= _t('gen.search.text_placeholder') ?>"></textarea>
  19. <p class="help"><?= _i('help') ?> <?= _t('gen.search.free_text_help') ?></p>
  20. </div>
  21. </div>
  22. <div class="form-group">
  23. <label class="group-name" for="title"><?= _t('gen.search.title') ?></label>
  24. <div class="group-controls">
  25. <textarea id="title" name="title" rows="2" placeholder="<?= _t('gen.search.text_placeholder') ?>"></textarea>
  26. </div>
  27. </div>
  28. <div class="form-group">
  29. <label class="group-name" for="content"><?= _t('gen.search.content') ?></label>
  30. <div class="group-controls">
  31. <textarea id="content" name="content" rows="2" placeholder="<?= _t('gen.search.text_placeholder') ?>"></textarea>
  32. </div>
  33. </div>
  34. <div class="form-group">
  35. <label class="group-name" for="url"><?= _t('gen.search.url') ?></label>
  36. <div class="group-controls">
  37. <textarea id="url" name="url" rows="2" placeholder="<?= _t('gen.search.text_placeholder') ?>"></textarea>
  38. </div>
  39. </div>
  40. <div class="form-group">
  41. <label class="group-name" for="authors"><?= _t('gen.search.authors') ?></label>
  42. <div class="group-controls">
  43. <textarea id="authors" name="authors" rows="2" placeholder="<?= _t('gen.search.text_placeholder') ?>"></textarea>
  44. </div>
  45. </div>
  46. <div class="form-group">
  47. <label class="group-name" for="tags"><?= _t('gen.search.tags') ?></label>
  48. <div class="group-controls">
  49. <textarea id="tags" name="tags" rows="2" placeholder="<?= _t('gen.search.text_placeholder') ?>"></textarea>
  50. </div>
  51. </div>
  52. </fieldset>
  53. <fieldset>
  54. <legend><?= _t('gen.search.date_past') ?></legend>
  55. <div class="form-group">
  56. <label class="group-name"><?= _t('gen.search.date_received') ?></label>
  57. <div class="group-controls">
  58. <div>
  59. <label for="date_number"><?= _t('gen.search.date_past') ?>
  60. <input id="date_number" name="date_number" type="number" min="0" placeholder="0" />
  61. <select id="date_unit" name="date_unit">
  62. <option value="H"><?= _t('gen.period.hours') ?></option>
  63. <option value="D"><?= _t('gen.period.days') ?></option>
  64. <option value="W"><?= _t('gen.period.weeks') ?></option>
  65. <option value="M"><?= _t('gen.period.months') ?></option>
  66. <option value="Y"><?= _t('gen.period.years') ?></option>
  67. </select>
  68. </label>
  69. </div>
  70. </div>
  71. </div>
  72. <div class="form-group">
  73. <label class="group-name"><?= _t('gen.search.date_published') ?></label>
  74. <div class="group-controls">
  75. <div>
  76. <label for="pubdate_number"><?= _t('gen.search.date_past') ?>
  77. <input id="pubdate_number" name="pubdate_number" type="number" min="0" placeholder="0" />
  78. <select id="pubdate_unit" name="pubdate_unit">
  79. <option value="H"><?= _t('gen.period.hours') ?></option>
  80. <option value="D"><?= _t('gen.period.days') ?></option>
  81. <option value="W"><?= _t('gen.period.weeks') ?></option>
  82. <option value="M"><?= _t('gen.period.months') ?></option>
  83. <option value="Y"><?= _t('gen.period.years') ?></option>
  84. </select>
  85. </label>
  86. </div>
  87. </div>
  88. </div>
  89. <div class="form-group">
  90. <label class="group-name"><?= _t('gen.search.date_modified') ?></label>
  91. <div class="group-controls">
  92. <div>
  93. <label for="mdate_number"><?= _t('gen.search.date_past') ?>
  94. <input id="mdate_number" name="mdate_number" type="number" min="0" placeholder="0" />
  95. <select id="mdate_unit" name="mdate_unit">
  96. <option value="H"><?= _t('gen.period.hours') ?></option>
  97. <option value="D"><?= _t('gen.period.days') ?></option>
  98. <option value="W"><?= _t('gen.period.weeks') ?></option>
  99. <option value="M"><?= _t('gen.period.months') ?></option>
  100. <option value="Y"><?= _t('gen.period.years') ?></option>
  101. </select>
  102. </label>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="form-group">
  107. <label class="group-name"><?= _t('gen.search.date_user') ?></label>
  108. <div class="group-controls">
  109. <div>
  110. <label for="userdate_number"><?= _t('gen.search.date_past') ?>
  111. <input id="userdate_number" name="userdate_number" type="number" min="0" placeholder="0" />
  112. <select id="userdate_unit" name="userdate_unit">
  113. <option value="H"><?= _t('gen.period.hours') ?></option>
  114. <option value="D"><?= _t('gen.period.days') ?></option>
  115. <option value="W"><?= _t('gen.period.weeks') ?></option>
  116. <option value="M"><?= _t('gen.period.months') ?></option>
  117. <option value="Y"><?= _t('gen.period.years') ?></option>
  118. </select>
  119. </label>
  120. </div>
  121. </div>
  122. </div>
  123. </fieldset>
  124. <fieldset>
  125. <legend><?= _t('gen.search.date_range') ?></legend>
  126. <div class="form-group">
  127. <label class="group-name"><?= _t('gen.search.date_received') ?></label>
  128. <div class="group-controls">
  129. <div>
  130. <label for="date_from"><?= _t('gen.search.date_from') ?>
  131. <input id="date_from" name="date_from" type="date" />
  132. </label>
  133. <label for="date_to"><?= _t('gen.search.date_to') ?>
  134. <input id="date_to" name="date_to" type="date" />
  135. </label>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="form-group">
  140. <label class="group-name"><?= _t('gen.search.date_published') ?></label>
  141. <div class="group-controls">
  142. <div>
  143. <label for="pubdate_from"><?= _t('gen.search.date_from') ?>
  144. <input id="pubdate_from" name="pubdate_from" type="date" />
  145. </label>
  146. <label for="pubdate_to"><?= _t('gen.search.date_to') ?>
  147. <input id="pubdate_to" name="pubdate_to" type="date" />
  148. </label>
  149. </div>
  150. </div>
  151. </div>
  152. <div class="form-group">
  153. <label class="group-name"><?= _t('gen.search.date_modified') ?></label>
  154. <div class="group-controls">
  155. <div>
  156. <label for="mdate_from"><?= _t('gen.search.date_from') ?>
  157. <input id="mdate_from" name="mdate_from" type="date" />
  158. </label>
  159. <label for="mdate_to"><?= _t('gen.search.date_to') ?>
  160. <input id="mdate_to" name="mdate_to" type="date" />
  161. </label>
  162. </div>
  163. </div>
  164. </div>
  165. <div class="form-group">
  166. <label class="group-name"><?= _t('gen.search.date_user') ?></label>
  167. <div class="group-controls">
  168. <div>
  169. <label for="userdate_from"><?= _t('gen.search.date_from') ?>
  170. <input id="userdate_from" name="userdate_from" type="date" />
  171. </label>
  172. <label for="userdate_to"><?= _t('gen.search.date_to') ?>
  173. <input id="userdate_to" name="userdate_to" type="date" />
  174. </label>
  175. </div>
  176. </div>
  177. </div>
  178. </fieldset>
  179. <fieldset>
  180. <legend><?= _t('gen.search.sources') ?></legend>
  181. <div class="form-group">
  182. <label class="group-name" for="feed_ids"><?= _t('gen.search.feeds') ?></label>
  183. <div class="group-controls">
  184. <select name="feed_ids[]" id="feed_ids" size="<?= min(8, count($this->feeds) + 1) ?>" multiple="multiple">
  185. <option value=""></option>
  186. <?php foreach ($this->feeds as $feed): ?>
  187. <option value="<?= $feed->id() ?>"><?= $feed->name() ?></option>
  188. <?php endforeach; ?>
  189. </select>
  190. </div>
  191. </div>
  192. <div class="form-group">
  193. <label class="group-name" for="category_ids"><?= _t('gen.search.categories') ?></label>
  194. <div class="group-controls">
  195. <select name="category_ids[]" id="category_ids" size="<?= min(8, count($this->categories) + 1) ?>" multiple="multiple">
  196. <option value=""></option>
  197. <?php foreach ($this->categories as $category): ?>
  198. <option value="<?= $category->id() ?>"><?= $category->name() ?></option>
  199. <?php endforeach; ?>
  200. </select>
  201. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  202. </div>
  203. </div>
  204. </fieldset>
  205. <fieldset>
  206. <legend><?= _t('gen.search.labels') ?></legend>
  207. <div class="form-group">
  208. <label class="group-name" for="label_ids"><?= _t('gen.search.labels') ?></label>
  209. <div class="group-controls">
  210. <select name="label_ids[]" id="label_ids" size="<?= min(8, count($this->labels) + 1) ?>" multiple="multiple">
  211. <option value=""></option>
  212. <?php foreach ($this->labels as $label): ?>
  213. <option value="<?= $label->id() ?>"><?= $label->name() ?></option>
  214. <?php endforeach; ?>
  215. </select>
  216. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  217. </div>
  218. </div>
  219. </fieldset>
  220. <fieldset>
  221. <legend><?= _t('gen.search.user_queries') ?></legend>
  222. <div class="form-group">
  223. <label class="group-name" for="user_query_ids"><?= _t('gen.search.user_queries') ?></label>
  224. <div class="group-controls">
  225. <select name="user_query_ids[]" id="user_query_ids" size="<?= min(8, count($this->queries) + 1) ?>" multiple="multiple">
  226. <option value=""></option>
  227. <?php foreach ($this->queries as $key => $query): ?>
  228. <option value="<?= $key ?>"><?= $query->getName() ?></option>
  229. <?php endforeach; ?>
  230. </select>
  231. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  232. </div>
  233. </div>
  234. </fieldset>
  235. <div class="form-group form-actions">
  236. <div class="group-controls">
  237. <button type="submit" class="btn btn-important"><?= _t('gen.action.submit') ?></button>
  238. <button type="reset" class="btn"><?= _t('gen.action.cancel') ?></button>
  239. </div>
  240. </div>
  241. </form>
  242. </main>