Benutzer:PerfektesChaos/js/resultListSort

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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.

  • 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.
Bildschirmfoto von der Funktionsweise des Skripts

Standardmäß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.

Unterstützte Seiten
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

[Bearbeiten | Quelltext bearbeiten]

Interaktive Schnellkonfiguration

[Bearbeiten | Quelltext bearbeiten]

Angemeldete 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

[Bearbeiten | Quelltext bearbeiten]

In 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
  • string
  • Array aus strings
  • true
  • false
Automatische Sortierung, wenn string mit kanonischem Namen übereinstimmend.
true – Alle unsortierten Seiten
Default: 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 starten
alter – optionale Kennzahl für weitere Aktion; Werte können den Portlet-Links entnommen werden
Dependency: mediawiki.util
.flip(alter) Wie .fresh() – zusätzlich Portlet-Links aktualisieren
Dependency: 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

[Bearbeiten | Quelltext bearbeiten]

Die Stammseite ist mw:User:PerfektesChaos/js/resultListSort (englisch) mit:

Quellcode
ResourceLoader
  • ext.gadget.resultListSort
  • Dependencies: user, mediawiki.util
Namensräume -1
mw.libs resultListSort
  • filesMetaData – textliche Informationen über Mediendateien bzw. ihre Beschreibungsseiten