Files
FreshRSS/app/views/index/reader.phtml
T
Alexis Degrugillier 31cb07ac1a Fix author search link (#3315)
Before, when clicking on the author link, the search was done on the
main stream in the normal view. It's fine until the feed is not visible
in the main stream.
Now, the current context is used along with the search.

See #3314
2021-01-03 00:59:57 +01:00

84 lines
3.2 KiB
PHTML

<?php
$this->partial('aside_feed');
$this->partial('nav_menu');
call_user_func($this->callbackBeforeEntries, $this);
$lazyload = FreshRSS_Context::$user_conf->lazyload;
$content_width = FreshRSS_Context::$user_conf->content_width;
?>
<div id="stream" class="reader">
<div id="new-article">
<a href="<?= Minz_Url::display(Minz_Request::currentRequest()) ?>"><?= _t('gen.js.new_article'); /* TODO: move string in JS*/ ?></a>
</div><?php
$lastEntry = null;
$nbEntries = 0;
foreach ($this->entries as $item):
$lastEntry = $item;
$nbEntries++;
ob_flush();
$item = Minz_ExtensionManager::callHook('entry_before_display', $item);
if ($item == null) {
continue;
}
?><div class="flux<?= !$item->isRead() ? ' not_read' : '' ?><?= $item->isFavorite() ? ' favorite' : '' ?>" id="flux_<?= $item->id() ?>">
<div class="flux_content" dir="auto">
<div class="content <?= $content_width ?>">
<?php
$feed = FreshRSS_CategoryDAO::findFeed($this->categories, $item->feed()); //We most likely already have the feed object in cache
if (empty($feed)) $feed = $item->feed(true);
$favoriteUrl = array('c' => 'entry', 'a' => 'bookmark', 'params' => array('id' => $item->id()));
if ($item->isFavorite()) {
$favoriteUrl['params']['is_favorite'] = 0;
}
$readUrl = array('c' => 'entry', 'a' => 'read', 'params' => array('id' => $item->id()));
if ($item->isRead()) {
$readUrl['params']['is_read'] = 0;
}
?>
<a class="read" href="<?= Minz_Url::display($readUrl) ?>">
<?= _i($item->isRead() ? 'read' : 'unread') ?>
</a>
<a class="bookmark" href="<?= Minz_Url::display($favoriteUrl) ?>">
<?= _i($item->isFavorite() ? 'starred' : 'non-starred') ?>
</a>
<a class="website" href="<?= _url('index', 'reader', 'get', 'f_' . $feed->id()) ?>">
<?php if (FreshRSS_Context::$user_conf->show_favicons): ?><img class="favicon" src="<?= $feed->favicon() ?>" alt="✇" loading="lazy" /><?php endif; ?>
<span><?= $feed->name() ?></span>
</a>
<h1 class="title"><a target="_blank" rel="noreferrer" class="go_website" href="<?= $item->link() ?>"><?= $item->title() ?></a></h1>
<div class="author"><?php
$authors = $item->authors();
if (is_array($authors)):
$first = true;
foreach ($authors as $author):
echo $first ? _t('gen.short.by_author') . ' ' : '· ';
$first = false;
?>
<em><a href="<?= Minz_Url::display(Minz_Request::modifiedCurrentRequest(['search' => 'author:' . str_replace(' ', '+', htmlspecialchars_decode($author, ENT_QUOTES))])) ?>"><?= $author ?></a></em>
<?php
endforeach;
echo ' — ';
endif;
?><time datetime="<?= $item->machineReadableDate() ?>"><?= $item->date() ?></time></div><div class="text">
<?= $item->content() ?>
</div></div>
</div>
</div><?php
endforeach;
if ($nbEntries > 0):
call_user_func($this->callbackBeforePagination, $this, $nbEntries, $lastEntry);
$this->renderHelper('pagination');
?></div><?php
else:
ob_end_clean(); //Discard the articles headers, as we have no articles
?>
<div id="stream" class="prompt alert alert-warn reader">
<h2><?= _t('index.feed.empty') ?></h2>
<a href="<?= _url('subscription', 'index') ?>"><?= _t('index.feed.add') ?></a><br /><br />
</div>
<?php endif; ?>