JavaScript-Gadget – um auf Spezialseiten Ergebnislisten zu sortieren.
Auf Seiten wie „Links auf diese Seite“ oder als Suchergebnis können einige hundert Seiten aufgelistet sein, wie sie gerade von der Datenbank ausgeworfen werden. Namensräume sind wild durcheinander gemischt; niemand bekommt einen Überblick.
Einbindung
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 die persönliche common.js oder Skin-abhängig wie vector.js einzufügen:
if ( mw.config.get( "wgNamespaceNumber" ) === -1 ) {
mw.loader.load("https://www.mediawiki.org/w/index.php?title=User:PerfektesChaos/js/resultListSort/r.js&action=raw&ctype=text/javascript&maxage=86400&*",
"text/javascript");
}
- Eine Anmeldung als Benutzer ist nicht zwingend erforderlich; die Aktivierung kann auch über Greasemonkey erfolgen.
- Wer fliegelflagel@Schnark benutzt, kann das Skript mit einem einfachen Häkchen aktivieren und deaktivieren.
- Beachte: Wenn du Blockier-Software (wie NoScript) verwenden solltest, müsstest du ggf.
mediawiki.org
freigeben; siehe hier.
Wirkung
BearbeitenStandardmäßig geschieht nichts, als dass auf geeigneten Spezialseiten zu den Aktionslinks für Seiteninhalt ein Link hinzugefügt wird. Wenn eine Sortierung benötigt wird, kann sie individuell angefordert werden; standardmäßig wird nach Namensraum und Seitentitel sortiert.
Einige dafür geeignete Spezialseiten bekommen weitere Links, die beispielsweise bei Weblinksuche die Sortierung nach URL ermöglichen; Beobachtungsliste, Neue Seiten und die Letzten Änderungen ermöglichen alternativ die Sortierung nach Benutzernamen, Bearbeitungskommentar sowie der Größe neu angelegter Seiten.
Gleichwohl können bestimmte Typen von Seiten so konfiguriert werden, dass die Sortierung automatisch beim Aufrufen der Spezialseite erfolgt, wenn der Rechner schnell genug ist und die Antwortzeiten akzeptabel sind.
Um die Häufigkeit der gruppierten Treffer schneller erfassen zu können, werden einfache in nummerierte Listen gewandelt.
Kanonischer Name | Inhalt | Normale Ausgabereihenfolge |
---|---|---|
Contributions |
Benutzerbeiträge | neueste zuoberst |
LinkSearch |
Weblinksuche | unsortiert |
Newpages |
Neue Seiten | neueste zuoberst |
Recentchanges |
Letzte Änderungen | neueste zuoberst |
Search |
Suchergebnisse (Volltext) | unsortiert / keine stringente Sortierung |
Watchlist |
Beobachtungsliste | neueste zuoberst |
Whatlinkshere |
Links auf diese Seite | unsortiert |
Andere Seiten können einbezogen werden, wenn sich ein sinnvoller Bedarf erkennen lässt. Spezialseiten mit Wartungslisten sind bereits inklusive.
Auf den „Alle Seiten“ und „Suche mit Präfix“ werden üblicherweise die Ergebnisse in drei Spalten als Tabelle angezeigt. Bei langen Seitennamen (Unterseiten mit Namenstaum) wird das schnell unübersichtlich und kann in eine nummerierte Liste umgewandelt werden.
Sofern Mediendateien (Bilder) betroffen sind, kann besser filesMetaData für die nachstehenden Spezialseiten benutzt werden:
Benutzerkonfiguration
BearbeitenInteraktive Schnellkonfiguration
BearbeitenAngemeldete Benutzer können auf einer Spezialseite – wenn das Skript geladen wurde – interaktiv die gewünschten Optionen setzen, wie sie analog im nachstehenden Abschnitt beschrieben sind:
- Automatische Sortierung für bestimmte Spezialseiten
- Portlet-Link einfügen; immer, nie, nur auf bestimmten Seiten
- Groß- und Kleinschreibung bei Sortierung ignorieren
- Seite mit Diskussionsseite zusammenhalten
Diese Einstellungen werden zusammen mit den Benutzereinstellungen auf dem Wiki-Server gespeichert und wirken dann auf alle Browser. Sie überschreiben Vorgaben aus dem folgenden Abschnitt.
Javascript-Anwendungsobjekt
BearbeitenIn die common.js etc. die folgenden Zeilen einfügen (möglichst vor mw.loader.load, so vorhanden):
if ( typeof mw.libs.resultListSort !== "object" ) {
mw.libs.resultListSort = { };
}
mw.libs.resultListSort.key1 = value1;
mw.libs.resultListSort.key2 = value2;
Key | Value | Bedeutung |
---|---|---|
auto
|
|
Automatische Sortierung, wenn string mit kanonischem Namen übereinstimmend.true – Alle unsortierten SeitenDefault: false – Keine Automatik; Auslösung über Portlet-Link oder auf anderem Weg
|
portlet
|
Portlet-Link einfügen, wenn string mit kanonischem Namen übereinstimmend. Default: true – Alle unterstützten Seiten
| |
casing
|
true
|
Groß- und Kleinschreibung bei Sortierung ignorieren. Default: false – Groß- und Kleinschreibung beachten
|
group
|
true
|
Seite mit Diskussionsseite zusammenhalten. Default: false – Namensraum für Namensraum
|
API | ||
.fresh(alter)
|
Gadget erneut startenalter – optionale Kennzahl für weitere Aktion; Werte können den Portlet-Links entnommen werdenDependency: mediawiki.util
| |
.flip(alter)
|
Wie .fresh() – zusätzlich Portlet-Links aktualisierenDependency: mediawiki.util
|
Beispiel:
if ( typeof mw.libs.resultListSort !== "object" ) {
mw.libs.resultListSort = { };
}
mw.libs.resultListSort.group = true;
mw.libs.resultListSort.auto = ["LinkSearch", "Whatlinkshere"];
Beachte: Die Benutzerkonfiguration könnte ignoriert werden, falls sie nicht im Standard-Benutzerskript erfolgt, weil alle anderen Skripte erst später geladen werden und resultListSort dann nichts davon weiß und auch nicht darauf warten kann.
Code und Stammseite
BearbeitenDie Stammseite ist mw:User:PerfektesChaos/js/resultListSort (englisch) mit:
Quellcode |
|
ResourceLoader |
|
Namensräume | -1
|
mw.libs
|
resultListSort
|
Siehe auch
Bearbeiten- filesMetaData – textliche Informationen über Mediendateien bzw. ihre Beschreibungsseiten