FANDOM


Adoptionsantrag Offen: Admin-Forum:AdminMark/MarkAdmins


Hallo, ich wollte auf meiner Seite [www.de.islam.wikia.com] das aus DE:WP bekannte Tool MarkAdmins installieren, indem ich den Quelltext auf common.js kopiert habe. Leider scheint das nicht zu funktionieren. Kennt sich da jemand aus? Bitte um kurze Info. Gruß Supermohamed (AB) 14:30, 24. Jan. 2013 (UTC)

Änderungen an MediaWiki-Seiten sind manchmal nicht sofort verfügbar. Allerspätestens morgen sollten die Änderungen auch übernommen worden sein. Arkondi (Diskussion) 14:37, 24. Jan. 2013 (UTC)
Danke für die schnelle Antwort, dann werde ich mal noch abwarten und schauen, ob es bis morgen klappt. Im Script konnte ich nicht erkennen, ob auf irgendwelche Daten auf MediaWiki zurückgegriffen wird, falls das so sein sollte kann man's eh vergessen. So wie ich es sehe, werden die zu markierenden Benutzernamen aber manuell eingetragen. Gruß Supermohamed (AB) 15:02, 24. Jan. 2013 (UTC)
Wie erwartet es hat leider nicht geklappt. Wäre schön, wenn jemand mit JS-Kenntnissen sich das mal kurz ansehen kann :) Thanx Supermohamed (AB) 07:31, 25. Jan. 2013 (UTC)
Jetzt hat's gefunzt super vielen Dank :) Werd gleich mal ausprobieren ob es global angezeigt wird oder ob jeder Benutzer den Code auf seine common.js Seite kopieren muss. Vielen vielen Dank Supermohamed (AB) 15:03, 25. Jan. 2013 (UTC)
Hallo Supermohamed,
Ich hab mir den Code mal angeschaut, aber so richtig verstanden, was er machen soll habe ich nicht. Sieht mir so aus, als ob da noch eine Library fehlen würde (Ajax). Kannst du hier einen Link zu einem Wikia bereit stellen, in dem es funktioniert, damit ich mir mal anschauen kann, was es überhaupt machen soll.
Gruß, -- 20M61 (Nachricht) 09:10, 25. Jan. 2013 (UTC)
Hallo, der Code soll folgendes machen, er soll auf allen Seiten des Wikis einschließlich Diff-Seiten die Admins als solche markieren. Den Code habe ich von [1] hier geklaut und modifiziert, indem ich meinen Benutzernamen eingetragen und die anderen gelöscht habe. Das Ergebnis sähe dann idealerweise so aus wie meine Signatur, nur dass auf allen Seiten dann mein Benutzername nicht als "Supermohamed" sondern als "Supermohamed (AB) zu sehen wäre. Wenn Du rauskriegst, wo der Fehler steckt wär ich Dir sehr sehr dankbar. Vielleicht muss das Helferlein auch irgendwo von Wikia selbst implementiert werden? Supermohamed (AB) 12:31, 25. Jan. 2013 (UTC)

Okay ... jetzt hab ich wenigstens eine Vorstellung, wohin die Reise gehen soll.
Hier mal die von Kommentarmüll befreite Version in der "Supermohamed" bei allem eingetragen ist (Ist nicht sinnvoll, aber dann bekommt man ein Gefühl, wo man Namen reinschreibt und wo nicht).

// Originalskript von: http://de.wikipedia.org/wiki/Benutzer:PDD/markAdmins.js

jQuery(document).ready(function() {
 
   // Jede der folgenden Variablen kann in der eigenen monobook.js/vector.js/common.js vorbelegt werden.
   // Getestet wird jeweils die Ausnahme, Standard ist jeweils das Gegenteil davon.
   var markadmins       = window.markadmins     !== false;
   var markcomadmins    = window.markcomadmins  === true;
   var markexadmins     = window.markexadmins   === true;
 
   var markarbcom       = window.markarbcom     !== false;
   var markoversight    = window.markoversight  !== false;
   var markcheckuser    = window.markcheckuser  !== false;
 
   var marksubpages     = window.marksubpages   === true;
   var dontmarkmyself   = window.dontmarkmyself === true;
 
   // Die Markierungen dürfen nie leer sein, das wird hier sichergestellt.
   var markatxt         = window.markatxt         || 'A';
   var markbureautxt    = window.markbureautxt    || 'B';
   var markstewtxt      = window.markstewtxt      || 'S';
   var markrenatxt      = window.markrenatxt      || 'A-Ren';
 
   var markcomatxt      = window.markcomatxt      || 'Com-A';
 
   var markexatxt       = window.markexatxt       || 'Ex-A';
   var markexbureautxt  = window.markexbureautxt  || 'Ex-B';
 
   var markoversighttxt = window.markoversighttxt || 'OS';
   var markcheckusertxt = window.markcheckusertxt || 'CU';
   var markombudsmantxt = window.markombudsmantxt || 'Omb';
   var markarbcomtxt    = window.markarbcomtxt    || 'SG';
 
   // Ende der vordefinierbaren Variablenwerte
 
   // Vorzeitiger Abbruch, wenn es nichts zu tun gibt.
   if (!markadmins && !markcomadmins && !markexadmins)
       return;
 
   var isSpecial        = mw.config.get('wgCanonicalNamespace') == "Special";
   var isHistory        = mw.config.get('wgAction') == 'history';
   var isUserpage       = mw.config.get('wgCanonicalNamespace') == "User" || mw.config.get('wgCanonicalNamespace') == "User_talk";
   var isTalk           = mw.config.get('wgNamespaceNumber') % 2 == 1;
   var isProject        = mw.config.get('wgCanonicalNamespace') == "Project";
   var isFile           = mw.config.get('wgCanonicalNamespace') == "File";
   var isHelp           = mw.config.get('wgCanonicalNamespace') == "Help";
   var isDiff           = mw.util.getParamValue('diff') !== null;
 
   if (markadmins) {
       // statische Liste (dynamisch: http://toolserver.org/~aka/dewiki_admins_utf8.txt )
       var admins          = new Array("Supermohamed");
       var bureaucrats     = new Array("Supermohamed");
       var stewards        = new Array("Supermohamed");
       var renadmins       = new Array("Supermohamed");
 
       var admins_str      = '|'+admins.join('|')+'|'; 
       var bureaucrats_str = '|'+bureaucrats.join('|')+'|';
       var stewards_str    = '|'+stewards.join('|')+'|';
       var renadmins_str   = '|'+renadmins.join('|')+'|';
   }
 
   if (markcomadmins) {
       var comadmins       = new Array("Supermohamed");
       var comadmins_str   = '|'+comadmins.join('|')+'|';
   }
 
   if (markexadmins) {
       var exadmins          = new Array("Supermohamed");
       var exbureaucrats     = new Array("Supermohamed");
       var exadmins_str      = '|'+exadmins.join('|')+'|';
       var exbureaucrats_str = '|'+exbureaucrats.join('|')+'|';
   }
 
   // oversight
   if (markoversight) {
       // Notes: nö
       var oversight       = new Array("Supermohamed");
       var oversight_str   = '|'+oversight.join('|')+'|';
   }
 
   // checkuser
   if (markcheckuser) {
       // Notes: nö
       var checkuser       = new Array("Supermohamed");
       var checkuser_str   = '|'+checkuser.join('|')+'|';
   }
 
   var ombudsman           = new Array("Supermohamed");
   var ombudsman_str       = '|'+ombudsman.join('|')+'|';
 
   if (markarbcom || markadmins) {
       // Notes: 01.12.2012 bis 31.05.2013 (CURRENT)
       var arbcom          = new Array("Supermohamed");
       var admarbcom       = new Array("Supermohamed");
 
       var arbcom_str      = '|'+arbcom.join('|')+'|';
       var admarbcom_str   = '|'+admarbcom.join('|')+'|';
   }
 
   if (isSpecial || isHistory || isUserpage || isTalk || isProject || isFile || isHelp || isDiff) {
      var i;
      var aNode;
      var allanchors = document.getElementsByTagName("A");
      var allanchorsuser = new Array();
      var followupmark;
      var searchExp = /\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/;
      var searchExpTalk = /[ _]Diskussion:/;
      var marker;
      var mainpageanchor;
      var SGSpecial;
 
      mw.util.addCSS('span.adminMark { font-weight: bold; }');
 
      for (i=0; i < allanchors.length; i++) {
         aNode = allanchors[i];
         mainpageanchor = true;
         talkpageanchor = false;
         SGSpecial = false;
         // if it's a link to a user
         if ((href = aNode.getAttribute("href")) && (searchExp.exec(href) != null)) {
             currUser = searchExp.exec(href)[3];
             /* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,'');
             if (currUserClean != currUser) mainpageanchor = false;
             if (searchExpTalk.exec(href) != null) talkpageanchor = true;
 
             if (mainpageanchor) allanchorsuser[i] = currUserClean;
             else allanchorsuser[i] = "";
 
             followupmark = false;
             if (i>0)
                   if ((currUserClean == allanchorsuser[i-1]) && talkpageanchor)
                         followupmark = true;
 
             currUser= "|" + currUserClean + "|";
             marker = new Array();
 
             if (admarbcom_str.indexOf(currUser) != -1) {
                 SGSpecial = true;
                 if (markarbcom || markadmins) marker.push(markarbcomtxt + "-" + markatxt);
             }
 
             if (markadmins && !SGSpecial) {
                // don't mark SG-only Adm twice
                if (!(admarbcom_str.indexOf(currUser) != -1)) {
                   // is this user an admin?
                   if (admins_str.indexOf(currUser) != -1) marker.push(markatxt);
                }
                // is this user a renamed admin?
                if (renadmins_str.indexOf(currUser) != -1) marker.push(markrenatxt);
                // is this user a steward?
                if (stewards_str.indexOf(currUser) != -1) marker.push(markstewtxt);
                // is this user an ombudsman?
                if (ombudsman_str.indexOf(currUser) != -1) marker.push(markombudsmantxt);
                // is this user a bureaucrat?
                if (bureaucrats_str.indexOf(currUser) != -1) marker.push(markbureautxt);
             }
 
             if (markoversight) {
                // does this user have oversight rights?
                if (oversight_str.indexOf(currUser) != -1) marker.push(markoversighttxt);
             }
 
             if (markcheckuser) {
                // does this user have checkuser rights?
                if (checkuser_str.indexOf(currUser) != -1) marker.push(markcheckusertxt);
             }
 
             if (markarbcom && !SGSpecial) {
                // is this user an arbcom member?
                if (arbcom_str.indexOf(currUser) != -1) marker.push(markarbcomtxt);
             }
 
             if (markcomadmins) {
                // is this user a commons admin?
                if (comadmins_str.indexOf(currUser) != -1) marker.push(markcomatxt);
             }
 
             if (markexadmins) {
                // was this user an admin?
                if (exadmins_str.indexOf(currUser) != -1) marker.push(markexatxt);
                // was this user a bureaucrat?
                if (exbureaucrats_str.indexOf(currUser) != -1) marker.push(markexbureautxt);
             }
 
             // don't mark followups
             if (!followupmark)
             // don't mark certain pages, except link to user main page
             if (mainpageanchor ||
                 (marksubpages && (mw.config.get('wgCanonicalSpecialPageName') != "Prefixindex")
                               && (mw.config.get('wgCanonicalSpecialPageName') != "Allpages")) )
             // check finished, now append node
             if ((marker.length > 0) && !(dontmarkmyself && (currUserClean == mw.config.get('wgUserName')))) {
                var aMark = document.createElement("span");
                aMark.className = "adminMark";
 
                var aMarkText = document.createTextNode(" (" + marker.join("/") + ")");
                aMark.appendChild(aMarkText);
                aNode.appendChild(aMark);
             }
         }
      }
   }
 });

So ... die obere Hälfte des Codes ist im Grunde nur ein Definieren von Variablen, Arrays und Auslesen von Zuständen. Interessant ist dann der Teil mit "for (i=0; i < allanchors.length; i++)" Hier werden alle Links (ein Tag mit <a>) gesucht und nacheinander durchgegangen. Es wird überprüft, ob es sich bei dem Link um einen User handelt (andernfalls ist der Link zu irgend ner externen Seite und für die Suche uninteressant). Und dann wird der heraus gefundene User mit allen angelegten Arrays verglichen. Jedes Mal, wenn eine Übereinstimmung gefunden wurde, dann wird am Ende ein Text rangehangen (den Text hat man zuvor in den Variablen definiert. Für Admin wird ein A angehängt usw.)
Es müsste eigentlich funktionieren. Das Problem ist, dass es in JQuery geschrieben ist und Wikia bzw. JQuery die Fehler abfängt. Somit kann man nicht sofort sehen, wo das Problem liegt, wenn es denn da ist. Bzw. man muss da einige Umwege gehen, die ich allerdings nicht so gut kenne.
-- 20M61 (Nachricht) 15:04, 25. Jan. 2013 (UTC)

  1. Der Aufruf von mw.config.get('wgCanonicalNamespace') liefert die englischen Namen der Namensräume. Du solltest sie wieder ins Englische übersetzen.
  2. Die Definition der Variablen überprüft gleichzeitig, ob diese schon (außerhalb der Funktion) definiert sind. Sind diese nicht definiert, werden sie auch nicht gesetzt. Meine Empfehlung: Ändere z.B. var markadmins = window.markadmins === true; zu var markadmins = true;, wenn die Admins markiert werden sollen.
Ich habe das in deinem Wiki getestet. Die Namen habe ich wieder ins Englische übersetzt und außerhalb der Funktion die Variable markadmins definiert. Auf w:c:de.islam:Spezial:WikiActivity wird mir dadurch jetzt bearbeitet von Supermohamed (SG-A) vor ... angezeigt.
Arkondi (Diskussion) 15:10, 25. Jan. 2013 (UTC)
Super funktioniert (fast) einwandfrei, außer dass die Markierung (wenn ich beispielsweise die eigene Diskseite aufrufe) doppelt angezeigt wird. Aber das passt schon ich bin ein alter Basicprogrammierer und habe mit JS, Perl und PHP Null Erfahrung. Man wünscht sich die alten Zeiten zurück CLS:PRINT "HALLO" und gut ist :D Aber vielen vielen Dank für Eure Mühe Supermohamed 18:54, 25. Jan. 2013 (UTC)
Eine Anmerkung noch: eigentlich sollten die Benutzer nur diesen Code:

markadmins = true; // Admins u.ä. besonders hervorheben?

marksubpages  = true;      // auch Links auf Admin-Unterseiten markieren?
mawatchlist   = true;       // auch auf der Beobachtungsliste?
macontribs    = true;       // auch auf den Benutzerbeiträgen?
mausersites   = true;
maspecial     = true;
maproject     = true;
markarbcom    = true;       // zusätzlich: Schiedsgericht besonders hervorheben?
markcheckuser = true;       // zusätzlich: CheckUser besonders hervorheben?
markoversight = true;       // zusätzlich: Oversights besonders hervorheben?
markcomadmins = true;      // zusätzlich: Commons-Admins besonders hervorheben?
markexadmins  = true;      // zusätzlich: Ex-Admins besonders hervorheben?

// Beschriftungen
markatxt         = "A";     // Markierung für Admins
markrenatxt      = "A-Ren"; // Markierung für umbenannte Admins
markbureautxt    = "B";     // Markierung für Bürokraten
markstewtxt      = "S";     // Markierung für Stewards
markcomatxt      = "Com-A"; // Markierung für Commons-Admins
markexatxt       = "Ex-A";  // Markierung für Ex-Admins
markexbureautxt  = "Ex-B";  // Markierung für Ex-Bürokraten
markarbcomtxt    = "SG";    // Markierung für Schiedsgerichtler
markcheckusertxt = "CU";    // Markierung für Checkuser-Berechtigte
markombudsmantxt = "F";   // Markierung für Ombudspersonen
markoversighttxt = "OS";    // Markierung für Oversight-Berechtigte


einbauen müssen, weil sie sonst bei jeder Ernennung eines neuen Admins wieder den Code ändern müssten. Leider wird die Markierung bei diesem Code aber nicht richtig angezeigt. Sorry wenn ich Euch Umstände mache :) Supermohamed 19:04, 25. Jan. 2013 (UTC)

Ich glaub ich versteh nicht, worauf du hinaus willst, oder was du sagen willst. Wenn du das im MediaWiki:Common.js geändert hast, dann sehen alle Benutzer die Markierungen und keiner muss individuell was doktern. Wenn du / einer deiner Admins jemanden einen Job verpasst, dann müsst ihr das im entsprechenden Array ändern. Ich würde dir noch eine Vereinfachung vorschlagen, da ich nicht denke, dass du die ganzen Vorkehrungen benötigst, die dort ursprünglich angedacht waren:
// Originalskript von: http://de.wikipedia.org/wiki/Benutzer:PDD/markAdmins.js

jQuery(document).ready(function() {
 
   // Jede der folgenden Variablen kann in der eigenen monobook.js/vector.js/common.js vorbelegt werden.
   // Getestet wird jeweils die Ausnahme, Standard ist jeweils das Gegenteil davon.
   var markadmins       = true;
   var markcomadmins    = true;
   var markexadmins     = true;
   var markarbcom       = true;
   var markoversight    = true;
   var markcheckuser    = true;
   var marksubpages     = true;
   var dontmarkmyself   = true;
 
   // Die Markierungen dürfen nie leer sein, das wird hier sichergestellt.
   var markatxt         = 'A';
   var markbureautxt    = 'B';
   var markstewtxt      = 'S';
   var markrenatxt      = 'A-Ren';
   var markcomatxt      = 'Com-A';
   var markexatxt       = 'Ex-A';
   var markexbureautxt  = 'Ex-B';
   var markoversighttxt = 'OS';
   var markcheckusertxt = 'CU';
   var markombudsmantxt = 'Omb';
   var markarbcomtxt    = 'SG';
 
   // Liste der besonderen User
   var admins        = new Array("Supermohamed");
   var bureaucrats   = new Array("Supermohamed");
   var stewards      = new Array("Supermohamed");
   var renadmins     = new Array("Supermohamed");
   var comadmins     = new Array("Supermohamed");
   var exadmins      = new Array("Supermohamed");
   var exbureaucrats = new Array("Supermohamed");
   var oversight     = new Array("Supermohamed");
   var checkuser     = new Array("Supermohamed");
   var ombudsman     = new Array("Supermohamed");
   var arbcom        = new Array("Supermohamed");
   var admarbcom     = new Array("Supermohamed");
 
   var isSpecial        = mw.config.get('wgCanonicalNamespace') == "Special";
   var isHistory        = mw.config.get('wgAction') == 'history';
   var isUserpage       = mw.config.get('wgCanonicalNamespace') == "User";
   var isUserpage       = isUserpage || mw.config.get('wgCanonicalNamespace') == "User_talk";
   var isTalk           = mw.config.get('wgNamespaceNumber') % 2 == 1;
   var isProject        = mw.config.get('wgCanonicalNamespace') == "Project";
   var isFile           = mw.config.get('wgCanonicalNamespace') == "File";
   var isHelp           = mw.config.get('wgCanonicalNamespace') == "Help";
   var isDiff           = mw.util.getParamValue('diff') !== null;
  
   var admins_str        = '|'+admins.join('|')+'|'; 
   var bureaucrats_str   = '|'+bureaucrats.join('|')+'|';
   var stewards_str      = '|'+stewards.join('|')+'|';
   var renadmins_str     = '|'+renadmins.join('|')+'|';
   var comadmins_str     = '|'+comadmins.join('|')+'|';
   var exadmins_str      = '|'+exadmins.join('|')+'|';
   var exbureaucrats_str = '|'+exbureaucrats.join('|')+'|';
   var oversight_str     = '|'+oversight.join('|')+'|';
   var checkuser_str     = '|'+checkuser.join('|')+'|';
   var ombudsman_str     = '|'+ombudsman.join('|')+'|';
   var arbcom_str        = '|'+arbcom.join('|')+'|';
   var admarbcom_str     = '|'+admarbcom.join('|')+'|';
  
   if (isSpecial || isHistory || isUserpage || isTalk || isProject || isFile || isHelp || isDiff) {
      var i;
      var aNode;
      var allanchors = document.getElementsByTagName("A");
      var allanchorsuser = new Array();
      var followupmark;
      var searchExp = /\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/;
      var searchExpTalk = /[ _]Diskussion:/;
      var marker;
      var mainpageanchor;
      var SGSpecial;
 
      mw.util.addCSS('span.adminMark { font-weight: bold; }');
 
      for (i=0; i < allanchors.length; i++) {
         aNode = allanchors[i];
         mainpageanchor = true;
         talkpageanchor = false;
         SGSpecial = false;
         // if it's a link to a user
         if ((href = aNode.getAttribute("href")) && (searchExp.exec(href) != null)) {
             currUser = searchExp.exec(href)[3];
             /* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,'');
             if (currUserClean != currUser) mainpageanchor = false;
             if (searchExpTalk.exec(href) != null) talkpageanchor = true;
 
             if (mainpageanchor) allanchorsuser[i] = currUserClean;
             else allanchorsuser[i] = "";
 
             followupmark = false;
             if (i>0)
                   if ((currUserClean == allanchorsuser[i-1]) && talkpageanchor)
                         followupmark = true;
 
             currUser= "|" + currUserClean + "|";
             marker = new Array();
 
             if (admarbcom_str.indexOf(currUser) != -1) {
                 SGSpecial = true;
                 if (markarbcom || markadmins) marker.push(markarbcomtxt + "-" + markatxt);
             }
 
             if (markadmins && !SGSpecial) {
                // don't mark SG-only Adm twice
                if (!(admarbcom_str.indexOf(currUser) != -1)) {
                   // is this user an admin?
                   if (admins_str.indexOf(currUser) != -1) marker.push(markatxt);
                }
                // is this user a renamed admin?
                if (renadmins_str.indexOf(currUser) != -1) marker.push(markrenatxt);
                // is this user a steward?
                if (stewards_str.indexOf(currUser) != -1) marker.push(markstewtxt);
                // is this user an ombudsman?
                if (ombudsman_str.indexOf(currUser) != -1) marker.push(markombudsmantxt);
                // is this user a bureaucrat?
                if (bureaucrats_str.indexOf(currUser) != -1) marker.push(markbureautxt);
             }
 
             if (markoversight) {
                // does this user have oversight rights?
                if (oversight_str.indexOf(currUser) != -1) marker.push(markoversighttxt);
             }
 
             if (markcheckuser) {
                // does this user have checkuser rights?
                if (checkuser_str.indexOf(currUser) != -1) marker.push(markcheckusertxt);
             }
 
             if (markarbcom && !SGSpecial) {
                // is this user an arbcom member?
                if (arbcom_str.indexOf(currUser) != -1) marker.push(markarbcomtxt);
             }
 
             if (markcomadmins) {
                // is this user a commons admin?
                if (comadmins_str.indexOf(currUser) != -1) marker.push(markcomatxt);
             }
 
             if (markexadmins) {
                // was this user an admin?
                if (exadmins_str.indexOf(currUser) != -1) marker.push(markexatxt);
                // was this user a bureaucrat?
                if (exbureaucrats_str.indexOf(currUser) != -1) marker.push(markexbureautxt);
             }
 
             // don't mark followups
             if (!followupmark)
             // don't mark certain pages, except link to user main page
             if (mainpageanchor ||
                 (marksubpages && (mw.config.get('wgCanonicalSpecialPageName') != "Prefixindex")
                               && (mw.config.get('wgCanonicalSpecialPageName') != "Allpages")) )
             // check finished, now append node
             if ((marker.length > 0) && !(dontmarkmyself && (currUserClean == mw.config.get('wgUserName')))) {
                var aMark = document.createElement("span");
                aMark.className = "adminMark";
 
                var aMarkText = document.createTextNode(" (" + marker.join("/") + ")");
                aMark.appendChild(aMarkText);
                aNode.appendChild(aMark);
             }
         }
      }
   }
 });

Du könntest auch darüber nachdenken diese Funktion aufzusplitten in 2 oder 3 Teilbereiche (einen für das Array mit den besonderen Usern, einen für die angehängten Kürzel und einen für den Rest). Umsetzen tust du das mit:
Common.js:

importArticles({
    type: "script",
    articles: [
        "MediaWiki:MarkUser.js"
    ]
});

MarkUser.js:

// Originalskript von: http://de.wikipedia.org/wiki/Benutzer:PDD/markAdmins.js

jQuery(document).ready(function() {

// Hier die Einstellungen
  importArticles({
      type: "script",
      articles: [
          "MediaWiki:MarkUser_Nutzer.js",
          "MediaWiki:MarkUser_Kürzel.js"
      ]
  });

// Hier folgt der eigentliche Bearbeitungscode
   var isSpecial        = mw.config.get('wgCanonicalNamespace') == "Special";
   var isHistory        = mw.config.get('wgAction') == 'history';
   var isUserpage       = mw.config.get('wgCanonicalNamespace') == "User";
   var isUserpage       = isUserpage || mw.config.get('wgCanonicalNamespace') == "User_talk";
   var isTalk           = mw.config.get('wgNamespaceNumber') % 2 == 1;
   var isProject        = mw.config.get('wgCanonicalNamespace') == "Project";
   var isFile           = mw.config.get('wgCanonicalNamespace') == "File";
   var isHelp           = mw.config.get('wgCanonicalNamespace') == "Help";
   var isDiff           = mw.util.getParamValue('diff') !== null;
  
   var admins_str        = '|'+admins.join('|')+'|'; 
   var bureaucrats_str   = '|'+bureaucrats.join('|')+'|';
   var stewards_str      = '|'+stewards.join('|')+'|';
   var renadmins_str     = '|'+renadmins.join('|')+'|';
   var comadmins_str     = '|'+comadmins.join('|')+'|';
   var exadmins_str      = '|'+exadmins.join('|')+'|';
   var exbureaucrats_str = '|'+exbureaucrats.join('|')+'|';
   var oversight_str     = '|'+oversight.join('|')+'|';
   var checkuser_str     = '|'+checkuser.join('|')+'|';
   var ombudsman_str     = '|'+ombudsman.join('|')+'|';
   var arbcom_str        = '|'+arbcom.join('|')+'|';
   var admarbcom_str     = '|'+admarbcom.join('|')+'|';
  
   if (isSpecial || isHistory || isUserpage || isTalk || isProject || isFile || isHelp || isDiff) {
      var i;
      var aNode;
      var allanchors = document.getElementsByTagName("A");
      var allanchorsuser = new Array();
      var followupmark;
      var searchExp = /\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/;
      var searchExpTalk = /[ _]Diskussion:/;
      var marker;
      var mainpageanchor;
      var SGSpecial;
 
      mw.util.addCSS('span.adminMark { font-weight: bold; }');
 
      for (i=0; i < allanchors.length; i++) {
         aNode = allanchors[i];
         mainpageanchor = true;
         talkpageanchor = false;
         SGSpecial = false;
         // if it's a link to a user
         if ((href = aNode.getAttribute("href")) && (searchExp.exec(href) != null)) {
             currUser = searchExp.exec(href)[3];
             /* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,'');
             if (currUserClean != currUser) mainpageanchor = false;
             if (searchExpTalk.exec(href) != null) talkpageanchor = true;
 
             if (mainpageanchor) allanchorsuser[i] = currUserClean;
             else allanchorsuser[i] = "";
 
             followupmark = false;
             if (i>0)
                   if ((currUserClean == allanchorsuser[i-1]) && talkpageanchor)
                         followupmark = true;
 
             currUser= "|" + currUserClean + "|";
             marker = new Array();
 
             if (admarbcom_str.indexOf(currUser) != -1) {
                 SGSpecial = true;
                 if (markarbcom || markadmins) marker.push(markarbcomtxt + "-" + markatxt);
             }
 
             if (markadmins && !SGSpecial) {
                // don't mark SG-only Adm twice
                if (!(admarbcom_str.indexOf(currUser) != -1)) {
                   // is this user an admin?
                   if (admins_str.indexOf(currUser) != -1) marker.push(markatxt);
                }
                // is this user a renamed admin?
                if (renadmins_str.indexOf(currUser) != -1) marker.push(markrenatxt);
                // is this user a steward?
                if (stewards_str.indexOf(currUser) != -1) marker.push(markstewtxt);
                // is this user an ombudsman?
                if (ombudsman_str.indexOf(currUser) != -1) marker.push(markombudsmantxt);
                // is this user a bureaucrat?
                if (bureaucrats_str.indexOf(currUser) != -1) marker.push(markbureautxt);
             }
 
             if (markoversight) {
                // does this user have oversight rights?
                if (oversight_str.indexOf(currUser) != -1) marker.push(markoversighttxt);
             }
 
             if (markcheckuser) {
                // does this user have checkuser rights?
                if (checkuser_str.indexOf(currUser) != -1) marker.push(markcheckusertxt);
             }
 
             if (markarbcom && !SGSpecial) {
                // is this user an arbcom member?
                if (arbcom_str.indexOf(currUser) != -1) marker.push(markarbcomtxt);
             }
 
             if (markcomadmins) {
                // is this user a commons admin?
                if (comadmins_str.indexOf(currUser) != -1) marker.push(markcomatxt);
             }
 
             if (markexadmins) {
                // was this user an admin?
                if (exadmins_str.indexOf(currUser) != -1) marker.push(markexatxt);
                // was this user a bureaucrat?
                if (exbureaucrats_str.indexOf(currUser) != -1) marker.push(markexbureautxt);
             }
 
             // don't mark followups
             if (!followupmark)
             // don't mark certain pages, except link to user main page
             if (mainpageanchor ||
                 (marksubpages && (mw.config.get('wgCanonicalSpecialPageName') != "Prefixindex")
                               && (mw.config.get('wgCanonicalSpecialPageName') != "Allpages")) )
             // check finished, now append node
             if ((marker.length > 0) && !(dontmarkmyself && (currUserClean == mw.config.get('wgUserName')))) {
                var aMark = document.createElement("span");
                aMark.className = "adminMark";
 
                var aMarkText = document.createTextNode(" (" + marker.join("/") + ")");
                aMark.appendChild(aMarkText);
                aNode.appendChild(aMark);
             }
         }
      }
   }
});

MarkUser_Nutzer.js:

   // Liste der besonderen User
   var admins        = new Array("Supermohamed");
   var bureaucrats   = new Array("Supermohamed");
   var stewards      = new Array("Supermohamed");
   var renadmins     = new Array("Supermohamed");
   var comadmins     = new Array("Supermohamed");
   var exadmins      = new Array("Supermohamed");
   var exbureaucrats = new Array("Supermohamed");
   var oversight     = new Array("Supermohamed");
   var checkuser     = new Array("Supermohamed");
   var ombudsman     = new Array("Supermohamed");
   var arbcom        = new Array("Supermohamed");
   var admarbcom     = new Array("Supermohamed");

MarkUser_Kürzel.js:

   // Markierungen generell aktiviert (= true) 
   // Wenn gewisse Markierungen nicht mehr erwünscht sind, können sie auf false gesetzt werden.
   var markadmins       = true;
   var markcomadmins    = true;
   var markexadmins     = true;
   var markarbcom       = true;
   var markoversight    = true;
   var markcheckuser    = true;
   var marksubpages     = true;
   var dontmarkmyself   = true;
 
   // Die Markierungen werden hinter dem jeweiligen Benutzernamen gesetzt.
   var markatxt         = 'A';
   var markbureautxt    = 'B';
   var markstewtxt      = 'S';
   var markrenatxt      = 'A-Ren';
   var markcomatxt      = 'Com-A';
   var markexatxt       = 'Ex-A';
   var markexbureautxt  = 'Ex-B';
   var markoversighttxt = 'OS';
   var markcheckusertxt = 'CU';
   var markombudsmantxt = 'Omb';
   var markarbcomtxt    = 'SG';

Ansonsten lautet mein Wahlspruch: Probieren, Üben und Testen, solange keiner hinschaut ;) kannst nichts falsch oder kaputt machen.
Viele Grüße und Erfolg, -- 20M61 (Nachricht) 21:07, 25. Jan. 2013 (UTC)

Hmm bei mir hat das Script erst funktioniert, als ich auf Meiner Unterseite (Benutzer:Supermohamed/common.js) den kompletten Code eingefügt habe. Ich werd jetzt mal ausprobieren was passiert, wenn ich den Code dort komplett lösche, ich glaube nämlich dann funktioniert es nicht. Werd jetzt mal ein bisschen ausprobieren und sehen, was passiert, zur Not kann man ja alles zurücksetzten :) Ein großes Dankeschön nochmal! Supermohamed 06:29, 26. Jan. 2013 (UTC)
Habs probiert es geht wirklich nicht. Jeder Benutzer muss den Code unter common.js auf einer Benutzerunterseite einfügen, damit es funktioniert. Nun gut ich schau mal was ich da machen kann Supermohamed 06:40, 26. Jan. 2013 (UTC)
Ähm. Den Code in der Common.js musst du natürlich noch so korrigieren, wie ich es oben beschrieben habe. Arkondi (Diskussion) 08:44, 26. Jan. 2013 (UTC)
Arkondi hab alles so angelegt werd jetzt dran basteln bis es klappt Supermohamed 12:36, 26. Jan. 2013 (UTC)

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.

Auch bei FANDOM

Zufälliges Wiki