מדיה ויקי:PdfPresentation.js

מתוך ויקיתרופות
קפיצה אל: ניווט, חיפוש
Banner.jpg

הערה: לאחר השמירה, עליכם לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: לחצו על Shift בעת לחיצתכם על העלה מחדש (Reload), או הקישו על Ctrl-F5 או על Ctrl-R (או על ⌘-R במחשב מק)
  • גוגל כרום: לחצו על Ctrl-Shift-R (או על ⌘-Shift-R במק)
  • אינטרנט אקספלורר: לחצו על Ctrl בעת לחיצתכם על רענן (Refresh), או הקישו על Ctrl-F5
  • אופרה: נקו את המטמון ב־Tools‏ ← Preferences
$(function(){
if ($('.presentationsGallery').length == 0) return;

// create PdfPresentation handler
	
mw.loader.load(['jquery.bxSlider', 'jquery.spinner']);

$('.presentationsGallery .thumb a').click(function(e){
	e.preventDefault();
	var galleryFile = $(this).prop('href').split(':',3)[2];

	var $spinner = $.createSpinner( {
						size: 'large',
						type: 'block'
					} );
	$('.presentationDisplay').append( $spinner );
	
	var api = new mw.Api();
	api.get({
		action: 'query',
		titles: 'File:'+galleryFile,
		prop: 'imageinfo',
		iiprop: 'metadata',
	}).done(function( data ){
		var pages = data && data.query && data.query.pages;
		if (!pages || pages.hasOwnProperty('-1')) return;
		var imgPage;
		for ( var p in pages ) imgPage = pages[p];
		var thumbURL = imgPage.imageinfo[0].thumburl;
		var metadata = imgPage.imageinfo[0].metadata;
		//extract number of pages
		var numberOfPages = 1;
		for(var metadata_i=0; metadata_i<metadata.length;metadata_i++) {
			if ( metadata[metadata_i].name === 'Pages' ) {
				numberOfPages = metadata[metadata_i].value;
			}
		}

		var gallyWikitext='';
		var gallerySize = '1000px';
		for(var i=1;i<numberOfPages+1;i++){
			gallyWikitext+='\n* [[File:'+galleryFile+'|page='+i+'|'+gallerySize+'|link=]]';
		}
		gallyWikitext+='\n';
		var api=new mw.Api();
		api.get({
		action:'parse',
		text: gallyWikitext,
		prop:'text'
		}).done(function(data){
			$('.presentationDisplay').html(data.parse.text['*'])

			$('.presentationDisplay ul').bxSlider({
				auto: false,
				controls: true,
				slideWidth: gallerySize,
				mode:'vertical'
			});
	
		});

	});
});

});