|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
$this->partial ('aside_flux');
|
|
|
|
|
$this->partial ('nav_menu');
|
|
|
|
|
|
|
|
|
|
if (isset ($this->entryPaginator) && !$this->entryPaginator->isEmpty ()) {
|
|
|
|
|
$items = $this->entryPaginator->items ();
|
|
|
|
|
?>
|
|
|
|
|
|
Grosse optimisation JavaScript
* Fusion de endless_mode.js dans main.js car endless_mode.js est
toujours chargé et assez petit.
* Suppression des changements de style en JavaScript lors du chargement
(genre boucle de .hide(), ou d'ajout de classe ".stick") et
implémentation en PHP + CSS à la place.
* Chargement JavaScript asynchrone (defer + async) pour de meilleurs
performances.
* Utilisation préférable des événements globaux plutôt que des
événements pour chaque élément avec jQuery.on(events, selector) pour un
chargement plus rapide et moins de mémoire utilisée.
* Optimisation manuelle du JavaScript (sélecteurs CSS plus performants,
méthodes jQuery plus appropriées, etc.).
* Désactivation de init_img() qui était coûteux, lancé à un moment où
les images ne sont de toute manière pas encore chargées, et qui
n'apporte rien car il y a déjà un img {max-width:100%} en CSS.
* JavaScript en mode strict.
* Enfin, passage du code JavaScript dans JSLint et du coup nombreuses
corrections (syntaxe, variables, méthodes dépréciées...).
* Devrait permettre de fermer
https://github.com/marienfressinaud/FreshRSS/issues/121
* Au passage, quelques simplifications CSS pour de meilleures
performances.
11 years ago
|
|
|
|
<div id="stream" class="normal<?php echo $this->conf->displayPosts () === 'no' ? ' hide_posts' : ''; ?>">
|
|
|
|
|
<?php
|
|
|
|
|
$display_today = true;
|
|
|
|
|
$display_yesterday = true;
|
|
|
|
|
$display_others = true;
|
|
|
|
|
|
|
|
|
|
$logged = !login_is_conf ($this->conf) || is_logged ();
|
|
|
|
|
$shaarli = $this->conf->sharing ('shaarli');
|
|
|
|
|
$poche = $this->conf->sharing ('poche');
|
|
|
|
|
$diaspora = $this->conf->sharing ('diaspora');
|
|
|
|
|
$twitter = $this->conf->sharing ('twitter');
|
|
|
|
|
$google_plus = $this->conf->sharing ('g+');
|
|
|
|
|
$facebook = $this->conf->sharing ('facebook');
|
|
|
|
|
$email = $this->conf->sharing ('email');
|
|
|
|
|
$print = $this->conf->sharing ('print');
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
<?php foreach ($items as $item) { ?>
|
|
|
|
|
|
|
|
|
|
<?php if ($display_today && $item->isDay (Days::TODAY)) { ?>
|
|
|
|
|
<div class="day" id="day_today">
|
|
|
|
|
<?php echo Translate::t ('today'); ?>
|
|
|
|
|
<span class="date"> - <?php echo timestamptodate (time (), false); ?></span>
|
|
|
|
|
<span class="name"><?php echo $this->currentName; ?></span>
|
|
|
|
|
</div>
|
|
|
|
|
<?php $display_today = false; } ?>
|
|
|
|
|
<?php if ($display_yesterday && $item->isDay (Days::YESTERDAY)) { ?>
|
|
|
|
|
<div class="day" id="day_yesterday">
|
|
|
|
|
<?php echo Translate::t ('yesterday'); ?>
|
|
|
|
|
<span class="date"> - <?php echo timestamptodate (time () - 86400, false); ?></span>
|
|
|
|
|
<span class="name"><?php echo $this->currentName; ?></span>
|
|
|
|
|
</div>
|
|
|
|
|
<?php $display_yesterday = false; } ?>
|
|
|
|
|
<?php if ($display_others && $item->isDay (Days::BEFORE_YESTERDAY)) { ?>
|
|
|
|
|
<div class="day" id="day_before_yesterday">
|
|
|
|
|
<?php echo Translate::t ('before_yesterday'); ?>
|
|
|
|
|
<span class="name"><?php echo $this->currentName; ?></span>
|
|
|
|
|
</div>
|
|
|
|
|
<?php $display_others = false; } ?>
|
|
|
|
|
|
|
|
|
|
<div class="flux<?php echo !$item->isRead () ? ' not_read' : ''; ?><?php echo $item->isFavorite () ? ' favorite' : ''; ?>" id="flux_<?php echo $item->id (); ?>">
|
|
|
|
|
<ul class="horizontal-list flux_header"><?php
|
|
|
|
|
if (!login_is_conf ($this->conf) || is_logged ()) {
|
|
|
|
|
if ($this->conf->toplineRead ()) {
|
|
|
|
|
?><li class="item manage"><?php
|
|
|
|
|
?><a class="read" href="<?php echo _url ('entry', 'read', 'id', $item->id (), 'is_read', $item->isRead () ? 0 : 1); ?>"><?php
|
|
|
|
|
echo RSSThemes::icon($item->isRead () ? 'read' : 'unread'); ?></a><?php
|
|
|
|
|
?></li><?php
|
|
|
|
|
}
|
|
|
|
|
if ($this->conf->toplineFavorite ()) {
|
|
|
|
|
?><li class="item manage"><?php
|
|
|
|
|
?><a class="bookmark" href="<?php echo _url ('entry', 'bookmark', 'id', $item->id (), 'is_favorite', $item->isFavorite () ? 0 : 1); ?>"><?php
|
|
|
|
|
echo RSSThemes::icon($item->isFavorite () ? 'starred' : 'non-starred'); ?></a><?php
|
|
|
|
|
?></li><?php
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$feed = HelperCategory::findFeed($this->cat_aside, $item->feed ()); //We most likely already have the feed object in cache
|
|
|
|
|
if (empty($feed)) $feed = $item->feed (true);
|
|
|
|
|
?>
|
|
|
|
|
<li class="item website"><a href="<?php echo _url ('index', 'index', 'get', 'f_' . $feed->id ()); ?>"><img class="favicon" src="<?php echo $feed->favicon (); ?>" alt="✇" /> <span><?php echo $feed->name(); ?></span></a></li>
|
|
|
|
|
<li class="item title"><a target="_blank" href="<?php echo $item->link (); ?>"><?php echo $item->title (); ?></a></li>
|
|
|
|
|
<?php if ($this->conf->toplineDate ()) { ?><li class="item date"><?php echo $item->date (); ?> </li><?php } ?>
|
|
|
|
|
<?php if ($this->conf->toplineLink ()) { ?><li class="item link"><a target="_blank" href="<?php echo $item->link (); ?>"><?php echo RSSThemes::icon('link'); ?></a></li><?php } ?>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<div class="flux_content">
|
|
|
|
|
<div class="content">
|
|
|
|
|
<h1 class="title"><?php echo $item->title (); ?></h1>
|
|
|
|
|
<?php
|
|
|
|
|
$author = $item->author ();
|
|
|
|
|
echo $author != '' ? '<div class="author">' . Translate::t ('by_author', $author) . '</div>' : '';
|
|
|
|
|
if($this->conf->lazyload() == 'yes') {
|
|
|
|
|
echo lazyimg($item->content ());
|
|
|
|
|
} else {
|
|
|
|
|
echo $item->content();
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<ul class="horizontal-list bottom"><?php
|
|
|
|
|
if (!login_is_conf ($this->conf) || is_logged ()) {
|
|
|
|
|
if ($this->conf->bottomlineRead ()) {
|
|
|
|
|
?><li class="item manage"><?php
|
|
|
|
|
?><a class="read" href="<?php echo _url ('entry', 'read', 'id', $item->id (), 'is_read', $item->isRead () ? 0 : 1); ?>"><?php
|
|
|
|
|
echo RSSThemes::icon($item->isRead () ? 'read' : 'unread'); ?></a><?php
|
|
|
|
|
?></li><?php
|
|
|
|
|
}
|
|
|
|
|
if ($this->conf->bottomlineFavorite ()) {
|
|
|
|
|
?><li class="item manage"><?php
|
|
|
|
|
?><a class="bookmark" href="<?php echo _url ('entry', 'bookmark', 'id', $item->id (), 'is_favorite', $item->isFavorite () ? 0 : 1); ?>"><?php
|
|
|
|
|
echo RSSThemes::icon($item->isFavorite () ? 'starred' : 'non-starred'); ?></a><?php
|
|
|
|
|
?></li><?php
|
|
|
|
|
}
|
|
|
|
|
} ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<?php
|
|
|
|
|
if ($this->conf->bottomlineSharing () && (
|
|
|
|
|
$shaarli || $poche || $diaspora || $twitter ||
|
|
|
|
|
$google_plus || $facebook || $email
|
|
|
|
|
)) {
|
|
|
|
|
$link = urlencode ($item->link ());
|
|
|
|
|
$title = urlencode ($item->title () . ' - ' . $feed->name ());
|
|
|
|
|
?>
|
|
|
|
|
<div class="dropdown">
|
|
|
|
|
<div id="dropdown-share-<?php echo $item->id ();?>" class="dropdown-target"></div>
|
|
|
|
|
<a class="dropdown-toggle" href="#dropdown-share-<?php echo $item->id ();?>">
|
|
|
|
|
<?php echo RSSThemes::icon('share'); ?>
|
|
|
|
|
<?php echo Translate::t ('share'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<ul class="dropdown-menu">
|
|
|
|
|
<li class="dropdown-close"><a href="#close">❌</a></li>
|
|
|
|
|
<?php if ($logged && $shaarli) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="<?php echo $shaarli . '?post=' . $link . '&title=' . $title . '&source=FreshRSS'; ?>">
|
|
|
|
|
<?php echo Translate::t ('shaarli'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } if ($logged && $poche) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="<?php echo $poche . '?action=add&url=' . base64_encode (urldecode($link)); ?>">
|
|
|
|
|
<?php echo Translate::t ('poche'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } if ($logged && $diaspora) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="<?php echo $diaspora . '/bookmarklet?url=' . $link . '&title=' . $title; ?>">
|
|
|
|
|
<?php echo Translate::t ('diaspora'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } if ($twitter) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="https://twitter.com/share?url=<?php echo $link; ?>&text=<?php echo $title; ?>">
|
|
|
|
|
<?php echo Translate::t ('twitter'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } if ($google_plus) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="https://plus.google.com/share?url=<?php echo $link; ?>">
|
|
|
|
|
<?php echo Translate::t ('g+'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } if ($facebook) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="https://www.facebook.com/sharer.php?u=<?php echo $link; ?>&t=<?php echo $title; ?>">
|
|
|
|
|
<?php echo Translate::t ('facebook'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } if ($email) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a href="mailto:?subject=<?php echo urldecode($title); ?>&body=<?php echo $link; ?>">
|
|
|
|
|
<?php echo Translate::t ('by_email'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } if ($print) { ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a href="#" class="print-article">
|
|
|
|
|
<?php echo Translate::t ('print'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
</li>
|
|
|
|
|
<?php
|
|
|
|
|
$tags = $this->conf->bottomlineTags () ? $item->tags() : null;
|
|
|
|
|
if (!empty($tags)) {
|
|
|
|
|
?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<div class="dropdown">
|
|
|
|
|
<div id="dropdown-tags-<?php echo $item->id ();?>" class="dropdown-target"></div>
|
|
|
|
|
<a class="dropdown-toggle" href="#dropdown-tags-<?php echo $item->id ();?>">
|
|
|
|
|
<?php echo RSSThemes::icon('tag'); ?>
|
|
|
|
|
<?php echo Translate::t ('related_tags'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
<ul class="dropdown-menu">
|
|
|
|
|
<li class="dropdown-close"><a href="#close">❌</a></li>
|
|
|
|
|
<?php foreach($tags as $tag) { ?>
|
|
|
|
|
<li class="item"><a href="<?php echo _url ('index', 'index', 'search', urlencode ('#' . $tag)); ?>"><?php echo $tag; ?></a></li>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
<?php if ($this->conf->bottomlineDate ()) { ?><li class="item date"><?php echo $item->date (); ?> </li><?php } ?>
|
|
|
|
|
<?php if ($this->conf->bottomlineLink ()) { ?><li class="item link"><a target="_blank" href="<?php echo $item->link (); ?>"><?php echo RSSThemes::icon('link'); ?></a></li><?php } ?>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
|
|
|
|
|
<?php $this->entryPaginator->render ('pagination.phtml', 'next'); ?>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<?php $this->partial ('nav_entries'); ?>
|
|
|
|
|
|
|
|
|
|
<?php } else { ?>
|
|
|
|
|
<div id="stream" class="alert alert-warn normal">
|
|
|
|
|
<span class="alert-head"><?php echo Translate::t ('no_feed_to_display'); ?></span>
|
|
|
|
|
</div>
|
|
|
|
|
<?php } ?>
|