User:PerfektesChaos/js/editToolStrIns/User Customization/de

From mediawiki.org

Benutzer können die Erscheinung des Werkzeugs konfigurieren, insbesondere auch die Standard-Vorgaben ihres lokalen Projekts überschreiben.

JS Elemente, die mit einem Punkt beginnen, nehmen Bezug auf das Anwendungs-Objekt. Dies ist im Moment mw.libs.editToolStrIns und kann sich gelegentlich ändern.

JS für Benutzer[edit]

Persönliche JS Einstellungen können in common.js oder Skin-bezogen definiert werden.

.user Objekt[edit]

Wenn Benutzer ein Objekt .user erzeugen, können sie die folgenden Eigenschaften bestimmen:

  • .user[ "custom" ]
    Erlaubt Löschen, Reihenfolgeänderung, Umbenennen oder Einfügen von Elementen im standardmäßigen list Array, wodurch das Dropdown-Bedienelement angepasst wird.
    • .user.custom ist ein Array, das die Modifizierung von einigen Elementen bestimmt.
    • Dabei liegt auf den geraden Index-Nummern die ID, auf dem darauf folgenden ungeraden Index die Titel-Information dazu.
    • Folgende Werte können über die ID zugewiesen werden:
      • string – Titel in der Auswahl
      • true – Auswahltitel der Standardliste verwenden
      • false – Entferne von der Auswahl
    • Auswahlmöglichkeiten können aus dem globalen Vorrat einfach durch Angabe der ID entnommen werden.
    • Die Zuweisungen ungleich false erscheinen am Beginn der Auswahlliste und nicht mehr an ihrem ursprünglichen Platz.
  • .user[ "list" ]
    Setze diese Liste als allein bestimmend für die Auswahl verfügbarer Menüs. Siehe Details. Gleichzeitige Verwendung von "custom" wäre zwar möglich aber verwirrend.
  • .user[ "defs" ]
    Eigene Gruppen-Definitionen einführen oder nur einige Attribute auf bestehende Vereinbarungen aufsetzen.
    • Identifizierer, die mit einem @ beginnen, sind für Benutzerdefinitionen reserviert.
    • Gruppen-Definitionen der Benutzer mit gleichem Identifizierer überschreiben eine vorhandene Definition. Beim Attribut-Element wird nur das einzelne Attribut ersetzt.
  • .user[ "lang" ]
    Fordert eine bestimmte Sprache an, wodurch das zugehörige .l10n wirksam wird. Standardmäßig wird versucht, die Sprache des Benutzers zu nutzen, sonst die des Projekts.
  • .user[ "config" ]
    Setze Konfigurationsoptionen; siehe Details.

Mit Ausnahme dieser Properties wird das System keine Elemente hier berühren. Benutzer können zugehörige Daten abspeichern, Funktionsdefinitionen und anderes in diesem Objektzweig ablegen, ohne einen Konflikt befürchten zu müssen.

Cookie[edit]

Zusätzlich können Benutzer die zuletzt vorgenommene Auswahl eines Menüs auf einer zuvor bearbeiteten Seite vorgeben. Der Status wird als Sitzungs-Cookie gespeichert.

  • Diesen Namen für das Cookie verwenden:
   .user.config = { "cookieName": "editToolStrIns" };
   .user.config = { "cookieName": false };

Von sich aus werden keine Cookies benutzt.

Deaktivierung[edit]

Wer eine .off property setzt, unterbindet die Generierung des gesamten Werkzeugs, selbst wenn das im lokalen Projekt vorgesehen ist.

API[edit]

Drei Funktionen werden angeboten, vorrangig für Benutzer:

  • .update()
    Definition auffrischen, etwa weil der Benutzer während der Seitenbearbeitung die Konfiguration geändert hat.
  • .set(key, wert)
    Nachträgliches Setzen von Konfigurationsoptionen
    • .set("selection", id) – Wähle ein anderes Menü aus, beispielsweise nicht das erste auf der Liste.
  • .about_defs()
    Zeige eine message box mit allen verfügbaren Definitions-ID zu informativen Zwecken.

CSS[edit]

Dekorative Styles können zugeordnet werden. Siehe Details.

Individuelles Laden[edit]

Wenn das Skript noch nicht vom lokalen Projekt unterstützt wird, kann es importiert werden durch

if ( /^(edit|submit)$/.test( mw.config.get("wgAction") ) ) {
   mw.loader.load( "https://www.mediawiki.org/w/index.php?title=User:PerfektesChaos/js/editToolStrIns.js&action=raw&ctype=text/javascript" );
}

Benutzerkonfiguration[edit]

Wenn Besonderheiten durch Benutzer konfiguriert werden sollen, sollte versucht werden, das vor dem Laden zu erreichen, damit der Effekt von Anfang an eintritt und ein Ruckeln vermieden wird.

mw.hook[edit]

Der nachstehende Code registriert eine benutzerdefinierte Konfigurationsfunktion. Diese wird automatisch ausgeführt, sobald das Werkzeug geaden wird; notfalls auch noch nachträglich.

mw.hook( "editToolStrIns.ready" ).add( meinETSIanpasser );

Eine beliebige benutzerdefinierte Funktion wie meinETSIanpasser erhält das Anwendungsobjekt app und kann wie folgt aussehen:

function meinETSIanpasser( app ) {
   app.set( "this", "that" );
   app.user = { custom: [ "0",    true,
                          "[[]]", true,
                          "TeX",  "TeX" ] };
   app.update();
}

Durch app.update() werden die in app.user getroffenen Vereinbarungen wirksam.

mw.libs[edit]

Eine konventionelle Vorgehensweise ist es, vor dem Laden in der Bibliothek dem Anwendungsobjekt eine user-Komponente mitzugeben. Dabei ist die folgende Praxis empfehlenswert und vermeidet Störungen bei Veränderungen auf Projektebene. Ansonsten könnte das Objekt überschrieben werden, entweder vom Projekt oder vom Benutzer. Ein mehrfaches Laden mit load() ist unschädlich.

   if ( typeof( mw.libs.editToolStrIns ) !== "object" ) {
      mw.libs.editToolStrIns  =  { };
   }
   mw.libs.editToolStrIns[ "user" ] = {................};

Mehrfache Werkzeuge[edit]

Wenn das lokale Projekt bereits ein anderes edit tool einbindet, versucht dieses Skript den Mitbewerber zu verstecken, falls bereits bekannt.

Falls das andere Werkzeug bislang unbekannt blieb und nun beide Werkzeuge gleichzeitig sichtbar sind und für Verwirrung sorgen, bitte eine kurze Notiz mit Angabe des Projekts auf der Diskussionsseite hinterlassen. Einige Zeit später wird dies umgesetzt werden.

Wer sich mit HTML, CSS und Quelltextansicht auskennt, kann die folgende Zuweisung vornehmen

   .user.config = { "old": "#someselector" };

wobei das andere edit tool durch #someselector zu identifizieren wäre.

Beispiele[edit]