Benutzer:PerfektesChaos/js/watchCategories
watchCategories ist ein JavaScript-Gadget – um die Anzahl von Seiten in Kategorien zu zeigen.
Das zielt auf Wartungskategorien ab, von denen erwartet wird, dass sie meistens leer sind. Wenn nicht, könntest du dich veranlasst sehen, einzugreifen und den Anlass zu beseitigen.
Einbindung
[Bearbeiten | Quelltext bearbeiten]- Wenn das Projekt dieses Gadget bereits registriert haben sollte, genügt ein Häkchen auf der Seite Einstellungen („Helferlein“).
- Sonst wären die folgenden Zeilen in das persönliche JS wie etwa common.js einzufügen:
mw.loader.load("//en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/watchCategories/r.js&action=raw&bcache=1&maxage=604800&ctype=text/javascript",
"text/javascript");
Außerdem werden (oberhalb der eben genannten, sofern vorhanden) die folgenden Zeilen gebraucht:
if ( typeof mw.libs.watchCategories !== "object" || ! mw.libs.watchCategories ) {
mw.libs.watchCategories = { };
}
Diesem Block sollte die Definition der von gewünschten Kategorien und Optionen folgen. Im allereinfachsten Fall ist das eine Zeile:
mw.libs.watchCategories.cats = "Wikipedia:Seite mit Einzelnachweisfehlern";
Diese löst die Kategorie:Wikipedia:Seite mit Einzelnachweisfehlern aus, die im Moment #217 Einträge hat (auf dieser statischen Seite hier könnte eine veraltete Anzahl aus dem Cache stehen).
Wirkung
[Bearbeiten | Quelltext bearbeiten]Auf der angeforderten Seite wird eine kleine Box angezeigt, mit einem Link auf die Kategorie und die Zahl der Einträge.
- Standardmäßig ist die Zielseite die Beobachtungsliste (Änderungen). Die Box erscheint im Kopfbereich, oberhalb der Anzeigeoptionen.
- Standardmäßig wird die Box nur gezeigt, wenn in einer Kategorie mindestens eine Seite einsortiert ist.
- Es werden nur die unmittelbar vorhandenen Seiten gezählt; keine Unterkategorien und auch keine Dateien.
Format der Definitionen
[Bearbeiten | Quelltext bearbeiten]Vom Konfigurationselement mw.libs.watchCategories.cats
wird einer der folgenden Datentypen erwartet:
- ein string mit dem Titel der Kategorie
- eine number mit der
curid
der Kategoriebeschreibungsseite - ein Array mit einer Sammlung von Elementen vom Typ
- string mit dem Titel der Kategorie
- number mit
curid
- object mit einer detaillierten Spezifikation
Komponente | Vorgabe | Beschreibung |
---|---|---|
cat
|
Pflichtkomponente |
|
min
|
1
|
Mindestanzahl der Einträge in der Kategorie, um die Anzeige auszulösen.
|
ns
|
-1
|
Nummer des Namensraums der Zielseite |
title
|
Watchlist (Beobachtungsliste) |
|
append
|
Selektor des Elements oder jQuery-Objekt, nach dem die Box eingefügt werden soll. | |
before
|
|
Selektor des Elements oder jQuery-Objekt, vor dem die Box eingefügt werden soll.
|
text
|
Kategorie-Titel cat
|
Dargestellter Linktitel |
style1
|
rote Box, roter Text | CSS zuweisen, wenn Mitglieder gefunden |
style0
|
grüne Box | CSS zuweisen, wenn ohne Mitglieder (min =0)
|
id
|
Fragment des einzelnen Eintrags |
Beispiele
[Bearbeiten | Quelltext bearbeiten]Einfachster Fall:
if ( typeof mw.libs.watchCategories !== "object" || ! mw.libs.watchCategories ) {
mw.libs.watchCategories = { };
}
mw.libs.watchCategories.cats = "Wikipedia:Seite mit Einzelnachweisfehlern";
mw.loader.load("//en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/watchCategories/r.js&action=raw&bcache=1&maxage=604800&ctype=text/javascript",
"text/javascript");
Ein komplexeres Beispiel, das das Laden auch noch von Bedingungen abhängig macht, um die Ausführung auf allen anderen Seiten zu beschleunigen:
if ( typeof mw.libs.watchCategories !== "object" || ! mw.libs.watchCategories ) {
mw.libs.watchCategories = { };
}
mw.libs.watchCategories.meineFunktion = function () {
"use strict";
this.cats = [ "Wikipedia:Seite mit Einzelnachweisfehlern",
{ cat: "Wikipedia:Qualitätssicherung BKS",
ns: 4,
title: "WikiProjekt Begriffsklärungsseiten/Fließband",
min: 3,
text: "BKS"
}
];
mw.loader.load("//en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/watchCategories/r.js&action=raw&bcache=1&maxage=604800&ctype=text/javascript",
"text/javascript");
}; // .meineFunktion()
switch ( mw.config.get( "wgNamespaceNumber" ) ) {
case -1 : // Spezialseite
if ( mw.config.get( "wgCanonicalSpecialPageName" ) === "Watchlist" ) {
mw.libs.watchCategories.meineFunktion();
}
break;
case 4 : // WPNR
if ( mw.config.get( "wgTitle" ) === "WikiProjekt Begriffsklärungsseiten/Fließband" ) {
mw.libs.watchCategories.meineFunktion();
}
} // switch aktuelle Nummer des Namensraums
- Es wird eine Funktion
meineFunktion
definiert, die die eigentliche Arbeit macht. - Nach Nummer des Namensraums kann effizient entschieden werden, ob sich eine weitere Untersuchung lohnt.
- Nur wenn auch der Seitenname dazu passt, wird
meineFunktion
auch aufgerufen und lädt das Gadget. - Die gleichen Betrachtungen werden auch innerhalb des Gadgets angestellt anhand der in
.cats
enthaltenen Definitionen.
Damit wird auf allen anderen Seiten (etwa bei allen Artikeln und Diskussionen) das Laden des Gadgets vermieden und die Auswertungszeit maximal verkürzt.
- Innerhalb der Funktion wird ein Array mit zwei Elementen definiert:
- Kategorie:Wikipedia:Seite mit Einzelnachweisfehlern auf der Beobachtungsliste
- Kategorie:Wikipedia:Qualitätssicherung BKS auf Wikipedia:WikiProjekt Begriffsklärungsseiten/Fließband
- Zwei Einträge sind keine Wartungsfälle; bei weniger als zwei Seiten verschwindet die Box.
- Als Linktitel wird nur kurz „BKS“ verwendet.
Codes und Stammseite
[Bearbeiten | Quelltext bearbeiten]Die Stammseite ist en:User:PerfektesChaos/js/watchCategories mit:
Quellcode |
|
ResourceLoader |
|
Namensräume | -1 (Watchlist )
|
mw.libs
|
watchCategories
|