global.phtml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. <datalist id="datalist-labels"></datalist>
  15. <template id="share_article_template">
  16. <?php $this->renderHelper('index/normal/entry_share_menu'); ?>
  17. <a class="dropdown-close" href="#close">❌</a>
  18. </template>
  19. <main id="stream" class="global<?= $class ?>">
  20. <h1 class="title_hidden"><?= _t('conf.reading.view.global') ?></h1>
  21. <?php
  22. $params = $_GET;
  23. unset($params['c']);
  24. unset($params['a']);
  25. $url_base = array(
  26. 'c' => 'index',
  27. 'a' => 'normal',
  28. 'params' => $params,
  29. );
  30. $unreadArticles = 0;
  31. foreach ($this->categories as $cat) {
  32. $feeds = $cat->feeds();
  33. $url_base['params']['get'] = 'c_' . $cat->id();
  34. if (!empty($feeds)) {
  35. $unreadArticles += $cat->nbNotRead();
  36. ?>
  37. <div class="box category" data-unread="<?= $cat->nbNotRead() ?>">
  38. <div class="box-title"><a class="title" data-unread="<?= format_number($cat->nbNotRead()) ?>"
  39. href="<?= Minz_Url::display($url_base) ?>"><h2><?= $cat->name() ?></h2></a></div>
  40. <ul class="box-content scrollbar-thin">
  41. <?php
  42. foreach ($feeds as $feed) {
  43. $nb_not_read = $feed->nbNotRead();
  44. $error_class = '';
  45. $error_title = '';
  46. if ($feed->inError() && !$feed->mute()) {
  47. $error_class = ' error';
  48. $error_title = _t('sub.feed.error');
  49. }
  50. $empty_class = '';
  51. $empty_title = '';
  52. if ($feed->nbEntries() == 0) {
  53. $empty_class = ' empty';
  54. $empty_title = _t('sub.feed.empty');
  55. }
  56. $mute_class = $feed->mute() ? ' mute' : '';
  57. $url_base['params']['get'] = 'f_' . $feed->id();
  58. ?>
  59. <li id="f_<?= $feed->id() ?>" class="item feed<?= $error_class, $empty_class, $mute_class ?>" title="<?= $error_title, $empty_title ?>"
  60. data-unread="<?= $feed->nbNotRead() ?>" data-priority="<?= $feed->priority() ?>">
  61. <?php if (FreshRSS_Context::userConf()->show_favicons): ?><img class="favicon" src="<?= $feed->favicon() ?>" alt="✇" loading="lazy" /><?php endif; ?>
  62. <a class="item-title" data-unread="<?= format_number($feed->nbNotRead()) ?>" href="<?= Minz_Url::display($url_base) ?>"><?= $feed->name() ?></a>
  63. </li>
  64. <?php } ?>
  65. </ul>
  66. </div>
  67. <?php
  68. }
  69. }
  70. if ($unreadArticles < 1 && $state_unread) {
  71. ?>
  72. <div id="noArticlesToShow" class="prompt alert alert-warn">
  73. <h2 class="alert-head"><?= _t('index.feed.empty') ?></h2>
  74. </div>
  75. <?php } ?>
  76. </main>
  77. <div id="overlay">
  78. <a class="close" href="#"><?= _i('close') ?></a>
  79. <div id="panel"<?= FreshRSS_Context::userConf()->display_posts ? '' : ' class="hide_posts"' ?>>
  80. </div>
  81. </div>