forked from Cyber/archwiki
Update to MediaWiki 1.28.0
This commit is contained in:
parent
9cb00af847
commit
b8136f04aa
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"rules": {
|
||||
"color-hex-case": [ "lower" ],
|
||||
"color-hex-length": [ "short" ],
|
||||
"color-named": [ "never" ],
|
||||
"color-no-invalid-hex": true,
|
||||
|
||||
"declaration-bang-space-after": [ "never" ],
|
||||
"declaration-bang-space-before": [ "always" ],
|
||||
"declaration-colon-space-after": [ "always" ],
|
||||
"declaration-colon-space-before": [ "never" ],
|
||||
|
||||
"font-family-name-quotes": [ "always-unless-keyword" ],
|
||||
"font-weight-notation": [ "named-where-possible" ],
|
||||
|
||||
"function-calc-no-unspaced-operator": true,
|
||||
"function-comma-newline-after": "never-multi-line",
|
||||
"function-comma-newline-before": "never-multi-line",
|
||||
"function-comma-space-after": [ "always" ],
|
||||
"function-comma-space-before": [ "never" ],
|
||||
"function-parentheses-newline-inside": [ "never-multi-line" ],
|
||||
"function-parentheses-space-inside": [ "always" ],
|
||||
"function-url-quotes": [ "never" ],
|
||||
"function-whitespace-after": [ "always" ],
|
||||
}
|
||||
}
|
600
CREDITS
600
CREDITS
|
@ -1,256 +1,662 @@
|
|||
{{int:version-credits-summary}}
|
||||
<!--
|
||||
MediaWiki 1.27 is a collaborative project released under the
|
||||
MediaWiki 1.28 is a collaborative project released under the
|
||||
GNU General Public License v2. We would like to recognize the
|
||||
following names for their contribution to the product.
|
||||
-->
|
||||
<!-- Please notice that the following can be found parsed under Special:Version/Credits -->
|
||||
|
||||
== Developers ==
|
||||
== Contributors ==
|
||||
<!-- Updates to this list made with maintenance/updateCredits.php -->
|
||||
<!-- BEGIN CONTRIBUTOR LIST -->
|
||||
* aalekhN
|
||||
* Aaron Ball
|
||||
* Aaron Pramana
|
||||
* Aaron Schulz
|
||||
* Aarti Dwivedi
|
||||
* Aashaka Shah
|
||||
* abhinand
|
||||
* Abhishek Das
|
||||
* Adam Miller
|
||||
* Adam Roses Wight
|
||||
* addshore
|
||||
* Aditya Sastry
|
||||
* Adrian Heine
|
||||
* Adrian Lang
|
||||
* Ævar Arnfjörð Bjarmason
|
||||
* Agbad
|
||||
* Ahmad Sherif
|
||||
* Ajayrahul P
|
||||
* Alangi Derick
|
||||
* Albert221
|
||||
* Alejandro Mery
|
||||
* AlephNull
|
||||
* Alex Ivanov
|
||||
* Alex Shih-Han Lin
|
||||
* Alex Z.
|
||||
* Alexander Emsenhuber
|
||||
* Alexander I. Mashin
|
||||
* Alexander Lehmann
|
||||
* Alexander Monk
|
||||
* Alexander Sigachov
|
||||
* Alexandre Emsenhuber
|
||||
* Alexia E. Smith
|
||||
* Amalthea
|
||||
* Amir E. Aharoni
|
||||
* Amir Sarabadani
|
||||
* ananay
|
||||
* Anders Wegge Jakobsen
|
||||
* Andre Engels
|
||||
* Andrew Bogott
|
||||
* Andrew Dunbar
|
||||
* Andrew Garrett
|
||||
* Andrew Green
|
||||
* Andrew H
|
||||
* Andrew Harris
|
||||
* Andrew Otto
|
||||
* Andrius R
|
||||
* andymw
|
||||
* Angela Beesley Starling
|
||||
* ankur
|
||||
* Antoine Musso
|
||||
* Antonio Ospite
|
||||
* apexkid
|
||||
* April King
|
||||
* Aran Dunkley
|
||||
* Arash Boostani
|
||||
* Arcane21
|
||||
* Ariel Glenn
|
||||
* Arlo Breault
|
||||
* Arne Heizmann
|
||||
* Arthur Richards
|
||||
* Aryeh Gregor
|
||||
* Asher Feldman
|
||||
* Asier Lostalé
|
||||
* ayush_garg
|
||||
* Azliq7
|
||||
* Bagariavivek
|
||||
* Bahodir Mansurov
|
||||
* balloonguy
|
||||
* Bartosz Dziewoński
|
||||
* Beau
|
||||
* Ben Davis
|
||||
* Ben Hartshorne
|
||||
* Bene
|
||||
* Benny Situ
|
||||
* Bergi
|
||||
* Bertrand Grondin
|
||||
* Bill Traynor
|
||||
* Billinghurst
|
||||
* billm
|
||||
* blotmandroid
|
||||
* Bogdan Stancescu
|
||||
* Boris Nagaev
|
||||
* Borislav Manolov
|
||||
* Brad Jorsch
|
||||
* Brandon Black
|
||||
* Brandon Harris
|
||||
* Brent G
|
||||
* Brent Garber
|
||||
* Brian Wolff
|
||||
* Brianna Laugher
|
||||
* Brion Vibber
|
||||
* Bryan Davis
|
||||
* Bryan Tong Minh
|
||||
* Chad Horohoe
|
||||
* Charles Melbye
|
||||
* Chris Steipp
|
||||
* church of emacs
|
||||
* Daniel Friesen
|
||||
* Daniel Kinzler
|
||||
* Daniel Renfro
|
||||
* Danny B.
|
||||
* David McCabe
|
||||
* Derk-Jan Hartman
|
||||
* Domas Mituzas
|
||||
* Emufarmers
|
||||
* Fran Rogers
|
||||
* Greg Sabino Mullane
|
||||
* Guy Van den Broeck
|
||||
* Happy-melon
|
||||
* Hojjat
|
||||
* Ian Baker
|
||||
* Ilmari Karonen
|
||||
* Jack D. Pond
|
||||
* Jack Phoenix
|
||||
* Jackmcbarn
|
||||
* James Forrester
|
||||
* Jan Paul Posma
|
||||
* Jason Richey
|
||||
* Jeroen De Dauw
|
||||
* John Du Hart
|
||||
* Jon Harald Søby
|
||||
* Juliano F. Ravasi
|
||||
* Leo Koppelkamm
|
||||
* Leon Weber
|
||||
* Leslie Hoare
|
||||
* Marco Schuster
|
||||
* Marius Hoch
|
||||
* Matěj Grabovský
|
||||
* Matt Johnston
|
||||
* Matthew Flaschen
|
||||
* Max Semenik
|
||||
* Meno25
|
||||
* MinuteElectron
|
||||
* Mohamed Magdy
|
||||
* Nathaniel Herman
|
||||
* Neil Kandalgaonkar
|
||||
* Nicolas Dumazet
|
||||
* Niklas Laxström
|
||||
* Ori Livneh
|
||||
* Patrick Reilly
|
||||
* Philip Tzou
|
||||
* Platonides
|
||||
* Purodha Blissenbach
|
||||
* Raimond Spekking
|
||||
* Remember the dot
|
||||
* Roan Kattouw
|
||||
* Robert Stojnić
|
||||
* Robin Pepermans
|
||||
* Rotem Liss
|
||||
* Ryan Kaldari
|
||||
* Ryan Lane
|
||||
* Ryan Schmidt
|
||||
* Sam Reed
|
||||
* Shinjiman
|
||||
* Siebrand Mazeland
|
||||
* Soxred93
|
||||
* SQL
|
||||
* Szymon Świerkosz
|
||||
* This, that and the other
|
||||
* Thomas Bleher
|
||||
* Thomas Gries
|
||||
* Tim Starling
|
||||
* Timo Tijhof
|
||||
* Trevor Parscal
|
||||
* Tyler Anthony Romeo
|
||||
* Victor Vasiliev
|
||||
* Yesid Carrillo
|
||||
* Yuri Astrakhan
|
||||
|
||||
== Patch Contributors ==
|
||||
* Aaron Ball
|
||||
* Aaron Pramana
|
||||
* Agbad
|
||||
* Ahmad Sherif
|
||||
* Alejandro Mery
|
||||
* Amalthea
|
||||
* Amir E. Aharoni
|
||||
* Andrew Dunbar
|
||||
* Antonio Ospite
|
||||
* Asier Lostalé
|
||||
* Azliq7
|
||||
* Bagariavivek
|
||||
* Beau
|
||||
* Benny Situ
|
||||
* Bergi
|
||||
* Borislav Manolov
|
||||
* Brent G
|
||||
* Brianna Laugher
|
||||
* burthsceh
|
||||
* C. Scott Ananian
|
||||
* Cacycle
|
||||
* Calak
|
||||
* Camille Constans
|
||||
* Carl Fürstenberg
|
||||
* Carlin
|
||||
* Carsten Nielsen
|
||||
* Cblair91
|
||||
* cenarium
|
||||
* Chad Horohoe
|
||||
* Charles Melbye
|
||||
* Chiefwei
|
||||
* Chris McMahon
|
||||
* Chris Seaton
|
||||
* Chris Steipp
|
||||
* Christian Aistleitner
|
||||
* Christian List
|
||||
* Christian Neubauer
|
||||
* Christopher Johnson
|
||||
* church of emacs
|
||||
* Cindy Cicalese
|
||||
* ckoerner
|
||||
* Conrad Irwin
|
||||
* cryptocoryne
|
||||
* Dan Barrett
|
||||
* Dan Collins
|
||||
* Dan Duvall
|
||||
* Dan Nessett
|
||||
* Dan Poltawski
|
||||
* dan-nl
|
||||
* Daniel A. R. Werner
|
||||
* Daniel Arnold
|
||||
* Daniel Cannon
|
||||
* Daniel De Marco
|
||||
* Daniel Evans
|
||||
* Daniel Friesen
|
||||
* Daniel Kinzler
|
||||
* Daniel Renfro
|
||||
* Daniel Werner
|
||||
* DanielRenfro
|
||||
* Danny B.
|
||||
* Darian Anthony Patrick
|
||||
* Darkdragon09
|
||||
* DaSch
|
||||
* David Baumgarten
|
||||
* David Chan
|
||||
* David E. Narváez
|
||||
* David Lynch
|
||||
* David McCabe
|
||||
* David Mudrák
|
||||
* dcausse
|
||||
* dennisroczek
|
||||
* Denny Vrandecic
|
||||
* Dereckson
|
||||
* Derk-Jan Hartman
|
||||
* Derric Atzrott
|
||||
* Derrick Coetzee
|
||||
* Dévai Tamás
|
||||
* Devi Krishnan
|
||||
* Diederik van Liere
|
||||
* Domas Mituzas
|
||||
* Douglas Gardner
|
||||
* DPStokesNZ
|
||||
* dr0ptp4kt
|
||||
* Ebrahim Byagowi
|
||||
* Ed Sanders
|
||||
* Edward Chernenko
|
||||
* Edward Z. Yang
|
||||
* Elisabeth Bauer
|
||||
* Elliott Eggleston
|
||||
* Elvis Stansvik
|
||||
* Emil Podlaszewski
|
||||
* Emmanuel Engelhart
|
||||
* Emmanuel Gil Peyrot
|
||||
* Emmet Hikory
|
||||
* Emufarmers
|
||||
* enigmaeth
|
||||
* Entlinkt
|
||||
* Eranroz
|
||||
* Eric Evans
|
||||
* Eric Schneider
|
||||
* Erich Lerch
|
||||
* Erick Guan
|
||||
* Erik Bernhardson
|
||||
* Erik Moeller
|
||||
* Erwin Dokter
|
||||
* Étienne Beaulé
|
||||
* Evan McIntire
|
||||
* Evan Prodromou
|
||||
* ExplosiveHippo
|
||||
* Faidon Liambotis
|
||||
* Federico Leva
|
||||
* Fenzik Joseph
|
||||
* firebus
|
||||
* Florian Schmidt
|
||||
* fomafix
|
||||
* Fran Rogers
|
||||
* Fred Emmott
|
||||
* FunPika
|
||||
* Gabriel Wicke
|
||||
* Gary Guo
|
||||
* gbt248
|
||||
* Geoffrey Mon
|
||||
* georggi
|
||||
* Gergő Tisza
|
||||
* Gero Scholz
|
||||
* gicode
|
||||
* Giftpflanze
|
||||
* Gilles Dubuc
|
||||
* Gilles van den Hoven
|
||||
* Giuseppe Lavagetto
|
||||
* gladoscc
|
||||
* glaisher
|
||||
* Greg Maxwell
|
||||
* Greg Sabino Mullane
|
||||
* Gregory Szorc
|
||||
* Grunny
|
||||
* Guillaume Blanchard
|
||||
* Guy Van den Broeck
|
||||
* Happy-melon
|
||||
* haritha28
|
||||
* Harry Burt
|
||||
* Hazard-SJ
|
||||
* Hector A Escobedo
|
||||
* Helder
|
||||
* Henning Snater
|
||||
* Hojjat
|
||||
* Huji
|
||||
* Hydriz
|
||||
* Ian Baker
|
||||
* Ilmari Karonen
|
||||
* Inez Korczyński
|
||||
* IoannisKydonis
|
||||
* Ireas
|
||||
* isarra
|
||||
* Ivan Lanin
|
||||
* Jack D. Pond
|
||||
* Jack Phoenix
|
||||
* Jackmcbarn
|
||||
* Jacob Block
|
||||
* Jacob Clark
|
||||
* jagori
|
||||
* Jakub Vrana
|
||||
* James Earl Douglas
|
||||
* James Forrester
|
||||
* Jan Berkel
|
||||
* Jan Drewniak
|
||||
* Jan Gerber
|
||||
* Jan Luca Naumann
|
||||
* Jan Paul Posma
|
||||
* Jan Zerebecki
|
||||
* Jared Flores
|
||||
* Jaroslav Škarvada
|
||||
* jarrettmunton
|
||||
* jarry1250
|
||||
* Jaska Zedlik
|
||||
* Jason Richey
|
||||
* jeblad
|
||||
* Jeff Janes
|
||||
* jeff303
|
||||
* Jens Frank
|
||||
* Jens Ohlig
|
||||
* Jérémie Roquet
|
||||
* Jeremy Baron
|
||||
* Jeremy Postlethwaite
|
||||
* jeremyb
|
||||
* Jeroen De Dauw
|
||||
* Jerome Jamnicky
|
||||
* Jesús Martínez Novo
|
||||
* jhobs
|
||||
* Jiabao
|
||||
* Jidanni
|
||||
* Jimmy Collins
|
||||
* Jimmy Xu
|
||||
* joakin
|
||||
* Joan Creus
|
||||
* Joel Natividad
|
||||
* Joerg
|
||||
* Johan Dahlin
|
||||
* John Du Hart
|
||||
* John N
|
||||
* Jon Harald Søby
|
||||
* Jon Robson
|
||||
* Jonathan Wiltshire
|
||||
* Jools Wills
|
||||
* jsahleen
|
||||
* Julian Ostrow
|
||||
* Juliano F. Ravasi
|
||||
* Juliusz Gonera
|
||||
* JuneHyeon Bae
|
||||
* Jure Kajzer
|
||||
* Justin Du
|
||||
* Kai_WMDE
|
||||
* kaligula
|
||||
* Kartik Mistry
|
||||
* Karun Dambiec
|
||||
* Katie Filbert
|
||||
* Kevin Israel
|
||||
* Kghbln
|
||||
* Kim Eik
|
||||
* Kim Hyun-Joon
|
||||
* kipod
|
||||
* kishanio
|
||||
* konarak
|
||||
* krishna keshav
|
||||
* Krzysztof Krzyzaniak
|
||||
* Krzysztof Zbudniewek
|
||||
* Kunal Grover
|
||||
* Kunal Mehta
|
||||
* Kwan Ting Chan
|
||||
* Laurence Parry
|
||||
* Lee Bousfield
|
||||
* Lee Daniel Crocker
|
||||
* Lee Worden
|
||||
* Lejonel
|
||||
* lekshmi
|
||||
* Leo Koppelkamm
|
||||
* Leon Liesener
|
||||
* Leon Weber
|
||||
* Leonardo Gregianin
|
||||
* Leons Petrazickis
|
||||
* Leslie Hoare
|
||||
* Leszek Manicki
|
||||
* lethosor
|
||||
* Lewis Cawte
|
||||
* Liam Edwards-Playne
|
||||
* liangent
|
||||
* Lisa Ridley
|
||||
* Ljudusika
|
||||
* Lojjik Braughler
|
||||
* Louperivois
|
||||
* Ltrlg
|
||||
* Luc Van Oostenryck
|
||||
* Lucas Garczewski
|
||||
* Luigi Corsaro
|
||||
* Luis Felipe Schenone
|
||||
* Luke Faraone
|
||||
* Lupin
|
||||
* Lupo
|
||||
* lwelling
|
||||
* m4tx
|
||||
* Madman
|
||||
* madurangasiriwardena
|
||||
* Magnus Manske
|
||||
* Manuel Menal
|
||||
* Manuel Schneider
|
||||
* Marc Ordinas i Llopis
|
||||
* Marc-André Pelletier
|
||||
* Marcin Cieślak
|
||||
* Marco Falke
|
||||
* Marco Schuster
|
||||
* MarcoAurelio
|
||||
* Marcus Buck
|
||||
* Marius Hoch
|
||||
* Mark Bergsma
|
||||
* Mark Clements
|
||||
* Mark Hershberger
|
||||
* Mark Holmquist
|
||||
* Marko Obrovac
|
||||
* Markus Glaser
|
||||
* Markus Krötzsch
|
||||
* Marooned
|
||||
* Martin Urbanec
|
||||
* Massaf
|
||||
* Matěj Grabovský
|
||||
* matejsuchanek
|
||||
* Mathias Ertl
|
||||
* mati
|
||||
* Matt Fitzpatrick
|
||||
* Matt Johnston
|
||||
* Matt Russell
|
||||
* Matthew Bowker
|
||||
* Matthew Britton
|
||||
* Matthew Flaschen
|
||||
* Matthias Jordan
|
||||
* Matthias Mullie
|
||||
* MatthiasDD
|
||||
* Max
|
||||
* Max Semenik
|
||||
* Max Sikström
|
||||
* mayankmadan
|
||||
* Meno25
|
||||
* merl
|
||||
* Merlijn S. van Deen
|
||||
* MGChecker
|
||||
* mgooley
|
||||
* mhutti1
|
||||
* Michael Dale
|
||||
* Michael De La Rue
|
||||
* Michael Holloway
|
||||
* Michael M.
|
||||
* Michael Newton
|
||||
* Michael Walsh
|
||||
* Michał Łazowik
|
||||
* Michał Roszka
|
||||
* Michał Zieliński
|
||||
* Mike Horvath
|
||||
* Minh Nguyễn
|
||||
* MinuteElectron
|
||||
* Misza13
|
||||
* mjbmr
|
||||
* moejoe0000
|
||||
* Mohamed Magdy
|
||||
* Molly White
|
||||
* Moriel Schottlender
|
||||
* Mormegil
|
||||
* Mr. E23
|
||||
* MrBlueSky
|
||||
* MrPete
|
||||
* Mukunda Modell
|
||||
* Mwalker
|
||||
* mwjames
|
||||
* mybugs.mail
|
||||
* MZMcBride
|
||||
* nadeesha
|
||||
* Nakon
|
||||
* Namit
|
||||
* Nathan Larson
|
||||
* Nathaniel Herman
|
||||
* Neil Kandalgaonkar
|
||||
* Nemo bis
|
||||
* nephele
|
||||
* Nicholas Pisarro, Jr
|
||||
* Nick Jenkins
|
||||
* nicoco007
|
||||
* Nicolas Dumazet
|
||||
* Nicolas Weeger
|
||||
* Nik
|
||||
* Nik Everett
|
||||
* Niklas Laxström
|
||||
* Nikola Kovacs
|
||||
* Nikola Smolenski
|
||||
* Nikolaos S. Karastathis
|
||||
* Nimish Gautam
|
||||
* Nischay Nahata
|
||||
* nischayn22
|
||||
* nomoa
|
||||
* nullspoon
|
||||
* Nuria Ruiz
|
||||
* Nx.devnull
|
||||
* Ocean behind ears
|
||||
* Olaf Lenz
|
||||
* Olivier Finlay Beaton
|
||||
* onei
|
||||
* opatel99
|
||||
* Oren Held
|
||||
* Ori Livneh
|
||||
* oskar.jauch@gmail.com
|
||||
* OverlordQ
|
||||
* Owen Davis
|
||||
* Paa Kwesi Imbeah
|
||||
* paladox
|
||||
* Patricio Molina
|
||||
* Patrick Reilly
|
||||
* Patrick Westerhoff
|
||||
* Pau Giner
|
||||
* Paul Copperman
|
||||
* Paul Oranje
|
||||
* Pavel Astakhov
|
||||
* Pavel Selitskas
|
||||
* Pcoombe
|
||||
* Perside Rosalie
|
||||
* Peter Gehres
|
||||
* Peter Hedenskog
|
||||
* Peter Potrowl
|
||||
* Petr Bena
|
||||
* Petr Kadlec
|
||||
* Petr Onderka
|
||||
* Petr Pchelko
|
||||
* Philip Tzou
|
||||
* physikerwelt (Moritz Schubotz)
|
||||
* PieRRoMaN
|
||||
* Pikne
|
||||
* PiRSquared17
|
||||
* Platonides
|
||||
* Pmlineditor
|
||||
* pmolina
|
||||
* prageck
|
||||
* Pranav Ravichandran
|
||||
* PranavK
|
||||
* Prateek Saxena
|
||||
* Priyanka Dhanda
|
||||
* Prod
|
||||
* ptarjan
|
||||
* pubudu538
|
||||
* Purodha Blissenbach
|
||||
* quiddity
|
||||
* quietust
|
||||
* Quim Gil
|
||||
* rahul21
|
||||
* Raimond Spekking
|
||||
* Ramunas Geciauskas
|
||||
* Remember the dot
|
||||
* René Kijewski
|
||||
* Reza
|
||||
* rgcjonas
|
||||
* Ricordisamoa
|
||||
* rillke
|
||||
* River Tarnell
|
||||
* Roan Kattouw
|
||||
* Rob Church
|
||||
* Rob Lanphier
|
||||
* Rob Moen
|
||||
* Robert Hoenig
|
||||
* Robert Leverington
|
||||
* Robert Rohde
|
||||
* Robert Stojnić
|
||||
* Robert Treat
|
||||
* Robert Vogel
|
||||
* Robin Pepermans
|
||||
* robinhood701
|
||||
* RockMFR
|
||||
* Rohan
|
||||
* Roman Nosov
|
||||
* Roman Tsukanov
|
||||
* Rotem Liss
|
||||
* Rowan Collins
|
||||
* Russ Nelson
|
||||
* Russell Blau
|
||||
* Rusty Burchfield
|
||||
* Ruud Koot
|
||||
* Ryan Bies
|
||||
* Ryan Finnie
|
||||
* Ryan Kaldari
|
||||
* Ryan Lane
|
||||
* Ryan Schmidt
|
||||
* S Page
|
||||
* Salvatore Ingala
|
||||
* Sam Reed
|
||||
* Sam Smith
|
||||
* Santhosh Thottingal
|
||||
* Schnark
|
||||
* Scimonster
|
||||
* scnd
|
||||
* Scott Colcord
|
||||
* se4598
|
||||
* Sean Colombo
|
||||
* Sean Pringle
|
||||
* Seb35
|
||||
* Sebastian Brückner
|
||||
* Sébastien Santoro
|
||||
* Sergio Santoro
|
||||
* Sethakill
|
||||
* Shahyar
|
||||
* Shane Gibbons
|
||||
* Shane King
|
||||
* Shinjiman
|
||||
* shirayuki
|
||||
* Sidhant Gupta
|
||||
* Siebrand Mazeland
|
||||
* Simon Walker
|
||||
* Smriti Singh
|
||||
* Solitarius
|
||||
* Sorawee Porncharoenwase
|
||||
* Søren Løvborg
|
||||
* Southparkfan
|
||||
* Soxred93
|
||||
* SQL
|
||||
* Srikanth Lakshmanan
|
||||
* Stanislav Malyshev
|
||||
* Stefano Codari
|
||||
* Steinsplitter
|
||||
* Stephan Gambke
|
||||
* Stephan Muggli
|
||||
* Stephane Bisson
|
||||
* Stephen Liang
|
||||
* Steve Sanbeg
|
||||
* Steven Roddis
|
||||
* Str4nd
|
||||
* Subramanya Sastry
|
||||
* Sumit Asthana
|
||||
* svip
|
||||
* Swalling
|
||||
* Szymon Świerkosz
|
||||
* T.D. Corell
|
||||
* Tarquin
|
||||
* The Discoverer
|
||||
* The Evil IP address
|
||||
* theopolisme
|
||||
* Thiemo Mättig (WMDE)
|
||||
* This, that and the other
|
||||
* tholam
|
||||
* Thomas Arrow
|
||||
* Thomas Bleher
|
||||
* Thomas Dalton
|
||||
* Thomas Gries
|
||||
* ThomasV
|
||||
* Tim Hollmann
|
||||
* Tim Landscheidt
|
||||
* Tim Laqua
|
||||
* Tim Starling
|
||||
* Timo Tijhof
|
||||
* Tina Johnson
|
||||
* Tisane
|
||||
* tjlsangria
|
||||
* Tjones
|
||||
* TK-999
|
||||
* Tobias Gritschacher
|
||||
* Tom Arrow
|
||||
* Tom Gilder
|
||||
* Tom Maaswinkel
|
||||
* Tomasz Finc
|
||||
* Tomasz W. Kozlowski
|
||||
* Tomasz Wegrzanowski
|
||||
* tomek
|
||||
* Tony Thomas
|
||||
* Tpt
|
||||
* Trevor Parscal
|
||||
* TyA
|
||||
* Tychay
|
||||
* Tyler Anthony Romeo
|
||||
* Tyler Cipriani
|
||||
* Tyler Romeo
|
||||
* U-REDMOND\emadelw
|
||||
* UltrasonicNXT
|
||||
* Umherirrender
|
||||
* utkarsh95
|
||||
* Van de Bugger
|
||||
* Viačeslav
|
||||
* Victor Porton
|
||||
* Victor Vasiliev
|
||||
* victorbarbu
|
||||
* Ville Stadista
|
||||
* vishnu
|
||||
* Vitaliy Filippov
|
||||
* Vivek Ghaisas
|
||||
* vlakoff
|
||||
* Volker E
|
||||
* Waldir Pimenta
|
||||
* wctaiwan
|
||||
* Wikinaut
|
||||
* Wil Mahan
|
||||
* William Demchick
|
||||
* withoutaname
|
||||
* WMDE-Fisch
|
||||
* X!
|
||||
* XP1
|
||||
* Yaron Koren
|
||||
* Yaroslav Melnychuk
|
||||
* Yesid Carrillo
|
||||
* Yogesh K S
|
||||
* Yongmin Hong
|
||||
* yoonghm
|
||||
* Yuri Astrakhan
|
||||
* Yusuke Matsubara
|
||||
* Yuvi Panda
|
||||
* Zachary Hauri
|
||||
* Zak Greant
|
||||
* Željko Filipin
|
||||
* Zhaofeng Li
|
||||
* Zhengzhu Feng
|
||||
* Zppix
|
||||
* محمد شعیب
|
||||
<!-- END CONTRIBUTOR LIST -->
|
||||
|
||||
== Translators ==
|
||||
|
||||
|
|
2
FAQ
2
FAQ
|
@ -1,2 +1,2 @@
|
|||
The MediaWiki FAQ can be found at:
|
||||
https://www.mediawiki.org/wiki/Manual:FAQ
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ
|
32
Gemfile.lock
32
Gemfile.lock
|
@ -17,16 +17,18 @@ GEM
|
|||
faker (>= 1.1.2)
|
||||
yml_reader (>= 0.6)
|
||||
diff-lcs (1.2.5)
|
||||
domain_name (0.5.20160310)
|
||||
domain_name (0.5.20160615)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
faker (1.6.3)
|
||||
faker (1.6.6)
|
||||
i18n (~> 0.5)
|
||||
faraday (0.9.2)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-cookie_jar (0.0.6)
|
||||
faraday (>= 0.7.4)
|
||||
http-cookie (~> 1.0.0)
|
||||
ffi (1.9.10)
|
||||
faraday_middleware (0.10.0)
|
||||
faraday (>= 0.7.4, < 0.10)
|
||||
ffi (1.9.14)
|
||||
gherkin (2.12.2)
|
||||
multi_json (~> 1.3)
|
||||
headless (2.2.3)
|
||||
|
@ -34,26 +36,27 @@ GEM
|
|||
domain_name (~> 0.5)
|
||||
i18n (0.7.0)
|
||||
json (1.8.3)
|
||||
mediawiki_api (0.5.0)
|
||||
mediawiki_api (0.7.0)
|
||||
faraday (~> 0.9, >= 0.9.0)
|
||||
faraday-cookie_jar (~> 0.0, >= 0.0.6)
|
||||
mediawiki_selenium (1.7.0)
|
||||
faraday_middleware (~> 0.10, >= 0.10.0)
|
||||
mediawiki_selenium (1.7.2)
|
||||
cucumber (~> 1.3, >= 1.3.20)
|
||||
headless (~> 2.0, >= 2.1.0)
|
||||
json (~> 1.8, >= 1.8.1)
|
||||
mediawiki_api (~> 0.5, >= 0.5.0)
|
||||
mediawiki_api (~> 0.7, >= 0.7.0)
|
||||
page-object (~> 1.0)
|
||||
rest-client (~> 1.6, >= 1.6.7)
|
||||
rspec-core (~> 2.14, >= 2.14.4)
|
||||
rspec-expectations (~> 2.14, >= 2.14.4)
|
||||
syntax (~> 1.2, >= 1.2.0)
|
||||
thor (~> 0.19, >= 0.19.1)
|
||||
mime-types (2.99.1)
|
||||
multi_json (1.11.3)
|
||||
mime-types (2.99.2)
|
||||
multi_json (1.12.1)
|
||||
multi_test (0.1.2)
|
||||
multipart-post (2.0.0)
|
||||
netrc (0.11.0)
|
||||
page-object (1.1.1)
|
||||
page-object (1.2.0)
|
||||
page_navigation (>= 0.9)
|
||||
selenium-webdriver (>= 2.44.0)
|
||||
watir-webdriver (>= 0.6.11)
|
||||
|
@ -79,16 +82,16 @@ GEM
|
|||
ruby-progressbar (~> 1.4)
|
||||
ruby-progressbar (1.7.5)
|
||||
rubyzip (1.2.0)
|
||||
selenium-webdriver (2.53.0)
|
||||
selenium-webdriver (2.53.4)
|
||||
childprocess (~> 0.5)
|
||||
rubyzip (~> 1.0)
|
||||
websocket (~> 1.0)
|
||||
syntax (1.2.0)
|
||||
syntax (1.2.1)
|
||||
thor (0.19.1)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.7.2)
|
||||
watir-webdriver (0.9.1)
|
||||
watir-webdriver (0.9.3)
|
||||
selenium-webdriver (>= 2.46.2)
|
||||
websocket (1.2.3)
|
||||
yml_reader (0.7)
|
||||
|
@ -97,9 +100,6 @@ PLATFORMS
|
|||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
mediawiki_selenium (~> 1.7)
|
||||
mediawiki_selenium (~> 1.7, >= 1.7.2)
|
||||
rake (~> 11.1, >= 11.1.1)
|
||||
rubocop (~> 0.32.1)
|
||||
|
||||
BUNDLED WITH
|
||||
1.10.6
|
||||
|
|
11
Gruntfile.js
11
Gruntfile.js
|
@ -2,6 +2,7 @@
|
|||
module.exports = function ( grunt ) {
|
||||
grunt.loadNpmTasks( 'grunt-contrib-copy' );
|
||||
grunt.loadNpmTasks( 'grunt-contrib-jshint' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
grunt.loadNpmTasks( 'grunt-contrib-watch' );
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-jscs' );
|
||||
|
@ -39,9 +40,15 @@ module.exports = function ( grunt ) {
|
|||
api: 'includes/api/i18n/',
|
||||
installer: 'includes/installer/i18n/'
|
||||
},
|
||||
stylelint: {
|
||||
options: {
|
||||
syntax: 'less'
|
||||
},
|
||||
src: '{resources/src/*,mw-config/**}/*.{css,less}'
|
||||
},
|
||||
watch: {
|
||||
files: [
|
||||
'.js*',
|
||||
'.{stylelintrc,jscsrc,jshintignore,jshintrc}',
|
||||
'**/*',
|
||||
'!{docs,extensions,node_modules,skins,vendor}/**'
|
||||
],
|
||||
|
@ -96,7 +103,7 @@ module.exports = function ( grunt ) {
|
|||
return !!( process.env.MW_SERVER && process.env.MW_SCRIPT_PATH );
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'lint', [ 'jshint', 'jscs', 'jsonlint', 'banana' ] );
|
||||
grunt.registerTask( 'lint', [ 'jshint', 'jscs', 'jsonlint', 'banana', 'stylelint' ] );
|
||||
grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] );
|
||||
|
||||
grunt.registerTask( 'test', [ 'lint' ] );
|
||||
|
|
595
HISTORY
595
HISTORY
|
@ -1,4 +1,587 @@
|
|||
Change notes from older releases. For current info see RELEASE-NOTES-1.27.
|
||||
Change notes from older releases. For current info see RELEASE-NOTES-1.28.
|
||||
|
||||
= MediaWiki 1.27 =
|
||||
|
||||
== MediaWiki 1.27.0 ==
|
||||
|
||||
=== PHP version requirement in 1.27 ===
|
||||
As of 1.27, MediaWiki now requires PHP 5.5.9 or higher (see Compatibility
|
||||
section). Additionally, the following PHP extensions are required:
|
||||
* ctype
|
||||
* iconv
|
||||
* json
|
||||
* mbstring (new requirement in 1.27)
|
||||
* xml
|
||||
The following PHP extensions are strongly recommended:
|
||||
* openssl
|
||||
|
||||
=== Configuration changes in 1.27 ===
|
||||
* $wgAllowMicrodataAttributes and $wgAllowRdfaAttributes were removed,
|
||||
now always enabled. If you use RDFa on your wiki, you now have to explicitly
|
||||
set $wgHtml5Version to 'HTML+RDFa 1.0' or 'XHTML+RDFa 1.0'.
|
||||
* $wgUseLinkNamespaceDBFields was removed.
|
||||
* Deprecated $wgResourceLoaderMinifierStatementsOnOwnLine and
|
||||
$wgResourceLoaderMinifierMaxLineLength, because there was little value in
|
||||
making the behavior configurable. The default values (`false` for the former,
|
||||
1000 for the latter) are now hard-coded.
|
||||
* $wgDebugDumpSqlLength was removed (deprecated in 1.24).
|
||||
* $wgDebugDBTransactions was removed (deprecated in 1.20).
|
||||
* $wgUseXVO has been removed, as it provides functionality only used by
|
||||
custom Wikimedia patches against Squid 2.x that probably noone uses in
|
||||
production anymore. There is now $wgUseKeyHeader that provides similar
|
||||
functionality but instead of the MediaWiki-specific X-Vary-Options header,
|
||||
uses the draft Key header standard.
|
||||
* $wgScriptExtension (and support for '.php5' entry points) was removed. See the
|
||||
deprecation notice in the release notes for version 1.25 for advice on how to
|
||||
preserve support for '.php5' entry points via URL rewriting.
|
||||
* Password handling via the User object has been deprecated and partially
|
||||
removed, pending the future introduction of AuthManager. In particular:
|
||||
** expirePassword(), getPasswordExpireDate(), resetPasswordExpiration(), and
|
||||
getPasswordExpired() have been removed. They were unused outside of core.
|
||||
** The mPassword, mNewpassword, mNewpassTime, and mPasswordExpires fields are
|
||||
now private and will be removed in the future.
|
||||
** The getPassword() and getTemporaryPassword() methods now throw
|
||||
BadMethodCallException and will be removed in the future.
|
||||
** The ability to pass 'password' and 'newpassword' to createNew() has been
|
||||
removed. The only users of it seem to have been using it to set invalid
|
||||
passwords, and so shouldn't be greatly affected.
|
||||
** setPassword(), setInternalPassword(), and setNewpassword() have been
|
||||
deprecated, pending the introduction of AuthManager.
|
||||
** User::randomPassword() is deprecated in favor of a new method
|
||||
PasswordFactory::generateRandomPasswordString()
|
||||
** User::getPasswordFactory() is deprecated, callers should just create a
|
||||
PasswordFactory themselves.
|
||||
** A new constructor, User::newSystemUser(), has been added to simplify the
|
||||
creation of passwordless "system" users for logged actions.
|
||||
* $wgMaxSquidPurgeTitles was removed.
|
||||
* $wgAjaxWatch was removed. This is now enabled by default.
|
||||
* $wgUseInstantCommons now hotlinks Commons images by default instead of
|
||||
downloading originals and thumbnailing them locally. This allows wikis to save
|
||||
on CPU and bandwidth while reducing time to first byte for pages, even without
|
||||
a thumbnail handler. See $wgForeignFileRepos documentation for tweaks.
|
||||
* (T27397) WebP is enabled by default as an uploadable filetype.
|
||||
* (T48998) $wgArticlePath must now be either a full url, or start with a "/".
|
||||
* $wgRateLimitLog was removed; use $wgDebugLogGroups['ratelimit'] instead.
|
||||
* Deprecated API formats dbg, txt, and yaml have been removed.
|
||||
* CLDRPluralRule* classes have been replaced with
|
||||
wikimedia/cldr-plural-rule-parser.
|
||||
* Removed $wgProfilePerHost, $wgUDPProfilerHost, $wgUDPProfilerPort,
|
||||
$wgUDPProfilerFormatString, $wgStatsMethod, $wgAggregateStatsID,
|
||||
$wgStatsFormatString, and $wgProfileCallTree (deprecated since 1.20).
|
||||
* For proper operation of LocalIdLookup with shared user tables, ensure that
|
||||
$wgSharedDB and $wgSharedTables are properly set even on the "central" wiki
|
||||
that all others are sharing from and that $wgLocalDatabases is set to the
|
||||
full list of sharing wikis on all those wikis.
|
||||
* Massive overhaul to session handling:
|
||||
** $wgSessionsInObjectCache is no longer supported and must be true, due to
|
||||
MediaWiki\Session\SessionManager. $wgSessionHandler is similarly no longer
|
||||
used.
|
||||
** ObjectCacheSessionHandler is removed, replaced with
|
||||
MediaWiki\Session\PhpSessionHandler.
|
||||
** PHP session handling in general ($_SESSION, session_id(), and so on) is
|
||||
deprecated. Use MediaWiki\Session\SessionManager instead. A new config
|
||||
variable, $wgPHPSessionHandling, is available to cause use of $_SESSION to
|
||||
issue a deprecation warning or to cause most PHP session handling to throw
|
||||
exceptions.
|
||||
** Deprecated UserSetCookies hook. Session-handling extensions should generally
|
||||
be creating a custom subclass of CookieSessionProvider. Other extensions
|
||||
messing with cookies can no longer count on user data being saved in cookies
|
||||
versus other methods.
|
||||
** Deprecated UserLoadFromSession hook, extensions should create a
|
||||
MediaWiki\Session\SessionProvider.
|
||||
** The User cannot be loaded from session until after Setup.php completes.
|
||||
Attempts to do so will be ignored and the User will remain unloaded.
|
||||
** CSRF tokens may be fetched from the MediaWiki\Session\Session, which uses
|
||||
the MediaWiki\Session\Token class.
|
||||
* MediaWiki will now auto-create users as necessary, removing the need for
|
||||
extensions to do so. An 'autocreateaccount' right is added to allow
|
||||
auto-creation when 'createaccount' is not granted to all users.
|
||||
* Deprecated AuthPluginAutoCreate hook in favor of LocalUserCreated.
|
||||
* Most cookie-handling methods in User are deprecated.
|
||||
* $wgAllowAsyncCopyUploads and $CopyUploadAsyncTimeout were removed. This was an
|
||||
experimental feature that has never worked.
|
||||
* Login and createaccount tokens now vary by timestamp.
|
||||
* LoginForm::getLoginToken() and LoginForm::getCreateaccountToken()
|
||||
return a MediaWiki\Session\Token, and tokens must be checked using that
|
||||
class's methods.
|
||||
* $wgEnotifUseJobQ was removed and the job queue is always used.
|
||||
* The functionality of the ApiSandbox extension has been merged into core. The
|
||||
extension should no longer be used.
|
||||
* $wgPreloadJavaScriptMwUtil was removed (deprecated in 1.26).
|
||||
Extensions, skins, gadgets and scripts that use the mediawiki.util module must
|
||||
express a dependency on it.
|
||||
* $wgIncludeLegacyJavaScript, deprecated in MediaWiki 1.26, now defaults false.
|
||||
Extensions, skins, gadgets and scripts that need the mediawiki.legacy.wikibits
|
||||
module should express a dependency on it.
|
||||
* Removed configuration option $wgCopyrightIcon (deprecated since 1.18). Use
|
||||
$wgFooterIcons['copyright']['copyright'] instead.
|
||||
* If the openssl and mcrypt PHP extensions are both unavailable, secure
|
||||
session storage (used for login) will raise an exception. This exception may
|
||||
be bypassed by setting $wgSessionInsecureSecrets = true.
|
||||
* Massive overhaul to authentication:
|
||||
** AuthPlugin and AuthPluginUser are deprecated.
|
||||
** LoginForm and associated templates are deprecated. Extensions which called
|
||||
static LoginForm methods should be converted into authentication providers.
|
||||
** The following hooks are deprecated:
|
||||
*** AbortAutoAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** AbortLogin (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** AbortNewAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** AddNewAccount (use LocalUserCreated instead)
|
||||
*** AuthPluginSetup (create a MediaWiki\Auth\PrimaryAuthenticationProvider instead)
|
||||
*** ChangePasswordForm (use AuthChangeFormFields instead, or security levels)
|
||||
*** LoginUserMigrated (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** UserCreateForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
|
||||
*** UserLoginForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
|
||||
** The following hooks are removed:
|
||||
*** AbortChangePassword
|
||||
*** LoginPasswordResetMessage
|
||||
*** PrefsPasswordAudit
|
||||
** The UserLoginComplete hook will no longer be called for all logins, only for
|
||||
those via the web UI. Use UserLoggedIn if you need to do something on all
|
||||
logins.
|
||||
** $wgRequirePasswordforEmailChange is removed.
|
||||
|
||||
=== New features in 1.27 ===
|
||||
* $wgDataCenterUpdateStickTTL was also added. This decides how long a user
|
||||
sticks to the primary DC (via cookies) after they make changes to the site.
|
||||
* Added a new hook, 'UserMailerTransformContent', to transform the contents
|
||||
of an email. This is similar to the EmailUser hook but applies to all mail
|
||||
sent via UserMailer.
|
||||
* Added a new hook, 'UserMailerTransformMessage', to transform the contents
|
||||
of an emai after MIME encoding.
|
||||
* Added a new hook, 'UserMailerSplitTo', to control which users have to be
|
||||
emailed separately (ie. there is a single address in the To: field) so
|
||||
user-specific changes to the email can be applied safely.
|
||||
* $wgCdnMaxageLagged was added, which limits the CDN cache TTL
|
||||
when any load balancer uses a DB that is lagged beyond the 'max lag'
|
||||
setting in the relevant section of $wgLBFactoryConf.
|
||||
* User::newSystemUser() may be used to simplify the creation of passwordless
|
||||
"system" users for logged actions from scripts and extensions.
|
||||
* Extensions can now return detailed error information via the API when
|
||||
preventing user actions using 'getUserPermissionsErrors' and similar hooks
|
||||
by using ApiMessage instances instead of strings for the $result value.
|
||||
* $wgAPIMaxLagThreshold was added to limit bot changes when databases lag
|
||||
becomes too high.
|
||||
* Skins and extensions can now use FlexBox mixins (.flex-display(@display: flex)
|
||||
and .flex(@grow: 1, @shrink: 1, @width: auto, @order: 1)) in Less to create
|
||||
cross-browser-compatible FlexBox rules. Users will still need to add fallback
|
||||
float rules or the like for compatibility with IE9- separately.
|
||||
* Added MWTimestamp::getTimezoneString() which returns the localized timezone
|
||||
string, if available. To localize this string, see the comments of
|
||||
$wgLocaltimezone in includes/DefaultSettings.php.
|
||||
* Added CentralIdLookup, a service that allows extensions needing a concept of
|
||||
"central" users to get that without having to know about specific central
|
||||
authentication extensions.
|
||||
* $wgMaxUserDBWriteDuration added to limit huge user-generated transactions.
|
||||
Regular web request transactions that takes longer than this are aborted.
|
||||
* Added a new hook, 'TitleMoveCompleting', which runs before a page move is
|
||||
committed.
|
||||
* $wgCdnReboundPurgeDelay was added to provide secondary delayed purges of URLs
|
||||
from CDN to mitigate DB replication lag and WAN cache purge lag.
|
||||
* (T49162) Installer will default to setting CACHE_ACCEL as the main cache type
|
||||
if it is available.
|
||||
* It is now possible to patrol file uploads (both for new files and new versions
|
||||
of existing files). Special:NewFiles has gained an option to filter by patrol
|
||||
status. This functionality can be disabled using $wgUseFilePatrol.
|
||||
* MediaWiki\Session infrastructure allows for easier use of session mechanisms
|
||||
other than the usual cookies.
|
||||
** SessionMetadata and SessionCheckInfo hooks allow for setting and checking
|
||||
custom session metadata.
|
||||
* Added MWGrants and associated configuration settings $wgGrantPermissions and
|
||||
$wgGrantPermissionGroups to hold configuration for authentication features
|
||||
such as OAuth that want to allow restricting the user rights a user may make
|
||||
use of.
|
||||
** If you're already using the OAuth extension, these new variables are
|
||||
identical to (and will replace) $wgMWOAuthGrantPermissions and
|
||||
$wgMWOAuthGrantPermissionGroups.
|
||||
* Added MWRestrictions as a class to check restrictions on a WebRequest, e.g.
|
||||
to assert that the request comes from a particular IP range.
|
||||
* Added bot passwords, a rights-restricted login mechanism for API-using bots.
|
||||
* Whitelisted the following HTML attributes for all elements in wikitext:
|
||||
aria-describedby, aria-flowto, aria-label, aria-labelledby, aria-owns.
|
||||
* Removed "presentation" restriction on the HTML role attribute in wikitext.
|
||||
All values are now allowed for the role attribute.
|
||||
* $wgContentHandlers now also supports callbacks to create an instance of the
|
||||
appropriate ContentHandler subclass.
|
||||
* Added $wgAuthenticationTokenVersion, which if non-null prevents the
|
||||
user_token database field from being exposed in cookies. Setting this would
|
||||
be a good idea, but will log out all current sessions.
|
||||
* $wgEventRelayerConfig was added, for managing PubSub event relay configuration,
|
||||
specifically for reliable CDN url purges.
|
||||
* Requests have unique IDs, equal to the UNIQUE_ID environment variable (when
|
||||
MediaWiki is behind Apache+mod_unique_id or something similar) or a randomly-
|
||||
generated 24-character string. This request ID is used to annotate log records
|
||||
and error messages. It is available client-side via mw.config.get( 'wgRequestId' ).
|
||||
The request ID supplants exception IDs. Accordingly, MWExceptionHandler::getLogId()
|
||||
is deprecated.
|
||||
* (T33313) Add a preference for watching uploads by default, also applies
|
||||
to API-based upload tools.
|
||||
* $wgJpegPixelFormat was added to override chroma subsampling for JPEG image
|
||||
thumbnails created via ImageMagick. Defaults to 'yuv420', providing bandwidth
|
||||
savings versus the previous behavior on many files.
|
||||
* MediaWiki\Auth infrastructure (called "AuthManager") allows for more flexible
|
||||
configuration of multiple authentication pieces that was possible with
|
||||
AuthPlugin. For example, it's now easy to plug in second-factor
|
||||
authentication, or add additional checks to the login process, or to support
|
||||
multiple login methods at once, or to support non-password-based login methods.
|
||||
** Providers are configured via the global setting $wgAuthManagerConfig.
|
||||
** A global, $wgDisableAuthManager, is temporarily available to disable
|
||||
AuthManager until extensions are ready to support it.
|
||||
** New hook, AuthChangeFormFields, to adjust the form fields on
|
||||
AuthManager-related special pages.
|
||||
** New hook, AuthManagerLoginAuthenticateAudit, for additional logging of
|
||||
AuthManager-related authentication requests.
|
||||
** New hook, ChangeAuthenticationDataAudit, for additional logging of
|
||||
AuthManager-related authentication data changes.
|
||||
** New hook, SecuritySensitiveOperationStatus, to work with the new mechanism
|
||||
for requiring a recent login before taking security-sensitive operations
|
||||
like changing a password.
|
||||
** Two new globals, $wgChangeCredentialsBlacklist and $wgRemoveCredentialsBlacklist
|
||||
can be used to prevent the web UI and the API changing certain authentication data.
|
||||
* The file upload dialog (available if you install WikiEditor or VisualEditor)
|
||||
can now be configured using $wgUploadDialog.
|
||||
|
||||
=== External library changes in 1.27 ===
|
||||
|
||||
==== Upgraded external libraries ====
|
||||
* Updated oojs/oojs-ui from v0.12.12 to v0.13.3.
|
||||
* Updated composer/semver from v1.0.0 to v1.2.0.
|
||||
* Updated liuggio/statsd-php-client to 1.0.18.
|
||||
* Updated QUnit from v1.18.0 to v1.22.0.
|
||||
|
||||
==== New external libraries ====
|
||||
* Added wikimedia/base-convert v1.0.1.
|
||||
* Added wikimedia/cldr-plural-rule-parser v1.0.0.
|
||||
* Added wikimedia/relpath v1.0.3.
|
||||
* Added wikimedia/running-stat v1.1.0.
|
||||
* Added wikimedia/php-session-serializer v1.0.3.
|
||||
|
||||
==== Removed and replaced external libraries ====
|
||||
|
||||
=== Bug fixes in 1.27 ===
|
||||
* Special:Upload will now display correct maximum allowed file size when running
|
||||
under HHVM (T116347).
|
||||
* (T54077) The APIEditBeforeSave hook will once again give only the content of
|
||||
the section being edited, rather than the whole revision. This reverts the
|
||||
change made in MediaWiki 1.22.
|
||||
|
||||
=== Action API changes in 1.27 ===
|
||||
* Added list=allrevisions.
|
||||
* generator=recentchanges now has the option to generate revids.
|
||||
* ApiPageSet::setRedirectMergePolicy() was added. This allows generator
|
||||
modules to define how generator data for a redirect source gets merged
|
||||
into the redirect destination.
|
||||
* prop=imageinfo&iiprop=uploadwarning will no longer include the possibility of
|
||||
"was-deleted" warning.
|
||||
* Added difftotextpst to query=revisions which preforms a pre-save transform on
|
||||
the text before diffing it.
|
||||
* Deprecated formats dbg, txt, and yaml have been removed.
|
||||
* (T47988) The protect log event details now use new-style formatting.
|
||||
* The following response properties from action=login are deprecated, and may
|
||||
be removed in the future: lgtoken, cookieprefix, sessionid. Clients should
|
||||
handle cookies to properly manage session state.
|
||||
* action=login transparently allows login using bot passwords. Clients should
|
||||
merely need to change the username and password used after setting up a bot
|
||||
password.
|
||||
* action=upload no longer understands statuskey, asyncdownload or leavemessage.
|
||||
* Several changes when $wgDisableAuthManager is false:
|
||||
** action=login is deprecated for uses other than bot passwords.
|
||||
** list=users can now indicate if a missing username is creatable.
|
||||
** action=createaccount is changed in a non-backwards-compatible manner.
|
||||
** Added action=query&meta=authmanagerinfo.
|
||||
** Added action=clientlogin to be used to log into the main account instead of
|
||||
action=login.
|
||||
** Added action=linkaccount.
|
||||
** Added action=unlinkaccount.
|
||||
** Added action=changeauthenticationdata.
|
||||
** Added action=removeauthenticationdata.
|
||||
** Added action=resetpassword.
|
||||
|
||||
=== Action API internal changes in 1.27 ===
|
||||
* ApiQueryORM removed.
|
||||
* The following classes have been removed:
|
||||
** ApiFormatDbg
|
||||
** ApiFormatTxt
|
||||
** ApiFormatYaml
|
||||
* ApiBase::addTokenProperties() was removed (deprecated since 1.24).
|
||||
* ApiBase::getFinalPossibleErrors() was removed (deprecated since 1.24).
|
||||
* ApiBase::getFinalResultProperties() was removed (deprecated since 1.24).
|
||||
* ApiBase::getRequireAtLeastOneParameterErrorMessages() was removed (deprecated since 1.24).
|
||||
* ApiBase::getPossibleErrors() was removed (deprecated since 1.24).
|
||||
* ApiBase::getRequireMaxOneParameterErrorMessages() was removed (deprecated since 1.24).
|
||||
* ApiBase::getRequireOnlyOneParameterErrorMessages() was removed (deprecated since 1.24).
|
||||
* ApiBase::getResultProperties() was removed (deprecated since 1.24).
|
||||
* ApiBase::getTitleOrPageIdErrorMessage() was removed (deprecated since 1.24).
|
||||
* ApiBase::parseErrors() was removed (deprecated since 1.24).
|
||||
* ApiQueryBase::titleToKey(), ApiQueryBase::keyToTitle() and
|
||||
ApiQueryBase::keyPartToTitle() all removed (deprecated since 1.24).
|
||||
* ApiQueryBase::checkRowCount() was removed (deprecated since 1.24).
|
||||
* ApiQueryBase::getDirectionDescription() was removed (deprecated since 1.25).
|
||||
* ApiQuery::getGenerators() was removed (deprecated since 1.21).
|
||||
* ApiQuery::getModules() was removed (deprecated since 1.21).
|
||||
* ApiQuery::getModuleType() was removed (deprecated since 1.21).
|
||||
* ApiQuery::setGeneratorContinue() was removed (deprecated since 1.24).
|
||||
* ApiMain::getModules() was removed (deprecated since 1.21).
|
||||
* ApiBase::getVersion() was removed (deprecated since 1.21).
|
||||
* ApiMain::getShowVersions() was removed (deprecated in 1.21).
|
||||
* ApiMain::addModule() was removed (deprecated in 1.21).
|
||||
* ApiMain::addFormat() was removed (deprecated in 1.21).
|
||||
* ApiMain::getFormats() was removed (deprecated in 1.21).
|
||||
* ApiPageSet::finishPageSetGeneration() was removed (deprecated in 1.21).
|
||||
* ApiCreateAccount is deprecated, and will be removed soon.
|
||||
|
||||
=== Languages updated in 1.27 ===
|
||||
|
||||
MediaWiki supports over 350 languages. Many localisations are updated
|
||||
regularly. Below only new and removed languages are listed, as well as
|
||||
changes to languages because of Phabricator reports.
|
||||
|
||||
* (T113688) Change default numerals from Gurmukhi to Arabic for Punjabi locale.
|
||||
* (T116020) Aliases of magic words in MessagesXx.php are sorted by usage.
|
||||
|
||||
=== Other changes in 1.27 ===
|
||||
* Added dependency injection (DI) infrastructure, see docs/injection.txt for details.
|
||||
It is planned to incrementally move MediaWiki code towards using DI, using the
|
||||
service locator (SL) pattern as a stepping stone.
|
||||
* ProfilerOutputUdp was removed. Note that there is a ProfilerOutputStats class.
|
||||
* WikiPage::doDeleteArticleReal() and WikiPage::doDeleteArticle() now
|
||||
ignore the 2nd and 3rd arguments (formerly $id and $commit).
|
||||
* Removed "loaderScripts" option from ResourceLoaderFileModule class.
|
||||
* Removed ORM-like wrapper added in 1.20.
|
||||
* LinkCache::getGoodLinks and LinkCache::getBadLinks were removed
|
||||
(deprecated in 1.26).
|
||||
* WikiPage::doQuickEdit() was removed (deprecated since 1.21).
|
||||
* Removed SiteObject and SiteArray classes (deprecated in 1.21).
|
||||
* MessageBlobStore::getInstance() was removed (deprecated since 1.25).
|
||||
* (T84937) Free external links ("autolinked" urls) will now be terminated
|
||||
by and HTML entity encodings of  , <, and >.
|
||||
* (T36948) The default file revert message's timestamp is now in
|
||||
$wgLocaltimezone, instead of UTC.
|
||||
* The default name of the 'suppress' group page has been changed from
|
||||
'Project:Oversight' to 'Project:Suppress'.
|
||||
* DatabaseBase::resultObject() is now protected (use outside Database classes
|
||||
not necessary since 1.11).
|
||||
* Calling ResourceLoaderFileModule::readStyleFiles() without a
|
||||
ResourceLoaderContext instance is deprecated.
|
||||
* ResourceLoader::getLessCompiler() now takes an optional parameter of
|
||||
additional LESS variables to set for the compiler.
|
||||
* wfBaseConvert() marked as deprecated, use Wikimedia\base_convert() directly
|
||||
instead.
|
||||
* Obsolete maintenance scripts clearCacheStats.php and showCacheStats.php
|
||||
were removed. The underlying data is sent to StatsD (see $wgStatsdServer).
|
||||
* Removed msg_resource_links database table and associated code.
|
||||
* Removed msg_resource database table and associated code.
|
||||
* Skin::getNamespaceNotice() was removed.
|
||||
* wfIsConfiguredProxy() was removed (deprecated since 1.24).
|
||||
* wfDebugTimer() was removed (deprecated since 1.25).
|
||||
* wfIsTrustedProxy() was removed (deprecated since 1.24).
|
||||
* wfGetIP() was removed (deprecated since 1.19).
|
||||
* MWHookException was removed.
|
||||
* OutputPage::appendSubtitle() was removed (deprecated since 1.19).
|
||||
* OutputPage::loginToUse() was removed (deprecated since 1.19).
|
||||
* Article::loadContent() was removed (deprecated since 1.19).
|
||||
* User::editToken() was removed (deprecated since 1.19).
|
||||
* Removed --force-normal option of dumpBackup.php, as it no longer served
|
||||
any useful purpose since 1.22.
|
||||
* The functions processOption() and processArgs() on the BackupDumper and
|
||||
TextPassDumper classes have been removed.
|
||||
* The maintenance/backupTextPass.inc file was deleted. You should include
|
||||
maintenance/dumpTextPass.php instead.
|
||||
* WikiPage::getUsedTemplates() was removed (deprecated since 1.19).
|
||||
* wfEmptyMsg() was removed (deprecated since 1.18).
|
||||
* OutputPage::permissionRequired() was removed (deprecated since 1.18).
|
||||
* OutputPage::blockedPage() was removed (deprecated since 1.18).
|
||||
* User::getSkin() was removed (deprecated since 1.18).
|
||||
* OutputPage::includeJQuery() was removed (deprecated since 1.17).
|
||||
* WikiPage::updateRestrictions() was removed (deprecated since 1.19).
|
||||
* WikiPage::testPreSaveTransform() was removed (deprecated since 1.19).
|
||||
* LogPage::logName() was removed (deprecated since 1.19).
|
||||
* LogPage::logHeader() was removed (deprecated since 1.19).
|
||||
* wfCheckLimits() was removed (deprecated since 1.24).
|
||||
* Linker::makeKnownLinkObj() was removed (deprecated since 1.16).
|
||||
* Linker::makeLinkObj() was removed (deprecated since 1.16).
|
||||
* wfMsgForContentNoTrans() was removed (deprecated since 1.18).
|
||||
* ChangesList::usePatrol was removed (deprecated since 1.22).
|
||||
* wfMsgNoTrans() was removed (deprecated since 1.18).
|
||||
* Linker::makeImageLink2 was removed (deprecated since 1.20).
|
||||
* Title::userIsWatching() was removed (deprecated since 1.20).
|
||||
* Removed WaitForSlave maintenance script; use SELECT MASTER_POS_WAIT()
|
||||
database function directly instead.
|
||||
* wfMsg() was removed (deprecated since 1.18).
|
||||
* wfMsgForContent() was removed (deprecated since 1.18).
|
||||
* wfMsgReal() was removed (deprecated since 1.18).
|
||||
* wfMsgGetKey() was removed (deprecated since 1.18).
|
||||
* wfMsgHtml() was removed (deprecated since 1.18).
|
||||
* wfMsgWikiHtml() was removed (deprecated since 1.18).
|
||||
* wfMsgExt() was removed (deprecated since 1.18).
|
||||
* Language::armourMath() was removed (deprecated since 1.22).
|
||||
* LanguageConverter::armourMath() was removed (deprecated since 1.22).
|
||||
* FakeConverter::armourMath() was removed (deprecated since 1.22).
|
||||
* The unused jquery.validate ResourceLoader module was removed.
|
||||
* FileRepo::getRootUrl() was removed (deprecated since 1.20).
|
||||
* User::generateToken() was removed (deprecated since 1.20).
|
||||
* WikiPage::getRawText() was removed (deprecated since 1.21).
|
||||
* ParserOutput::hasCustomDataUpdates() was removed (deprecated since 1.25).
|
||||
* ParserOutput::addSecondaryDataUpdate() was removed (deprecated since 1.25).
|
||||
* ParserOutput::getSecondaryDataUpdates() was removed (deprecated since 1.25).
|
||||
* Gallery images with multiple caption pipes no longer concatenate them all
|
||||
together but instead pick the final one, similar to image syntax.
|
||||
* XML-like parser tags (such as <gallery>), when unclosed, will be left unparsed
|
||||
rather than consume everything until the end of the page.
|
||||
* New maintenance script resetUserEmail.php allows sysadmins to reset user emails in case
|
||||
a user forgot password/account was stolen.
|
||||
* wfCheckEntropy() was removed (deprecated in 1.27).
|
||||
* Browser support for Internet Explorer 8 lowered from Grade A to Grade C.
|
||||
* ContentHandler::supportsCategories method added. Default is true.
|
||||
CategoryMembershipChangeJob updates are skipped for content that
|
||||
does not support categories.
|
||||
* wikidiff difference engine is no longer supported, anyone still using it are encouraged
|
||||
to upgrade to wikidiff2 which is actively maintained and has better package availability.
|
||||
* Database logic was removed from WatchedItem and a WatchedItemStore was created:
|
||||
** WatchedItem::IGNORE_USER_RIGHTS and WatchedItem::CHECK_USER_RIGHTS were deprecated.
|
||||
User::IGNORE_USER_RIGHTS and User::CHECK_USER_RIGHTS were introduced.
|
||||
** WatchedItem::fromUserTitle was deprecated in favour of the constructor.
|
||||
** WatchedItem::resetNotificationTimestamp was deprecated.
|
||||
** WatchedItem::batchAddWatch was deprecated.
|
||||
** WatchedItem::addWatch was deprecated.
|
||||
** WatchedItem::removeWatch was deprecated.
|
||||
** WatchedItem::isWatched was deprecated.
|
||||
** WatchedItem::duplicateEntries was deprecated.
|
||||
** EmailNotification::updateWatchlistTimestamp was deprecated.
|
||||
** User::getWatchedItem was removed.
|
||||
* Unit tests don't work with external PHPUnit anymore, Composer is now the only supported
|
||||
way. Run `composer install` to install it and other dev dependencies to run unit tests.
|
||||
* wl_id field added to the watchlist table.
|
||||
* Revision::getRawText() was removed (deprecated since 1.21).
|
||||
* WikiPage::replaceSection() was removed (deprecated since 1.21).
|
||||
* Article::replaceSection() was removed (deprecated since 1.21).
|
||||
* Language::getLangObj() was removed (deprecated since 1.24).
|
||||
* Language::getLanguageName() was removed (deprecated since 1.20).
|
||||
* Language::getLanguageNames() was removed (deprecated since 1.20).
|
||||
* Language::getTranslatedLanguageNames() was removed (deprecated since 1.20).
|
||||
* Language::specialPage() was removed (deprecated since 1.24).
|
||||
* MediaWikiTestCase::assertException() was removed (deprecated since 1.22).
|
||||
* OutputPage::getHeadItems() was removed (deprecated since 1.24).
|
||||
* OutputPage::getScript() was removed (deprecated since 1.24).
|
||||
* OutputPage::out() was removed (deprecated since 1.22).
|
||||
* OutputPage::setAllowedModules() was removed (deprecated since 1.24).
|
||||
* UserrightsPage::makeGroupNameListForLog() was removed (deprecated since 1.21).
|
||||
* MediaWikiSite::newFromGlobalId() was removed (deprecated since 1.21).
|
||||
* Title::newFromRedirect() was removed (deprecated since 1.21).
|
||||
* Skin::commonPrintStylesheet() was removed (deprecated since 1.22).
|
||||
* Skin::getCommonStylePath() was removed (deprecated since 1.24).
|
||||
* Skin::newFromKey() was removed (deprecated since 1.24).
|
||||
* Skin::getUsableSkins() was removed (deprecated since 1.23).
|
||||
* LoadBalancer::pickRandom() was removed (deprecated in 1.21).
|
||||
* Article::getUndoText() and WikiPage::getUndoText were removed (deprecated since
|
||||
1.21).
|
||||
* DifferenceEngine::setText() was removed (deprecated in 1.21).
|
||||
* Title::newFromRedirectArray() was removed (deprecated in 1.21).
|
||||
* UserMailer::send() no longer accepts $replyto as the 5th argument and $contentType
|
||||
as the 6th. These must be passed in the options array now.
|
||||
* Title::newFromRedirectRecurse() was removed (deprecated in 1.21).
|
||||
* Skin::accesskey was removed (deprecated since 1.21).
|
||||
* Skin::blockLink was removed (deprecated since 1.21).
|
||||
* Skin::buildRollbackLink was removed (deprecated since 1.21).
|
||||
* Skin::emailLink was removed (deprecated since 1.21).
|
||||
* Skin::formatComment was removed (deprecated since 1.21).
|
||||
* Skin::formatHiddenCategories was removed (deprecated since 1.21).
|
||||
* Skin::formatLinksInComment was removed (deprecated since 1.21).
|
||||
* Skin::formatRevisionSize was removed (deprecated since 1.21).
|
||||
* Skin::formatSize was removed (deprecated since 1.21).
|
||||
* Skin::formatTemplates was removed (deprecated since 1.21).
|
||||
* Skin::generateTOC was removed (deprecated since 1.21).
|
||||
* Skin::getInternalLinkAttributes was removed (deprecated since 1.21).
|
||||
* Skin::getInternalLinkAttributesObj was removed (deprecated since 1.21).
|
||||
* Skin::getInterwikiLinkAttributes was removed (deprecated since 1.21).
|
||||
* Skin::getInvalidTitleDescription was removed (deprecated since 1.21).
|
||||
* Skin::getLinkColour was removed (deprecated since 1.21).
|
||||
* Skin::getRevDeleteLink was removed (deprecated since 1.21).
|
||||
* Skin::getRollbackEditCount was removed (deprecated since 1.21).
|
||||
* Skin::makeBrokenImageLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::makeCommentLink was removed (deprecated since 1.21).
|
||||
* Skin::makeExternalImage was removed (deprecated since 1.21).
|
||||
* Skin::makeExternalLink was removed (deprecated since 1.21).
|
||||
* Skin::makeHeadline was removed (deprecated since 1.21).
|
||||
* Skin::makeImageLink was removed (deprecated since 1.21).
|
||||
* Skin::makeMediaLinkFile was removed (deprecated since 1.21).
|
||||
* Skin::makeMediaLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::makeSelfLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::makeThumbLink2 was removed (deprecated since 1.21).
|
||||
* Skin::makeThumbLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::normaliseSpecialPage was removed (deprecated since 1.21).
|
||||
* Skin::normalizeSubpageLink was removed (deprecated since 1.21).
|
||||
* Skin::processResponsiveImages was removed (deprecated since 1.21).
|
||||
* Skin::revComment was removed (deprecated since 1.21).
|
||||
* Skin::revDeleteLink was removed (deprecated since 1.21).
|
||||
* Skin::revDeleteLinkDisabled was removed (deprecated since 1.21).
|
||||
* Skin::revUserLink was removed (deprecated since 1.21).
|
||||
* Skin::revUserTools was removed (deprecated since 1.21).
|
||||
* Skin::specialLink was removed (deprecated since 1.21).
|
||||
* Skin::splitTrail was removed (deprecated since 1.21).
|
||||
* Skin::titleAttrib was removed (deprecated since 1.21).
|
||||
* Skin::tocIndent was removed (deprecated since 1.21).
|
||||
* Skin::tocLine was removed (deprecated since 1.21).
|
||||
* Skin::tocLineEnd was removed (deprecated since 1.21).
|
||||
* Skin::tocList was removed (deprecated since 1.21).
|
||||
* Skin::tocUnindent was removed (deprecated since 1.21).
|
||||
* Skin::tooltip was removed (deprecated since 1.21).
|
||||
* Skin::tooltipAndAccesskeyAttribs was removed (deprecated since 1.21).
|
||||
* Skin::userTalkLink was removed (deprecated since 1.21).
|
||||
* Skin::userToolLinksRedContribs was removed (deprecated since 1.21).
|
||||
* wikidiff3 is now the default and only PHP diff engine. It provides improved diff
|
||||
performance on complex changes. $wgExternalDiffEngine = 'wikidiff3' therefore
|
||||
makes no difference now. Users are still recommended to use wikidiff2 if possible,
|
||||
though.
|
||||
* User::addNewUserLogEntry() was deprecated.
|
||||
* User::addNewUserLogEntryAutoCreate() was deprecated.
|
||||
* User::isPasswordReminderThrottled() was deprecated.
|
||||
* Bot-oriented parameters to Special:UserLogin (wpCookieCheck, wpSkipCookieCheck)
|
||||
were removed.
|
||||
* Installer can now be customized without patching MediaWiki code, see
|
||||
mw-config/overrides/README for details.
|
||||
|
||||
=== Compatibility ===
|
||||
|
||||
MediaWiki 1.27 requires PHP 5.5.9 or later. There is experimental support for
|
||||
HHVM 3.6.5 or later.
|
||||
|
||||
MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
|
||||
support for them is somewhat less mature. There is experimental support for
|
||||
Oracle and Microsoft SQL Server.
|
||||
|
||||
The supported versions are:
|
||||
|
||||
* MySQL 5.0.3 or later
|
||||
* PostgreSQL 8.3 or later
|
||||
* SQLite 3.3.7 or later
|
||||
* Oracle 9.0.1 or later
|
||||
* Microsoft SQL Server 2005 (9.00.1399)
|
||||
|
||||
=== Upgrading ===
|
||||
|
||||
1.27 has several database changes since 1.26, and will not work without schema
|
||||
updates. Note that due to changes to some very large tables like the revision
|
||||
table, the schema update may take quite long (minutes on a medium sized site,
|
||||
many hours on a large site).
|
||||
|
||||
If upgrading from before 1.11, and you are using a wiki as a commons
|
||||
repository, make sure that it is updated as well. Otherwise, errors may arise
|
||||
due to database schema changes.
|
||||
|
||||
If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
|
||||
new database fields are filled with data.
|
||||
|
||||
If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
|
||||
1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
|
||||
with MediaWiki 1.21.
|
||||
|
||||
Don't forget to always back up your database before upgrading!
|
||||
|
||||
See the file UPGRADE for more detailed upgrade instructions.
|
||||
|
||||
For notes on 1.26.x and older releases, see HISTORY.
|
||||
|
||||
|
||||
= MediaWiki 1.26 =
|
||||
|
||||
|
@ -418,8 +1001,8 @@ This is a bug fix release of the MediaWiki 1.25 branch.
|
|||
* Added a new hook, "ContentAlterParserOutput", to allow extensions to modify the
|
||||
parser output for a content object before links update.
|
||||
* (T37785) Enhanced recent changes and extended watchlist are now default.
|
||||
Documentation: https://meta.wikimedia.org/wiki/Help:Enhanced_recent_changes
|
||||
and https://www.mediawiki.org/wiki/Manual:$wgDefaultUserOptions.
|
||||
Documentation: https://meta.wikimedia.org/wiki/Special:MyLanguage/Help:Enhanced_recent_changes
|
||||
and https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgDefaultUserOptions.
|
||||
* (T69341) SVG images will no longer be base64-encoded when being embedded
|
||||
in CSS. This results in slight size increase before gzip compression (due to
|
||||
percent-encoding), but up to 20% decrease after it.
|
||||
|
@ -431,7 +1014,7 @@ This is a bug fix release of the MediaWiki 1.25 branch.
|
|||
- Basic wikitext syntax: <indicator name="foo">[[File:Foo.svg|20px]]</indicator>
|
||||
- Usage instructions: https://www.mediawiki.org/wiki/Help:Page_status_indicators
|
||||
- Adjusting custom skins to support indicators:
|
||||
https://www.mediawiki.org/wiki/Manual:Skinning#Page_status_indicators
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skinning#Page_status_indicators
|
||||
* Edit tokens may now be time-limited: passing a maximum age to
|
||||
User::matchEditToken will reject any older tokens.
|
||||
* The debug logging internals have been overhauled, and are now using the
|
||||
|
@ -504,7 +1087,7 @@ This is a bug fix release of the MediaWiki 1.25 branch.
|
|||
This library provides the interfaces set by the PSR-3 standard (http://www.php-fig.org/psr/psr-3/)
|
||||
which are used by MediaWiki internally via the
|
||||
MediaWiki\Logger\LoggerFactory class.
|
||||
See the structured logging RfC (https://www.mediawiki.org/wiki/Requests_for_comment/Structured_logging)
|
||||
See the structured logging RfC (https://www.mediawiki.org/wiki/Special:MyLanguage/Requests_for_comment/Structured_logging)
|
||||
for more background information.
|
||||
** cssjanus/cssjanus
|
||||
This library was formerly bundled with MediaWiki core and has been removed.
|
||||
|
@ -515,7 +1098,7 @@ This is a bug fix release of the MediaWiki 1.25 branch.
|
|||
** wikimedia/cdb
|
||||
This library was formerly a part of MediaWiki core, and has been moved into a separate library.
|
||||
It provides CDB functions which are used in the Interwiki and Localization caches.
|
||||
More information about the library can be found at https://www.mediawiki.org/wiki/CDB.
|
||||
More information about the library can be found at https://www.mediawiki.org/wiki/Special:MyLanguage/CDB.
|
||||
** liuggio/statsd-php-client
|
||||
This library provides a StatsD client API for logging application metrics to a remote server.
|
||||
|
||||
|
|
4
INSTALL
4
INSTALL
|
@ -21,7 +21,7 @@ If your PHP is configured as a CGI plug-in rather than an Apache module you may
|
|||
experience problems, as this configuration is not well tested.
|
||||
|
||||
Support for rendering mathematical formulas requires installing the Math extension,
|
||||
see https://www.mediawiki.org/wiki/Extension:Math
|
||||
see https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Math
|
||||
|
||||
Don't forget to check the RELEASE-NOTES file...
|
||||
|
||||
|
@ -30,7 +30,7 @@ Additional documentation is available online, which may include more detailed
|
|||
notes on particular operating systems and workarounds for difficult hosting
|
||||
environments:
|
||||
|
||||
https://www.mediawiki.org/wiki/Manual:Installation_guide
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Installation_guide
|
||||
|
||||
|
||||
******************* WARNING *******************
|
||||
|
|
8
README
8
README
|
@ -17,15 +17,15 @@ For system requirements, installation, and upgrade details, see the files
|
|||
RELEASE-NOTES, INSTALL, and UPGRADE.
|
||||
|
||||
* Ready to get started?
|
||||
** https://www.mediawiki.org/wiki/Download
|
||||
** https://www.mediawiki.org/wiki/Special:MyLanguage/Download
|
||||
* Looking for the technical manual?
|
||||
** https://www.mediawiki.org/wiki/Manual:Contents
|
||||
** https://www.mediawiki.org/wiki/Special:MyLangyage/Manual:Contents
|
||||
* Seeking help from a person?
|
||||
** https://www.mediawiki.org/wiki/Communication
|
||||
** https://www.mediawiki.org/wiki/Special:MyLanguage/Communication
|
||||
* Looking to file a bug report or a feature request?
|
||||
** https://bugs.mediawiki.org/
|
||||
* Interested in helping out?
|
||||
** https://www.mediawiki.org/wiki/How_to_contribute
|
||||
** https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute
|
||||
|
||||
MediaWiki is the result of global collaboration and cooperation. The CREDITS
|
||||
file lists technical contributors to the project. The COPYING file explains
|
||||
|
|
|
@ -1,623 +0,0 @@
|
|||
== MediaWiki 1.27.1 ==
|
||||
|
||||
This is a maintenance release of the MediaWiki 1.27 branch.
|
||||
|
||||
=== Changes since 1.27.0 ===
|
||||
* BREAKING CHANGE: $wgHTTPProxy is now *required* for all external requests
|
||||
made by MediaWiki via a proxy. Relying on the http_proxy environment
|
||||
variable is no longer supported.
|
||||
* (T139565) SECURITY: API: Generate head items in the context of the given title
|
||||
* (T137264) SECURITY: XSS in unclosed internal links
|
||||
* (T133147) SECURITY: Escape '<' and ']]>' in inline <style> blocks
|
||||
* (T133147) SECURITY: Require login to preview user CSS pages
|
||||
* (T132926) SECURITY: Do not allow undeleting a revision deleted file if it is
|
||||
the top file
|
||||
* (T129738) SECURITY: Make $wgBlockDisablesLogin also restrict logged in
|
||||
permissions
|
||||
* (T129738) SECURITY: Make blocks log users out if $wgBlockDisablesLogin is true
|
||||
* (T115333) SECURITY: Check read permission when loading page content in ApiParse
|
||||
* (T57548) Remove support for $wgWellFormedXml = false, all output is now well formed
|
||||
* (T139670) Move 'UserGetRights' call before application of Session::getAllowedUserRights()
|
||||
|
||||
== MediaWiki 1.27 ==
|
||||
|
||||
=== PHP version requirement ===
|
||||
As of 1.27, MediaWiki now requires PHP 5.5.9 or higher (see Compatibility
|
||||
section). Additionally, the following PHP extensions are required:
|
||||
* ctype
|
||||
* iconv
|
||||
* json
|
||||
* mbstring (new requirement in 1.27)
|
||||
* xml
|
||||
The following PHP extensions are strongly recommended:
|
||||
* openssl
|
||||
|
||||
=== Configuration changes in 1.27 ===
|
||||
* $wgAllowMicrodataAttributes and $wgAllowRdfaAttributes were removed,
|
||||
now always enabled. If you use RDFa on your wiki, you now have to explicitly
|
||||
set $wgHtml5Version to 'HTML+RDFa 1.0' or 'XHTML+RDFa 1.0'.
|
||||
* $wgUseLinkNamespaceDBFields was removed.
|
||||
* Deprecated $wgResourceLoaderMinifierStatementsOnOwnLine and
|
||||
$wgResourceLoaderMinifierMaxLineLength, because there was little value in
|
||||
making the behavior configurable. The default values (`false` for the former,
|
||||
1000 for the latter) are now hard-coded.
|
||||
* $wgDebugDumpSqlLength was removed (deprecated in 1.24).
|
||||
* $wgDebugDBTransactions was removed (deprecated in 1.20).
|
||||
* $wgUseXVO has been removed, as it provides functionality only used by
|
||||
custom Wikimedia patches against Squid 2.x that probably noone uses in
|
||||
production anymore. There is now $wgUseKeyHeader that provides similar
|
||||
functionality but instead of the MediaWiki-specific X-Vary-Options header,
|
||||
uses the draft Key header standard.
|
||||
* $wgScriptExtension (and support for '.php5' entry points) was removed. See the
|
||||
deprecation notice in the release notes for version 1.25 for advice on how to
|
||||
preserve support for '.php5' entry points via URL rewriting.
|
||||
* Password handling via the User object has been deprecated and partially
|
||||
removed, pending the future introduction of AuthManager. In particular:
|
||||
** expirePassword(), getPasswordExpireDate(), resetPasswordExpiration(), and
|
||||
getPasswordExpired() have been removed. They were unused outside of core.
|
||||
** The mPassword, mNewpassword, mNewpassTime, and mPasswordExpires fields are
|
||||
now private and will be removed in the future.
|
||||
** The getPassword() and getTemporaryPassword() methods now throw
|
||||
BadMethodCallException and will be removed in the future.
|
||||
** The ability to pass 'password' and 'newpassword' to createNew() has been
|
||||
removed. The only users of it seem to have been using it to set invalid
|
||||
passwords, and so shouldn't be greatly affected.
|
||||
** setPassword(), setInternalPassword(), and setNewpassword() have been
|
||||
deprecated, pending the introduction of AuthManager.
|
||||
** User::randomPassword() is deprecated in favor of a new method
|
||||
PasswordFactory::generateRandomPasswordString()
|
||||
** User::getPasswordFactory() is deprecated, callers should just create a
|
||||
PasswordFactory themselves.
|
||||
** A new constructor, User::newSystemUser(), has been added to simplify the
|
||||
creation of passwordless "system" users for logged actions.
|
||||
* $wgMaxSquidPurgeTitles was removed.
|
||||
* $wgAjaxWatch was removed. This is now enabled by default.
|
||||
* $wgUseInstantCommons now hotlinks Commons images by default instead of
|
||||
downloading originals and thumbnailing them locally. This allows wikis to save
|
||||
on CPU and bandwidth while reducing time to first byte for pages, even without
|
||||
a thumbnail handler. See $wgForeignFileRepos documentation for tweaks.
|
||||
* (T27397) WebP is enabled by default as an uploadable filetype.
|
||||
* (T48998) $wgArticlePath must now be either a full url, or start with a "/".
|
||||
* $wgRateLimitLog was removed; use $wgDebugLogGroups['ratelimit'] instead.
|
||||
* Deprecated API formats dbg, txt, and yaml have been removed.
|
||||
* CLDRPluralRule* classes have been replaced with
|
||||
wikimedia/cldr-plural-rule-parser.
|
||||
* Removed $wgProfilePerHost, $wgUDPProfilerHost, $wgUDPProfilerPort,
|
||||
$wgUDPProfilerFormatString, $wgStatsMethod, $wgAggregateStatsID,
|
||||
$wgStatsFormatString, and $wgProfileCallTree (deprecated since 1.20).
|
||||
* For proper operation of LocalIdLookup with shared user tables, ensure that
|
||||
$wgSharedDB and $wgSharedTables are properly set even on the "central" wiki
|
||||
that all others are sharing from and that $wgLocalDatabases is set to the
|
||||
full list of sharing wikis on all those wikis.
|
||||
* Massive overhaul to session handling:
|
||||
** $wgSessionsInObjectCache is no longer supported and must be true, due to
|
||||
MediaWiki\Session\SessionManager. $wgSessionHandler is similarly no longer
|
||||
used.
|
||||
** ObjectCacheSessionHandler is removed, replaced with
|
||||
MediaWiki\Session\PhpSessionHandler.
|
||||
** PHP session handling in general ($_SESSION, session_id(), and so on) is
|
||||
deprecated. Use MediaWiki\Session\SessionManager instead. A new config
|
||||
variable, $wgPHPSessionHandling, is available to cause use of $_SESSION to
|
||||
issue a deprecation warning or to cause most PHP session handling to throw
|
||||
exceptions.
|
||||
** Deprecated UserSetCookies hook. Session-handling extensions should generally
|
||||
be creating a custom subclass of CookieSessionProvider. Other extensions
|
||||
messing with cookies can no longer count on user data being saved in cookies
|
||||
versus other methods.
|
||||
** Deprecated UserLoadFromSession hook, extensions should create a
|
||||
MediaWiki\Session\SessionProvider.
|
||||
** The User cannot be loaded from session until after Setup.php completes.
|
||||
Attempts to do so will be ignored and the User will remain unloaded.
|
||||
** CSRF tokens may be fetched from the MediaWiki\Session\Session, which uses
|
||||
the MediaWiki\Session\Token class.
|
||||
* MediaWiki will now auto-create users as necessary, removing the need for
|
||||
extensions to do so. An 'autocreateaccount' right is added to allow
|
||||
auto-creation when 'createaccount' is not granted to all users.
|
||||
* Deprecated AuthPluginAutoCreate hook in favor of LocalUserCreated.
|
||||
* Most cookie-handling methods in User are deprecated.
|
||||
* $wgAllowAsyncCopyUploads and $CopyUploadAsyncTimeout were removed. This was an
|
||||
experimental feature that has never worked.
|
||||
* Login and createaccount tokens now vary by timestamp.
|
||||
* LoginForm::getLoginToken() and LoginForm::getCreateaccountToken()
|
||||
return a MediaWiki\Session\Token, and tokens must be checked using that
|
||||
class's methods.
|
||||
* $wgEnotifUseJobQ was removed and the job queue is always used.
|
||||
* The functionality of the ApiSandbox extension has been merged into core. The
|
||||
extension should no longer be used.
|
||||
* $wgPreloadJavaScriptMwUtil was removed (deprecated in 1.26).
|
||||
Extensions, skins, gadgets and scripts that use the mediawiki.util module must
|
||||
express a dependency on it.
|
||||
* $wgIncludeLegacyJavaScript, deprecated in MediaWiki 1.26, now defaults false.
|
||||
Extensions, skins, gadgets and scripts that need the mediawiki.legacy.wikibits
|
||||
module should express a dependency on it.
|
||||
* Removed configuration option $wgCopyrightIcon (deprecated since 1.18). Use
|
||||
$wgFooterIcons['copyright']['copyright'] instead.
|
||||
* If the openssl and mcrypt PHP extensions are both unavailable, secure
|
||||
session storage (used for login) will raise an exception. This exception may
|
||||
be bypassed by setting $wgSessionInsecureSecrets = true.
|
||||
* Massive overhaul to authentication:
|
||||
** AuthPlugin and AuthPluginUser are deprecated.
|
||||
** LoginForm and associated templates are deprecated. Extensions which called
|
||||
static LoginForm methods should be converted into authentication providers.
|
||||
** The following hooks are deprecated:
|
||||
*** AbortAutoAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** AbortLogin (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** AbortNewAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** AddNewAccount (use LocalUserCreated instead)
|
||||
*** AuthPluginSetup (create a MediaWiki\Auth\PrimaryAuthenticationProvider instead)
|
||||
*** ChangePasswordForm (use AuthChangeFormFields instead, or security levels)
|
||||
*** LoginUserMigrated (create a MediaWiki\Auth\PreAuthenticationProvider instead)
|
||||
*** UserCreateForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
|
||||
*** UserLoginForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
|
||||
** The following hooks are removed:
|
||||
*** AbortChangePassword
|
||||
*** LoginPasswordResetMessage
|
||||
*** PrefsPasswordAudit
|
||||
** The UserLoginComplete hook will no longer be called for all logins, only for
|
||||
those via the web UI. Use UserLoggedIn if you need to do something on all
|
||||
logins.
|
||||
** $wgRequirePasswordforEmailChange is removed.
|
||||
* $wgWellFormedXml has been removed.
|
||||
|
||||
=== New features in 1.27 ===
|
||||
* $wgDataCenterUpdateStickTTL was also added. This decides how long a user
|
||||
sticks to the primary DC (via cookies) after they make changes to the site.
|
||||
* Added a new hook, 'UserMailerTransformContent', to transform the contents
|
||||
of an email. This is similar to the EmailUser hook but applies to all mail
|
||||
sent via UserMailer.
|
||||
* Added a new hook, 'UserMailerTransformMessage', to transform the contents
|
||||
of an emai after MIME encoding.
|
||||
* Added a new hook, 'UserMailerSplitTo', to control which users have to be
|
||||
emailed separately (ie. there is a single address in the To: field) so
|
||||
user-specific changes to the email can be applied safely.
|
||||
* $wgCdnMaxageLagged was added, which limits the CDN cache TTL
|
||||
when any load balancer uses a DB that is lagged beyond the 'max lag'
|
||||
setting in the relevant section of $wgLBFactoryConf.
|
||||
* User::newSystemUser() may be used to simplify the creation of passwordless
|
||||
"system" users for logged actions from scripts and extensions.
|
||||
* Extensions can now return detailed error information via the API when
|
||||
preventing user actions using 'getUserPermissionsErrors' and similar hooks
|
||||
by using ApiMessage instances instead of strings for the $result value.
|
||||
* $wgAPIMaxLagThreshold was added to limit bot changes when databases lag
|
||||
becomes too high.
|
||||
* Skins and extensions can now use FlexBox mixins (.flex-display(@display: flex)
|
||||
and .flex(@grow: 1, @shrink: 1, @width: auto, @order: 1)) in Less to create
|
||||
cross-browser-compatible FlexBox rules. Users will still need to add fallback
|
||||
float rules or the like for compatibility with IE9- separately.
|
||||
* Added MWTimestamp::getTimezoneString() which returns the localized timezone
|
||||
string, if available. To localize this string, see the comments of
|
||||
$wgLocaltimezone in includes/DefaultSettings.php.
|
||||
* Added CentralIdLookup, a service that allows extensions needing a concept of
|
||||
"central" users to get that without having to know about specific central
|
||||
authentication extensions.
|
||||
* $wgMaxUserDBWriteDuration added to limit huge user-generated transactions.
|
||||
Regular web request transactions that takes longer than this are aborted.
|
||||
* Added a new hook, 'TitleMoveCompleting', which runs before a page move is
|
||||
committed.
|
||||
* $wgCdnReboundPurgeDelay was added to provide secondary delayed purges of URLs
|
||||
from CDN to mitigate DB replication lag and WAN cache purge lag.
|
||||
* (T49162) Installer will default to setting CACHE_ACCEL as the main cache type
|
||||
if it is available.
|
||||
* It is now possible to patrol file uploads (both for new files and new versions
|
||||
of existing files). Special:NewFiles has gained an option to filter by patrol
|
||||
status. This functionality can be disabled using $wgUseFilePatrol.
|
||||
* MediaWiki\Session infrastructure allows for easier use of session mechanisms
|
||||
other than the usual cookies.
|
||||
** SessionMetadata and SessionCheckInfo hooks allow for setting and checking
|
||||
custom session metadata.
|
||||
* Added MWGrants and associated configuration settings $wgGrantPermissions and
|
||||
$wgGrantPermissionGroups to hold configuration for authentication features
|
||||
such as OAuth that want to allow restricting the user rights a user may make
|
||||
use of.
|
||||
** If you're already using the OAuth extension, these new variables are
|
||||
identical to (and will replace) $wgMWOAuthGrantPermissions and
|
||||
$wgMWOAuthGrantPermissionGroups.
|
||||
* Added MWRestrictions as a class to check restrictions on a WebRequest, e.g.
|
||||
to assert that the request comes from a particular IP range.
|
||||
* Added bot passwords, a rights-restricted login mechanism for API-using bots.
|
||||
* Whitelisted the following HTML attributes for all elements in wikitext:
|
||||
aria-describedby, aria-flowto, aria-label, aria-labelledby, aria-owns.
|
||||
* Removed "presentation" restriction on the HTML role attribute in wikitext.
|
||||
All values are now allowed for the role attribute.
|
||||
* $wgContentHandlers now also supports callbacks to create an instance of the
|
||||
appropriate ContentHandler subclass.
|
||||
* Added $wgAuthenticationTokenVersion, which if non-null prevents the
|
||||
user_token database field from being exposed in cookies. Setting this would
|
||||
be a good idea, but will log out all current sessions.
|
||||
* $wgEventRelayerConfig was added, for managing PubSub event relay configuration,
|
||||
specifically for reliable CDN url purges.
|
||||
* Requests have unique IDs, equal to the UNIQUE_ID environment variable (when
|
||||
MediaWiki is behind Apache+mod_unique_id or something similar) or a randomly-
|
||||
generated 24-character string. This request ID is used to annotate log records
|
||||
and error messages. It is available client-side via mw.config.get( 'wgRequestId' ).
|
||||
The request ID supplants exception IDs. Accordingly, MWExceptionHandler::getLogId()
|
||||
is deprecated.
|
||||
* (T33313) Add a preference for watching uploads by default, also applies
|
||||
to API-based upload tools.
|
||||
* $wgJpegPixelFormat was added to override chroma subsampling for JPEG image
|
||||
thumbnails created via ImageMagick. Defaults to 'yuv420', providing bandwidth
|
||||
savings versus the previous behavior on many files.
|
||||
* MediaWiki\Auth infrastructure (called "AuthManager") allows for more flexible
|
||||
configuration of multiple authentication pieces that was possible with
|
||||
AuthPlugin. For example, it's now easy to plug in second-factor
|
||||
authentication, or add additional checks to the login process, or to support
|
||||
multiple login methods at once, or to support non-password-based login methods.
|
||||
** Providers are configured via the global setting $wgAuthManagerConfig.
|
||||
** New hook, AuthChangeFormFields, to adjust the form fields on
|
||||
AuthManager-related special pages.
|
||||
** New hook, AuthManagerLoginAuthenticateAudit, for additional logging of
|
||||
AuthManager-related authentication requests.
|
||||
** New hook, ChangeAuthenticationDataAudit, for additional logging of
|
||||
AuthManager-related authentication data changes.
|
||||
** New hook, SecuritySensitiveOperationStatus, to work with the new mechanism
|
||||
for requiring a recent login before taking security-sensitive operations
|
||||
like changing a password.
|
||||
** Two new globals, $wgChangeCredentialsBlacklist and $wgRemoveCredentialsBlacklist
|
||||
can be used to prevent the web UI and the API changing certain authentication data.
|
||||
* The file upload dialog (available if you install WikiEditor or VisualEditor)
|
||||
can now be configured using $wgUploadDialog.
|
||||
|
||||
=== External library changes in 1.27 ===
|
||||
|
||||
==== Upgraded external libraries ====
|
||||
* Updated oojs/oojs-ui from v0.12.12 to v0.13.3.
|
||||
* Updated composer/semver from v1.0.0 to v1.2.0.
|
||||
* Updated liuggio/statsd-php-client to 1.0.18.
|
||||
* Updated QUnit from v1.18.0 to v1.22.0.
|
||||
|
||||
==== New external libraries ====
|
||||
* Added wikimedia/base-convert v1.0.1.
|
||||
* Added wikimedia/cldr-plural-rule-parser v1.0.0.
|
||||
* Added wikimedia/relpath v1.0.3.
|
||||
* Added wikimedia/running-stat v1.1.0.
|
||||
* Added wikimedia/php-session-serializer v1.0.3.
|
||||
|
||||
==== Removed and replaced external libraries ====
|
||||
|
||||
=== Bug fixes in 1.27 ===
|
||||
* Special:Upload will now display correct maximum allowed file size when running
|
||||
under HHVM (T116347).
|
||||
* (T54077) The APIEditBeforeSave hook will once again give only the content of
|
||||
the section being edited, rather than the whole revision. This reverts the
|
||||
change made in MediaWiki 1.22.
|
||||
|
||||
=== Action API changes in 1.27 ===
|
||||
* Added list=allrevisions.
|
||||
* generator=recentchanges now has the option to generate revids.
|
||||
* ApiPageSet::setRedirectMergePolicy() was added. This allows generator
|
||||
modules to define how generator data for a redirect source gets merged
|
||||
into the redirect destination.
|
||||
* prop=imageinfo&iiprop=uploadwarning will no longer include the possibility of
|
||||
"was-deleted" warning.
|
||||
* Added difftotextpst to query=revisions which preforms a pre-save transform on
|
||||
the text before diffing it.
|
||||
* Deprecated formats dbg, txt, and yaml have been removed.
|
||||
* (T47988) The protect log event details now use new-style formatting.
|
||||
* The following response properties from action=login are deprecated, and may
|
||||
be removed in the future: lgtoken, cookieprefix, sessionid. Clients should
|
||||
handle cookies to properly manage session state.
|
||||
* action=login transparently allows login using bot passwords. Clients should
|
||||
merely need to change the username and password used after setting up a bot
|
||||
password.
|
||||
* action=upload no longer understands statuskey, asyncdownload or leavemessage.
|
||||
* action=login is deprecated for uses other than bot passwords.
|
||||
* list=users can now indicate if a missing username is creatable.
|
||||
* action=createaccount is changed in a non-backwards-compatible manner.
|
||||
* Added action=query&meta=authmanagerinfo.
|
||||
* Added action=clientlogin to be used to log into the main account instead of
|
||||
action=login.
|
||||
* Added action=linkaccount.
|
||||
* Added action=unlinkaccount.
|
||||
* Added action=changeauthenticationdata.
|
||||
* Added action=removeauthenticationdata.
|
||||
* Added action=resetpassword.
|
||||
|
||||
=== Action API internal changes in 1.27 ===
|
||||
* ApiQueryORM removed.
|
||||
* The following classes have been removed:
|
||||
** ApiFormatDbg
|
||||
** ApiFormatTxt
|
||||
** ApiFormatYaml
|
||||
* ApiBase::addTokenProperties() was removed (deprecated since 1.24).
|
||||
* ApiBase::getFinalPossibleErrors() was removed (deprecated since 1.24).
|
||||
* ApiBase::getFinalResultProperties() was removed (deprecated since 1.24).
|
||||
* ApiBase::getRequireAtLeastOneParameterErrorMessages() was removed (deprecated since 1.24).
|
||||
* ApiBase::getPossibleErrors() was removed (deprecated since 1.24).
|
||||
* ApiBase::getRequireMaxOneParameterErrorMessages() was removed (deprecated since 1.24).
|
||||
* ApiBase::getRequireOnlyOneParameterErrorMessages() was removed (deprecated since 1.24).
|
||||
* ApiBase::getResultProperties() was removed (deprecated since 1.24).
|
||||
* ApiBase::getTitleOrPageIdErrorMessage() was removed (deprecated since 1.24).
|
||||
* ApiBase::parseErrors() was removed (deprecated since 1.24).
|
||||
* ApiQueryBase::titleToKey(), ApiQueryBase::keyToTitle() and
|
||||
ApiQueryBase::keyPartToTitle() all removed (deprecated since 1.24).
|
||||
* ApiQueryBase::checkRowCount() was removed (deprecated since 1.24).
|
||||
* ApiQueryBase::getDirectionDescription() was removed (deprecated since 1.25).
|
||||
* ApiQuery::getGenerators() was removed (deprecated since 1.21).
|
||||
* ApiQuery::getModules() was removed (deprecated since 1.21).
|
||||
* ApiQuery::getModuleType() was removed (deprecated since 1.21).
|
||||
* ApiQuery::setGeneratorContinue() was removed (deprecated since 1.24).
|
||||
* ApiMain::getModules() was removed (deprecated since 1.21).
|
||||
* ApiBase::getVersion() was removed (deprecated since 1.21).
|
||||
* ApiMain::getShowVersions() was removed (deprecated in 1.21).
|
||||
* ApiMain::addModule() was removed (deprecated in 1.21).
|
||||
* ApiMain::addFormat() was removed (deprecated in 1.21).
|
||||
* ApiMain::getFormats() was removed (deprecated in 1.21).
|
||||
* ApiPageSet::finishPageSetGeneration() was removed (deprecated in 1.21).
|
||||
* ApiCreateAccount is deprecated, and will be removed soon.
|
||||
|
||||
=== Languages updated in 1.27 ===
|
||||
|
||||
MediaWiki supports over 350 languages. Many localisations are updated
|
||||
regularly. Below only new and removed languages are listed, as well as
|
||||
changes to languages because of Phabricator reports.
|
||||
|
||||
* (T113688) Change default numerals from Gurmukhi to Arabic for Punjabi locale.
|
||||
* (T116020) Aliases of magic words in MessagesXx.php are sorted by usage.
|
||||
|
||||
=== Other changes in 1.27 ===
|
||||
* Added dependency injection (DI) infrastructure, see docs/injection.txt for details.
|
||||
It is planned to incrementally move MediaWiki code towards using DI, using the
|
||||
service locator (SL) pattern as a stepping stone.
|
||||
* ProfilerOutputUdp was removed. Note that there is a ProfilerOutputStats class.
|
||||
* WikiPage::doDeleteArticleReal() and WikiPage::doDeleteArticle() now
|
||||
ignore the 2nd and 3rd arguments (formerly $id and $commit).
|
||||
* Removed "loaderScripts" option from ResourceLoaderFileModule class.
|
||||
* Removed ORM-like wrapper added in 1.20.
|
||||
* LinkCache::getGoodLinks and LinkCache::getBadLinks were removed
|
||||
(deprecated in 1.26).
|
||||
* WikiPage::doQuickEdit() was removed (deprecated since 1.21).
|
||||
* Removed SiteObject and SiteArray classes (deprecated in 1.21).
|
||||
* MessageBlobStore::getInstance() was removed (deprecated since 1.25).
|
||||
* (T84937) Free external links ("autolinked" urls) will now be terminated
|
||||
by and HTML entity encodings of  , <, and >.
|
||||
* (T36948) The default file revert message's timestamp is now in
|
||||
$wgLocaltimezone, instead of UTC.
|
||||
* The default name of the 'suppress' group page has been changed from
|
||||
'Project:Oversight' to 'Project:Suppress'.
|
||||
* DatabaseBase::resultObject() is now protected (use outside Database classes
|
||||
not necessary since 1.11).
|
||||
* Calling ResourceLoaderFileModule::readStyleFiles() without a
|
||||
ResourceLoaderContext instance is deprecated.
|
||||
* ResourceLoader::getLessCompiler() now takes an optional parameter of
|
||||
additional LESS variables to set for the compiler.
|
||||
* wfBaseConvert() marked as deprecated, use Wikimedia\base_convert() directly
|
||||
instead.
|
||||
* Obsolete maintenance scripts clearCacheStats.php and showCacheStats.php
|
||||
were removed. The underlying data is sent to StatsD (see $wgStatsdServer).
|
||||
* Removed msg_resource_links database table and associated code.
|
||||
* Removed msg_resource database table and associated code.
|
||||
* Skin::getNamespaceNotice() was removed.
|
||||
* wfIsConfiguredProxy() was removed (deprecated since 1.24).
|
||||
* wfDebugTimer() was removed (deprecated since 1.25).
|
||||
* wfIsTrustedProxy() was removed (deprecated since 1.24).
|
||||
* wfGetIP() was removed (deprecated since 1.19).
|
||||
* MWHookException was removed.
|
||||
* OutputPage::appendSubtitle() was removed (deprecated since 1.19).
|
||||
* OutputPage::loginToUse() was removed (deprecated since 1.19).
|
||||
* Article::loadContent() was removed (deprecated since 1.19).
|
||||
* User::editToken() was removed (deprecated since 1.19).
|
||||
* Removed --force-normal option of dumpBackup.php, as it no longer served
|
||||
any useful purpose since 1.22.
|
||||
* The functions processOption() and processArgs() on the BackupDumper and
|
||||
TextPassDumper classes have been removed.
|
||||
* The maintenance/backupTextPass.inc file was deleted. You should include
|
||||
maintenance/dumpTextPass.php instead.
|
||||
* WikiPage::getUsedTemplates() was removed (deprecated since 1.19).
|
||||
* wfEmptyMsg() was removed (deprecated since 1.18).
|
||||
* OutputPage::permissionRequired() was removed (deprecated since 1.18).
|
||||
* OutputPage::blockedPage() was removed (deprecated since 1.18).
|
||||
* User::getSkin() was removed (deprecated since 1.18).
|
||||
* OutputPage::includeJQuery() was removed (deprecated since 1.17).
|
||||
* WikiPage::updateRestrictions() was removed (deprecated since 1.19).
|
||||
* WikiPage::testPreSaveTransform() was removed (deprecated since 1.19).
|
||||
* LogPage::logName() was removed (deprecated since 1.19).
|
||||
* LogPage::logHeader() was removed (deprecated since 1.19).
|
||||
* wfCheckLimits() was removed (deprecated since 1.24).
|
||||
* Linker::makeKnownLinkObj() was removed (deprecated since 1.16).
|
||||
* Linker::makeLinkObj() was removed (deprecated since 1.16).
|
||||
* wfMsgForContentNoTrans() was removed (deprecated since 1.18).
|
||||
* ChangesList::usePatrol was removed (deprecated since 1.22).
|
||||
* wfMsgNoTrans() was removed (deprecated since 1.18).
|
||||
* Linker::makeImageLink2 was removed (deprecated since 1.20).
|
||||
* Title::userIsWatching() was removed (deprecated since 1.20).
|
||||
* Removed WaitForSlave maintenance script; use SELECT MASTER_POS_WAIT()
|
||||
database function directly instead.
|
||||
* wfMsg() was removed (deprecated since 1.18).
|
||||
* wfMsgForContent() was removed (deprecated since 1.18).
|
||||
* wfMsgReal() was removed (deprecated since 1.18).
|
||||
* wfMsgGetKey() was removed (deprecated since 1.18).
|
||||
* wfMsgHtml() was removed (deprecated since 1.18).
|
||||
* wfMsgWikiHtml() was removed (deprecated since 1.18).
|
||||
* wfMsgExt() was removed (deprecated since 1.18).
|
||||
* Language::armourMath() was removed (deprecated since 1.22).
|
||||
* LanguageConverter::armourMath() was removed (deprecated since 1.22).
|
||||
* FakeConverter::armourMath() was removed (deprecated since 1.22).
|
||||
* The unused jquery.validate ResourceLoader module was removed.
|
||||
* FileRepo::getRootUrl() was removed (deprecated since 1.20).
|
||||
* User::generateToken() was removed (deprecated since 1.20).
|
||||
* WikiPage::getRawText() was removed (deprecated since 1.21).
|
||||
* ParserOutput::hasCustomDataUpdates() was removed (deprecated since 1.25).
|
||||
* ParserOutput::addSecondaryDataUpdate() was removed (deprecated since 1.25).
|
||||
* ParserOutput::getSecondaryDataUpdates() was removed (deprecated since 1.25).
|
||||
* Gallery images with multiple caption pipes no longer concatenate them all
|
||||
together but instead pick the final one, similar to image syntax.
|
||||
* XML-like parser tags (such as <gallery>), when unclosed, will be left unparsed
|
||||
rather than consume everything until the end of the page.
|
||||
* New maintenance script resetUserEmail.php allows sysadmins to reset user emails in case
|
||||
a user forgot password/account was stolen.
|
||||
* wfCheckEntropy() was removed (deprecated in 1.27).
|
||||
* Browser support for Internet Explorer 8 lowered from Grade A to Grade C.
|
||||
* ContentHandler::supportsCategories method added. Default is true.
|
||||
CategoryMembershipChangeJob updates are skipped for content that
|
||||
does not support categories.
|
||||
* wikidiff difference engine is no longer supported, anyone still using it are encouraged
|
||||
to upgrade to wikidiff2 which is actively maintained and has better package availability.
|
||||
* Database logic was removed from WatchedItem and a WatchedItemStore was created:
|
||||
** WatchedItem::IGNORE_USER_RIGHTS and WatchedItem::CHECK_USER_RIGHTS were deprecated.
|
||||
User::IGNORE_USER_RIGHTS and User::CHECK_USER_RIGHTS were introduced.
|
||||
** WatchedItem::fromUserTitle was deprecated in favour of the constructor.
|
||||
** WatchedItem::resetNotificationTimestamp was deprecated.
|
||||
** WatchedItem::batchAddWatch was deprecated.
|
||||
** WatchedItem::addWatch was deprecated.
|
||||
** WatchedItem::removeWatch was deprecated.
|
||||
** WatchedItem::isWatched was deprecated.
|
||||
** WatchedItem::duplicateEntries was deprecated.
|
||||
** EmailNotification::updateWatchlistTimestamp was deprecated.
|
||||
** User::getWatchedItem was removed.
|
||||
* Unit tests don't work with external PHPUnit anymore, Composer is now the only supported
|
||||
way. Run `composer install` to install it and other dev dependencies to run unit tests.
|
||||
* wl_id field added to the watchlist table.
|
||||
* Revision::getRawText() was removed (deprecated since 1.21).
|
||||
* WikiPage::replaceSection() was removed (deprecated since 1.21).
|
||||
* Article::replaceSection() was removed (deprecated since 1.21).
|
||||
* Language::getLangObj() was removed (deprecated since 1.24).
|
||||
* Language::getLanguageName() was removed (deprecated since 1.20).
|
||||
* Language::getLanguageNames() was removed (deprecated since 1.20).
|
||||
* Language::getTranslatedLanguageNames() was removed (deprecated since 1.20).
|
||||
* Language::specialPage() was removed (deprecated since 1.24).
|
||||
* MediaWikiTestCase::assertException() was removed (deprecated since 1.22).
|
||||
* OutputPage::getHeadItems() was removed (deprecated since 1.24).
|
||||
* OutputPage::getScript() was removed (deprecated since 1.24).
|
||||
* OutputPage::out() was removed (deprecated since 1.22).
|
||||
* OutputPage::setAllowedModules() was removed (deprecated since 1.24).
|
||||
* UserrightsPage::makeGroupNameListForLog() was removed (deprecated since 1.21).
|
||||
* MediaWikiSite::newFromGlobalId() was removed (deprecated since 1.21).
|
||||
* Title::newFromRedirect() was removed (deprecated since 1.21).
|
||||
* Skin::commonPrintStylesheet() was removed (deprecated since 1.22).
|
||||
* Skin::getCommonStylePath() was removed (deprecated since 1.24).
|
||||
* Skin::newFromKey() was removed (deprecated since 1.24).
|
||||
* Skin::getUsableSkins() was removed (deprecated since 1.23).
|
||||
* LoadBalancer::pickRandom() was removed (deprecated in 1.21).
|
||||
* Article::getUndoText() and WikiPage::getUndoText were removed (deprecated since
|
||||
1.21).
|
||||
* DifferenceEngine::setText() was removed (deprecated in 1.21).
|
||||
* Title::newFromRedirectArray() was removed (deprecated in 1.21).
|
||||
* UserMailer::send() no longer accepts $replyto as the 5th argument and $contentType
|
||||
as the 6th. These must be passed in the options array now.
|
||||
* Title::newFromRedirectRecurse() was removed (deprecated in 1.21).
|
||||
* Skin::accesskey was removed (deprecated since 1.21).
|
||||
* Skin::blockLink was removed (deprecated since 1.21).
|
||||
* Skin::buildRollbackLink was removed (deprecated since 1.21).
|
||||
* Skin::emailLink was removed (deprecated since 1.21).
|
||||
* Skin::formatComment was removed (deprecated since 1.21).
|
||||
* Skin::formatHiddenCategories was removed (deprecated since 1.21).
|
||||
* Skin::formatLinksInComment was removed (deprecated since 1.21).
|
||||
* Skin::formatRevisionSize was removed (deprecated since 1.21).
|
||||
* Skin::formatSize was removed (deprecated since 1.21).
|
||||
* Skin::formatTemplates was removed (deprecated since 1.21).
|
||||
* Skin::generateTOC was removed (deprecated since 1.21).
|
||||
* Skin::getInternalLinkAttributes was removed (deprecated since 1.21).
|
||||
* Skin::getInternalLinkAttributesObj was removed (deprecated since 1.21).
|
||||
* Skin::getInterwikiLinkAttributes was removed (deprecated since 1.21).
|
||||
* Skin::getInvalidTitleDescription was removed (deprecated since 1.21).
|
||||
* Skin::getLinkColour was removed (deprecated since 1.21).
|
||||
* Skin::getRevDeleteLink was removed (deprecated since 1.21).
|
||||
* Skin::getRollbackEditCount was removed (deprecated since 1.21).
|
||||
* Skin::makeBrokenImageLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::makeCommentLink was removed (deprecated since 1.21).
|
||||
* Skin::makeExternalImage was removed (deprecated since 1.21).
|
||||
* Skin::makeExternalLink was removed (deprecated since 1.21).
|
||||
* Skin::makeHeadline was removed (deprecated since 1.21).
|
||||
* Skin::makeImageLink was removed (deprecated since 1.21).
|
||||
* Skin::makeMediaLinkFile was removed (deprecated since 1.21).
|
||||
* Skin::makeMediaLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::makeSelfLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::makeThumbLink2 was removed (deprecated since 1.21).
|
||||
* Skin::makeThumbLinkObj was removed (deprecated since 1.21).
|
||||
* Skin::normaliseSpecialPage was removed (deprecated since 1.21).
|
||||
* Skin::normalizeSubpageLink was removed (deprecated since 1.21).
|
||||
* Skin::processResponsiveImages was removed (deprecated since 1.21).
|
||||
* Skin::revComment was removed (deprecated since 1.21).
|
||||
* Skin::revDeleteLink was removed (deprecated since 1.21).
|
||||
* Skin::revDeleteLinkDisabled was removed (deprecated since 1.21).
|
||||
* Skin::revUserLink was removed (deprecated since 1.21).
|
||||
* Skin::revUserTools was removed (deprecated since 1.21).
|
||||
* Skin::specialLink was removed (deprecated since 1.21).
|
||||
* Skin::splitTrail was removed (deprecated since 1.21).
|
||||
* Skin::titleAttrib was removed (deprecated since 1.21).
|
||||
* Skin::tocIndent was removed (deprecated since 1.21).
|
||||
* Skin::tocLine was removed (deprecated since 1.21).
|
||||
* Skin::tocLineEnd was removed (deprecated since 1.21).
|
||||
* Skin::tocList was removed (deprecated since 1.21).
|
||||
* Skin::tocUnindent was removed (deprecated since 1.21).
|
||||
* Skin::tooltip was removed (deprecated since 1.21).
|
||||
* Skin::tooltipAndAccesskeyAttribs was removed (deprecated since 1.21).
|
||||
* Skin::userTalkLink was removed (deprecated since 1.21).
|
||||
* Skin::userToolLinksRedContribs was removed (deprecated since 1.21).
|
||||
* wikidiff3 is now the default and only PHP diff engine. It provides improved diff
|
||||
performance on complex changes. $wgExternalDiffEngine = 'wikidiff3' therefore
|
||||
makes no difference now. Users are still recommended to use wikidiff2 if possible,
|
||||
though.
|
||||
* User::addNewUserLogEntry() was deprecated.
|
||||
* User::addNewUserLogEntryAutoCreate() was deprecated.
|
||||
* User::isPasswordReminderThrottled() was deprecated.
|
||||
* Bot-oriented parameters to Special:UserLogin (wpCookieCheck, wpSkipCookieCheck)
|
||||
were removed.
|
||||
* Installer can now be customized without patching MediaWiki code, see
|
||||
mw-config/overrides/README for details.
|
||||
|
||||
== Compatibility ==
|
||||
|
||||
MediaWiki 1.27 requires PHP 5.5.9 or later. There is experimental support for
|
||||
HHVM 3.6.5 or later.
|
||||
|
||||
MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
|
||||
support for them is somewhat less mature. There is experimental support for
|
||||
Oracle and Microsoft SQL Server.
|
||||
|
||||
The supported versions are:
|
||||
|
||||
* MySQL 5.0.3 or later
|
||||
* PostgreSQL 8.3 or later
|
||||
* SQLite 3.3.7 or later
|
||||
* Oracle 9.0.1 or later
|
||||
* Microsoft SQL Server 2005 (9.00.1399)
|
||||
|
||||
== Upgrading ==
|
||||
|
||||
1.27 has several database changes since 1.26, and will not work without schema
|
||||
updates. Note that due to changes to some very large tables like the revision
|
||||
table, the schema update may take quite long (minutes on a medium sized site,
|
||||
many hours on a large site).
|
||||
|
||||
If upgrading from before 1.11, and you are using a wiki as a commons
|
||||
repository, make sure that it is updated as well. Otherwise, errors may arise
|
||||
due to database schema changes.
|
||||
|
||||
If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
|
||||
new database fields are filled with data.
|
||||
|
||||
If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
|
||||
1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
|
||||
with MediaWiki 1.21.
|
||||
|
||||
Don't forget to always back up your database before upgrading!
|
||||
|
||||
See the file UPGRADE for more detailed upgrade instructions.
|
||||
|
||||
For notes on 1.26.x and older releases, see HISTORY.
|
||||
|
||||
== Online documentation ==
|
||||
|
||||
Documentation for both end-users and site administrators is available on
|
||||
MediaWiki.org, and is covered under the GNU Free Documentation License (except
|
||||
for pages that explicitly state that their contents are in the public domain):
|
||||
|
||||
https://www.mediawiki.org/wiki/Documentation
|
||||
|
||||
== Mailing list ==
|
||||
|
||||
A mailing list is available for MediaWiki user support and discussion:
|
||||
|
||||
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
|
||||
|
||||
A low-traffic announcements-only list is also available:
|
||||
|
||||
https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
|
||||
|
||||
It's highly recommended that you sign up for one of these lists if you're
|
||||
going to run a public MediaWiki, so you can be notified of security fixes.
|
||||
|
||||
== IRC help ==
|
||||
|
||||
There's usually someone online in #mediawiki on irc.freenode.net.
|
|
@ -0,0 +1,321 @@
|
|||
== MediaWiki 1.28 ==
|
||||
|
||||
THIS IS NOT A RELEASE YET
|
||||
|
||||
MediaWiki 1.28 is an alpha-quality branch and is not recommended for use in
|
||||
production.
|
||||
|
||||
=== Changes since 1.28.0rc0 ===
|
||||
* (T142210) The changes to move the parser "NewPP limit report" from a HTML
|
||||
comment to a machine-readable JavaScript config option 'wgPageParseReport'
|
||||
have been undone. They caused the human-readable limit report to be shown
|
||||
incompletely or not at all. ParserOutput::setLimitReportData() and
|
||||
getLimitReportData() behave as they did in MediaWiki 1.27 again.
|
||||
* (T149510) Value of {{DISPLAYTITLE:}} parser function will not be used for
|
||||
the text of subheadings on a category page when creating it. This wasn't
|
||||
working correctly.
|
||||
* (T106793) MediaWiki will no longer try to perform a HTTP redirect to the
|
||||
canonical pretty URL when a non-pretty URL is used. It resulted in redirect
|
||||
loops in some clients and in some server configurations. This undoes a change
|
||||
made in MediaWiki 1.26.
|
||||
* (T149759) manifest_version: 2 was removed.
|
||||
|
||||
=== Configuration changes in 1.28 ===
|
||||
* $wgSend404Code now affects status code of action=history if the page is not there.
|
||||
* BREAKING CHANGE: $wgHTTPProxy is now *required* for all external requests
|
||||
made by MediaWiki via a proxy. Relying on the http_proxy environment
|
||||
variable is no longer supported.
|
||||
* The load.php entry point now enforces the existing policy of not allowing
|
||||
access to session data, which includes the session user and the session
|
||||
user's language. If such access is attempted, an exception will be thrown.
|
||||
* The number of internal PBKDF2 iterations used to derive the session secret
|
||||
is configurable via $wgSessionPbkdf2Iterations.
|
||||
* Upload dialog's file upload log comment can now be configured separately for
|
||||
local and foreign uploads.
|
||||
* $wgForeignUploadTargets now defaults to `[ 'local' ]`, where `'local'`
|
||||
signifies local uploads. A value of `[]` (empty array) now means that
|
||||
no upload targets are allowed, effectively disabling the upload dialog.
|
||||
* The deprecated $wgEditEncoding variable has been removed; it was only used
|
||||
for Esperanto language character conversion. You are now recommended to use
|
||||
input methods provided by the UniversalLanguageSelector extension.
|
||||
* When $wgPingback is true, MediaWiki will periodically ping
|
||||
https://www.mediawiki.org/beacon with basic information about the local
|
||||
MediaWiki installation. This data includes, for example, the type of system,
|
||||
PHP version, and chosen database backend. This behavior is off by default.
|
||||
* When $wgEditSubmitButtonLabelPublish is true, MediaWiki will label the button
|
||||
to store-to-database-and-show-to-others as "Publish page"/"Publish changes";
|
||||
if false, the default, they will be "Save page"/"Save changes".
|
||||
* The 'editcontentmodel' permission is now granted to all logged-in users ('user').
|
||||
instead of just administrators ('sysop'). Documentation for this feature is
|
||||
available at <https://www.mediawiki.org/wiki/Help:ChangeContentModel>.
|
||||
* $wgRevisionCacheExpiry is now set to one week by default instead of being disabled.
|
||||
* Magic links are now disabled by default, and can be re-enabled by modifying the value
|
||||
of $wgEnableMagicLinks. Their usage is discouraged, but if they are manually enabled,
|
||||
a tracking category will be added to help identify usage and make it easier to migrate
|
||||
away from. If you depend upon magic link functionality, it is requested that you comment
|
||||
on <https://www.mediawiki.org/wiki/Requests_for_comment/Future_of_magic_links> and
|
||||
explain your use case(s).
|
||||
* New config variable $wgCSPFalsePositiveUrls to control what URLs to ignore
|
||||
in upcoming Content-Security-Policy feature's reporting.
|
||||
|
||||
=== New features in 1.28 ===
|
||||
* User::isBot() method for checking if an account is a bot role account.
|
||||
* Added a new 'slideshow' mode for galleries.
|
||||
* Added a new hook, 'UserIsBot', to aid in determining if a user is a bot.
|
||||
* Added a new hook, 'ApiMakeParserOptions', to allow extensions to better
|
||||
interact with API parsing.
|
||||
* Added a new hook, 'UploadVerifyUpload', which can be used to reject a file
|
||||
upload. Unlike 'UploadVerifyFile' it provides information about upload comment
|
||||
and the file description page, but does not run for uploads to stash.
|
||||
* (T141604) Extensions can now provide a better error message when their
|
||||
maintenance scripts are run without the extension being installed.
|
||||
* (T8948) Numeric sorting in categories is now supported by setting $wgCategoryCollation
|
||||
to 'uca-default-u-kn' or 'uca-<langcode>-u-kn'. If you can't use UCA collations,
|
||||
a 'numeric' collation is also available. If migrating from another
|
||||
collation, you will need to run the updateCollation.php maintenance script.
|
||||
* Two new codes have been added to #time parser function: "xit" for days in current
|
||||
month, and "xiz" for days passed in the year, both in Iranian calendar.
|
||||
* mw.Api has a new option, useUS, to use U+001F (Unit Separator) when
|
||||
appropriate for sending multi-valued parameters. This defaults to true when
|
||||
the mw.Api instance seems to be for the local wiki.
|
||||
* After a client performs an action which alters a database that has replica databases,
|
||||
MediaWiki will wait for the replica databases to synchronize with the master database
|
||||
while it renders the HTML output. However, if the output is a redirect to another wiki
|
||||
on the wiki farm with a different domain, MediaWiki will instead alter the redirect
|
||||
URL to include a ?cpPosTime parameter that triggers the database synchronization when
|
||||
the URL is followed by the client. The same-domain case uses a new cpPosTime cookie.
|
||||
* Added new hooks, 'ApiQueryBaseBeforeQuery', 'ApiQueryBaseAfterQuery', and
|
||||
'ApiQueryBaseProcessRow', to make it easier for extensions to add 'prop' and
|
||||
'show' parameters to existing API query modules.
|
||||
|
||||
=== External library changes in 1.28 ===
|
||||
|
||||
==== Upgraded external libraries ====
|
||||
* Updated es5-shim from v4.1.5 to v4.5.8
|
||||
* Updated composer/semver from v1.4.1 to v1.4.2
|
||||
* Updated wikimedia/php-session-serializer from v1.0.3 to v1.0.4
|
||||
|
||||
==== New external libraries ====
|
||||
* Added wikimedia/scoped-callback v1.0.0
|
||||
* Added wikimedia/wait-condition-loop v1.0.1
|
||||
|
||||
=== Bug fixes in 1.28 ===
|
||||
* (T146496) action=history pages should return 404 HTTP error code if the page does not exist
|
||||
* (T137264) SECURITY: XSS in unclosed internal links
|
||||
* (T133147) SECURITY: Escape '<' and ']]>' in inline <style> blocks
|
||||
* (T133147) SECURITY: Require login to preview user CSS pages
|
||||
* (T132926) SECURITY: Do not allow undeleting a revision deleted file if it is
|
||||
the top file
|
||||
* (T129738) SECURITY: Make $wgBlockDisablesLogin also restrict logged in
|
||||
permissions
|
||||
* (T129738) SECURITY: Make blocks log users out if $wgBlockDisablesLogin is true
|
||||
* (T139670) Move 'UserGetRights' call before application of
|
||||
Session::getAllowedUserRights()
|
||||
|
||||
=== Action API changes in 1.28 ===
|
||||
* Added 'maxarticlesize' property to action=query&meta=siteinfo which contains
|
||||
the value of $wgMaxArticleSize.
|
||||
* Property 'modulemessages' from action=parse&prop=modules was removed
|
||||
(deprecated since 1.26).
|
||||
* The following response properties from action=login, deprecated in 1.27, are
|
||||
now removed: lgtoken, cookieprefix, sessionid. Clients should handle cookies
|
||||
to properly manage session state.
|
||||
* Submitting the lgtoken and lgpassword parameters in the query string to
|
||||
action=login is now deprecated and outputs a warning. They should be submitted
|
||||
in the POST body instead.
|
||||
* Submitting sensitive authentication request parameters to action=clientlogin,
|
||||
action=createaccount, action=linkaccount, and action=changeauthenticationdata
|
||||
in the query string is now deprecated and outputs a warning. They should be
|
||||
submitted in the POST body instead.
|
||||
* (T141960) Multi-valued parameters may now be separated using U+001F (Unit Separator)
|
||||
instead of the pipe character. This will be useful if some of the multiple
|
||||
values need to contain pipes, e.g. for action=options.
|
||||
* The API will now warn if input is not NFC-normalized Unicode or if it
|
||||
contains invalid characters.
|
||||
* The 'normalized' list output by action=query and other modules that use
|
||||
ApiPageSet may contain entries where the 'from' value is percent-encoded as
|
||||
the raw value cannot be represented in a valid API response. These are
|
||||
indicated by a 'fromencoded' boolean alongside the existing 'from' parameter.
|
||||
* (T28680) action=paraminfo can now return info about all submodules of a
|
||||
module without listing them all explicitly.
|
||||
* (T146770) It is now possible to assert that the current user is a specific
|
||||
named user, using the 'assertuser' parameter.
|
||||
* (T141963) Added a 'known' property when missing-but-known titles (e.g. from
|
||||
the 'TitleIsAlwaysKnown' hook) are output in various modules.
|
||||
|
||||
=== Action API internal changes in 1.28 ===
|
||||
* Added a new hook, 'ApiMakeParserOptions', to allow extensions to better
|
||||
interact with ApiParse and ApiExpandTemplates.
|
||||
* (T139565) SECURITY: API: Generate head items in the context of the given title
|
||||
* (T115333) SECURITY: Check read permission when loading page content in ApiParse
|
||||
* ApiBase::getResultData() was removed (deprecated since 1.25)
|
||||
* ApiBase::makeHelpArrayToString() was removed (deprecated since 1.25)
|
||||
* ApiBase::makeHelpMsgParameters() was removed (deprecated since 1.25)
|
||||
* ApiBase::makeHelpMsg() was removed (deprecated since 1.25)
|
||||
* ApiFormatBase::formatHTML() was removed (deprecated since 1.25)
|
||||
* ApiFormatBase::getNeedsRawData() was removed (deprecated since 1.25)
|
||||
* ApiFormatBase::getWantsHelp() was removed (deprecated since 1.25)
|
||||
* ApiFormatBase::setBufferResult() was removed (deprecated since 1.25)
|
||||
* ApiFormatBase::setHelp() was removed (deprecated since 1.25)
|
||||
* ApiFormatBase::setUnescapeAmps() was removed (deprecated since 1.25)
|
||||
* ApiMain::makeHelpMsgHeader() was removed (deprecated since 1.25)
|
||||
* ApiMain::reallyMakeHelpMsg() was removed (deprecated since 1.25)
|
||||
* ApiMain::setHelp() was removed (deprecated since 1.25)
|
||||
* ApiResult::beginContinuation() was removed (deprecated since 1.25)
|
||||
* ApiResult::cleanUpUTF8() was removed (deprecated since 1.25)
|
||||
* ApiResult::convertStatusToArray() was removed (deprecated since 1.25)
|
||||
* ApiResult::disableSizeCheck() was removed (deprecated since 1.24)
|
||||
* ApiResult::enableSizeCheck() was removed (deprecated since 1.24)
|
||||
* ApiResult::endContinuation() was removed (deprecated since 1.25)
|
||||
* ApiResult::getData() was removed (deprecated since 1.25)
|
||||
* ApiResult::getIsRawMode() was removed (deprecated since 1.25)
|
||||
* ApiResult::setContent() was removed (deprecated since 1.25)
|
||||
* ApiResult::setContinueParam() was removed (deprecated since 1.25)
|
||||
* ApiResult::setElement() was removed (deprecated since 1.25)
|
||||
* ApiResult::setGeneratorContinueParam() was removed (deprecated since 1.25)
|
||||
* ApiResult::setIndexedTagName_internal() was removed (deprecated since 1.25)
|
||||
* ApiResult::setIndexedTagName_recursive() was removed (deprecated since 1.25)
|
||||
* ApiResult::setMainForContinuation() was removed (deprecated since 1.25)
|
||||
* ApiResult::setParsedLimit() was removed (deprecated since 1.25)
|
||||
* ApiResult::setRawMode() was removed (deprecated since 1.25)
|
||||
* ApiResult::size() was removed (deprecated since 1.25)
|
||||
* Added new hooks, 'ApiQueryBaseBeforeQuery', 'ApiQueryBaseAfterQuery', and
|
||||
'ApiQueryBaseProcessRow', to make it easier for extensions to add 'prop' and
|
||||
'show' parameters to existing API query modules. A query module can enable
|
||||
these hooks by passing an array for $hookData to ApiQueryBase::select() and
|
||||
by calling ApiQueryBase->processRow() before adding a row's data to the
|
||||
result.
|
||||
|
||||
=== Languages updated in 1.28 ===
|
||||
|
||||
MediaWiki supports over 375 languages. Many localisations are updated
|
||||
regularly. Below only new and removed languages are listed, as well as
|
||||
changes to languages because of Phabricator reports.
|
||||
|
||||
* (T137411) ban (Balinese), thanks to translators Adi Mayndra, Andru,
|
||||
BASAbali, M. Adiputra, Naval Scene, Nemo bis, NoiX180, and 아라.
|
||||
* (T135867) shn (Shan), thanks to translators Khun Sar, Piangpha,
|
||||
Saiddzone Saimawnkham, Saosukham, and Sengwan.
|
||||
* Czech (cs) and Slovak (sk) set as reciprocal fallbacks.
|
||||
* (T146744) Livvi-Karelian (olo) namespace messages created thanks to translator Ilja.mos.
|
||||
|
||||
=== Other changes in 1.28 ===
|
||||
* (T128697) Improved handling of large diffs.
|
||||
* [BREAKING CHANGE] $wgExtendedLoginCookies has been removed. You can
|
||||
use or update a custom session provider if needed.
|
||||
* Deprecated APIEditBeforeSave hook in favor of EditFilterMergedContent.
|
||||
* The 'UploadVerification' hook is deprecated. Use 'UploadVerifyFile' instead.
|
||||
* SiteConfiguration::isLocalVHost() was removed (deprecated since 1.25).
|
||||
* The 'UserLoginComplete' hook has a new parameter to differentiate between actual
|
||||
login and visiting the login page while already logged in.
|
||||
* ResourceLoader::makeLoaderURL() was removed (deprecated since 1.24).
|
||||
* $.fn.liveAndTestAtStart was removed (deprecated since 1.24).
|
||||
* mw.util.tooltipAccessKeyPrefix was removed (deprecated since 1.24).
|
||||
* mw.util.tooltipAccessKeyRegexp was removed (deprecated since 1.24).
|
||||
* Linker::link() and Linker::linkKnown() were deprecated; please instead use
|
||||
MediaWiki\Linker\LinkRenderer. In addition, the LinkBegin and LinkEnd hooks
|
||||
were replaced by HtmlPageLinkRendererBegin and HtmlPageLinkRendererEnd
|
||||
respectively. See docs/hooks.txt for the specific changes needed for those hooks.
|
||||
* Linker::formatSize() was deprecated. Use Language::formatSize() directly.
|
||||
* Aliases for Linker methods, deprecated since 1.21, were removed from Skin:
|
||||
* Skin::commentBlock() (use Linker::commentBlock() instead)
|
||||
* Skin::generateRollback() (use Linker::generateRollback() instead)
|
||||
* Skin::link() (use MediaWiki\Linker\LinkRenderer instead)
|
||||
* Skin::linkKnown() (use MediaWiki\Linker\LinkRenderer instead)
|
||||
* Skin::userLink() (use Linker::userLink() instead)
|
||||
* Skin::userToolLinks() (use Linker::userToolLinks() instead)
|
||||
* Disabled "bug 2702" HTML tidying of parsed UI messages on wikis where Tidy is
|
||||
disabled.
|
||||
* DifferenceEngine::generateDiffBody() was removed (deprecated since 1.21).
|
||||
* UploadBase::stashFileGetKey() and UploadBase::stashSession() were deprecated.
|
||||
Use ...->stashFile()->getFileKey() instead.
|
||||
* "Public domain" was removed as a wiki license option from the installer, in
|
||||
favour of CC-0.
|
||||
* AuthenticationRequest::$required is now changed from REQUIRED to PRIMARY_REQUIRED
|
||||
on requests needed by primary providers even if all primaries need them.
|
||||
Primary providers are discouraged from returning multiple REQUIRED requests.
|
||||
* OOjs UI PHP widgets constructed with the `'infusable' => true` config option
|
||||
will no longer be automatically infused. You should call `OO.ui.infuse()`
|
||||
on them yourself from your JavaScript code.
|
||||
* parserTests.php has moved to tests/parser/parserTests.php
|
||||
* The command line options specific to parser tests have been removed from
|
||||
phpunit.php: --regex and --keep-uploads. Instead of --regex, use --filter.
|
||||
Instead of --keep-uploads, use the same option to parserTests.php, but you
|
||||
must specify a directory with --upload-dir.
|
||||
* The 'jquery.arrowSteps' ResourceLoader module is now deprecated.
|
||||
* IP::isConfiguredProxy() and IP::isTrustedProxy() were removed. Callers should
|
||||
migrate to using the same functions on a ProxyLookup instance, obtainable from
|
||||
MediaWikiServices.
|
||||
* The ArticleAfterFetchContent, ArticleInsertComplete, ArticleSave, ArticleSaveComplete,
|
||||
ArticleViewCustom, EditFilterMerged, EditPageGetDiffText, EditPageGetPreviewText and
|
||||
ShowRawCssJs hooks will now emit deprecation warnings if used.
|
||||
* (T68404) CSS3 attr() function with url type is no longer allowed
|
||||
in inline styles.
|
||||
* Database::getSearchEngine() is deprecated, use SearchEngineFactory::getSearchEngineClass
|
||||
instead.
|
||||
|
||||
== Compatibility ==
|
||||
|
||||
MediaWiki 1.28 requires PHP 5.5.9 or later. There is experimental support for
|
||||
HHVM 3.6.5 or later.
|
||||
|
||||
MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
|
||||
support for them is somewhat less mature. There is experimental support for
|
||||
Oracle and Microsoft SQL Server.
|
||||
|
||||
The supported versions are:
|
||||
|
||||
* MySQL 5.0.3 or later
|
||||
* PostgreSQL 8.3 or later
|
||||
* SQLite 3.3.7 or later
|
||||
* Oracle 9.0.1 or later
|
||||
* Microsoft SQL Server 2005 (9.00.1399)
|
||||
|
||||
== Upgrading ==
|
||||
|
||||
1.28 has several database changes since 1.27, and will not work without schema
|
||||
updates. Note that due to changes to some very large tables like the revision
|
||||
table, the schema update may take quite long (minutes on a medium sized site,
|
||||
many hours on a large site).
|
||||
|
||||
If upgrading from before 1.11, and you are using a wiki as a commons
|
||||
repository, make sure that it is updated as well. Otherwise, errors may arise
|
||||
due to database schema changes.
|
||||
|
||||
If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
|
||||
new database fields are filled with data.
|
||||
|
||||
If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
|
||||
1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
|
||||
with MediaWiki 1.21.
|
||||
|
||||
Don't forget to always back up your database before upgrading!
|
||||
|
||||
See the file UPGRADE for more detailed upgrade instructions.
|
||||
|
||||
For notes on 1.27.x and older releases, see HISTORY.
|
||||
|
||||
== Online documentation ==
|
||||
|
||||
Documentation for both end-users and site administrators is available on
|
||||
MediaWiki.org, and is covered under the GNU Free Documentation License (except
|
||||
for pages that explicitly state that their contents are in the public domain):
|
||||
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation
|
||||
|
||||
== Mailing list ==
|
||||
|
||||
A mailing list is available for MediaWiki user support and discussion:
|
||||
|
||||
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
|
||||
|
||||
A low-traffic announcements-only list is also available:
|
||||
|
||||
https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
|
||||
|
||||
It's highly recommended that you sign up for one of these lists if you're
|
||||
going to run a public MediaWiki, so you can be notified of security fixes.
|
||||
|
||||
== IRC help ==
|
||||
|
||||
There's usually someone online in #mediawiki on irc.freenode.net.
|
9
UPGRADE
9
UPGRADE
|
@ -1,18 +1,17 @@
|
|||
|
||||
This file provides an overview of the MediaWiki upgrade process. For help with
|
||||
specific problems, check
|
||||
|
||||
* the documentation at https://www.mediawiki.org
|
||||
* the documentation at https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents
|
||||
* the mediawiki-l mailing list archive at
|
||||
http://lists.wikimedia.org/pipermail/mediawiki-l/
|
||||
* the bug tracker at https://phabricator.wikimedia.org
|
||||
* the bug tracker at https://phabricator.wikimedia.org/
|
||||
|
||||
for information and workarounds to common issues.
|
||||
|
||||
== Overview ==
|
||||
|
||||
Comprehensive documentation on upgrading to the latest version of the software
|
||||
is available at https://www.mediawiki.org/wiki/Manual:Upgrading.
|
||||
is available at https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Upgrading
|
||||
|
||||
=== Consult the release notes ===
|
||||
|
||||
|
@ -28,7 +27,7 @@ you take a complete backup of your wiki database and files and verify it. While
|
|||
the upgrade scripts are somewhat robust, there is no guarantee that things will
|
||||
not fail, leaving the database in an inconsistent state.
|
||||
|
||||
https://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki provides an overview of
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Backing_up_a_wiki provides an overview of
|
||||
the backup process. You should also refer to the documentation for your
|
||||
database management system for information on backing up a database, and to
|
||||
your operating system documentation for information on making copies of files.
|
||||
|
|
375
autoload.php
375
autoload.php
|
@ -5,10 +5,12 @@ global $wgAutoloadLocalClasses;
|
|||
|
||||
$wgAutoloadLocalClasses = [
|
||||
'APCBagOStuff' => __DIR__ . '/includes/libs/objectcache/APCBagOStuff.php',
|
||||
'APCUBagOStuff' => __DIR__ . '/includes/libs/objectcache/APCUBagOStuff.php',
|
||||
'AbstractContent' => __DIR__ . '/includes/content/AbstractContent.php',
|
||||
'Action' => __DIR__ . '/includes/actions/Action.php',
|
||||
'ActiveUsersPager' => __DIR__ . '/includes/specials/pagers/ActiveUsersPager.php',
|
||||
'ActivityUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/ActivityUpdateJob.php',
|
||||
'AddRFCAndPMIDInterwiki' => __DIR__ . '/maintenance/addRFCandPMIDInterwiki.php',
|
||||
'AjaxDispatcher' => __DIR__ . '/includes/AjaxDispatcher.php',
|
||||
'AjaxResponse' => __DIR__ . '/includes/AjaxResponse.php',
|
||||
'AllMessagesTablePager' => __DIR__ . '/includes/specials/pagers/AllMessagesTablePager.php',
|
||||
|
@ -21,6 +23,7 @@ $wgAutoloadLocalClasses = [
|
|||
'ApiAuthManagerHelper' => __DIR__ . '/includes/api/ApiAuthManagerHelper.php',
|
||||
'ApiBase' => __DIR__ . '/includes/api/ApiBase.php',
|
||||
'ApiBlock' => __DIR__ . '/includes/api/ApiBlock.php',
|
||||
'ApiCSPReport' => __DIR__ . '/includes/api/ApiCSPReport.php',
|
||||
'ApiChangeAuthenticationData' => __DIR__ . '/includes/api/ApiChangeAuthenticationData.php',
|
||||
'ApiCheckToken' => __DIR__ . '/includes/api/ApiCheckToken.php',
|
||||
'ApiClearHasMsg' => __DIR__ . '/includes/api/ApiClearHasMsg.php',
|
||||
|
@ -152,9 +155,11 @@ $wgAutoloadLocalClasses = [
|
|||
'AtomFeed' => __DIR__ . '/includes/Feed.php',
|
||||
'AtomicSectionUpdate' => __DIR__ . '/includes/deferred/AtomicSectionUpdate.php',
|
||||
'AttachLatest' => __DIR__ . '/maintenance/attachLatest.php',
|
||||
'AugmentPageProps' => __DIR__ . '/includes/search/AugmentPageProps.php',
|
||||
'AuthManagerSpecialPage' => __DIR__ . '/includes/specialpage/AuthManagerSpecialPage.php',
|
||||
'AuthPlugin' => __DIR__ . '/includes/AuthPlugin.php',
|
||||
'AuthPluginUser' => __DIR__ . '/includes/AuthPlugin.php',
|
||||
'AutoCommitUpdate' => __DIR__ . '/includes/deferred/AutoCommitUpdate.php',
|
||||
'AutoLoader' => __DIR__ . '/includes/AutoLoader.php',
|
||||
'AutoloadGenerator' => __DIR__ . '/includes/utils/AutoloadGenerator.php',
|
||||
'Autopromote' => __DIR__ . '/includes/Autopromote.php',
|
||||
|
@ -163,6 +168,7 @@ $wgAutoloadLocalClasses = [
|
|||
'BacklinkJobUtils' => __DIR__ . '/includes/jobqueue/utils/BacklinkJobUtils.php',
|
||||
'BackupDumper' => __DIR__ . '/maintenance/backup.inc',
|
||||
'BackupReader' => __DIR__ . '/maintenance/importDump.php',
|
||||
'BadRequestError' => __DIR__ . '/includes/exception/BadRequestError.php',
|
||||
'BadTitleError' => __DIR__ . '/includes/exception/BadTitleError.php',
|
||||
'BagOStuff' => __DIR__ . '/includes/libs/objectcache/BagOStuff.php',
|
||||
'BaseDump' => __DIR__ . '/maintenance/backupPrefetch.inc',
|
||||
|
@ -186,8 +192,9 @@ $wgAutoloadLocalClasses = [
|
|||
'BitmapHandler' => __DIR__ . '/includes/media/Bitmap.php',
|
||||
'BitmapHandler_ClientOnly' => __DIR__ . '/includes/media/Bitmap_ClientOnly.php',
|
||||
'BitmapMetadataHandler' => __DIR__ . '/includes/media/BitmapMetadataHandler.php',
|
||||
'Blob' => __DIR__ . '/includes/db/DatabaseUtility.php',
|
||||
'Blob' => __DIR__ . '/includes/libs/rdbms/encasing/Blob.php',
|
||||
'Block' => __DIR__ . '/includes/Block.php',
|
||||
'BlockLevelPass' => __DIR__ . '/includes/parser/BlockLevelPass.php',
|
||||
'BlockListPager' => __DIR__ . '/includes/specials/pagers/BlockListPager.php',
|
||||
'BlockLogFormatter' => __DIR__ . '/includes/logging/BlockLogFormatter.php',
|
||||
'BmpHandler' => __DIR__ . '/includes/media/BMP.php',
|
||||
|
@ -237,10 +244,11 @@ $wgAutoloadLocalClasses = [
|
|||
'CheckStorage' => __DIR__ . '/maintenance/storage/checkStorage.php',
|
||||
'CheckSyntax' => __DIR__ . '/maintenance/checkSyntax.php',
|
||||
'CheckUsernames' => __DIR__ . '/maintenance/checkUsernames.php',
|
||||
'ChronologyProtector' => __DIR__ . '/includes/db/ChronologyProtector.php',
|
||||
'ChronologyProtector' => __DIR__ . '/includes/libs/rdbms/ChronologyProtector.php',
|
||||
'ClassCollector' => __DIR__ . '/includes/utils/AutoloadGenerator.php',
|
||||
'CleanupAncientTables' => __DIR__ . '/maintenance/cleanupAncientTables.php',
|
||||
'CleanupBlocks' => __DIR__ . '/maintenance/cleanupBlocks.php',
|
||||
'CleanupEmptyCategories' => __DIR__ . '/maintenance/cleanupEmptyCategories.php',
|
||||
'CleanupPreferences' => __DIR__ . '/maintenance/cleanupPreferences.php',
|
||||
'CleanupRemovedModules' => __DIR__ . '/maintenance/cleanupRemovedModules.php',
|
||||
'CleanupSpam' => __DIR__ . '/maintenance/cleanupSpam.php',
|
||||
|
@ -276,54 +284,60 @@ $wgAutoloadLocalClasses = [
|
|||
'ConvertLinks' => __DIR__ . '/maintenance/convertLinks.php',
|
||||
'ConvertUserOptions' => __DIR__ . '/maintenance/convertUserOptions.php',
|
||||
'ConverterRule' => __DIR__ . '/languages/ConverterRule.php',
|
||||
'ConvertibleTimestamp' => __DIR__ . '/includes/libs/time/ConvertibleTimestamp.php',
|
||||
'Cookie' => __DIR__ . '/includes/libs/Cookie.php',
|
||||
'CookieJar' => __DIR__ . '/includes/libs/CookieJar.php',
|
||||
'CopyFileBackend' => __DIR__ . '/maintenance/copyFileBackend.php',
|
||||
'CopyFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'CopyFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/CopyFileOp.php',
|
||||
'CopyJobQueue' => __DIR__ . '/maintenance/copyJobQueue.php',
|
||||
'CoreParserFunctions' => __DIR__ . '/includes/parser/CoreParserFunctions.php',
|
||||
'CoreTagHooks' => __DIR__ . '/includes/parser/CoreTagHooks.php',
|
||||
'CoreVersionChecker' => __DIR__ . '/includes/registration/CoreVersionChecker.php',
|
||||
'CreateAndPromote' => __DIR__ . '/maintenance/createAndPromote.php',
|
||||
'CreateFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'CreateFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/CreateFileOp.php',
|
||||
'CreditsAction' => __DIR__ . '/includes/actions/CreditsAction.php',
|
||||
'CryptHKDF' => __DIR__ . '/includes/libs/CryptHKDF.php',
|
||||
'CryptRand' => __DIR__ . '/includes/libs/CryptRand.php',
|
||||
'CssContent' => __DIR__ . '/includes/content/CssContent.php',
|
||||
'CssContentHandler' => __DIR__ . '/includes/content/CssContentHandler.php',
|
||||
'CsvStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
|
||||
'CurlHttpRequest' => __DIR__ . '/includes/HttpFunctions.php',
|
||||
'CurlHttpRequest' => __DIR__ . '/includes/http/CurlHttpRequest.php',
|
||||
'DBAccessBase' => __DIR__ . '/includes/dao/DBAccessBase.php',
|
||||
'DBAccessError' => __DIR__ . '/includes/db/loadbalancer/LBFactory.php',
|
||||
'DBAccessError' => __DIR__ . '/includes/libs/rdbms/exception/DBAccessError.php',
|
||||
'DBAccessObjectUtils' => __DIR__ . '/includes/dao/DBAccessObjectUtils.php',
|
||||
'DBConnRef' => __DIR__ . '/includes/db/DBConnRef.php',
|
||||
'DBConnectionError' => __DIR__ . '/includes/db/DatabaseError.php',
|
||||
'DBError' => __DIR__ . '/includes/db/DatabaseError.php',
|
||||
'DBExpectedError' => __DIR__ . '/includes/db/DatabaseError.php',
|
||||
'DBConnRef' => __DIR__ . '/includes/libs/rdbms/database/DBConnRef.php',
|
||||
'DBConnectionError' => __DIR__ . '/includes/libs/rdbms/exception/DBConnectionError.php',
|
||||
'DBError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php',
|
||||
'DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBExpectedError.php',
|
||||
'DBFileJournal' => __DIR__ . '/includes/filebackend/filejournal/DBFileJournal.php',
|
||||
'DBLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php',
|
||||
'DBMasterPos' => __DIR__ . '/includes/db/DatabaseUtility.php',
|
||||
'DBQueryError' => __DIR__ . '/includes/db/DatabaseError.php',
|
||||
'DBReadOnlyError' => __DIR__ . '/includes/db/DatabaseError.php',
|
||||
'DBReplicationWaitError' => __DIR__ . '/includes/db/loadbalancer/LBFactory.php',
|
||||
'DBLockManager' => __DIR__ . '/includes/libs/lockmanager/DBLockManager.php',
|
||||
'DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php',
|
||||
'DBQueryError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryError.php',
|
||||
'DBReadOnlyError' => __DIR__ . '/includes/libs/rdbms/exception/DBReadOnlyError.php',
|
||||
'DBReplicationWaitError' => __DIR__ . '/includes/libs/rdbms/exception/DBReplicationWaitError.php',
|
||||
'DBSiteStore' => __DIR__ . '/includes/site/DBSiteStore.php',
|
||||
'DBTransactionError' => __DIR__ . '/includes/db/DatabaseError.php',
|
||||
'DBUnexpectedError' => __DIR__ . '/includes/db/DatabaseError.php',
|
||||
'DBTransactionError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionError.php',
|
||||
'DBTransactionSizeError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionSizeError.php',
|
||||
'DBUnexpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBUnexpectedError.php',
|
||||
'DataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php',
|
||||
'Database' => __DIR__ . '/includes/db/Database.php',
|
||||
'DatabaseBase' => __DIR__ . '/includes/db/Database.php',
|
||||
'Database' => __DIR__ . '/includes/libs/rdbms/database/Database.php',
|
||||
'DatabaseBase' => __DIR__ . '/includes/libs/rdbms/database/Database.php',
|
||||
'DatabaseDomain' => __DIR__ . '/includes/libs/rdbms/database/DatabaseDomain.php',
|
||||
'DatabaseInstaller' => __DIR__ . '/includes/installer/DatabaseInstaller.php',
|
||||
'DatabaseLag' => __DIR__ . '/maintenance/lag.php',
|
||||
'DatabaseLogEntry' => __DIR__ . '/includes/logging/LogEntry.php',
|
||||
'DatabaseMssql' => __DIR__ . '/includes/db/DatabaseMssql.php',
|
||||
'DatabaseMysql' => __DIR__ . '/includes/db/DatabaseMysql.php',
|
||||
'DatabaseMysqlBase' => __DIR__ . '/includes/db/DatabaseMysqlBase.php',
|
||||
'DatabaseMysqli' => __DIR__ . '/includes/db/DatabaseMysqli.php',
|
||||
'DatabaseMysql' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysql.php',
|
||||
'DatabaseMysqlBase' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqlBase.php',
|
||||
'DatabaseMysqli' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqli.php',
|
||||
'DatabaseOracle' => __DIR__ . '/includes/db/DatabaseOracle.php',
|
||||
'DatabasePostgres' => __DIR__ . '/includes/db/DatabasePostgres.php',
|
||||
'DatabaseSqlite' => __DIR__ . '/includes/db/DatabaseSqlite.php',
|
||||
'DatabasePostgres' => __DIR__ . '/includes/libs/rdbms/database/DatabasePostgres.php',
|
||||
'DatabaseSqlite' => __DIR__ . '/includes/libs/rdbms/database/DatabaseSqlite.php',
|
||||
'DatabaseUpdater' => __DIR__ . '/includes/installer/DatabaseUpdater.php',
|
||||
'DateFormats' => __DIR__ . '/maintenance/language/date-formats.php',
|
||||
'DateFormatter' => __DIR__ . '/includes/parser/DateFormatter.php',
|
||||
'DeadendPagesPage' => __DIR__ . '/includes/specials/SpecialDeadendpages.php',
|
||||
'DeferrableCallback' => __DIR__ . '/includes/deferred/DeferrableCallback.php',
|
||||
'DeferrableUpdate' => __DIR__ . '/includes/deferred/DeferrableUpdate.php',
|
||||
'DeferredStringifier' => __DIR__ . '/includes/libs/DeferredStringifier.php',
|
||||
'DeferredUpdates' => __DIR__ . '/includes/deferred/DeferredUpdates.php',
|
||||
|
@ -333,7 +347,7 @@ $wgAutoloadLocalClasses = [
|
|||
'DeleteBatch' => __DIR__ . '/maintenance/deleteBatch.php',
|
||||
'DeleteDefaultMessages' => __DIR__ . '/maintenance/deleteDefaultMessages.php',
|
||||
'DeleteEqualMessages' => __DIR__ . '/maintenance/deleteEqualMessages.php',
|
||||
'DeleteFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'DeleteFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/DeleteFileOp.php',
|
||||
'DeleteLinksJob' => __DIR__ . '/includes/jobqueue/jobs/DeleteLinksJob.php',
|
||||
'DeleteLogFormatter' => __DIR__ . '/includes/logging/DeleteLogFormatter.php',
|
||||
'DeleteOldRevisions' => __DIR__ . '/maintenance/deleteOldRevisions.php',
|
||||
|
@ -348,9 +362,9 @@ $wgAutoloadLocalClasses = [
|
|||
'DerivativeContext' => __DIR__ . '/includes/context/DerivativeContext.php',
|
||||
'DerivativeRequest' => __DIR__ . '/includes/DerivativeRequest.php',
|
||||
'DerivativeResourceLoaderContext' => __DIR__ . '/includes/resourceloader/DerivativeResourceLoaderContext.php',
|
||||
'DescribeFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'DescribeFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/DescribeFileOp.php',
|
||||
'Diff' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
'DiffEngine' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
'DiffEngine' => __DIR__ . '/includes/diff/DiffEngine.php',
|
||||
'DiffFormatter' => __DIR__ . '/includes/diff/DiffFormatter.php',
|
||||
'DiffHistoryBlob' => __DIR__ . '/includes/HistoryBlob.php',
|
||||
'DiffOp' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
|
@ -366,6 +380,7 @@ $wgAutoloadLocalClasses = [
|
|||
'DoubleRedirectsPage' => __DIR__ . '/includes/specials/SpecialDoubleRedirects.php',
|
||||
'DoubleReplacer' => __DIR__ . '/includes/libs/replacers/DoubleReplacer.php',
|
||||
'DummyLinker' => __DIR__ . '/includes/DummyLinker.php',
|
||||
'DummySearchIndexFieldDefinition' => __DIR__ . '/includes/search/DummySearchIndexFieldDefinition.php',
|
||||
'DummyTermColorer' => __DIR__ . '/maintenance/term/MWTerm.php',
|
||||
'Dump7ZipOutput' => __DIR__ . '/includes/export/Dump7ZipOutput.php',
|
||||
'DumpBZip2Output' => __DIR__ . '/includes/export/DumpBZip2Output.php',
|
||||
|
@ -385,6 +400,7 @@ $wgAutoloadLocalClasses = [
|
|||
'DumpPipeOutput' => __DIR__ . '/includes/export/DumpPipeOutput.php',
|
||||
'DumpRenderer' => __DIR__ . '/maintenance/renderDump.php',
|
||||
'DumpRev' => __DIR__ . '/maintenance/storage/dumpRev.php',
|
||||
'DumpStringOutput' => __DIR__ . '/includes/export/DumpStringOutput.php',
|
||||
'DuplicateJob' => __DIR__ . '/includes/jobqueue/jobs/DuplicateJob.php',
|
||||
'EditAction' => __DIR__ . '/includes/actions/EditAction.php',
|
||||
'EditCLI' => __DIR__ . '/maintenance/edit.php',
|
||||
|
@ -400,7 +416,7 @@ $wgAutoloadLocalClasses = [
|
|||
'EnhancedChangesList' => __DIR__ . '/includes/changes/EnhancedChangesList.php',
|
||||
'EnotifNotifyJob' => __DIR__ . '/includes/jobqueue/jobs/EnotifNotifyJob.php',
|
||||
'EnqueueJob' => __DIR__ . '/includes/jobqueue/jobs/EnqueueJob.php',
|
||||
'EnqueueableDataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php',
|
||||
'EnqueueableDataUpdate' => __DIR__ . '/includes/deferred/EnqueueableDataUpdate.php',
|
||||
'EraseArchivedFile' => __DIR__ . '/maintenance/eraseArchivedFile.php',
|
||||
'ErrorPageError' => __DIR__ . '/includes/exception/ErrorPageError.php',
|
||||
'EventRelayer' => __DIR__ . '/includes/libs/eventrelayer/EventRelayer.php',
|
||||
|
@ -420,18 +436,18 @@ $wgAutoloadLocalClasses = [
|
|||
'ExternalStoreHttp' => __DIR__ . '/includes/externalstore/ExternalStoreHttp.php',
|
||||
'ExternalStoreMedium' => __DIR__ . '/includes/externalstore/ExternalStoreMedium.php',
|
||||
'ExternalStoreMwstore' => __DIR__ . '/includes/externalstore/ExternalStoreMwstore.php',
|
||||
'FSFile' => __DIR__ . '/includes/filebackend/FSFile.php',
|
||||
'FSFileBackend' => __DIR__ . '/includes/filebackend/FSFileBackend.php',
|
||||
'FSFileBackendDirList' => __DIR__ . '/includes/filebackend/FSFileBackend.php',
|
||||
'FSFileBackendFileList' => __DIR__ . '/includes/filebackend/FSFileBackend.php',
|
||||
'FSFileBackendList' => __DIR__ . '/includes/filebackend/FSFileBackend.php',
|
||||
'FSFileOpHandle' => __DIR__ . '/includes/filebackend/FSFileBackend.php',
|
||||
'FSLockManager' => __DIR__ . '/includes/filebackend/lockmanager/FSLockManager.php',
|
||||
'FSFile' => __DIR__ . '/includes/libs/filebackend/fsfile/FSFile.php',
|
||||
'FSFileBackend' => __DIR__ . '/includes/libs/filebackend/FSFileBackend.php',
|
||||
'FSFileBackendDirList' => __DIR__ . '/includes/libs/filebackend/FSFileBackend.php',
|
||||
'FSFileBackendFileList' => __DIR__ . '/includes/libs/filebackend/FSFileBackend.php',
|
||||
'FSFileBackendList' => __DIR__ . '/includes/libs/filebackend/FSFileBackend.php',
|
||||
'FSFileOpHandle' => __DIR__ . '/includes/libs/filebackend/FSFileBackend.php',
|
||||
'FSLockManager' => __DIR__ . '/includes/libs/lockmanager/FSLockManager.php',
|
||||
'FSRepo' => __DIR__ . '/includes/filerepo/FSRepo.php',
|
||||
'FakeAuthTemplate' => __DIR__ . '/includes/specialpage/LoginSignupSpecialPage.php',
|
||||
'FakeConverter' => __DIR__ . '/languages/FakeConverter.php',
|
||||
'FakeMaintenance' => __DIR__ . '/maintenance/Maintenance.php',
|
||||
'FakeResultWrapper' => __DIR__ . '/includes/db/DatabaseUtility.php',
|
||||
'FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php',
|
||||
'FatalError' => __DIR__ . '/includes/exception/FatalError.php',
|
||||
'FauxRequest' => __DIR__ . '/includes/FauxRequest.php',
|
||||
'FauxResponse' => __DIR__ . '/includes/WebResponse.php',
|
||||
|
@ -439,29 +455,29 @@ $wgAutoloadLocalClasses = [
|
|||
'FeedUtils' => __DIR__ . '/includes/FeedUtils.php',
|
||||
'FetchText' => __DIR__ . '/maintenance/fetchText.php',
|
||||
'FewestrevisionsPage' => __DIR__ . '/includes/specials/SpecialFewestrevisions.php',
|
||||
'Field' => __DIR__ . '/includes/db/DatabaseUtility.php',
|
||||
'Field' => __DIR__ . '/includes/libs/rdbms/field/Field.php',
|
||||
'File' => __DIR__ . '/includes/filerepo/file/File.php',
|
||||
'FileAwareNodeVisitor' => __DIR__ . '/maintenance/findDeprecated.php',
|
||||
'FileBackend' => __DIR__ . '/includes/filebackend/FileBackend.php',
|
||||
'FileBackend' => __DIR__ . '/includes/libs/filebackend/FileBackend.php',
|
||||
'FileBackendDBRepoWrapper' => __DIR__ . '/includes/filerepo/FileBackendDBRepoWrapper.php',
|
||||
'FileBackendError' => __DIR__ . '/includes/filebackend/FileBackend.php',
|
||||
'FileBackendException' => __DIR__ . '/includes/filebackend/FileBackend.php',
|
||||
'FileBackendError' => __DIR__ . '/includes/libs/filebackend/FileBackendError.php',
|
||||
'FileBackendGroup' => __DIR__ . '/includes/filebackend/FileBackendGroup.php',
|
||||
'FileBackendMultiWrite' => __DIR__ . '/includes/filebackend/FileBackendMultiWrite.php',
|
||||
'FileBackendStore' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreOpHandle' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreShardDirIterator' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreShardFileIterator' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreShardListIterator' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
|
||||
'FileBackendMultiWrite' => __DIR__ . '/includes/libs/filebackend/FileBackendMultiWrite.php',
|
||||
'FileBackendStore' => __DIR__ . '/includes/libs/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreOpHandle' => __DIR__ . '/includes/libs/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreShardDirIterator' => __DIR__ . '/includes/libs/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreShardFileIterator' => __DIR__ . '/includes/libs/filebackend/FileBackendStore.php',
|
||||
'FileBackendStoreShardListIterator' => __DIR__ . '/includes/libs/filebackend/FileBackendStore.php',
|
||||
'FileBasedSiteLookup' => __DIR__ . '/includes/site/FileBasedSiteLookup.php',
|
||||
'FileCacheBase' => __DIR__ . '/includes/cache/FileCacheBase.php',
|
||||
'FileContentHandler' => __DIR__ . '/includes/content/FileContentHandler.php',
|
||||
'FileContentsHasher' => __DIR__ . '/includes/utils/FileContentsHasher.php',
|
||||
'FileDeleteForm' => __DIR__ . '/includes/FileDeleteForm.php',
|
||||
'FileDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
|
||||
'FileDuplicateSearchPage' => __DIR__ . '/includes/specials/SpecialFileDuplicateSearch.php',
|
||||
'FileJournal' => __DIR__ . '/includes/filebackend/filejournal/FileJournal.php',
|
||||
'FileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'FileOpBatch' => __DIR__ . '/includes/filebackend/FileOpBatch.php',
|
||||
'FileJournal' => __DIR__ . '/includes/libs/filebackend/filejournal/FileJournal.php',
|
||||
'FileOp' => __DIR__ . '/includes/libs/filebackend/fileop/FileOp.php',
|
||||
'FileOpBatch' => __DIR__ . '/includes/libs/filebackend/FileOpBatch.php',
|
||||
'FileRepo' => __DIR__ . '/includes/filerepo/FileRepo.php',
|
||||
'FileRepoStatus' => __DIR__ . '/includes/filerepo/FileRepoStatus.php',
|
||||
'FindDeprecated' => __DIR__ . '/maintenance/findDeprecated.php',
|
||||
|
@ -501,46 +517,53 @@ $wgAutoloadLocalClasses = [
|
|||
'GenericArrayObject' => __DIR__ . '/includes/libs/GenericArrayObject.php',
|
||||
'GetConfiguration' => __DIR__ . '/maintenance/getConfiguration.php',
|
||||
'GetLagTimes' => __DIR__ . '/maintenance/getLagTimes.php',
|
||||
'GetSlaveServer' => __DIR__ . '/maintenance/getSlaveServer.php',
|
||||
'GetSlaveServer' => __DIR__ . '/maintenance/getReplicaServer.php',
|
||||
'GetTextMaint' => __DIR__ . '/maintenance/getText.php',
|
||||
'GitInfo' => __DIR__ . '/includes/GitInfo.php',
|
||||
'GlobalDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
|
||||
'GlobalVarConfig' => __DIR__ . '/includes/config/GlobalVarConfig.php',
|
||||
'HTMLApiField' => __DIR__ . '/includes/htmlform/HTMLApiField.php',
|
||||
'HTMLAutoCompleteSelectField' => __DIR__ . '/includes/htmlform/HTMLAutoCompleteSelectField.php',
|
||||
'HTMLButtonField' => __DIR__ . '/includes/htmlform/HTMLButtonField.php',
|
||||
'HHVMMakeRepo' => __DIR__ . '/maintenance/hhvm/makeRepo.php',
|
||||
'HTMLApiField' => __DIR__ . '/includes/htmlform/fields/HTMLApiField.php',
|
||||
'HTMLAutoCompleteSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLAutoCompleteSelectField.php',
|
||||
'HTMLButtonField' => __DIR__ . '/includes/htmlform/fields/HTMLButtonField.php',
|
||||
'HTMLCacheUpdate' => __DIR__ . '/includes/deferred/HTMLCacheUpdate.php',
|
||||
'HTMLCacheUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/HTMLCacheUpdateJob.php',
|
||||
'HTMLCheckField' => __DIR__ . '/includes/htmlform/HTMLCheckField.php',
|
||||
'HTMLCheckMatrix' => __DIR__ . '/includes/htmlform/HTMLCheckMatrix.php',
|
||||
'HTMLComboboxField' => __DIR__ . '/includes/htmlform/HTMLComboboxField.php',
|
||||
'HTMLEditTools' => __DIR__ . '/includes/htmlform/HTMLEditTools.php',
|
||||
'HTMLCheckField' => __DIR__ . '/includes/htmlform/fields/HTMLCheckField.php',
|
||||
'HTMLCheckMatrix' => __DIR__ . '/includes/htmlform/fields/HTMLCheckMatrix.php',
|
||||
'HTMLComboboxField' => __DIR__ . '/includes/htmlform/fields/HTMLComboboxField.php',
|
||||
'HTMLDateTimeField' => __DIR__ . '/includes/htmlform/fields/HTMLDateTimeField.php',
|
||||
'HTMLEditTools' => __DIR__ . '/includes/htmlform/fields/HTMLEditTools.php',
|
||||
'HTMLFileCache' => __DIR__ . '/includes/cache/HTMLFileCache.php',
|
||||
'HTMLFloatField' => __DIR__ . '/includes/htmlform/HTMLFloatField.php',
|
||||
'HTMLFloatField' => __DIR__ . '/includes/htmlform/fields/HTMLFloatField.php',
|
||||
'HTMLForm' => __DIR__ . '/includes/htmlform/HTMLForm.php',
|
||||
'HTMLFormActionFieldLayout' => __DIR__ . '/includes/htmlform/HTMLFormElement.php',
|
||||
'HTMLFormElement' => __DIR__ . '/includes/htmlform/HTMLFormElement.php',
|
||||
'HTMLFormField' => __DIR__ . '/includes/htmlform/HTMLFormField.php',
|
||||
'HTMLFormFieldCloner' => __DIR__ . '/includes/htmlform/HTMLFormFieldCloner.php',
|
||||
'HTMLFormFieldCloner' => __DIR__ . '/includes/htmlform/fields/HTMLFormFieldCloner.php',
|
||||
'HTMLFormFieldLayout' => __DIR__ . '/includes/htmlform/HTMLFormElement.php',
|
||||
'HTMLFormFieldRequiredOptionsException' => __DIR__ . '/includes/htmlform/HTMLFormFieldRequiredOptionsException.php',
|
||||
'HTMLFormFieldWithButton' => __DIR__ . '/includes/htmlform/HTMLFormFieldWithButton.php',
|
||||
'HTMLHiddenField' => __DIR__ . '/includes/htmlform/HTMLHiddenField.php',
|
||||
'HTMLInfoField' => __DIR__ . '/includes/htmlform/HTMLInfoField.php',
|
||||
'HTMLIntField' => __DIR__ . '/includes/htmlform/HTMLIntField.php',
|
||||
'HTMLMultiSelectField' => __DIR__ . '/includes/htmlform/HTMLMultiSelectField.php',
|
||||
'HTMLFormFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLFormFieldWithButton.php',
|
||||
'HTMLHiddenField' => __DIR__ . '/includes/htmlform/fields/HTMLHiddenField.php',
|
||||
'HTMLInfoField' => __DIR__ . '/includes/htmlform/fields/HTMLInfoField.php',
|
||||
'HTMLIntField' => __DIR__ . '/includes/htmlform/fields/HTMLIntField.php',
|
||||
'HTMLMultiSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLMultiSelectField.php',
|
||||
'HTMLNestedFilterable' => __DIR__ . '/includes/htmlform/HTMLNestedFilterable.php',
|
||||
'HTMLRadioField' => __DIR__ . '/includes/htmlform/HTMLRadioField.php',
|
||||
'HTMLSelectAndOtherField' => __DIR__ . '/includes/htmlform/HTMLSelectAndOtherField.php',
|
||||
'HTMLSelectField' => __DIR__ . '/includes/htmlform/HTMLSelectField.php',
|
||||
'HTMLSelectLimitField' => __DIR__ . '/includes/htmlform/HTMLSelectLimitField.php',
|
||||
'HTMLSelectNamespace' => __DIR__ . '/includes/htmlform/HTMLSelectNamespace.php',
|
||||
'HTMLSelectNamespaceWithButton' => __DIR__ . '/includes/htmlform/HTMLSelectNamespaceWithButton.php',
|
||||
'HTMLSelectOrOtherField' => __DIR__ . '/includes/htmlform/HTMLSelectOrOtherField.php',
|
||||
'HTMLSubmitField' => __DIR__ . '/includes/htmlform/HTMLSubmitField.php',
|
||||
'HTMLTagFilter' => __DIR__ . '/includes/htmlform/HTMLTagFilter.php',
|
||||
'HTMLTextAreaField' => __DIR__ . '/includes/htmlform/HTMLTextAreaField.php',
|
||||
'HTMLTextField' => __DIR__ . '/includes/htmlform/HTMLTextField.php',
|
||||
'HTMLTextFieldWithButton' => __DIR__ . '/includes/htmlform/HTMLTextFieldWithButton.php',
|
||||
'HTMLTitleTextField' => __DIR__ . '/includes/htmlform/HTMLTitleTextField.php',
|
||||
'HTMLUserTextField' => __DIR__ . '/includes/htmlform/HTMLUserTextField.php',
|
||||
'HTMLRadioField' => __DIR__ . '/includes/htmlform/fields/HTMLRadioField.php',
|
||||
'HTMLRestrictionsField' => __DIR__ . '/includes/htmlform/fields/HTMLRestrictionsField.php',
|
||||
'HTMLSelectAndOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectAndOtherField.php',
|
||||
'HTMLSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectField.php',
|
||||
'HTMLSelectLimitField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLimitField.php',
|
||||
'HTMLSelectNamespace' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespace.php',
|
||||
'HTMLSelectNamespaceWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespaceWithButton.php',
|
||||
'HTMLSelectOrOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectOrOtherField.php',
|
||||
'HTMLSubmitField' => __DIR__ . '/includes/htmlform/fields/HTMLSubmitField.php',
|
||||
'HTMLTagFilter' => __DIR__ . '/includes/htmlform/fields/HTMLTagFilter.php',
|
||||
'HTMLTextAreaField' => __DIR__ . '/includes/htmlform/fields/HTMLTextAreaField.php',
|
||||
'HTMLTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTextField.php',
|
||||
'HTMLTextFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLTextFieldWithButton.php',
|
||||
'HTMLTitleTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTitleTextField.php',
|
||||
'HTMLUserTextField' => __DIR__ . '/includes/htmlform/fields/HTMLUserTextField.php',
|
||||
'HTTPFileStreamer' => __DIR__ . '/includes/libs/filebackend/HTTPFileStreamer.php',
|
||||
'HWLDFWordAccumulator' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
'HashBagOStuff' => __DIR__ . '/includes/libs/objectcache/HashBagOStuff.php',
|
||||
'HashConfig' => __DIR__ . '/includes/config/HashConfig.php',
|
||||
|
@ -554,20 +577,25 @@ $wgAutoloadLocalClasses = [
|
|||
'HistoryPager' => __DIR__ . '/includes/actions/HistoryAction.php',
|
||||
'Hooks' => __DIR__ . '/includes/Hooks.php',
|
||||
'Html' => __DIR__ . '/includes/Html.php',
|
||||
'HtmlArmor' => __DIR__ . '/includes/libs/HtmlArmor.php',
|
||||
'HtmlFormatter' => __DIR__ . '/includes/HtmlFormatter.php',
|
||||
'Http' => __DIR__ . '/includes/HttpFunctions.php',
|
||||
'Http' => __DIR__ . '/includes/http/Http.php',
|
||||
'HttpError' => __DIR__ . '/includes/exception/HttpError.php',
|
||||
'HttpStatus' => __DIR__ . '/includes/libs/HttpStatus.php',
|
||||
'IApiMessage' => __DIR__ . '/includes/api/ApiMessage.php',
|
||||
'ICacheHelper' => __DIR__ . '/includes/cache/CacheHelper.php',
|
||||
'IContextSource' => __DIR__ . '/includes/context/IContextSource.php',
|
||||
'IDBAccessObject' => __DIR__ . '/includes/dao/IDBAccessObject.php',
|
||||
'IDatabase' => __DIR__ . '/includes/db/IDatabase.php',
|
||||
'IEContentAnalyzer' => __DIR__ . '/includes/libs/IEContentAnalyzer.php',
|
||||
'IDatabase' => __DIR__ . '/includes/libs/rdbms/database/IDatabase.php',
|
||||
'IEContentAnalyzer' => __DIR__ . '/includes/libs/mime/IEContentAnalyzer.php',
|
||||
'IEUrlExtension' => __DIR__ . '/includes/libs/IEUrlExtension.php',
|
||||
'IExpiringStore' => __DIR__ . '/includes/libs/objectcache/IExpiringStore.php',
|
||||
'IJobSpecification' => __DIR__ . '/includes/jobqueue/JobSpecification.php',
|
||||
'IP' => __DIR__ . '/includes/utils/IP.php',
|
||||
'ILBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/ILBFactory.php',
|
||||
'ILoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/ILoadBalancer.php',
|
||||
'ILoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/ILoadMonitor.php',
|
||||
'IMaintainableDatabase' => __DIR__ . '/includes/libs/rdbms/database/IMaintainableDatabase.php',
|
||||
'IP' => __DIR__ . '/includes/libs/IP.php',
|
||||
'IPSet' => __DIR__ . '/includes/compat/IPSetCompat.php',
|
||||
'IPTC' => __DIR__ . '/includes/media/IPTC.php',
|
||||
'IRCColourfulRCFeedFormatter' => __DIR__ . '/includes/rcfeed/IRCColourfulRCFeedFormatter.php',
|
||||
|
@ -603,7 +631,8 @@ $wgAutoloadLocalClasses = [
|
|||
'InstallerSessionProvider' => __DIR__ . '/includes/installer/InstallerSessionProvider.php',
|
||||
'Interwiki' => __DIR__ . '/includes/interwiki/Interwiki.php',
|
||||
'InvalidPassword' => __DIR__ . '/includes/password/InvalidPassword.php',
|
||||
'IteratorDecorator' => __DIR__ . '/includes/utils/iterators/IteratorDecorator.php',
|
||||
'InvalidateUserSesssions' => __DIR__ . '/maintenance/invalidateUserSessions.php',
|
||||
'IteratorDecorator' => __DIR__ . '/includes/libs/iterators/IteratorDecorator.php',
|
||||
'IuConverter' => __DIR__ . '/languages/classes/LanguageIu.php',
|
||||
'JSCompilerContext' => __DIR__ . '/includes/libs/jsminplus.php',
|
||||
'JSMinPlus' => __DIR__ . '/includes/libs/jsminplus.php',
|
||||
|
@ -637,11 +666,10 @@ $wgAutoloadLocalClasses = [
|
|||
'JsonContentHandler' => __DIR__ . '/includes/content/JsonContentHandler.php',
|
||||
'KkConverter' => __DIR__ . '/languages/classes/LanguageKk.php',
|
||||
'KuConverter' => __DIR__ . '/languages/classes/LanguageKu.php',
|
||||
'LBFactory' => __DIR__ . '/includes/db/loadbalancer/LBFactory.php',
|
||||
'LBFactoryFake' => __DIR__ . '/includes/db/loadbalancer/LBFactoryFake.php',
|
||||
'LBFactoryMulti' => __DIR__ . '/includes/db/loadbalancer/LBFactoryMulti.php',
|
||||
'LBFactorySimple' => __DIR__ . '/includes/db/loadbalancer/LBFactorySimple.php',
|
||||
'LBFactorySingle' => __DIR__ . '/includes/db/loadbalancer/LBFactorySingle.php',
|
||||
'LBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactory.php',
|
||||
'LBFactoryMulti' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactoryMulti.php',
|
||||
'LBFactorySimple' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySimple.php',
|
||||
'LBFactorySingle' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySingle.php',
|
||||
'LCStore' => __DIR__ . '/includes/cache/localisation/LCStore.php',
|
||||
'LCStoreCDB' => __DIR__ . '/includes/cache/localisation/LCStoreCDB.php',
|
||||
'LCStoreDB' => __DIR__ . '/includes/cache/localisation/LCStoreDB.php',
|
||||
|
@ -657,7 +685,6 @@ $wgAutoloadLocalClasses = [
|
|||
'LanguageConverter' => __DIR__ . '/languages/LanguageConverter.php',
|
||||
'LanguageCu' => __DIR__ . '/languages/classes/LanguageCu.php',
|
||||
'LanguageDsb' => __DIR__ . '/languages/classes/LanguageDsb.php',
|
||||
'LanguageEo' => __DIR__ . '/languages/classes/LanguageEo.php',
|
||||
'LanguageEs' => __DIR__ . '/languages/classes/LanguageEs.php',
|
||||
'LanguageEt' => __DIR__ . '/languages/classes/LanguageEt.php',
|
||||
'LanguageFi' => __DIR__ . '/languages/classes/LanguageFi.php',
|
||||
|
@ -700,7 +727,7 @@ $wgAutoloadLocalClasses = [
|
|||
'LegacyLogFormatter' => __DIR__ . '/includes/logging/LogFormatter.php',
|
||||
'License' => __DIR__ . '/includes/Licenses.php',
|
||||
'Licenses' => __DIR__ . '/includes/Licenses.php',
|
||||
'LikeMatch' => __DIR__ . '/includes/db/DatabaseUtility.php',
|
||||
'LikeMatch' => __DIR__ . '/includes/libs/rdbms/encasing/LikeMatch.php',
|
||||
'LinkBatch' => __DIR__ . '/includes/cache/LinkBatch.php',
|
||||
'LinkCache' => __DIR__ . '/includes/cache/LinkCache.php',
|
||||
'LinkFilter' => __DIR__ . '/includes/LinkFilter.php',
|
||||
|
@ -713,11 +740,11 @@ $wgAutoloadLocalClasses = [
|
|||
'ListToggle' => __DIR__ . '/includes/ListToggle.php',
|
||||
'ListVariants' => __DIR__ . '/maintenance/language/listVariants.php',
|
||||
'ListredirectsPage' => __DIR__ . '/includes/specials/SpecialListredirects.php',
|
||||
'LoadBalancer' => __DIR__ . '/includes/db/loadbalancer/LoadBalancer.php',
|
||||
'LoadBalancerSingle' => __DIR__ . '/includes/db/loadbalancer/LBFactorySingle.php',
|
||||
'LoadMonitor' => __DIR__ . '/includes/db/loadbalancer/LoadMonitor.php',
|
||||
'LoadMonitorMySQL' => __DIR__ . '/includes/db/loadbalancer/LoadMonitorMySQL.php',
|
||||
'LoadMonitorNull' => __DIR__ . '/includes/db/loadbalancer/LoadMonitor.php',
|
||||
'LoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancer.php',
|
||||
'LoadBalancerSingle' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php',
|
||||
'LoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitor.php',
|
||||
'LoadMonitorMySQL' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php',
|
||||
'LoadMonitorNull' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorNull.php',
|
||||
'LocalFile' => __DIR__ . '/includes/filerepo/file/LocalFile.php',
|
||||
'LocalFileDeleteBatch' => __DIR__ . '/includes/filerepo/file/LocalFile.php',
|
||||
'LocalFileLockError' => __DIR__ . '/includes/filerepo/file/LocalFile.php',
|
||||
|
@ -728,7 +755,7 @@ $wgAutoloadLocalClasses = [
|
|||
'LocalSettingsGenerator' => __DIR__ . '/includes/installer/LocalSettingsGenerator.php',
|
||||
'LocalisationCache' => __DIR__ . '/includes/cache/localisation/LocalisationCache.php',
|
||||
'LocalisationCacheBulkLoad' => __DIR__ . '/includes/cache/localisation/LocalisationCacheBulkLoad.php',
|
||||
'LockManager' => __DIR__ . '/includes/filebackend/lockmanager/LockManager.php',
|
||||
'LockManager' => __DIR__ . '/includes/libs/lockmanager/LockManager.php',
|
||||
'LockManagerGroup' => __DIR__ . '/includes/filebackend/lockmanager/LockManagerGroup.php',
|
||||
'LogEntry' => __DIR__ . '/includes/logging/LogEntry.php',
|
||||
'LogEntryBase' => __DIR__ . '/includes/logging/LogEntry.php',
|
||||
|
@ -744,17 +771,20 @@ $wgAutoloadLocalClasses = [
|
|||
'LonelyPagesPage' => __DIR__ . '/includes/specials/SpecialLonelypages.php',
|
||||
'LongPagesPage' => __DIR__ . '/includes/specials/SpecialLongpages.php',
|
||||
'MIMEsearchPage' => __DIR__ . '/includes/specials/SpecialMIMEsearch.php',
|
||||
'MWCallableUpdate' => __DIR__ . '/includes/deferred/CallableUpdate.php',
|
||||
'MWCallableUpdate' => __DIR__ . '/includes/deferred/MWCallableUpdate.php',
|
||||
'MWContentSerializationException' => __DIR__ . '/includes/content/ContentHandler.php',
|
||||
'MWCryptHKDF' => __DIR__ . '/includes/utils/MWCryptHKDF.php',
|
||||
'MWCryptHash' => __DIR__ . '/includes/utils/MWCryptHash.php',
|
||||
'MWCryptHash' => __DIR__ . '/includes/libs/MWCryptHash.php',
|
||||
'MWCryptRand' => __DIR__ . '/includes/utils/MWCryptRand.php',
|
||||
'MWDebug' => __DIR__ . '/includes/debug/MWDebug.php',
|
||||
'MWDocGen' => __DIR__ . '/maintenance/mwdocgen.php',
|
||||
'MWException' => __DIR__ . '/includes/exception/MWException.php',
|
||||
'MWExceptionHandler' => __DIR__ . '/includes/exception/MWExceptionHandler.php',
|
||||
'MWGrants' => __DIR__ . '/includes/utils/MWGrants.php',
|
||||
'MWHttpRequest' => __DIR__ . '/includes/HttpFunctions.php',
|
||||
'MWExceptionRenderer' => __DIR__ . '/includes/exception/MWExceptionRenderer.php',
|
||||
'MWFileProps' => __DIR__ . '/includes/utils/MWFileProps.php',
|
||||
'MWGrants' => __DIR__ . '/includes/MWGrants.php',
|
||||
'MWHttpRequest' => __DIR__ . '/includes/http/MWHttpRequest.php',
|
||||
'MWLBFactory' => __DIR__ . '/includes/db/MWLBFactory.php',
|
||||
'MWMemcached' => __DIR__ . '/includes/compat/MemcachedClientCompat.php',
|
||||
'MWMessagePack' => __DIR__ . '/includes/libs/MWMessagePack.php',
|
||||
'MWNamespace' => __DIR__ . '/includes/MWNamespace.php',
|
||||
|
@ -768,24 +798,24 @@ $wgAutoloadLocalClasses = [
|
|||
'MagicWord' => __DIR__ . '/includes/MagicWord.php',
|
||||
'MagicWordArray' => __DIR__ . '/includes/MagicWordArray.php',
|
||||
'MailAddress' => __DIR__ . '/includes/mail/MailAddress.php',
|
||||
'MainConfigDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
|
||||
'Maintenance' => __DIR__ . '/maintenance/Maintenance.php',
|
||||
'MaintenanceFormatInstallDoc' => __DIR__ . '/maintenance/formatInstallDoc.php',
|
||||
'MakeTestEdits' => __DIR__ . '/maintenance/makeTestEdits.php',
|
||||
'MalformedTitleException' => __DIR__ . '/includes/title/MalformedTitleException.php',
|
||||
'ManualLogEntry' => __DIR__ . '/includes/logging/LogEntry.php',
|
||||
'MapCacheLRU' => __DIR__ . '/includes/libs/MapCacheLRU.php',
|
||||
'MappedDiff' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
'MappedIterator' => __DIR__ . '/includes/libs/MappedIterator.php',
|
||||
'MarkpatrolledAction' => __DIR__ . '/includes/actions/MarkpatrolledAction.php',
|
||||
'McTest' => __DIR__ . '/maintenance/mctest.php',
|
||||
'MediaHandler' => __DIR__ . '/includes/media/MediaHandler.php',
|
||||
'MediaHandlerFactory' => __DIR__ . '/includes/media/MediaHandlerFactory.php',
|
||||
'MediaStatisticsPage' => __DIR__ . '/includes/specials/SpecialMediaStatistics.php',
|
||||
'MediaTransformError' => __DIR__ . '/includes/media/MediaTransformOutput.php',
|
||||
'MediaTransformInvalidParametersException' => __DIR__ . '/includes/media/MediaTransformInvalidParametersException.php',
|
||||
'MediaTransformOutput' => __DIR__ . '/includes/media/MediaTransformOutput.php',
|
||||
'MediaWiki' => __DIR__ . '/includes/MediaWiki.php',
|
||||
'MediaWikiI18N' => __DIR__ . '/includes/skins/MediaWikiI18N.php',
|
||||
'MediaWikiPageLinkRenderer' => __DIR__ . '/includes/title/MediaWikiPageLinkRenderer.php',
|
||||
'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php',
|
||||
'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php',
|
||||
'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php',
|
||||
|
@ -824,8 +854,14 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Auth\\Throttler' => __DIR__ . '/includes/auth/Throttler.php',
|
||||
'MediaWiki\\Auth\\UserDataAuthenticationRequest' => __DIR__ . '/includes/auth/UserDataAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\UsernameAuthenticationRequest' => __DIR__ . '/includes/auth/UsernameAuthenticationRequest.php',
|
||||
'MediaWiki\\Diff\\ComplexityException' => __DIR__ . '/includes/diff/ComplexityException.php',
|
||||
'MediaWiki\\Diff\\WordAccumulator' => __DIR__ . '/includes/diff/WordAccumulator.php',
|
||||
'MediaWiki\\Interwiki\\ClassicInterwikiLookup' => __DIR__ . '/includes/interwiki/ClassicInterwikiLookup.php',
|
||||
'MediaWiki\\Interwiki\\InterwikiLookup' => __DIR__ . '/includes/interwiki/InterwikiLookup.php',
|
||||
'MediaWiki\\Languages\\Data\\Names' => __DIR__ . '/languages/data/Names.php',
|
||||
'MediaWiki\\Languages\\Data\\ZhConversion' => __DIR__ . '/languages/data/ZhConversion.php',
|
||||
'MediaWiki\\Linker\\LinkRenderer' => __DIR__ . '/includes/linker/LinkRenderer.php',
|
||||
'MediaWiki\\Linker\\LinkRendererFactory' => __DIR__ . '/includes/linker/LinkRendererFactory.php',
|
||||
'MediaWiki\\Linker\\LinkTarget' => __DIR__ . '/includes/linker/LinkTarget.php',
|
||||
'MediaWiki\\Logger\\LegacyLogger' => __DIR__ . '/includes/debug/logger/LegacyLogger.php',
|
||||
'MediaWiki\\Logger\\LegacySpi' => __DIR__ . '/includes/debug/logger/LegacySpi.php',
|
||||
|
@ -842,7 +878,15 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Logger\\NullSpi' => __DIR__ . '/includes/debug/logger/NullSpi.php',
|
||||
'MediaWiki\\Logger\\Spi' => __DIR__ . '/includes/debug/logger/Spi.php',
|
||||
'MediaWiki\\MediaWikiServices' => __DIR__ . '/includes/MediaWikiServices.php',
|
||||
'MediaWiki\\Services\\ServiceContainer' => __DIR__ . '/includes/Services/ServiceContainer.php',
|
||||
'MediaWiki\\Search\\ParserOutputSearchDataExtractor' => __DIR__ . '/includes/search/ParserOutputSearchDataExtractor.php',
|
||||
'MediaWiki\\Services\\CannotReplaceActiveServiceException' => __DIR__ . '/includes/services/CannotReplaceActiveServiceException.php',
|
||||
'MediaWiki\\Services\\ContainerDisabledException' => __DIR__ . '/includes/services/ContainerDisabledException.php',
|
||||
'MediaWiki\\Services\\DestructibleService' => __DIR__ . '/includes/services/DestructibleService.php',
|
||||
'MediaWiki\\Services\\NoSuchServiceException' => __DIR__ . '/includes/services/NoSuchServiceException.php',
|
||||
'MediaWiki\\Services\\SalvageableService' => __DIR__ . '/includes/services/SalvageableService.php',
|
||||
'MediaWiki\\Services\\ServiceAlreadyDefinedException' => __DIR__ . '/includes/services/ServiceAlreadyDefinedException.php',
|
||||
'MediaWiki\\Services\\ServiceContainer' => __DIR__ . '/includes/services/ServiceContainer.php',
|
||||
'MediaWiki\\Services\\ServiceDisabledException' => __DIR__ . '/includes/services/ServiceDisabledException.php',
|
||||
'MediaWiki\\Session\\BotPasswordSessionProvider' => __DIR__ . '/includes/session/BotPasswordSessionProvider.php',
|
||||
'MediaWiki\\Session\\CookieSessionProvider' => __DIR__ . '/includes/session/CookieSessionProvider.php',
|
||||
'MediaWiki\\Session\\ImmutableSessionProviderWithCookie' => __DIR__ . '/includes/session/ImmutableSessionProviderWithCookie.php',
|
||||
|
@ -859,7 +903,14 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Session\\Token' => __DIR__ . '/includes/session/Token.php',
|
||||
'MediaWiki\\Session\\UserInfo' => __DIR__ . '/includes/session/UserInfo.php',
|
||||
'MediaWiki\\Site\\MediaWikiPageNameNormalizer' => __DIR__ . '/includes/site/MediaWikiPageNameNormalizer.php',
|
||||
'MediaWiki\\Tidy\\BalanceActiveFormattingElements' => __DIR__ . '/includes/tidy/Balancer.php',
|
||||
'MediaWiki\\Tidy\\BalanceElement' => __DIR__ . '/includes/tidy/Balancer.php',
|
||||
'MediaWiki\\Tidy\\BalanceMarker' => __DIR__ . '/includes/tidy/Balancer.php',
|
||||
'MediaWiki\\Tidy\\BalanceSets' => __DIR__ . '/includes/tidy/Balancer.php',
|
||||
'MediaWiki\\Tidy\\BalanceStack' => __DIR__ . '/includes/tidy/Balancer.php',
|
||||
'MediaWiki\\Tidy\\Balancer' => __DIR__ . '/includes/tidy/Balancer.php',
|
||||
'MediaWiki\\Tidy\\Html5Depurate' => __DIR__ . '/includes/tidy/Html5Depurate.php',
|
||||
'MediaWiki\\Tidy\\Html5Internal' => __DIR__ . '/includes/tidy/Html5Internal.php',
|
||||
'MediaWiki\\Tidy\\RaggettBase' => __DIR__ . '/includes/tidy/RaggettBase.php',
|
||||
'MediaWiki\\Tidy\\RaggettExternal' => __DIR__ . '/includes/tidy/RaggettExternal.php',
|
||||
'MediaWiki\\Tidy\\RaggettInternalHHVM' => __DIR__ . '/includes/tidy/RaggettInternalHHVM.php',
|
||||
|
@ -868,18 +919,19 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Tidy\\TidyDriverBase' => __DIR__ . '/includes/tidy/TidyDriverBase.php',
|
||||
'MediaWiki\\Widget\\ComplexNamespaceInputWidget' => __DIR__ . '/includes/widget/ComplexNamespaceInputWidget.php',
|
||||
'MediaWiki\\Widget\\ComplexTitleInputWidget' => __DIR__ . '/includes/widget/ComplexTitleInputWidget.php',
|
||||
'MediaWiki\\Widget\\DateTimeInputWidget' => __DIR__ . '/includes/widget/DateTimeInputWidget.php',
|
||||
'MediaWiki\\Widget\\NamespaceInputWidget' => __DIR__ . '/includes/widget/NamespaceInputWidget.php',
|
||||
'MediaWiki\\Widget\\SearchInputWidget' => __DIR__ . '/includes/widget/SearchInputWidget.php',
|
||||
'MediaWiki\\Widget\\TitleInputWidget' => __DIR__ . '/includes/widget/TitleInputWidget.php',
|
||||
'MediaWiki\\Widget\\UserInputWidget' => __DIR__ . '/includes/widget/UserInputWidget.php',
|
||||
'MemCachedClientforWiki' => __DIR__ . '/includes/compat/MemcachedClientCompat.php',
|
||||
'MemcLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MemcLockManager.php',
|
||||
'MemcLockManager' => __DIR__ . '/includes/libs/lockmanager/MemcLockManager.php',
|
||||
'MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php',
|
||||
'MemcachedClient' => __DIR__ . '/includes/libs/objectcache/MemcachedClient.php',
|
||||
'MemcachedPeclBagOStuff' => __DIR__ . '/includes/objectcache/MemcachedPeclBagOStuff.php',
|
||||
'MemcachedPeclBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPeclBagOStuff.php',
|
||||
'MemcachedPhpBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPhpBagOStuff.php',
|
||||
'MemoizedCallable' => __DIR__ . '/includes/libs/MemoizedCallable.php',
|
||||
'MemoryFileBackend' => __DIR__ . '/includes/filebackend/MemoryFileBackend.php',
|
||||
'MemoryFileBackend' => __DIR__ . '/includes/libs/filebackend/MemoryFileBackend.php',
|
||||
'MergeHistory' => __DIR__ . '/includes/MergeHistory.php',
|
||||
'MergeHistoryPager' => __DIR__ . '/includes/specials/pagers/MergeHistoryPager.php',
|
||||
'MergeLogFormatter' => __DIR__ . '/includes/logging/MergeLogFormatter.php',
|
||||
|
@ -892,6 +944,7 @@ $wgAutoloadLocalClasses = [
|
|||
'MessageSpecifier' => __DIR__ . '/includes/libs/MessageSpecifier.php',
|
||||
'MigrateFileRepoLayout' => __DIR__ . '/maintenance/migrateFileRepoLayout.php',
|
||||
'MigrateUserGroup' => __DIR__ . '/maintenance/migrateUserGroup.php',
|
||||
'MimeAnalyzer' => __DIR__ . '/includes/libs/mime/MimeAnalyzer.php',
|
||||
'MimeMagic' => __DIR__ . '/includes/MimeMagic.php',
|
||||
'MinifyScript' => __DIR__ . '/maintenance/minify.php',
|
||||
'MostcategoriesPage' => __DIR__ . '/includes/specials/SpecialMostcategories.php',
|
||||
|
@ -902,14 +955,14 @@ $wgAutoloadLocalClasses = [
|
|||
'MostlinkedTemplatesPage' => __DIR__ . '/includes/specials/SpecialMostlinkedtemplates.php',
|
||||
'MostrevisionsPage' => __DIR__ . '/includes/specials/SpecialMostrevisions.php',
|
||||
'MoveBatch' => __DIR__ . '/maintenance/moveBatch.php',
|
||||
'MoveFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'MoveFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/MoveFileOp.php',
|
||||
'MoveLogFormatter' => __DIR__ . '/includes/logging/MoveLogFormatter.php',
|
||||
'MovePage' => __DIR__ . '/includes/MovePage.php',
|
||||
'MovePageForm' => __DIR__ . '/includes/specials/SpecialMovepage.php',
|
||||
'MssqlBlob' => __DIR__ . '/includes/db/DatabaseMssql.php',
|
||||
'MssqlField' => __DIR__ . '/includes/db/DatabaseMssql.php',
|
||||
'MssqlBlob' => __DIR__ . '/includes/libs/rdbms/encasing/MssqlBlob.php',
|
||||
'MssqlField' => __DIR__ . '/includes/libs/rdbms/field/MssqlField.php',
|
||||
'MssqlInstaller' => __DIR__ . '/includes/installer/MssqlInstaller.php',
|
||||
'MssqlResultWrapper' => __DIR__ . '/includes/db/DatabaseMssql.php',
|
||||
'MssqlResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/MssqlResultWrapper.php',
|
||||
'MssqlUpdater' => __DIR__ . '/includes/installer/MssqlUpdater.php',
|
||||
'MultiConfig' => __DIR__ . '/includes/config/MultiConfig.php',
|
||||
'MultiHttpClient' => __DIR__ . '/includes/libs/MultiHttpClient.php',
|
||||
|
@ -917,9 +970,9 @@ $wgAutoloadLocalClasses = [
|
|||
'MutableConfig' => __DIR__ . '/includes/config/MutableConfig.php',
|
||||
'MutableContext' => __DIR__ . '/includes/context/MutableContext.php',
|
||||
'MwSql' => __DIR__ . '/maintenance/sql.php',
|
||||
'MySQLField' => __DIR__ . '/includes/db/DatabaseMysqlBase.php',
|
||||
'MySQLMasterPos' => __DIR__ . '/includes/db/DatabaseMysqlBase.php',
|
||||
'MySqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php',
|
||||
'MySQLField' => __DIR__ . '/includes/libs/rdbms/field/MySQLField.php',
|
||||
'MySQLMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/MySQLMasterPos.php',
|
||||
'MySqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MySqlLockManager.php',
|
||||
'MysqlInstaller' => __DIR__ . '/includes/installer/MysqlInstaller.php',
|
||||
'MysqlUpdater' => __DIR__ . '/includes/installer/MysqlUpdater.php',
|
||||
'NaiveForeignTitleFactory' => __DIR__ . '/includes/title/NaiveForeignTitleFactory.php',
|
||||
|
@ -931,21 +984,22 @@ $wgAutoloadLocalClasses = [
|
|||
'NewPagesPager' => __DIR__ . '/includes/specials/pagers/NewPagesPager.php',
|
||||
'NewUsersLogFormatter' => __DIR__ . '/includes/logging/NewUsersLogFormatter.php',
|
||||
'NolinesImageGallery' => __DIR__ . '/includes/gallery/NolinesImageGallery.php',
|
||||
'NotRecursiveIterator' => __DIR__ . '/includes/utils/iterators/NotRecursiveIterator.php',
|
||||
'NotRecursiveIterator' => __DIR__ . '/includes/libs/iterators/NotRecursiveIterator.php',
|
||||
'NukeNS' => __DIR__ . '/maintenance/nukeNS.php',
|
||||
'NukePage' => __DIR__ . '/maintenance/nukePage.php',
|
||||
'NullFileJournal' => __DIR__ . '/includes/filebackend/filejournal/FileJournal.php',
|
||||
'NullFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'NullFileJournal' => __DIR__ . '/includes/libs/filebackend/filejournal/NullFileJournal.php',
|
||||
'NullFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/NullFileOp.php',
|
||||
'NullIndexField' => __DIR__ . '/includes/search/NullIndexField.php',
|
||||
'NullJob' => __DIR__ . '/includes/jobqueue/jobs/NullJob.php',
|
||||
'NullLockManager' => __DIR__ . '/includes/filebackend/lockmanager/LockManager.php',
|
||||
'NullLockManager' => __DIR__ . '/includes/libs/lockmanager/NullLockManager.php',
|
||||
'NullRepo' => __DIR__ . '/includes/filerepo/NullRepo.php',
|
||||
'NullStatsdDataFactory' => __DIR__ . '/includes/libs/stats/NullStatsdDataFactory.php',
|
||||
'NumericUppercaseCollation' => __DIR__ . '/includes/collation/NumericUppercaseCollation.php',
|
||||
'OOUIHTMLForm' => __DIR__ . '/includes/htmlform/OOUIHTMLForm.php',
|
||||
'ORAField' => __DIR__ . '/includes/db/DatabaseOracle.php',
|
||||
'ORAField' => __DIR__ . '/includes/libs/rdbms/field/ORAField.php',
|
||||
'ORAResult' => __DIR__ . '/includes/db/DatabaseOracle.php',
|
||||
'ObjectCache' => __DIR__ . '/includes/objectcache/ObjectCache.php',
|
||||
'ObjectFactory' => __DIR__ . '/includes/libs/ObjectFactory.php',
|
||||
'ObjectFileCache' => __DIR__ . '/includes/cache/ObjectFileCache.php',
|
||||
'OldChangesList' => __DIR__ . '/includes/changes/OldChangesList.php',
|
||||
'OldLocalFile' => __DIR__ . '/includes/filerepo/file/OldLocalFile.php',
|
||||
'OracleInstaller' => __DIR__ . '/includes/installer/OracleInstaller.php',
|
||||
|
@ -957,7 +1011,6 @@ $wgAutoloadLocalClasses = [
|
|||
'PNGMetadataExtractor' => __DIR__ . '/includes/media/PNGMetadataExtractor.php',
|
||||
'PPCustomFrame_DOM' => __DIR__ . '/includes/parser/Preprocessor_DOM.php',
|
||||
'PPCustomFrame_Hash' => __DIR__ . '/includes/parser/Preprocessor_Hash.php',
|
||||
'PPDAccum_Hash' => __DIR__ . '/includes/parser/Preprocessor_Hash.php',
|
||||
'PPDPart' => __DIR__ . '/includes/parser/Preprocessor_DOM.php',
|
||||
'PPDPart_Hash' => __DIR__ . '/includes/parser/Preprocessor_Hash.php',
|
||||
'PPDStack' => __DIR__ . '/includes/parser/Preprocessor_DOM.php',
|
||||
|
@ -985,7 +1038,6 @@ $wgAutoloadLocalClasses = [
|
|||
'PageArchive' => __DIR__ . '/includes/specials/SpecialUndelete.php',
|
||||
'PageExists' => __DIR__ . '/maintenance/pageExists.php',
|
||||
'PageLangLogFormatter' => __DIR__ . '/includes/logging/PageLangLogFormatter.php',
|
||||
'PageLinkRenderer' => __DIR__ . '/includes/title/PageLinkRenderer.php',
|
||||
'PageProps' => __DIR__ . '/includes/PageProps.php',
|
||||
'PageQueryPage' => __DIR__ . '/includes/specialpage/PageQueryPage.php',
|
||||
'Pager' => __DIR__ . '/includes/pager/Pager.php',
|
||||
|
@ -1007,9 +1059,11 @@ $wgAutoloadLocalClasses = [
|
|||
'PatrolLog' => __DIR__ . '/includes/logging/PatrolLog.php',
|
||||
'PatrolLogFormatter' => __DIR__ . '/includes/logging/PatrolLogFormatter.php',
|
||||
'Pbkdf2Password' => __DIR__ . '/includes/password/Pbkdf2Password.php',
|
||||
'PerRowAugmentor' => __DIR__ . '/includes/search/PerRowAugmentor.php',
|
||||
'PermissionsError' => __DIR__ . '/includes/exception/PermissionsError.php',
|
||||
'PhpHttpRequest' => __DIR__ . '/includes/HttpFunctions.php',
|
||||
'PhpHttpRequest' => __DIR__ . '/includes/http/PhpHttpRequest.php',
|
||||
'PhpXmlBugTester' => __DIR__ . '/includes/installer/PhpBugTests.php',
|
||||
'Pingback' => __DIR__ . '/includes/Pingback.php',
|
||||
'PoolCounter' => __DIR__ . '/includes/poolcounter/PoolCounter.php',
|
||||
'PoolCounterRedis' => __DIR__ . '/includes/poolcounter/PoolCounterRedis.php',
|
||||
'PoolCounterWork' => __DIR__ . '/includes/poolcounter/PoolCounterWork.php',
|
||||
|
@ -1027,9 +1081,9 @@ $wgAutoloadLocalClasses = [
|
|||
'PopulateRecentChangesSource' => __DIR__ . '/maintenance/populateRecentChangesSource.php',
|
||||
'PopulateRevisionLength' => __DIR__ . '/maintenance/populateRevisionLength.php',
|
||||
'PopulateRevisionSha1' => __DIR__ . '/maintenance/populateRevisionSha1.php',
|
||||
'PostgreSqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php',
|
||||
'PostgresBlob' => __DIR__ . '/includes/db/DatabasePostgres.php',
|
||||
'PostgresField' => __DIR__ . '/includes/db/DatabasePostgres.php',
|
||||
'PostgreSqlLockManager' => __DIR__ . '/includes/libs/lockmanager/PostgreSqlLockManager.php',
|
||||
'PostgresBlob' => __DIR__ . '/includes/libs/rdbms/encasing/PostgresBlob.php',
|
||||
'PostgresField' => __DIR__ . '/includes/libs/rdbms/field/PostgresField.php',
|
||||
'PostgresInstaller' => __DIR__ . '/includes/installer/PostgresInstaller.php',
|
||||
'PostgresUpdater' => __DIR__ . '/includes/installer/PostgresUpdater.php',
|
||||
'Preferences' => __DIR__ . '/includes/Preferences.php',
|
||||
|
@ -1057,25 +1111,28 @@ $wgAutoloadLocalClasses = [
|
|||
'ProtectedPagesPager' => __DIR__ . '/includes/specials/SpecialProtectedpages.php',
|
||||
'ProtectedTitlesPager' => __DIR__ . '/includes/specials/pagers/ProtectedTitlesPager.php',
|
||||
'ProtectionForm' => __DIR__ . '/includes/ProtectionForm.php',
|
||||
'ProxyLookup' => __DIR__ . '/includes/ProxyLookup.php',
|
||||
'PruneFileCache' => __DIR__ . '/maintenance/pruneFileCache.php',
|
||||
'PublishStashedFileJob' => __DIR__ . '/includes/jobqueue/jobs/PublishStashedFileJob.php',
|
||||
'PurgeAction' => __DIR__ . '/includes/actions/PurgeAction.php',
|
||||
'PurgeChangedFiles' => __DIR__ . '/maintenance/purgeChangedFiles.php',
|
||||
'PurgeChangedPages' => __DIR__ . '/maintenance/purgeChangedPages.php',
|
||||
'PurgeJobUtils' => __DIR__ . '/includes/jobqueue/utils/PurgeJobUtils.php',
|
||||
'PurgeList' => __DIR__ . '/maintenance/purgeList.php',
|
||||
'PurgeOldText' => __DIR__ . '/maintenance/purgeOldText.php',
|
||||
'PurgeParserCache' => __DIR__ . '/maintenance/purgeParserCache.php',
|
||||
'QueryPage' => __DIR__ . '/includes/specialpage/QueryPage.php',
|
||||
'QuickTemplate' => __DIR__ . '/includes/skins/QuickTemplate.php',
|
||||
'QuorumLockManager' => __DIR__ . '/includes/filebackend/lockmanager/QuorumLockManager.php',
|
||||
'QuorumLockManager' => __DIR__ . '/includes/libs/lockmanager/QuorumLockManager.php',
|
||||
'RCCacheEntry' => __DIR__ . '/includes/changes/RCCacheEntry.php',
|
||||
'RCCacheEntryFactory' => __DIR__ . '/includes/changes/RCCacheEntryFactory.php',
|
||||
'RCDatabaseLogEntry' => __DIR__ . '/includes/logging/LogEntry.php',
|
||||
'RCFeedEngine' => __DIR__ . '/includes/rcfeed/RCFeedEngine.php',
|
||||
'RCFeedFormatter' => __DIR__ . '/includes/rcfeed/RCFeedFormatter.php',
|
||||
'RESTBagOStuff' => __DIR__ . '/includes/libs/objectcache/RESTBagOStuff.php',
|
||||
'RSSFeed' => __DIR__ . '/includes/Feed.php',
|
||||
'RandomPage' => __DIR__ . '/includes/specials/SpecialRandompage.php',
|
||||
'RangeDifference' => __DIR__ . '/includes/diff/WikiDiff3.php',
|
||||
'RangeDifference' => __DIR__ . '/includes/diff/DiffEngine.php',
|
||||
'RawAction' => __DIR__ . '/includes/actions/RawAction.php',
|
||||
'RawMessage' => __DIR__ . '/includes/Message.php',
|
||||
'ReadOnlyError' => __DIR__ . '/includes/exception/ReadOnlyError.php',
|
||||
|
@ -1092,10 +1149,10 @@ $wgAutoloadLocalClasses = [
|
|||
'RecompressTracked' => __DIR__ . '/maintenance/storage/recompressTracked.php',
|
||||
'RedirectSpecialArticle' => __DIR__ . '/includes/specialpage/RedirectSpecialPage.php',
|
||||
'RedirectSpecialPage' => __DIR__ . '/includes/specialpage/RedirectSpecialPage.php',
|
||||
'RedisBagOStuff' => __DIR__ . '/includes/objectcache/RedisBagOStuff.php',
|
||||
'RedisConnRef' => __DIR__ . '/includes/clientpool/RedisConnectionPool.php',
|
||||
'RedisConnectionPool' => __DIR__ . '/includes/clientpool/RedisConnectionPool.php',
|
||||
'RedisLockManager' => __DIR__ . '/includes/filebackend/lockmanager/RedisLockManager.php',
|
||||
'RedisBagOStuff' => __DIR__ . '/includes/libs/objectcache/RedisBagOStuff.php',
|
||||
'RedisConnRef' => __DIR__ . '/includes/libs/redis/RedisConnRef.php',
|
||||
'RedisConnectionPool' => __DIR__ . '/includes/libs/redis/RedisConnectionPool.php',
|
||||
'RedisLockManager' => __DIR__ . '/includes/libs/lockmanager/RedisLockManager.php',
|
||||
'RedisPubSubFeedEngine' => __DIR__ . '/includes/rcfeed/RedisPubSubFeedEngine.php',
|
||||
'RefreshFileHeaders' => __DIR__ . '/maintenance/refreshFileHeaders.php',
|
||||
'RefreshImageMetadata' => __DIR__ . '/maintenance/refreshImageMetadata.php',
|
||||
|
@ -1115,6 +1172,7 @@ $wgAutoloadLocalClasses = [
|
|||
'ResetUserTokens' => __DIR__ . '/maintenance/resetUserTokens.php',
|
||||
'ResourceFileCache' => __DIR__ . '/includes/cache/ResourceFileCache.php',
|
||||
'ResourceLoader' => __DIR__ . '/includes/resourceloader/ResourceLoader.php',
|
||||
'ResourceLoaderClientHtml' => __DIR__ . '/includes/resourceloader/ResourceLoaderClientHtml.php',
|
||||
'ResourceLoaderContext' => __DIR__ . '/includes/resourceloader/ResourceLoaderContext.php',
|
||||
'ResourceLoaderEditToolbarModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderEditToolbarModule.php',
|
||||
'ResourceLoaderFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderFileModule.php',
|
||||
|
@ -1129,19 +1187,22 @@ $wgAutoloadLocalClasses = [
|
|||
'ResourceLoaderOOUIImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIImageModule.php',
|
||||
'ResourceLoaderRawFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderRawFileModule.php',
|
||||
'ResourceLoaderSiteModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteModule.php',
|
||||
'ResourceLoaderSiteStylesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteStylesModule.php',
|
||||
'ResourceLoaderSkinModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSkinModule.php',
|
||||
'ResourceLoaderSpecialCharacterDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php',
|
||||
'ResourceLoaderStartUpModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderStartUpModule.php',
|
||||
'ResourceLoaderUploadDialogModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUploadDialogModule.php',
|
||||
'ResourceLoaderUserCSSPrefsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php',
|
||||
'ResourceLoaderUserDefaultsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserDefaultsModule.php',
|
||||
'ResourceLoaderUserGroupsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserGroupsModule.php',
|
||||
'ResourceLoaderUserModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserModule.php',
|
||||
'ResourceLoaderUserOptionsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserOptionsModule.php',
|
||||
'ResourceLoaderUserStylesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserStylesModule.php',
|
||||
'ResourceLoaderUserTokensModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserTokensModule.php',
|
||||
'ResourceLoaderWikiModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderWikiModule.php',
|
||||
'RestbaseVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/RestbaseVirtualRESTService.php',
|
||||
'ResultWrapper' => __DIR__ . '/includes/db/DatabaseUtility.php',
|
||||
'ResultAugmentor' => __DIR__ . '/includes/search/ResultAugmentor.php',
|
||||
'ResultSetAugmentor' => __DIR__ . '/includes/search/ResultSetAugmentor.php',
|
||||
'ResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php',
|
||||
'RevDelArchiveItem' => __DIR__ . '/includes/revisiondelete/RevDelArchiveItem.php',
|
||||
'RevDelArchiveList' => __DIR__ . '/includes/revisiondelete/RevDelArchiveList.php',
|
||||
'RevDelArchivedFileItem' => __DIR__ . '/includes/revisiondelete/RevDelArchivedFileItem.php',
|
||||
|
@ -1155,6 +1216,7 @@ $wgAutoloadLocalClasses = [
|
|||
'RevDelLogList' => __DIR__ . '/includes/revisiondelete/RevDelLogList.php',
|
||||
'RevDelRevisionItem' => __DIR__ . '/includes/revisiondelete/RevDelRevisionItem.php',
|
||||
'RevDelRevisionList' => __DIR__ . '/includes/revisiondelete/RevDelRevisionList.php',
|
||||
'ReverseArrayIterator' => __DIR__ . '/includes/libs/ReverseArrayIterator.php',
|
||||
'ReverseChronologicalPager' => __DIR__ . '/includes/pager/ReverseChronologicalPager.php',
|
||||
'RevertAction' => __DIR__ . '/includes/actions/RevertAction.php',
|
||||
'Revision' => __DIR__ . '/includes/Revision.php',
|
||||
|
@ -1172,14 +1234,15 @@ $wgAutoloadLocalClasses = [
|
|||
'RowUpdateGenerator' => __DIR__ . '/includes/utils/RowUpdateGenerator.php',
|
||||
'RunJobs' => __DIR__ . '/maintenance/runJobs.php',
|
||||
'RunningStat' => __DIR__ . '/includes/compat/RunningStatCompat.php',
|
||||
'SQLiteField' => __DIR__ . '/includes/db/DatabaseSqlite.php',
|
||||
'SQLiteField' => __DIR__ . '/includes/libs/rdbms/field/SQLiteField.php',
|
||||
'SVGMetadataExtractor' => __DIR__ . '/includes/media/SVGMetadataExtractor.php',
|
||||
'SVGReader' => __DIR__ . '/includes/media/SVGMetadataExtractor.php',
|
||||
'SamplingStatsdClient' => __DIR__ . '/includes/libs/SamplingStatsdClient.php',
|
||||
'SamplingStatsdClient' => __DIR__ . '/includes/libs/stats/SamplingStatsdClient.php',
|
||||
'Sanitizer' => __DIR__ . '/includes/Sanitizer.php',
|
||||
'SavepointPostgres' => __DIR__ . '/includes/db/DatabasePostgres.php',
|
||||
'ScopedCallback' => __DIR__ . '/includes/libs/ScopedCallback.php',
|
||||
'ScopedLock' => __DIR__ . '/includes/filebackend/lockmanager/ScopedLock.php',
|
||||
'SavepointPostgres' => __DIR__ . '/includes/libs/rdbms/database/utils/SavepointPostgres.php',
|
||||
'ScopedCallback' => __DIR__ . '/includes/compat/ScopedCallback.php',
|
||||
'ScopedLock' => __DIR__ . '/includes/libs/lockmanager/ScopedLock.php',
|
||||
'SearchApi' => __DIR__ . '/includes/api/SearchApi.php',
|
||||
'SearchDatabase' => __DIR__ . '/includes/search/SearchDatabase.php',
|
||||
'SearchDump' => __DIR__ . '/maintenance/dumpIterator.php',
|
||||
'SearchEngine' => __DIR__ . '/includes/search/SearchEngine.php',
|
||||
|
@ -1188,6 +1251,8 @@ $wgAutoloadLocalClasses = [
|
|||
'SearchEngineFactory' => __DIR__ . '/includes/search/SearchEngineFactory.php',
|
||||
'SearchExactMatchRescorer' => __DIR__ . '/includes/search/SearchExactMatchRescorer.php',
|
||||
'SearchHighlighter' => __DIR__ . '/includes/search/SearchHighlighter.php',
|
||||
'SearchIndexField' => __DIR__ . '/includes/search/SearchIndexField.php',
|
||||
'SearchIndexFieldDefinition' => __DIR__ . '/includes/search/SearchIndexFieldDefinition.php',
|
||||
'SearchMssql' => __DIR__ . '/includes/search/SearchMssql.php',
|
||||
'SearchMySQL' => __DIR__ . '/includes/search/SearchMySQL.php',
|
||||
'SearchNearMatchResultSet' => __DIR__ . '/includes/search/SearchNearMatchResultSet.php',
|
||||
|
@ -1227,6 +1292,7 @@ $wgAutoloadLocalClasses = [
|
|||
'SkinFallback' => __DIR__ . '/includes/skins/SkinFallback.php',
|
||||
'SkinFallbackTemplate' => __DIR__ . '/includes/skins/SkinFallbackTemplate.php',
|
||||
'SkinTemplate' => __DIR__ . '/includes/skins/SkinTemplate.php',
|
||||
'SlideshowImageGallery' => __DIR__ . '/includes/gallery/SlideshowImageGallery.php',
|
||||
'SpecialActiveUsers' => __DIR__ . '/includes/specials/SpecialActiveusers.php',
|
||||
'SpecialAllMessages' => __DIR__ . '/includes/specials/SpecialAllMessages.php',
|
||||
'SpecialAllMyUploads' => __DIR__ . '/includes/specials/SpecialMyRedirectPages.php',
|
||||
|
@ -1328,7 +1394,7 @@ $wgAutoloadLocalClasses = [
|
|||
'Status' => __DIR__ . '/includes/Status.php',
|
||||
'StatusValue' => __DIR__ . '/includes/libs/StatusValue.php',
|
||||
'StorageTypeStats' => __DIR__ . '/maintenance/storage/storageTypeStats.php',
|
||||
'StoreFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
|
||||
'StoreFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/StoreFileOp.php',
|
||||
'StreamFile' => __DIR__ . '/includes/StreamFile.php',
|
||||
'StringPrefixSearch' => __DIR__ . '/includes/PrefixSearch.php',
|
||||
'StringUtils' => __DIR__ . '/includes/libs/StringUtils.php',
|
||||
|
@ -1338,20 +1404,21 @@ $wgAutoloadLocalClasses = [
|
|||
'SubmitAction' => __DIR__ . '/includes/actions/SubmitAction.php',
|
||||
'SubpageImportTitleFactory' => __DIR__ . '/includes/title/SubpageImportTitleFactory.php',
|
||||
'SvgHandler' => __DIR__ . '/includes/media/SVG.php',
|
||||
'SwiftFileBackend' => __DIR__ . '/includes/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendDirList' => __DIR__ . '/includes/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendFileList' => __DIR__ . '/includes/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendList' => __DIR__ . '/includes/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileOpHandle' => __DIR__ . '/includes/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackend' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendDirList' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendFileList' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendList' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileOpHandle' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
'SwiftVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/SwiftVirtualRESTService.php',
|
||||
'SyncFileBackend' => __DIR__ . '/maintenance/syncFileBackend.php',
|
||||
'TableCleanup' => __DIR__ . '/maintenance/cleanupTable.inc',
|
||||
'TableDiffFormatter' => __DIR__ . '/includes/diff/TableDiffFormatter.php',
|
||||
'TablePager' => __DIR__ . '/includes/pager/TablePager.php',
|
||||
'TagLogFormatter' => __DIR__ . '/includes/logging/TagLogFormatter.php',
|
||||
'TempFSFile' => __DIR__ . '/includes/filebackend/TempFSFile.php',
|
||||
'TempFSFile' => __DIR__ . '/includes/libs/filebackend/fsfile/TempFSFile.php',
|
||||
'TempFileRepo' => __DIR__ . '/includes/filerepo/FileRepo.php',
|
||||
'TemplateParser' => __DIR__ . '/includes/TemplateParser.php',
|
||||
'TemplatesOnThisPageFormatter' => __DIR__ . '/includes/TemplatesOnThisPageFormatter.php',
|
||||
'TestFileOpPerformance' => __DIR__ . '/maintenance/fileOpPerfTest.php',
|
||||
'TextContent' => __DIR__ . '/includes/content/TextContent.php',
|
||||
'TextContentHandler' => __DIR__ . '/includes/content/TextContentHandler.php',
|
||||
|
@ -1363,7 +1430,7 @@ $wgAutoloadLocalClasses = [
|
|||
'ThumbnailRenderJob' => __DIR__ . '/includes/jobqueue/jobs/ThumbnailRenderJob.php',
|
||||
'TidyUpBug37714' => __DIR__ . '/maintenance/tidyUpBug37714.php',
|
||||
'TiffHandler' => __DIR__ . '/includes/media/Tiff.php',
|
||||
'TimestampException' => __DIR__ . '/includes/exception/TimestampException.php',
|
||||
'TimestampException' => __DIR__ . '/includes/libs/time/TimestampException.php',
|
||||
'Timing' => __DIR__ . '/includes/libs/Timing.php',
|
||||
'Title' => __DIR__ . '/includes/Title.php',
|
||||
'TitleArray' => __DIR__ . '/includes/TitleArray.php',
|
||||
|
@ -1375,7 +1442,7 @@ $wgAutoloadLocalClasses = [
|
|||
'TitleValue' => __DIR__ . '/includes/title/TitleValue.php',
|
||||
'TrackBlobs' => __DIR__ . '/maintenance/storage/trackBlobs.php',
|
||||
'TraditionalImageGallery' => __DIR__ . '/includes/gallery/TraditionalImageGallery.php',
|
||||
'TransactionProfiler' => __DIR__ . '/includes/profiler/TransactionProfiler.php',
|
||||
'TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php',
|
||||
'TransformParameterError' => __DIR__ . '/includes/media/MediaTransformOutput.php',
|
||||
'TransformTooBigImageAreaError' => __DIR__ . '/includes/media/MediaTransformOutput.php',
|
||||
'TransformationalImageHandler' => __DIR__ . '/includes/media/TransformationalImageHandler.php',
|
||||
|
@ -1460,6 +1527,7 @@ $wgAutoloadLocalClasses = [
|
|||
'WantedTemplatesPage' => __DIR__ . '/includes/specials/SpecialWantedtemplates.php',
|
||||
'WatchAction' => __DIR__ . '/includes/actions/WatchAction.php',
|
||||
'WatchedItem' => __DIR__ . '/includes/WatchedItem.php',
|
||||
'WatchedItemQueryService' => __DIR__ . '/includes/WatchedItemQueryService.php',
|
||||
'WatchedItemStore' => __DIR__ . '/includes/WatchedItemStore.php',
|
||||
'WatchlistCleanup' => __DIR__ . '/maintenance/cleanupWatchlist.php',
|
||||
'WebInstaller' => __DIR__ . '/includes/installer/WebInstaller.php',
|
||||
|
@ -1486,7 +1554,6 @@ $wgAutoloadLocalClasses = [
|
|||
'WebRequestUpload' => __DIR__ . '/includes/WebRequestUpload.php',
|
||||
'WebResponse' => __DIR__ . '/includes/WebResponse.php',
|
||||
'WikiCategoryPage' => __DIR__ . '/includes/page/WikiCategoryPage.php',
|
||||
'WikiDiff3' => __DIR__ . '/includes/diff/WikiDiff3.php',
|
||||
'WikiExporter' => __DIR__ . '/includes/export/WikiExporter.php',
|
||||
'WikiFilePage' => __DIR__ . '/includes/page/WikiFilePage.php',
|
||||
'WikiImporter' => __DIR__ . '/includes/import/WikiImporter.php',
|
||||
|
@ -1495,24 +1562,26 @@ $wgAutoloadLocalClasses = [
|
|||
'WikiReference' => __DIR__ . '/includes/WikiMap.php',
|
||||
'WikiRevision' => __DIR__ . '/includes/import/WikiRevision.php',
|
||||
'WikiStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
|
||||
'WikiTextStructure' => __DIR__ . '/includes/content/WikiTextStructure.php',
|
||||
'WikitextContent' => __DIR__ . '/includes/content/WikitextContent.php',
|
||||
'WikitextContentHandler' => __DIR__ . '/includes/content/WikitextContentHandler.php',
|
||||
'WinCacheBagOStuff' => __DIR__ . '/includes/libs/objectcache/WinCacheBagOStuff.php',
|
||||
'WithoutInterwikiPage' => __DIR__ . '/includes/specials/SpecialWithoutinterwiki.php',
|
||||
'WordLevelDiff' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
'WordLevelDiff' => __DIR__ . '/includes/diff/WordLevelDiff.php',
|
||||
'WrapOldPasswords' => __DIR__ . '/maintenance/wrapOldPasswords.php',
|
||||
'XCFHandler' => __DIR__ . '/includes/media/XCF.php',
|
||||
'XCacheBagOStuff' => __DIR__ . '/includes/libs/objectcache/XCacheBagOStuff.php',
|
||||
'XMLRCFeedFormatter' => __DIR__ . '/includes/rcfeed/XMLRCFeedFormatter.php',
|
||||
'XMPInfo' => __DIR__ . '/includes/media/XMPInfo.php',
|
||||
'XMPReader' => __DIR__ . '/includes/media/XMP.php',
|
||||
'XMPValidate' => __DIR__ . '/includes/media/XMPValidate.php',
|
||||
'XMPInfo' => __DIR__ . '/includes/libs/xmp/XMPInfo.php',
|
||||
'XMPReader' => __DIR__ . '/includes/libs/xmp/XMP.php',
|
||||
'XMPValidate' => __DIR__ . '/includes/libs/xmp/XMPValidate.php',
|
||||
'Xhprof' => __DIR__ . '/includes/libs/Xhprof.php',
|
||||
'XhprofData' => __DIR__ . '/includes/libs/XhprofData.php',
|
||||
'Xml' => __DIR__ . '/includes/Xml.php',
|
||||
'XmlDumpWriter' => __DIR__ . '/includes/export/XmlDumpWriter.php',
|
||||
'XmlJsCode' => __DIR__ . '/includes/Xml.php',
|
||||
'XmlSelect' => __DIR__ . '/includes/XmlSelect.php',
|
||||
'XmlTypeCheck' => __DIR__ . '/includes/libs/XmlTypeCheck.php',
|
||||
'XmlTypeCheck' => __DIR__ . '/includes/libs/mime/XmlTypeCheck.php',
|
||||
'ZhConverter' => __DIR__ . '/languages/classes/LanguageZh.php',
|
||||
'ZipDirectoryReader' => __DIR__ . '/includes/utils/ZipDirectoryReader.php',
|
||||
'ZipDirectoryReaderError' => __DIR__ . '/includes/utils/ZipDirectoryReader.php',
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
"wiki": "https://www.mediawiki.org/"
|
||||
},
|
||||
"require": {
|
||||
"composer/semver": "1.4.0",
|
||||
"composer/semver": "1.4.2",
|
||||
"cssjanus/cssjanus": "1.1.2",
|
||||
"ext-ctype": "*",
|
||||
"ext-iconv": "*",
|
||||
|
@ -25,30 +25,33 @@
|
|||
"ext-xml": "*",
|
||||
"liuggio/statsd-php-client": "1.0.18",
|
||||
"mediawiki/at-ease": "1.1.0",
|
||||
"oojs/oojs-ui": "0.17.1",
|
||||
"oojs/oojs-ui": "0.17.10",
|
||||
"oyejorge/less.php": "1.7.0.10",
|
||||
"php": ">=5.5.9",
|
||||
"psr/log": "1.0.0",
|
||||
"wikimedia/assert": "0.2.2",
|
||||
"wikimedia/base-convert": "1.0.1",
|
||||
"wikimedia/cdb": "1.3.0",
|
||||
"wikimedia/cdb": "1.4.1",
|
||||
"wikimedia/cldr-plural-rule-parser": "1.0.0",
|
||||
"wikimedia/composer-merge-plugin": "1.3.1",
|
||||
"wikimedia/html-formatter": "1.0.1",
|
||||
"wikimedia/ip-set": "1.1.0",
|
||||
"wikimedia/php-session-serializer": "1.0.3",
|
||||
"wikimedia/php-session-serializer": "1.0.4",
|
||||
"wikimedia/relpath": "1.0.3",
|
||||
"wikimedia/running-stat": "1.1.0",
|
||||
"wikimedia/utfnormal": "1.0.3",
|
||||
"wikimedia/wrappedstring": "2.0.0",
|
||||
"wikimedia/scoped-callback": "1.0.0",
|
||||
"wikimedia/utfnormal": "1.1.0",
|
||||
"wikimedia/wait-condition-loop": "1.0.1",
|
||||
"wikimedia/wrappedstring": "2.2.0",
|
||||
"zordius/lightncandy": "0.23"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/spdx-licenses": "1.1.4",
|
||||
"jakub-onderka/php-parallel-lint": "0.9.2",
|
||||
"justinrainbow/json-schema": "~1.3",
|
||||
"justinrainbow/json-schema": "~3.0",
|
||||
"mediawiki/mediawiki-codesniffer": "0.7.2",
|
||||
"monolog/monolog": "~1.18.2",
|
||||
"nikic/php-parser": "1.4.1",
|
||||
"nikic/php-parser": "2.1.0",
|
||||
"nmred/kafka-php": "0.1.5",
|
||||
"phpunit/phpunit": "4.8.24",
|
||||
"wikimedia/avro": "1.7.7"
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
The 'docs' directory contain various text files that should help you understand
|
||||
the most important parts of the code of MediaWiki. More in-depth documentation
|
||||
can be found at:
|
||||
https://www.mediawiki.org/wiki/Manual:Code
|
||||
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Code
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Developer_hub
|
||||
API documentation is automatically generated and updated daily at:
|
||||
https://doc.wikimedia.org/mediawiki-core/master/php/html/
|
||||
|
||||
|
@ -14,6 +14,6 @@ You can get a fresh version using 'make doc' or mwdocgen.php in the
|
|||
|
||||
|
||||
For end users, most of the documentation is located online at:
|
||||
https://www.mediawiki.org/wiki/Help:Contents
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents
|
||||
Documentation for MediaWiki site administrators is at:
|
||||
https://www.mediawiki.org/wiki/Manual:Contents
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents
|
||||
|
|
|
@ -8,7 +8,7 @@ By Tim Starling, January 2006.
|
|||
For information about the MediaWiki database layout, such as a
|
||||
description of the tables and their contents, please see:
|
||||
https://www.mediawiki.org/wiki/Manual:Database_layout
|
||||
https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/core.git;a=blob_plain;f=maintenance/tables.sql;hb=HEAD
|
||||
https://phabricator.wikimedia.org/diffusion/MW/browse/master/maintenance/tables.sql
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
This document is intended to provide useful advice for parties seeking to
|
||||
redistribute MediaWiki to end users. It's targeted particularly at maintainers
|
||||
redistribute MediaWiki to end users. It's targeted particularly at maintainers
|
||||
for Linux distributions, since it's been observed that distribution packages of
|
||||
MediaWiki often break. We've consistently had to recommend that users seeking
|
||||
MediaWiki often break. We've consistently had to recommend that users seeking
|
||||
support use official tarballs instead of their distribution's packages, and
|
||||
this often solves whatever problem the user is having. It would be nice if
|
||||
this often solves whatever problem the user is having. It would be nice if
|
||||
this could change.
|
||||
|
||||
== Background: why web applications are different ==
|
||||
|
||||
MediaWiki is intended to be usable on any web host that provides support for
|
||||
PHP and a database. Many users of low-end shared hosting have very limited
|
||||
PHP and a database. Many users of low-end shared hosting have very limited
|
||||
access to their machine: often only FTP access to some subdirectory of the web
|
||||
root. Support for these users entails several restrictions, such as:
|
||||
root. Support for these users entails several restrictions, such as:
|
||||
|
||||
1) We cannot require installation of any files outside the web root. Few of
|
||||
1) We cannot require installation of any files outside the web root. Few of
|
||||
our users have access to directories like /usr or /etc.
|
||||
2) We cannot require the ability to run any utility on the command line.
|
||||
Many shared hosts have exec() and similar PHP functions disabled.
|
||||
3) We cannot assume that the software has write access anywhere useful. The
|
||||
3) We cannot assume that the software has write access anywhere useful. The
|
||||
user account that MediaWiki (including its installer) runs under is often
|
||||
different from the account the user used to upload the files, and we might be
|
||||
restricted by PHP settings such as safe mode or open_basedir.
|
||||
|
@ -30,28 +30,28 @@ root. Support for these users entails several restrictions, such as:
|
|||
|
||||
Since anything that works on cheap shared hosting will work if you have shell
|
||||
or root access too, MediaWiki's design is based around catering to the lowest
|
||||
common denominator. Although we support higher-end setups as well (like
|
||||
common denominator. Although we support higher-end setups as well (like
|
||||
Wikipedia!), the way many things work by default is tailored toward shared
|
||||
hosting. These defaults are unconventional from the point of view of normal
|
||||
hosting. These defaults are unconventional from the point of view of normal
|
||||
(non-web) applications -- they might conflict with distributors' policies, and
|
||||
they certainly aren't ideal for someone who's installing MediaWiki as root.
|
||||
|
||||
== Directory structure ==
|
||||
|
||||
Because of constraint (1) above, MediaWiki does not conform to normal
|
||||
Unix filesystem layout. Hopefully we'll offer direct support for standard
|
||||
Unix filesystem layout. Hopefully we'll offer direct support for standard
|
||||
layouts in the future, but for now *any change to the location of files is
|
||||
unsupported*. Moving things and leaving symlinks will *probably* not break
|
||||
unsupported*. Moving things and leaving symlinks will *probably* not break
|
||||
anything, but it is *strongly* advised not to try any more intrusive changes to
|
||||
get MediaWiki to conform more closely to your filesystem hierarchy. Any such
|
||||
get MediaWiki to conform more closely to your filesystem hierarchy. Any such
|
||||
attempt will almost certainly result in unnecessary bugs.
|
||||
|
||||
The standard recommended location to install MediaWiki, relative to the web
|
||||
root, is /w (so, e.g., /var/www/w). Rewrite rules can then be used to enable
|
||||
"pretty URLs" like /wiki/Article instead of /w/index.php?title=Article. (This
|
||||
root, is /w (so, e.g., /var/www/w). Rewrite rules can then be used to enable
|
||||
"pretty URLs" like /wiki/Article instead of /w/index.php?title=Article. (This
|
||||
is the convention Wikipedia uses.) In theory, it should be possible to enable
|
||||
the appropriate rewrite rules by default, if you can reconfigure the web
|
||||
server, but you'd need to alter LocalSettings.php too. See
|
||||
server, but you'd need to alter LocalSettings.php too. See
|
||||
<https://www.mediawiki.org/wiki/Manual:Short_URL> for details on short URLs.
|
||||
|
||||
If you really must mess around with the directory structure, note that the
|
||||
|
@ -59,37 +59,38 @@ following files *must* all be web-accessible for MediaWiki to function
|
|||
correctly:
|
||||
|
||||
* api.php, img_auth.php, index.php, load.php, opensearch_desc.php, thumb.php,
|
||||
profileinfo.php, redirect.php, trackback.php. These are the entry points for
|
||||
normal usage. This list may be incomplete and is subject to change.
|
||||
profileinfo.php. These are the entry points for normal usage. This list may be
|
||||
incomplete and is subject to change.
|
||||
* mw-config/index.php: Used for web-based installation (sets up the database,
|
||||
prompts for the name of the wiki, etc.).
|
||||
* images/: Used for uploaded files. This could be somewhere else if
|
||||
* images/: Used for uploaded files. This could be somewhere else if
|
||||
$wgUploadDirectory and $wgUploadPath are changed appropriately.
|
||||
* skins/*/: Subdirectories of skins/ contain CSS and JavaScript files that
|
||||
must be accessible to web browsers. The PHP files and Skin.sample in skins/
|
||||
don't need to be accessible. This could be somewhere else if
|
||||
must be accessible to web browsers. The PHP files and Skin.sample in skins/
|
||||
don't need to be accessible. This could be somewhere else if
|
||||
$wgStyleDirectory and $wgStylePath are changed appropriately.
|
||||
* extensions/: Many extensions include CSS and JavaScript files in their
|
||||
extensions directory, and will break if they aren't web-accessible. Some
|
||||
extensions directory, and will break if they aren't web-accessible. Some
|
||||
extensions might theoretically provide additional entry points as well, at
|
||||
least in principle.
|
||||
|
||||
But all files should keep their position relative to the web-visible
|
||||
installation directory no matter what. If you must move includes/ somewhere in
|
||||
/usr/share, provide a symlink from /var/www/w. If you don't, you *will* break
|
||||
something. You have been warned.
|
||||
installation directory no matter what. If you must move includes/ somewhere in
|
||||
/usr/share, provide a symlink from /var/www/w. If you don't, you *will* break
|
||||
something. You have been warned.
|
||||
|
||||
== Configuration ==
|
||||
|
||||
MediaWiki is configured using LocalSettings.php. This is a PHP file that's
|
||||
MediaWiki is configured using LocalSettings.php. This is a PHP file that's
|
||||
generated when the user visits mw-config/index.php to install the software, and
|
||||
which the user can edit by hand thereafter. It's just a plain old PHP file,
|
||||
and can contain any PHP statements. It usually sets global variables that are
|
||||
which the user can edit by hand thereafter. It's just a plain old PHP file,
|
||||
and can contain any PHP statements. It usually sets global variables that are
|
||||
used for configuration, and includes files used by any extensions.
|
||||
|
||||
Distributors can easily add extra statements to the autogenerated
|
||||
LocalSettings.php by changing mw-config/overrides.php (see that file for details
|
||||
and examples).
|
||||
Distributors can easily change the installer behavior, including LocalSettings
|
||||
generated, by placing their overrides into mw-config/overrides directory. Doing
|
||||
that is highly preferred to modifying MediaWiki code directly. See
|
||||
mw-config/overrides/README for more details and examples.
|
||||
|
||||
There's a new maintenance/install.php script which could be used for performing
|
||||
an install through the command line.
|
||||
|
@ -98,7 +99,7 @@ Some configuration options that distributors might be in a position to set
|
|||
intelligently:
|
||||
|
||||
* $wgEmergencyContact: An e-mail address that can be used to contact the wiki
|
||||
administrator. By default, "wikiadmin@ServerName".
|
||||
administrator. By default, "wikiadmin@ServerName".
|
||||
* $wgPasswordSender: The e-mail address to use when sending password e-mails.
|
||||
By default, "MediaWiki Mail <apache@ServerName>".
|
||||
(with ServerName guessed from the http request)
|
||||
|
@ -115,16 +116,16 @@ Any package manager which replaces the files but doesn't update the db is leavin
|
|||
an inconsistent wiki that may produce blank pages (php errors) when new features
|
||||
using the changed schema would be used.
|
||||
|
||||
Since MediaWiki 1.17 it is possible to upgrade using the installer by providing
|
||||
Since MediaWiki 1.17 it is possible to upgrade using the web installer by providing
|
||||
an arbitrary secret value stored as $wgUpgradeKey in LocalSettings (older versions
|
||||
needed to rename LocalSettings.php in order to upgrade using the installer).
|
||||
|
||||
== Documentation ==
|
||||
|
||||
MediaWiki's official documentation is split between two places: the source
|
||||
code, and <https://www.mediawiki.org/>. The source code documentation is written
|
||||
code, and <https://www.mediawiki.org/>. The source code documentation is written
|
||||
exclusively by developers, and so is likely to be reliable (at worst,
|
||||
outdated). However, it can be pretty sparse. mediawiki.org documentation is
|
||||
outdated). However, it can be pretty sparse. mediawiki.org documentation is
|
||||
often much more thorough, but it's maintained by a wiki that's open to
|
||||
anonymous edits, so its quality is sometimes sketchy -- don't assume that
|
||||
anything there is officially endorsed!
|
||||
|
@ -132,31 +133,27 @@ anything there is officially endorsed!
|
|||
== Upstream ==
|
||||
|
||||
MediaWiki is a project hosted and led by the Wikimedia Foundation, the
|
||||
not-for-profit charity that operates Wikipedia. Wikimedia employs the lead
|
||||
not-for-profit charity that operates Wikipedia. Wikimedia employs the lead
|
||||
developer and several other paid developers, but commit access is given out
|
||||
liberally and there are multiple very active volunteer developers as well. A
|
||||
liberally and there are multiple very active volunteer developers as well. A
|
||||
list of developers can be found at <https://www.mediawiki.org/wiki/Developers>.
|
||||
|
||||
MediaWiki's bug tracker is at <https://bugzilla.wikimedia.org>. However, most
|
||||
developers follow the bug tracker little or not at all. The best place to
|
||||
post if you want to get developers' attention is the wikitech-l mailing list
|
||||
<https://lists.wikimedia.org/mailman/listinfo/wikitech-l>. Posts to wikitech-l
|
||||
will inevitably be read by multiple experienced MediaWiki developers. There's
|
||||
MediaWiki's bug tracker is at <https://phabricator.wikimedia.org>. However, you
|
||||
might find that the best place to post if you want to get developers' attention
|
||||
is the wikitech-l mailing list
|
||||
<https://lists.wikimedia.org/mailman/listinfo/wikitech-l>. Posts to wikitech-l
|
||||
will inevitably be read by multiple experienced MediaWiki developers. There's
|
||||
also an active IRC chat at <irc://irc.freenode.net/mediawiki>, where there are
|
||||
usually several developers at reasonably busy times of day.
|
||||
|
||||
Unfortunately, we don't have a very good system for patch review. Patches
|
||||
should be submitted on Bugzilla (as unified diffs produced with "svn diff"
|
||||
against the latest trunk revision), but many patches languish without review
|
||||
until they bitrot into uselessness. You might want to get a developer to
|
||||
commit to reviewing your patch before you put too much effort into it.
|
||||
Reasonably straightforward patches shouldn't be too hard to get accepted if
|
||||
there's an interested developer, however -- posting to Bugzilla and then
|
||||
dropping a note on wikitech-l if nobody responds is a good tactic.
|
||||
Our Git repositories are hosted at <https://gerrit.wikimedia.org>, see
|
||||
<https://www.mediawiki.org/wiki/Gerrit> for more information. Patches should
|
||||
be submitted there. If you know which developers are best suited to review your
|
||||
patch, add them to it, otherwise ask on IRC to get better review time.
|
||||
|
||||
All redistributors of MediaWiki should be subscribed to mediawiki-announce
|
||||
<https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce>. It's
|
||||
extremely low-traffic, with an average of less than one post per month. All
|
||||
<https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce>. It's
|
||||
extremely low-traffic, with an average of less than one post per month. All
|
||||
new releases are announced here, including critical security updates.
|
||||
|
||||
== Useful software to install ==
|
||||
|
@ -167,41 +164,40 @@ perhaps configure it to use them (see Configuration section of this document):
|
|||
|
||||
* APC (Alternative PHP Cache), XCache, or similar: Will greatly speed up the
|
||||
execution of MediaWiki, and all other PHP applications, at some cost in
|
||||
memory usage. Will be used automatically for the most part.
|
||||
* clamav: Can be used for virus scanning of uploaded files. Enable with
|
||||
memory usage. Will be used automatically for the most part.
|
||||
* clamav: Can be used for virus scanning of uploaded files. Enable with
|
||||
"$wgAntivirus = 'clamav';".
|
||||
* DjVuLibre: Allows processing of DjVu files. To enable this, set
|
||||
* DjVuLibre: Allows processing of DjVu files. To enable this, set
|
||||
"$wgDjvuDump = 'djvudump'; $wgDjvuRenderer = 'ddjvu'; $wgDjvuTxt = 'djvutxt';".
|
||||
* HTML Tidy: Fixes errors in HTML at runtime. Can be enabled with
|
||||
* HTML Tidy: Fixes errors in HTML at runtime. Can be enabled with
|
||||
"$wgUseTidy = true;".
|
||||
* ImageMagick: For resizing images. "$wgUseImageMagick = true;" will enable
|
||||
it. PHP's GD can also be used, but ImageMagick is preferable.
|
||||
* Squid: Can provide a drastic speedup and a major cut in resource
|
||||
consumption, but enabling it may interfere with other applications. It might
|
||||
be suitable for a separate mediawiki-squid package. For setup details, see:
|
||||
<https://www.mediawiki.org/wiki/Manual:Squid_caching>
|
||||
* ImageMagick: For resizing images. "$wgUseImageMagick = true;" will enable
|
||||
it. PHP's GD can also be used, but ImageMagick is preferable.
|
||||
* HTTP cache such as Varnish or Squid: can provide a drastic speedup and a
|
||||
major cut in resource consumption, but enabling it may interfere with other
|
||||
applications. It might be suitable for a separate package. For setup details, see:
|
||||
- <https://www.mediawiki.org/wiki/Manual:Varnish_caching>
|
||||
- <https://www.mediawiki.org/wiki/Manual:Squid_caching>
|
||||
* rsvg or other SVG rasterizer: ImageMagick can be used for SVG support, but
|
||||
is not ideal. Wikipedia (as of the time of this writing) uses rsvg. To
|
||||
is not ideal. Wikipedia (as of the time of this writing) uses rsvg. To
|
||||
enable, set "$wgSVGConverter = 'rsvg';" (or other as appropriate).
|
||||
* texvc: Included with MediaWiki. Instructions for compiling and
|
||||
installing it are in the math/ directory.
|
||||
|
||||
MediaWiki uses some standard GNU utilities as well, such as diff and diff3. If
|
||||
MediaWiki uses some standard GNU utilities as well, such as diff and diff3. If
|
||||
these are present in /usr/bin or some other reasonable location, they will be
|
||||
configured automatically on install.
|
||||
|
||||
MediaWiki also has a "job queue" that handles background processing. Because
|
||||
MediaWiki also has a "job queue" that handles background processing. Because
|
||||
shared hosts often don't provide access to cron, the job queue is run on every
|
||||
page view by default. This means the background tasks aren't really done in
|
||||
the background. Busy wikis can set $wgJobRunRate to 0 and run
|
||||
maintenance/runJobs.php periodically out of cron. Distributors probably
|
||||
page view by default. This means the background tasks aren't really done in
|
||||
the background. Busy wikis can set $wgJobRunRate to 0 and run
|
||||
maintenance/runJobs.php periodically out of cron. Distributors probably
|
||||
shouldn't set this up as a default, however, since the extra cron job is
|
||||
unnecessary overhead for a little-used wiki.
|
||||
|
||||
== Web server configuration ==
|
||||
|
||||
MediaWiki includes several .htaccess files to restrict access to some
|
||||
directories. If the web server is not configured to support these files, and
|
||||
directories. If the web server is not configured to support these files, and
|
||||
the relevant directories haven't been moved someplace inaccessible anyway (e.g.
|
||||
symlinked in /usr/share with the web server configured to not follow symlinks),
|
||||
then it might be useful to deny web access to those directories in the web
|
||||
|
|
|
@ -51,224 +51,7 @@
|
|||
},
|
||||
"license-name": {
|
||||
"type": "string",
|
||||
"description": "Short identifier for the license under which the extension is released.",
|
||||
"enum": [
|
||||
"AFL-1.1",
|
||||
"AFL-1.2",
|
||||
"AFL-2.0",
|
||||
"AFL-2.1",
|
||||
"AFL-3.0",
|
||||
"APL-1.0",
|
||||
"Aladdin",
|
||||
"ANTLR-PD",
|
||||
"Apache-1.0",
|
||||
"Apache-1.1",
|
||||
"Apache-2.0",
|
||||
"APSL-1.0",
|
||||
"APSL-1.1",
|
||||
"APSL-1.2",
|
||||
"APSL-2.0",
|
||||
"Artistic-1.0",
|
||||
"Artistic-1.0-cl8",
|
||||
"Artistic-1.0-Perl",
|
||||
"Artistic-2.0",
|
||||
"AAL",
|
||||
"BitTorrent-1.0",
|
||||
"BitTorrent-1.1",
|
||||
"BSL-1.0",
|
||||
"BSD-2-Clause",
|
||||
"BSD-2-Clause-FreeBSD",
|
||||
"BSD-2-Clause-NetBSD",
|
||||
"BSD-3-Clause",
|
||||
"BSD-3-Clause-Clear",
|
||||
"BSD-4-Clause",
|
||||
"BSD-4-Clause-UC",
|
||||
"CECILL-1.0",
|
||||
"CECILL-1.1",
|
||||
"CECILL-2.0",
|
||||
"CECILL-B",
|
||||
"CECILL-C",
|
||||
"ClArtistic",
|
||||
"CNRI-Python",
|
||||
"CNRI-Python-GPL-Compatible",
|
||||
"CPOL-1.02",
|
||||
"CDDL-1.0",
|
||||
"CDDL-1.1",
|
||||
"CPAL-1.0",
|
||||
"CPL-1.0",
|
||||
"CATOSL-1.1",
|
||||
"Condor-1.1",
|
||||
"CC-BY-1.0",
|
||||
"CC-BY-2.0",
|
||||
"CC-BY-2.5",
|
||||
"CC-BY-3.0",
|
||||
"CC-BY-ND-1.0",
|
||||
"CC-BY-ND-2.0",
|
||||
"CC-BY-ND-2.5",
|
||||
"CC-BY-ND-3.0",
|
||||
"CC-BY-NC-1.0",
|
||||
"CC-BY-NC-2.0",
|
||||
"CC-BY-NC-2.5",
|
||||
"CC-BY-NC-3.0",
|
||||
"CC-BY-NC-ND-1.0",
|
||||
"CC-BY-NC-ND-2.0",
|
||||
"CC-BY-NC-ND-2.5",
|
||||
"CC-BY-NC-ND-3.0",
|
||||
"CC-BY-NC-SA-1.0",
|
||||
"CC-BY-NC-SA-2.0",
|
||||
"CC-BY-NC-SA-2.5",
|
||||
"CC-BY-NC-SA-3.0",
|
||||
"CC-BY-SA-1.0",
|
||||
"CC-BY-SA-2.0",
|
||||
"CC-BY-SA-2.5",
|
||||
"CC-BY-SA-3.0",
|
||||
"CC0-1.0",
|
||||
"CUA-OPL-1.0",
|
||||
"D-FSL-1.0",
|
||||
"WTFPL",
|
||||
"EPL-1.0",
|
||||
"eCos-2.0",
|
||||
"ECL-1.0",
|
||||
"ECL-2.0",
|
||||
"EFL-1.0",
|
||||
"EFL-2.0",
|
||||
"Entessa",
|
||||
"ErlPL-1.1",
|
||||
"EUDatagrid",
|
||||
"EUPL-1.0",
|
||||
"EUPL-1.1",
|
||||
"Fair",
|
||||
"Frameworx-1.0",
|
||||
"FTL",
|
||||
"AGPL-1.0",
|
||||
"AGPL-3.0",
|
||||
"GFDL-1.1",
|
||||
"GFDL-1.2",
|
||||
"GFDL-1.3",
|
||||
"GPL-1.0",
|
||||
"GPL-1.0+",
|
||||
"GPL-2.0",
|
||||
"GPL-2.0+",
|
||||
"GPL-2.0-with-autoconf-exception",
|
||||
"GPL-2.0-with-bison-exception",
|
||||
"GPL-2.0-with-classpath-exception",
|
||||
"GPL-2.0-with-font-exception",
|
||||
"GPL-2.0-with-GCC-exception",
|
||||
"GPL-3.0",
|
||||
"GPL-3.0+",
|
||||
"GPL-3.0-with-autoconf-exception",
|
||||
"GPL-3.0-with-GCC-exception",
|
||||
"LGPL-2.1",
|
||||
"LGPL-2.1+",
|
||||
"LGPL-3.0",
|
||||
"LGPL-3.0+",
|
||||
"LGPL-2.0",
|
||||
"LGPL-2.0+",
|
||||
"gSOAP-1.3b",
|
||||
"HPND",
|
||||
"IBM-pibs",
|
||||
"IPL-1.0",
|
||||
"Imlib2",
|
||||
"IJG",
|
||||
"Intel",
|
||||
"IPA",
|
||||
"ISC",
|
||||
"JSON",
|
||||
"LPPL-1.3a",
|
||||
"LPPL-1.0",
|
||||
"LPPL-1.1",
|
||||
"LPPL-1.2",
|
||||
"LPPL-1.3c",
|
||||
"Libpng",
|
||||
"LPL-1.02",
|
||||
"LPL-1.0",
|
||||
"MS-PL",
|
||||
"MS-RL",
|
||||
"MirOS",
|
||||
"MIT",
|
||||
"Motosoto",
|
||||
"MPL-1.0",
|
||||
"MPL-1.1",
|
||||
"MPL-2.0",
|
||||
"MPL-2.0-no-copyleft-exception",
|
||||
"Multics",
|
||||
"NASA-1.3",
|
||||
"Naumen",
|
||||
"NBPL-1.0",
|
||||
"NGPL",
|
||||
"NOSL",
|
||||
"NPL-1.0",
|
||||
"NPL-1.1",
|
||||
"Nokia",
|
||||
"NPOSL-3.0",
|
||||
"NTP",
|
||||
"OCLC-2.0",
|
||||
"ODbL-1.0",
|
||||
"PDDL-1.0",
|
||||
"OGTSL",
|
||||
"OLDAP-2.2.2",
|
||||
"OLDAP-1.1",
|
||||
"OLDAP-1.2",
|
||||
"OLDAP-1.3",
|
||||
"OLDAP-1.4",
|
||||
"OLDAP-2.0",
|
||||
"OLDAP-2.0.1",
|
||||
"OLDAP-2.1",
|
||||
"OLDAP-2.2",
|
||||
"OLDAP-2.2.1",
|
||||
"OLDAP-2.3",
|
||||
"OLDAP-2.4",
|
||||
"OLDAP-2.5",
|
||||
"OLDAP-2.6",
|
||||
"OLDAP-2.7",
|
||||
"OPL-1.0",
|
||||
"OSL-1.0",
|
||||
"OSL-2.0",
|
||||
"OSL-2.1",
|
||||
"OSL-3.0",
|
||||
"OLDAP-2.8",
|
||||
"OpenSSL",
|
||||
"PHP-3.0",
|
||||
"PHP-3.01",
|
||||
"PostgreSQL",
|
||||
"Python-2.0",
|
||||
"QPL-1.0",
|
||||
"RPSL-1.0",
|
||||
"RPL-1.1",
|
||||
"RPL-1.5",
|
||||
"RHeCos-1.1",
|
||||
"RSCPL",
|
||||
"Ruby",
|
||||
"SAX-PD",
|
||||
"SGI-B-1.0",
|
||||
"SGI-B-1.1",
|
||||
"SGI-B-2.0",
|
||||
"OFL-1.0",
|
||||
"OFL-1.1",
|
||||
"SimPL-2.0",
|
||||
"Sleepycat",
|
||||
"SMLNJ",
|
||||
"SugarCRM-1.1.3",
|
||||
"SISSL",
|
||||
"SISSL-1.2",
|
||||
"SPL-1.0",
|
||||
"Watcom-1.0",
|
||||
"NCSA",
|
||||
"VSL-1.0",
|
||||
"W3C",
|
||||
"WXwindows",
|
||||
"Xnet",
|
||||
"X11",
|
||||
"XFree86-1.1",
|
||||
"YPL-1.0",
|
||||
"YPL-1.1",
|
||||
"Zimbra-1.3",
|
||||
"Zlib",
|
||||
"ZPL-1.1",
|
||||
"ZPL-2.0",
|
||||
"ZPL-2.1",
|
||||
"Unlicense"
|
||||
]
|
||||
"description": "SPDX identifier for the license under which the extension is released."
|
||||
},
|
||||
"requires": {
|
||||
"type": "object",
|
||||
|
@ -415,7 +198,11 @@
|
|||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "Group which this module should be loaded together with"
|
||||
"description": "Group with which this module should be loaded"
|
||||
},
|
||||
"deprecated": {
|
||||
"type": ["object", "boolean"],
|
||||
"description": "Whether the module is deprecated and usage is discouraged. Either a boolean or an object with key message can be used to customise deprecation message."
|
||||
},
|
||||
"position": {
|
||||
"type": "string",
|
||||
|
@ -435,6 +222,52 @@
|
|||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"noflip": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to skip CSSJanus LTR-to-RTL flipping for this module. Recommended for styles imported from libraries that already properly handle their RTL styles. Default is false, meaning CSSJanus will be applied on RTL-mode output."
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "A ResourceLoaderWikiModule definition",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"class": {
|
||||
"enum": ["ResourceLoaderWikiModule"]
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "Group with which this module should be loaded"
|
||||
},
|
||||
"position": {
|
||||
"type": "string",
|
||||
"description": "Position on the page to load this module at",
|
||||
"enum": [
|
||||
"bottom",
|
||||
"top"
|
||||
]
|
||||
},
|
||||
"targets": {
|
||||
"type": ["string", "array"],
|
||||
"description": "ResourceLoader target the module can run on",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"type": "array",
|
||||
"description": "A list of on-wiki pages containing JavaScript that should be loaded",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"styles": {
|
||||
"type": "array",
|
||||
"description": "A list of on-wiki pages containing CSS that should be loaded",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -500,10 +333,6 @@
|
|||
"type": "object",
|
||||
"description": "ResourceLoader LESS variables"
|
||||
},
|
||||
"ResourceLoaderLESSImportPaths": {
|
||||
"type": "object",
|
||||
"description": "ResourceLoader import paths"
|
||||
},
|
||||
"ConfigRegistry": {
|
||||
"type": "object",
|
||||
"description": "Registry of factory functions to create Config objects"
|
||||
|
@ -535,6 +364,14 @@
|
|||
"type": "object",
|
||||
"description": "Central ID lookup providers"
|
||||
},
|
||||
"ChangeCredentialsBlacklist": {
|
||||
"type": "object",
|
||||
"description": "AuthenticationRequest classes which can only be used internally for credentials change"
|
||||
},
|
||||
"RemoveCredentialsBlacklist": {
|
||||
"type": "object",
|
||||
"description": "AuthenticationRequest classes which can only be used internally for credentials removal"
|
||||
},
|
||||
"namespaces": {
|
||||
"type": "array",
|
||||
"description": "Method to add extra namespaces",
|
||||
|
@ -579,6 +416,11 @@
|
|||
"capitallinkoverride": {
|
||||
"type": "boolean",
|
||||
"description": "Set $wgCapitalLinks on a per-namespace basis"
|
||||
},
|
||||
"conditional": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook)",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"required": ["id", "constant", "name"]
|
||||
|
@ -630,6 +472,29 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"GrantPermissions": {
|
||||
"type": "object",
|
||||
"description": "Map of permissions granted to authorized consumers to their bundles, called 'grants'",
|
||||
"patternProperties": {
|
||||
"^[a-z]+$": {
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
"^[a-z]+$": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"GrantPermissionGroups": {
|
||||
"type": "object",
|
||||
"description": "Map of grants to their UI grouping",
|
||||
"patternProperties": {
|
||||
"^[a-z]+$": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ImplicitGroups": {
|
||||
"type": "array",
|
||||
"description": "Implicit groups"
|
||||
|
@ -805,6 +670,7 @@
|
|||
"type": "string",
|
||||
"enum": [
|
||||
"array_merge_recursive",
|
||||
"array_replace_recursive",
|
||||
"array_plus_2d",
|
||||
"array_plus",
|
||||
"array_merge"
|
||||
|
@ -819,6 +685,10 @@
|
|||
"type": "array",
|
||||
"description": "Parser test suite files to be run by parserTests.php when no specific filename is passed to it"
|
||||
},
|
||||
"ServiceWiringFiles": {
|
||||
"type": "array",
|
||||
"description": "List of service wiring files to be loaded by the default instance of MediaWikiServices"
|
||||
},
|
||||
"load_composer_autoloader": {
|
||||
"type": "boolean",
|
||||
"description": "Load the composer autoloader for this extension, if one is present"
|
||||
|
|
320
docs/hooks.txt
320
docs/hooks.txt
|
@ -297,16 +297,6 @@ After a user account is created.
|
|||
$user: the User object that was created. (Parameter added in 1.7)
|
||||
$byEmail: true when account was created "by email" (added in 1.12)
|
||||
|
||||
'AddNewAccountApiForm': Allow modifying internal login form when creating an
|
||||
account via API.
|
||||
$apiModule: the ApiCreateAccount module calling
|
||||
$loginForm: the LoginForm used
|
||||
|
||||
'AddNewAccountApiResult': Modify API output when creating a new account via API.
|
||||
$apiModule: the ApiCreateAccount module calling
|
||||
$loginForm: the LoginForm used
|
||||
&$result: associative array for API result data
|
||||
|
||||
'AfterBuildFeedLinks': Executed in OutputPage.php after all feed links (atom, rss,...)
|
||||
are created. Can be used to omit specific feeds from being outputted. You must not use
|
||||
this hook to add feeds, use OutputPage::addFeedLink() instead.
|
||||
|
@ -371,7 +361,8 @@ $user: Current user
|
|||
&$message: API usage message to die with, as a message key or array
|
||||
as accepted by ApiBase::dieUsageMsg.
|
||||
|
||||
'APIEditBeforeSave': Before saving a page with api.php?action=edit, after
|
||||
'APIEditBeforeSave': DEPRECATED! Use EditFilterMergedContent instead.
|
||||
Before saving a page with api.php?action=edit, after
|
||||
processing request parameters. Return false to let the request fail, returning
|
||||
an error message or an <edit result="Failure"> tag if $resultArr was filled.
|
||||
Unlike for example 'EditFilterMergedContent' this also being run on undo.
|
||||
|
@ -443,6 +434,15 @@ an exception is thrown during API action execution.
|
|||
$apiMain: Calling ApiMain instance.
|
||||
$e: Exception object.
|
||||
|
||||
'ApiMakeParserOptions': Called from ApiParse and ApiExpandTemplates to allow
|
||||
extensions to adjust the ParserOptions before parsing.
|
||||
$options: ParserOptions object
|
||||
$title: Title to be parsed
|
||||
$params: Parameter array for the API module
|
||||
$module: API module (which is also a ContextSource)
|
||||
&$reset: Set to a ScopedCallback used to reset any hooks after the parse is done.
|
||||
&$suppressCache: Set true if cache should be suppressed.
|
||||
|
||||
'ApiOpenSearchSuggest': Called when constructing the OpenSearch results. Hooks
|
||||
can alter or append to the array.
|
||||
&$results: array with integer keys to associative arrays. Keys in associative
|
||||
|
@ -464,6 +464,41 @@ $moduleManager: ApiModuleManager Module manager instance
|
|||
action=query submodule. Use this to extend core API modules.
|
||||
&$module: Module object
|
||||
|
||||
'ApiQueryBaseAfterQuery': Called for (some) API query modules after the
|
||||
database query has returned. An API query module wanting to use this hook
|
||||
should see the ApiQueryBase::select() and ApiQueryBase::processRow()
|
||||
documentation.
|
||||
$module: ApiQueryBase module in question
|
||||
$result: ResultWrapper|bool returned from the IDatabase::select()
|
||||
&$hookData: array that was passed to the 'ApiQueryBaseBeforeQuery' hook and
|
||||
will be passed to the 'ApiQueryBaseProcessRow' hook, intended for inter-hook
|
||||
communication.
|
||||
|
||||
'ApiQueryBaseBeforeQuery': Called for (some) API query modules before a
|
||||
database query is made. WARNING: It would be very easy to misuse this hook and
|
||||
break the module! Any joins added *must* join on a unique key of the target
|
||||
table unless you really know what you're doing. An API query module wanting to
|
||||
use this hook should see the ApiQueryBase::select() and
|
||||
ApiQueryBase::processRow() documentation.
|
||||
$module: ApiQueryBase module in question
|
||||
&$tables: array of tables to be queried
|
||||
&$fields: array of columns to select
|
||||
&$conds: array of WHERE conditionals for query
|
||||
&$query_options: array of options for the database request
|
||||
&$join_conds: join conditions for the tables
|
||||
&$hookData: array that will be passed to the 'ApiQueryBaseAfterQuery' and
|
||||
'ApiQueryBaseProcessRow' hooks, intended for inter-hook communication.
|
||||
|
||||
'ApiQueryBaseProcessRow': Called for (some) API query modules as each row of
|
||||
the database result is processed. Return false to stop processing the result
|
||||
set. An API query module wanting to use this hook should see the
|
||||
ApiQueryBase::select() and ApiQueryBase::processRow() documentation.
|
||||
$module: ApiQueryBase module in question
|
||||
$row: stdClass Database result row
|
||||
&$data: array to be included in the ApiResult.
|
||||
&$hookData: array that was be passed to the 'ApiQueryBaseBeforeQuery' and
|
||||
'ApiQueryBaseAfterQuery' hooks, intended for inter-hook communication.
|
||||
|
||||
'APIQueryGeneratorAfterExecute': After calling the executeGenerator() method of
|
||||
an action=query submodule. Use this to extend core API modules.
|
||||
&$module: Module object
|
||||
|
@ -596,8 +631,9 @@ $outputPage: OutputPage that can be used to append the output.
|
|||
&$user: the user that deleted the article
|
||||
$reason: the reason the article was deleted
|
||||
$id: id of the article that was deleted
|
||||
$content: the Content of the deleted page
|
||||
$content: the Content of the deleted page (or null, when deleting a broken page)
|
||||
$logEntry: the ManualLogEntry used to record the deletion
|
||||
$archivedRevisionCount: the number of revisions archived during the deletion
|
||||
|
||||
'ArticleEditUpdateNewTalk': Before updating user_newtalk when a user talk page
|
||||
was changed.
|
||||
|
@ -673,6 +709,10 @@ $oldPageID: the page ID of the revision when archived (may be null)
|
|||
revisions of an article.
|
||||
$title: Title object of the article
|
||||
$ids: Ids to set the visibility for
|
||||
$visibilityChangeMap: Map of revision id to oldBits and newBits. This array can be
|
||||
examined to determine exactly what visibility bits have changed for each
|
||||
revision. This array is of the form
|
||||
[id => ['oldBits' => $oldBits, 'newBits' => $newBits], ... ]
|
||||
|
||||
'ArticleRollbackComplete': After an article rollback is completed.
|
||||
$wikiPage: the WikiPage that was edited
|
||||
|
@ -889,6 +929,7 @@ $image: File
|
|||
'BlockIpComplete': After an IP address or user is blocked.
|
||||
$block: the Block object that was saved
|
||||
$user: the user who did the block (not the one being blocked)
|
||||
$priorBlock: the Block object for the prior block or null if there was none
|
||||
|
||||
'BookInformation': Before information output on Special:Booksources.
|
||||
$isbn: ISBN to show information for
|
||||
|
@ -919,6 +960,7 @@ $wikiPage: WikiPage that was added
|
|||
'CategoryAfterPageRemoved': After a page is removed from a category.
|
||||
$category: Category that page was removed from
|
||||
$wikiPage: WikiPage that was removed
|
||||
$id: the page ID (original ID in case of page deletions)
|
||||
|
||||
'CategoryPageView': Before viewing a categorypage in CategoryPage::view.
|
||||
&$catpage: CategoryPage instance
|
||||
|
@ -1012,6 +1054,18 @@ $user: user initiating the action
|
|||
uses are in active use.
|
||||
&$tags: list of all active tags. Append to this array.
|
||||
|
||||
'ChangeTagsAfterUpdateTags': Called after tags have been updated with the
|
||||
ChangeTags::updateTags function. Params:
|
||||
$addedTags: tags effectively added in the update
|
||||
$removedTags: tags effectively removed in the update
|
||||
$prevTags: tags that were present prior to the update
|
||||
$rc_id: recentchanges table id
|
||||
$rev_id: revision table id
|
||||
$log_id: logging table id
|
||||
$params: tag params
|
||||
$rc: RecentChange being tagged when the tagging accompanies the action or null
|
||||
$user: User who performed the tagging when the tagging is subsequent to the action or null
|
||||
|
||||
'Collation::factory': Called if $wgCategoryCollation is an unknown collation.
|
||||
$collationName: Name of the collation in question
|
||||
&$collationObject: Null. Replace with a subclass of the Collation class that
|
||||
|
@ -1087,6 +1141,9 @@ $row: the DB row for this line
|
|||
$id: User identifier
|
||||
$title: User page title
|
||||
&$tools: Array of tool links
|
||||
$specialPage: SpecialPage instance for context and services. Can be either
|
||||
SpecialContributions or DeletedContributionsPage. Extensions should type
|
||||
hint against a generic SpecialPage though.
|
||||
|
||||
'ConvertContent': Called by AbstractContent::convert when a conversion to
|
||||
another content model is requested.
|
||||
|
@ -1125,6 +1182,85 @@ $page: SpecialPage object for DeletedContributions
|
|||
$row: the DB row for this line
|
||||
&$classes: the classes to add to the surrounding <li>
|
||||
|
||||
'DifferenceEngineMarkPatrolledLink': Allows extensions to change the "mark as patrolled" link
|
||||
which is shown both on the diff header as well as on the bottom of a page, usually
|
||||
wrapped in a span element which has class="patrollink".
|
||||
$differenceEngine: DifferenceEngine object
|
||||
&$markAsPatrolledLink: The "mark as patrolled" link HTML (string)
|
||||
$rcid: Recent change ID (rc_id) for this change (int)
|
||||
$token: Patrol token; $rcid is used in generating this variable
|
||||
|
||||
'DifferenceEngineMarkPatrolledRCID': Allows extensions to possibly change the rcid parameter.
|
||||
For example the rcid might be set to zero due to the user being the same as the
|
||||
performer of the change but an extension might still want to show it under certain
|
||||
conditions.
|
||||
&$rcid: rc_id (int) of the change or 0
|
||||
$differenceEngine: DifferenceEngine object
|
||||
$change: RecentChange object
|
||||
$user: User object representing the current user
|
||||
|
||||
'DifferenceEngineNewHeader': Allows extensions to change the $newHeader variable, which
|
||||
contains information about the new revision, such as the revision's author, whether
|
||||
the revision was marked as a minor edit or not, etc.
|
||||
$differenceEngine: DifferenceEngine object
|
||||
&$newHeader: The string containing the various #mw-diff-otitle[1-5] divs, which
|
||||
include things like revision author info, revision comment, RevisionDelete link and more
|
||||
$formattedRevisionTools: Array containing revision tools, some of which may have
|
||||
been injected with the DiffRevisionTools hook
|
||||
$nextlink: String containing the link to the next revision (if any); also included in $newHeader
|
||||
$rollback: Rollback link (string) to roll this revision back to the previous one, if any
|
||||
$newminor: String indicating if the new revision was marked as a minor edit
|
||||
$diffOnly: Boolean parameter passed to DifferenceEngine#showDiffPage, indicating
|
||||
whether we should show just the diff; passed in as a query string parameter to the
|
||||
various URLs constructed here (i.e. $nextlink)
|
||||
$rdel: RevisionDelete link for the new revision, if the current user is allowed
|
||||
to use the RevisionDelete feature
|
||||
$unhide: Boolean parameter indicating whether to show RevisionDeleted revisions
|
||||
|
||||
'DifferenceEngineOldHeader': Allows extensions to change the $oldHeader variable, which
|
||||
contains information about the old revision, such as the revision's author, whether
|
||||
the revision was marked as a minor edit or not, etc.
|
||||
$differenceEngine: DifferenceEngine object
|
||||
&$oldHeader: The string containing the various #mw-diff-otitle[1-5] divs, which
|
||||
include things like revision author info, revision comment, RevisionDelete link and more
|
||||
$prevlink: String containing the link to the previous revision (if any); also included in $oldHeader
|
||||
$oldminor: String indicating if the old revision was marked as a minor edit
|
||||
$diffOnly: Boolean parameter passed to DifferenceEngine#showDiffPage, indicating
|
||||
whether we should show just the diff; passed in as a query string parameter to the
|
||||
various URLs constructed here (i.e. $prevlink)
|
||||
$ldel: RevisionDelete link for the old revision, if the current user is allowed
|
||||
to use the RevisionDelete feature
|
||||
$unhide: Boolean parameter indicating whether to show RevisionDeleted revisions
|
||||
|
||||
'DifferenceEngineOldHeaderNoOldRev': Change the $oldHeader variable in cases when
|
||||
there is no old revision
|
||||
&$oldHeader: empty string by default
|
||||
|
||||
'DifferenceEngineRenderRevisionAddParserOutput': Allows extensions to change the parser output.
|
||||
Return false to not add parser output via OutputPage's addParserOutput method.
|
||||
$differenceEngine: DifferenceEngine object
|
||||
$out: OutputPage object
|
||||
$parserOutput: ParserOutput object
|
||||
$wikiPage: WikiPage object
|
||||
|
||||
'DifferenceEngineRenderRevisionShowFinalPatrolLink': An extension can hook into this hook
|
||||
point and return false to not show the final "mark as patrolled" link on the bottom
|
||||
of a page.
|
||||
This hook has no arguments.
|
||||
|
||||
'DifferenceEngineShowDiff': Allows extensions to affect the diff text which
|
||||
eventually gets sent to the OutputPage object.
|
||||
$differenceEngine: DifferenceEngine object
|
||||
|
||||
'DifferenceEngineShowEmptyOldContent': Allows extensions to change the diff table
|
||||
body (without header) in cases when there is no old revision or the old and new
|
||||
revisions are identical.
|
||||
$differenceEngine: DifferenceEngine object
|
||||
|
||||
'DifferenceEngineShowDiffPage': Add additional output via the available OutputPage
|
||||
object into the diff view
|
||||
$out: OutputPage object
|
||||
|
||||
'DiffRevisionTools': Override or extend the revision tools available from the
|
||||
diff view, i.e. undo, etc.
|
||||
$newRev: Revision object of the "new" revision
|
||||
|
@ -1350,6 +1486,7 @@ $changesList: EnhancedChangesList object
|
|||
&$data: An array with all the components that will be joined in order to create the line
|
||||
$block: An array of RecentChange objects in that block
|
||||
$rc: The RecentChange object for this line
|
||||
&$classes: An array of classes to change
|
||||
|
||||
'EnhancedChangesListModifyBlockLineData': to alter data used to build
|
||||
a non-grouped recent change line in EnhancedChangesList.
|
||||
|
@ -1787,7 +1924,8 @@ $title: The page's Title.
|
|||
$out: The output page.
|
||||
$cssClassName: CSS class name of the language selector.
|
||||
|
||||
'LinkBegin': Used when generating internal and interwiki links in
|
||||
'LinkBegin': DEPRECATED! Use HtmlPageLinkRendererBegin instead.
|
||||
Used when generating internal and interwiki links in
|
||||
Linker::link(), before processing starts. Return false to skip default
|
||||
processing and return $ret. See documentation for Linker::link() for details on
|
||||
the expected meanings of parameters.
|
||||
|
@ -1804,7 +1942,8 @@ $target: the Title that the link is pointing to
|
|||
&$options: array of options. Can include 'known', 'broken', 'noclasses'.
|
||||
&$ret: the value to return if your hook returns false.
|
||||
|
||||
'LinkEnd': Used when generating internal and interwiki links in Linker::link(),
|
||||
'LinkEnd': DEPRECATED! Use HtmlPageLinkRendererEnd hook instead
|
||||
Used when generating internal and interwiki links in Linker::link(),
|
||||
just before the function returns a value. If you return true, an <a> element
|
||||
with HTML attributes $attribs and contents $html will be returned. If you
|
||||
return false, $ret will be returned.
|
||||
|
@ -1839,6 +1978,36 @@ $file: the File object or false if broken link
|
|||
&$attribs: the attributes to be applied
|
||||
&$ret: the value to return if your hook returns false
|
||||
|
||||
'HtmlPageLinkRendererBegin':
|
||||
Used when generating internal and interwiki links in
|
||||
LinkRenderer, before processing starts. Return false to skip default
|
||||
processing and return $ret.
|
||||
$linkRenderer: the LinkRenderer object
|
||||
$target: the LinkTarget that the link is pointing to
|
||||
&$text: the contents that the <a> tag should have; either a plain, unescaped
|
||||
string or a HtmlArmor object; null means "default".
|
||||
&$customAttribs: the HTML attributes that the <a> tag should have, in
|
||||
associative array form, with keys and values unescaped. Should be merged
|
||||
with default values, with a value of false meaning to suppress the
|
||||
attribute.
|
||||
&$query: the query string to add to the generated URL (the bit after the "?"),
|
||||
in associative array form, with keys and values unescaped.
|
||||
&$ret: the value to return if your hook returns false.
|
||||
|
||||
'HtmlPageLinkRendererEnd':
|
||||
Used when generating internal and interwiki links in LinkRenderer,
|
||||
just before the function returns a value. If you return true, an <a> element
|
||||
with HTML attributes $attribs and contents $html will be returned. If you
|
||||
return false, $ret will be returned.
|
||||
$linkRenderer: the LinkRenderer object
|
||||
$target: the LinkTarget object that the link is pointing to
|
||||
$isKnown: boolean indicating whether the page is known or not
|
||||
&$text: the contents that the <a> tag should have; either a plain, unescaped
|
||||
string or a HtmlArmor object.
|
||||
&$attribs: the final HTML attributes of the <a> tag, after processing, in
|
||||
associative array form.
|
||||
&$ret: the value to return if your hook returns false.
|
||||
|
||||
'LinksUpdate': At the beginning of LinksUpdate::doUpdate() just before the
|
||||
actual update.
|
||||
&$linksUpdate: the LinksUpdate object
|
||||
|
@ -1852,6 +2021,7 @@ $insertions: an array of links to insert
|
|||
'LinksUpdateComplete': At the end of LinksUpdate::doUpdate() when updating,
|
||||
including delete and insert, has completed for all link tables
|
||||
&$linksUpdate: the LinksUpdate object
|
||||
$ticket: prior result of LBFactory::getEmptyTransactionTicket()
|
||||
|
||||
'LinksUpdateConstructed': At the end of LinksUpdate() is construction.
|
||||
&$linksUpdate: the LinksUpdate object
|
||||
|
@ -1938,13 +2108,6 @@ $e: The exception (in case of a plain old PHP error, a wrapping ErrorException)
|
|||
$suppressed: true if the error was suppressed via
|
||||
error_reporting()/wfSuppressWarnings()
|
||||
|
||||
'LoginAuthenticateAudit': A login attempt for a valid user account either
|
||||
succeeded or failed. No return data is accepted; this hook is for auditing only.
|
||||
$user: the User object being authenticated against
|
||||
$password: the password being submitted and found wanting
|
||||
$retval: a LoginForm class constant with authenticateUserData() return
|
||||
value (SUCCESS, WRONG_PASS, etc.).
|
||||
|
||||
'LoginFormValidErrorMessages': Called in LoginForm when a function gets valid
|
||||
error messages. Allows to add additional error messages (except messages already
|
||||
in LoginForm::$validErrorMessages).
|
||||
|
@ -2019,9 +2182,10 @@ $user: $wgUser
|
|||
$request: $wgRequest
|
||||
$mediaWiki: The $mediawiki object
|
||||
|
||||
'MediaWikiServices': Override services in the default MediaWikiServices instance.
|
||||
Extensions may use this to define, replace, or wrap existing services.
|
||||
However, the preferred way to define a new service is the $wgServiceWiringFiles array.
|
||||
'MediaWikiServices': Called when a global MediaWikiServices instance is
|
||||
initialized. Extensions may use this to define, replace, or wrap services.
|
||||
However, the preferred way to define a new service is
|
||||
the $wgServiceWiringFiles array.
|
||||
$services: MediaWikiServices
|
||||
|
||||
'MessageCache::get': When fetching a message. Can be used to override the key
|
||||
|
@ -2149,6 +2313,7 @@ $sk: The Skin that called OutputPage::headElement
|
|||
since the last visit.
|
||||
&$modifiedTimes: array of timestamps.
|
||||
The following keys are set: page, user, epoch
|
||||
$out: OutputPage object (since 1.28)
|
||||
|
||||
'OutputPageMakeCategoryLinks': Links are about to be generated for the page's
|
||||
categories. Implementations should return false if they generate the category
|
||||
|
@ -2310,24 +2475,12 @@ cache or return false to not use it.
|
|||
&$parser: Parser object
|
||||
&$varCache: variable cache (array)
|
||||
|
||||
'ParserLimitReport': DEPRECATED! Use ParserLimitReportPrepare and
|
||||
ParserLimitReportFormat instead.
|
||||
'ParserLimitReport': DEPRECATED! Use ParserLimitReportPrepare instead.
|
||||
Called at the end of Parser:parse() when the parser will
|
||||
include comments about size of the text parsed.
|
||||
$parser: Parser object
|
||||
&$limitReport: text that will be included (without comment tags)
|
||||
|
||||
'ParserLimitReportFormat': Called for each row in the parser limit report that
|
||||
needs formatting. If nothing handles this hook, the default is to use "$key" to
|
||||
get the label, and "$key-value" or "$key-value-text"/"$key-value-html" to
|
||||
format the value.
|
||||
$key: Key for the limit report item (string)
|
||||
&$value: Value of the limit report item
|
||||
&$report: String onto which to append the data
|
||||
$isHTML: If true, $report is an HTML table with two columns; if false, it's
|
||||
text intended for display in a monospaced font.
|
||||
$localize: If false, $report should be output in English.
|
||||
|
||||
'ParserLimitReportPrepare': Called at the end of Parser:parse() when the parser
|
||||
will include comments about size of the text parsed. Hooks should use
|
||||
$output->setLimitReportData() to populate data. Functions for this hook should
|
||||
|
@ -2369,6 +2522,8 @@ that tests continue to run properly.
|
|||
$page: the WikiPage of the candidate edit
|
||||
$content: the Content object of the candidate edit
|
||||
$output: the ParserOutput result of the candidate edit
|
||||
$summary: the change summary of the candidate edit
|
||||
$user: the User considering the edit
|
||||
|
||||
'PasswordPoliciesForUser': Alter the effective password policy for a user.
|
||||
$user: User object whose policy you are modifying
|
||||
|
@ -2580,6 +2735,25 @@ search results.
|
|||
$title: Current Title object being displayed in search results.
|
||||
&$id: Revision ID (default is false, for latest)
|
||||
|
||||
'SearchIndexFields': Add fields to search index mapping.
|
||||
&$fields: Array of fields, all implement SearchIndexField
|
||||
$engine: SearchEngine instance for which mapping is being built.
|
||||
|
||||
'SearchDataForIndex': Add data to search document. Allows to add any data to
|
||||
the field map used to index the document.
|
||||
&$fields: Array of name => value pairs for fields
|
||||
$handler: ContentHandler for the content being indexed
|
||||
$page: WikiPage that is being indexed
|
||||
$output: ParserOutput that is produced from the page
|
||||
$engine: SearchEngine for which the indexing is intended
|
||||
|
||||
'SearchResultsAugment': Allows extension to add its code to the list of search
|
||||
result augmentors.
|
||||
&$setAugmentors: List of whole-set augmentor objects, must implement ResultSetAugmentor
|
||||
&$rowAugmentors: List of per-row augmentor objects, must implement ResultAugmentor.
|
||||
Note that lists should be in the format name => object and the names in both lists should
|
||||
be distinct.
|
||||
|
||||
'SecondaryDataUpdates': Allows modification of the list of DataUpdates to
|
||||
perform when page content is modified. Currently called by
|
||||
AbstractContent::getSecondaryDataUpdates.
|
||||
|
@ -2830,6 +3004,12 @@ $id: User id number, only provided for backwards-compatibility
|
|||
$user: User object representing user contributions are being fetched for
|
||||
$sp: SpecialPage instance, providing context
|
||||
|
||||
'SpecialContributions::formatRow::flags': Called before rendering a
|
||||
Special:Contributions row.
|
||||
$context: IContextSource object
|
||||
$row: Revision information from the database
|
||||
&$flags: List of flags on this row
|
||||
|
||||
'SpecialContributions::getForm::filters': Called with a list of filters to render
|
||||
on Special:Contributions.
|
||||
$sp: SpecialContributions object, for context
|
||||
|
@ -2960,9 +3140,9 @@ $t: title object searched for
|
|||
canceled and a normal search will be performed. Returning true without setting
|
||||
$url does a standard redirect to $title. Setting $url redirects to the
|
||||
specified URL.
|
||||
$term - The string the user searched for
|
||||
$title - The title the 'go' feature has decided to forward the user to
|
||||
&$url - Initially null, hook subscribers can set this to specify the final url to redirect to
|
||||
$term: The string the user searched for
|
||||
$title: The title the 'go' feature has decided to forward the user to
|
||||
&$url: Initially null, hook subscribers can set this to specify the final url to redirect to
|
||||
|
||||
'SpecialSearchNogomatch': Called when user clicked the "Go" button but the
|
||||
target doesn't exist.
|
||||
|
@ -3232,8 +3412,20 @@ added to the descriptor
|
|||
&$radio: Boolean, if source type should be shown as radio button
|
||||
$selectedSourceType: The selected source type
|
||||
|
||||
'UploadVerification': Additional chances to reject an uploaded file. Consider
|
||||
using UploadVerifyFile instead.
|
||||
'UploadStashFile': Before a file is stashed (uploaded to stash).
|
||||
Note that code which has not been updated for MediaWiki 1.28 may not call this
|
||||
hook. If your extension absolutely, positively must prevent some files from
|
||||
being uploaded, use UploadVerifyFile or UploadVerifyUpload.
|
||||
$upload: (object) An instance of UploadBase, with all info about the upload
|
||||
$user: (object) An instance of User, the user uploading this file
|
||||
$props: (array) File properties, as returned by FSFile::getPropsFromPath()
|
||||
&$error: output: If the file stashing should be prevented, set this to the reason
|
||||
in the form of array( messagename, param1, param2, ... ) or a MessageSpecifier
|
||||
instance (you might want to use ApiMessage to provide machine-readable details
|
||||
for the API).
|
||||
|
||||
'UploadVerification': DEPRECATED! Use UploadVerifyFile instead.
|
||||
Additional chances to reject an uploaded file.
|
||||
$saveName: (string) destination file name
|
||||
$tempName: (string) filesystem path to the temporary file for checks
|
||||
&$error: (string) output: message key for message to show if upload canceled by
|
||||
|
@ -3245,9 +3437,27 @@ in most cases over UploadVerification.
|
|||
$upload: (object) an instance of UploadBase, with all info about the upload
|
||||
$mime: (string) The uploaded file's MIME type, as detected by MediaWiki.
|
||||
Handlers will typically only apply for specific MIME types.
|
||||
&$error: (object) output: true if the file is valid. Otherwise, an indexed array
|
||||
representing the problem with the file, where the first element is the message
|
||||
key and the remaining elements are used as parameters to the message.
|
||||
&$error: (object) output: true if the file is valid. Otherwise, set this to the reason
|
||||
in the form of array( messagename, param1, param2, ... ) or a MessageSpecifier
|
||||
instance (you might want to use ApiMessage to provide machine-readable details
|
||||
for the API).
|
||||
|
||||
'UploadVerifyUpload': Upload verification, based on both file properties like
|
||||
MIME type (same as UploadVerifyFile) and the information entered by the user
|
||||
(upload comment, file page contents etc.).
|
||||
$upload: (object) An instance of UploadBase, with all info about the upload
|
||||
$user: (object) An instance of User, the user uploading this file
|
||||
$props: (array) File properties, as returned by FSFile::getPropsFromPath()
|
||||
$comment: (string) Upload log comment (also used as edit summary)
|
||||
$pageText: (string) File description page text (only used for new uploads)
|
||||
&$error: output: If the file upload should be prevented, set this to the reason
|
||||
in the form of array( messagename, param1, param2, ... ) or a MessageSpecifier
|
||||
instance (you might want to use ApiMessage to provide machine-readable details
|
||||
for the API).
|
||||
|
||||
'UserIsBot': when determining whether a user is a bot account
|
||||
$user: the user
|
||||
&$isBot: whether this is user a bot or not (boolean)
|
||||
|
||||
'User::mailPasswordInternal': before creation and mailing of a user's new
|
||||
temporary password
|
||||
|
@ -3391,6 +3601,9 @@ $user: User object for the logged-in user
|
|||
For functionality that needs to run after any login (API or web) use UserLoggedIn.
|
||||
&$user: the user object that was created on login
|
||||
&$inject_html: Any HTML to inject after the "logged in" message.
|
||||
$direct: (bool) The hook is called directly after a successful login. This will only happen once
|
||||
per login. A UserLoginComplete call with direct=false can happen when the user visits the login
|
||||
page while already logged in.
|
||||
|
||||
'UserLoginForm': DEPRECATED! Create an AuthenticationProvider instead.
|
||||
Manipulate the login form.
|
||||
|
@ -3492,6 +3705,16 @@ $userId: User id of the current user
|
|||
$userText: User name of the current user
|
||||
&$items: Array of user tool links as HTML fragments
|
||||
|
||||
'UsersPagerDoBatchLookups': Called in UsersPager::doBatchLookups() to give
|
||||
extensions providing user group data from an alternate source a chance to add
|
||||
their data into the cache array so that things like global user groups are
|
||||
displayed correctly in Special:ListUsers.
|
||||
$dbr: Read-only database handle
|
||||
$userIds: Array of user IDs whose groups we should look up
|
||||
&$cache: Array of user ID -> internal user group name (e.g. 'sysop') mappings
|
||||
&$groups: Array of group name -> bool true mappings for members of a given user
|
||||
group
|
||||
|
||||
'ValidateExtendedMetadataCache': Called to validate the cached metadata in
|
||||
FormatMetadata::getExtendedMeta (return false means cache will be
|
||||
invalidated and GetExtendedMetadata hook called again).
|
||||
|
@ -3564,9 +3787,14 @@ a page is deleted. Called in WikiPage::getDeletionUpdates(). Note that updates
|
|||
specific to a content model should be provided by the respective Content's
|
||||
getDeletionUpdates() method.
|
||||
$page: the WikiPage
|
||||
$content: the Content to generate updates for
|
||||
$content: the Content to generate updates for (or null, if the Content could not be loaded
|
||||
due to an error)
|
||||
&$updates: the array of DataUpdate objects. Hook function may want to add to it.
|
||||
|
||||
'WikiPageFactory': Override WikiPage class used for a title
|
||||
$title: Title of the page
|
||||
&$page: Variable to set the created WikiPage to.
|
||||
|
||||
'XmlDumpWriterOpenPage': Called at the end of XmlDumpWriter::openPage, to allow
|
||||
extra metadata to be added.
|
||||
$obj: The XmlDumpWriter object.
|
||||
|
|
|
@ -60,6 +60,27 @@ MediaWikiServices::getInstance() should ideally be accessed only in "static
|
|||
entry points" such as hook handler functions. See "Migration" below.
|
||||
|
||||
|
||||
== Service Reset ==
|
||||
|
||||
Services get their configuration injected, and changes to global
|
||||
configuration variables will not have any effect on services that were already
|
||||
instantiated. This would typically be the case for low level services like
|
||||
the ConfigFactory or the ObjectCacheManager, which are used during extension
|
||||
registration. To address this issue, Setup.php resets the global service
|
||||
locator instance by calling MediaWikiServices::resetGlobalInstance() once
|
||||
configuration and extension registration is complete.
|
||||
|
||||
Note that "unmanaged" legacy services services that manage their own singleton
|
||||
must not keep references to services managed by MediaWikiServices, to allow a
|
||||
clean reset. After the global MediaWikiServices instance got reset, any such
|
||||
references would be stale, and using a stale service will result in an error.
|
||||
|
||||
Services should either have all dependencies injected and be themselves managed
|
||||
by MediaWikiServices, or they should use the Service Locator pattern, accessing
|
||||
service instances via the global MediaWikiServices instance state when needed.
|
||||
This ensures that no stale service references remain after a reset.
|
||||
|
||||
|
||||
== Configuration ==
|
||||
|
||||
When the default MediaWikiServices instance is created, a Config object is
|
||||
|
|
|
@ -5,7 +5,7 @@ kss: kssnodecheck
|
|||
# KSS style guide
|
||||
$(eval KSS_RL_TMP := $(shell mktemp /tmp/tmp.XXXXXXXXXX))
|
||||
$(eval MODULE_STR := $(shell paste -sd "|" styleGuideModules.txt))
|
||||
# See OutputPage::makeResourceLoaderLink.
|
||||
# See ResourceLoaderClientHtml::makeLoad.
|
||||
@curl -sG "${MEDIAWIKI_LOAD_URL}?modules=${MODULE_STR}&only=styles" > $(KSS_RL_TMP)
|
||||
@node_modules/.bin/kss-node ../../resources/src/mediawiki.ui static/ --css $(KSS_RL_TMP) -t styleguide-template
|
||||
@rm $(KSS_RL_TMP)
|
||||
|
|
|
@ -1,92 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="../../resources/src/mediawiki.action/mediawiki.action.history.diff.css">
|
||||
<link rel="stylesheet" media="print" href="../../resources/src/mediawiki.action/mediawiki.action.history.diff.print.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>This show various styles for our diff action. Style sheet: <code><a href="../../resources/src/mediawiki.action/mediawiki.action.history.diff.css">resources/src/mediawiki.action/mediawiki.action.history.diff.css</a></code>.</p>
|
||||
<p>This file might help us fix our diff colors which have been a recurring issues among the community for a loooong time.</p>
|
||||
<p>Try it out in print mode, too. Style sheet: <code><a href="../../resources/src/mediawiki.action/mediawiki.action.history.diff.print.css">resources/src/mediawiki.action/mediawiki.action.history.diff.print.css</a></code>.</p>
|
||||
|
||||
<p>Practical example copied from MediaWiki's HTML output:</p>
|
||||
|
||||
<table class="diff diff-contentalign-left">
|
||||
<colgroup><col class="diff-marker">
|
||||
<col class="diff-content">
|
||||
<col class="diff-marker">
|
||||
<col class="diff-content">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"><div>Lorem ipsum dolor sit amet<del class="diffchange diffchange-inline">, consectetur adipisicing elit</del>, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div></td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"><div>Lorem ipsum dolor sit amet, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"></td>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"><div>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div></td>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"><div>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</div></td>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"><div>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"><div>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim<del class="diffchange diffchange-inline"> id est laborum</del>.</div></td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"><div>Excepteur sint occaecat cupidatat non proident, sunt<ins class="diffchange diffchange-inline"> reprehenderit in voluptate</ins> in culpa qui officia deserunt mollit anim.</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"><div>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<p>Below are some basic lines being applied one or two classes. Mainly for debugging purposes.</p>
|
||||
|
||||
<table class="diff">
|
||||
<tr><th>Diff</th></tr>
|
||||
|
||||
<tr><td class="diff-addedline"><code>diff-addedline</code>: added line</td></tr>
|
||||
<tr><td class="diff-deletedline"><code>diff-deletedline</code>: deleted line</td></tr>
|
||||
<tr><td class="diff-context"><code>diff-context</code>: context</td></tr>
|
||||
|
||||
<tr><th>Same as above with a <code><ins></code> or <code><del></code> child element having the <code>diffchange</code> class:</th></tr>
|
||||
|
||||
<tr><td class="diffchange">Diffchange</td></tr>
|
||||
<tr><td class="diff-addedline"><ins class="diffchange">Added line + diffchange</ins></td></tr>
|
||||
<tr><td class="diff-deletedline"><del class="diffchange">Deleted line + diffchange</del></td></tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,92 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="../../resources/src/mediawiki/mediawiki.diff.styles.css">
|
||||
<link rel="stylesheet" media="print" href="../../resources/src/mediawiki/mediawiki.diff.styles.print.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>This show various styles for our diff action. Style sheet: <code><a href="../../resources/src/mediawiki/mediawiki.diff.styles.css">resources/src/mediawiki/mediawiki.diff.styles.css</a></code>.</p>
|
||||
<p>This file might help us fix our diff colors which have been a recurring issues among the community for a loooong time.</p>
|
||||
<p>Try it out in print mode, too. Style sheet: <code><a href="../../resources/src/mediawiki/mediawiki.diff.styles.print.css">resources/src/mediawiki/mediawiki.diff.styles.print.css</a></code>.</p>
|
||||
|
||||
<p>Practical example copied from MediaWiki's HTML output:</p>
|
||||
|
||||
<table class="diff diff-contentalign-left">
|
||||
<colgroup><col class="diff-marker">
|
||||
<col class="diff-content">
|
||||
<col class="diff-marker">
|
||||
<col class="diff-content">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"><div>Lorem ipsum dolor sit amet<del class="diffchange diffchange-inline">, consectetur adipisicing elit</del>, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div></td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"><div>Lorem ipsum dolor sit amet, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"></td>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"><div>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div></td>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"><div>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</div></td>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"><div>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
<td class="diff-marker"> </td>
|
||||
<td class="diff-context"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="diff-marker">−</td>
|
||||
<td class="diff-deletedline"><div>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim<del class="diffchange diffchange-inline"> id est laborum</del>.</div></td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"><div>Excepteur sint occaecat cupidatat non proident, sunt<ins class="diffchange diffchange-inline"> reprehenderit in voluptate</ins> in culpa qui officia deserunt mollit anim.</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="diff-empty"> </td>
|
||||
<td class="diff-marker">+</td>
|
||||
<td class="diff-addedline"><div>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<p>Below are some basic lines being applied one or two classes. Mainly for debugging purposes.</p>
|
||||
|
||||
<table class="diff">
|
||||
<tr><th>Diff</th></tr>
|
||||
|
||||
<tr><td class="diff-addedline"><code>diff-addedline</code>: added line</td></tr>
|
||||
<tr><td class="diff-deletedline"><code>diff-deletedline</code>: deleted line</td></tr>
|
||||
<tr><td class="diff-context"><code>diff-context</code>: context</td></tr>
|
||||
|
||||
<tr><th>Same as above with a <code><ins></code> or <code><del></code> child element having the <code>diffchange</code> class:</th></tr>
|
||||
|
||||
<tr><td class="diffchange">Diffchange</td></tr>
|
||||
<tr><td class="diff-addedline"><ins class="diffchange">Added line + diffchange</ins></td></tr>
|
||||
<tr><td class="diff-deletedline"><del class="diffchange">Deleted line + diffchange</del></td></tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia"
|
||||
}
|
|
@ -1,108 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Expose reference information for a page via prop=references API.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* @file
|
||||
* @see https://www.mediawiki.org/wiki/Extension:Cite#API
|
||||
*/
|
||||
|
||||
class ApiQueryReferences extends ApiQueryBase {
|
||||
|
||||
public function __construct( $query, $moduleName ) {
|
||||
parent::__construct( $query, $moduleName, 'rf' );
|
||||
}
|
||||
|
||||
public function getAllowedParams() {
|
||||
return [
|
||||
'continue' => [
|
||||
ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function execute() {
|
||||
$config = ConfigFactory::getDefaultInstance()->makeConfig( 'cite' );
|
||||
if ( !$config->get( 'CiteStoreReferencesData' ) ) {
|
||||
$this->dieUsage( 'Cite extension reference storage is not enabled', 'citestoragedisabled' );
|
||||
}
|
||||
$params = $this->extractRequestParams();
|
||||
$titles = $this->getPageSet()->getGoodTitles();
|
||||
ksort( $titles );
|
||||
if ( !is_null( $params['continue'] ) ) {
|
||||
$startId = (int)$params['continue'];
|
||||
// check it is definitely an int
|
||||
$this->dieContinueUsageIf( strval( $startId ) !== $params['continue'] );
|
||||
} else {
|
||||
$startId = false;
|
||||
}
|
||||
|
||||
foreach ( $titles as $pageId => $title ) {
|
||||
// Skip until you have the correct starting point
|
||||
if ( $startId !== false && $startId !== $pageId ) {
|
||||
continue;
|
||||
} else {
|
||||
$startId = false;
|
||||
}
|
||||
$storedRefs = Cite::getStoredReferences( $title );
|
||||
$allReferences = array();
|
||||
// some pages may not have references stored
|
||||
if ( $storedRefs !== false ) {
|
||||
// a page can have multiple <references> tags but they all have unique keys
|
||||
foreach ( $storedRefs['refs'] as $index => $grouping ) {
|
||||
foreach ( $grouping as $group => $members ) {
|
||||
foreach ( $members as $name => $ref ) {
|
||||
$ref['name'] = $name;
|
||||
$key = $ref['key'];
|
||||
if ( is_string( $name ) ) {
|
||||
$id = Cite::getReferencesKey( $name . '-' . $key );
|
||||
} else {
|
||||
$id = Cite::getReferencesKey( $key );
|
||||
}
|
||||
$ref['group'] = $group;
|
||||
$ref['reflist'] = $index;
|
||||
$allReferences[$id] = $ref;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// set some metadata since its an assoc data structure
|
||||
ApiResult::setArrayType( $allReferences, 'kvp', 'id' );
|
||||
// Ship a data representation of the combined references.
|
||||
$fit = $this->addPageSubItems( $pageId, $allReferences );
|
||||
if ( !$fit ) {
|
||||
$this->setContinueEnumParameter( 'continue', $pageId );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getCacheMode( $params ) {
|
||||
return 'public';
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ApiBase::getExamplesMessages()
|
||||
*/
|
||||
protected function getExamplesMessages() {
|
||||
return array(
|
||||
'action=query&prop=references&titles=Albert%20Einstein' =>
|
||||
'apihelp-query+references-example-1',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* ResourceLoaderFileModule for adding the content language Cite CSS
|
||||
*
|
||||
* @file
|
||||
* @ingroup Extensions
|
||||
* @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
|
||||
*/
|
||||
|
||||
class CiteCSSFileModule extends ResourceLoaderFileModule {
|
||||
public function __construct(
|
||||
$options = array(),
|
||||
$localBasePath = null,
|
||||
$remoteBasePath = null
|
||||
) {
|
||||
global $wgContLang;
|
||||
|
||||
parent::__construct( $options, $localBasePath, $remoteBasePath );
|
||||
|
||||
// Get the content language code, and all the fallbacks. The first that
|
||||
// has a ext.cite.style.<lang code>.css file present will be used.
|
||||
$langCodes = array_merge( array( $wgContLang->getCode() ),
|
||||
$wgContLang->getFallbackLanguages() );
|
||||
foreach ( $langCodes as $lang ) {
|
||||
$langStyleFile = 'ext.cite.style.' . $lang . '.css';
|
||||
$localPath = $this->getLocalPath( $langStyleFile );
|
||||
if ( file_exists( $localPath ) ) {
|
||||
$this->styles[] = $langStyleFile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Resource loader module providing extra data from the server to Cite.
|
||||
*
|
||||
* Temporary hack for T93800
|
||||
*
|
||||
* @file
|
||||
* @ingroup Extensions
|
||||
* @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
|
||||
* @license The MIT License (MIT); see MIT-LICENSE.txt
|
||||
*/
|
||||
|
||||
class CiteDataModule extends ResourceLoaderModule {
|
||||
|
||||
/* Protected Members */
|
||||
|
||||
protected $origin = self::ORIGIN_USER_SITEWIDE;
|
||||
protected $targets = array( 'desktop', 'mobile' );
|
||||
|
||||
/* Methods */
|
||||
|
||||
public function getScript( ResourceLoaderContext $context ) {
|
||||
$citationDefinition = json_decode(
|
||||
$context->msg( 'visualeditor-cite-tool-definition.json' )
|
||||
->inContentLanguage()
|
||||
->plain()
|
||||
);
|
||||
|
||||
$citationTools = array();
|
||||
if ( is_array( $citationDefinition ) ) {
|
||||
foreach ( $citationDefinition as $tool ) {
|
||||
if ( !isset( $tool->title ) ) {
|
||||
$tool->title = $context->msg( 'visualeditor-cite-tool-name-' . $tool->name )
|
||||
->text();
|
||||
}
|
||||
$citationTools[] = $tool;
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
've.init.platform.addMessages(' . FormatJson::encode(
|
||||
array(
|
||||
'visualeditor-cite-tool-definition.json' => json_encode( $citationTools )
|
||||
),
|
||||
ResourceLoader::inDebugMode()
|
||||
) . ');';
|
||||
}
|
||||
|
||||
public function getDependencies( ResourceLoaderContext $context = null ) {
|
||||
return array(
|
||||
'ext.visualEditor.base',
|
||||
'ext.visualEditor.mediawiki',
|
||||
);
|
||||
}
|
||||
|
||||
public function getDefinitionSummary( ResourceLoaderContext $context ) {
|
||||
$summary = parent::getDefinitionSummary( $context );
|
||||
$summary[] = array(
|
||||
'script' => $this->getScript( $context ),
|
||||
);
|
||||
return $summary;
|
||||
}
|
||||
}
|
|
@ -1,135 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Cite extension hooks
|
||||
*
|
||||
* @file
|
||||
* @ingroup Extensions
|
||||
* @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
|
||||
* @license The MIT License (MIT); see MIT-LICENSE.txt
|
||||
*/
|
||||
|
||||
class CiteHooks {
|
||||
/**
|
||||
* Convert the content model of a message that is actually JSON to JSON. This
|
||||
* only affects validation and UI when saving and editing, not loading the
|
||||
* content.
|
||||
*
|
||||
* @param Title $title
|
||||
* @param string $model
|
||||
* @return bool
|
||||
*/
|
||||
public static function onContentHandlerDefaultModelFor( Title $title, &$model ) {
|
||||
if (
|
||||
$title->inNamespace( NS_MEDIAWIKI ) &&
|
||||
$title->getText() == 'Visualeditor-cite-tool-definition.json'
|
||||
) {
|
||||
$model = CONTENT_MODEL_JSON;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Conditionally register the unit testing module for the ext.cite.visualEditor module
|
||||
* only if that module is loaded
|
||||
*
|
||||
* @param array $testModules The array of registered test modules
|
||||
* @param ResourceLoader $resourceLoader The reference to the resource loader
|
||||
* @return true
|
||||
*/
|
||||
public static function onResourceLoaderTestModules(
|
||||
array &$testModules,
|
||||
ResourceLoader &$resourceLoader
|
||||
) {
|
||||
$resourceModules = $resourceLoader->getConfig()->get( 'ResourceModules' );
|
||||
|
||||
if (
|
||||
isset( $resourceModules[ 'ext.visualEditor.mediawiki' ] ) ||
|
||||
$resourceLoader->isModuleRegistered( 'ext.visualEditor.mediawiki' )
|
||||
) {
|
||||
$testModules['qunit']['ext.cite.visualEditor.test'] = array(
|
||||
'scripts' => array(
|
||||
'modules/ve-cite/tests/ve.dm.citeExample.js',
|
||||
'modules/ve-cite/tests/ve.dm.Converter.test.js',
|
||||
'modules/ve-cite/tests/ve.dm.InternalList.test.js',
|
||||
'modules/ve-cite/tests/ve.dm.Transaction.test.js',
|
||||
),
|
||||
'dependencies' => array(
|
||||
'ext.cite.visualEditor',
|
||||
'ext.visualEditor.test'
|
||||
),
|
||||
'localBasePath' => __DIR__,
|
||||
'remoteExtPath' => 'Cite',
|
||||
);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for LinksUpdate hook
|
||||
* Post-output processing of references property, for proper db storage
|
||||
* Deferred to avoid performance overhead when outputting the page
|
||||
*
|
||||
* @param LinksUpdate $linksUpdate
|
||||
*/
|
||||
public static function onLinksUpdate( LinksUpdate &$linksUpdate ) {
|
||||
global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
|
||||
if ( !$wgCiteStoreReferencesData ) {
|
||||
return;
|
||||
}
|
||||
$refData = $linksUpdate->getParserOutput()->getExtensionData( Cite::EXT_DATA_KEY );
|
||||
if ( $refData === null ) {
|
||||
return;
|
||||
}
|
||||
if ( $wgCiteCacheRawReferencesOnParse ) {
|
||||
// caching
|
||||
$cache = ObjectCache::getMainWANInstance();
|
||||
$articleID = $linksUpdate->getTitle()->getArticleID();
|
||||
$key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
|
||||
$cache->set( $key, $refData, Cite::CACHE_DURATION_ONPARSE );
|
||||
}
|
||||
// JSON encode
|
||||
$ppValue = FormatJson::encode( $refData, false, FormatJson::ALL_OK );
|
||||
// GZIP encode references data at maximum compression
|
||||
$ppValue = gzencode( $ppValue, 9 );
|
||||
// split the string in smaller parts that can fit into a db blob
|
||||
$ppValues = str_split( $ppValue, Cite::MAX_STORAGE_LENGTH );
|
||||
foreach ( $ppValues as $num => $ppValue ) {
|
||||
$key = 'references-' . intval( $num + 1 );
|
||||
$linksUpdate->mProperties[$key] = $ppValue;
|
||||
}
|
||||
$linksUpdate->getParserOutput()->setExtensionData( Cite::EXT_DATA_KEY, null );
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for LinksUpdateComplete hook
|
||||
* If $wgCiteCacheRawReferencesOnParse is set to false, purges the cache
|
||||
* when references are modified
|
||||
*
|
||||
* @param LinksUpdate $linksUpdate
|
||||
*/
|
||||
public static function onLinksUpdateComplete( LinksUpdate &$linksUpdate ) {
|
||||
global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
|
||||
if ( !$wgCiteStoreReferencesData || $wgCiteCacheRawReferencesOnParse ) {
|
||||
return;
|
||||
}
|
||||
// if we can, avoid clearing the cache when references were not changed
|
||||
if ( method_exists( $linksUpdate, 'getAddedProperties' )
|
||||
&& method_exists( $linksUpdate, 'getRemovedProperties' )
|
||||
) {
|
||||
$addedProps = $linksUpdate->getAddedProperties();
|
||||
$removedProps = $linksUpdate->getRemovedProperties();
|
||||
if ( !isset( $addedProps['references-1'] )
|
||||
&& !isset( $removedProps['references-1'] )
|
||||
) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
$cache = ObjectCache::getMainWANInstance();
|
||||
$articleID = $linksUpdate->getTitle()->getArticleID();
|
||||
$key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
|
||||
// delete with reduced hold off period (LinksUpdate uses a master connection)
|
||||
$cache->delete( $key, WANObjectCache::MAX_COMMIT_DELAY );
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -11,6 +11,7 @@ module.exports = function ( grunt ) {
|
|||
grunt.loadNpmTasks( 'grunt-jscs' );
|
||||
grunt.loadNpmTasks( 'grunt-jsonlint' );
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
grunt.initConfig( {
|
||||
jshint: {
|
||||
options: {
|
||||
|
@ -38,6 +39,23 @@ module.exports = function ( grunt ) {
|
|||
src: '<%= jshint.all %>'
|
||||
}
|
||||
},
|
||||
stylelint: {
|
||||
core: {
|
||||
src: [
|
||||
'**/*.css',
|
||||
'!modules/ve-cite/**',
|
||||
'!node_modules/**'
|
||||
]
|
||||
},
|
||||
've-cite': {
|
||||
options: {
|
||||
configFile: 'modules/ve-cite/.stylelintrc'
|
||||
},
|
||||
src: [
|
||||
'modules/ve-cite/**/*.css'
|
||||
]
|
||||
}
|
||||
},
|
||||
jsonlint: {
|
||||
all: [
|
||||
'**/*.json',
|
||||
|
@ -46,6 +64,6 @@ module.exports = function ( grunt ) {
|
|||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'jshint', 'jscs:main', 'jsonlint', 'banana' ] );
|
||||
grunt.registerTask( 'test', [ 'jshint', 'jscs:main', 'stylelint', 'jsonlint', 'banana' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
<?php
|
||||
|
||||
trigger_error(
|
||||
'Special:Cite was moved to a separate CiteThisPage extension, ' .
|
||||
'see <https://www.mediawiki.org/wiki/Extension:CiteThisPage> for information on how to install it',
|
||||
E_USER_WARNING
|
||||
);
|
|
@ -1,12 +1,15 @@
|
|||
{
|
||||
"require-dev": {
|
||||
"jakub-onderka/php-parallel-lint": "0.9.2",
|
||||
"mediawiki/mediawiki-codesniffer": "0.5.1"
|
||||
"mediawiki/mediawiki-codesniffer": "0.7.2"
|
||||
},
|
||||
"scripts": {
|
||||
"test": [
|
||||
"parallel-lint . --exclude node_modules --exclude vendor",
|
||||
"phpcs -p -s"
|
||||
],
|
||||
"fix": [
|
||||
"phpcbf"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,11 +33,17 @@
|
|||
"ResourceLoaderTestModules": [
|
||||
"CiteHooks::onResourceLoaderTestModules"
|
||||
],
|
||||
"ResourceLoaderRegisterModules": [
|
||||
"CiteHooks::onResourceLoaderRegisterModules"
|
||||
],
|
||||
"LinksUpdate": [
|
||||
"CiteHooks::onLinksUpdate"
|
||||
],
|
||||
"LinksUpdateComplete": [
|
||||
"CiteHooks::onLinksUpdateComplete"
|
||||
],
|
||||
"ResourceLoaderGetConfigVars": [
|
||||
"CiteHooks::onResourceLoaderGetConfigVars"
|
||||
]
|
||||
},
|
||||
"ResourceModules": {
|
||||
|
@ -67,93 +73,6 @@
|
|||
"desktop",
|
||||
"mobile"
|
||||
]
|
||||
},
|
||||
"ext.cite.visualEditor.core": {
|
||||
"scripts": [
|
||||
"ve-cite/ve.dm.MWReferenceModel.js",
|
||||
"ve-cite/ve.dm.MWReferencesListNode.js",
|
||||
"ve-cite/ve.dm.MWReferenceNode.js",
|
||||
"ve-cite/ve.ce.MWReferencesListNode.js",
|
||||
"ve-cite/ve.ce.MWReferenceNode.js",
|
||||
"ve-cite/ve.ui.MWReferencesListCommand.js"
|
||||
],
|
||||
"styles": [
|
||||
"ve-cite/ve.ce.MWReferencesListNode.css",
|
||||
"ve-cite/ve.ce.MWReferenceNode.css"
|
||||
],
|
||||
"dependencies": [
|
||||
"ext.visualEditor.mwcore"
|
||||
],
|
||||
"messages": [
|
||||
"cite-ve-referenceslist-isempty",
|
||||
"cite-ve-referenceslist-isempty-default",
|
||||
"cite-ve-referenceslist-missingref"
|
||||
],
|
||||
"targets": [
|
||||
"desktop",
|
||||
"mobile"
|
||||
]
|
||||
},
|
||||
"ext.cite.visualEditor.data": {
|
||||
"class": "CiteDataModule"
|
||||
},
|
||||
"ext.cite.visualEditor": {
|
||||
"scripts": [
|
||||
"ve-cite/ve.ui.MWReferenceGroupInputWidget.js",
|
||||
"ve-cite/ve.ui.MWReferenceSearchWidget.js",
|
||||
"ve-cite/ve.ui.MWReferenceResultWidget.js",
|
||||
"ve-cite/ve.ui.MWUseExistingReferenceCommand.js",
|
||||
"ve-cite/ve.ui.MWCitationDialog.js",
|
||||
"ve-cite/ve.ui.MWReferencesListDialog.js",
|
||||
"ve-cite/ve.ui.MWReferenceDialog.js",
|
||||
"ve-cite/ve.ui.MWReferenceDialogTool.js",
|
||||
"ve-cite/ve.ui.MWCitationDialogTool.js",
|
||||
"ve-cite/ve.ui.MWReferenceContextItem.js",
|
||||
"ve-cite/ve.ui.MWReferencesListContextItem.js",
|
||||
"ve-cite/ve.ui.MWCitationContextItem.js",
|
||||
"ve-cite/ve.ui.MWCitationAction.js",
|
||||
"ve-cite/ve.ui.MWReference.init.js"
|
||||
],
|
||||
"styles": [
|
||||
"ve-cite/ve.ui.MWReferenceContextItem.css",
|
||||
"ve-cite/ve.ui.MWReferenceGroupInputWidget.css",
|
||||
"ve-cite/ve.ui.MWReferenceIcons.css",
|
||||
"ve-cite/ve.ui.MWReferenceResultWidget.css",
|
||||
"ve-cite/ve.ui.MWReferenceSearchWidget.css"
|
||||
],
|
||||
"dependencies": [
|
||||
"ext.cite.visualEditor.core",
|
||||
"ext.cite.visualEditor.data",
|
||||
"ext.cite.style",
|
||||
"ext.visualEditor.mwtransclusion",
|
||||
"ext.visualEditor.mediawiki"
|
||||
],
|
||||
"messages": [
|
||||
"cite-ve-dialog-reference-editing-reused",
|
||||
"cite-ve-dialog-reference-options-group-label",
|
||||
"cite-ve-dialog-reference-options-group-placeholder",
|
||||
"cite-ve-dialog-reference-options-name-label",
|
||||
"cite-ve-dialog-reference-options-section",
|
||||
"cite-ve-dialog-reference-title",
|
||||
"cite-ve-dialog-reference-useexisting-full-label",
|
||||
"cite-ve-dialog-reference-useexisting-label",
|
||||
"cite-ve-dialog-reference-useexisting-tool",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-general",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named",
|
||||
"cite-ve-dialog-referenceslist-title",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text",
|
||||
"cite-ve-dialogbutton-reference-full-label",
|
||||
"cite-ve-dialogbutton-reference-tooltip",
|
||||
"cite-ve-dialogbutton-reference-title",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip",
|
||||
"cite-ve-reference-input-placeholder",
|
||||
"cite-ve-toolbar-group-label"
|
||||
],
|
||||
"targets": [
|
||||
"desktop",
|
||||
"mobile"
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResourceFileModulePaths": {
|
||||
|
@ -170,17 +89,18 @@
|
|||
"AllowCiteGroups": true,
|
||||
"CiteCacheReferences": false,
|
||||
"CiteStoreReferencesData": false,
|
||||
"CiteCacheReferencesDataOnParse": false
|
||||
"CiteCacheReferencesDataOnParse": false,
|
||||
"CiteVisualEditorOtherGroup": false
|
||||
},
|
||||
"AutoloadClasses": {
|
||||
"ApiQueryReferences": "ApiQueryReferences.php",
|
||||
"Cite": "Cite_body.php",
|
||||
"CiteHooks": "CiteHooks.php",
|
||||
"CiteDataModule": "CiteDataModule.php",
|
||||
"CiteCSSFileModule": "CiteCSSFileModule.php"
|
||||
"ApiQueryReferences": "includes/ApiQueryReferences.php",
|
||||
"Cite": "includes/Cite.php",
|
||||
"CiteHooks": "includes/CiteHooks.php",
|
||||
"CiteDataModule": "includes/CiteDataModule.php",
|
||||
"CiteCSSFileModule": "includes/CiteCSSFileModule.php"
|
||||
},
|
||||
"ParserTestFiles": [
|
||||
"citeParserTests.txt"
|
||||
"tests/parser/citeParserTests.txt"
|
||||
],
|
||||
"TrackingCategories": [
|
||||
"cite-tracking-category-cite-error"
|
||||
|
|
|
@ -9,10 +9,12 @@
|
|||
"محمد أحمد عبد الفتاح"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "يرجع تمثيل لبيانات المراجع المرتبطة مع الصفحات المعطاة.",
|
||||
"apihelp-query+references-example-1": "المراجع المرتبطة ب<kbd>Albert Einstein</kbd>.",
|
||||
"cite-desc": "يضيف وسوم <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> ، للاستشهادات",
|
||||
"cite_error": "خطأ استشهاد: $1",
|
||||
"cite_error_ref_numeric_key": "وسم <code><ref></code> غير صحيح؛\nالاسم لا يمكن أن يكون عددا صحيحا بسيطا. استخدم عنوانا وصفيا",
|
||||
"cite_error_ref_no_key": "وسم <code><ref></code> غير صحيح؛\nالمراجع غير ذات المحتوى يجب أن تمتلك اسما",
|
||||
"cite_error_ref_no_key": "وسم الفتح <code><ref></code> غير صحيح أو له اسم سييء.",
|
||||
"cite_error_ref_too_many_keys": "وسم <code><ref></code> غير صحيح؛\nأسماء غير صحيحة، على سبيل المثال كثيرة جدا",
|
||||
"cite_error_ref_no_input": "وسم <code><ref></code> غير صحيح؛\nالمراجع غير ذات الاسم يجب أن تمتلك محتوى",
|
||||
"cite_error_references_duplicate_key": "وسم <code><ref></code> غير صالح؛ الاسم \"$1\" معرف أكثر من مرة بمحتويات مختلفة.",
|
||||
|
|
|
@ -13,5 +13,6 @@
|
|||
"cite_references_link_prefix": "sitat_qeyd-",
|
||||
"cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
|
||||
"cite_references_link_many_sep": " ",
|
||||
"cite_references_link_many_and": " "
|
||||
"cite_references_link_many_and": " ",
|
||||
"cite_section_preview_references": "İstinadların sınaq göstərişi"
|
||||
}
|
||||
|
|
|
@ -4,20 +4,25 @@
|
|||
"Aspar",
|
||||
"Erdemaslancan",
|
||||
"Gorizon",
|
||||
"Xoser"
|
||||
"Xoser",
|
||||
"Kumkumuk",
|
||||
"1917 Ekim Devrimi"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "Eleqe referansa deyaye peran de temsilandataya çerx keno",
|
||||
"apihelp-query+references-example-1": "<kbd>Albert Einstein</kbd>'i ya eleqeyın referanso",
|
||||
"cite-desc": "Qe çime mucnayîşî, etiketanê <nowiki><ref[ name=id]></nowiki> u <nowiki><references/></nowiki> de keno",
|
||||
"cite_error": "Ğeletê çime mucnayîşî: $1",
|
||||
"cite_error": "Xetaya çımeyi: $1",
|
||||
"cite_error_ref_numeric_key": "Etiket <code><ref></code> ke raşt niyo;\nName nieşkeno biyo yew rekam. Çekuyan binuse",
|
||||
"cite_error_ref_no_key": "Etiket <code><ref></code> ke raşt niyo;\nEka kontent çini yo, gani yew name biyo",
|
||||
"cite_error_ref_too_many_keys": "Etiket <code><ref></code> ke raşt niyo;\nname raşt niyo, e.g. zaf esto",
|
||||
"cite_error_ref_no_input": "Etiket <code><ref></code> ke raşt niyo;\nEka name çini yo, gani kontent biyo",
|
||||
"cite_error_references_duplicate_key": "Nêravêrde <code><ref></code> etiket: \"$1\" name yew ra zeder zerrek de şınasiya yo.",
|
||||
"cite_error_references_invalid_parameters": "Etiket <code><ref></code> ke raşt niyo;\nparametrayan ra destur çini yo.\n<code><references /></code> sero kar bike",
|
||||
"cite_error_references_invalid_parameters_group": "Etiket <code><ref></code> ke raşt niyo;\nparametrayan ra destur çini yo.\n<code><references /></code> sero kar bike, ya zi <code><references group=\"...\" /></code>",
|
||||
"cite_error_references_no_backlink_label": "Linkanê Custom backlinkî hin çini yo.\nZerreyê mesajê <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>î de hewna tasvir bike",
|
||||
"cite_error_no_link_label_group": "Eka etiketinê linkê şexsi ser ena grubi \"$1\" ciniyo.\nZerre mesajê <nowiki>[[MediaWiki:$2]]</nowiki> de zafyer qise bike.",
|
||||
"cite_error_references_no_text": "Etiket <code><ref></code> ke raşt niyo;\nqe refs yew nuşte nidayiyo <code>$1</code>",
|
||||
"cite_error_references_no_text": "Nêravyarde <code><ref></code> etiket;\n<code>$1</code>nameya referansa rê metin nêabıryayo",
|
||||
"cite_error_included_ref": "<code><ref></code>Qandê etiketi <code></ref></code> racnayış kemiyo",
|
||||
"cite_error_group_refs_without_references": "etiketé <code><ref></code>i niesto ser grubé $1'i, feqat etiketé <code><references/></code>dé \"$1\"/>nidiyo",
|
||||
"cite_error_references_group_mismatch": "etiketê <code><ref></code>î, zerre <code><references/></code> de ser grupê \"$1\"î konflikt keno.",
|
||||
|
@ -25,6 +30,8 @@
|
|||
"cite_error_references_missing_key": "etiketê <code><ref></code>î, zerre <code><references/></code> de tevisr biyo ser name \"$1\"î verni de niesto.",
|
||||
"cite_error_references_no_key": "etiketê <code><ref></code>î, zerre <code><references/></code> de tevsir biyo name xo çini yo.",
|
||||
"cite_error_empty_references_define": "etiketê <code><ref></code>î, zerre <code><references/></code> de tevsir biyo \"$1\" kontent xo çini yo.",
|
||||
"cite-tracking-category-cite-error": "Perê ke xetay çımi tede est o",
|
||||
"cite-tracking-category-cite-error-desc": "Perabê ena kategori de referansan de xırabin est a.",
|
||||
"cite_reference_link_key_with_num": "$1_$2",
|
||||
"cite_reference_link_prefix": "sita_ref-",
|
||||
"cite_references_link_prefix": "sita_not-",
|
||||
|
@ -35,5 +42,8 @@
|
|||
"cite_references_link_many_sep": " ",
|
||||
"cite_references_link_many_and": " ",
|
||||
"cite_references_link_accessibility_label": "Ser çek",
|
||||
"cite_references_link_many_accessibility_label": "Ser çek:"
|
||||
"cite_references_link_many_accessibility_label": "Ser çek:",
|
||||
"cite_section_preview_references": "Verasayışê çımeyan",
|
||||
"cite_warning": "İqaza sita:$1",
|
||||
"cite_warning_sectionpreview_no_text": "<code><ref></code> nameya etiket <code>$1</code> bêverqayy nêbena, çıkı\nMewcud lete dı yana bê ê leti şınasiya xı çıni ya."
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"cite-desc": "Lisab viitamiseks sildid <nowiki><ref[ name=id]></nowiki> ja <nowiki><references/></nowiki>.",
|
||||
"cite_error": "Viitamistõrge: $1",
|
||||
"cite_error_ref_numeric_key": "Vigane <code><ref></code>-silt.\nNimeparameeter ei tohi olla numbriline. Kasuta kirjeldavat nime.",
|
||||
"cite_error_ref_no_key": "Vigane <code><ref></code>-silt.\nSisuta viitamissiltidel peab olema nimi.",
|
||||
"cite_error_ref_no_key": "Algussilt <code><ref></code> on väärdunud või selle nimi on vigane.",
|
||||
"cite_error_ref_too_many_keys": "Vigane <code><ref></code>-silt;\n\"name\" on vigane või liiga pikk.",
|
||||
"cite_error_ref_no_input": "Vigane <code><ref></code>-silt.\nNimeta viitamissiltidel peab olema sisu.",
|
||||
"cite_error_references_duplicate_key": "Vigane <code><ref></code>-silt; nime \"$1\" on määratud mitu korda erineva sisuga.",
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"An13sa"
|
||||
"An13sa",
|
||||
"Sator"
|
||||
]
|
||||
},
|
||||
"cite-desc": "<nowiki><ref[ name=id]></nowiki> eta <nowiki><references/></nowiki> etiketak gehitzen ditu, aipuentzako",
|
||||
"cite_error": "Aipamen errorea: $1"
|
||||
"cite_error": "Aipamen errorea: $1",
|
||||
"cite_section_preview_references": "Erreferentzien aurreikuspena"
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
"cite_error_ref_no_key": "Kelpaamaton <code><ref></code>-elementti: sisällöttömille refeille pitää määrittää nimi.",
|
||||
"cite_error_ref_too_many_keys": "Kelpaamaton <code><ref></code>-elementti: virheelliset nimet, esim. liian monta",
|
||||
"cite_error_ref_no_input": "Kelpaamaton <code><ref></code>-elementti: viitteillä ilman nimiä täytyy olla sisältöä",
|
||||
"cite_error_references_duplicate_key": "Virheellinen <code><ref></code>-elementti; nimi \"$1\" on määritetty usean kerran eri sisällöillä",
|
||||
"cite_error_references_invalid_parameters": "Kelpaamaton <code><references></code>-elementti: parametrit eivät ole sallittuja. Käytä muotoa <code><references /></code>.",
|
||||
"cite_error_references_invalid_parameters_group": "Kelpaamaton <code><references></code>-elementti: vain parametri ”group” on sallittu. Käytä muotoa <code><references /></code> tai <code><references group=\"...\" /></code>",
|
||||
"cite_error_references_no_backlink_label": "Määritetyt takaisinviittausnimikkeet loppuivat kesken.\nNiitä voi määritellä lisää sivulla <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.",
|
||||
|
@ -33,6 +34,9 @@
|
|||
"cite_error_references_no_key": "<code><references></code>-elementissä määritetyllä <code><ref></code>-elementillä ei ole nimimääritettä.",
|
||||
"cite_error_empty_references_define": "<code><references></code>-elementissä määritetyllä <code><ref></code>-elementillä nimellä ”$1” ei ole sisältöä.",
|
||||
"cite-tracking-category-cite-error": "Sivut, joissa on viittausvirheitä",
|
||||
"cite-tracking-category-cite-error-desc": "Tässä luokassa olevissa sivuissa on virheitä viite-elementtien käytössä.",
|
||||
"cite_references_link_accessibility_label": "Siirry ylös",
|
||||
"cite_references_link_many_accessibility_label": "Siirry ylös kohtaan:",
|
||||
"cite_section_preview_references": "Viitteiden esikatselu",
|
||||
"cite_warning": "Viittausvaroitus: $1",
|
||||
"cite_warning_sectionpreview_no_text": "<code><ref></code>-viitettä, jonka nimenä on <code>$1</code>, ei voida näyttää esikatselussa, koska se määritetään tämän osion ulkopuolella tai sitä ei ole määritetty lainkaan."
|
||||
|
|
|
@ -15,7 +15,9 @@
|
|||
"Verdy p",
|
||||
"Orlodrim",
|
||||
"Wyz",
|
||||
"Wladek92"
|
||||
"Wladek92",
|
||||
"The RedBurn",
|
||||
"Trial"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "Renvoyer une représentation des données des références associées avec les pages fournies.",
|
||||
|
@ -36,7 +38,7 @@
|
|||
"cite_error_group_refs_without_references": "Des balises <code><ref></code> existent pour un groupe nommé « $1 », mais aucune balise <code><references group=\"$1\"/></code> correspondante n’a été trouvée, ou bien une balise fermante <code></ref></code> manque.",
|
||||
"cite_error_references_group_mismatch": "La balise <code><ref></code> dans <code><references></code> a l’attribut de groupe « $1 » qui entre en conflit avec celui de <code><references></code>.",
|
||||
"cite_error_references_missing_group": "La balise <code><ref></code> définie dans <code><references></code> a un groupe attribué « $1 » qui ne figure pas dans le texte précédent.",
|
||||
"cite_error_references_missing_key": "La balise <code><ref></code> avec le nom « $1 » définie dans <code><references></code> n’est pas utilisé dans le texte précédent.",
|
||||
"cite_error_references_missing_key": "La balise <code><ref></code> nommée « $1 » définie dans <code><references></code> n’est pas utilisée dans le texte précédent.",
|
||||
"cite_error_references_no_key": "La balise <code><ref></code> définie dans <code><references></code> n’a pas d’attribut de nom.",
|
||||
"cite_error_empty_references_define": "La balise <code><ref></code> défini dans <code><references></code> avec le nom « $1 » n’a pas de contenu.",
|
||||
"cite-tracking-category-cite-error": "Pages avec des erreurs de référence",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
]
|
||||
},
|
||||
"cite-desc": "Apond les balises <nowiki><ref[ name=id]></nowiki> et <nowiki><references/></nowiki>, por les citacions.",
|
||||
"cite_error": "Èrror de citacion $1",
|
||||
"cite_error": "Fôta de rèference : $1",
|
||||
"cite_error_ref_numeric_key": "Apèl envalido ; cllâf pas entègrâla atendua.",
|
||||
"cite_error_ref_no_key": "Balisa <code><ref></code> fôssa ;\nles refèrences sen contegnu dêvont avêr un nom.",
|
||||
"cite_error_ref_too_many_keys": "Apèl envalido ; cllâfs envalides, per ègzemplo, trop de cllâfs spècefiâs ou ben cllâf fôssa.",
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Marwan Mohamad"
|
||||
]
|
||||
},
|
||||
"cite_error": "Tilala mokupe'i: $1"
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Hakka"
|
||||
]
|
||||
},
|
||||
"cite_error": "Yín-yung chhâ-chho: $1"
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
"cite-desc": "Bætir <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki> tögum við fyrir heimildir",
|
||||
"cite_error": "Tilvísunar villa: $1",
|
||||
"cite_error_ref_numeric_key": "Villa í <code><ref></code> tag;\nnafn tilvísunar má ekki vera heil tala. Notaðu lýsandi titil",
|
||||
"cite_error_ref_no_key": "Villa í <code><ref></code> tag;\ntilvísunin verður annaðhvort að hafa nafn eða innihald.",
|
||||
"cite_error_ref_no_key": "Opna <code><ref></code> merkið er gallað eða hefur ógilt nafn",
|
||||
"cite_error_ref_too_many_keys": "Villa í <code><ref></code> tag;\nógilt nafn, t.d. of mörg",
|
||||
"cite_error_ref_no_input": "Villa í <code><ref></code> tag;\ntilvísunin verður annaðhvort að hafa nafn eða innihald.",
|
||||
"cite_error_references_invalid_parameters": "Villa í <code><ref></code> tag;\nengir stikar eru leyfðir\nNotaðu <code><references /></code> í staðinn",
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
"Erdemaslancan",
|
||||
"Gianfranco",
|
||||
"Pietrodn",
|
||||
"Horcrux92"
|
||||
"Horcrux92",
|
||||
"Nemo bis"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "Restituisce una rappresentazione dati dei riferimenti associati con le pagine indicate.",
|
||||
|
@ -35,7 +36,7 @@
|
|||
"cite-tracking-category-cite-error-desc": "Le pagine in questa categoria hanno errori nell'uso dei tag per le note.",
|
||||
"cite_references_link_accessibility_label": "Salta",
|
||||
"cite_references_link_many_accessibility_label": "Salta a:",
|
||||
"cite_section_preview_references": "Anteprima dei riferimenti",
|
||||
"cite_section_preview_references": "Anteprima delle note",
|
||||
"cite_warning": "Attenzione nelle note: $1",
|
||||
"cite_warning_sectionpreview_no_text": "Il tag <code><ref></code> con nome <code>$1</code> non può essere visualizzato in anteprima, perché è definito al di fuori della sezione attuale o non definito affatto."
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
]
|
||||
},
|
||||
"cite-desc": "Nambahaké tag <nowiki><ref[ name=id]></nowiki> lan <nowiki><references/></nowiki> kanggo kutipan (sitat)",
|
||||
"cite_error": "Cacad panyuplik: $1",
|
||||
"cite_error": "Cacad sitiran: $1",
|
||||
"cite_error_ref_numeric_key": "Tag <code><ref></code> ora absah;\njenengé ora bisa namung angka integer waé. Gunakna irah-irahan (judhul) dèskriptif",
|
||||
"cite_error_ref_no_key": "Tag <code><ref></code> ora absah;\nrefs tanpa isi kudu duwé jeneng",
|
||||
"cite_error_ref_too_many_keys": "Tag <code><ref></code> ora absah;\njeneng-jenengé ora absah, contoné kakèhan",
|
||||
|
@ -26,6 +26,8 @@
|
|||
"cite_error_references_missing_key": "<code><ref></code> tag sing didhefinisikaké mawa jeneng \"$1\" <code><references></code> ora dianggo nèng tèks sakdurungé.",
|
||||
"cite_error_references_no_key": "Tag <code><ref></code> yang didefinisikan di di <code><references></code> tidak memiliki nama atribut.",
|
||||
"cite_error_empty_references_define": "Tag <code><ref></code> yang didefinisikan di di <code><references></code> dengan nama \"$1\" tidak memiliki isi.",
|
||||
"cite-tracking-category-cite-error": "Kaca mawa cacad rujukan",
|
||||
"cite-tracking-category-cite-error-desc": "Kaca ing kategori iki ngemu cacad ing panganggoning tag rujukan.",
|
||||
"cite_reference_link_key_with_num": "$1_$2",
|
||||
"cite_reference_link_prefix": "cite_ref-",
|
||||
"cite_references_link_prefix": "cite_note-",
|
||||
|
@ -35,6 +37,8 @@
|
|||
"cite_references_link_many_format_backlink_labels": "a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz",
|
||||
"cite_references_link_many_sep": " ",
|
||||
"cite_references_link_many_and": " ",
|
||||
"cite_references_link_accessibility_label": "Mencolot munggah",
|
||||
"cite_references_link_many_accessibility_label": "Mencolot munggah menyang:"
|
||||
"cite_references_link_accessibility_label": "Lumpat",
|
||||
"cite_references_link_many_accessibility_label": "Lumpat nyang:",
|
||||
"cite_section_preview_references": "Pratuduh rujukan",
|
||||
"cite_warning": "Pélik sitiran: $1"
|
||||
}
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
"David1010",
|
||||
"Dawid Deutschland",
|
||||
"Nodar Kherkheulidze",
|
||||
"გიორგიმელა"
|
||||
"გიორგიმელა",
|
||||
"BRUTE",
|
||||
"Otogi"
|
||||
]
|
||||
},
|
||||
"cite-desc": "ამატებს <nowiki><ref[ name=id]></nowiki> და <nowiki><references/></nowiki> ტეგებს სქოლიოსთვის",
|
||||
|
@ -25,11 +27,13 @@
|
|||
"cite_error_references_missing_key": "ტეგი <code><ref></code> სახელად „$1“, გარკვეული <code><references></code>-ში, არ გამოიყენება წინა ტექსტში.",
|
||||
"cite_error_references_no_key": "ტეგს <code><ref></code>, გარკვეულს <code><references></code>-ში, სახელის ატრიბუტი არ გააჩნია.",
|
||||
"cite_error_empty_references_define": "ტეგს <code><ref></code>, გარკვეულს <code><references></code>-ში, სახელით „$1“ არ გააჩნია შინაარსი.",
|
||||
"cite-tracking-category-cite-error": "გვერდები, რომლებიც შეიცავენ სქოლიოში შეცდომას",
|
||||
"cite_reference_link_key_with_num": "$1_$2",
|
||||
"cite_references_link_one": "<li id=\"$1\"><span class=\"mw-cite-backlink\">[[#$2|↑]]</span> $3</li>",
|
||||
"cite_references_link_many": "<li id=\"$1\"><span class=\"mw-cite-backlink\">↑ $2</span> $3</li>",
|
||||
"cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
|
||||
"cite_references_link_many_sep": " ",
|
||||
"cite_references_link_many_and": " ",
|
||||
"cite_references_link_accessibility_label": "ზემოთ ასვლა"
|
||||
"cite_references_link_accessibility_label": "ზემოთ ასვლა",
|
||||
"cite_section_preview_references": "სქოლიოს სიის წინასწარი გადახედვა"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Gnangbade"
|
||||
]
|
||||
},
|
||||
"cite_error": "Ɖɩcɔnɩyɛ yiɣduu : $1"
|
||||
}
|
|
@ -8,17 +8,19 @@
|
|||
"아라",
|
||||
"Hwangjy9",
|
||||
"Revi",
|
||||
"Bluemersen"
|
||||
"Bluemersen",
|
||||
"Ykhwong"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-example-1": "<kbd>Albert Einstein</kbd>과 관련된 주석.",
|
||||
"cite-desc": "인용에 쓰이는 <nowiki><ref[ name=id]></nowiki>와 <nowiki><references/></nowiki> 태그를 추가합니다",
|
||||
"cite_error": "인용 오류: $1",
|
||||
"cite_error_ref_numeric_key": "<code><ref></code> 태그가 잘못되었습니다;\n이름은 숫자가 될 수 없습니다. 설명적인 이름을 사용하세요",
|
||||
"cite_error_ref_no_key": "<code><ref></code> 태그가 잘못되었습니다;\n내용이 없는 주석은 이름이 있어야 합니다",
|
||||
"cite_error_ref_no_key": "열린 <code><ref></code> 태그가 잘못되었거나 이름이 잘못되었습니다.",
|
||||
"cite_error_ref_too_many_keys": "<code><ref></code> 태그가 잘못되었습니다;\n잘못된 이름입니다, 너무 많은 등",
|
||||
"cite_error_ref_no_input": "<code><ref></code> 태그가 잘못되었습니다;\n이름이 없는 ref 태그는 반드시 내용이 있어야 합니다",
|
||||
"cite_error_references_duplicate_key": "잘못된 <code><ref></code> 태그; \"$1\"이 다른 콘텐츠로 여러 번 정의되었습니다",
|
||||
"cite_error_references_invalid_parameters": "<code><references></code> 태그가 잘못되었습니다;\n변수를 넣으면 안됩니다.\n<code><references /></code>를 사용하세요",
|
||||
"cite_error_references_invalid_parameters": "<code><references></code> 태그가 잘못되었습니다;\n변수를 넣으면 안 됩니다.\n<code><references /></code>를 사용하세요",
|
||||
"cite_error_references_invalid_parameters_group": "<code><references></code> 태그가 잘못되었습니다;\n\"group\" 변수만 사용할 수 있습니다.\n<code><references /></code>나 <code><references group=\"...\" /></code>를 사용하세요",
|
||||
"cite_error_references_no_backlink_label": "사용자 지정 백링크 라벨이 바닥이 났습니다.\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>메시지에 더 정의하세요.",
|
||||
"cite_error_no_link_label_group": "\"$1\" 그룹에 대해 사용자 지정 링크 레이블이 바닥이 났습니다.\n<nowiki>[[MediaWiki:$2]]</nowiki> 메시지에 더 정의하세요.",
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Varvana"
|
||||
]
|
||||
},
|
||||
"cite_error": "Viittaušvirhe: $1"
|
||||
}
|
|
@ -5,6 +5,7 @@
|
|||
"The Evil IP address"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "Jidd en Dahschtällong vun dä Qälle un Fohßnuhte als Dahte uß, di met dä aanjejovve Sigge verknop sin.",
|
||||
"apihelp-query+references-example-1": "Bezösche em Zesammehang mem <kbd lang=\"de\" xml:lang=\"de\" dir=\"ltr\">Albert Einstein</kbd>.",
|
||||
"cite-desc": "Erlaub Quelle un Referenze met <nowiki><ref[ name=\"id\"]></nowiki> un <nowiki><references /></nowiki> aanzejevve.",
|
||||
"cite_error": "Fähler in <i lang=\"en\">cite</i> met Referenze: $1",
|
||||
|
@ -32,5 +33,8 @@
|
|||
"cite_references_link_prefix": "fohss_noht_nommer_",
|
||||
"cite_references_link_many_and": " ",
|
||||
"cite_references_link_accessibility_label": "Jangk noh bovve",
|
||||
"cite_references_link_many_accessibility_label": "Jangk noh bovve op:"
|
||||
"cite_references_link_many_accessibility_label": "Jangk noh bovve op:",
|
||||
"cite_section_preview_references": "En Vöraff-Aansesch vun de Quälle un Fohßnuhte",
|
||||
"cite_warning": "Opjepaß: $1",
|
||||
"cite_warning_sectionpreview_no_text": "<code><ref></code> dä Befähl mem Nahme <code>$1</code> künne mer nit vöraff belohre. Dä es ußerhallef vun heh däm Afschnedd udder övverhoup nit bestemmt wohde."
|
||||
}
|
||||
|
|
|
@ -5,12 +5,14 @@
|
|||
"Robby"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-example-1": "Referenzen associéiert mam <kbd>Albert Einstein</kbd>.",
|
||||
"cite-desc": "Setzt <nowiki><ref[ name=id]></nowiki> an <nowiki><references/></nowiki> Taggen derbäi, fir Zitatiounen.",
|
||||
"cite_error": "Zitéierfeeler: $1",
|
||||
"cite_error_ref_numeric_key": "Ongëltegen <code><ref></code> Tag;\nDen Numm ka keng einfach ganz Zuel sinn. Benotzt w.e.g. een Titel den eng Beschreiwung gëtt",
|
||||
"cite_error_ref_no_key": "Ongëltegen <code><ref></code> Tag;\nReferenzen ouni Inhalt mussen een Numm hunn",
|
||||
"cite_error_ref_no_key": "Den Ufaang <code><ref></code> Tag ass schlecht formatéiert oder huet e falschen Numm",
|
||||
"cite_error_ref_too_many_keys": "Ongëltege <code><ref></code> Tag;\nongëlteg Nimm, z. Bsp. zevill",
|
||||
"cite_error_ref_no_input": "Ongëltege <code><ref></code> Tag;\n''refs'' ouni Numm muss een Inhalt hun",
|
||||
"cite_error_references_duplicate_key": "Net valabelen Tag <code><ref></code>. Den Numm \"$1\" gouf e puer Mol mat verschiddenem Inhalt definéiert",
|
||||
"cite_error_references_invalid_parameters": "Ongëltegen <code><references></code> Tag;\net si keng Parameter erlaabt.\nBenotzt <code><references /></code>",
|
||||
"cite_error_references_invalid_parameters_group": "Ongëltege <code><references></code> Tag;\nnëmmen de Parameter \"group\" ass erlaabt.\nBenotzt <code><references /></code>, oder <code><references group=\"...\" /></code>",
|
||||
"cite_error_references_no_text": "Ongëlteg <code><ref></code> Markéierung;\net gouf keen Text ugi fir d'Referenze mam Numm <code>$1</code>",
|
||||
|
@ -22,7 +24,10 @@
|
|||
"cite_error_references_no_key": "D'Markéierung <code><ref></code> déi an <code><references></code> definéiert ass huet keng Nummeegeschaft.",
|
||||
"cite_error_empty_references_define": "D'Markéierung <code><ref></code> déi am <code><references></code> mat dem Numm « $1 » definéiert ass, ass eidel.",
|
||||
"cite-tracking-category-cite-error": "Säite mat Referenzfeeler",
|
||||
"cite-tracking-category-cite-error-desc": "Säiten an dëser Kategorie hu Feeler am Benotze vun de Referenz-Taggen.",
|
||||
"cite_references_link_accessibility_label": "No uewe sprangen",
|
||||
"cite_references_link_many_accessibility_label": "Eropsprangen op:",
|
||||
"cite_section_preview_references": "Referenze kucken ouni ze späicheren"
|
||||
"cite_section_preview_references": "Referenze kucken ouni ze späicheren",
|
||||
"cite_warning": "Referenzwarnung: $1",
|
||||
"cite_warning_sectionpreview_no_text": "Den Tag <code><ref></code> mam Numm <code>$1</code> kann hei net gewise ginn, well en entweder ausserhablb vun dësem Abschnitt ass oder guer net definéiert ass."
|
||||
}
|
||||
|
|
|
@ -4,5 +4,32 @@
|
|||
"Giromin Cangiaxo"
|
||||
]
|
||||
},
|
||||
"cite_error": "Errô inte notte: $1"
|
||||
"apihelp-query+references-description": "O restitoisce una rapresentaçion di dæti de referençe associæ co-e paggine indicæ.",
|
||||
"apihelp-query+references-example-1": "Referençe associæ con <kbd>Albert Einstein</kbd>.",
|
||||
"cite-desc": "O l'azonze i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> pe gestî e çitaçioin",
|
||||
"cite_error": "Errô inte notte: $1",
|
||||
"cite_error_ref_numeric_key": "Errô inte l'uso do marcatô <code><ref></code>: o nomme o no poeu ese un nummero intrego. Adoeuvia un tittolo esteiso",
|
||||
"cite_error_ref_no_key": "L'avertua de l'etichetta <code><ref></code> a no l'è corretta ò a g'ha un nomme errou.",
|
||||
"cite_error_ref_too_many_keys": "Tag <code><ref></code> non vallido: nommi non vallidi (pres. troppi)",
|
||||
"cite_error_ref_no_input": "Tag <code><ref></code> non vallido: i ref sença nomme no poeuan ese voeui",
|
||||
"cite_error_references_duplicate_key": "Tag <code><ref></code> non vallido; o nomme \"$1\" o l'è stæto definio ciù votte con di contegnui despægi",
|
||||
"cite_error_references_invalid_parameters": "Tag <code><references></code> non vallido: parametri non ammissi, adoeuvia <code><references /></code>",
|
||||
"cite_error_references_invalid_parameters_group": "Tag <code><references></code> non vallido;\nsolo o parametro \"group\" o l'è permisso.\nAdoeuvia <code><references /></code> ò <code><references group=\"...\" /></code>",
|
||||
"cite_error_references_no_backlink_label": "Etichette de rimando personalizæ esaorie, aomentine o nummero into messaggio <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
|
||||
"cite_error_no_link_label_group": "Etichette pe inganci personalizæ do groppo \"$1\" esaorie, aomentine o nummero into messaggio <nowiki>[[MediaWiki:$2]]</nowiki>",
|
||||
"cite_error_references_no_text": "Marcatî <code><ref></code> non vallido; no l'è stæto indicou nisciun testo pe-o marcatô <code>$1</code>",
|
||||
"cite_error_included_ref": "<code></ref></code> finâ mancante pe-o marcatô <code><ref></code>",
|
||||
"cite_error_group_refs_without_references": "Ghè di tag <code><ref></code> pe 'n groppo ciamou \"$1\" ma no l'è stæto trovou nisciun tag <code><references group=\"$1\"/></code> corrispondente, oppù manca un <code></ref></code> finâ",
|
||||
"cite_error_references_group_mismatch": "O tag <code><ref></code> in <code><references></code> o g'ha l'attributo groppo \"$1\" in conflito.",
|
||||
"cite_error_references_missing_group": "O tag <code><ref></code> definio in <code><references></code> o g'ha un attributo gruppo \"$1\" ch'o no compâ into testo precedente.",
|
||||
"cite_error_references_missing_key": "O tag <code><ref></code> con nomme \"$1\" definio in <code><references></code> o no l'è doeuviou into testo precedente.",
|
||||
"cite_error_references_no_key": "O tag <code><ref></code> definio in <code><references></code> o no g'ha un attributo nomme.",
|
||||
"cite_error_empty_references_define": "O tag <code><ref></code> definio in <code><references></code> con nomme \"$1\" o no g'ha arcun contegnuo.",
|
||||
"cite-tracking-category-cite-error": "Paggine con erroî inte notte",
|
||||
"cite-tracking-category-cite-error-desc": "E paggine in questa categoria g'han di erroî inte l'uso di tag pe-e notte.",
|
||||
"cite_references_link_accessibility_label": "Sata",
|
||||
"cite_references_link_many_accessibility_label": "Sata a:",
|
||||
"cite_section_preview_references": "Anteprimma de notte",
|
||||
"cite_warning": "Attençion inte notte: $1",
|
||||
"cite_warning_sectionpreview_no_text": "O tag <code><ref></code> con nomme <code>$1</code> o no poeu ese vixualizou in anteprimma, perché o l'è definio a-o de foeua da seçion attoale ò o no l'è definio affæto."
|
||||
}
|
||||
|
|
|
@ -9,5 +9,8 @@
|
|||
},
|
||||
"cite-desc": "Pievieno <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> tagus, atsaucēm",
|
||||
"cite_error": "Kļūda atsaucē: $1",
|
||||
"cite_error_ref_numeric_key": "Nederīga <code><ref></code> iezīme;\n\"name\" vērtība nevar būt vienkāršs skaitlis. Izmanto aprakstošāku nosaukumu",
|
||||
"cite-tracking-category-cite-error": "Lapas ar atsauču kļūdām",
|
||||
"cite_section_preview_references": "Atsauču priekšskats",
|
||||
"cite_warning": "Atsauces brīdinājums: $1"
|
||||
}
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Tulsi Bhagat"
|
||||
"Tulsi Bhagat",
|
||||
"बिप्लब आनन्द"
|
||||
]
|
||||
},
|
||||
"cite_error": "उल्लेख गल्ती: $1"
|
||||
"cite_error": "सन्दर्भ त्रुटि: $1"
|
||||
}
|
||||
|
|
|
@ -5,9 +5,12 @@
|
|||
"Danmichaelo",
|
||||
"Laaknor",
|
||||
"Chameleon222",
|
||||
"Cocu"
|
||||
"Cocu",
|
||||
"Jon Harald Søby"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "Returnerer en datarepresentasjon av referanser assosiert med de gitte sidene.",
|
||||
"apihelp-query+references-example-1": "Referanser forbundet med <kbd>Albert Einstein</kbd>.",
|
||||
"cite-desc": "Legger til <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-tagger for referanser",
|
||||
"cite_error": "Siteringsfeil: $1",
|
||||
"cite_error_ref_numeric_key": "Ugyldig <code><ref></code>-kode; navnet kan ikke være et enkelt heltall, bruk en beskrivende tittel",
|
||||
|
|
|
@ -12,10 +12,12 @@
|
|||
"cite_error_ref_no_key": "Ugyldig <code><ref></code>-kode; referansar utan innhald må innehalde namn",
|
||||
"cite_error_ref_too_many_keys": "Ugyldig <code><ref></code>-kode; ugyldige namn, t.d. for mange",
|
||||
"cite_error_ref_no_input": "Ugyldig <code><ref></code>-kode; referansar uten namn må ha innhald",
|
||||
"cite_error_references_duplicate_key": "Ugyldig <code><ref></code>-merke; namnet «$1» er definert flere gonger med ulikt innhald",
|
||||
"cite_error_references_invalid_parameters": "Ugyldig <code><references></code>-kode; ingen parametrar er tillat, bruk <code><references /></code>",
|
||||
"cite_error_references_invalid_parameters_group": "Ugyldig <code><references></code>-tagg; berre parameteren «group» er tillatt. Bruk <code><references /></code> eller <code><references group=\"...\" /></code>",
|
||||
"cite_error_references_no_backlink_label": "Gjekk tom for eigendefinerte tilbakelenketekstar.\nDefiner fleire i meldinga <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
|
||||
"cite_error_references_no_text": "Ugyldig <code><ref></code>-merke; ingen tekst vart gjeven for referansen med namnet <code>$1</code>",
|
||||
"cite_error_included_ref": "Avsluttande <code></ref></code>-tagg manglar for <code><ref></code>",
|
||||
"cite_error_group_refs_without_references": "<code><ref></code>-merke finst for gruppenamnet «$1», men inkje samsvarande <code><references group=\"$1\"/></code>-merke vart funne"
|
||||
"cite_error_group_refs_without_references": "<code><ref></code>-merke finst for gruppenamnet «$1», men inkje samsvarande <code><references group=\"$1\"/></code>-merke vart funne",
|
||||
"cite_section_preview_references": "Førehandsvising av kjelder"
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"cite_error_references_no_backlink_label": "ନିଜ ପସନ୍ଦର ବ୍ୟାକଲିଙ୍କ ଚିହ୍ନ ସବୁ ସରିଗଲା ।\n<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>ସୂଚନାରେ ଅଧିକ ଦେଖନ୍ତୁ ।",
|
||||
"cite_error_no_link_label_group": "\"$1\" ଗୋଠ ଲାଗି ନିଜ ପସନ୍ଦର ବ୍ୟାକଲିଙ୍କ ଚିହ୍ନ ସବୁ ସରିଗଲା ।\n<nowiki>[[MediaWiki:$2]]</nowiki>ସୂଚନାରେ ଅଧିକ ଚିହ୍ନିତ କରନ୍ତୁ ।",
|
||||
"cite_error_references_no_text": "ଅଚଳ <code><ref></code> ଚିହ୍ନ;\n<code>$1</code> ନାମରେ ଥିବା ଆଧାର ଭିତରେ କିଛି ଲେଖା ନାହିଁ ।",
|
||||
"cite_error_included_ref": "<code></ref></code> କୁ ବନ୍ଦ କରୁଅଛୁ; <code><ref></code> ନାହିଁ; ଚିହ୍ନ",
|
||||
"cite_error_included_ref": "<code><ref></code> ଟ୍ୟାଗ ପାଇଁ ବନ୍ଦକରିବା <code></ref></code> ନାହିଁ",
|
||||
"cite_error_group_refs_without_references": "<code><ref></code> ଟ୍ୟାଗସବୁ କେବଳ \"$1\" ନାମକ ଦଳ ପାଇଁ ରହିଥିଲେ ହେଁ କୌଣସି ସମ୍ବନ୍ଧିତ <code><references group=\"$1\"/></code> ଟ୍ୟାଗ ମିଳିଲା ନାହିଁ କିମ୍ବା <code></ref></code> ବନ୍ଦ କରିବା ଟ୍ୟାଗଟି ନାହିଁ ।",
|
||||
"cite_error_references_group_mismatch": "<code><references> ରେ <code><ref></code> ଚିହ୍ନ;</code> ର ଅସୁବିଧାଜନକ ଗୋଠ ବିଶେଷତା \"$1\" ।",
|
||||
"cite_error_references_missing_group": "<code><references></code>ରେ ଦିଆଯାଇଥିବା <code><ref></code> ଚିହ୍ନରେ \"$1\" ଗୋଠ ପାଇଁ ଚିହ୍ନ ଅଛି ଯାହାକି ଦରକାରୀ ଲେଖାରେ ଆସୁନାହିଁ ।",
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
"Chrumps"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "Zwraca reprezentację danych przypisów związanych z tą stroną.",
|
||||
"apihelp-query+references-example-1": "Przypisy powiązane z <kbd>Albert Einstein</kbd>.",
|
||||
"cite-desc": "Dodaje znaczniki <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> ułatwiające podawanie źródeł cytatów",
|
||||
"cite_error": "Błąd rozszerzenia ''cite'': $1",
|
||||
"cite_error_ref_numeric_key": "Nieprawidłowy znacznik <code><ref></code>. Nazwa nie może być liczbą, użyj nazwy opisowej.",
|
||||
|
@ -33,5 +35,7 @@
|
|||
"cite-tracking-category-cite-error-desc": "Strony w tej kategorii zawierają błędy w użyciu znaczników przypisów.",
|
||||
"cite_references_link_accessibility_label": "Skocz do góry",
|
||||
"cite_references_link_many_accessibility_label": "Skocz do:",
|
||||
"cite_section_preview_references": "Podgląd przypisów"
|
||||
"cite_section_preview_references": "Podgląd przypisów",
|
||||
"cite_warning": "Ostrzeżenie Cite: $1",
|
||||
"cite_warning_sectionpreview_no_text": "Znacznik <code><ref></code> o nazwie <code>$1</code> nie może być wyświetlony na tym podglądzie, ponieważ jest zdefiniowany poza edytowaną sekcją lub wcale."
|
||||
}
|
||||
|
|
|
@ -8,31 +8,36 @@
|
|||
"Opraco",
|
||||
"Waldir",
|
||||
"555",
|
||||
"Vitorvicentevalente"
|
||||
"Vitorvicentevalente",
|
||||
"Fúlvio"
|
||||
]
|
||||
},
|
||||
"apihelp-query+references-description": "Devolver uma representação de dados, das referências associadas com as páginas especificadas.",
|
||||
"apihelp-query+references-example-1": "Referências associadas com <kbd>Albert Einstein</kbd>.",
|
||||
"cite-desc": "Adiciona elementos <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para uso em citações",
|
||||
"cite_error": "Erro de citação: $1",
|
||||
"cite_error_ref_numeric_key": "Código <code><ref></code> inválido; o nome não pode ser um número. Utilize um nome descritivo",
|
||||
"cite_error_ref_no_key": "Código <code><ref></code> inválido; refs sem conteúdo devem ter um parâmetro de nome",
|
||||
"cite_error_ref_too_many_keys": "Código <code><ref></code> inválido; nomes inválidos (por exemplo, nome muito extenso)",
|
||||
"cite_error_ref_no_input": "Código <code><ref></code> inválido; refs sem parâmetro de nome devem possuir conteúdo a elas associado",
|
||||
"cite_error_references_invalid_parameters": "Código <code><references></code> inválido; não são permitidos parâmetros. Utilize como <code><references /></code>",
|
||||
"cite_error_ref_numeric_key": "Elemento <code><ref></code> inválido; o nome não pode ser um número. Use um nome descritivo",
|
||||
"cite_error_ref_no_key": "Elemento de abertura <code><ref></code> está mal formado ou tem um nome inválido",
|
||||
"cite_error_ref_too_many_keys": "Elemento <code><ref></code> inválido; nomes inválidos (por exemplo, são demasiados)",
|
||||
"cite_error_ref_no_input": "Elemento <code><ref></code> inválido; refs sem parâmetro de nome devem ter conteúdo associado",
|
||||
"cite_error_references_duplicate_key": "Código <code><ref></code> inválido; o nome \"$1\" é definido mais de uma vez com conteúdos diferentes",
|
||||
"cite_error_references_invalid_parameters": "Código <code><references></code> inválido; não são permitidos parâmetros. Use <code><references /></code>",
|
||||
"cite_error_references_invalid_parameters_group": "O elemento <code><references></code> é inválido;\nsó é permitido o parâmetro \"group\".\nUse <code><references /></code>, ou <code><references group=\"...\" /></code>",
|
||||
"cite_error_references_no_backlink_label": "Esgotamento das legendas personalizadas para backlinks.\nDefina mais na mensagem <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
|
||||
"cite_error_no_link_label_group": "Esgotamento das legendas personalizadas para links, no grupo \"$1\".\nDefina mais na mensagem <nowiki>[[MediaWiki:$2]]</nowiki>.",
|
||||
"cite_error_references_no_text": "Tag <code><ref></code> inválida; não foi fornecido texto para as refs chamadas <code>$1</code>",
|
||||
"cite_error_included_ref": "<code></ref></code> de fecho em falta, para o elemento <code><ref></code>",
|
||||
"cite_error_group_refs_without_references": "existem marcas <code><ref></code> para um grupo chamado \"$1\", mas nenhuma marca <code><references group=\"$1\"/></code> correspondente foi encontrada (ou uma marca de fechamento <code></ref></code> está faltando)",
|
||||
"cite_error_references_group_mismatch": "O elemento <code><ref></code> em <code><references></code> tem o atributo de grupo \"$1\", que está em conflito com o de <code><references></code>.",
|
||||
"cite_error_references_missing_group": "O elemento <code><ref></code> definido em <code><references></code> tem o atributo de grupo \"$1\", que não aparece no texto anterior.",
|
||||
"cite_error_references_missing_key": "A etiqueta <code><ref></code> com nome \"$1\" definida em <code><references></code> não é utilizada no texto acima.",
|
||||
"cite_error_references_no_key": "O elemento <code><ref></code> definido em <code><references></code> não tem um atributo de nome.",
|
||||
"cite_error_empty_references_define": "O elemento <code><ref></code> definido em <code><references></code> com o nome \"$1\" não tem conteúdo.",
|
||||
"cite_error_references_no_text": "Código <code><ref></code> inválido; não foi fornecido texto para as refs de nome <code>$1</code>",
|
||||
"cite_error_included_ref": "Elemento de fecho <code></ref></code> em falta para o elemento <code><ref></code>",
|
||||
"cite_error_group_refs_without_references": "Existem elementos <code><ref></code> para um grupo chamado \"$1\", mas não foi encontrado nenhum <code><references group=\"$1\"/></code> correspondente (ou falta um elemento de fecho <code></ref></code>)",
|
||||
"cite_error_references_group_mismatch": "Elemento <code><ref></code> em <code><references></code> tem o atributo de grupo \"$1\", que está em conflito com o de <code><references></code>.",
|
||||
"cite_error_references_missing_group": "Elemento <code><ref></code> definido em <code><references></code> tem o atributo de grupo \"$1\", que não aparece no texto anterior.",
|
||||
"cite_error_references_missing_key": "Elemento <code><ref></code> com nome \"$1\" definido em <code><references></code> não é utilizado no texto da página.",
|
||||
"cite_error_references_no_key": "Elemento <code><ref></code> definido em <code><references></code> não tem um atributo de nome.",
|
||||
"cite_error_empty_references_define": "Elemento <code><ref></code> definido em <code><references></code> com o nome \"$1\" não tem conteúdo.",
|
||||
"cite-tracking-category-cite-error": "Páginas com erros em referências",
|
||||
"cite-tracking-category-cite-error-desc": "As páginas nesta categoria contém erros no uso das marcações de referências.",
|
||||
"cite-tracking-category-cite-error-desc": "As páginas nesta categoria contêm erros no uso dos elementos de referências.",
|
||||
"cite_references_link_accessibility_label": "Ir para cima",
|
||||
"cite_references_link_many_accessibility_label": "Ir para:",
|
||||
"cite_section_preview_references": "Pré-visualização de referências",
|
||||
"cite_warning": "Aviso: $1"
|
||||
"cite_warning": "Aviso de citação: $1",
|
||||
"cite_warning_sectionpreview_no_text": "Elemento <code><ref></code> com o nome <code>$1</code> não pode fazer parte da antevisão porque está definido fora da presente secção ou não foi definido."
|
||||
}
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"HalanTul"
|
||||
"HalanTul",
|
||||
"София"
|
||||
]
|
||||
},
|
||||
"cite-desc": "Хос быһаарыы <nowiki><ref[ name=id]></nowiki> уонна <nowiki><references/></nowiki> тиэктэрин эбэр",
|
||||
"cite_error": "Цитата сыыһата: $1",
|
||||
"cite_error_ref_numeric_key": "Неправильный вызов: ожидался нечисловой ключ",
|
||||
"cite_error_ref_no_key": "<code><ref></code> тиэк алҕаһа (Неправильный вызов): аата (күлүүһэ) ыйыллыбатах",
|
||||
"cite_error_ref_no_key": "<code><ref></code> тиэк алҕаһа: аата (күлүүһэ) ыйыллыбатах",
|
||||
"cite_error_ref_too_many_keys": "<code><ref></code> тиэк алҕаһа (Неправильный вызов): аата сыыһа ыйыллыбыт, эбэтэр наһаа элбэх аат суруллубут",
|
||||
"cite_error_ref_no_input": "<code><ref></code> тиэк алҕастаах (Неверный вызов): иһинээҕитэ сыыһа",
|
||||
"cite_error_references_invalid_parameters": "Сыыһа параметрдар бэриллибиттэр; <code><references /></code> тиэккэ отой суох буолуохтаахтар",
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Albinus"
|
||||
]
|
||||
},
|
||||
"cite_error": "Kath bhul:$1"
|
||||
}
|
|
@ -11,6 +11,7 @@
|
|||
"cite_error_ref_no_key": "Neplatné volanie; nebol špecifikovaný kľúč",
|
||||
"cite_error_ref_too_many_keys": "Neplatné volanie; neplatné kľúče, napr. príliš veľa alebo nesprávne špecifikovaný kľúč",
|
||||
"cite_error_ref_no_input": "Neplatné volanie; nebol špecifikovaný vstup",
|
||||
"cite_error_references_duplicate_key": "Neplatná značka <code><ref></code>; názov „$1“ je použitý viackrát s rôznym obsahom",
|
||||
"cite_error_references_invalid_parameters": "Neplatné parametre; neočakávli sa žiadne",
|
||||
"cite_error_references_invalid_parameters_group": "Neplatná značka <code><references></code>;\nje povolený iba parameter „group“.\nPoužite <code><references /></code> alebo <code><references group=\"...\" /></code>",
|
||||
"cite_error_references_no_backlink_label": "Minuli sa generované návestia spätných odkazov, definujte viac v správe <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
|
||||
|
@ -24,5 +25,6 @@
|
|||
"cite_error_references_no_key": "Značka <code><ref></code> s definovaná v <code><references></code> nemá žiaden atribút názov.",
|
||||
"cite_error_empty_references_define": "Značka <code><ref></code> s definovaná v <code><references></code> s názvom „$1“ nemá žiaden obsah.",
|
||||
"cite-tracking-category-cite-error": "Stránky s chybami v referenciách",
|
||||
"cite-tracking-category-cite-error-desc": "Stránky v tejto kategórii obsahujú chyby v použití značiek pre citačné referencie."
|
||||
"cite-tracking-category-cite-error-desc": "Stránky v tejto kategórii obsahujú chyby v použití značiek pre citačné referencie.",
|
||||
"cite_section_preview_references": "Náhľad referencií"
|
||||
}
|
||||
|
|
|
@ -31,5 +31,6 @@
|
|||
"cite_references_link_many_format": "<sup>[[#$1|$2]]</sup>",
|
||||
"cite_references_link_many_format_backlink_labels": "а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш аа аб ав аг ад ађ ае аж аз аи ај ак ал аљ ам ан ањ ао ап ар ас ат аћ ау аф ах ац ач аџ аш ба бб бв бг бд бђ бе бж бз би бј бк бл бљ бм бн бњ бо бп бр бс бт бћ бу бф бх бц бч бџ бш ва вб вв вг вд вђ ве вж вз ви вј вк вл вљ вм вн вњ во вп вр вс вт вћ ву вф вх вц вч вџ вш га гб гв гг гд гђ ге гж гз ги гј гк гл гљ гм гн гњ го гп гр гс гт гћ гу гф гх гц гч гџ гш да дб дв дг дд дђ де дж дз ди дј дк дл дљ дм дн дњ до дп др дс дт дћ ду дф дх дц дч дџ дш ђа ђб ђв ђг ђд ]] ђе ђж ђз ђи ђј ђк ђл ђљ ђм ђн ђњ ђо ђп ђр ђс ђт ђћ ђу ђф ђх ђц ђч ђџ ђш еа еб ев ег ед еђ ее еж ез еи еј ек ел ељ ем ен ењ ео еп ер ес ет ећ еу еф ех ец еч еџ еш жа жб жв жг жд жђ же жж жз жи жј жк жл жљ жм жн жњ жо жп жр жс жт жћ жу жф жх жц жч жџ жш за зб зв зг зд зђ зе зж зз зи зј зк зл зљ зм зн зњ зо зп зр зс зт зћ зу зф зх зц зч зџ зш иа иб ив иг ид иђ ие иж из ии иј ик ил иљ им ин ињ ио ип ир ис ит ић иу иф их иц ич иџ иш ја јб јв јг јд јђ је јж јз ји јј јк јл јљ јм јн јњ јо јп јр јс јт јћ ју јф јх јц јч јџ јш ка кб кв кг кд кђ ке кж кз ки кј кк кл кљ км кн књ ко кп кр кс кт кћ ку кф кх кц кч кџ кш ла лб лв лг лд лђ ле лж лз ли лј лк лл лљ лм лн лњ ло лп лр лс лт лћ лу лф лх лц лч лџ лш ља љб љв љг љд љђ ље љж љз љи љј љк љл љљ љм љн љњ љо љп љр љс љт љћ љу љф љх љц љч љџ љш ма мб мв мг мд мђ ме мж мз ми мј мк мл мљ мм мн мњ мо мп мр мс мт мћ му мф мх мц мч мџ мш на нб нв нг нд нђ не нж нз ни нј нк нл нљ нм нн нњ но нп нр нс нт нћ ну нф нх нц нч нџ нш ња њб њв њг њд њђ ње њж њз њи њј њк њл њљ њм њн њњ њо њп њр њс њт њћ њу њф њх њц њч њџ њш оа об ов ог од ођ ое ож оз ои ој ок ол ољ ом он оњ оо оп ор ос от оћ оу оф ох оц оч оџ ош па пб пв пг пд пђ пе пж пз пи пј пк пл пљ пм пн пњ по пп пр пс пт пћ пу пф пх пц пч пџ пш ра рб рв рг рд рђ ре рж рз ри рј рк рл рљ рм рн рњ ро рп рр рс рт рћ ру рф рх рц рч рџ рш са сб св сг сд сђ се сж сз си сј ск сл сљ см сн сњ со сп ср сс ст сћ су сф сх сц сч сџ сш та тб тв тг тд тђ те тж тз ти тј тк тл тљ тм тн тњ то тп тр тс тт тћ ту тф тх тц тч тџ тш ћа ћб ћв ћг ћд ћђ ће ћж ћз ћи ћј ћк ћл ћљ ћм ћн ћњ ћо ћп ћр ћс ћт ћћ ћу ћф ћх ћц ћч ћџ ћш уа уб ув уг уд уђ уе уж уз уи уј ук ул уљ ум ун уњ уо уп ур ус ут ућ уу уф ух уц уч уџ уш фа фб фв фг фд фђ фе фж фз фи фј фк фл фљ фм фн фњ фо фп фр фс фт фћ фу фф фх фц фч фџ фш ха хб хв хг хд хђ хе хж хз хи хј хк хл хљ хм хн хњ хо хп хр хс хт хћ ху хф хх хц хч хџ хш ца цб цв цг цд цђ це цж цз ци цј цк цл цљ цм цн цњ цо цп цр цс цт цћ цу цф цх цц цч цџ цш ча чб чв чг чд чђ че чж чз чи чј чк чл чљ чм чн чњ чо чп чр чс чт чћ чу чф чх чц чч чџ чш џа џб џв џг џд џђ џе џж џз џи џј џк џл џљ џм џн џњ џо џп џр џс џт џћ џу џф џх џц џч џџ џш ша шб шв шг шд шђ ше шж шз ши шј шк шл шљ шм шн шњ шо шп шр шс шт шћ шу шф шх шц шч шџ шш",
|
||||
"cite_references_link_many_sep": " ",
|
||||
"cite_references_link_many_and": " "
|
||||
"cite_references_link_many_and": " ",
|
||||
"cite_section_preview_references": "Преглед референци"
|
||||
}
|
||||
|
|
|
@ -11,5 +11,6 @@
|
|||
"cite-tracking-category-cite-error": "صفحات مع حوالہ جاتی اغلاط",
|
||||
"cite-tracking-category-cite-error-desc": "اس زمرہ میں موجود صفحات میں حوالہ جاتی ٹیگز کو غلط استعمال کیا گیا ہے۔",
|
||||
"cite_references_link_accessibility_label": "اوپر جائیں",
|
||||
"cite_references_link_many_accessibility_label": "اس تک اوپر جائیں:"
|
||||
"cite_references_link_many_accessibility_label": "اس تک اوپر جائیں:",
|
||||
"cite_section_preview_references": "حوالہ جات کی نمائش"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Wikicology"
|
||||
]
|
||||
},
|
||||
"cite_error": "Àṣìṣe"
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Amara-Amaziɣ"
|
||||
]
|
||||
},
|
||||
"cite_error": "ⵜⴰⵣⴳⵍⵜ ⵏ ⵓⴱⴷⴰⵔ: $1"
|
||||
}
|
|
@ -7,7 +7,8 @@
|
|||
"Philip",
|
||||
"乌拉跨氪",
|
||||
"Cwlin0416",
|
||||
"Bowleerin"
|
||||
"Bowleerin",
|
||||
"Waihorace"
|
||||
]
|
||||
},
|
||||
"cite-desc": "支援 <nowiki><ref[ name=id]></nowiki> 與 <nowiki><references/></nowiki> 標籤,可用來註明參考文獻",
|
||||
|
@ -32,5 +33,6 @@
|
|||
"cite-tracking-category-cite-error-desc": "在此分類內的頁面在參考來源的使用上有錯誤。",
|
||||
"cite_references_link_accessibility_label": "移至",
|
||||
"cite_references_link_many_accessibility_label": "移至:",
|
||||
"cite_section_preview_references": "預覽參考文獻",
|
||||
"cite_warning": "引用警告:$1"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
<?php
|
||||
/**
|
||||
* Expose reference information for a page via prop=references API.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* @file
|
||||
* @see https://www.mediawiki.org/wiki/Extension:Cite#API
|
||||
*/
|
||||
|
||||
class ApiQueryReferences extends ApiQueryBase {
|
||||
|
||||
public function __construct( $query, $moduleName ) {
|
||||
parent::__construct( $query, $moduleName, 'rf' );
|
||||
}
|
||||
|
||||
public function getAllowedParams() {
|
||||
return [
|
||||
'continue' => [
|
||||
ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function execute() {
|
||||
$config = ConfigFactory::getDefaultInstance()->makeConfig( 'cite' );
|
||||
if ( !$config->get( 'CiteStoreReferencesData' ) ) {
|
||||
$this->dieUsage( 'Cite extension reference storage is not enabled', 'citestoragedisabled' );
|
||||
}
|
||||
$params = $this->extractRequestParams();
|
||||
$titles = $this->getPageSet()->getGoodTitles();
|
||||
ksort( $titles );
|
||||
if ( !is_null( $params['continue'] ) ) {
|
||||
$startId = (int)$params['continue'];
|
||||
// check it is definitely an int
|
||||
$this->dieContinueUsageIf( strval( $startId ) !== $params['continue'] );
|
||||
} else {
|
||||
$startId = false;
|
||||
}
|
||||
|
||||
foreach ( $titles as $pageId => $title ) {
|
||||
// Skip until you have the correct starting point
|
||||
if ( $startId !== false && $startId !== $pageId ) {
|
||||
continue;
|
||||
} else {
|
||||
$startId = false;
|
||||
}
|
||||
$storedRefs = Cite::getStoredReferences( $title );
|
||||
$allReferences = [];
|
||||
// some pages may not have references stored
|
||||
if ( $storedRefs !== false ) {
|
||||
// a page can have multiple <references> tags but they all have unique keys
|
||||
foreach ( $storedRefs['refs'] as $index => $grouping ) {
|
||||
foreach ( $grouping as $group => $members ) {
|
||||
foreach ( $members as $name => $ref ) {
|
||||
$ref['name'] = $name;
|
||||
$key = $ref['key'];
|
||||
if ( is_string( $name ) ) {
|
||||
$id = Cite::getReferencesKey( $name . '-' . $key );
|
||||
} else {
|
||||
$id = Cite::getReferencesKey( $key );
|
||||
}
|
||||
$ref['group'] = $group;
|
||||
$ref['reflist'] = $index;
|
||||
$allReferences[$id] = $ref;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// set some metadata since its an assoc data structure
|
||||
ApiResult::setArrayType( $allReferences, 'kvp', 'id' );
|
||||
// Ship a data representation of the combined references.
|
||||
$fit = $this->addPageSubItems( $pageId, $allReferences );
|
||||
if ( !$fit ) {
|
||||
$this->setContinueEnumParameter( 'continue', $pageId );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getCacheMode( $params ) {
|
||||
return 'public';
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ApiBase::getExamplesMessages()
|
||||
*/
|
||||
protected function getExamplesMessages() {
|
||||
return [
|
||||
'action=query&prop=references&titles=Albert%20Einstein' =>
|
||||
'apihelp-query+references-example-1',
|
||||
];
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* ResourceLoaderFileModule for adding the content language Cite CSS
|
||||
*
|
||||
* @file
|
||||
* @ingroup Extensions
|
||||
* @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
|
||||
*/
|
||||
|
||||
class CiteCSSFileModule extends ResourceLoaderFileModule {
|
||||
public function __construct(
|
||||
$options = [],
|
||||
$localBasePath = null,
|
||||
$remoteBasePath = null
|
||||
) {
|
||||
global $wgContLang;
|
||||
|
||||
parent::__construct( $options, $localBasePath, $remoteBasePath );
|
||||
|
||||
// Get the content language code, and all the fallbacks. The first that
|
||||
// has a ext.cite.style.<lang code>.css file present will be used.
|
||||
$langCodes = array_merge( [ $wgContLang->getCode() ],
|
||||
$wgContLang->getFallbackLanguages() );
|
||||
foreach ( $langCodes as $lang ) {
|
||||
$langStyleFile = 'ext.cite.style.' . $lang . '.css';
|
||||
$localPath = $this->getLocalPath( $langStyleFile );
|
||||
if ( file_exists( $localPath ) ) {
|
||||
$this->styles[] = $langStyleFile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
/**
|
||||
* Resource loader module providing extra data from the server to Cite.
|
||||
*
|
||||
* Temporary hack for T93800
|
||||
*
|
||||
* @file
|
||||
* @ingroup Extensions
|
||||
* @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
|
||||
* @license The MIT License (MIT); see MIT-LICENSE.txt
|
||||
*/
|
||||
|
||||
class CiteDataModule extends ResourceLoaderModule {
|
||||
|
||||
/* Protected Members */
|
||||
|
||||
protected $origin = self::ORIGIN_USER_SITEWIDE;
|
||||
protected $targets = [ 'desktop', 'mobile' ];
|
||||
|
||||
/* Methods */
|
||||
|
||||
public function getScript( ResourceLoaderContext $context ) {
|
||||
$citationDefinition = json_decode(
|
||||
$context->msg( 'cite-tool-definition.json' )
|
||||
->inContentLanguage()
|
||||
->plain()
|
||||
);
|
||||
|
||||
if ( $citationDefinition === null ) {
|
||||
$citationDefinition = json_decode(
|
||||
$context->msg( 'visualeditor-cite-tool-definition.json' )
|
||||
->inContentLanguage()
|
||||
->plain()
|
||||
);
|
||||
}
|
||||
|
||||
$citationTools = [];
|
||||
if ( is_array( $citationDefinition ) ) {
|
||||
foreach ( $citationDefinition as $tool ) {
|
||||
if ( !isset( $tool->title ) ) {
|
||||
$tool->title = $context->msg( 'visualeditor-cite-tool-name-' . $tool->name )
|
||||
->text();
|
||||
}
|
||||
$citationTools[] = $tool;
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
've.init.platform.addMessages(' . FormatJson::encode(
|
||||
[
|
||||
'cite-tool-definition.json' => json_encode( $citationTools )
|
||||
],
|
||||
ResourceLoader::inDebugMode()
|
||||
) . ');';
|
||||
}
|
||||
|
||||
public function getDependencies( ResourceLoaderContext $context = null ) {
|
||||
return [
|
||||
'ext.visualEditor.base',
|
||||
'ext.visualEditor.mediawiki',
|
||||
];
|
||||
}
|
||||
|
||||
public function getDefinitionSummary( ResourceLoaderContext $context ) {
|
||||
$summary = parent::getDefinitionSummary( $context );
|
||||
$summary[] = [
|
||||
'script' => $this->getScript( $context ),
|
||||
];
|
||||
return $summary;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,258 @@
|
|||
<?php
|
||||
/**
|
||||
* Cite extension hooks
|
||||
*
|
||||
* @file
|
||||
* @ingroup Extensions
|
||||
* @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt
|
||||
* @license The MIT License (MIT); see MIT-LICENSE.txt
|
||||
*/
|
||||
|
||||
class CiteHooks {
|
||||
/**
|
||||
* Convert the content model of a message that is actually JSON to JSON. This
|
||||
* only affects validation and UI when saving and editing, not loading the
|
||||
* content.
|
||||
*
|
||||
* @param Title $title
|
||||
* @param string $model
|
||||
* @return bool
|
||||
*/
|
||||
public static function onContentHandlerDefaultModelFor( Title $title, &$model ) {
|
||||
if (
|
||||
$title->inNamespace( NS_MEDIAWIKI ) &&
|
||||
(
|
||||
$title->getText() == 'Visualeditor-cite-tool-definition.json' ||
|
||||
$title->getText() == 'Cite-tool-definition.json'
|
||||
)
|
||||
) {
|
||||
$model = CONTENT_MODEL_JSON;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Conditionally register the unit testing module for the ext.cite.visualEditor module
|
||||
* only if that module is loaded
|
||||
*
|
||||
* @param array $testModules The array of registered test modules
|
||||
* @param ResourceLoader $resourceLoader The reference to the resource loader
|
||||
* @return true
|
||||
*/
|
||||
public static function onResourceLoaderTestModules(
|
||||
array &$testModules,
|
||||
ResourceLoader &$resourceLoader
|
||||
) {
|
||||
$resourceModules = $resourceLoader->getConfig()->get( 'ResourceModules' );
|
||||
|
||||
if (
|
||||
isset( $resourceModules[ 'ext.visualEditor.mediawiki' ] ) ||
|
||||
$resourceLoader->isModuleRegistered( 'ext.visualEditor.mediawiki' )
|
||||
) {
|
||||
$testModules['qunit']['ext.cite.visualEditor.test'] = [
|
||||
'scripts' => [
|
||||
'modules/ve-cite/tests/ve.dm.citeExample.js',
|
||||
'modules/ve-cite/tests/ve.dm.Converter.test.js',
|
||||
'modules/ve-cite/tests/ve.dm.InternalList.test.js',
|
||||
'modules/ve-cite/tests/ve.dm.Transaction.test.js',
|
||||
],
|
||||
'dependencies' => [
|
||||
'ext.cite.visualEditor',
|
||||
'ext.visualEditor.test'
|
||||
],
|
||||
'localBasePath' => dirname( __DIR__ ),
|
||||
'remoteExtPath' => 'Cite',
|
||||
];
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Conditionally register resource loader modules that depends on the
|
||||
* VisualEditor MediaWiki extension.
|
||||
*
|
||||
* @param $resourceLoader
|
||||
* @return true
|
||||
*/
|
||||
public static function onResourceLoaderRegisterModules( &$resourceLoader ) {
|
||||
|
||||
if ( ! class_exists( 'VisualEditorHooks' ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$dir = dirname( __DIR__ ) . DIRECTORY_SEPARATOR;
|
||||
|
||||
$resourceLoader->register( "ext.cite.visualEditor.core", [
|
||||
'localBasePath' => $dir . 'modules',
|
||||
'remoteExtPath' => 'Cite/modules',
|
||||
"scripts" => [
|
||||
"ve-cite/ve.dm.MWReferenceModel.js",
|
||||
"ve-cite/ve.dm.MWReferencesListNode.js",
|
||||
"ve-cite/ve.dm.MWReferenceNode.js",
|
||||
"ve-cite/ve.ce.MWReferencesListNode.js",
|
||||
"ve-cite/ve.ce.MWReferenceNode.js",
|
||||
"ve-cite/ve.ui.MWReferencesListCommand.js"
|
||||
],
|
||||
"styles" => [
|
||||
"ve-cite/ve.ce.MWReferencesListNode.css",
|
||||
"ve-cite/ve.ce.MWReferenceNode.css"
|
||||
],
|
||||
"dependencies" => [
|
||||
"ext.visualEditor.mwcore"
|
||||
],
|
||||
"messages" => [
|
||||
"cite-ve-referenceslist-isempty",
|
||||
"cite-ve-referenceslist-isempty-default",
|
||||
"cite-ve-referenceslist-missingref"
|
||||
],
|
||||
"targets" => [
|
||||
"desktop",
|
||||
"mobile"
|
||||
]
|
||||
] );
|
||||
|
||||
$resourceLoader->register( "ext.cite.visualEditor.data",
|
||||
[ "class" => "CiteDataModule" ] );
|
||||
|
||||
$resourceLoader->register( "ext.cite.visualEditor", [
|
||||
'localBasePath' => $dir . 'modules',
|
||||
'remoteExtPath' => 'Cite/modules',
|
||||
"scripts" => [
|
||||
"ve-cite/ve.ui.MWReferenceGroupInputWidget.js",
|
||||
"ve-cite/ve.ui.MWReferenceSearchWidget.js",
|
||||
"ve-cite/ve.ui.MWReferenceResultWidget.js",
|
||||
"ve-cite/ve.ui.MWUseExistingReferenceCommand.js",
|
||||
"ve-cite/ve.ui.MWCitationDialog.js",
|
||||
"ve-cite/ve.ui.MWReferencesListDialog.js",
|
||||
"ve-cite/ve.ui.MWReferenceDialog.js",
|
||||
"ve-cite/ve.ui.MWReferenceDialogTool.js",
|
||||
"ve-cite/ve.ui.MWCitationDialogTool.js",
|
||||
"ve-cite/ve.ui.MWReferenceContextItem.js",
|
||||
"ve-cite/ve.ui.MWReferencesListContextItem.js",
|
||||
"ve-cite/ve.ui.MWCitationContextItem.js",
|
||||
"ve-cite/ve.ui.MWCitationAction.js",
|
||||
"ve-cite/ve.ui.MWReference.init.js"
|
||||
],
|
||||
"styles" => [
|
||||
"ve-cite/ve.ui.MWReferenceContextItem.css",
|
||||
"ve-cite/ve.ui.MWReferenceGroupInputWidget.css",
|
||||
"ve-cite/ve.ui.MWReferenceIcons.css",
|
||||
"ve-cite/ve.ui.MWReferenceResultWidget.css",
|
||||
"ve-cite/ve.ui.MWReferenceSearchWidget.css"
|
||||
],
|
||||
"dependencies" => [
|
||||
"ext.cite.visualEditor.core",
|
||||
"ext.cite.visualEditor.data",
|
||||
"ext.cite.style",
|
||||
"ext.visualEditor.mwtransclusion",
|
||||
"ext.visualEditor.mediawiki"
|
||||
],
|
||||
"messages" => [
|
||||
"cite-ve-dialog-reference-editing-reused",
|
||||
"cite-ve-dialog-reference-options-group-label",
|
||||
"cite-ve-dialog-reference-options-group-placeholder",
|
||||
"cite-ve-dialog-reference-options-name-label",
|
||||
"cite-ve-dialog-reference-options-section",
|
||||
"cite-ve-dialog-reference-title",
|
||||
"cite-ve-dialog-reference-useexisting-full-label",
|
||||
"cite-ve-dialog-reference-useexisting-label",
|
||||
"cite-ve-dialog-reference-useexisting-tool",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-general",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named",
|
||||
"cite-ve-dialog-referenceslist-title",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text",
|
||||
"cite-ve-dialogbutton-reference-full-label",
|
||||
"cite-ve-dialogbutton-reference-tooltip",
|
||||
"cite-ve-dialogbutton-reference-title",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip",
|
||||
"cite-ve-reference-input-placeholder",
|
||||
"cite-ve-toolbar-group-label",
|
||||
"cite-ve-othergroup-item"
|
||||
],
|
||||
"targets" => [
|
||||
"desktop",
|
||||
"mobile"
|
||||
]
|
||||
] );
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for LinksUpdate hook
|
||||
* Post-output processing of references property, for proper db storage
|
||||
* Deferred to avoid performance overhead when outputting the page
|
||||
*
|
||||
* @param LinksUpdate $linksUpdate
|
||||
*/
|
||||
public static function onLinksUpdate( LinksUpdate &$linksUpdate ) {
|
||||
global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
|
||||
if ( !$wgCiteStoreReferencesData ) {
|
||||
return;
|
||||
}
|
||||
$refData = $linksUpdate->getParserOutput()->getExtensionData( Cite::EXT_DATA_KEY );
|
||||
if ( $refData === null ) {
|
||||
return;
|
||||
}
|
||||
if ( $wgCiteCacheRawReferencesOnParse ) {
|
||||
// caching
|
||||
$cache = ObjectCache::getMainWANInstance();
|
||||
$articleID = $linksUpdate->getTitle()->getArticleID();
|
||||
$key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
|
||||
$cache->set( $key, $refData, Cite::CACHE_DURATION_ONPARSE );
|
||||
}
|
||||
// JSON encode
|
||||
$ppValue = FormatJson::encode( $refData, false, FormatJson::ALL_OK );
|
||||
// GZIP encode references data at maximum compression
|
||||
$ppValue = gzencode( $ppValue, 9 );
|
||||
// split the string in smaller parts that can fit into a db blob
|
||||
$ppValues = str_split( $ppValue, Cite::MAX_STORAGE_LENGTH );
|
||||
foreach ( $ppValues as $num => $ppValue ) {
|
||||
$key = 'references-' . intval( $num + 1 );
|
||||
$linksUpdate->mProperties[$key] = $ppValue;
|
||||
}
|
||||
$linksUpdate->getParserOutput()->setExtensionData( Cite::EXT_DATA_KEY, null );
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for LinksUpdateComplete hook
|
||||
* If $wgCiteCacheRawReferencesOnParse is set to false, purges the cache
|
||||
* when references are modified
|
||||
*
|
||||
* @param LinksUpdate $linksUpdate
|
||||
*/
|
||||
public static function onLinksUpdateComplete( LinksUpdate &$linksUpdate ) {
|
||||
global $wgCiteStoreReferencesData, $wgCiteCacheRawReferencesOnParse;
|
||||
if ( !$wgCiteStoreReferencesData || $wgCiteCacheRawReferencesOnParse ) {
|
||||
return;
|
||||
}
|
||||
// if we can, avoid clearing the cache when references were not changed
|
||||
if ( method_exists( $linksUpdate, 'getAddedProperties' )
|
||||
&& method_exists( $linksUpdate, 'getRemovedProperties' )
|
||||
) {
|
||||
$addedProps = $linksUpdate->getAddedProperties();
|
||||
$removedProps = $linksUpdate->getRemovedProperties();
|
||||
if ( !isset( $addedProps['references-1'] )
|
||||
&& !isset( $removedProps['references-1'] )
|
||||
) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
$cache = ObjectCache::getMainWANInstance();
|
||||
$articleID = $linksUpdate->getTitle()->getArticleID();
|
||||
$key = $cache->makeKey( Cite::EXT_DATA_KEY, $articleID );
|
||||
// delete with reduced hold off period (LinksUpdate uses a master connection)
|
||||
$cache->delete( $key, WANObjectCache::MAX_COMMIT_DELAY );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds extra variables to the global config
|
||||
*/
|
||||
public static function onResourceLoaderGetConfigVars( array &$vars ) {
|
||||
$config = ConfigFactory::getDefaultInstance()->makeConfig( 'cite' );
|
||||
$vars['wgCiteVisualEditorOtherGroup'] = $config->get( 'CiteVisualEditorOtherGroup' );
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -3,14 +3,16 @@
|
|||
* and https://en.wikipedia.org/w/index.php?oldid=572888139#Scrolling_past_the_bottom_of_the_page...
|
||||
*/
|
||||
.cite-accessibility-label {
|
||||
position: absolute !important;
|
||||
/* Workaround a Webkit/Blink bug about positioning within columns as many wikis format references with several columns */
|
||||
top: -99999px;
|
||||
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */
|
||||
clip: rect( 1px, 1px, 1px, 1px );
|
||||
/* stylelint-disable declaration-no-important */
|
||||
position: absolute !important;
|
||||
padding: 0 !important;
|
||||
border: 0 !important;
|
||||
height: 1px !important;
|
||||
width: 1px !important;
|
||||
/* stylelint-enable declaration-no-important */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
|
|
@ -10,40 +10,42 @@ span.mw-ref {
|
|||
}
|
||||
|
||||
/* With a group set */
|
||||
span.mw-ref a[data-mw-group]::after {
|
||||
content: "[" attr(data-mw-group) " " counter(mw-Ref, decimal) "]"}
|
||||
span.mw-ref a[data-mw-group]:after {
|
||||
content: '[' attr( data-mw-group ) ' ' counter( mw-Ref, decimal ) ']';
|
||||
}
|
||||
|
||||
/* Groups with special appearance */
|
||||
span.mw-ref a[data-mw-group="decimal"]::after {
|
||||
content: "[" counter(mw-Ref, decimal) "]";
|
||||
span.mw-ref a[data-mw-group='decimal']:after {
|
||||
content: '[' counter( mw-Ref, decimal ) ']';
|
||||
}
|
||||
span.mw-ref a[data-mw-group="lower-alpha"]::after {
|
||||
content: "[" counter(mw-Ref, lower-alpha) "]";
|
||||
span.mw-ref a[data-mw-group='lower-alpha']:after {
|
||||
content: '[' counter( mw-Ref, lower-alpha ) ']';
|
||||
}
|
||||
span.mw-ref a[data-mw-group="upper-alpha"]::after {
|
||||
content: "[" counter(mw-Ref, upper-alpha) "]";
|
||||
span.mw-ref a[data-mw-group='upper-alpha']:after {
|
||||
content: '[' counter( mw-Ref, upper-alpha ) ']';
|
||||
}
|
||||
span.mw-ref a[data-mw-group="lower-greek"]::after {
|
||||
content: "[" counter(mw-Ref, lower-greek) "]";
|
||||
span.mw-ref a[data-mw-group='lower-greek']:after {
|
||||
content: '[' counter( mw-Ref, lower-greek ) ']';
|
||||
}
|
||||
span.mw-ref a[data-mw-group="lower-roman"]::after {
|
||||
content: "[" counter(mw-Ref, lower-roman) "]";
|
||||
span.mw-ref a[data-mw-group='lower-roman']:after {
|
||||
content: '[' counter( mw-Ref, lower-roman ) ']';
|
||||
}
|
||||
span.mw-ref a[data-mw-group="upper-roman"]::after {
|
||||
content: "[" counter(mw-Ref, upper-roman) "]";
|
||||
span.mw-ref a[data-mw-group='upper-roman']:after {
|
||||
content: '[' counter( mw-Ref, upper-roman ) ']';
|
||||
}
|
||||
span.mw-ref a[data-mw-group="error-test"]::after {
|
||||
content: "[" counter(mw-Ref, symbols(cyclic "first" "second" "last!")) "]";
|
||||
span.mw-ref a[data-mw-group='error-test']:after {
|
||||
content: '[' counter( mw-Ref, symbols( cyclic 'first' 'second' 'last!' ) ) ']';
|
||||
}
|
||||
|
||||
/* Without a group */
|
||||
span.mw-ref a::after {
|
||||
content: "[" counter(mw-Ref, decimal) "]";
|
||||
span.mw-ref a:after {
|
||||
content: '[' counter( mw-Ref, decimal ) ']';
|
||||
}
|
||||
|
||||
/* Hide the default rendering in browsers that support content
|
||||
* generation by selecting for ::after pseudo-element.*/
|
||||
x-thereisnoelementwiththisname::after, span.mw-reflink-text {
|
||||
* generation by selecting for :after pseudo-element.*/
|
||||
x-thereisnoelementwiththisname:after,
|
||||
span.mw-reflink-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -56,28 +58,29 @@ ol.mw-references li {
|
|||
counter-increment: mw-ref-linkback;
|
||||
}
|
||||
|
||||
[rel="mw:referencedBy"] {
|
||||
[rel='mw:referencedBy'] {
|
||||
counter-reset: mw-ref-linkback -1;
|
||||
}
|
||||
|
||||
[rel="mw:referencedBy"]::before {
|
||||
content: "↑ ";
|
||||
[rel='mw:referencedBy']:before {
|
||||
content: '↑ ';
|
||||
}
|
||||
|
||||
span[rel="mw:referencedBy"] a::before {
|
||||
span[rel='mw:referencedBy'] a:before {
|
||||
counter-increment: mw-ref-linkback;
|
||||
content: counters(mw-ref-linkback, ".", decimal);
|
||||
content: counters( mw-ref-linkback, '.', decimal );
|
||||
vertical-align: super;
|
||||
line-height: 1;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
span[rel="mw:referencedBy"] a::after {
|
||||
content: " ";
|
||||
span[rel='mw:referencedBy'] a:after {
|
||||
content: ' ';
|
||||
}
|
||||
|
||||
/* Hide the default rendering in browsers that support content
|
||||
* generation by selecting for ::after pseudo-element.*/
|
||||
x-thereisnoelementwiththisname[rel="mw:referencedBy"]::before, span.mw-linkback-text {
|
||||
* generation by selecting for :after pseudo-element.*/
|
||||
x-thereisnoelementwiththisname[rel='mw:referencedBy']:before,
|
||||
span.mw-linkback-text {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
/* Farsi Cite CSS */
|
||||
/* <ref>s with a group */
|
||||
span.mw-ref a[data-mw-group]::after {
|
||||
content: "[" attr(data-mw-group) " " counter(mw-Ref, persian) "]";
|
||||
span.mw-ref a[data-mw-group]:after {
|
||||
content: '[' attr( data-mw-group ) ' ' counter( mw-Ref, persian ) ']';
|
||||
}
|
||||
|
||||
/* <ref>s without a group */
|
||||
span.mw-ref a::after {
|
||||
content: "[" counter(mw-Ref, persian) "]";
|
||||
span.mw-ref a:after {
|
||||
content: '[' counter( mw-Ref, persian ) ']';
|
||||
}
|
||||
|
||||
/* Linkbacks from <references> to <ref>s */
|
||||
span[rel="mw:referencedBy"] a::before {
|
||||
content: counters(mw-ref-linkback, "٫", persian);
|
||||
span[rel='mw:referencedBy'] a:before {
|
||||
content: counters( mw-ref-linkback, '٫', persian );
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ sup.reference {
|
|||
ol.references li:target,
|
||||
sup.reference:target {
|
||||
background-color: #def; /* fallback */
|
||||
background-color: rgba(0, 127, 255, 0.133);
|
||||
background-color: rgba( 0, 127, 255, 0.133 );
|
||||
}
|
||||
|
||||
/* Make cite errors "strong" */
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia",
|
||||
"rules": {
|
||||
"no-browser-hacks": [ true, {
|
||||
"browsers": [ ">5%", "Chrome >= 1", "Firefox >= 15", "Explorer >= 9", "Edge >= 1", "iOS >= 7", "Opera >= 12", "Safari >= 7", "ExplorerMobile >= 10", "Android >= 3", "not BlackBerry >= 1", "ChromeAndroid >= 1", "FirefoxAndroid >= 1", "OperaMobile >= 12", "not OperaMini >= 1" ]
|
||||
} ],
|
||||
|
||||
"no-unsupported-browser-features": [ true, {
|
||||
"browsers": [ ">5%", "Chrome >= 1", "Firefox >= 15", "Explorer >= 9", "Edge >= 12", "iOS >= 7", "Opera >= 12", "Safari >= 7", "ExplorerMobile >= 10", "Android >= 4", "not BlackBerry >= 1", "ChromeAndroid >= 1", "FirefoxAndroid >= 1", "OperaMobile >= 12", "not OperaMini >= 1" ]
|
||||
} ],
|
||||
}
|
||||
}
|
|
@ -48,5 +48,6 @@
|
|||
"cite-ve-referenceslist-isempty": "ما من مراجع من المجموعة \"$1\" في هذه الصفحة لتضمينها في هذه القائمة.",
|
||||
"cite-ve-referenceslist-isempty-default": "ما من مراجع على هذه الصفحة لتضمينها في هذه القائمة.",
|
||||
"cite-ve-referenceslist-missingref": "هذا المرجع موجود في قالب أو نحوه ولا يمكن تعديله حاليا إلا من المصدر.",
|
||||
"cite-ve-toolbar-group-label": "مرجع"
|
||||
"cite-ve-toolbar-group-label": "مرجع",
|
||||
"cite-ve-othergroup-item": "استشهاد $1"
|
||||
}
|
||||
|
|
|
@ -7,10 +7,12 @@
|
|||
"McDutchie"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "nulu",
|
||||
"visualeditor-cite-tool-name-book": "Llibru",
|
||||
"visualeditor-cite-tool-name-journal": "Revista",
|
||||
"visualeditor-cite-tool-name-news": "Noticies",
|
||||
"visualeditor-cite-tool-name-web": "Sitiu web",
|
||||
"cite-tool-definition.json": "nulu",
|
||||
"cite-ve-dialog-reference-editing-reused": "Esta referencia úsase $1 {{PLURAL:$1|vez|veces}} nesta páxina.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Usar esti grupu",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Referencies xenerales",
|
||||
|
@ -23,15 +25,16 @@
|
|||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Llista de referencies xenerales",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Llista de referencies del grupu «$1»",
|
||||
"cite-ve-dialog-referenceslist-title": "Llista de referencies",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Cites",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Ameyora'l conteníu amestando fontes d'información. Puede citase de llibros, periódicos y páxines web.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Cites",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Formulariu básicu",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Básica",
|
||||
"cite-ve-dialogbutton-reference-title": "Referencia",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Básica",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Llista de referencies",
|
||||
"cite-ve-reference-input-placeholder": "Guetar nes cites actuales",
|
||||
"cite-ve-referenceslist-isempty": "Nun hai referencies col grupu \"$1\" nesta páxina pa incluir nesta llista.",
|
||||
"cite-ve-referenceslist-isempty-default": "Nun hai referencies nesta páxina pa incluir nesta llista.",
|
||||
"cite-ve-referenceslist-missingref": "Esta referencia ta definida nuna plantía o n'otru bloque xeneráu, y de momentu namái pue editase'n mou fonte.",
|
||||
"cite-ve-toolbar-group-label": "Citar"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "Citar",
|
||||
"cite-ve-othergroup-item": "referencia $1"
|
||||
}
|
||||
|
|
|
@ -12,12 +12,30 @@
|
|||
"Vodnokon4e"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "null",
|
||||
"visualeditor-cite-tool-name-book": "Книга",
|
||||
"visualeditor-cite-tool-name-journal": "Списание",
|
||||
"visualeditor-cite-tool-name-news": "Новини",
|
||||
"visualeditor-cite-tool-name-web": "Уебсайт",
|
||||
"cite-tool-definition.json": "null",
|
||||
"cite-ve-dialog-reference-editing-reused": "Тази препратка се използва на страницата $1 {{PLURAL:$1|пъти}}.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Използвайте тази група",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Общи препратки",
|
||||
"cite-ve-dialog-reference-options-name-label": "Повторно използване с това име",
|
||||
"cite-ve-dialog-reference-options-section": "Настройки",
|
||||
"cite-ve-dialog-reference-title": "Източник",
|
||||
"cite-ve-dialog-reference-useexisting-full-label": "Повторно използване на цитиране, което вече съществува на страницата",
|
||||
"cite-ve-dialog-reference-useexisting-label": "Използване на съществуващ източник",
|
||||
"cite-ve-dialog-reference-useexisting-tool": "Повторно използване",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Списък на общи препратки",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Списък на препратки от група \"$1\"",
|
||||
"cite-ve-dialog-referenceslist-title": "Списък с източници",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Подобрява съдържанието, добавяйки списък с източници на информация. Може да цитирате книги, вестници и уебсайтове.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Цитати",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Източник",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Основна форма",
|
||||
"cite-ve-dialogbutton-reference-title": "Източник",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Списък с източници"
|
||||
}
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Източник",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Списък с източници",
|
||||
"cite-ve-reference-input-placeholder": "Търсене в текущите цитирания",
|
||||
"cite-ve-toolbar-group-label": "Цитиране"
|
||||
}
|
||||
|
|
|
@ -14,10 +14,12 @@
|
|||
"NahidSultan"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "কিছু না",
|
||||
"visualeditor-cite-tool-name-book": "বই",
|
||||
"visualeditor-cite-tool-name-journal": "সাময়িকী",
|
||||
"visualeditor-cite-tool-name-news": "সংবাদ",
|
||||
"visualeditor-cite-tool-name-web": "ওয়েবসাইট",
|
||||
"cite-tool-definition.json": "কিছু না",
|
||||
"cite-ve-dialog-reference-editing-reused": "এই তথ্যসূত্রটি এই পাতায় $1 {{PLURAL:$1|বার}} ব্যবহৃত হয়েছে।",
|
||||
"cite-ve-dialog-reference-options-group-label": "এই দল ব্যবহার করো",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "সাধারণ তথ্যসূত্র",
|
||||
|
@ -40,5 +42,6 @@
|
|||
"cite-ve-referenceslist-isempty": "এই পাতাতে \"$1\" দলের জন্য কোন তথ্যসূত্র নেই।",
|
||||
"cite-ve-referenceslist-isempty-default": "এই তালিকায় যোগ করার জন্য এই পৃষ্ঠায় কোন তথ্যসূত্র নেই।",
|
||||
"cite-ve-referenceslist-missingref": "এই তথ্যটি একটি টেমপ্লেট বা অন্যান্য উত্পন্ন ব্লক হিসেবে সংজ্ঞায়িত করা হয় এবং এখনকার জন্য এটি শুধুমাত্র উৎস মোডে সম্পাদনা করা যাবে।",
|
||||
"cite-ve-toolbar-group-label": "উদ্ধৃতি"
|
||||
"cite-ve-toolbar-group-label": "উদ্ধৃতি",
|
||||
"cite-ve-othergroup-item": "$1টি তথ্যসূত্র"
|
||||
}
|
||||
|
|
|
@ -23,15 +23,15 @@
|
|||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Spisak općih referenci",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Spisak referenci grupe \"$1\"",
|
||||
"cite-ve-dialog-referenceslist-title": "Spisak referenci",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Reference",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Poboljšava sadržaj članka dodavanjem izvora za informacije koje ste naveli. Možete referencirati knjige, novine i web-stranice.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Reference",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Osnovni oblik",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Osnovna",
|
||||
"cite-ve-dialogbutton-reference-title": "Referenca",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Osnovna",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Spisak referenci",
|
||||
"cite-ve-reference-input-placeholder": "Traži postojeće reference",
|
||||
"cite-ve-referenceslist-isempty": "Nema referenci u grupi \"$1\" na ovoj stranici.",
|
||||
"cite-ve-referenceslist-isempty-default": "Nema referenci na ovoj stranici koje bi mogle biti uključene u ovaj spisak.",
|
||||
"cite-ve-referenceslist-missingref": "Ova referenca je definirana u šablonu ili drugom generiranom bloku i sada se može uređivati jedino u izvornom modu.",
|
||||
"cite-ve-referenceslist-missingref": "Ova referenca definirana je u šablonu ili drugom generiranom dijelu i zasad se može uređivati jedino u uređivaču izvornog koda.",
|
||||
"cite-ve-toolbar-group-label": "Referenca"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,10 +6,12 @@
|
|||
"Исмаил Садуев"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "нуль",
|
||||
"visualeditor-cite-tool-name-book": "Жайна",
|
||||
"visualeditor-cite-tool-name-journal": "Тептар",
|
||||
"visualeditor-cite-tool-name-news": "Керланаш",
|
||||
"visualeditor-cite-tool-name-web": "Веб-сайт",
|
||||
"cite-tool-definition.json": "нуль",
|
||||
"cite-ve-dialog-reference-options-group-label": "Лелае хӀара тоба",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Юкъара хььажоргаш",
|
||||
"cite-ve-dialog-reference-options-name-label": "ХӀокху цӀарца юху лелае",
|
||||
|
@ -18,10 +20,10 @@
|
|||
"cite-ve-dialog-reference-useexisting-label": "Леладе долуш долу тIетовжар",
|
||||
"cite-ve-dialog-reference-useexisting-tool": "Юха лелор",
|
||||
"cite-ve-dialog-referenceslist-title": "Билгалдаккхаршан могӀам",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Цитаташ",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Дика йе хьайн контент хаамийн хьосташ тӀетоьхна. Хайн йиш ю цитаташ дало жайнаш тӀера, газеташ тӀера я веб-сайташ тӀера.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Цитаташ",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Коьрта",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Билгалдаккхаршан могӀам",
|
||||
"cite-ve-reference-input-placeholder": "Муьлхачунна тӀетовжа лаьа хьуна?",
|
||||
"cite-ve-toolbar-group-label": "Белгалдахарш"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,14 +4,20 @@
|
|||
"Calak",
|
||||
"Muhammed taha",
|
||||
"Serwan",
|
||||
"Pirehelokan"
|
||||
"Pirehelokan",
|
||||
"Sarchia"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-name-news": "هەواڵ",
|
||||
"cite-ve-dialog-reference-options-group-label": "ئەم گرووپە بەکاربھێنە",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "سەرچاوە گشتییەکان",
|
||||
"cite-ve-dialog-reference-options-section": "ھەڵبژاردەکان",
|
||||
"cite-ve-dialog-reference-title": "سەرچاوە",
|
||||
"cite-ve-dialog-reference-useexisting-label": "بەکارھێنانی سەرچاوەیەکی ئامادە",
|
||||
"cite-ve-dialog-reference-useexisting-tool": "بەکارھێنانەوە",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-general": "پێڕستی سەرچاوە گشتییەکان",
|
||||
"cite-ve-dialog-referenceslist-title": "پێرستی سەرچاوە",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "سەرەکی",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "پێرستی سەرچاوەکان"
|
||||
}
|
||||
"cite-ve-dialogbutton-reference-tooltip": "بنەڕەتی",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "پێرستی سەرچاوەکان",
|
||||
"cite-ve-toolbar-group-label": "ئاماژە"
|
||||
}
|
||||
|
|
|
@ -16,13 +16,16 @@
|
|||
"Vojtěch Dostál",
|
||||
"Aktron",
|
||||
"Cvanca",
|
||||
"Kusavica"
|
||||
"Kusavica",
|
||||
"Dvorapa"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "prázdný",
|
||||
"visualeditor-cite-tool-name-book": "Kniha",
|
||||
"visualeditor-cite-tool-name-journal": "Časopis",
|
||||
"visualeditor-cite-tool-name-news": "Časopis / noviny",
|
||||
"visualeditor-cite-tool-name-web": "Webová stránka",
|
||||
"cite-tool-definition.json": "prázdný",
|
||||
"cite-ve-dialog-reference-editing-reused": "Tato reference se na této stránce používá $1{{PLURAL:$1|krát}}.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Použít tuto skupinu",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Obecné reference",
|
||||
|
@ -45,5 +48,6 @@
|
|||
"cite-ve-referenceslist-isempty": "Na této stránce nejsou žádné reference se skupinou „$1“, které by se v tomto seznamu zobrazily.",
|
||||
"cite-ve-referenceslist-isempty-default": "Na této stránce nejsou žádné reference, které by se v tomto seznamu zobrazily.",
|
||||
"cite-ve-referenceslist-missingref": "Tato reference je definována v šabloně nebo jiné generované části textu a zatím ji lze editovat jen v režimu zdrojového textu.",
|
||||
"cite-ve-toolbar-group-label": "Citace"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "Citace",
|
||||
"cite-ve-othergroup-item": "$1 reference"
|
||||
}
|
||||
|
|
|
@ -15,10 +15,12 @@
|
|||
"Umherirrender"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "null",
|
||||
"visualeditor-cite-tool-name-book": "Buch",
|
||||
"visualeditor-cite-tool-name-journal": "Zeitschrift",
|
||||
"visualeditor-cite-tool-name-news": "Nachrichten",
|
||||
"visualeditor-cite-tool-name-web": "Website",
|
||||
"cite-tool-definition.json": "null",
|
||||
"cite-ve-dialog-reference-editing-reused": "Dieser Einzelnachweis wird auf dieser Seite {{PLURAL:$1|einmal|$1 Mal}} verwendet.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Diese Gruppe verwenden",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Allgemeine Einzelnachweise",
|
||||
|
@ -41,5 +43,6 @@
|
|||
"cite-ve-referenceslist-isempty": "Auf dieser Seite gibt es keine Einzelnachweise mit der Gruppe „$1“ zum Anzeigen in dieser Liste.",
|
||||
"cite-ve-referenceslist-isempty-default": "Auf dieser Seite gibt es keine Einzelnachweise zum Anzeigen in dieser Liste.",
|
||||
"cite-ve-referenceslist-missingref": "Dieser Einzelnachweis ist in einer Vorlage oder einem anderen erzeugten Block definiert und kann derzeit nur im Quelltextmodus bearbeitet werden.",
|
||||
"cite-ve-toolbar-group-label": "Zitat"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "Zitat",
|
||||
"cite-ve-othergroup-item": "$1-Einzelnachweis"
|
||||
}
|
||||
|
|
|
@ -6,21 +6,32 @@
|
|||
"Kghbln",
|
||||
"Marmase",
|
||||
"Mirzali",
|
||||
"Se4598"
|
||||
"Se4598",
|
||||
"Kumkumuk"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "veng",
|
||||
"visualeditor-cite-tool-name-book": "Kıtab",
|
||||
"visualeditor-cite-tool-name-journal": "Pêseroke",
|
||||
"visualeditor-cite-tool-name-news": "Qezeta",
|
||||
"visualeditor-cite-tool-name-news": "Xeberi",
|
||||
"visualeditor-cite-tool-name-web": "Websita",
|
||||
"cite-tool-definition.json": "veng",
|
||||
"cite-ve-dialog-reference-editing-reused": "Ena referans $1 {{PLURAL:$1|veror}} rna perer dı karıya ya.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Na gruber bıkarn",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Referansê bıngey",
|
||||
"cite-ve-dialog-reference-options-name-label": "Ney nami fına bıkarne",
|
||||
"cite-ve-dialog-reference-options-section": "Weçinegi",
|
||||
"cite-ve-dialog-reference-title": "Referans",
|
||||
"cite-ve-dialog-reference-useexisting-full-label": "Fınankarıyayış ena perer sero xora esten yew grotek o.",
|
||||
"cite-ve-dialog-reference-useexisting-label": "Zu referansa mewcud bıkarne",
|
||||
"cite-ve-dialog-reference-useexisting-tool": "Fına bıkarn",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Listay umumi referansa",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Qandé listay mıreceti gruba \"$1\"",
|
||||
"cite-ve-dialog-referenceslist-title": "Listeya referansan",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Groteki",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Formo bıngehın",
|
||||
"cite-ve-dialogbutton-reference-title": "Referans",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Referans",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Listeya referansan",
|
||||
"cite-ve-reference-input-placeholder": "Qanci referansi şıma qalıyé bıkarné?"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,15 +2,16 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"रमेश सिंह बोहरा",
|
||||
"जनक राज भट्ट"
|
||||
"जनक राज भट्ट",
|
||||
"राम प्रसाद जोशी"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-name-book": "पुस्तकहरू",
|
||||
"visualeditor-cite-tool-name-journal": "पत्रिका",
|
||||
"visualeditor-cite-tool-name-news": "रैबार",
|
||||
"visualeditor-cite-tool-name-web": "वेबसाइट",
|
||||
"cite-ve-dialog-reference-options-section": "विकल्पहरु",
|
||||
"cite-ve-dialog-reference-options-section": "विकल्पहरू",
|
||||
"cite-ve-dialog-reference-title": "सन्दर्भ सामग्रीहरू",
|
||||
"cite-ve-dialog-reference-useexisting-tool": "पुनः प्रयोग",
|
||||
"cite-ve-toolbar-group-label": "उर्ध्वभरण"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,13 +32,15 @@
|
|||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Λίστα με γενικές αναφορές",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Λίστα αναφορών για την ομάδα \"$1\"",
|
||||
"cite-ve-dialog-referenceslist-title": "Κατάλογος παραπομπών",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Βελτιώνει το περιεχόμενό σας με την προσθήκη πηγών πληροφοριών. Μπορείτε να κάνετε παραπομπές σε βιβλία, εφημερίδες και ιστοσελίδες.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Παραπομπές",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Βασική μορφή",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Βασικό",
|
||||
"cite-ve-dialogbutton-reference-title": "Παραπομπή",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Βασικό",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Κατάλογος παραπομπών",
|
||||
"cite-ve-reference-input-placeholder": "Αναζήτηση εντός των τρεχόντων παραπομπών",
|
||||
"cite-ve-referenceslist-isempty": "Δεν υπάρχουν παραπομπές με την ομάδα «$1» σε αυτήν τη σελίδα για να περιληφθούν σε αυτόν τον κατάλογο.",
|
||||
"cite-ve-referenceslist-isempty-default": "Δεν υπάρχουν παραπομπές σε αυτήν τη σελίδα για να περιληφθούν σε αυτόν τον κατάλογο.",
|
||||
"cite-ve-referenceslist-missingref": "Η παραπομπή αυτή έχει οριστεί μέσω προτύπου ή άλλου αυτόματα παραγόμενου μπλοκ και, προς το παρόν, δεν μπορείτε να την επεξεργαστείτε με τον VisualEditor. Χρησιμοποιήστε τον επεξεργαστή κώδικα.",
|
||||
"cite-ve-toolbar-group-label": "Παραπομπή"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,10 +16,12 @@
|
|||
"Amir E. Aharoni"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "null",
|
||||
"visualeditor-cite-tool-name-book": "Book",
|
||||
"visualeditor-cite-tool-name-journal": "Journal",
|
||||
"visualeditor-cite-tool-name-news": "News",
|
||||
"visualeditor-cite-tool-name-web": "Website",
|
||||
"cite-tool-definition.json": "null",
|
||||
"cite-ve-dialog-reference-editing-reused": "This reference is used $1 {{PLURAL:$1|times}} on this page.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Use this group",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "General references",
|
||||
|
@ -42,5 +44,6 @@
|
|||
"cite-ve-referenceslist-isempty": "There are no references with the group \"$1\" on this page to include in this list.",
|
||||
"cite-ve-referenceslist-isempty-default": "There are no references on this page to include in this list.",
|
||||
"cite-ve-referenceslist-missingref": "This reference is defined in a template or other generated block, and for now can only be edited in source mode.",
|
||||
"cite-ve-toolbar-group-label": "Cite"
|
||||
"cite-ve-toolbar-group-label": "Cite",
|
||||
"cite-ve-othergroup-item": "$1 reference"
|
||||
}
|
|
@ -28,10 +28,12 @@
|
|||
"Ncontinanza"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "nulo",
|
||||
"visualeditor-cite-tool-name-book": "Libro",
|
||||
"visualeditor-cite-tool-name-journal": "Diario",
|
||||
"visualeditor-cite-tool-name-news": "Noticias",
|
||||
"visualeditor-cite-tool-name-web": "Sitio web",
|
||||
"cite-tool-definition.json": "nulo",
|
||||
"cite-ve-dialog-reference-editing-reused": "Esta referencia se utiliza $1 {{PLURAL:$1|vez|veces}} en esta página.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Usar este grupo",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Referencias generales",
|
||||
|
@ -54,5 +56,6 @@
|
|||
"cite-ve-referenceslist-isempty": "No hay referencias con el grupo «$1» en esta página para incluir en la lista.",
|
||||
"cite-ve-referenceslist-isempty-default": "No hay referencias en esta página para incluir en esta lista.",
|
||||
"cite-ve-referenceslist-missingref": "Esta referencia está definida en una plantilla u otro tipo de bloque generado, y por ahora sólo puede editarse en el editor de fuente.",
|
||||
"cite-ve-toolbar-group-label": "Citar"
|
||||
"cite-ve-toolbar-group-label": "Citar",
|
||||
"cite-ve-othergroup-item": "referencia $1"
|
||||
}
|
||||
|
|
|
@ -25,15 +25,15 @@
|
|||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Üldviidete loend",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Viiterühma \"$1\" liikmete loend",
|
||||
"cite-ve-dialog-referenceslist-title": "Viidete loend",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Viited",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Täienda materjali allikate lisamisega. Saad viidata raamatutele, ajalehtedele ja võrgukohtadele.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Viited",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Lihtviite vorm",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Lihtviide",
|
||||
"cite-ve-dialogbutton-reference-title": "Viide",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Lihtviide",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Viidete loend",
|
||||
"cite-ve-reference-input-placeholder": "Otsi kasutusel olevate viidete hulgast",
|
||||
"cite-ve-referenceslist-isempty": "Rühma \"$1\" viited, mida selles loendis näidata, puuduvad sellel leheküljel.",
|
||||
"cite-ve-referenceslist-isempty-default": "Viited, mida selles loendis näidata, puuduvad sellel leheküljel.",
|
||||
"cite-ve-referenceslist-missingref": "Selle viite kirjeldus on mallis või muul moel genereeritud plokis ning praegu saab seda redigeerida vaid lähteteksti režiimis.",
|
||||
"cite-ve-toolbar-group-label": "Viide"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,10 +9,12 @@
|
|||
"Macofe"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "nulu",
|
||||
"visualeditor-cite-tool-name-book": "Liburua",
|
||||
"visualeditor-cite-tool-name-journal": "Aldizkaria",
|
||||
"visualeditor-cite-tool-name-news": "Albisteak",
|
||||
"visualeditor-cite-tool-name-web": "Webgunea",
|
||||
"cite-tool-definition.json": "nulu",
|
||||
"cite-ve-dialog-reference-editing-reused": "Erreferentzia hau $1{{PLURAL:$1|aldiz}} agertzen da orri honetan",
|
||||
"cite-ve-dialog-reference-options-group-label": "Talde hau erabili",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Erreferentzia orokorrak",
|
||||
|
@ -25,6 +27,8 @@
|
|||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Erreferentzia orokorren zerrenda",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Erreferentzia zerrenda \"$1\" talderako",
|
||||
"cite-ve-dialog-referenceslist-title": "Erreferentzia-zerrenda",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Hobe zure edukia informazioa iturriak gehituz. Liburuetatik, egunkarietatik eta webguneetatik aipatu ditzakezu.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Erreferentziak",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Oinarrizko forma",
|
||||
"cite-ve-dialogbutton-reference-title": "Erreferentzia",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Oinarrizkoa",
|
||||
|
@ -33,5 +37,6 @@
|
|||
"cite-ve-referenceslist-isempty": "Ez dago «$1» taldearekiko erreferentziarik orri honetan.",
|
||||
"cite-ve-referenceslist-isempty-default": "Orri honetan ez dago zerrendan sartzeko erreferentziarik.",
|
||||
"cite-ve-referenceslist-missingref": "Erreferentzia hau txantiloi batean edo sortutako beste bloke mota batean dago zehaztuta, eta oraingoz iturburu kodeko moduan baizik ezin da editatu.",
|
||||
"cite-ve-toolbar-group-label": "Aipatu"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "Aipatu",
|
||||
"cite-ve-othergroup-item": "$1 erreferentzia"
|
||||
}
|
||||
|
|
|
@ -44,13 +44,16 @@
|
|||
"Mattho69",
|
||||
"Wladek92",
|
||||
"Harmonia Amanda",
|
||||
"Macofe"
|
||||
"Macofe",
|
||||
"Pols12"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "nul",
|
||||
"visualeditor-cite-tool-name-book": "Livre",
|
||||
"visualeditor-cite-tool-name-journal": "Journal",
|
||||
"visualeditor-cite-tool-name-news": "Actualités",
|
||||
"visualeditor-cite-tool-name-web": "Site web",
|
||||
"cite-tool-definition.json": "nul",
|
||||
"cite-ve-dialog-reference-editing-reused": "Cette référence est utilisée $1 {{PLURAL:$1|fois}} sur cette page.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Utiliser ce groupe",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Références générales",
|
||||
|
@ -63,8 +66,8 @@
|
|||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Liste de références générales",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Liste de références pour le groupe « $1 »",
|
||||
"cite-ve-dialog-referenceslist-title": "Liste des références",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Améliore votre contenu en ajoutant des sources d’information. Vous pouvez faire des citations depuis des livres, des journaux et des sites web.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Citations",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Améliore votre contenu en ajoutant des sources d’information. Vous pouvez ajouter comme références des livres, des journaux et des sites web.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Références",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Autre référence",
|
||||
"cite-ve-dialogbutton-reference-title": "Références",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Référence",
|
||||
|
@ -73,5 +76,6 @@
|
|||
"cite-ve-referenceslist-isempty": "Il n’y a aucune référence avec le groupe « $1 » sur cette page à inclure dans cette liste.",
|
||||
"cite-ve-referenceslist-isempty-default": "Il n’y a aucune référence sur cette page à inclure dans cette liste.",
|
||||
"cite-ve-referenceslist-missingref": "Cette référence est définie dans un modèle ou un autre bloc généré et ne peut pour le moment être modifiée qu’avec l’éditeur de wikicode.",
|
||||
"cite-ve-toolbar-group-label": "Citer"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "Source",
|
||||
"cite-ve-othergroup-item": "référence $1"
|
||||
}
|
||||
|
|
|
@ -17,5 +17,6 @@
|
|||
"cite-ve-dialog-reference-useexisting-label": "Cleachd iomradh a tha ann",
|
||||
"cite-ve-dialog-referenceslist-title": "Liosta nan iomraidhean",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Bunasach",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Liosta nan iomraidhean"
|
||||
}
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Liosta nan iomraidhean",
|
||||
"cite-ve-toolbar-group-label": "Iomradh"
|
||||
}
|
||||
|
|
|
@ -14,10 +14,12 @@
|
|||
"Macofe"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "nulo",
|
||||
"visualeditor-cite-tool-name-book": "Libro",
|
||||
"visualeditor-cite-tool-name-journal": "Publicación periódica",
|
||||
"visualeditor-cite-tool-name-news": "Novas",
|
||||
"visualeditor-cite-tool-name-web": "Páxina web",
|
||||
"cite-tool-definition.json": "nulo",
|
||||
"cite-ve-dialog-reference-editing-reused": "Esta referenza úsase $1 {{PLURAL:$1|vez|veces}} nesta páxina.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Utilizar este grupo",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Referencias xerais",
|
||||
|
@ -40,5 +42,6 @@
|
|||
"cite-ve-referenceslist-isempty": "Non hai referencias co grupo \"$1\" nesta páxina para incluílas nesta lista.",
|
||||
"cite-ve-referenceslist-isempty-default": "Non hai referencias nesta páxina para incluílas nesta lista.",
|
||||
"cite-ve-referenceslist-missingref": "Esta referencia está definida nun modelo ou noutro bloque xerado; polo de agora, só se pode editar no modo fonte.",
|
||||
"cite-ve-toolbar-group-label": "Citar"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "Citar",
|
||||
"cite-ve-othergroup-item": "referencia $1"
|
||||
}
|
||||
|
|
|
@ -19,10 +19,12 @@
|
|||
"דולב"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "ריק",
|
||||
"visualeditor-cite-tool-name-book": "ספר",
|
||||
"visualeditor-cite-tool-name-journal": "כתב־עת",
|
||||
"visualeditor-cite-tool-name-news": "חדשות",
|
||||
"visualeditor-cite-tool-name-web": "אתר אינטרנט",
|
||||
"cite-tool-definition.json": "ריק",
|
||||
"cite-ve-dialog-reference-editing-reused": "הערת השוליים משמשת {{PLURAL:$1|פעם אחת|פעמיים|$1 פעמים}} בדף הזה.",
|
||||
"cite-ve-dialog-reference-options-group-label": "להשתמש בקבוצה הזאת",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "הערות שוליים כלליות",
|
||||
|
@ -45,5 +47,6 @@
|
|||
"cite-ve-referenceslist-isempty": "לא קיימים מקורות עם קבוצה בשם \"$1\" בדף הזה שאפשר לכלול ברשימה הזאת.",
|
||||
"cite-ve-referenceslist-isempty-default": "בדף הזה אין הערות שוליים שאפשר לכלול ברשימה הזאת.",
|
||||
"cite-ve-referenceslist-missingref": "הערת השוליים הזאת מוגדרת בתבנית או מחוללת בדרך אחרת כלשהי, ואי־אפשר לערוך אותה עדיין באמצעות העורך החזותי.",
|
||||
"cite-ve-toolbar-group-label": "ציטוט"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "ציטוט",
|
||||
"cite-ve-othergroup-item": "הערה $1"
|
||||
}
|
||||
|
|
|
@ -28,10 +28,12 @@
|
|||
"Supernino"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "nullo",
|
||||
"visualeditor-cite-tool-name-book": "Libro",
|
||||
"visualeditor-cite-tool-name-journal": "Pubblicazione",
|
||||
"visualeditor-cite-tool-name-news": "Notizie",
|
||||
"visualeditor-cite-tool-name-web": "Sito web",
|
||||
"cite-tool-definition.json": "nullo",
|
||||
"cite-ve-dialog-reference-editing-reused": "Questo riferimento è usato $1 {{PLURAL:$1|volta|volte}} su questa pagina.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Usa questo gruppo",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Riferimenti generali",
|
||||
|
@ -43,16 +45,17 @@
|
|||
"cite-ve-dialog-reference-useexisting-tool": "Riusa",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Elenco di note generali",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Lista di note per il gruppo \"$1\"",
|
||||
"cite-ve-dialog-referenceslist-title": "Elenco riferimenti",
|
||||
"cite-ve-dialog-referenceslist-title": "Elenco note",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Migliora i contenuti con l'aggiunta delle fonti per le informazione. Puoi citare da libri, giornali e siti web.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Citazioni",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Modulo base",
|
||||
"cite-ve-dialogbutton-reference-title": "Riferimento",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Base",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Elenco riferimenti",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Elenco note",
|
||||
"cite-ve-reference-input-placeholder": "Ricerca all'interno delle citazioni correnti",
|
||||
"cite-ve-referenceslist-isempty": "Non ci sono riferimenti con il gruppo \"$1\" su questa pagina da includere in questo elenco.",
|
||||
"cite-ve-referenceslist-isempty-default": "Non ci sono riferimenti su questa pagina da includere in questo elenco.",
|
||||
"cite-ve-referenceslist-isempty": "In questa pagina non ci sono note da elencare con il gruppo \"$1\".",
|
||||
"cite-ve-referenceslist-isempty-default": "In questa pagina non ci sono note da elencare.",
|
||||
"cite-ve-referenceslist-missingref": "Questa nota è definita in un template o in un altro blocco generato e per ora può essere modificata solo in modalità sorgente.",
|
||||
"cite-ve-toolbar-group-label": "Cita"
|
||||
}
|
||||
"cite-ve-toolbar-group-label": "Cita",
|
||||
"cite-ve-othergroup-item": "$1 note"
|
||||
}
|
||||
|
|
|
@ -18,10 +18,12 @@
|
|||
"Vigorous action"
|
||||
]
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "null",
|
||||
"visualeditor-cite-tool-name-book": "書籍",
|
||||
"visualeditor-cite-tool-name-journal": "ジャーナル",
|
||||
"visualeditor-cite-tool-name-news": "ニュース",
|
||||
"visualeditor-cite-tool-name-web": "Web サイト",
|
||||
"cite-tool-definition.json": "null",
|
||||
"cite-ve-dialog-reference-editing-reused": "この参照はこのページ上で$1{{PLURAL:$1|回}}使用されています。",
|
||||
"cite-ve-dialog-reference-options-group-label": "使用するグループ",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "汎用の脚注",
|
||||
|
@ -45,4 +47,4 @@
|
|||
"cite-ve-referenceslist-isempty-default": "このページには、この一覧に含められる出典はありません。",
|
||||
"cite-ve-referenceslist-missingref": "この出典はテンプレート内または別途生成されたブロック内で定義されているため、現時点ではソース モードのみで編集できます。",
|
||||
"cite-ve-toolbar-group-label": "参照"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,5 +8,35 @@
|
|||
"Meursault2004",
|
||||
"Macofe"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"visualeditor-cite-tool-definition.json": "null",
|
||||
"visualeditor-cite-tool-name-book": "Buku",
|
||||
"visualeditor-cite-tool-name-journal": "Jurnal",
|
||||
"visualeditor-cite-tool-name-news": "Warta",
|
||||
"visualeditor-cite-tool-name-web": "Sana jaringan",
|
||||
"cite-tool-definition.json": "null",
|
||||
"cite-ve-dialog-reference-editing-reused": "Rujukan iki dianggo {{PLURAL:$1|ping}} $1 ing kaca iki.",
|
||||
"cite-ve-dialog-reference-options-group-label": "Anggo golongan iki",
|
||||
"cite-ve-dialog-reference-options-group-placeholder": "Rujukan umum",
|
||||
"cite-ve-dialog-reference-options-name-label": "Anggo manèh mawa jeneng iki",
|
||||
"cite-ve-dialog-reference-options-section": "Wikalpa",
|
||||
"cite-ve-dialog-reference-title": "Rujukan",
|
||||
"cite-ve-dialog-reference-useexisting-full-label": "Anggo manèh sitiran sing wis ana ing kaca iki",
|
||||
"cite-ve-dialog-reference-useexisting-label": "Anggo rujukan sing ana",
|
||||
"cite-ve-dialog-reference-useexisting-tool": "Anggo manèh",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-general": "Pratélaning rujukan umum",
|
||||
"cite-ve-dialog-referenceslist-contextitem-description-named": "Pratélaning rujukan kanggo golongan \"$1\"",
|
||||
"cite-ve-dialog-referenceslist-title": "Pratélaning rujukan",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-text": "Kembangaké isi sarana nambahi sumbering katerangan. Sampéyan bisa nyitir saka buku, ariwarta, lan sana jaringan.",
|
||||
"cite-ve-dialogbutton-citation-educationpopup-title": "Sitiran",
|
||||
"cite-ve-dialogbutton-reference-full-label": "Wujud baku",
|
||||
"cite-ve-dialogbutton-reference-title": "Rujukan",
|
||||
"cite-ve-dialogbutton-reference-tooltip": "Baku",
|
||||
"cite-ve-dialogbutton-referenceslist-tooltip": "Pratélaning rujukan",
|
||||
"cite-ve-reference-input-placeholder": "Golèk ing sitiran iki",
|
||||
"cite-ve-referenceslist-isempty": "Ora ana rujukan golongan \"$1\" ing kaca iki kanggo dilebokaké ing pratélan iki.",
|
||||
"cite-ve-referenceslist-isempty-default": "Ora ana rujukan ing kaca iki kanggo dilebokaké ing pratélan iki.",
|
||||
"cite-ve-referenceslist-missingref": "Rujukan iki diwedharaké ing cithakan utawa babagan liya, lan kanggo saiki mung bisa dibesut mawa cara sumber.",
|
||||
"cite-ve-toolbar-group-label": "Sitir",
|
||||
"cite-ve-othergroup-item": "$1 rujukan"
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue