User:PerfektesChaos/js/editToolStrIns/User Customization/de
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
editPersönliche JS Einstellungen können in common.js oder Skin-bezogen definiert werden.
.user Objekt
editWenn 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äßigenlist
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 verwendenfalse
– 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.
- Identifizierer, die mit einem
.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
editZusä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" };
- Abschalten einer projektweiten Standardeinstellung:
.user.config = { "cookieName": false };
Von sich aus werden keine Cookies benutzt.
Deaktivierung
editWer eine .off
property setzt, unterbindet die Generierung des gesamten Werkzeugs, selbst wenn das im lokalen Projekt vorgesehen ist.
API
editDrei 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
editDekorative Styles können zugeordnet werden. Siehe Details.
Individuelles Laden
editWenn 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
editWenn 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
editDer 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
editEine 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
editWenn 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