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 */
/*
== Segédfüggvények ==
*/
function addLoadEvent( func ) {
mw.log.warn( 'Elavult addLoadEvent(), használj helyette $()-t vagy mw.hook(...).add()-et. Stack trace:\n', new Error().stack );
$( func );
}
function getCookie(name) {
mw.log.warn( '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) {
mw.log.warn( 'Elavult setCookie(), használj helyette mw.cookie.set()-et. Stack trace:\n', new Error().stack );
mw.cookie.set( name, text, { expires: expires, prefix: '' } );
}
/*
== Kezdőlap összes Wikipédia listája ==
*/
( function ( mw ) {
var conf = mw.config.get( [ 'wgTitle', 'wgMainPageTitle', 'wgNamespaceNumber' ] );
if ( conf.wgTitle === conf.wgMainPageTitle && conf.wgNamespaceNumber === 0 ) {
$.when(
mw.loader.using( 'mediawiki.util' ),
$.ready
).then( function () {
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
'Teljes lista', 'interwiki-completelist', 'A Wikipédiák teljes listája' );
} );
}
}( mediaWiki ) );
/*
== Elrejthető üzenetek ==
*/
window.addHideButton = ( function ( mw, $ ) {
function hideElement( e ) {
var $this = $( this ),
$box = $this.parent(),
name = $box.attr( 'id' );
mw.cookie.set( 'hide-' + name, '1', 7*24*3600 ); // 1 hét
$this.hide();
$box.hide();
e.preventDefault();
return false;
}
function addHideButton( element ) {
var $this = $( element );
if ( !$this.length ) return;
mw.loader.using( 'mediawiki.cookie', function () {
var isHidden = mw.cookie.get( 'hide-' + $this.attr( 'id' ) );
if ( isHidden ) {
$this.hide();
} else {
var $button = $( '<a>' )
.attr( 'href', '#' )
.attr( 'id', 'hide-' + $this.attr( 'id' ) )
.addClass( 'hideButton' )
.attr( 'title', 'Üzenet elrejtése egy hétre' )
.click( hideElement )
.text( '[elrejt]' )
.appendTo( $this );
}
} );
}
return addHideButton;
}( mediaWiki, jQuery ) );
/*
== Képfeltöltés ==
*/
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' )
mw.loader.load( 'ext.gadget.uploadpage' );
/*
== Legördülő menü és extra gombok az edittools-ba ==
*/
if ( mw.config.get( 'wgAction' ) in { edit: 1, submit: 1 } || mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Upload' )
mw.loader.load( 'ext.gadget.edittools' );
/*
== 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( $content ) {
$content.find( '#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 = '';
}
}
mw.hook( 'wikipage.content' ).add( loadLoginForm );
} ) ();
/*
== 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: https://phabricator.wikimedia.org/source/mediawiki/browse/master/resources/src/jquery/jquery.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);
}());
/*
== Kéthasábos forráslista kikapcsolása, ha <4 forrás van ==
*/
( function () {
function dynamicMultiColumn( $content ) {
$content.find( 'div.ref-1col > div' ).each( function () {
if ( $( this ).find( 'li' ).length < 4 ) {
$( this ).css( {
'-moz-column-count': '',
'-webkit-column-count': '',
'column-count': ''
} );
}
} );
}
mw.hook( 'wikipage.content' ).add( dynamicMultiColumn );
}() );
/*
== 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 () {
var oSEAp = '';
function SubSearch( e ) {
var delimiter,
$form = $( this ),
$input = $( '#' + $form.data( 'fixSearch-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 )
.data( 'fixSearch-inputId', inputId )
.submit( SubSearch );
}
$( function () {
fixSearchForm( 'searchform', 'searchInput' );
fixSearchForm( 'search', 'searchText' );
fixSearchForm( 'powersearch', 'powerSearchText' );
fixSearchForm( 'bodySearch', 'bodySearchIput' );
var $form = $( '#searchform' );
if ( $form.length && $form.attr( 'action' ).indexOf( mw.config.get( 'wgScript' ) ) > -1 ) {
oSEAp = $form.find( 'input' ).val();
} else if ( $form.length ) {
oSEAp = $form.attr( 'action' ).replace( /^.*\/([^\/]+)$/, '$1' );
}
} );
}() );
/*
== Szerkesztői lapok testreszabása ==
- Megjelenő cím cseréje szerkesztő(vita), Wikipédia(-vita) és portálnévterekben
- Megjelenő alcím cseréje és virtuális kategóriák megjelenítése szerkesztőnévtérben
- Betűtípus és háttérszín módosítása szerkesztő(vita) névtérben
*/
if (
[
2, 3, // szerkesztői lap és vitája
4, 5, // Wikipédia-lap és vitája
100 // portál
].indexOf( mw.config.get( 'wgNamespaceNumber' ) ) > -1
) {
mw.loader.load( 'ext.gadget.userpage-customization' );
}
/*
== Erőforrástakarékos üzenet a TranslateWikin való MediaWiki-felület-fordításra ==
*/
$( function() {
if ( mw.config.get('wgNamespaceNumber') == 8 && mw.config.get('wgPageName').match(/\.js$|\.css$/) === null ) {
$( '<div>' )
.addClass( 'editwarning plainlinks 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' );
}
} );
/*
== Figyelmeztető ikon a kezdőlap vitáján, ha hiányzó allapok vannak ==
*/
$( function () {
if ( mw.config.get('wgPageName') == 'Vita:Kezdőlap' && $( '#urgent-tasks a' ).length ) {
$( '#header-container' ).on( 'tabsetReady', function ( e ) {
$( '<img>' )
.attr( 'src', '/media/wikipedia/commons/c/c0/Exclamation.png' )
.css( 'margin-left', '5px' )
.appendTo( '#ts-headerTabs li a:contains("Tennivalók")' );
} );
}
}() );