index.phtml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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('sub.title') ?></h1>
  8. <?php if ($this->onlyFeedsWithError): ?>
  9. <div class="link-showAllFeeds-wrapper">
  10. <a href="<?= _url('subscription', 'index') ?>">← <?= _t('sub.feed.show.all') ?></a>
  11. </div>
  12. <p class="alert alert-warn">
  13. <?= _t('sub.feed.showing.error') ?>
  14. </p>
  15. <?php endif; ?>
  16. <?php if (!$this->onlyFeedsWithError && $this->signalError) { ?>
  17. <div>
  18. <a class="btn btn-icon-text" href="<?= _url('subscription', 'index', 'error', '1') ?>"><?= _i('look') ?> <?= _t('sub.feed.show.error') ?></a>
  19. </div>
  20. <?php } ?>
  21. <div class="drop-section">
  22. <?php
  23. $signalError = false;
  24. foreach ($this->categories as $cat) {
  25. $feeds = $cat->feeds();
  26. ?>
  27. <div class="box">
  28. <div class="box-title">
  29. <a class="configure open-slider" href="<?= _url('category', 'update', 'id', $cat->id()) ?>" title="<?= _t('gen.action.manage') ?>" data-cat-position="<?= $cat->attributeString('position') ?>"><?= _i('configure') ?></a>
  30. <h2><?= $cat->name() ?><?= $cat->kind() === FreshRSS_Category::KIND_DYNAMIC_OPML ? ' ' . _i('opml-dyn') : '' ?></h2>
  31. </div>
  32. <ul class="box-content drop-zone scrollbar-thin" dropzone="move" data-cat-id="<?= $cat->id() ?>">
  33. <?php
  34. if (!empty($feeds)) {
  35. foreach ($feeds as $feed) {
  36. if ($this->onlyFeedsWithError && !$feed->inError()) {
  37. continue;
  38. }
  39. $error_class = '';
  40. $error_title = '';
  41. if ($feed->inError()) {
  42. $error_class = ' error';
  43. $error_title = _t('sub.feed.error');
  44. }
  45. $empty_class = '';
  46. $empty_title = '';
  47. if ($feed->nbEntries() == 0) {
  48. $empty_class = ' empty';
  49. $empty_title = _t('sub.feed.empty');
  50. }
  51. $mute_class = $feed->mute() ? ' mute' : '';
  52. $title = $error_title !== '' ? '⚠ ' . $error_title . '&#13;' : '';
  53. $title .= $empty_title !== '' ? $empty_title . '&#13;' : '';
  54. $title .= $feed->mute() ? '🔇 ' . _t('sub.feed.mute.state_is_muted') : '';
  55. ?>
  56. <li class="item feed<?= $error_class, $empty_class, $mute_class ?>" title="<?= $title ?>"
  57. draggable="true" data-feed-id="<?= $feed->id() ?>" data-priority="<?= $feed->priority() ?>">
  58. <a class="configure open-slider" href="<?= _url('subscription', 'feed', 'id', $feed->id(), 'error', Minz_Request::paramBoolean('error') ? 1 : 0) ?>" title="<?= _t('gen.action.manage') ?>"><?= _i('configure') ?></a><?php
  59. if (FreshRSS_Context::userConf()->show_favicons): ?><img class="favicon" src="<?= $feed->favicon() ?>" alt="✇" loading="lazy" /><?php
  60. endif; ?><span class="item-title"><?= $feed->name() ?></span>
  61. </li>
  62. <?php
  63. }
  64. } else {
  65. ?>
  66. <li class="item feed disabled emptyCategory"><div class="alert-warn"><?= _t('sub.category.empty') ?></div></li>
  67. <?php } ?>
  68. <?php if ($cat->kind() != FreshRSS_Category::KIND_DYNAMIC_OPML): ?>
  69. <li class="item feed"><a href="<?= _url('subscription', 'add', 'cat_id', $cat->id()) ?>"><?= _i('add') ?><?= _t('sub.feed.add') ?></a></li>
  70. <?php endif; ?>
  71. </ul>
  72. </div>
  73. <?php } ?>
  74. <div class="box visible-semi">
  75. <div class="box-title">
  76. <a href="<?= _url('subscription', 'add') ?>"><?= _i('add') ?> <h2><?= _t('sub.category.add') ?></h2></a>
  77. </div>
  78. <div class="box-content">
  79. </div>
  80. </div>
  81. </div>
  82. </main>
  83. <?php $class = isset($this->feed) || isset($this->category) ? ' active' : ''; ?>
  84. <aside id="slider" class="<?= $class ?>">
  85. <a class="toggle_aside" href="#close"><?= _i('close') ?></a>
  86. <div id="slider-content">
  87. <?php
  88. if (isset($this->feed)) {
  89. $this->renderHelper('feed/update');
  90. } elseif (isset($this->category)) {
  91. $this->renderHelper('category/update');
  92. }
  93. ?>
  94. </div>
  95. </aside>
  96. <a href="#close" id="close-slider">
  97. <?= _i('close') ?>
  98. </a>