global.phtml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. declare(strict_types=1);
  3. /** @var FreshRSS_View $this */
  4. $this->partial('nav_menu');
  5. $class = '';
  6. $state_unread = false;
  7. if (FreshRSS_Context::userConf()->hide_read_feeds &&
  8. FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_NOT_READ) &&
  9. !FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_READ)) {
  10. $class = ' state_unread';
  11. $state_unread = true;
  12. }
  13. ?>
  14. <main id="stream" class="global<?= $class ?>">
  15. <h1 class="title_hidden"><?= _t('conf.reading.view.global') ?></h1>
  16. <?php
  17. $params = $_GET;
  18. unset($params['c']);
  19. unset($params['a']);
  20. $url_base = array(
  21. 'c' => 'index',
  22. 'a' => 'normal',
  23. 'params' => $params,
  24. );
  25. $unreadArticles = 0;
  26. foreach ($this->categories as $cat) {
  27. $feeds = $cat->feeds();
  28. $url_base['params']['get'] = 'c_' . $cat->id();
  29. if (!empty($feeds)) {
  30. $unreadArticles += $cat->nbNotRead();
  31. ?>
  32. <div class="box category" data-unread="<?= $cat->nbNotRead() ?>">
  33. <div class="box-title"><a class="title" data-unread="<?= format_number($cat->nbNotRead()) ?>"
  34. href="<?= Minz_Url::display($url_base) ?>"><h2><?= $cat->name() ?></h2></a></div>
  35. <ul class="box-content scrollbar-thin">
  36. <?php
  37. foreach ($feeds as $feed) {
  38. $nb_not_read = $feed->nbNotRead();
  39. $error_class = '';
  40. $error_title = '';
  41. if ($feed->inError() && !$feed->mute()) {
  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. $url_base['params']['get'] = 'f_' . $feed->id();
  53. ?>
  54. <li id="f_<?= $feed->id() ?>" class="item feed<?= $error_class, $empty_class, $mute_class ?>" title="<?= $error_title, $empty_title ?>"
  55. data-unread="<?= $feed->nbNotRead() ?>" data-priority="<?= $feed->priority() ?>">
  56. <?php if (FreshRSS_Context::userConf()->show_favicons): ?><img class="favicon" src="<?= $feed->favicon() ?>" alt="✇" loading="lazy" /><?php endif; ?>
  57. <a class="item-title" data-unread="<?= format_number($feed->nbNotRead()) ?>" href="<?= Minz_Url::display($url_base) ?>"><?= $feed->name() ?></a>
  58. </li>
  59. <?php } ?>
  60. </ul>
  61. </div>
  62. <?php
  63. }
  64. }
  65. if ($unreadArticles < 1 && $state_unread) {
  66. ?>
  67. <div id="noArticlesToShow" class="prompt alert alert-warn">
  68. <h2 class="alert-head"><?= _t('index.feed.empty') ?></h2>
  69. </div>
  70. <?php } ?>
  71. </main>
  72. <div id="overlay">
  73. <a class="close" href="#"><?= _i('close') ?></a>
  74. <div id="panel"<?= FreshRSS_Context::userConf()->display_posts ? '' : ' class="hide_posts"' ?>>
  75. </div>
  76. </div>