partial('nav_menu');
$class = '';
$state_unread = false;
if (FreshRSS_Context::userConf()->hide_read_feeds &&
FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_NOT_READ) &&
!FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_READ)) {
$class = ' state_unread';
$state_unread = true;
}
?>
renderHelper('index/normal/entry_share_menu'); ?>
❌
❌
= _t('conf.reading.view.global') ?>
'index',
'a' => 'normal',
'params' => $params,
];
$unreadArticles = 0;
// When STATE_ALL is active (both read and unread), show total articles instead of only unread
$showTotalArticles = $this->feedIdsMatching === null && (FreshRSS_Context::$state === 0 || (
FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_READ) &&
FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_NOT_READ)));
foreach ($this->categories as $cat) {
$feeds = array_filter($cat->feeds(), fn(FreshRSS_Feed $feed): bool =>
$feed->priority() >= FreshRSS_Feed::PRIORITY_FEED &&
($this->feedIdsMatching === null || !empty($this->feedIdsMatching[$feed->id()])));
$url_base['params']['get'] = 'c_' . $cat->id();
if (!empty($feeds)) {
$unreadArticles += $cat->nbNotRead();
$catMatchingCount = $cat->nbNotRead();
if ($this->feedIdsMatching !== null) {
$catMatchingCount = 0;
foreach ($feeds as $feed) {
$catMatchingCount += $this->feedIdsMatching[$feed->id()] ?? 0;
}
} elseif ($showTotalArticles) {
$catMatchingCount = 0;
foreach ($feeds as $feed) {
$catMatchingCount += $feed->nbEntries();
}
}
?>
= _t('index.feed.empty') ?>