diff options
| author | 2012-11-07 00:24:50 +0100 | |
|---|---|---|
| committer | 2012-11-07 00:24:50 +0100 | |
| commit | 567d19a98934747d0817ad58a008dce7d5df0d92 (patch) | |
| tree | 71dc846975d00fa8a0ca42d2134588cf37e76bbc | |
| parent | f3f2bc7471ebb77e6f8adfa5371d055980401bef (diff) | |
Fix issue #7 : ajout du mode endless
| -rwxr-xr-x | app/controllers/indexController.php | 1 | ||||
| -rw-r--r-- | app/views/index/index.phtml | 2 | ||||
| -rw-r--r-- | app/views/javascript/main.phtml | 13 | ||||
| -rw-r--r-- | lib/lib_rss.php | 1 | ||||
| -rw-r--r-- | public/scripts/endless_mode.js | 28 | ||||
| -rw-r--r-- | public/theme/base.css | 16 |
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 { |
