MediaWiki:Thumbnail cycler.js

Catatan: Imbah disimpan, Pian pinanya parlu malincau talih paramban wéb gasan manjanaki paubahan.

  • Firefox/Safari: Tahan Shift wayah manikin Reload, atawa tikin Ctrl-F5 atawa Ctrl-R (⌘-R di Mac)
  • Google Chrome: Tikin Ctrl-Shift-R (⌘-Shift-R di Mac)
  • Internet Explorer / Edge: Tikin Ctrl wayah dikalik Refresh, atawa tikin Ctrl-F5
  • Opera: Tulak ka Menu → Settings (Opera → Preferences di Mac) lalu ka Privacy & security → Clear browsing data → Cached images and files.
var cyclebox_start = 0;
var cyclebox_row = 10;
var cyclebox_thumbsize = 120;
var cyclebox_data;
var cyclebox_initial_load = true;
var cyclebox_mouse_inside = false;
var cyclebox_category = "Gambar_tapilih";
var cyclebox_header = 'Other featured contents';
 
jQuery(function(){
//  if( wgNamespaceNumber != 0 || wgTitle != "Main Page" ) return;
//  if( jQuery("#main-page-langbar").length == 0 ) return; // Cross-language check
  jQuery("#bodyContent > table:first").before( "<div id='cyclebox_container'><div style='background:#faecc8; border-bottom:1px solid #fad67d; padding:0.2em 0.5em; font-size:125%; font-weight:bold'>"+cyclebox_header+"</div><div id='cyclebox' style='position:relative;overflow:hidden;max-height:"+cyclebox_thumbsize+"px;margin-top:2px'><div id='cyclebox1' style='display:inline;width:500px'></div></div></div>" );
 
  var w = -1;
  cyclebox_row++;
  while( w < 0 ) {
    cyclebox_row--;
    w = parseInt(( parseInt( jQuery('#cyclebox_container').width() ) -( cyclebox_row * cyclebox_thumbsize ) ) / 2 );
  }
  jQuery('#cyclebox').height( cyclebox_thumbsize + 4 );
  jQuery('#cyclebox').css( 'margin-left' , w );
 
  jQuery('#cyclebox_container').mouseenter( function(){ cyclebox_mouse_inside = true; } );
  jQuery('#cyclebox_container').mouseleave( function(){ cyclebox_mouse_inside = false; } );
  initialize_cyclebox();
} );
 
function iterate_cyclebox(){
  if( !cyclebox_initial_load && cyclebox_mouse_inside ) {
    setTimeout('iterate_cyclebox()', 2000);
    return;
  }
  var h = "<div id='cyclebox2' style='position:relative;display:inline'>";
  if( cyclebox_start + cyclebox_row >= cyclebox_data.length ) cyclebox_start = 0;
  var titles = '';
  for( var i = 0; i < cyclebox_row; i++ ) {
    var d = cyclebox_data[i + cyclebox_start];
    if( titles != '' ) titles += "|";
//    titles += escape( d.title );
    titles += d.title;
  }
 
  var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
  url += "?action=query&titles=" + titles + "&prop=imageinfo&iiprop=url&iiurlwidth="+cyclebox_thumbsize+"&iiurlheight="+cyclebox_thumbsize+"&format=json&callback=?";
  jQuery.getJSON( url , function( data ) {
 
     jQuery.each(data.query.pages, function( idx , elm ) {
      var alt = elm.title.substr(5);
      alt = alt.split("'").join("\\'");
      var n = "<a href='" + mw.config.get('wgArticlePath').replace("$1", escape(elm.title)) + "'><img border='0' alt='"+alt+"' title='"+alt+"' src='";
      jQuery.each(jQuery(elm.imageinfo),function( i2 , e2 ) {
        jQuery.each( jQuery(e2) , function( i3 , e3 ) { n += e3.thumburl; } );
      } );
      n += "'/></a>";
      h += "<div style='display:inline'>" + n + "</div>";
    } );
    h += "</div>";
    jQuery("#cyclebox1").after( h );
    cyclebox_start += cyclebox_row;
 
    var w = parseInt( jQuery('#cyclebox1').width() );
    jQuery('#cyclebox2').animate( { left : "-="+w+"px" } , { duration:'slow' , queue:false } );
    jQuery('#cyclebox1').animate( { left : "-="+w+"px" } , 'slow' , function(){
      jQuery('#cyclebox2').css('left','0px');
      jQuery('#cyclebox1').remove();
      jQuery('#cyclebox2').attr('id','cyclebox1');
      cyclebox_initial_load = false;
      setTimeout('iterate_cyclebox()', 5000);
    } );
  } );
 
}
 
function initialize_cyclebox(){
  var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=json&action=query&list=categorymembers&cmnamespace=6&cmsort=timestamp&cmdir=desc&cmlimit=500&cmtitle=Category:'+cyclebox_category+'&callback=?';
  jQuery.getJSON( url , function( data ) {
    cyclebox_data = data.query.categorymembers;
    iterate_cyclebox();
  } );
}