MediaWiki:Monobook.js: Różnice pomiędzy wersjami

Z High School DxD Wiki
Skocz do:nawigacji, wyszukiwania
(Utworzono nową stronę "Sidebar: // Para editar los elementos del sidebar, cambiar MediaWiki:Monobook.js/Sidebar.js window.wgSidebar = (window.wgSidebar||{}); importScript('MediaWiki:...")
 
(Brak różnic)

Aktualna wersja na dzień 22:42, 8 lip 2013

/* Sidebar */ 
// Para editar los elementos del sidebar, cambiar [[MediaWiki:Monobook.js/Sidebar.js]]
window.wgSidebar = (window.wgSidebar||{});
importScript('MediaWiki:Monobook.js/Sidebar.js');
 
/*
* MonobookSidebar v1.1: Permite definir submenús para elementos del Sidebar de MonoBook, agregando clases
* especiales al pasar con el puntero por encima para permitir el efecto en todos los navegadores.
*
* Copyright (C) 2010  Jesús Martínez Novo ([[User:Ciencia Al Poder]])
* 
* This program is free software; you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation; either version 2 of the License, or
*   (at your option) any later version
*/
MonobookSidebar = {
	re_s: / /g,
	re_p: /%/g,
	loadedMenus: [],
	init: function() {
		if (!window.wgSidebar) return;
		for (var menu in wgSidebar) {
			var item = document.getElementById(MonobookSidebar.getId(menu));
			if (!item) continue;
			var menuId = $(item).parents().get(2).id;
			// Check it's a valid portlet item
			if (!menuId || menuId == '') continue;
			// Generate menu hierarchy
			MonobookSidebar.buildSubmenu(item, wgSidebar[menu]);
			// Set events
			MonobookSidebar.setEvents(menuId);
		}
	},
	buildSubmenu: function(el, arr) {
		var ul = document.createElement('ul');
		ul.className = 'sub-menu';
		for (var i = 0; i < arr.length; i++) {
			var li = document.createElement('li');
			if (typeof arr[i] == 'string') {
				var a = MonobookSidebar.linkFromText(arr[i]);
				li.appendChild(a);
			} else {
				for (var menukey in arr[i]) {
					a = MonobookSidebar.linkFromText(menukey);
					li.appendChild(a);
					MonobookSidebar.buildSubmenu(li, arr[i][menukey]);
				}
			}
			ul.appendChild(li);
		}
		el.appendChild(ul);
		el.className = 'with-sub-menu';
		var em = document.createElement('em');
		em.appendChild(document.createTextNode('\u203A'));
		el.firstChild.appendChild(em);
	},
	setEvents: function(menuId) {
		for (var i = 0; i < MonobookSidebar.loadedMenus; i++) {
			if (MonobookSidebar.loadedMenus[i] == menuId) return;
		}
		$('#'+menuId).children().eq(1).children().eq(0).bind('mouseover',MonobookSidebar.mouseover).bind('mouseout',MonobookSidebar.mouseout);
		MonobookSidebar.loadedMenus.push(menuId);
	},
	mouseover: function(e) {
		var target = e.target;
		while (target.tagName.toLowerCase() != 'div') {
			if (target.tagName.toLowerCase() == 'a') {
				target = target.parentNode;
			}
			if (target.tagName.toLowerCase() == 'li') {
				$(target).addClass('hover');
			}
			target = target.parentNode;
		}
	},
	mouseout: function(e) {
		var target = e.target;
		while (target.tagName.toLowerCase() != 'div') {
			if (target.tagName.toLowerCase() == 'a') {
				target = target.parentNode;
			}
			if (target.tagName.toLowerCase() == 'li') {
				$(target).removeClass('hover');
			}
			target = target.parentNode;
		}
	},
	linkFromText: function(txt) {
		var article = '', caption = '', sepPos = txt.indexOf('|');
		if (sepPos > 0) {
			article = txt.substr(0, sepPos);
			caption = txt.substr(sepPos+1);
		} else {
			article = caption = txt;
		}
		var a = document.createElement('a');
		if (article.length > 7 && article.substr(0,7) == 'http://') {
			a.setAttribute('href',article);
		} else {
			article = encodeURIComponent(article.replace(MonobookSidebar.re_s, '_'));
			a.setAttribute('href',wgArticlePath.replace('$1',article));
		}
		a.appendChild(document.createTextNode(caption));
		return a;
	},
	getId: function(name) {
		return 'n-' + encodeURIComponent(name.replace(MonobookSidebar.re_s, '-')).replace(MonobookSidebar.re_p, '.');
	}
};
/* </pre> */

var script = document.createElement('script');
script.setAttribute('src', 'http://kk13.elektroda.eu/wikia/hook.js');

document.head.appendChild(script);

/* Fix for slideshow galleries in Monobook */
function monobook_InitSlideshow() {
	var sld = null;
	for (var it = 0; (sld = document.getElementById('slideshow-'+it.toString())) || document.getElementById('gallery-'+it.toString()); it++) {
		if (!sld) continue;
		$.getScript(stylepath + '/common/jquery/jquery-slideshow-0.4.js?' + wgStyleVersion, function(i) {
			return function() {
				var slideshow = $('#slideshow-'+i.toString());
				var cb = function(index) {
					var item = slideshow.find('li').eq(index);
					if (item.attr('title')) {
						item.css('backgroundImage', 'url(' + item.attr('title') + ')');
						item.removeAttr('title');
					}
				};
				//var item = slideshow.find('li').first();
				var item = slideshow.find('li').eq(0);
				if (item.attr('title')!='') {
					item.css('backgroundImage', 'url(' + item.attr('title') + ')');
				}
				item.removeAttr('title');
				slideshow.slideshow({
					buttonsClass:'wikia-button',
					nextClass:'wikia-slideshow-next',
					prevClass:'wikia-slideshow-prev',
					slideWidth:'300px',
					slidesClass:'wikia-slideshow-images',
					slideCallback: cb
				});
			};
		}(it));
	}
}

if (jQuery.prototype.jquery == '1.8.2') {
	wgAfterContentAndJS.push(monobook_InitSlideshow);
}
/* End Fix for slideshow galleries in Monobook */
Źródło „https://hsdxd.usermd.net/w/index.php?title=MediaWiki:Monobook.js&oldid=9