„Wikipedia:Technik/Skin/JS/Variablen“ – Versionsunterschied
kl.ergs | Versionsabhängiger Wert für stylepath mit {{STYLEPATH}} erzeugt. wgVersion kann leider nicht mit {{CURRENTVERSION}} erzeugt werden, weil {{CURRENTVERSION}} neben der Version noch eine weitere ID enthält. | ||
Zeile 2: | Zeile 2: | ||
Diese Seite beschreibt, wie sich in der JavaScript-Programmierung Informationen gewinnen lassen über die aktuelle Seite, den momentanen Benutzer und die sonstige Konfiguration. | Diese Seite beschreibt, wie sich in der JavaScript-Programmierung Informationen gewinnen lassen über die aktuelle Seite, den momentanen Benutzer und die sonstige Konfiguration. | ||
__TOC__ | __TOC__ | ||
== Projekt- und seitenspezifische Konfigurationsvariablen == | == Projekt- und seitenspezifische Konfigurationsvariablen == | ||
Eine Reihe von Parametern gibt Informationen über die MediaWiki-Installation und das Wiki-Projekt (Database) wie auch die momentane Aktion und Einzelheiten über den Artikel und Benutzer-Einstellungen. Eine Übersicht der wichtigsten Parameter ist [[#wg.List|nachstehend aufgelistet]]. | Eine Reihe von Parametern gibt Informationen über die MediaWiki-Installation und das Wiki-Projekt (Database) wie auch die momentane Aktion und Einzelheiten über den Artikel und Benutzer-Einstellungen. Eine Übersicht der wichtigsten Parameter ist [[#wg.List|nachstehend aufgelistet]]. | ||
Zeile 103: | Zeile 100: | ||
| {{Anker|wgScriptPath}}<code>wgScriptPath</code> || <code>/w</code><ref name="wgServer-2011-09" /> | | {{Anker|wgScriptPath}}<code>wgScriptPath</code> || <code>/w</code><ref name="wgServer-2011-09" /> | ||
|- | |- | ||
| {{Anker|stylepath}}<code>stylepath</code> || <code> | | {{Anker|stylepath}}<code>stylepath</code> || <code>{{STYLEPATH}}</code> | ||
|- | |- | ||
!colspan="2"|Lokalisierung<ref name="L10N" /> | !colspan="2"|Lokalisierung<ref name="L10N" /> |
Version vom 2. Juni 2012, 23:06 Uhr
Diese Seite beschreibt, wie sich in der JavaScript-Programmierung Informationen gewinnen lassen über die aktuelle Seite, den momentanen Benutzer und die sonstige Konfiguration.
Projekt- und seitenspezifische Konfigurationsvariablen
Eine Reihe von Parametern gibt Informationen über die MediaWiki-Installation und das Wiki-Projekt (Database) wie auch die momentane Aktion und Einzelheiten über den Artikel und Benutzer-Einstellungen. Eine Übersicht der wichtigsten Parameter ist nachstehend aufgelistet.
wg
steht für „WikiGlobals“.[1]
Mit Einführung von MediaWiki 1.17 sollten die Parameter wie folgt abgefragt werden:mw.config.get("
Name")
Bis dahin waren die Parameter nur als einfache JavaScript-Variablen verfügbar. Das ist übergangsweise noch längere Zeit möglich; bei Neuentwicklungen und Überarbeitungen von Skripten sollte aber auf den neuen Zugriff umgestellt werden.
Bis MediaWiki 1.16 konnten alle Parameter direkt in der Ansicht des HTML-Quelltextes gelesen werden. Das war in MediaWiki 1.17 nicht mehr vollständig und einfach möglich. Eine Auflistung der momentan gültigen Parameter und ihrer Werte kann man sich mit DebugWikiGlobals[2] verschaffen. Mit MediaWiki 1.18 (Anfang Oktober 2011) stehen sie wieder auf der Quelltext-Seite.[3]
Abfrage:
mw.config.exists("
Name")
- Informiert, ob Name definiert ist.
Hilfreich sind vor allem:
Projekt-Spezifisch | |
---|---|
wgDBname | dewiki – deutschsprachige Wikipediabat_smgwiki – Wikipedia auf Schemaitischelwikibooks – Wikibooks in griechischer Sprachefiwikinews – Wikinews in finnischer Spracheiswikiquote – Wikiquote auf Isländischarwikisource – Wikisource auf Arabischfrwikiversity – französischsprachige Wikiversitysimplewiktionary – Wiktionary in Simple Englishcommonswiki – Commonsmetawiki – Meta-Wikimediawikiwiki – MediaWiki |
wgSiteName | Wikipedia Projektname in der Landessprache, könnte auch „Wikipédia“ oder „Vikipedi“ heißen.[4] |
wgContentLanguage | de |
wgNamespaceIds | {"diskussion": 1, "benutzer": 2, "benutzerin": 2, … } |
wgFormattedNamespaces | {…, "6": "Datei", …, "10": "Vorlage", … } |
wgCaseSensitiveNamespaces | Array mit Namensräumen, bei deren Seiten die Groß/Kleinschreibung des Titels unterschieden wird. Vor allem für Wiktionaries wichtig, weil es dort auch eigene Seitennamen mit kleinem Anfangsbuchstaben geben darf. In der de.WP ist die Länge Null. |
Seiten-Spezifisch | |
wgArticleId | 6606385 (Bei Spezialseiten und Bildern, die von Commons geladen werden, gilt wgArticleId === 0 ) |
wgTitle | Technik/Skin/JS/Variablen Menschenfreundliche Form (nicht URL-fähig: Leerzeichen) Ohne Namensraum! |
wgPageName | Wikipedia:Technik/Skin/JS/Variablen Bedingt URL-fähig[5] |
wgNamespaceNumber | 4 (siehe Liste) |
wgCurRevisionId | - auch während action=edit oder submit verfügbar; nicht bei generierten Spezialseiten |
wgCategories | ["Deutscher", "Frau"] nur bei wgIsArticle gefüllt; während action=edit nicht verfügbar; jedoch bei submit |
wgPageContentLanguage | Seiteninhaltssprache; vor allem in mehrsprachigen Wikis wie Commons interessant |
wgCanonicalNamespace | "Project" (=Wikipedia), einheitlicher Name |
wgCanonicalSpecialPageName | Seite im Spezial-Namensraum, einheitlicher Name beispielsweise "Listfiles", "Watchlist" |
Situationsabhängig | |
wgIsArticle | true – Feste Seite nur ansehen (view , auch diffpage); keine Spezialseitefalse – Generierte Spezialseite oder Aktivität am Artikel: Editieren, Änderungen, Vorschau |
wgAction | view – Seite nur ansehen oder Spezialseite; auch Versionsvergleichedit – Seite öffnen zur Bearbeitung[6]submit – Vorschau, Änderungen (, Speichern→view )[6]history – Versionsgeschichte – Frühere Versionen (vergleichen)[6] bis Februar 2012watch – Zur Beobachtungsliste hinzugefügt (Bestätigung)raw – Rohtext (kaum Skript-Aktivität möglich)query – (nur API)Ausführlich zu action unter Hilfe:URL-Parameter. |
wgRestrictionEdit | Schutzstatus einer bearbeiteten Seite[7] |
wgRestrictionMove | Schutzstatus einer Seite[7] |
wgRedirectedFrom | Wenn deklariert: Auf die aktuelle Seite wurde von einer anderen Seite weitergeleitet. Der Wert ist der Seitenname der Weiterleitung; siehe auch die URL. |
debug | true – Debug-Modus aktiviert |
Benutzer-Spezifisch | |
skin | monobook |
wgUserName | PerfektesChaos null für nicht angemeldete Benutzer, die kein Benutzerskript hätten – wohl aber Mediawiki:Common.js |
wgUserLanguage | de |
wgUserGroups | ["autoreview", "editor"] |
Webserver | |
wgServer | //de.wikipedia.org [8][9] |
wgArticlePath | /wiki/$1 [9][10] |
wgScript | /w/index.php [9] |
wgScriptPath | /w [9] |
stylepath | /w/skins |
Lokalisierung[11] | |
wgDefaultDateFormat | "dmy " |
wgDigitTransformTable | [ "", "" ] |
wgMonthNames | [ "", "Januar", … ] |
wgMonthNamesShort | [ "", "Jan.", … ] |
wgSeparatorTransformTable | [ ",Tab.", ".Tab," ] |
Verschiedenes | |
wgAvailableSkins | [ "Chick", "CologneBlue", … ] |
wgFileExtensions | [ "png", "gif", … ] |
wgMainPageTitle | Wikipedia:Hauptseite |
wgUrlProtocols | https\:\/\/|ftp\:\/\/|irc\:\/\/| … |
wgVersion | "1.20wmf3 " |
Geo.IP Geo.country | eigene IP " DE " usw.; mutmaßliches Staatsgebiet des BenutzersGeo könnte null oder kein Objekt sein |
Einige der Werte sind aus Hilfe:Variablen bekannt. Eine vollständige Liste steht unter mw:Manual:Interface/JavaScript #mw.config.
Benutzerkonfiguration
Über mw.user
hat man im JavaScript-Code Zugriff auf die Benutzerkonfiguration.
Für die aktuelle Sitzung kann bekannt sein:
mw.user.id()
mw.user.name
(=wgUserName
)mw.user.sessionId()
Analog zu den Konfigurationsparametern sind mit MediaWiki 1.17 auch die Einstellungen aus dem Benutzerprofil verfügbar geworden.
Die Abfrage soll mittelsmw.user.options.get("
Bezeichner")
erfolgen.
Diese Werte werden allerdings im Februar 2011 erst nach dem Benutzer-Skript definiert, so dass sie sich nicht ohne weiteres auslesen lassen. Mit der Funktion .loader.using()
des ResourceLoader muss die Bereitstellung von user.options
abgewartet werden. DebugWikiUserOptions()[2] gibt eine Zusammenstellung der aktuellen Werte.
Ab MW 1.18 ist mit mw.user.tokens.get("editToken")
der für automatisierte Bearbeitung per API erforderliche editToken verfügbar, ohne dass zuvor eine gesonderte Abfrage mit Ajax vorgenommen werden muss.
Liste möglicher Optionsbezeichner:
ccmeonemails
cols
contextchars
contextlines
date
– Datumsformatdiffonly
disablemail
disablesuggest
editfont
editondblclick
editsection
editsectiononrightclick
editwidth
enotifminoredits
enotifrevealaddr
enotifusertalkpages
enotifwatchlistpages
extendwatchlist
externaldiff
externaleditor
fancysig
flaggedrevseditdiffs
flaggedrevssimpleui
flaggedrevsstable
flaggedrevsviewdiffs
forceeditsummary
gender
hideminor
hidepatrolled
highlightbroken
imagesize
justify
language
math
minordefault
newpageshidepatrolled
nickname
nocache
noconvertlink
norollbackdiff
numberheadings
previewonfirst
previewontop
quickbar
rcdays
rclimit
rememberpassword
rows
searchNs0
searchNs1
…searchNs9
…searchNs100
searchlimit
showhiddencats
showjumplinks
shownumberswatching
showtoc
showtoolbar
skin
stubthreshold
thumbsize
timecorrection
underline
usebetatoolbar
usebetatoolbar-cgd
useeditwarning
uselivepreview
usenewrc
variant
vector-collapsiblenav
vector-simplesearch
watchcreations
watchdefault
watchdeletion
watchlistdays
watchlisthideanons
watchlisthidebots
watchlisthideliu
watchlisthideminor
watchlisthideown
watchlisthidepatrolled
watchlisttoken
watchmoves
wllimit
Die Gadgets („Helferlein“) werden teilweise dynamisch durch die Module registriert; ist das Helferlein in den Benutzereinstellungen nicht aktiviert, so wäre dann die Optionsvariable undefiniert (undefined
):
gadget-bkl-check
gadget-contribsrange
gadget-Doppel-s-Schreibung
gadget-editsection-left
gadget-editsection-right
gadget-Einleitung-bearbeiten
gadget-Extra-Editbuttons
gadget-HotCat
gadget-markAdmins
gadget-navigation-popups
gadget-PB
gadget-Personendaten
gadget-Pfeil-hoch
gadget-Rechtschreibpruefung
gadget-revisionCounter
gadget-revisionjumper
gadget-Rot-Gruen-Sehschwaeche
gadget-Screenreader-Optimierung
gadget-Suchfokus-Hauptseite
gadget-toolserver-integration
gadget-Vorlagenmeister
gadget-wikEd
gadget-Zeitzonenkonverter
Anmerkungen
- ↑ meta:Manual:Global object variables
- ↑ a b Benutzerskript (Benutzer:PerfektesChaos)
- ↑ Damit werden sie auch beim Speichern als Datei auf der Festplatte abgelegt. Verschickt man eine solche Datei per Mail an Dritte, erhalten diese übrigens auch den Watchlisttoken.
- ↑
Um abzufragen, in welcher Art von Projekt ein Skript zurzeit aktiv ist, sollte deshalb
wgDBname
analysiert werden. - ↑
Unterstreichungsstriche und Umlaute, aber nicht encoded.
Mit der JavaScript-StandardfunktionencodeURIComponent()
lässt sich eine sichere Verwendung in URL erreichen:encodeURIComponent(wgPageName)
– Anschließend müssen aber die:
und/
wiederhergestellt werden.
Besser geht das mitmw.util.wikiUrlencode()
. - ↑ a b c
wgAction
:- Mit MW 1.19 wurde der Wert
historysubmit
durchview
ersetzt; in der URL heißt esaction=diff
. - Vielleicht mit MW 1.19, vielleicht irgendwann später wird der Wert
submit
entfallen; der Wertedit
stünde dann nicht nur für das erstmalige Öffnen zur Bearbeitung, sondern auch für die Vorschauansicht und die Diffpage während der Bearbeitung. (Bug 25800, rev:108343)- Sinnvoll ist es, sich im Rahmen von Überarbeitungen auf diese Situation einzustellen. Mit
mw.util.getParamValue("action")
lässt sich der Unterschied über den URL-Parameter ermitteln, der bei Erstbearbeitungedit
enthält, später dannsubmit
.
- Sinnvoll ist es, sich im Rahmen von Überarbeitungen auf diese Situation einzustellen. Mit
- Mit MW 1.19 wurde der Wert
- ↑ a b
wgRestrictionEdit
wird erst gesetzt beim Versuch, die Seite zu bearbeiten.wgRestrictionEdit
undwgRestrictionMove
sind jeweils ein Array mit der Bezeichnung einschränkender Benutzerrechte. Ist das Array leer (! .length
), bestehen keine Einschränkungen.Typische Elemente sind:"autoconfirmed"
– Halbsperrung"sysop"
– Vollsperrung""
odernull
– Möglicher Überrest einer entfernten Sperrung (siehe gerrit:7821 – die Möglichkeit sollte sicherheitshalber auch in JS abgefangen werden)
wgUserGroups
abgeglichen werden. - ↑
Wert von wgServer
ab Anfang Oktober 2011URL wgServer
http://de.wikipedia.org/ //de.wikipedia.org
https://de.wikipedia.org/ https://secure.wikimedia.org/ https://secure.wikimedia.org
Um abzufragen, in welchem Projekt ein Skript zurzeit aktiv ist, sollte jedoch nicht die gelegentlich wechselnde URL benutzt werden, sondern der wesentlich stabilere
wgDBname
.Das Protokoll ist nicht mehr über wgServer abzufragen; dies ergibt sich nunmehr über
window.location.protocol
– wenn tatsächlich einmal erforderlich.Für API-Abrufe muss die URL mit
mw.config.get("wgServer")+mw.util.wikiScript("api")
gebildet werden. Es ergibt sich ein Pfad innerhalb derselben Domain, was für asynchrone Abfragen erforderlich ist.Innerhalb einer Seite kann das Voranstellen von wgServer aber meist entfallen, weil dann ein Seiten-relativer Pfad verwendet wird.
- ↑ a b c d
Werte bis Ende September 2011 Identifizierer http https wgServer
http://de.wikipedia.org
https://secure.wikimedia.org
wgArticlePath
/wiki/$1
/wikipedia/de/wiki/$1
wgScript
/w/index.php
/wikipedia/de/w/index.php
wgScriptPath
/w
/wikipedia/de/w
- ↑ Den URL-Pfad zu einer bestimmten Seite erhält man über mw.util.wikiGetlink().
- ↑
Siehe dazu auch:
mw.language
.