MediaWiki:Common.js
Megjelenés
Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.
- Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
- Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
- Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
/* Az ide elhelyezett JavaScript kód minden felhasználó számára lefut az oldalak betöltésekor. */
/* <nowiki> kategorizálás megakadályozására */
/*
Wikis függvények és segédletek ($.wiki)
*/
(function($){
$.wiki = {};
/* $.wiki.contentSelector: visszaadja magát a szócikket tartalmazó
elem szelektorát a skintől függően */
var skin = mw.config.get('skin');
if (skin == "modern") $.wiki.contentSelector = "#mw_contentholder";
else if (skin == "standard" || skin == "nostalgia" || skin == "cologneblue") $.wiki.contentSelector = "#article";
else $.wiki.contentSelector = "#bodyContent";
/* Ajaxon keresztül lekéri a megadott oldalt opcionális paraméterekkel */
$.wiki.getPage = function(settings) {
if (typeof(settings.pageName) === "undefined" || settings.pageName === "")
settings.error.call();
var ajaxSettings = {
url: $.wiki.wikiEntryLink(settings.pageName, (typeof(settings.params) == "undefined" ? {} : settings.params))
};
if (typeof(settings.async) != "undefined") ajaxSettings = $.extend(ajaxSettings, {async: settings.async});
if (typeof(settings.success) != "undefined") ajaxSettings = $.extend(ajaxSettings, {success: settings.success});
if (typeof(settings.error) != "undefined") ajaxSettings = $.extend(ajaxSettings, {error: settings.error});
return $.ajax(ajaxSettings);
};
/* Ajaxon keresztül lekéri a megadott oldal nyers változatát opcionális további paraméterekkel */
$.wiki.getPageRaw = function(settings) {
if (typeof(settings.params) != "undefined")
settings.params.action = "raw";
else
settings.params = {action: "raw"};
return $.wiki.getPage(settings);
};
/* Egyszerű wikilink generálása lapnévből: http://hu.wikipedia.org/wiki/Pagename */
$.wiki.wikiLink = function(page) {
var prep = page.replace(/ /g, "_");
return mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace(/\$1/g, prep);
};
/* Link a belépési ponthoz (index.php): http://hu.wikipedia.org/w/index.php?title=Pagename
Opcionálisan további paraméterekkel
*/
$.wiki.wikiEntryLink = function(page, args) {
var prep = page.replace(/ /g, "_");
prep = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + prep;
$.each(args, function(key, value) {
prep = prep + "&" + key + "=" + value;
});
return prep;
};
})(jQuery);
/*
== Segédfüggvények ==
*/
function addLoadEvent(func) {
console.log("Az elavult addLoadEvent. Stack trace:\n", new Error().stack);
$(func);
}
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
function escapeRegexp(s) {
return s.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
}
function getCookie(name) {
console.log("Az elavult getCookie(), használj helyette mw.cookie.get()-et. Stack trace:\n", new Error().stack);
var cookieText;
var cookiePos = document.cookie.indexOf(name + '=');
if(cookiePos!=-1) {
var results = document.cookie.match(name+'=(.*?)(;|$)');
if(results) cookieText = decodeURIComponent(results[1]);
return cookieText;
} else return null;
}
function setCookie(name, text, expires) {
console.log("Az elavult setCookie(), használj helyette mw.cookie.set()-et. Stack trace:\n", new Error().stack);
if(text) {
if(expires) {
document.cookie = name + '=' + encodeURIComponent(text) + '; expires=' + expires.toUTCString() + '; path=/';
} else {
document.cookie = name + '=' + encodeURIComponent(text) + '; path=/';
}
} else {
document.cookie = name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/'; // delete cookie
}
}
function cleanHtmlTags(str) {
return str.replace(/<>/g, '');
}
$.fn.log = function(msg) {
if (!window.console || !console.log) return;
if (msg) {
if (typeof msg == 'string') {
console.log('%s: %o', msg, this);
} else {
console.log('%o -> %o', this, msg);
}
} else {
console.log(this);
}
return this;
};
// for inlog gadget
$.startInlog = $.fn.startInlog = function(config) {
if (!$.inlog) return;
$.inlog({
enabled: true,
thisValue: true
});
return this;
};
$.endInlog = $.fn.endInlog = function(config) {
if (!$.inlog) return;
$.inlog(false);
return this;
};
/*
== Wikimenü ==
*/
mw.loader.load('ext.gadget.wikiMenu');
/*
== Kezdőlap összes Wikipédia listája ==
*/
if (mw.config.get('wgTitle') == mw.config.get('wgMainPageTitle'))
$(function () {
if (mw.config.get('wgNamespaceNumber') == 0)
mw.util.addPortletLink('p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
'Teljes lista', 'interwiki-completelist', 'A Wikipédiák teljes listája');
});
/*
== Cím elrejtése ==
*/
function hideArticleTitle() {
if (document.getElementById("HideTitle")) {
if (mw.config.get('skin')=="modern") return;
var h1 = document.getElementsByTagName("h1")[0];
if (h1) {
h1.style.display = "none";
}
var siteSub = document.getElementById("siteSub");
if (siteSub) {
siteSub.style.display = "none";
}
}
}
/*
== Elrejthető üzenetek ==
*/
function hideElement(e) {
var name = this.id.slice(5); // 'hide-' elhagyása
var element = document.getElementById(name);
var expires = new Date();
expires.setTime( expires.getTime() + (7*24*60*60*1000) ); // 1 hét
mw.cookie.set('hide-' + name, '1', expires);
element.style.display = "none";
this.style.display = "none";
return false;
}
function addHideButton(element) {
if (!element) return;
var isHidden = mw.cookie.get('hide-' + element.id);
if(isHidden) {
element.style.display = "none";
} else {
var button = document.createElement( "a" );
button.setAttribute( "id", "hide-" + element.id);
button.setAttribute( "class", "hideButton" );
button.setAttribute( "href", "#" );
button.setAttribute( "title", "Üzenet elrejtése egy hétre" );
button.onclick = hideElement;
button.appendChild( document.createTextNode("[elrejt]") );
element.appendChild( button );
}
}
/*
== WIWOSM térkép ==
*/
// Forrás: http://meta.wikimedia.org/w/index.php?title=MediaWiki:OSM.js
// frissítve: 2013. 06. 11.
// részletek: http://wiki.openstreetmap.org/wiki/WIWOSM
// Using OpenStreetMap in Wikipedia.
// (c) 2008 by Magnus Manske
// heavily altered by [[m:User:Danmichaelo]], [[m:User:Hoo man]]
// Released under GPL
window.osm_proj_lang = 'hu'; // project language
mw.loader.using('mediawiki.util', function() {
function openStreetMapToggle() {
var a = $( '#coordinates a' ),
link = '',
url = '',
params;
if (a.length === 0) {
return;
}
if ($('#openstreetmap').length > 0) {
$('#openstreetmap').toggle();
return false;
}
$.each(a, function(index, value) {
if ( value.href.indexOf('geohack') === -1 ) {
return true; // Returning non-false is the same as a continue
}
link = value.href;
return false; // break
});
if (link) {
params = link.match(/params=([^?&]*)/) || link.match(/geohack\/[a-z]{2,5}\/([^?&]*)/);
params = params && params[1];
}
if (!params) {
return false; // No geohack link found
}
url = '//tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php?'
+ 'lang=' + osm_proj_lang
+ '&uselang=' + mw.config.get('wgUserLanguage')
+ '¶ms=' + params
+ '&title=' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) );
if ( window.location.protocol === 'https:' ) {
url += '&secure=1';
}
$('#contentSub').append(
// src has to be passed using .attr as it could contain malicious html!
$('<iframe id="openstreetmap" style="width:100%; height: 350px; clear:both;"></iframe>').attr('src', url)
);
return false;
}
$(document).ready(function() {
var a = $('#coordinates a'),
geohack = false;
if (a.length === 0) {
return;
}
$.each(a, function(index, value) {
if ( value.href.indexOf('geohack') === -1 ) {
return true;
}
if (value.href.indexOf('_globe:') !== -1) {
return true; // no OSM for moon, mars, etc
}
geohack = true;
return false;
});
if (!geohack) {
return;
}
$('#coordinates').append(
$(' <a id="coordinates_map" href="#" style="box-shadow: 0px 0px 5px #C0C0F0; margin-left:7px">'
+'<img src="'+window.location.protocol+'/media/wikipedia/commons/thumb/c/c9/OpenStreetMapLogo.png/17px-OpenStreetMapLogo.png" width="17" alt="osm" />'
+' térkép ▼ </a>'
).click(openStreetMapToggle)
);
});
});
/*
== Képfeltöltés ==
*/
// Nincslicenc sablon beszúrása, ha a semmilyen sablon opciót választotta
$( function () {
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Upload' ) return;
// User explicitly turned it off
if ( window.noForceLicense !== undefined ) return;
$( 'form[enctype="multipart/form-data"]' ).click( function () {
if ( $( '#wpLicense' ).val() === '' && !/\{\{[^{}]+\}\}/.test( $( '#wpUploadDescription' ).val() ) ) {
$( '#wpUploadDescription' ).val( $( '#wpUploadDescription' ).val() + "\n==Licenc==\n{{nincsli" + "cenc}}" );
}
} );
} );
// ne írja át a célfájlnevet forrásfájl kiválasztásakor, ha van wgDestFile paraméter
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' ) {
mw.config.set( 'wgUploadAutoFill', !$( '#wpDestFile' ).val() );
}
/*
== Legördülő menü és extra gombok az edittools-ba ==
*/
if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit' || mw.config.get('wgPageName') == 'Special:Upload') { //scripts specific to editing pages
mw.loader.using( 'mediawiki.toolbar', function() {
var buttons = [
{
'id': "button-redirect",
'imageFile': "/media/wikipedia/en/c/c8/Button_redirect.png",
'speedTip': "Átirányítás",
'tagOpen': "#ÁTIRÁNYÍTÁS [[",
'tagClose': "]]",
'sampleText': "Cél"
},
{
'id': "button-strike",
'imageFile': "/media/wikipedia/en/c/c9/Button_strike.png",
'speedTip': "Áthúzott szöveg",
'tagOpen': "<s>",
'tagClose': "</s>",
'sampleText': "Áthúzott szöveg"
},
{
'id': "button-small",
'imageFile': "/media/wikipedia/en/5/58/Button_small.png",
'speedTip': "Apró betűs szöveg",
'tagOpen': "<small>",
'tagClose': "</small>",
'sampleText': "Apró betűs szöveg"
},
{
'id': "button-teletype",
'imageFile': "/media/wikipedia/commons/3/30/Tt_icon.png",
'speedTip': "Írógép-szöveg",
'tagOpen': "<tt>",
'tagClose': "</tt>",
'sampleText': "Fix szélességű szöveg"
},
{
'id': "button-insert-reflink",
'imageFile': "/media/wikipedia/commons/7/79/Button_reflink.png",
'speedTip': "Forráshivatkozás",
'tagOpen': "<ref>",
'tagClose': "</ref>",
'sampleText': "Hivatkozás szövegének helye"
},
{
'id': "button-insert-reflist",
'imageFile': "/media/wikipedia/commons/f/fe/Button_refs.png",
'speedTip': "Forráshivatkozás lábrész",
'tagOpen': "{" + "{Jegyzetek}}",
'tagClose': "",
'sampleText': ""
},
{
'id': "button-insert-templatelink",
'imageFile': "/media/wikipedia/commons/e/eb/Button_plantilla.png",
'speedTip': "Sablon",
'tagOpen': "{{",
'tagClose': "}}",
'sampleText': "Példa sablon"
}
];
for ( var i = 0, len = buttons.length; i < len; i++ ) {
mw.toolbar.addButton(
buttons[i].imageFile,
buttons[i].speedTip,
buttons[i].tagOpen,
buttons[i].tagClose,
buttons[i].sampleText,
buttons[i].id,
buttons[i].id
);
}
});
}
if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0 || (mw.config.get('wgCanonicalNamespace') == "Special" && mw.config.get('wgCanonicalSpecialPageName') == "Upload")) {
function addCharSubsetMenu() {
var forceAll = false;
var specialchars = document.getElementById('specialchars');
if (!specialchars) return;
var menu = document.getElementById('charSubsetMenu');
if (!menu) {
menu = document.createElement('select');
menu.id = 'charSubsetMenu';
menu.style.display = 'inline';
menu.onchange = function() {
chooseCharSubset(menu.options[menu.selectedIndex].value);
}
} else { // személyreszabott menü teljesre váltásakor
forceAll = true;
var menuChildNodes = [];
for (var i = 0; i < menu.childNodes.length; i++) {
menuChildNodes.push(menu.childNodes[i]);
}
for(var i = 0; i < menuChildNodes.length; i++) {
menu.removeChild(menuChildNodes[i]);
}
}
var specialCharacterTypes = new Object();
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length; i++) {
var title = l[i].title;
var opt = document.createElement('option');
opt.appendChild(document.createTextNode(title));
opt.value = i;
specialCharacterTypes[title] = opt;
}
if(typeof(allowedSpecialCharacterTypes) == 'undefined' || forceAll) {
for (var i = 0; i < l.length; i++) {
menu.appendChild(specialCharacterTypes[l[i].title]);
}
} else { // személyreszabott menü
for(var i = 0; i < allowedSpecialCharacterTypes.length; i++) {
if(typeof(specialCharacterTypes[allowedSpecialCharacterTypes[i]]) != 'undefined') {
menu.appendChild(specialCharacterTypes[allowedSpecialCharacterTypes[i]]);
}
}
var showAll = document.createElement('option');
showAll.appendChild(document.createTextNode("több..."));
showAll.style.fontStyle = 'italic';
showAll.value = 999;
menu.appendChild(showAll);
}
if (forceAll) { // select visszaállítása az aktív karakterkészletre
var value = -1;
var l = specialchars.getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
if (l[i].style.display == 'inline') {
value = i;
break;
}
}
for (var i = 0; i < menu.options.length; i++) {
if (menu.options[i].value == value) {
menu.selectedIndex = i;
break;
}
}
} else { // első karakterkészlet aktiválása
chooseCharSubset(menu.options[0].value);
}
specialchars.insertBefore(menu, specialchars.firstChild);
}
function chooseCharSubset(s) {
if (s == 999) { // "több..." opció
addCharSubsetMenu();
return;
}
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = (i == s) ? 'inline' : 'none';
}
}
$(addCharSubsetMenu);
}
/*
== Extra gombok Vector alatt ==
*/
// WikiEditor toolbar customization
$(function() {
if ( typeof $.wikiEditor != "undefined" ) {
$( '#wpTextbox1' ).bind( 'wikiEditor-toolbar-buildSection-main', function( event, section ) {
if (mw.config.get('wgUserLanguage')=='hu') {
// change bold/italic icon
var tools = section.groups.format.tools;
if ( !( 'hu' in tools.bold.icon ) ) {
tools.bold.icon['hu'] = 'format-bold-F.png'; // no need for full URL because this one exists in default Vector icon set
}
if ( !( 'hu' in tools.italic.icon ) ) {
tools.italic.icon['hu'] = '/media/wikipedia/commons/6/6a/Toolbaricon_italic_D.png';
}
}
});
// special characters
$( '#wpTextbox1' ).bind( 'wikiEditor-toolbar-buildSection-characters', function( event, section ) {
var paren = function(left, right) {
return { label: left + right, action: { type: 'encapsulate', options: { pre: left, post: right } } };
};
var pages = {
basic: {
layout: 'characters',
label: 'Alap',
characters: [ 'á', 'é', 'í', 'ó', 'ö', 'ő', 'ú', 'ü', 'ű', 'Á', 'É', 'Í', 'Ó', 'Ö', 'Ő', 'Ú', 'Ü', 'Ű',
'~', '|', '#', paren('„', '”'), paren('»', '«'), paren('’', '’'), '’', '–', '…', paren('<', '>'), '°', '‰',
'×', '→', '∅', 'µ', '²', '³', '½', '⅓', '⅔', '¼', '¾', '€', '§', '†', '‡', '©', '®', '•', '·', ' ', '‑' ]
}
};
for (var i in section.pages) {
pages[i] = section.pages[i];
}
section.pages = pages;
});
}
});
/*
== Ékezetes karakterek bejelentkezéshez ==
*/
function insertText(box, string) {
box.focus();
if (document.selection && document.selection.createRange) { // IE/Opera
var range = document.selection.createRange();
range.text = string;
} else if (box.selectionStart || box.selectionStart == '0') { // Mozilla
var startPos = box.selectionStart;
var endPos = box.selectionEnd;
box.value = box.value.substring(0, startPos) + string + box.value.substring(endPos, box.value.length);
}
}
if (mw.config.get('wgCanonicalSpecialPageName') == "Userlogin") {
function installLoginChars() {
window['loginbox'] = document.getElementById('wpName1');
var loginchars = document.getElementById('loginchars');
if (loginchars) {
var hunchars = "áéíóöőúüűÁÉÍÓÖŐÚÜŰ".split('');
for (var i = 0, str = ''; i < hunchars.length; i++) {
str += '<a href="javascript:insertText(loginbox, \'' + hunchars[i] + '\')">' + hunchars[i] + '</a> ';
}
loginchars.innerHTML += str;
loginchars.style.display = "block";
}
}
$(installLoginChars);
}
/*
== Becsukható <div>, táblázat stb. ==
*/
mw.loader.load( 'ext.gadget.collapsible' );
/*
== Címek javítása ==
*/
// For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
// (for instance iPod's title is updated. But C# is not an equivalent
// wikilink, so C Sharp doesn't have its main title changed)
// Likewise for users who have selected the U.K. date format ("1 March") the
// titles of day-of-the-year articles will appear in that style. Users with any
// other date setting are not affected.
//
// The function looks for a banner like this:
// <div id="RealTitleBanner"> ... <span id="RealTitle">title</span> ... </div>
// An element with id=DisableRealTitle disables the function.
//
var disableRealTitle = 0; // users can set disableRealTitle = 1 locally to disable.
if (mw.config.get('wgIsArticle')) { // don't display the RealTitle when editing, since it is apparently inconsistent (doesn't show when editing sections, doesn't show when not previewing)
function fixArticleTitle() {
var realTitleBanner = document.getElementById("RealTitleBanner");
var realTitle = document.getElementById("RealTitle");
if (realTitleBanner && realTitle && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
var realTitleHTML = realTitle.innerHTML;
realTitleText = pickUpText(realTitle);
var isPasteable = 0;
//var containsHTML = /</.test(realTitleHTML); // contains ANY HTML
var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
// calculate whether the title is pasteable
var verifyTitle = realTitleText.replace(/^ +/, ""); // trim left spaces
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
// if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy.
if (mw.config.get('wgNamespaceNumber') != 0) {
var localNamespace = mw.config.get('wgPageName').split(':')[0];
var canonialNamespace = mw.config.get('wgCanonicalNamespace');
if (canonialNamespace == verifyTitle.substr(0, canonialNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(canonialNamespace.length) == ":") {
verifyTitle = verifyTitle.substr(canonialNamespace.length + 1);
} else if (localNamespace == verifyTitle.substr(0, localNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(localNamespace.length) == ":") {
verifyTitle = verifyTitle.substr(localNamespace.length + 1);
} else {
realTitleText = localNamespace.replace(/_/g, " ") + ":" + realTitleText;
realTitleHTML = localNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
}
}
// verify whether wgTitle matches
verifyTitle = verifyTitle.replace(/[\s_]+/g, " "); // underscores and multiple spaces to single spaces
verifyTitle = verifyTitle.replace(/^\s+/, "").replace(/\s+$/, ""); // trim left and right spaces
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
if (verifyTitle == mw.config.get('wgTitle')) isPasteable = 1;
var h1 = document.getElementsByTagName("h1")[0];
if (h1 && isPasteable) {
h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
if (!containsTooMuchHTML)
realTitleBanner.style.display = "none";
}
document.title = realTitleText + " - Wikipédia, a szabad enciklopédia";
}
}
// similar to innerHTML, but only returns the text portions of the insides, excludes HTML
function pickUpText(aParentElement) {
var str = "";
function pickUpTextInternal(aElement) {
var child = aElement.firstChild;
while (child) {
if (child.nodeType == 1) // ELEMENT_NODE
pickUpTextInternal(child);
else if (child.nodeType == 3) // TEXT_NODE
str += child.nodeValue;
child = child.nextSibling;
}
}
pickUpTextInternal(aParentElement);
return str;
}
$(fixArticleTitle);
}
/*
== IRC login ==
*/
// this script looks for the element with id "irclogon", and replaces its contents
// with a login form that redirects to the Mibbit IRC gateway
( function () {
if ( mw.config.get( 'wgAction' ) in { edit: 1, submit: 1 } ) {
return;
}
function loadLoginForm() {
$( '#irclogin' ).empty().append(
$( '<form>' ).attr( {
method: 'get',
action: '//webchat.freenode.net/',
target: '_blank',
name: 'loginform'
} ).append(
$( '<input type="text"> ').attr( {
name: 'Nickname',
size: 25
} ).val( nickify( mw.config.get('wgUserName') ) ).focus( function () {
clear_text(this);
} ),
$( '<input type="submit"> ').val( 'Belépés' ),
$( '<input type="hidden"> ').attr( 'name', 'channels' ).val( '#wikipedia-hu' ),
$( '<input type="hidden"> ').attr( 'name', 'prompt' ).val( '0' )
)
);
}
function nickify( s ) {
if ( s == null ) {
return 'anon' + Math.floor( Math.random() * 100 );
}
s = s.toLowerCase();
s = s.replace(" ", "_");
s = s.replace(/á/g, 'a');
s = s.replace(/é/g, 'e');
s = s.replace(/í/g, 'i');
s = s.replace(/[óő]/g, 'o');
s = s.replace(/[úű]/g, 'u');
s = s.replace(/[^a-z0-9_-]/g, '');
return s || 'badname' + Math.floor( Math.random() * 100 );
}
var irclogin_cleared = 0;
function clear_text( field ) {
if ( irclogin_cleared === 0 ) {
irclogin_cleared = 1;
field.value = '';
}
}
$( loadLoginForm );
} ) ();
/*
== Információs sablon beillesztése a szövegdobozba feltöltéskor, amennyiben az üres ==
*/
function insertInfoTemplate() {
var $editbox = $( '#wpUploadDescription' );
// új változat feltöltésekor a szövegmező szerkesztési összefoglalóként funkcionál
if ( !$editbox.length || $editbox.val() || mw.util.getParamValue( 'wpForReUpload' ) !== null ) return;
$editbox.attr( 'rows', 9 ); // make it large enough to fit the template
$editbox.val(
'{{Információ\n' +
'| leírás = \n' +
'| forrás = \n' +
'| dátum = \n' +
'| helyszín = \n' +
'| szerző = \n' +
'| engedély = \n' +
'| más változatok = \n' +
'}}'
);
}
$(insertInfoTemplate);
/*
== Változtatható rendezésű táblázatok: ékezetes betűk, magyar írásmódú számok rendezése ==
*/
// buta, de legalább működik
// rendező kód: http://git.wikimedia.org/blob/mediawiki%2Fcore/master/resources%2Fjquery%2Fjquery.tablesorter.js
// okos, de nem működő kód: https://hu.wikipedia.org/w/index.php?title=MediaWiki:Common.js&diff=prev&oldid=14463042
(function() {
var accented = 'áéíóúöőüűÁÉÍÓÚÖŐÜŰ',
basic = 'aeiouoouuAEIOUOOUU',
tableSorterCollation = {};
for (var i = 0; i < accented.length; i++) {
tableSorterCollation[accented[i]] = basic[i];
}
mw.config.set( 'tableSorterCollation', tableSorterCollation);
}());
/*
== A Képdia sablon működéséhez szükséges kód ==
*/
function kepValtas(group, remindex, shwindex) {
document.getElementById("kepDiaCs"+group+"Kep"+remindex).style.display="none";
document.getElementById("kepDiaCs"+group+"Kep"+shwindex).style.display="inline";
}
function kepDia(){
if (document.URL.match(/printable/g)) return;
var bc=document.getElementById("bodyContent");
if( !bc ) bc = document.getElementById("mw_contentholder");
if( !bc ) return;
var divs=bc.getElementsByTagName("td");
var units, search;
var currentimage;
var UnitNode;
for (var i = 0; i < divs.length ; i++) {
if (divs[i].className != "kepDia") continue;
UnitNode=undefined;
search=divs[i].getElementsByTagName("div");
for (var j = 0; j < search.length ; j++) {
if (search[j].className != "kepDiaKepek") continue;
UnitNode=search[j];
break;
}
if (UnitNode==undefined) continue;
units=Array();
for (var j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
var temp = UnitNode.childNodes[j];
if (temp.className=="center") units.push(temp);
}
for (var j = 0 ; j < units.length ; j++) {
currentimage=units[j];
currentimage.id="kepDiaCs"+i+"Kep"+j;
var imghead = document.createElement("div");
var leftlink;
var rightlink;
if (j != 0) {
leftlink = document.createElement("a");
leftlink.href = "javascript:kepValtas("+i+","+j+","+(j-1)+");";
leftlink.innerHTML="◀";
} else {
leftlink = document.createElement("span");
leftlink.innerHTML=" ";
}
if (j != units.length - 1) {
rightlink = document.createElement("a");
rightlink.href = "javascript:kepValtas("+i+","+j+","+(j+1)+");";
rightlink.innerHTML="▶";
} else {
rightlink = document.createElement("span");
rightlink.innerHTML=" ";
}
var comment = document.createElement("tt");
comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
with(imghead) {
style.fontSize="110%";
style.fontweight="bold";
appendChild(leftlink);
appendChild(comment);
appendChild(rightlink);
}
currentimage.insertBefore(imghead,currentimage.childNodes[0]);
if (j != 0) currentimage.style.display="none";
}
}
}
$(kepDia);
/*
== Knávom, azaz a kínai nevek átírását váltogató mechanika ==
*
* [[Sablon:Kínai]] stb.
* Eredeti kód: [[User:Chery/kínai.js]]
*/
kinai_primary = 'magyaros';
function kinai_switch() {
$('.kinai-szoveg').each(function kinai_switch_foreach() {
var pinyin = '';
var magyaros = '';
var hanzi = '';
var egyeb = '';
var cimszo = 0;
var hidden = 0;
$('span', this).each(function kinai_switch_inner_foreach() {
switch ($(this).attr('class')) {
case 'pinyin':
pinyin = '<span class="pinyin">' + $(this).html() + '</span>';
break;
case 'magyaros':
magyaros = '<span class="magyaros">' + $(this).html() + '</span>';
break;
case 'hanzi':
hanzi = '<span class="hanzi">' + $(this).html() + '</span>';
break;
case 'egyeb':
egyeb = '<span class="egyeb">' + $(this).html() + '</span>';
break;
case 'cimszo':
cimszo = 1;
break;
case 'hidden':
hidden = 1;
break;
}
})
var str0 = (kinai_primary == 'pinyin') ? magyaros : pinyin;
var str1 = (kinai_primary == 'pinyin') ? pinyin : magyaros;
if (cimszo) {
str0 = '<span class="cimszo"><b>' + str0 + '</b></span>';
}
if (!hidden) {
str0 += ' ';
str0 += (hanzi) ? '(' + hanzi + ', <i>' : '<i>(';
str0 += str1;
str0 += (egyeb) ? ',</i> ' + egyeb + ')' : ')</i>';
} else {
if (hanzi) {
str0 += ' (' + hanzi + ')';
}
str0 += '<span class="hidden">' + str1 + '</span>';
}
$(this).html(str0);
});
if (kinai_primary == 'pinyin') {
kinai_primary = 'magyaros';
localStorage.setItem('kinai-primary', 'magyaros');
} else {
kinai_primary = 'pinyin';
localStorage.setItem('kinai-primary', 'pinyin');
}
}
// Betöltődéskor indítjuk
$(function magyarosKinaiInit() {
// Csak akkor rakjuk ki a fület, ha van a cikkben megjelölt kínai név.
if ( $('.kinai-szoveg').length === 0 ){
return;
}
// Odacsapjuk a fület.
var portletLink = mw.util.addPortletLink('p-cactions', '#', 'p./m.', 'ca-kinai-switch', 'Váltás pinyin és magyaros átírás közt');
$( portletLink ).click( function ( e ) {
e.preventDefault();
kinai_switch();
});
//Meg a kapcsolót a szócikk fölötti szöveghez is.
$("<a href='#'></a>")
.click( function ( e ) {
e.preventDefault();
kinai_switch();
})
.html($('#kinai_switch').clone())
.insertBefore($('#kinai_switch').hide());
// Váltunk is rögtön, hogy kezdetben is a szkript szerint jelenjen meg. Persze ezt szebben is lehetne.
kinai_primary = (localStorage.getItem('kinai-primary') == 'pinyin') ? 'magyaros' : 'pinyin';
kinai_switch();
});
/*
== Kéthasábos forráslista kikapcsolása, ha <4 forrás van ==
*/
if ($.client.profile().layout == "gecko" || $.client.profile().layout == "webkit" || $.client.profile().layout == "presto") {
$(function dynamicMultiColumn() {
$('div.ref-1col > div').each(function() {
if ($(this).find('li').length < 4) {
this.removeAttribute("style");
}
});
});
}
/*
== Keresési kifejezések naplózása névtelenül a Squidek által ==
*/
// Change search forms so they send to an URL which has the search term in the
// path (not just in the query part). This in necessary for getting search
// statistics from the squid logs.
// Based on [[wikt:de:MediaWiki:If-search.js]].
function SubSearch(formId, inputId) {
var form = $('#' + formId);
var input = $('#' + inputId);
if (input.val() == '') {
delimiter = '';
} else {
delimiter = '/';
}
form.attr('action', mw.config.get('wgArticlePath').replace('$1', oSEAp + delimiter + encodeURIComponent(input.val())));
// Try to remove <input name="title"> from the <form>
form.find('input[name="title"]:first').remove();
}
function fixSearchForm(formId, inputId) {
$('#' + formId).submit(function() {
SubSearch(formId, inputId);
});
}
$(document).ready(function() {
fixSearchForm('searchform', 'searchInput');
fixSearchForm('search', 'searchText');
fixSearchForm('powersearch', 'powerSearchText');
fixSearchForm('bodySearch', 'bodySearchIput');
if (!$('#searchform').length) {
oSEAp = '';
} else if ($('#searchform').attr('action').indexOf(mw.config.get('wgScript')) > -1) {
oSEAp = $('#searchform').find('input').val();
} else {
oSEAp = $('#searchform').attr('action').replace(/^.*\/([^\/]+)$/, '$1');
}
});
mw.loader.load( 'ext.gadget.userpage-customization' );
/*
== Erőforrástakarékos üzenet a TranslateWikin való MediaWiki-felület-fordításra ==
*/
$(document).ready(function() {
if (mw.config.get('wgNamespaceNumber') == 8 && mw.config.get('wgPageName').match(/\.js$|\.css$/) === null) {
$('<div></div>')
.addClass('editwarning')
.addClass('plainlinks')
.addClass('translateWikiMessage')
.html('<b>Ha olyan üzenetet fordítasz, amely nem Wikipédia-specifikus, akkor azt a <a href="//translatewiki.net" class="external text" style="color: #002bb8;" title="translatewiki.net" rel="nofollow">Translatewikiben</a> tedd, hogy így minden magyar nyelvű Wikimedia-projekt számára elérhető legyen!</b> (<a href="//translatewiki.net/wiki/' + mw.config.get('wgPageName') + '/hu" class="external text" style="color: #002bb8;" title="' + mw.config.get('wgPageName') + ' magyar változatának megtekintése a Translatewikiben" rel="nofollow">→ezen üzenet megtekintése a Translatewikiben</a>, <a href="//translatewiki.net/wiki/' + mw.config.get('wgPageName') + '/hu?action=edit" class="external text" style="color: #002bb8;" title="' + mw.config.get('wgPageName') + ' magyar változatának szerkesztése a Translatewikiben" rel="nofollow" style>szerkesztés</a>)')
.appendTo($('#siteSub'));
}
});
/*
== Pozíciós térkép nagyító ==
*/
function poziciosTerkepInit($content) {
$content.find('.poziciosTerkepDoboz').each(function () {
try {
var $inner = $(this).find('.poziciosTerkepBelso:first');
if ($inner.find('img:first').attr('src').indexOf('/thumb/') == -1) return false;
var $bg = $inner.find('img')[1];
if ($bg && $bg.alt == 'Háttér' && $bg.src.indexOf('/thumb/') == -1) return false;
$inner.find('a:first')
.click(poziciosTerkepOpen)
.css('cursor', 'move');
} catch (e) {} // ha nincs meg, akkor nincs értelme továbbmenni
});
}
function poziciosTerkepOpen(e) {
// Semmiképpen se nyíljon meg a link
e.preventDefault();
// Kicsi pozíciós térkép megkeresése
var $outer = $(e.delegateTarget).parent();
while (!$outer.hasClass('poziciosTerkepBelso')) {
$outer = $outer.parent();
}
// Pozíciós térkép átmásolása
var $newDiv = $($outer[0].cloneNode(true));
var newImg = [];
newImg[0] = $newDiv.find('img')[0];
newImg[0].title = newImg[0].src.match(/\/.\/..\/(.*\.[a-zA-z]{3,4})\/[^\/]*$/)[1];
if ($newDiv.find('img')[1] && $newDiv.find('img')[1].alt == 'Háttér') {
newImg[1] = $newDiv.find('img')[1];
newImg[1].title = newImg[1].src.match(/\/.\/..\/(.*\.[a-zA-z]{3,4})\/[^\/]*$/)[1];
}
// A kép eredeti méreteinek lekérdezése
for (var i = 0; i < newImg.length; ++i) {
if (newImg[i].title.match(/\.[a-zA-z]{3,4}$/) != ".svg") {
mw.loader.using('mediawiki.api', function () {
new mw.Api().get({
action: 'query',
prop: 'imageinfo',
iiprop: 'size',
titles: 'Fájl:' + newImg[i].title
}).done(function (data) {
var iinfo;
if (data.query && data.query.pages) {
$.each(data.query.pages, function () {
if (this.imageinfo && this.imageinfo[0]) {
iinfo = this.imageinfo[0];
}
});
}
if (typeof iinfo != 'object' || !iinfo.width || !iinfo.height) return false;
if (poziciosTerkepKesz && iinfo.width < newWidth) {
for (var j = 0; j < newImg.length; ++j) {
newImg[j].width = iinfo.width;
newImg[j].height = iinfo.height;
if (newImg[j].title.match(/\.[a-zA-z]{3,4}$/) != ".svg")
newImg[j].src = newImg[j].src.replace(/thumb/, "").replace(/\/[0-9]*px-.*\.[a-zA-z]{3,4}$/, "");
$newDiv.css('width', iinfo.width);
}
}
});
});
}
}
// Méretek meghatározása
var oldWidth = $outer[0].clientWidth;
var oldHeight = $outer[0].clientHeight;
var newWidth = Math.round( $('html')[0].clientWidth * 0.90 );
var newHeight = Math.round( $('html')[0].clientHeight * 0.95 );
if (oldHeight / oldWidth * newWidth > newHeight) {
newWidth = Math.round(oldWidth / oldHeight * newHeight);
} else {
newHeight = Math.round(oldHeight / oldWidth * newWidth);
}
for (var i = 0; i < newImg.length; ++i) {
newImg[i].width = newWidth;
newImg[i].height = newHeight;
newImg[i].src = newImg[i].src.replace(new RegExp(oldWidth + 'px\\-', 'g'), newWidth + 'px-');
$(newImg[i]).parent().css('cursor', 'hand');
}
$newDiv.find('span:first').css({
padding: 1,
'font-size': '12pt',
'text-shadow': '-1px -1px 1px white, -1px 0px 1px white, -1px 1px 1px white, 0px -1px 1px white, ' +
'0px 1px 1px white, 1px -1px 1px white, 1px 0px 1px white, 1px 1px 1px white;'
});
$newDiv
.attr('id', 'poziciosTerkepNagyitott')
.css({
width: newWidth,
position: 'absolute',
'background-color': 'white',
'z-index': 102,
top: Math.round(((window.innerHeight || $('html')[0].clientHeight) - newHeight) / 2
+ (document.body.scrollTop > 0 ? document.body.scrollTop : document.documentElement.scrollTop)),
left: Math.round(((window.innerWidth || $('html')[0].clientWidth) - newWidth) / 2),
border: 'solid 1px black',
'box-shadow': '0px 0px 20px #c0c0c0',
'border-radius': 3,
'-moz-box-shadow': '0px 0px 20px #c0c0c0',
'-moz-border-radius': 3
});
var $closeButton = $('<div />')
.css({
position: 'absolute',
'text-align': 'right',
width: '100%',
'z-index': 103
})
.append(
$('<img />')
.attr('src', '/media/wikipedia/commons/d/d4/Button_hide.png')
.css('padding', 4)
.click(poziciosTerkepClose)
)
.prependTo($newDiv);
// Kirakjuk
$newDiv.prependTo('body');
var poziciosTerkepKesz = true;
// Háttér elsötétítése
$('body').css('height', 'auto');
var scrollHeight = $('body')[0].scrollHeight || $('body')[0].offsetHeight;
$('body').css('height', '100%');
var $opacityDiv = $('<div />')
.attr('id', 'poziciosTerkepOpacity')
.click(poziciosTerkepClose)
.css({
position: 'absolute',
top: 0,
'background-color': 'black',
opacity: 0.3,
filter: 'alpha(opacity=70)',
width: '100%',
height: scrollHeight + 20,
'z-index': 101
})
.appendTo('body');
return false;
}
function poziciosTerkepClose() {
$('#poziciosTerkepNagyitott, #poziciosTerkepOpacity').remove();
}
mw.hook( 'wikipage.content' ).add(poziciosTerkepInit);
/*
== Flagrev bugfix ==
*/
$(function() {
// $('#mw-fr-revisiontag').css("display", "block");
$('#mw-fr-revisiontoggle').attr('title', null);
});
/*
== Figyelmeztető ikon a kezdőlap vitáján, ha hiányzó allapok vannak ==
*/
if (mw.config.get('wgPageName') == 'Vita:Kezdőlap') {
$('#header-container').bind('tabsetReady', function(e) {
if ($.trim($('#urgent-tasks').text())) {
$('#ts-headerTabs li a:contains("Tennivalók")').append(
$('<img src="/media/wikipedia/commons/c/c0/Exclamation.png"/>').css('margin-left', '5px')
);
}
});
}