index.phtml 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  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_user') ?></label>
  91. <div class="group-controls">
  92. <div>
  93. <label for="userdate_number"><?= _t('gen.search.date_past') ?>
  94. <input id="userdate_number" name="userdate_number" type="number" min="0" placeholder="0" />
  95. <select id="userdate_unit" name="userdate_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. </fieldset>
  107. <fieldset>
  108. <legend><?= _t('gen.search.date_range') ?></legend>
  109. <div class="form-group">
  110. <label class="group-name"><?= _t('gen.search.date_received') ?></label>
  111. <div class="group-controls">
  112. <div>
  113. <label for="date_from"><?= _t('gen.search.date_from') ?>
  114. <input id="date_from" name="date_from" type="date" />
  115. </label>
  116. <label for="date_to"><?= _t('gen.search.date_to') ?>
  117. <input id="date_to" name="date_to" type="date" />
  118. </label>
  119. </div>
  120. </div>
  121. </div>
  122. <div class="form-group">
  123. <label class="group-name"><?= _t('gen.search.date_published') ?></label>
  124. <div class="group-controls">
  125. <div>
  126. <label for="pubdate_from"><?= _t('gen.search.date_from') ?>
  127. <input id="pubdate_from" name="pubdate_from" type="date" />
  128. </label>
  129. <label for="pubdate_to"><?= _t('gen.search.date_to') ?>
  130. <input id="pubdate_to" name="pubdate_to" type="date" />
  131. </label>
  132. </div>
  133. </div>
  134. </div>
  135. <div class="form-group">
  136. <label class="group-name"><?= _t('gen.search.date_user') ?></label>
  137. <div class="group-controls">
  138. <div>
  139. <label for="userdate_from"><?= _t('gen.search.date_from') ?>
  140. <input id="userdate_from" name="userdate_from" type="date" />
  141. </label>
  142. <label for="userdate_to"><?= _t('gen.search.date_to') ?>
  143. <input id="userdate_to" name="userdate_to" type="date" />
  144. </label>
  145. </div>
  146. </div>
  147. </div>
  148. </fieldset>
  149. <fieldset>
  150. <legend><?= _t('gen.search.sources') ?></legend>
  151. <div class="form-group">
  152. <label class="group-name" for="feed_ids"><?= _t('gen.search.feeds') ?></label>
  153. <div class="group-controls">
  154. <select name="feed_ids[]" id="feed_ids" size="<?= min(8, count($this->feeds) + 1) ?>" multiple="multiple">
  155. <option value=""></option>
  156. <?php foreach ($this->feeds as $feed): ?>
  157. <option value="<?= $feed->id() ?>"><?= $feed->name() ?></option>
  158. <?php endforeach; ?>
  159. </select>
  160. </div>
  161. </div>
  162. <div class="form-group">
  163. <label class="group-name" for="category_ids"><?= _t('gen.search.categories') ?></label>
  164. <div class="group-controls">
  165. <select name="category_ids[]" id="category_ids" size="<?= min(8, count($this->categories) + 1) ?>" multiple="multiple">
  166. <option value=""></option>
  167. <?php foreach ($this->categories as $category): ?>
  168. <option value="<?= $category->id() ?>"><?= $category->name() ?></option>
  169. <?php endforeach; ?>
  170. </select>
  171. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  172. </div>
  173. </div>
  174. </fieldset>
  175. <fieldset>
  176. <legend><?= _t('gen.search.labels') ?></legend>
  177. <div class="form-group">
  178. <label class="group-name" for="label_ids"><?= _t('gen.search.labels') ?></label>
  179. <div class="group-controls">
  180. <select name="label_ids[]" id="label_ids" size="<?= min(8, count($this->labels) + 1) ?>" multiple="multiple">
  181. <option value=""></option>
  182. <?php foreach ($this->labels as $label): ?>
  183. <option value="<?= $label->id() ?>"><?= $label->name() ?></option>
  184. <?php endforeach; ?>
  185. </select>
  186. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  187. </div>
  188. </div>
  189. </fieldset>
  190. <fieldset>
  191. <legend><?= _t('gen.search.user_queries') ?></legend>
  192. <div class="form-group">
  193. <label class="group-name" for="user_query_ids"><?= _t('gen.search.user_queries') ?></label>
  194. <div class="group-controls">
  195. <select name="user_query_ids[]" id="user_query_ids" size="<?= min(8, count($this->queries) + 1) ?>" multiple="multiple">
  196. <option value=""></option>
  197. <?php foreach ($this->queries as $key => $query): ?>
  198. <option value="<?= $key ?>"><?= $query->getName() ?></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. <div class="form-group form-actions">
  206. <div class="group-controls">
  207. <button type="submit" class="btn btn-important"><?= _t('gen.action.submit') ?></button>
  208. <button type="reset" class="btn"><?= _t('gen.action.cancel') ?></button>
  209. </div>
  210. </div>
  211. </form>
  212. </main>