Changeset 13194
- Timestamp:
- Feb 16, 2012, 8:51:48 PM (12 years ago)
- Location:
- extensions/rv_tscroller
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/rv_tscroller/main.inc.php
r12735 r13194 1 1 <?php /* 2 2 Plugin Name: RV Thumb Scroller 3 Version: 2. 3.d3 Version: 2.4.a 4 4 Plugin URI: http://piwigo.org/ext/extension_view.php?eid=493 5 5 Description: Loads async using ajax thumbnails on index page as you scroll down the page … … 7 7 Author URI: http://www.modusoptimus.com 8 8 */ 9 define('RVTS_VERSION', '2 .3.d');9 define('RVTS_VERSION', '24a'); 10 10 11 11 class RVTS … … 14 14 { 15 15 global $page; 16 if (!@$page['start']) 16 $page['nb_image_page'] *= pwg_get_session_var('rvts_mult', 1); 17 if (count($page['items'])<$page['nb_image_page']+3) 17 18 { 18 if (script_basename()!='picture') 19 $page['nb_image_page'] *= pwg_get_session_var('rvts_mult', 1); 20 if (count($page['items'])<$page['nb_image_page']+3) 19 if (!@$page['start'] || script_basename()=='picture') 21 20 $page['nb_image_page'] = max($page['nb_image_page'], count($page['items'])); 22 21 } … … 30 29 if (!$is_ajax) 31 30 { 32 if (empty($page['items']) || @$page['start']>0)31 if (empty($page['items'])) 33 32 add_event_handler('loc_end_index', array('RVTS','on_end_index')); 34 33 else … … 63 62 return $thumbs; 64 63 } 65 $per_page = $page['nb_image_page'];66 64 $url_model = str_replace('123456789', '%start%', duplicate_index_url( array('start'=>123456789) ) ); 67 65 $ajax_url_model = add_url_params($url_model, array( 'rvts'=>'%per%' ) ); … … 84 82 'version' => RVTS_VERSION, 85 83 ), $template->smarty); 84 $start = (int)$page['start']; 85 $per_page = $page['nb_image_page']; 86 86 $moreMsg = 'See the remaining %d photos'; 87 87 if ('en' != $GLOBALS['lang_info']['code']) … … 95 95 "var RVTS = { 96 96 ajaxUrlModel: String.fromCharCode(".ord($ajax_url_model[0]).")+'".substr($ajax_url_model,1)."', 97 start: $per_page, 97 start: $start, 98 perPage: $per_page, 99 next: ".($start+$per_page).", 98 100 total: $total, 99 perPage: $per_page,100 101 moreUrlModel: String.fromCharCode(".ord($url_model[0]).")+'".substr($url_model,1)."', 101 102 moreMsg: '$moreMsg', 103 prevMsg: '".l10n("Previous")."', 102 104 ajaxLoaderImage: '$ajax_loader_image' 103 105 };", … … 140 142 141 143 add_event_handler('loc_end_section_init', array('RVTS','on_end_section_init')); 142 143 144 ?> -
extensions/rv_tscroller/rv_tscroller.js
r12735 r13194 5 5 (function($){ 6 6 $('.navigationBar').hide(); 7 if (RVTS.start>0) { 8 var $f = $('.navigationBar A[rel=first]'); 9 var f = '<a href="'+$f.attr("href")+'">'+$f.html()+'</a> | '; 10 $('#thumbnails').before( '<div id=rvtsUp style="text-align:center;font-size:120%;margin:10px">'+f+'<a href="javascript:RVTS.loadUp()">'+RVTS.prevMsg+"</a></div>" ); 11 } 7 12 8 13 RVTS = $.fn.extend( RVTS, { 9 14 loading: 0, 15 loadingUp: 0, 10 16 adjust: 0, 11 17 18 loadUp: function() { 19 if (RVTS.loadingUp || RVTS.start <= 0) return; 20 var newStart = RVTS.start-RVTS.perPage, 21 reqCount = RVTS.perPage; 22 if (newStart<0) 23 { 24 reqCount += newStart; 25 newStart = 0; 26 } 27 var url = RVTS.ajaxUrlModel.replace('%start%', newStart).replace('%per%', reqCount); 28 $('#ajaxLoader').show(); 29 RVTS.loadingUp = 1; 30 $.ajax({ 31 type:'GET', dataType:'html', 'url': url, 32 success: function(htm) { 33 RVTS.start = newStart; 34 RVTS.$thumbs.prepend(htm); 35 if (RVTS.start<=0) 36 $("#rvtsUp").remove(); 37 }, 38 complete: function() { 39 RVTS.loadingUp = 0; 40 RVTS.loading || $('#ajaxLoader').hide(); 41 $(window).trigger('RVTS_loaded'); 42 } 43 }); 44 }, 45 12 46 doAutoScroll: function() { 13 if (RVTS.loading || RVTS. start >= RVTS.total) return;14 var url = RVTS.ajaxUrlModel.replace('%start%', RVTS. start).replace('%per%', RVTS.perPage);47 if (RVTS.loading || RVTS.next >= RVTS.total) return; 48 var url = RVTS.ajaxUrlModel.replace('%start%', RVTS.next).replace('%per%', RVTS.perPage); 15 49 if (RVTS.adjust) { 16 50 url += '&adj=' + RVTS.adjust; … … 22 56 type:'GET', dataType:'html', 'url': url, 23 57 success: function(htm) { 24 RVTS. start+=RVTS.perPage;58 RVTS.next+=RVTS.perPage; 25 59 RVTS.$thumbs.append(htm); 26 if (RVTS. start>500 && RVTS.total>550) {60 if (RVTS.next-RVTS.start>500 && RVTS.total-RVTS.next>50) { 27 61 RVTS.$thumbs.after( 28 62 '<div style="text-align:center;font-size:180%;margin:0 0 20px"><a href="' 29 +RVTS.moreUrlModel.replace('%start%', RVTS. start)+'">'30 +RVTS.moreMsg.replace('%d', RVTS.total-RVTS. start)63 +RVTS.moreUrlModel.replace('%start%', RVTS.next)+'">' 64 +RVTS.moreMsg.replace('%d', RVTS.total-RVTS.next) 31 65 +'</a></div>'); 32 66 RVTS.total = 0; … … 35 69 complete: function() { 36 70 RVTS.loading = 0; 37 $('#ajaxLoader').hide();71 RVTS.loadingUp || $('#ajaxLoader').hide(); 38 72 $(window).trigger('RVTS_loaded'); 39 73 } … … 51 85 var $w = $(window); 52 86 RVTS.$thumbs = $('#thumbnails'); 53 RVTS.$thumbs.a ppend('<div id="ajaxLoader" style="display:none;position:fixed;bottom:32px;right:1%;z-index:999"><img src="'+ RVTS.ajaxLoaderImage + '" width="128" height="15" alt="~"></div>');87 RVTS.$thumbs.after('<div id="ajaxLoader" style="display:none;position:fixed;bottom:32px;right:1%;z-index:999"><img src="'+ RVTS.ajaxLoaderImage + '" width="128" height="15" alt="~"></div>'); 54 88 55 89 $w.scrollTop(0); -
extensions/rv_tscroller/rv_tscroller.min.js
r12735 r13194 1 window.jQuery&&window.RVTS&&function(a){a(".navigationBar").hide(); RVTS=a.fn.extend(RVTS,{loading:0,adjust:0,doAutoScroll:function(){if(!(RVTS.loading||RVTS.start>=RVTS.total)){var b=RVTS.ajaxUrlModel.replace("%start%",RVTS.start).replace("%per%",RVTS.perPage);if(RVTS.adjust)b+="&adj="+RVTS.adjust,RVTS.adjust=0;a("#ajaxLoader").show();RVTS.loading=1;a.ajax({type:"GET",dataType:"html",url:b,success:function(a){RVTS.start+=RVTS.perPage;RVTS.$thumbs.append(a);if(500<RVTS.start&&550<RVTS.total)RVTS.$thumbs.after('<div style="text-align:center;font-size:180%;margin:0 0 20px"><a href="'+ RVTS.moreUrlModel.replace("%start%",RVTS.start)+'">'+RVTS.moreMsg.replace("%d",RVTS.total-RVTS.start)+"</a></div>"),RVTS.total=0},complete:function(){RVTS.loading=0;a("#ajaxLoader").hide();a(window).trigger("RVTS_loaded")}})}},2 checkAutoScroll:function(b){var c=RVTS.$thumbs.position().top+RVTS.$thumbs.outerHeight(),d=a(window).scrollTop()+a(window).height();return c-(!b?0:100)<=d?(RVTS.doAutoScroll(),1):0},engage:function(){var b=a(window);RVTS.$thumbs=a("#thumbnails");RVTS.$thumbs.append('<div id="ajaxLoader" style="display:none;position:fixed;bottom:32px;right:1%;z-index:999"><img src="'+ RVTS.ajaxLoaderImage+'" width="128" height="15" alt="~"></div>');b.scrollTop(0);if(RVTS.$thumbs.outerHeight()<b.height())RVTS.adjust=1;else if(RVTS.$thumbs.height()>2*b.height())RVTS.adjust=-1;b.bind("scroll resize",RVTS.checkAutoScroll);RVTS.checkAutoScroll()&&window.setTimeout(RVTS.checkAutoScroll,1500)}});a(document).ready(function(){window.setTimeout(RVTS.engage,250)})}(jQuery);1 window.jQuery&&window.RVTS&&function(a){a(".navigationBar").hide();if(0<RVTS.start){var d=a(".navigationBar A[rel=first]"),d='<a href="'+d.attr("href")+'">'+d.html()+"</a> | ";a("#thumbnails").before('<div id=rvtsUp style="text-align:center;font-size:120%;margin:10px">'+d+'<a href="javascript:RVTS.loadUp()">'+RVTS.prevMsg+"</a></div>")}RVTS=a.fn.extend(RVTS,{loading:0,loadingUp:0,adjust:0,loadUp:function(){if(!(RVTS.loadingUp||0>=RVTS.start)){var b=RVTS.start-RVTS.perPage,c=RVTS.perPage;0>b&&(c+= b,b=0);c=RVTS.ajaxUrlModel.replace("%start%",b).replace("%per%",c);a("#ajaxLoader").show();RVTS.loadingUp=1;a.ajax({type:"GET",dataType:"html",url:c,success:function(c){RVTS.start=b;RVTS.$thumbs.prepend(c);0>=RVTS.start&&a("#rvtsUp").remove()},complete:function(){RVTS.loadingUp=0;RVTS.loading||a("#ajaxLoader").hide();a(window).trigger("RVTS_loaded")}})}}, 2 doAutoScroll:function(){if(!(RVTS.loading||RVTS.next>=RVTS.total)){var b=RVTS.ajaxUrlModel.replace("%start%",RVTS.next).replace("%per%",RVTS.perPage); RVTS.adjust&&(b+="&adj="+RVTS.adjust,RVTS.adjust=0);a("#ajaxLoader").show();RVTS.loading=1;a.ajax({type:"GET",dataType:"html",url:b,success:function(a){RVTS.next+=RVTS.perPage;RVTS.$thumbs.append(a);500<RVTS.next-RVTS.start&&50<RVTS.total-RVTS.next&&(RVTS.$thumbs.after('<div style="text-align:center;font-size:180%;margin:0 0 20px"><a href="'+RVTS.moreUrlModel.replace("%start%",RVTS.next)+'">'+RVTS.moreMsg.replace("%d",RVTS.total-RVTS.next)+"</a></div>"),RVTS.total=0)},complete:function(){RVTS.loading= 0;RVTS.loadingUp||a("#ajaxLoader").hide();a(window).trigger("RVTS_loaded")}})}},checkAutoScroll:function(b){var c=RVTS.$thumbs.position().top+RVTS.$thumbs.outerHeight(),d=a(window).scrollTop()+a(window).height();return c-(!b?0:100)<=d?(RVTS.doAutoScroll(),1):0},engage:function(){var b=a(window);RVTS.$thumbs=a("#thumbnails");RVTS.$thumbs.after('<div id="ajaxLoader" style="display:none;position:fixed;bottom:32px;right:1%;z-index:999"><img src="'+RVTS.ajaxLoaderImage+'" width="128" height="15" alt="~"></div>'); b.scrollTop(0);RVTS.$thumbs.outerHeight()<b.height()?RVTS.adjust=1:RVTS.$thumbs.height()>2*b.height()&&(RVTS.adjust=-1);b.bind("scroll resize",RVTS.checkAutoScroll);RVTS.checkAutoScroll()&&window.setTimeout(RVTS.checkAutoScroll,1500)}});a(document).ready(function(){window.setTimeout(RVTS.engage,250)})}(jQuery);
Note: See TracChangeset
for help on using the changeset viewer.