Benutzer:MireilleLibmann/Skript-Handbuch

Tecknick Memorandum-Tutorial

ändere

Wia ma a Script kààt riafa

ändere

Dr 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

ändere

As 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

ändere

http://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=Text:August_Lustig/A._Lustig_Sämmtliche_Werke:_Band_1/D%27Nochberslit.

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

ändere

http://als.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=B&aplimit=200


http://als.wikipedia.org/w/api.php?action=query&list=allpages&apnamespace=106&apfilterredir=nonredirects&apfrom=August_Lustig/A._Lustig_Sämmtliche_Werke:_Band_1&apto=August_Lustig/A._Lustig_Sämtliche_Werke:_Band_1zzz&aplimit=500

À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

http://commons.wikimedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Milh%C3%BCserisch%20pronunciation


Fer a Sitta z'editiara

ändere

Aui lüega uf https://www.mediawiki.org/wiki/API:Edit

(Beispiel àbgschrìewa vu dara Sitta:
api.php?action=edit&title=Talk:Main_Page&section=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 ìsch a Programmiarsproch wo jetz ìn Mediawiki benutzt kààt wara. Do sìn a pààr Beispìeler-Skript.

Hello world

ändere
function p.hello( frame )
    return "Hello, world!"
end
{{#invoke:Test|hello}}

Hello, world!


Mehrera Text

ändere
function 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}}

Txt  aaa  bbb  ccc


Lenga vu'ma Text

ändere
function 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

ändere

geh: ìch bì gànga

ghèia: ìch bì ghèit

assa: ìch hà gassa

schlofa: ìch hà gschlofa

düe: --


Rekursion dur a Text

ändere

lofa - ofa - fa - a - ʃlofa



inàt - nàt - àt - �t - t - ʃpinàt




Skriptfehler

ändere

Lua-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

ändere

https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual