Szerkesztő:Balasyum/jaror.js

A Wikipédiából, a szabad enciklopédiából

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
  • Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
  • Opera: Nyomj Ctrl–F5-öt
importScript("MediaWiki:Gadget-warning.js");

/*
Script átrakva MediaWiki névtérbe

Sablonok listája. Paraméterek sorban:
	1. melyik névtérben jelenjen meg (wgNamespaceNumber) (negatív értékűt nem rakja ki magától, arról külön kód gondoskodik)
	2. beillesztendő szöveg
	3. szerkesztési összefoglaló
	4. azonnali mentés (1=igen)
	5. 0=elejére, 1=végére, -1=tartalom törlése
	6, 7. (opcionális) paraméter leírása (akkor kell, ha a beillesztendőben van %1, %2)

var jarorSablonok = new Object({
    'Szubcsonk': [0, 'szubcsonk|~~'+'~~'+'~}}', 'Szubcsonk sablon', 1, 0],
    'Azonnali': [0, 'azonnali|1=%1|2=~~'+'~~}}', 'Azonnali sablon', 1, 0, 'Indoklás:'],
    'Forma': [0, 'forma|1=%1}}', 'Forma sablon', 1, 0, '(o) Indoklás:'],
    'Lektor': [0, 'lektor}}', 'Lektor sablon', 1, 0],
    'Átdolgoz': [0, 'átdolgoz}}', 'Átdolgoz sablon', 1, 0],
    'Korr': [0, 'korrektúra}}', 'Korrektúra sablon', 1, 0],
    'Nincs forrás': [0, 'nincs forrás}}', 'Nincs forrás sablon', 1, 0],
    'Részben N.F.' : [0, 'részben nincs forrás}}', 'Részben nincs forrás sablon', 1, 0],
    'SN': [0, 'SN|%1}}', 'SN sablon', 1, 0, '(o) Pontosítás: "SN", "reklám", vagy rövid indoklás'],
    'Törlés': [0, 'törlés|%1}}', 'Törlés sablon', 1, 0, '(o) Ha már nem az első törlés, akkor: "második" stb.'],
    'Csonk': [0, 'csonk}}', 'Csonk sablon', 0, 0],
    'Jogsértő': [0, 'jogsértő|url=%1}}', 'Jogsértő sablon', 1, -1, "URL:"],
    'Másolmány': [0, 'másolmány|2=%2|url=%1}}', 'Másolmány sablon', 0, 0, "URL:", '(o) Mi a másolmány: "a szócikk" vagy "a szakasz"'],
    'Wikikönyvekbe': [0, 'wikikönyvekbe}}', 'Wikikönyvekbe sablon', 1, 0],
    'Wikiszótárba': [0, 'wikiszótárba}}', 'Wikiszótárba sablon', 1, 0],
    'Arabátír': [0, 'arabátír|1=%1}}', 'Arabátír sablon', 1, 0, 'Indoklás:'],
    'Cirillátír': [0, 'cirillátír|1=%1}}', 'Cirillátír sablon', 1, 0, '(o) Indoklás:'],
    'Görögátír': [0, 'görögátír|1=%1}}', 'Görögátír sablon', 1, 0, '(o) Indoklás:'],
    'Héberátír': [0, 'héberátír|1=%1}}', 'Héberátír sablon', 1, 0, '(o) Indoklás:'],
    'Japánátír': [0, 'japánátír|1=%1}}', 'Japánátír sablon', 1, 0, '(o) Indoklás:'],
    'Koreaiátír': [0, 'koreaiátír|1=%1}}', 'Koreaiátír sablon', 1, 0, '(o) Indoklás:'],
    'Kínaiátír': [0, 'kínaiátír|1=%1}}', 'Kínaiátír sablon', 1, 0, '(o) Indoklás:'],
    'Laoátír': [0, 'laoátír|1=%1}}', 'Laoátír sablon', 1, 0, '(o) Indoklás:'],

    'Vandalizmus': [3, 'subst:vandalizmus}} – ~~'+'~~', 'Vandalizmus sablon', 1, 1],
    'Teszt': [3, 'subst:teszt|1=%1}} – ~~'+'~~', 'Első figyelmeztetés', 1, 1, '(o) Szócikk címe vagy difflink'],
    'Teszt2': [3, 'subst:teszt2}} – ~~'+'~~', 'Második figyelmeztetés', 1, 1],
    'Teszt3': [3, 'subst:teszt3}} – ~~'+'~~', 'Kérlek, állj le!', 1, 1],
    'Teszt4': [3, 'subst:teszt4}} – ~~'+'~~', 'Utolsó figyelmeztetés', 1, 1],
    'Szubcsonk-figy': [3, 'subst:szubcsonk-figy|1=%1}}', 'Szubcsonk figyelmeztetés', 1, 1, '(o) Érintett szócikk címe:'],
    'Netörölj': [3, 'subst:netörölj}} – ~~'+'~~', 'Ne törölj!', 1, 1],
    'Nemásolj': [3, 'nemásolj|1=%1|2=%2}}', 'Kétes szerzői jog', 1, 1, '(o) Érintett szócikk címe:', '(o) URL, ahonnan másolt'],
    'Spam': [3, 'subst:spam}} – ~~'+'~~', 'Spam', 1, 1],

    'Üdvözlet': [-3, 'subst:üdvözlet|user=~~'+'~~|kép=%1}}', 'Üdvözlet', 1, 0, '(o) Ha nem alap képet akarsz (csillagos, gombostű, zöldgömb, igazgömb, otthonos, régi)'],
    'Anonüdv': [-3, 'subst:anonüdv|user=~~'+'~~}}', 'Anonüdv', 1, 0]
});

if ( typeof(jarorSablonLista) == "undefined" ) {

//Bekapcsolt sablonok: alapértelmezetten ezek látszanak, monobook.js-ben felüldefiniálható
//A negatív névterűeket (pl üdvözlet) nem kell megadni, mert azok mindig megjelennek
var jarorSablonLista = ["Szubcsonk", "Azonnali", "Törlés", "Forma", "Lektor", "Korr", "Nincs forrás", "SN", "Csonk", "Jogsértő", "Másolmány", "Vandalizmus", "Teszt", "Teszt2", "Teszt3", "Teszt4", "Spam", "Netörölj", "Szubcsonk-figy", "Nemásolj"];

}

function getURLParam(strParamName){
    var strReturn = "";
    var strHref = window.location.href;
    if (strHref.indexOf("?") > -1) {
        var strQueryString = strHref.substr(strHref.indexOf("?"));
        var aQueryString = strQueryString.split("&");
        for (var iParam = 0; iParam < aQueryString.length; iParam++) {
            if (aQueryString[iParam].indexOf(strParamName + "=") > -1) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }
    return decodeURIComponent(strReturn);
}

function jogosultsag() {	//Van-e jogosultságunk a lap szerkesztésére
    var L;
    for (var i=0; i<wgRestrictionEdit.length; ++i) {
        L=false;
        for (var j=0; j<wgUserGroups.length; ++j) {
            if (wgRestrictionEdit[i] == wgUserGroups[j])
                L=true;
        }
        if ( !L )
            return false;
    }
    return true;
}

function jarorPrompt(sablon) {	//Bekéri a sablon paramétereit
    var url = wgServer+wgScript +'?title='+ encodeURIComponent(mw.config.get('wgPageName'))+'&action=edit&jaror='+ encodeURIComponent(sablon);
    var params = "";
	var undefNum = 0;
    for (var i=1; i<arguments.length; ++i) {
		var value = prompt("{"+"{"+sablon+"}}\n"+ unescape(arguments[i]), "");
		if (value!=null) {
			params += '&param'+ i +'=' + encodeURIComponent(value);
		}else {
			params = "";
			break;
		}
    }
    if (params != "" || arguments.length == 1)
        document.location = url + params;
}

function jaror_show(showall) {	//Sablonok gombra kattintva megjeleníti/eltünteti a sávot
	function fillParams(tomb) {	//jarorPrompt onclick híváshoz generálja a paramétereket
		var str = "";
		for (var i=5; i<tomb.length; ++i) {
			str+=", '"+ escape(tomb[i]) +"'";
		}
		return str;
	}
	function osszesSablonNev() {	//jarorSablonok objektumtulajdonságait tömbbe rakja
		var ret = new Array();
		for (var i in jarorSablonok)
			ret.push(i);
		return ret;
	}
	
    if ( document.getElementById('jarorDiv') == null ) {	//Ha még nem létezik a sáv
        var cim = wgServer+wgScript +'?title='+ encodeURIComponent(mw.config.get('wgPageName')) +'&action=edit&jaror=';
        
        var jarordiv = document.createElement("div");
        jarordiv.id = "jarorDiv";
        jarordiv.align = "center";
		var lista = (showall == "all") ? osszesSablonNev() : jarorSablonLista;
		var j=0;	// Pipe jel miatt kell
		for (var i in lista) {	//Megjeleníti a jarorSablonLista tömbben megadott sablonokat, amik a névtérhez tartoznak
			if ( typeof(jarorSablonok[lista[i]]) != "undefined" ) {
				var tmp = lista[i];
				if (wgNamespaceNumber == jarorSablonok[tmp][0]) {	//Névtér vizsgálat
					jarordiv.innerHTML += (j==0 ? '' : ' | ')+ "<a href='#' onClick=\"jarorPrompt("+
						"'"+tmp+"'"+ fillParams(jarorSablonok[tmp]) +");return false;\">"+ tmp +"</a>";
					++j;
				}
			}else
				alert( lista[i]+" sablon nem létezik.\nTipp: talán a monobook.js-edben van elírva.");
		}
		if (showall != "all")
			jarordiv.innerHTML += " | <a href='javascript:jaror_show();jaror_show(\"all\");'><i>(összes)</i></a>";
        document.getElementById('content').insertBefore(jarordiv, document.getElementById('content').childNodes[2]);
        
        //Megíratlan szerkesztői vitalapokhoz üdvözlő sablonok
        if (wgNamespaceNumber == 3 && wgAction == 'edit' && typeof(document.editform) != "undefined"
				&& document.getElementById('wpTextbox1').value == "") {
            var reg = /\b(?:\d{1,3}\.){3}\d{1,3}\b/; //IP cím keresése
            var udvozlet = document.createElement("center");
            if (reg.test(wgTitle)) {
                udvozlet.innerHTML = '<a href="' + cim + 'Anonüdv">Anonüdv</a>';
            }else
                udvozlet.innerHTML = '<a href="' + cim + 'Üdvözlet">Üdvözlet</a>';
            document.getElementById('jarorDiv').insertBefore(udvozlet, jarordiv.childNodes[0]);
        }
    }else {
        document.getElementById('content').removeChild( document.getElementById('jarorDiv') );
    }
}

function jaror(){
	function sprintf(str)  {	//sprintf függvény a paraméterek belekódolásához
		for (var i = 1; i < arguments.length; i++) {
			var minta = new RegExp("\\%" + (i), "g"); 
			str = str.replace(minta, arguments[i]); 
		}
		return str; 
	} 

    if (getURLParam('printable') == 'yes' || wgPageName == "Kezdőlap")
        return false;

    //"Sablonok" gomb kirakása fölülre
    if ( jogosultsag() && ((wgNamespaceNumber==0 && wgAction=='view') || wgNamespaceNumber==3 )) {
        var node = document.getElementById("p-cactions");
        if ( !node ) return null;
        node = node.getElementsByTagName( "ul" )[0];
        if ( !node ) return null;
        var link = document.createElement( "a" );
         link.appendChild( document.createTextNode( "Sablonok▼" ) );
         link.href = "javascript:jaror_show();";
         link.id = "ca_jaror_a";
         link.setAttribute( "title", "Gyakran használt sablonok" );
        var item = document.createElement( "li" );
         item.appendChild( link );
         item.id = 'ca-jaror';
        node.appendChild( item );
    }

	//Kiértékelés, sablonok beillesztése a szövegbe. Ha egy sablonra kattintott, az új oldal betöltődésekor fut le
	var sablonnev = getURLParam('jaror');
    if (sablonnev != "" && wgAction == 'edit' && typeof(document.editform) != "undefined") {
        var param1 = decodeURIComponent(getURLParam("param1"));
        var param2 = decodeURIComponent(getURLParam("param2"));
        var param3 = decodeURIComponent(getURLParam("param3"));
        var TB = document.getElementById('wpTextbox1');
		
        if ( typeof(jarorSablonok[sablonnev]) != "undefined" ) {
			var tmp = jarorSablonok[sablonnev];
			if (tmp[4] == 0) 
				TB.value =  '{{'+ sprintf(tmp[1],param1,param2,param3) +'\n' + TB.value;
			if (tmp[4] == 1)
				TB.value += '{{'+ sprintf(tmp[1],param1,param2,param3) +'\n';
			if (tmp[4] ==-1)
				TB.value  = '{{'+ sprintf(tmp[1],param1,param2,param3) +'\n';
			document.getElementById('wpSummary').value = tmp[2];
			//if (tmp[3] == 1)
			//	document.editform.submit();
		}else
			alert("Hibás sablonnév: "+ sablonnev +"\nKérlek szólj a fejlesztőnek.");
    }

}

$(jaror);
*/