MediaWiki:Vector.js: Różnice pomiędzy wersjami
Z High School DxD Wiki
Linia 5: | Linia 5: | ||
} | } | ||
}); | }); | ||
+ | |||
+ | |||
+ | |||
+ | /* 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> */ |
Wersja z 19:01, 11 lip 2013
$(function(){ if ($.browser.mozilla) { $('#left-navigation, #right-navigation').css('top', '10.8em'); } }); /* 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> */