summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-11-07 00:24:50 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-11-07 00:24:50 +0100
commit567d19a98934747d0817ad58a008dce7d5df0d92 (patch)
tree71dc846975d00fa8a0ca42d2134588cf37e76bbc
parentf3f2bc7471ebb77e6f8adfa5371d055980401bef (diff)
Fix issue #7 : ajout du mode endless
-rwxr-xr-xapp/controllers/indexController.php1
-rw-r--r--app/views/index/index.phtml2
-rw-r--r--app/views/javascript/main.phtml13
-rw-r--r--lib/lib_rss.php1
-rw-r--r--public/scripts/endless_mode.js28
-rw-r--r--public/theme/base.css16
6 files changed, 58 insertions, 3 deletions
diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php
index c6373cb29..7d878108d 100755
--- a/app/controllers/indexController.php
+++ b/app/controllers/indexController.php
@@ -5,6 +5,7 @@ class indexController extends ActionController {
View::appendScript (Url::display ('/scripts/smoothscroll.js'));
View::appendScript (Url::display ('/scripts/shortcut.js'));
View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'main')));
+ View::appendScript (Url::display ('/scripts/endless_mode.js'));
$entryDAO = new EntryDAO ();
$catDAO = new CategoryDAO ();
diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml
index 5e860b8f9..08c3aa721 100644
--- a/app/views/index/index.phtml
+++ b/app/views/index/index.phtml
@@ -14,7 +14,7 @@
<?php $this->entryPaginator->render ('pagination.phtml', 'page'); ?>
<?php foreach ($items as $item) { ?>
- <div class="post flux<?php echo !$item->isRead () ? ' not_read' : ''; ?><?php echo $item->isFavorite () ? ' favorite' : ''; ?>">
+ <div class="post flux<?php echo !$item->isRead () ? ' not_read' : ''; ?><?php echo $item->isFavorite () ? ' favorite' : ''; ?>" id="flux_<?php echo $item->id (); ?>">
<?php $author = $item->author (); ?>
<div class="before">
<?php $feed = $item->feed (true); ?>
diff --git a/app/views/javascript/main.phtml b/app/views/javascript/main.phtml
index 82577bd62..e416cad95 100644
--- a/app/views/javascript/main.phtml
+++ b/app/views/javascript/main.phtml
@@ -32,6 +32,11 @@ function slide (new_active, old_active) {
offset: new_active.position ().top + 25
});
}
+
+ // si le dernier post est actif, on charge les suivants
+ if (new_active.attr ("id") == $(".post.flux:last").attr ("id")) {
+ load_more_posts ();
+ }
}
function add_not_read (nb) {
@@ -103,9 +108,9 @@ function mark_favorite (active) {
});
}
-$(document).ready (function () {
+function init_posts () {
if (hide_posts) {
- $(".post.flux .content").slideToggle ();
+ $(".post.flux:not(.active) .content").slideUp ();
}
$(".post.flux").click (function () {
@@ -134,6 +139,10 @@ $(document).ready (function () {
$(".post.flux .content a").click (function () {
$(this).attr ('target', '_blank');
});
+}
+
+$(document).ready (function () {
+ init_posts ();
// Touches de manipulation
shortcut.add("<?php echo $s['mark_read']; ?>", function () {
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index 08da6fe08..8f4b6cc3a 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -186,6 +186,7 @@ function good_bye_extra ($element) {
$element->style = null;
$element->class = null;
$element->id = null;
+ $element->onload = null;
}
/* permet de récupérer le contenu d'un article pour un flux qui n'est pas complet */
function get_content_by_parsing ($url, $path) {
diff --git a/public/scripts/endless_mode.js b/public/scripts/endless_mode.js
new file mode 100644
index 000000000..ca3c12572
--- /dev/null
+++ b/public/scripts/endless_mode.js
@@ -0,0 +1,28 @@
+var url = "";
+
+function load_more_posts () {
+ $.get (url, function (data) {
+ $("#load_more").before ($("#stream .post", data));
+
+ url = $(".pagination:last li.pager-next a", data).attr ("href");
+ if (url === undefined) {
+ $("#load_more").html ("Il n'y a plus rien à charger");
+ $("#load_more").addClass ("disable");
+ }
+
+ init_posts ();
+ });
+}
+
+$(document).ready (function () {
+ url = $(".pagination:last li.pager-next a").attr ("href");
+ $(".pagination").remove ();
+
+ $("#stream").append ("<a id=\"load_more\" href=\"#\">Charger plus d'articles</a>");
+
+ $("#load_more").click (function () {
+ load_more_posts ();
+
+ return false;
+ });
+});
diff --git a/public/theme/base.css b/public/theme/base.css
index c9504b833..d1c20b3d6 100644
--- a/public/theme/base.css
+++ b/public/theme/base.css
@@ -336,6 +336,22 @@ form {
display: block;
color: #F09600;
}
+a#load_more {
+ display: block;
+ width: 90%;
+ height: 50px;
+ margin: 0 auto;
+ background: #eee;
+ border-radius: 5px;
+ box-shadow: 0 0 3px #aaa;
+ line-height: 50px;
+ text-align: center;
+ font-weight: bold;
+}
+ a#load_more.disable {
+ text-decoration: none !important;
+ color: #666;
+ }
/*** NOTIFICATION ***/
#notification {