Fix infinite scroll to work on 1.0.x

add on_next_only configuration option
This commit is contained in:
Craig Andrews 2011-04-28 13:25:16 -04:00
parent bd3eb331a8
commit d9d9a10b6f
3 changed files with 24 additions and 5 deletions

View File

@ -40,6 +40,7 @@ class InfiniteScrollPlugin extends Plugin
function onEndShowScripts($action) function onEndShowScripts($action)
{ {
$action->inlineScript('var infinite_scroll_on_next_only = ' . ($this->on_next_only?'true':'false') . ';');
$action->script($this->path('jquery.infinitescroll.js')); $action->script($this->path('jquery.infinitescroll.js'));
$action->script($this->path('infinitescroll.js')); $action->script($this->path('infinitescroll.js'));
} }

View File

@ -3,7 +3,25 @@ When a user scrolls towards the bottom of the page, the next page of notices is
automatically retrieved and appended. This means they never need to click "Next automatically retrieved and appended. This means they never need to click "Next
Page", which dramatically increases stickiness. Page", which dramatically increases stickiness.
Note that there is a configuration option to make it so that the plugin doesn't
trigger when the user approaches the bottom of the page, but instead triggers
when the "next" button is clicked.
Installation Installation
============ ============
Add "addPlugin('InfiniteScroll');" to the bottom of your config.php Add "addPlugin('InfiniteScroll',
That's it! array('setting'=>'value', 'setting2'=>'value2', ...);"
to the bottom of your config.php
Settings
========
on_next_only (false): trigger infinite scroll when the next button is clicked.
Note that this means you really don't have "infinite scrolling" as the trigger
is clicking, not scrolling.
Example
=======
addPlugin('InfiniteScroll', array(
'on_next_only'=>false
));

View File

@ -1,7 +1,7 @@
jQuery(document).ready(function($){ jQuery(document).ready(function($){
$('notices_primary').infinitescroll({ $('notices_primary').infinitescroll({
debug: false, debug: false,
infiniteScroll : false, infiniteScroll : !infinite_scroll_on_next_only,
nextSelector : 'body#public li.nav_next a,'+ nextSelector : 'body#public li.nav_next a,'+
'body#all li.nav_next a,'+ 'body#all li.nav_next a,'+
'body#showstream li.nav_next a,'+ 'body#showstream li.nav_next a,'+
@ -12,9 +12,9 @@ jQuery(document).ready(function($){
loadingImg : $('address .url')[0].href+'plugins/InfiniteScroll/ajax-loader.gif', loadingImg : $('address .url')[0].href+'plugins/InfiniteScroll/ajax-loader.gif',
text : "<em>Loading the next set of posts...</em>", text : "<em>Loading the next set of posts...</em>",
donetext : "<em>Congratulations, you\'ve reached the end of the Internet.</em>", donetext : "<em>Congratulations, you\'ve reached the end of the Internet.</em>",
navSelector : ".pagination", navSelector : "#pagination",
contentSelector : "#notices_primary ol.notices", contentSelector : "#notices_primary ol.notices",
itemSelector : "#notices_primary ol.notices li" itemSelector : "#notices_primary ol.notices > li"
},function(){ },function(){
// Reply button and attachment magic need to be set up // Reply button and attachment magic need to be set up
// for each new notice. // for each new notice.