Benutzer:MireilleLibmann/Skript-Handbuch
Tecknick Memorandum-Tutorial
ändereWia ma a Script kààt riafa
ändereDr Benutzer AlsUser („AlsUser“ ìsch do dr Nàmme vum Benutzer, zum Beispiel) kààt a Script erstella ìn dr Sitta http://als.wikipedia.org/wiki/Benutzer:AlsUser/common.js
Erscht Beispiel vu'ma Script, wo zwei nèia Link ìn Portlet „Wächzügchäschtli“ (uf dr Sitta lìnks) erstellt :
// Make sure the utilities module is loaded (will only load if not already) mw.loader.using( 'mediawiki.util', function () {
// Add MediaWiki.org-link in the toolbox before the Print-link mw.util.addPortletLink( 'p-tb', '//www.mediawiki.org/', 'MediaWiki.org', 't-mworg', 'Go to MediaWiki.org ', 'm', '#t-print' );
var linkTest = mw.util.addPortletLink( 'p-tb', '#', 'Alert Link-Test', 'ca-testAlert', 'Test Link mit Alert-Popup'); $( linkTest ).click( function ( event ) { event.preventDefault(); alert('Test OK'); } );
} );
Dr erscht, MediaWiki.org, ìsch a eifàch Link uf dr Websitta www.mediawiki.org.
Dr zweit, Alert Link-Test, düet a Javascript-Ìnstruktion ààriafa: alert('Test OK');
Àstàtt a eifàcha Javascript-Ìnstruktion ààz'riafa kààt ma aui a Javascript-Function ààriafa. Zum Beispiel:
// Make sure the utilities module is loaded (will only load if not already) mw.loader.using( 'mediawiki.util', function () {
var linkArwet = mw.util.addPortletLink( 'p-tb', '#', 'Alert Link-Arwet', 'ca-testArwet', 'Arwet Link mit Alert-Popup'); $( linkArwet ).click( function ( event ) { event.preventDefault(); kleinaArwet(); } ); } );
function kleinaArwet() { alert('Willkumma'); alert('Dr wgServer ìsch: ' + wgServer + '\n Dr wgScriptPath ìsch: ' + wgScriptPath + '\n Dr wgArticlePath ìsch: ' + wgArticlePath); }
Verschìedena tecknicka Noochrìchta
ändereÌn'ma Script, gìtt's mehrera Noochrìchta ìwer dr System un sinera Umgebung:
wgServer = //als.wikipedia.org
wgScriptPath = /w
wgPageName = Diskussion:Houptsyte oder Wikipedia:Tutorial oder Dieth-Schreibung oder Spezial:Letschti_Änderige...
wgNamespaceNumber = 0 oder 1 oder 2...
wgAction = view oder edit oder history...
→ Mehr erfàhra do: http://www.mediawiki.org/wiki/Manual:Configuration_settings
Ìn'ma Edit-Sitta, sahn d Elemanta vu dr Sitta via Variables üs (ìmmer ìn'ma javascript Script):
document.editform.wpTextbox1.value = dr Text wo editiart düet wara. Das kààt ma lasa, wachsla, druf schàffa mìt javascript-Ìnstruktiona.
document.editform.wpSummary.value = dr Ìnhàlt vu dr „Zämefassig“ wo d Anderung beschribt.
document.editform.wpMinoredit.checked = s Kaschtla „Numen es birebitzeli gänderet“ wo fer a kleina Anderung ààkritzelt sott wara (true oder false).
Àm And, wenn dia Noochrìchta güet igstellt worra sìn, kààt ma dàs àlles speichra mìt dr Ìnstruktion :
document.editform.submit();
D Wikipedia API
ändereAs gìtt a Wikipedia-API wo dr Ìnhàlt vu dr Wikipedia kààt lasa und beàrbeita.
Lüega uf https://www.mediawiki.org/wiki/API:Edit un http://als.wikipedia.org/w/api.php
Do sìn Beispìeler, wia ma d API kààt verwanda.
Fer a Sitta z'lasa
änderehttp://als.wikipedia.org/w/api.php?format=xml&action=query&titles=Orthal&prop=info
http://als.wikipedia.org/w/api.php?action=query&format=xml&titles=Diskussion:Houptsyte
Dàs brìngt a XML Noochrìchta zruck, wo d Sitta vu „titles“ beschribt.
D Noochrìchta ns zeigt ìn wellem namepace àss d Sitta gheert.
- ns="-1" fer a Spezial:Sitta
- ns="0" fer a Normàler Àrtìkel (wia zum Beispiel Orthal)
- ns="1" fer a Diskussion-Sitta (wia zum Beispiel Diskussion:Houptsyte)
- ns="2" fer a Benutzer-Sitta
- ns="3" fer a Benutzer Diskussion:Sitta
- ns="4" fer a Wikipedia:Sitta
- ns="5" fer a Wikipedia Diskussion:Sitta
- ns="6" fer a Datei
- ns="7" fer a Datei Diskussion:Sitta
- ns="8" fer a MediaWiki
- ns="9" fer a MediaWiki Diskussion:Sitta
- ns="10" fer a Vorlage
- ns="12" fer a Hilfe:Sitta
- ns="14" fer a Kategorie-Sitta
- ns="100" fer a Portal
- ns="101" fer a Portal Diskussion
- ns="102" fer a Buech-Sitta
- ns="103" fer a Buech Diskussion
- ns="104" fer a Wort-Sitta
- ns="106" fer a Text-Sitta (wia zum Beispiel Text:August_Lustig/A._Lustig_Sämmtliche_Werke:_Band_1/D%27Nochberslit.)
- ns="108" fer a Spruch-Sitta
Fer a Lischta vu mehrera Àrtìkel z'fìnda
änderehttp://als.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=B&aplimit=200
Ànder Beispiel: fer àlla Diskussionasitta fìnda, wo zu Text vum A. Lustig gheera:
http://als.wikipedia.org/w/api.php?action=query&list=allpages&apnamespace=107&apfilterredir=nonredirects&apfrom=August_Lustig/A._Lustig_S%C3%A4mmtliche_Werke:_Band_1&apto=August_Lustig/A._Lustig_S%C3%A4mtliche_Werke:_Band_2zzz&aplimit=500
Fer a Àrtìkel editiara, oder läscha, oder si Nàmma wachsla
Fer dia Àktiona brüücht ma a Token iz'gaa.
Da Token fìndet ma aui dur d API - fer dàs müeß ma àwer dr Racht hàà, dàs heißt ìn dr Wikipedia logged sìì.
http://als.wikipedia.org/w/api.php?action=query&format=xml&prop=info&titles=Orthal&intoken=move
Aui uf Commons
ändere
Fer a Sitta z'editiara
ändereAui lüega uf https://www.mediawiki.org/wiki/API:Edit
(Beispiel àbgschrìewa vu dara Sitta:
api.php?action=edit&title=Talk:Main_Page§ion=new&summary=Hello%20World&text=Hello%20everyone!&watch&basetimestamp=2008-03-20T17:26:39Z&token=cecded1f35005d22904a35cc7b736e18%2B%5C )
Beispiel wo dr Àrtìkel Orthal ìm edit-Mode kännt ufmàcha (wàs d Ìnstruction-Syntax ààbelàngt):
http://als.wikipedia.org/w/api.php?action=edit&title=Orthal&summary=Korrektur&token=cecded1f35005d22904a35cc7b736e18%2B%5C
Fer a Àrtìkel-Nàmma z'wachsla:
http://als.wikipedia.org/w/api.php?action=move&from=Elsssssas(latz!)&to=Elsass&reason=Titel-Korr.&token=ysdfghded1fohsd878722904a35cc7bUAFF
Dia Ìnstruktion müeß ma nàtiirlig nìt numma a so ìm Ìnternet-Browser ààriafa. Ma müeß sa ìn'ma Script (ìn commons.js) ufbàuia, mìt em Token wo gràd vorhar gfunda worra ìsch, un dernoh ààriafa. Zum Beispiel a so :
var text_req_move = wgServer + wgScriptPath + '/api.php?action=move&from=' + encodeURIComponent(fromSitta) + '&to=' + encodeURIComponent(toSitta) + '&token=' + encodeURIComponent(move_token) + '&reason=Titel-Korr. waga Typo.';
wo fromSitta dr latz Nàmma ìsch, toSitta dr nèi Nàmma, un move_tekon dr Token wo gfunda worra ìsch dur d API. Dia àlla Text mian ìn'ma speziàl URL-kompatibel Format steht, wagadam düet ma d funktion encodeURIComponent() verwanda.
Zum Beispiel:
encodeURIComponent("Text:August Lustig/A. Lustig Sämtliche Werke: Band 1/'s Geld.") → "Text%3AAugust%20Lustig%2FA.%20Lustig%20S%C3%A4mtliche_Werke:%20Band%201/%27s%20Geld."
Beispiel vu'ma API-Ààrüef wo a latzer Sittanàmma düet verschoba (Sämmtliche → Sämtliche):
//als.wikipedia.org/w/api.php?action=move&from=Text%3AAugust%20Lustig%2FA.%20Lustig%20S%C3%A4mmtliche_Werke:%20Band%201/%27s%20Geld.&to=Text%3AAugust%20Lustig%2FA.%20Lustig%20S%C3%A4mtliche_Werke:%20Band%201/%27s%20Geld.&token=e08c796cc3d82b5960536ede51330d5d%2B%5C&reason=Titel-Korr. waga Typo.
Beispiel vu'ma Script wo àlla Sittanamma korrigiart (vu „Sämmtliche“ uf „Sämtliche“):
// Make sure the utilities module is loaded (will only load if not already) mw.loader.using( 'mediawiki.util', function () { // Wait for the page to be parsed $(document).ready( function () { var link = mw.util.addPortletLink( 'p-tb', '#', 'NammaKorrektur', 'ca-nammkorr', 'NammaKorrektur');
$( link ).click( function ( event ) { event.preventDefault(); korrTitel(); } ); } ); } );
function korrTitel() { //Mìt dr API, d Lischta fìnda, vu àlla Sitta wo-n-a latzer Titel han (dàs heißt, wo „Sämmtliche“ mit 2 m steht), un wo kè redirect sìn var req_list; if (req_list = sajax_init_object()) { var text_req_list = wgServer + wgScriptPath + '/api.php?action=query&format=xml&list=allpages&apnamespace=106&apfilterredir=nonredirects&apfrom=August_Lustig/A._Lustig_Sämmtliche_Werke:_Band_1&apto=August_Lustig/A._Lustig_Sämmtliche_Werke:_Band_1zzz&aplimit=10'; req_list.open("GET", text_req_list, false); req_list.send(""); var allpages = req_list.responseXML.getElementsByTagName('p'); }
//Schleifa uf àlla Sitta vu dr Lischta, wo gfunda worra sìn (Limit igstellt uf 10 Sitta ìn responseXML) for(i=0;i<allpages.length;i++) { var movefromSittaNamma = allpages[i].getAttribute('title');
//Üs Vorsìcht, zeerscht noch lüega äb dàs a Sitta ìsch, wo verschoba müeß wara if ( movefromSittaNamma.substring(0, 54) != "Text:August Lustig/A. Lustig Sämmtliche Werke: Band 1/" ) { alert("Àchtung! Bìsch uf era latza Sitta, wo ààfàngt mìt: " + movefromSittaNamma.substring(0, 54) ); } //Ìm Fàll wenn àlles stìmmt: else { //Mìt dr API, dr Token fìnda, wo ma brüücht fer a MOVE màcha var req_token; if (req_token = sajax_init_object()) { var text_req_token = wgServer + wgScriptPath + '/api.php?action=query&format=xml&prop=info&titles=' + wgPageName + '&intoken=move'; req_token.open("GET", text_req_token, false); req_token.send(""); var move_token = req_token.responseXML.getElementsByTagName('page')[0].getAttribute('movetoken'); }
//Do han mìr d Variable fromSitta un toSitta, fer dr latz Nàmma vorhar un dr güet Nàmma noochhar var fromSitta = movefromSittaNamma; var toSitta = "Text:August_Lustig/A._Lustig_Sämtliche_Werke:_Band_1/" + fromSitta.substring(54) alert("Move:" + fromSitta + " -> " + toSitta);
//Mìt dr API, dr Nàmma vu fromSitta uf toSitta verschoba var req_move; if (req_move = sajax_init_object()) { var text_req_move = wgServer + wgScriptPath + '/api.php?action=move&from=' + encodeURIComponent(fromSitta) + '&to=' + encodeURIComponent(toSitta) + '&token=' + encodeURIComponent(move_token) + '&reason=Titel-Korr. waga Typo.'; req_move.open("POST", text_req_move, true); req_move.send(text_req_move); } } } }
Lua
ändereLua ìsch a Programmiarsproch wo jetz ìn Mediawiki benutzt kààt wara. Do sìn a pààr Beispìeler-Skript.
Hello world
änderefunction p.hello( frame )
return "Hello, world!"
end
{{#invoke:Test|hello}}
Hello, world!
Mehrera Text
änderefunction p.MultiText( frame )
return "Txt [[Datei:Odometer 1.svg|12px]]" .. frame.args[1] -- frame.args[1] ìsch dr 1. Parameter
.. " [[Datei:Odometer 2.svg|12px]]" .. frame.args[2] -- frame.args[2] ìsch dr 2. Parameter
.. " [[Datei:Odometer 3.svg|12px]]" .. frame.args[3] -- frame.args[3] ìsch dr 3. Parameter
end
{{#invoke:Test|MultiText|aaa|bbb|ccc}}
Lenga vu'ma Text
änderefunction p.Lenga( frame )
if #frame.args[1] == 0 then -- d Lenga vu String str = #str
return "Laarer Text"
else -- Üswàhl-Syntax: if then else end
return "Lenga=" .. #frame.args[1] -- String concatenation dur ..
end
end
{{#invoke:Test|Lenga|azerty}}
Lenga=6
{{#invoke:Test|Lenga|}}
Laarer Text
Konjugation vu'ma Verb
änderegeh: ìch bì gànga
ghèia: ìch bì ghèit
assa: ìch hà gassa
schlofa: ìch hà gschlofa
düe: --
Rekursion dur a Text
änderelofa - ofa - fa - a - ʃlofa
inàt - nàt - àt - �t - t - ʃpinàt
Skriptfehler
ändereLua-Fehler in Modul:Test, Zeile 16: attempt to get length of field '?' (a nil value)
Ìm Mediawiki-Software wara d Fahler vu'ma Lua-Skript ìn rot ààzeigt. Dr rota Text ìsch a Link; wenn ma drufclickt sìeht ma a Elklärung vum Fahler.
Dokumentàtion ìwer Lua
änderehttps://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual