index.phtml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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="1" placeholder="1" />
  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="1" placeholder="1" />
  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. </fieldset>
  90. <fieldset>
  91. <legend><?= _t('gen.search.date_range') ?></legend>
  92. <div class="form-group">
  93. <label class="group-name"><?= _t('gen.search.date_received') ?></label>
  94. <div class="group-controls">
  95. <div>
  96. <label for="date_from"><?= _t('gen.search.date_from') ?>
  97. <input id="date_from" name="date_from" type="date" />
  98. </label>
  99. <label for="date_to"><?= _t('gen.search.date_to') ?>
  100. <input id="date_to" name="date_to" type="date" />
  101. </label>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="form-group">
  106. <label class="group-name"><?= _t('gen.search.date_published') ?></label>
  107. <div class="group-controls">
  108. <div>
  109. <label for="pubdate_from"><?= _t('gen.search.date_from') ?>
  110. <input id="pubdate_from" name="pubdate_from" type="date" />
  111. </label>
  112. <label for="pubdate_to"><?= _t('gen.search.date_to') ?>
  113. <input id="pubdate_to" name="pubdate_to" type="date" />
  114. </label>
  115. </div>
  116. </div>
  117. </div>
  118. </fieldset>
  119. <fieldset>
  120. <legend><?= _t('gen.search.sources') ?></legend>
  121. <div class="form-group">
  122. <label class="group-name" for="feed_ids"><?= _t('gen.search.feeds') ?></label>
  123. <div class="group-controls">
  124. <select name="feed_ids[]" id="feed_ids" size="<?= min(8, count($this->feeds) + 1) ?>" multiple="multiple">
  125. <?php foreach ($this->feeds as $feed): ?>
  126. <option value="<?= $feed->id() ?>"><?= $feed->name() ?></option>
  127. <?php endforeach; ?>
  128. </select>
  129. </div>
  130. </div>
  131. <div class="form-group">
  132. <label class="group-name" for="category_ids"><?= _t('gen.search.categories') ?></label>
  133. <div class="group-controls">
  134. <select name="category_ids[]" id="category_ids" size="<?= min(8, count($this->categories) + 1) ?>" multiple="multiple">
  135. <?php foreach ($this->categories as $category): ?>
  136. <option value="<?= $category->id() ?>"><?= $category->name() ?></option>
  137. <?php endforeach; ?>
  138. </select>
  139. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  140. </div>
  141. </div>
  142. </fieldset>
  143. <fieldset>
  144. <legend><?= _t('gen.search.labels') ?></legend>
  145. <div class="form-group">
  146. <label class="group-name" for="label_ids"><?= _t('gen.search.labels') ?></label>
  147. <div class="group-controls">
  148. <select name="label_ids[]" id="label_ids" size="<?= min(8, count($this->labels) + 1) ?>" multiple="multiple">
  149. <?php foreach ($this->labels as $label): ?>
  150. <option value="<?= $label->id() ?>"><?= $label->name() ?></option>
  151. <?php endforeach; ?>
  152. </select>
  153. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  154. </div>
  155. </div>
  156. </fieldset>
  157. <fieldset>
  158. <legend><?= _t('gen.search.user_queries') ?></legend>
  159. <div class="form-group">
  160. <label class="group-name" for="user_query_ids"><?= _t('gen.search.user_queries') ?></label>
  161. <div class="group-controls">
  162. <select name="user_query_ids[]" id="user_query_ids" size="<?= min(8, count($this->queries) + 1) ?>" multiple="multiple">
  163. <?php foreach ($this->queries as $key => $query): ?>
  164. <option value="<?= $key ?>"><?= $query->getName() ?></option>
  165. <?php endforeach; ?>
  166. </select>
  167. <p class="help"><?= _i('help') ?> <?= _t('gen.search.multiple_help') ?></p>
  168. </div>
  169. </div>
  170. </fieldset>
  171. <div class="form-group form-actions">
  172. <div class="group-controls">
  173. <button type="submit" class="btn btn-important"><?= _t('gen.action.submit') ?></button>
  174. <button type="reset" class="btn"><?= _t('gen.action.cancel') ?></button>
  175. </div>
  176. </div>
  177. </form>
  178. </main>