|
|
|
|
<?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;
|
|
|
|
|
?>
|
|
|
|
|
<?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 ()) { ?>
|
|
|
|
|
<?php if ($this->conf->toplineRead ()) { ?><li class="item manage"><a class="read" href="<?php echo _url ('entry', 'read', 'id', $item->id (), 'is_read', $item->isRead () ? 0 : 1); ?>"> </a></li><?php } ?>
|
|
|
|
|
<?php if ($this->conf->toplineFavorite ()) { ?><li class="item manage"><a class="bookmark" href="<?php echo _url ('entry', 'bookmark', 'id', $item->id (), 'is_favorite', $item->isFavorite () ? 0 : 1); ?>"> </a></li><?php } ?>
|
|
|
|
|
<?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 (); ?>"> </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 ()) { ?>
|
|
|
|
|
<?php if ($this->conf->bottomlineRead ()) { ?><li class="item manage"><a class="read" href="<?php echo _url ('entry', 'read', 'id', $item->id (), 'is_read', $item->isRead () ? 0 : 1); ?>"> </a></li><?php } ?>
|
|
|
|
|
<?php if ($this->conf->bottomlineFavorite ()) { ?><li class="item manage"><a class="bookmark" href="<?php echo _url ('entry', 'bookmark', 'id', $item->id (), 'is_favorite', $item->isFavorite () ? 0 : 1); ?>"> </a></li><?php } ?>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<?php
|
|
|
|
|
if ($this->conf->bottomlineSharing ()) {
|
|
|
|
|
$link = urlencode ($item->link ());
|
|
|
|
|
$title = urlencode ($item->title () . ' - ' . $feed->name ());
|
|
|
|
|
?>
|
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 class="dropdown">
|
|
|
|
|
<div id="dropdown-share-<?php echo $item->id ();?>" class="dropdown-target"></div>
|
|
|
|
|
<i class="icon i_share"></i> <a class="dropdown-toggle" href="#dropdown-share-<?php echo $item->id ();?>"><?php echo Translate::t ('share'); ?></a>
|
|
|
|
|
|
|
|
|
|
<ul class="dropdown-menu">
|
|
|
|
|
<li class="dropdown-close"><a href="#close"> </a></li>
|
|
|
|
|
<?php
|
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
|
|
|
|
$shaarli = $this->conf->urlShaarli ();
|
|
|
|
|
if ((!login_is_conf ($this->conf) || is_logged ()) && $shaarli) {
|
|
|
|
|
?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="<?php echo $shaarli . '?post=' . $link . '&title=' . $title . '&source=bookmarklet'; ?>">
|
|
|
|
|
Shaarli
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a href="mailto:?subject=<?php echo urldecode($title); ?>&body=<?php echo $link; ?>">
|
|
|
|
|
<?php echo Translate::t ('by_email'); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="https://twitter.com/share?url=<?php echo $link; ?>&text=<?php echo $title; ?>">
|
|
|
|
|
Twitter
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="https://www.facebook.com/sharer.php?u=<?php echo $link; ?>&t=<?php echo $title; ?>">
|
|
|
|
|
Facebook
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="item">
|
|
|
|
|
<a target="_blank" href="https://plus.google.com/share?url=<?php echo $link; ?>">
|
|
|
|
|
Google+
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</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>
|
|
|
|
|
<i class="icon i_tag"></i> <a class="dropdown-toggle" href="#dropdown-tags-<?php echo $item->id ();?>"><?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 (); ?>"> </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 } ?>
|