Update to MediaWiki 1.32.0
This commit is contained in:
parent
4fdfca233a
commit
5c06e6145e
|
@ -1,20 +1,16 @@
|
|||
[submodule "extensions/CheckUser"]
|
||||
path = extensions/CheckUser
|
||||
url = https://github.com/wikimedia/mediawiki-extensions-CheckUser.git
|
||||
branch = REL1_31
|
||||
branch = REL1_32
|
||||
[submodule "extensions/AbuseFilter"]
|
||||
path = extensions/AbuseFilter
|
||||
url = https://github.com/wikimedia/mediawiki-extensions-AbuseFilter.git
|
||||
branch = REL1_31
|
||||
branch = REL1_32
|
||||
[submodule "extensions/TitleKey"]
|
||||
path = extensions/TitleKey
|
||||
url = https://github.com/wikimedia/mediawiki-extensions-TitleKey.git
|
||||
branch = REL1_31
|
||||
branch = REL1_32
|
||||
[submodule "extensions/BounceHandler"]
|
||||
path = extensions/BounceHandler
|
||||
url = https://github.com/wikimedia/mediawiki-extensions-BounceHandler.git
|
||||
branch = REL1_31
|
||||
[submodule "extensions/Nuke"]
|
||||
path = extensions/Nuke
|
||||
url = https://github.com/wikimedia/mediawiki-extensions-Nuke.git
|
||||
branch = REL1_31
|
||||
branch = REL1_32
|
||||
|
|
|
@ -1 +1 @@
|
|||
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct).
|
||||
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct).
|
||||
|
|
27
CREDITS
27
CREDITS
|
@ -1,5 +1,5 @@
|
|||
{{int:version-credits-summary}} <!--
|
||||
MediaWiki 1.31 is a collaborative project released under the
|
||||
MediaWiki 1.32 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.
|
||||
|
||||
|
@ -26,6 +26,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Adrian Lang
|
||||
* Ævar Arnfjörð Bjarmason
|
||||
* Aftab
|
||||
* Agabi10
|
||||
* Agbad
|
||||
* Ahmad Sherif
|
||||
* Ajayrahul P
|
||||
|
@ -34,6 +35,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Alejandro Mery
|
||||
* Aleksey Bekh-Ivanov
|
||||
* AlephNull
|
||||
* Alex Ezell
|
||||
* Alex Ivanov
|
||||
* Alex Shih-Han Lin
|
||||
* Alex Z.
|
||||
|
@ -85,6 +87,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Bagariavivek
|
||||
* Bahodir Mansurov
|
||||
* balloonguy
|
||||
* Bartek Łukawski
|
||||
* Bartosz Dziewoński
|
||||
* Base
|
||||
* Beau
|
||||
|
@ -94,6 +97,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Benny Situ
|
||||
* Bergi
|
||||
* Bertrand Grondin
|
||||
* Bill Pirkle
|
||||
* Bill Traynor
|
||||
* Billinghurst
|
||||
* billm
|
||||
|
@ -140,6 +144,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Conrad Irwin
|
||||
* Cormac Parle
|
||||
* cryptocoryne
|
||||
* Daimona Eaytoy
|
||||
* Dan Barrett
|
||||
* Dan Collins
|
||||
* Dan Duvall
|
||||
|
@ -173,6 +178,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* David Sn
|
||||
* Dayllan Maza
|
||||
* dcausse
|
||||
* dcot
|
||||
* dennisroczek
|
||||
* Denny Vrandecic
|
||||
* Dereckson
|
||||
|
@ -191,6 +197,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* dr0ptp4kt
|
||||
* Ebrahim Byagowi
|
||||
* Ed Sanders
|
||||
* Ed Schouten
|
||||
* Eddie Greiner-Petter
|
||||
* Edward Chernenko
|
||||
* Edward Z. Yang
|
||||
|
@ -250,6 +257,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* glaisher
|
||||
* golopot
|
||||
* gopavasanth
|
||||
* Greg Grossmeier
|
||||
* Greg Maxwell
|
||||
* Greg Sabino Mullane
|
||||
* Gregory Szorc
|
||||
|
@ -257,6 +265,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Guillaume Blanchard
|
||||
* Guy Van den Broeck
|
||||
* Guycn2
|
||||
* Hagar Shilo
|
||||
* Haikal Izzuddin
|
||||
* HakanIST
|
||||
* Happy-melon
|
||||
|
@ -285,9 +294,11 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Jacob Clark
|
||||
* jagori
|
||||
* Jaime Crespo
|
||||
* Jakob Warkotsch
|
||||
* Jakub Vrana
|
||||
* James D. Forrester
|
||||
* James Earl Douglas
|
||||
* James Montalvo
|
||||
* Jan Berkel
|
||||
* Jan Drewniak
|
||||
* Jan Gerber
|
||||
|
@ -356,6 +367,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* kipod
|
||||
* kishanio
|
||||
* konarak
|
||||
* Kosta Harlan
|
||||
* krishna keshav
|
||||
* Krzysztof Krzyzaniak
|
||||
* Krzysztof Zbudniewek
|
||||
|
@ -469,6 +481,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Moritz Oberhauser
|
||||
* Mormegil
|
||||
* Mr. E23
|
||||
* MR70
|
||||
* MrBlueSky
|
||||
* MrPete
|
||||
* Mukunda Modell
|
||||
|
@ -519,7 +532,9 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* OverlordQ
|
||||
* Owen Davis
|
||||
* Paa Kwesi Imbeah
|
||||
* Pablo Grass
|
||||
* paladox
|
||||
* Pankajeshkr
|
||||
* Patricio Molina
|
||||
* Patrick Reilly
|
||||
* Patrick Westerhoff
|
||||
|
@ -530,7 +545,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Pavel Selitskas
|
||||
* Pcoombe
|
||||
* Perside Rosalie
|
||||
* petarpetkovic
|
||||
* Petar Petković
|
||||
* Peter Coombe
|
||||
* Peter Gehres
|
||||
* Peter Hedenskog
|
||||
|
@ -559,6 +574,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* ptarjan
|
||||
* pubudu538
|
||||
* Purodha Blissenbach
|
||||
* Pwirth
|
||||
* quiddity
|
||||
* quietust
|
||||
* Quim Gil
|
||||
|
@ -592,6 +608,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Roman Tsukanov
|
||||
* Rotem Liss
|
||||
* Rowan Collins
|
||||
* runntb
|
||||
* Russ Nelson
|
||||
* Russell Blau
|
||||
* Rusty Burchfield
|
||||
|
@ -648,17 +665,22 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Stephan Muggli
|
||||
* Stephane Bisson
|
||||
* Stephen Liang
|
||||
* Stephen Niedzielski
|
||||
* Steve Sanbeg
|
||||
* Steven Roddis
|
||||
* Steven Walling
|
||||
* Str4nd
|
||||
* Strainu
|
||||
* Subin Siby
|
||||
* Subramanya Sastry
|
||||
* Sumit Asthana
|
||||
* superyetkin
|
||||
* Suriyaa Kudo
|
||||
* svip
|
||||
* Szymon Świerkosz
|
||||
* T. Bayer
|
||||
* T.D. Corell
|
||||
* tacsipacsi
|
||||
* Tarquin
|
||||
* TerraCodes
|
||||
* Thalia Chan
|
||||
|
@ -673,6 +695,7 @@ The following list can be found parsed under Special:Version/Credits -->
|
|||
* Thomas Dalton
|
||||
* Thomas Gries
|
||||
* ThomasV
|
||||
* Tim Eulitz
|
||||
* Tim Hollmann
|
||||
* Tim Landscheidt
|
||||
* Tim Laqua
|
||||
|
|
16
Gruntfile.js
16
Gruntfile.js
|
@ -13,7 +13,6 @@ module.exports = function ( grunt ) {
|
|||
grunt.loadNpmTasks( 'grunt-jsonlint' );
|
||||
grunt.loadNpmTasks( 'grunt-karma' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
grunt.loadNpmTasks( 'grunt-webdriver' );
|
||||
|
||||
karmaProxy[ wgScriptPath ] = {
|
||||
target: wgServer + wgScriptPath,
|
||||
|
@ -28,16 +27,13 @@ module.exports = function ( grunt ) {
|
|||
'!node_modules/**',
|
||||
'!resources/lib/**',
|
||||
'!resources/src/jquery.tipsy/**',
|
||||
'!resources/src/jquery/jquery.farbtastic.js',
|
||||
'!resources/src/mediawiki.libs/**',
|
||||
'!resources/src/mediawiki.libs.jpegmeta/**',
|
||||
// Third-party code of PHPUnit coverage report
|
||||
'!tests/coverage/**',
|
||||
'!vendor/**',
|
||||
// Explicitly say "**/*.js" here in case of symlinks
|
||||
'!extensions/**/*.js',
|
||||
'!skins/**/*.js',
|
||||
// Skip functions aren't even parseable
|
||||
'!resources/src/mediawiki.hidpi-skip.js'
|
||||
'!skins/**/*.js'
|
||||
]
|
||||
},
|
||||
jsonlint: {
|
||||
|
@ -104,15 +100,7 @@ module.exports = function ( grunt ) {
|
|||
return require( 'path' ).join( dest, src.replace( 'resources/', '' ) );
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Configure WebdriverIO task
|
||||
webdriver: {
|
||||
test: {
|
||||
configFile: './tests/selenium/wdio.conf.js'
|
||||
}
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'assert-mw-env', function () {
|
||||
|
|
630
HISTORY
630
HISTORY
|
@ -1,7 +1,556 @@
|
|||
Change notes from older releases. For current info see RELEASE-NOTES-1.31.
|
||||
Change notes from older releases. For current info see RELEASE-NOTES-1.32.
|
||||
|
||||
= MediaWiki 1.31 =
|
||||
|
||||
== MediaWiki 1.31.1 ==
|
||||
|
||||
This is a security and maintenance release of the MediaWiki 1.31 branch.
|
||||
|
||||
=== Changes since MediaWiki 1.31.0 ===
|
||||
* (T169545, CVE-2018-0503) SECURITY: $wgRateLimits entry for 'user' overrides
|
||||
'newbie'.
|
||||
* (T194605, CVE-2018-0505) SECURITY: BotPasswords can bypass CentralAuth's
|
||||
account lock.
|
||||
* (T199029, CVE-2018-13258) SECURITY: Tarball was missing .htaccess files.
|
||||
* (T197229) Bundle Nuke extension, it was accidentally omitted.
|
||||
* (T193995) Fix undefined patchPath() method call in parser tests.
|
||||
* (T198687) Fix various selectFields methods to use the string 'NULL', not null.
|
||||
* Special:BotPasswords now requires reauthentication.
|
||||
* (T191608, T187638) Add 'logid' parameter to Special:Log.
|
||||
* (T193829) Indicate when a Bot Password needs reset.
|
||||
* (T198037) GitInfo: Don't try shelling out if it's disabled.
|
||||
* (T151415) Log email changes.
|
||||
* (T197206) Fix performance regression when multiple DB used without caching.
|
||||
* (T197030) PHPSessionHandler: Suppress headers warnings in initialize().
|
||||
* (T182377, T196793) Exif: Guard against uncountable tag values.
|
||||
* (T200861) Fix total breakage of SQLite web upgrade.
|
||||
* (T200864) Fix pingback over-reporting on non-MySQL databases
|
||||
* (T202550) Unbreak SpecialListusersHeaderForm and SpecialListusersHeader
|
||||
hooks.
|
||||
|
||||
== MediaWiki 1.31.0 ==
|
||||
|
||||
=== Changes since MediaWiki 1.31.0-rc.2 ===
|
||||
* (T195783) Initialize PSR-4 namespaces at same stage as normal autoloader.
|
||||
* (T196092) Hide MySQL binary/utf-8 charset option in the installer.
|
||||
* (T196185) Don't allow setting $wgDBmysql5 in the installer.
|
||||
* (T196125) php-memcached 3.0 (provided with PHP 7.0) is now supported.
|
||||
* (T182366) UploadBase::checkXMLEncodingMissmatch() now works on PHP 7.1+
|
||||
* (T118683) Fix exception from &$user deref on HHVM in the TitleMoveComplete hook.
|
||||
* (T196672) The mtime of extension.json files is now able to be zero
|
||||
* (T180403) Validate $length in padleft/padright parser functions.
|
||||
* (T143790) Make $wgEmailConfirmToEdit only affect edit actions.
|
||||
|
||||
=== Changes since MediaWiki 1.31.0-rc.0 ===
|
||||
* (T33223) Drop archive.ar_text and ar_flags.
|
||||
* Add default edit rate limit of 90 edits/minute for all users.
|
||||
* (T187645) Use codepoint as tiebreaker when getting first-letters in
|
||||
IcuCollation.
|
||||
* (T191947) Don't shell during the installer if shelling out is disabled.
|
||||
* (T194319) Improve duplicate config setting exception as part of extension
|
||||
registration.
|
||||
* (T195211) Don't require trailing slash in PSR-4 autoloader directory.
|
||||
* (T186565) Fix PHP Notice from `ob_end_flush()` in `FileRepo::streamFile()`.
|
||||
* Do not incorrectly hide namespace input field in the installer.
|
||||
* (T186456) Refactor checks looking for PEAR maik libraries to be clearer.
|
||||
|
||||
=== Important pre-upgrade notes for 1.31 ===
|
||||
* If you're using MySQL, SQLite, or MSSQL, are not using update.php to apply
|
||||
schema changes, and cannot have downtime to run migrateArchiveText.php and
|
||||
apply patch-drop-ar_text.sql manually, you'll have to apply a default value
|
||||
to the ar_text and ar_flags columns of the archive table or make those
|
||||
columns nullable before upgrading to MediaWiki 1.31.
|
||||
maintenance/archives/patch-nullable-ar_text.sql shows how to do this for MySQL.
|
||||
|
||||
=== Configuration changes in 1.31 ===
|
||||
* $wgEnableAPI and $wgEnableWriteAPI are now deprecated and will be removed in
|
||||
a future version. The API is now considered to be stable, secure and
|
||||
essential.
|
||||
* $wgUsejQueryThree was removed, as it is now the default. This was documented
|
||||
as a temporary variable during the migration period, deprecated since 1.29.
|
||||
* $wgLogoHD has been updated to support svg images and uses $wgLogo where
|
||||
possible for fallback images such as png.
|
||||
* (T44246) $wgFilterLogTypes will no longer ignore 'patrol' when user does not
|
||||
have the right to mark things patrolled.
|
||||
* Wikis that contain imported revisions or CentralAuth global blocks should run
|
||||
maintenance/cleanupUsersWithNoId.php.
|
||||
* The configuration settings $wgResourceLoaderMinifierStatementsOnOwnLine and
|
||||
$wgResourceLoaderMinifierMaxLineLength, deprecated since 1.27, were removed.
|
||||
* (T180921) $wgReferrerPolicy now supports having fallbacks for browsers that
|
||||
are not using the latest version of the Referrer Policy specification.
|
||||
* $wgFragmentMode is now set to [ 'legacy', 'html5' ] by default. This is a
|
||||
first step of migration to human-readable section IDs that will later result
|
||||
in 'html5' being the default mode.
|
||||
* CACHE_ACCEL now only supports APC(u) or WinCache. XCache support was removed
|
||||
as upstream is inactive and has no plans to move to PHP 7.
|
||||
* The old CategorizedRecentChanges feature, including its related configuration
|
||||
option $wgAllowCategorizedRecentChanges, has been removed.
|
||||
* (T188472) The 'comma' value for $wgArticleCountMethod is no longer supported
|
||||
for performance reasons, and installations with this setting will now work as
|
||||
if it was configured with 'any'.
|
||||
* (T185753) MediaWiki now defaults to using RemexHtml to tidy up user input,
|
||||
rather than being off by default. If you wish to disable HTML tidying
|
||||
entirely, set $wgTidyConfig to null; if you wish to use the old, deprecated
|
||||
Tidy external binary, both set $wgTidyConfig to null and $wgUseTidy to true.
|
||||
* $wgLogAutopatrol now defaults to false instead of true.
|
||||
* $wgValidateAllHtml was removed and will be ignored.
|
||||
* $wgScriptExtension, deprecated and ignored since 1.25, was removed. See the
|
||||
1.25 release notes for more information.
|
||||
* $wgUseAjax is now marked as deprecated, just like the deprecated AJAX
|
||||
framework that it enables. Some extensions mistakenly used this to check
|
||||
whether any AJAX functionality at all should be enabled, further making this
|
||||
problematic to retain.
|
||||
* $wgDBmysql5 is now deprecated, and will be removed in a future version. It
|
||||
has been marked as experimental ever since it was introduced.
|
||||
|
||||
=== New features in 1.31 ===
|
||||
* (T76554) User sub-pages named ….json are now protected in the same way that
|
||||
….js and ….css pages are, so that configuration options can safely be placed
|
||||
there.
|
||||
* Wikimedia\Rdbms\IDatabase->select() and similar methods now support joins
|
||||
with parentheses for grouping.
|
||||
* As a first pass in standardizing dialog boxes across the MediaWiki product,
|
||||
Html class now provides helper methods for messageBox, successBox, errorBox
|
||||
and warningBox generation.
|
||||
* (T9240) Imports will now record unknown (and, optionally, known) usernames in
|
||||
a format like "iw>Example".
|
||||
* (T20209) Linker (used on history pages, log pages, and so on) will display
|
||||
usernames formed like "iw>Example" as interwiki links, as if by wikitext like
|
||||
[[iw:User:Example|iw>Example]].
|
||||
* (T111605) The 'ImportHandleUnknownUser' hook allows extensions to auto-create
|
||||
users during an import.
|
||||
* Added a hook, ParserOutputPostCacheTransform, to allow extensions to affect
|
||||
the ParserOutput::getText() post-cache transformations.
|
||||
* Added a hook, UploadForm:getInitialPageText, to allow extensions to alter the
|
||||
initial page text for file uploads.
|
||||
* (T181651) The info page for File pages now displays the file's base-16 SHA1
|
||||
hash value in the table of basic information.
|
||||
* Style tags with a 'data-mw-deduplicate' attribute will be deduplicated as a
|
||||
ParserOutput::getText() post-cache transformation. This may be disabled by
|
||||
passing 'deduplicateStyles' => false to that method.
|
||||
* The identity of the logged-in or IP "actor" for logged actions is being moved
|
||||
into a new actor table, with the rows in tables such as revision and logging
|
||||
referring to the actor ID instead of storing the user ID and name/IP in
|
||||
every row.
|
||||
* This is currently gated by $wgActorTableSchemaMigrationStage. Most wikis
|
||||
can set this to MIGRATION_NEW and run maintenance/migrateActors.php as
|
||||
soon as any necessary extensions are updated.
|
||||
* Most code accessing rows for logged actions from the database should use
|
||||
the relevant getQueryInfo() methods to get the information needed to build
|
||||
the SQL query. The ActorMigration class may also be used to get feature
|
||||
-flagged information needed to access actor-related fields during the
|
||||
migration period.
|
||||
* Added Wikimedia\Rdbms\IDatabase::cancelAtomic(), to roll back an atomic
|
||||
section without having to roll back the whole transaction.
|
||||
* Wikimedia\Rdbms\IDatabase::doAtomicSection(), non-native ::insertSelect(),
|
||||
and non-MySQL ::replace() and ::upsert() no longer roll back the whole
|
||||
transaction on failure.
|
||||
* (T189785) Added a monthly heartbeat ping to the pingback feature.
|
||||
* The CLI installer (maintenance/install.php) learned to detect and include
|
||||
extensions. Pass --with-extensions to enable that feature.
|
||||
* (T184791) rc_patrolled now has three states: "0" for unpatrolled,
|
||||
"1" for manually patrolled and "2" for autopatrolled actions.
|
||||
* Extensions can now set their type to "editor" if they provide an editor or
|
||||
enhance the editing experience.
|
||||
* Extensions can use a PSR-4 autoloader by setting an "AutoloadNamespaces"
|
||||
property in extension.json. See the documentation at
|
||||
<https://mediawiki.org/wiki/Manual:Extension.json/Schema#AutoloadNamespaces>
|
||||
for more details and an example.
|
||||
* (T19099) Tabs which link to pages that don't exist (like those to uncreated
|
||||
discussion pages) now have a tooltip to indicate state, not just colour.
|
||||
|
||||
=== External library changes in 1.31 ===
|
||||
* pear/mail, pear/mail_mime and pear/mail_mime-decode have been moved from
|
||||
suggested to required. These packages now must be installed via composer
|
||||
and not via PEAR itself.
|
||||
|
||||
==== Upgraded external libraries ====
|
||||
* Updated jquery.chosen from v0.9.14 to v1.8.2.
|
||||
* Updated composer/spdx-licenses from 1.1.4 to 1.3.0 (development dependency).
|
||||
* Updated nikic/php-parser from 2.1.0 to 3.1.3 (development dependency).
|
||||
* Updated wikimedia/ip-set from 1.1.0 to 1.2.0.
|
||||
* Updated wikimedia/relpath from 2.0.0 to 2.1.1.
|
||||
* Updated wikimedia/running-stat from 1.1.0 to 1.2.0.
|
||||
* Updated wikimedia/wrappedstring from 2.2.0 to 2.3.0.
|
||||
* Updated mediawiki/at-ease from 1.1.0 to 1.2.0.
|
||||
* Updated wikimedia/php-session-serializer from 1.0.4 to 1.0.6.
|
||||
* Updated wikimedia/remex-html from 1.0.2 to 1.0.3.
|
||||
* Updated wikimedia/html-formatter from 1.0.1 to 1.0.2.
|
||||
|
||||
==== New external libraries ====
|
||||
* Added wikimedia/object-factory 1.0.0
|
||||
|
||||
==== Removed and replaced external libraries ====
|
||||
* (T17845) The deprecated 'jquery.badge' module was removed.
|
||||
* The deprecated 'jquery.autoEllipsis' module was removed. Use the CSS
|
||||
text-overflow property instead.
|
||||
* The deprecated 'jquery.placeholder' module was removed.
|
||||
* The deprecated 'jquery.appear' module was removed. Use the
|
||||
'mediawiki.viewport' module instead.
|
||||
* mediawiki/at-ease was replaced with wikimedia/at-ease.
|
||||
|
||||
=== Bug fixes in 1.31 ===
|
||||
* (T90902) Non-breaking space in header ID breaks anchor.
|
||||
* (T189375) CSSMin now allows quoted urls in `url()` syntax to start with a
|
||||
space.
|
||||
* (T2087, T10897, T87753, T174639) Whitespace created by category and language
|
||||
links is now stripped rather than leaving blank lines in odd places.
|
||||
* (T3780) Uploads with UTF-8 names now work on PHP7.1+ on Windows servers.
|
||||
* (T182366) UploadBase::checkXMLEncodingMissmatch() now works on PHP 7.1+
|
||||
|
||||
=== Action API changes in 1.31 ===
|
||||
* (T185058) The 'name' value to tgprop for action=query&list=tags has been
|
||||
removed. It has never made a difference in the output, the name was always
|
||||
returned regardless.
|
||||
* The 'watch' and 'unwatch' parameters for action=move have been removed. They
|
||||
were deprecated and also accidentally nonfunctional since 1.17 in 2010. Use
|
||||
'watchlist' instead.
|
||||
|
||||
=== Action API internal changes in 1.31 ===
|
||||
* ApiBase::getProfileDBTime, deprecated since 1.25, was removed.
|
||||
* ApiBase::getModuleProfileName, deprecated since 1.25, was removed.
|
||||
* ApiBase::getProfileTime, deprecated since 1.25, was removed.
|
||||
|
||||
=== Languages updated in 1.31 ===
|
||||
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.
|
||||
|
||||
* (T180052) Mirandese (mwl) now supports gendered NS_USER/NS_USER_TALK.
|
||||
* (T182305) New language support: Nyungar (nys).
|
||||
* (T186359) New language support: Siberian Tatar [cебертатар] (sty).
|
||||
* (T186635) New language support: Guianan Creole (gcr).
|
||||
* (T186647) New language support: Kumyk [къумукъ] (kum).
|
||||
* (T187750) New language support: Spanish formal address (es-formal).
|
||||
* (T187824) New language support: Hungarian formal address (hu-formal).
|
||||
* (T189127) New language support: Gorontalo (gor).
|
||||
|
||||
=== Breaking changes in 1.31 ===
|
||||
* MessageBlobStore::insertMessageBlob(), deprecated in 1.27, was removed.
|
||||
* The OutputPage class constructor now requires a context parameter.
|
||||
Instantiating without context was deprecated in 1.18.
|
||||
* The mw.page JavaScript singleton, deprecated in 1.30, was removed.
|
||||
* Article::getLastPurgeTimestamp(), WikiPage::getLastPurgeTimestamp(), and the
|
||||
related WikiPage::PURGE_* constants, deprecated in 1.29, were removed.
|
||||
* The Article::selectFields(), ::onArticleCreate(), ::onArticleDelete(), and
|
||||
::onArticleEdit() methods, deprecated in 1.24, were removed.
|
||||
* Installer::locateExecutable() and ::locateExecutableInDefaultPaths() were
|
||||
removed. Use ExecutableFinder::findInDefaultPaths() instead.
|
||||
* The deprecated MW_DIFF_VERSION constant was removed.
|
||||
DifferenceEngine::MW_DIFF_VERSION should be used instead.
|
||||
* Due to significant refactoring, method ContribsPager::getUserCond() that had
|
||||
no access restriction has been removed.
|
||||
* The Block class will no longer accept usable-but-missing usernames for
|
||||
'byText' or ->setBlocker(). Callers should either ensure the blocker exists
|
||||
locally or use a new interwiki-format username like "iw>Example".
|
||||
* The following methods and constants from the WatchedItem class, which were
|
||||
deprecated in 1.27, have been removed:
|
||||
* WatchedItem::getTitle()
|
||||
* WatchedItem::fromUserTitle()
|
||||
* WatchedItem::addWatch()
|
||||
* WatchedItem::removeWatch()
|
||||
* WatchedItem::isWatched()
|
||||
* WatchedItem::duplicateEntries()
|
||||
* WatchedItem::IGNORE_USER_RIGHTS
|
||||
* WatchedItem::CHECK_USER_RIGHTS
|
||||
* WatchedItem::DEPRECATED_USAGE_TIMESTAMP
|
||||
* The $statementsOnOwnLine parameter of JavaScriptMinifier::minify was removed.
|
||||
$wgResourceLoaderMinifierStatementsOnOwnLine, the corresponding configuration
|
||||
variable, has been deprecated since 1.27 and was removed as well.
|
||||
* The $maxLineLength parameter of JavaScriptMinifier::minify was removed.
|
||||
$wgResourceLoaderMinifierMaxLineLength, the corresponding configuration
|
||||
variable, has been deprecated since 1.27 and was removed as well.
|
||||
* The HtmlFormatter class, deprecated in 1.27, was removed. The namespaced
|
||||
HtmlFormatter\HtmlFormatter class should be used instead.
|
||||
* The driver 'mysql' for MySQL, deprecated in MediaWiki 1.30, has been removed.
|
||||
The driver has been deprecated since PHP 5.5 and was removed in PHP 7.0. The
|
||||
default driver for MySQL has been 'mysqli' since MediaWiki 1.22.
|
||||
* The following properties of PreparedEdit were deprecated in 1.21 and have
|
||||
been removed:
|
||||
* PreparedEdit->newText
|
||||
* PreparedEdit->oldText
|
||||
* PreparedEdit->pst
|
||||
* ParserOutput objects which are generated using a non-default value for
|
||||
ParserOptions::setWrapOutputClass() can no longer be added to the parser
|
||||
cache.
|
||||
* The following deprecated methods from the OutputPage class have been removed:
|
||||
* OutputPage::addExtensionStyle(); deprecated in 1.27
|
||||
* OutputPage::getExtStyle(); deprecated in 1.27
|
||||
* OutputPage::setETag(); deprecated in 1.28 (obsolete no-op)
|
||||
* OutputPage::setSquidMaxage(); deprecated in 1.27
|
||||
* OutputPage::readOnlyPage(); deprecated in 1.25
|
||||
* OutputPage::rateLimited(); deprecated in 1.25
|
||||
* Additionally, the protected OutputPage::$mExtStyles array, only accessed
|
||||
through the above and with no known uses, was removed.
|
||||
* The no-op method Skin::showIPinHeader(), deprecated in 1.27, was removed.
|
||||
* The following variables and methods in EditPage, deprecated in MediaWiki 1.30,
|
||||
were removed:
|
||||
* $isCssJsSubpage — use ::isUserConfigPage()
|
||||
* $isCssSubpage — use ::isUserCssConfigPage()
|
||||
* $isJsSubpage — use ::isUserJsConfigPage()
|
||||
* $isWrongCaseCssJsPage – use ::isWrongCaseUserConfigPage()
|
||||
* ::getSummaryInput() – use ::getSummaryInputWidget()
|
||||
* ::getSummaryInputOOUI() – use ::getSummaryInputWidget()
|
||||
* ::getCheckboxes() – use ::getCheckboxesWidget() or
|
||||
::getCheckboxesDefinition()
|
||||
* ::getCheckboxesOOUI() – use ::getCheckboxesWidget() or
|
||||
::getCheckboxesDefinition()
|
||||
* ResourceLoaderModule::getPosition(), deprecated in 1.29, has been removed.
|
||||
* In User, the cookie-related methods which were wrappers for the functions on
|
||||
the response object, and were deprecated in 1.27, have been removed:
|
||||
* ::setCookie()
|
||||
* ::clearCookie()
|
||||
* ::setExtendedLoginCookie()
|
||||
Note that User::setCookies() remains, and is not deprecated.
|
||||
* Also in User, some auth-related methods which were deprecated in 1.27 have
|
||||
been removed:
|
||||
* ::getEditTokenTimestamp() – use MediaWiki\Session\Token::getTimestamp()
|
||||
* ::getPasswordFactory() – create a PasswordFactory directly
|
||||
* ::passwordChangeInputAttribs()
|
||||
* The global functions wfProfileIn and wfProfileOut, deprecated in 1.25, have
|
||||
been removed.
|
||||
* SpecialPageFactory::getList(), deprecated in 1.24, has been removed. You can
|
||||
use ::getNames() instead.
|
||||
* OpenSearch::getOpenSearchTemplate(), deprecated in 1.25, has been removed. You
|
||||
can use ApiOpenSearch::getOpenSearchTemplate() instead.
|
||||
* The global function wfBaseConvert, deprecated in 1.27, has been removed. Use
|
||||
Wikimedia\base_convert() directly.
|
||||
* Calling Database::begin() explicitly during an implicit transaction or when
|
||||
DBO_TRX is set results in an exception. Calling Database::commit() explicitly
|
||||
for an implicit transaction also results in an exception. Previously these
|
||||
were logged as errors. The startAtomic() and endAtomic() methods, or
|
||||
AtomicSectionUpdate should be used instead.
|
||||
* The global function wfOutputHandler() was removed, use the its replacement
|
||||
MediaWiki\OutputHandler::handle() instead. The global function was only
|
||||
sometimes defined. Its replacement is always available via the autoloader.
|
||||
* ChangeTags::listExtensionActivatedTags and ::listExtensionDefinedTags,
|
||||
deprecated in 1.28, have been removed. Use ::listSoftwareActivatedTags() and
|
||||
::listSoftwareDefinedTags() instead.
|
||||
* Title::getTitleInvalidRegex(), deprecated in 1.25, has been removed. You can
|
||||
use MediaWikiTitleCodec::getTitleInvalidRegex() instead.
|
||||
* HTMLForm & VFormHTMLForm::isVForm(), deprecated in 1.25, have been removed.
|
||||
* The ProfileSection class, deprecated in 1.25 and unused, has been removed.
|
||||
* The ResourceLoaderGetLessVars hook, deprecated in 1.30, has been removed. Use
|
||||
ResourceLoaderModule::getLessVars() to expose local variables instead of
|
||||
global ones.
|
||||
* As part of work to modernise user-generated content clean-up, a config option
|
||||
and some methods related to HTML validity were removed without deprecation.
|
||||
The public methods MWTidy::checkErrors() and the path through which it was
|
||||
called, TidyDriverBase::validate(), are removed, as are the testing methods
|
||||
MediaWikiTestCase::assertValidHtmlSnippet() and ::assertValidHtmlDocument().
|
||||
The $wgValidateAllHtml configuration option is removed and will be ignored.
|
||||
* Execution of external programs using MediaWiki\Shell\Command now applies
|
||||
the RESTRICT_DEFAULT Firejail restriction by default.
|
||||
* The ResourceLoaderModule::getHashMtime() and ::getDefinitionMtime() methods,
|
||||
deprecated in 1.26, were removed.
|
||||
* The deprecated 'mediawiki.widgets.CategorySelector' module alias was removed.
|
||||
Use the 'mediawiki.widgets.CategoryMultiselectWidget' module directly.
|
||||
|
||||
=== Deprecations in 1.31 ===
|
||||
* The Revision class was deprecated in favor of RevisionStore, BlobStore, and
|
||||
RevisionRecord and its subclasses.
|
||||
* The global function wfBCP47 is deprecated in favour of LanguageCode::bcp47.
|
||||
* The global function wfCountDown is now deprecated in favor of
|
||||
Maintenance::countDown.
|
||||
* Several methods for returning lists of fields to select from the database
|
||||
have been deprecated in favor of similar methods that also return the tables
|
||||
to select from and the join conditions for those tables.
|
||||
* Block::selectFields() → Block::getQueryInfo()
|
||||
* RecentChange::selectFields() → RecentChange::getQueryInfo()
|
||||
* ArchivedFile::selectFields() → ArchivedFile::getQueryInfo()
|
||||
* LocalFile::selectFields() → LocalFile::getQueryInfo()
|
||||
* LocalFile::getCacheFields() with a prefix no longer works
|
||||
* LocalFile::getLazyCacheFields() with a prefix no longer works
|
||||
* OldLocalFile::selectFields() → OldLocalFile::getQueryInfo()
|
||||
* RecentChange::selectFields() → RecentChange::getQueryInfo()
|
||||
* Revision::userJoinCond() → Revision::getQueryInfo( [ 'user' ] )
|
||||
* Revision::selectUserFields() → Revision::getQueryInfo( [ 'user' ] )
|
||||
* Revision::pageJoinCond() → Revision::getQueryInfo( [ 'page' ] )
|
||||
* Revision::selectPageFields() → Revision::getQueryInfo( [ 'page' ] )
|
||||
* Revision::selectTextFields() → Revision::getQueryInfo( [ 'text' ] )
|
||||
* Revision::selectFields() → Revision::getQueryInfo()
|
||||
* Revision::selectArchiveFields() → Revision::getArchiveQueryInfo()
|
||||
* User::selectFields() → User::getQueryInfo()
|
||||
* WikiPage::selectFields() → WikiPage::getQueryInfo()
|
||||
* Revision::setUserIdAndName() was deprecated.
|
||||
* Access to TitleValue class properties was deprecated, the relevant getters
|
||||
should be used instead.
|
||||
* DifferenceEngine::getDiffBodyCacheKey() is deprecated. Subclasses should
|
||||
override DifferenceEngine::getDiffBodyCacheKeyParams() instead.
|
||||
* Use of Maintenance::error( $err, $die ) to exit script was deprecated. Use
|
||||
Maintenance::fatalError() instead.
|
||||
* Passing a ParserOptions object to OutputPage::parserOptions() is deprecated.
|
||||
* The RevisionInsertComplete hook is now deprecated; use instead the hook
|
||||
RevisionRecordInserted. RevisionInsertComplete is still called, but the second
|
||||
and third parameter will always be null. Hard deprecation is scheduled for 1.32.
|
||||
* The following methods that get and set ParserOutput state are deprecated.
|
||||
Callers should use the new stateless $options parameter to
|
||||
ParserOutput::getText() instead.
|
||||
* ParserOptions::getEditSection()
|
||||
* ParserOptions::setEditSection()
|
||||
* ParserOutput::getEditSectionTokens()
|
||||
* ParserOutput::setEditSectionTokens()
|
||||
* ParserOutput::getTOCEnabled()
|
||||
* ParserOutput::setTOCEnabled()
|
||||
* OutputPage::enableSectionEditLinks()
|
||||
* OutputPage::sectionEditLinksEnabled()
|
||||
* The public ParserOutput state fields $mTOCEnabled and $mEditSectionTokens
|
||||
are also deprecated.
|
||||
* License::getLicenses has been deprecated; use License::getLines instead.
|
||||
* QuickTemplate::setRef() was deprecated in favour of QuickTemplate::set().
|
||||
Setting template variables by reference allowed violating the principle of
|
||||
data being immutable once added to the skin template. In practice, this method
|
||||
was not being used for that. Rather, setRef() existed as memory optimisation
|
||||
for PHP 4.
|
||||
* QuickTemplate::setTranslator() and MediaWikiI18N::set() were deprecated in
|
||||
favour of Skin::msg() parameters.
|
||||
* MediaWikiI18N::translate() was deprecated in favour of Skin::msg() or
|
||||
wfMessage().
|
||||
* Passing false to ParserOptions::setWrapOutputClass() is deprecated. Use the
|
||||
'unwrap' transform to ParserOutput::getText() instead.
|
||||
* \ObjectFactory (no namespace) is deprecated, the namespaced class
|
||||
\Wikimedia\ObjectFactory from the wikimedia/object-factory library should be
|
||||
used instead.
|
||||
* CommentStore::newKey is deprecated. Instead, get an instance from
|
||||
MediaWikiServices.
|
||||
* The following CommentStore methods have had their signatures changed to
|
||||
introduce a $key parameter, usage of the methods on instances retrieved from
|
||||
CommentStore::newKey will remain unchanged but deprecated:
|
||||
* CommentStore::getFields
|
||||
* CommentStore::getJoin
|
||||
* CommentStore::getComment
|
||||
* CommentStore::getCommentLegacy
|
||||
* CommentStore::insert
|
||||
* CommentStore::insertWithTemplate
|
||||
* The following methods in Title have been renamed, and the old ones are
|
||||
deprecated:
|
||||
* Title::getSkinFromCssJsSubpage – use ::getSkinFromConfigSubpage
|
||||
* Title::isCssOrJsPage – use ::isSiteConfigPage
|
||||
* Title::isCssJsSubpage – use ::isUserConfigPage
|
||||
* Title::isCssSubpage – use ::isUserCssConfigPage
|
||||
* Title::isJsSubpage – use ::isUserJsConfigPage
|
||||
* The following methods related to caching of half-parsed HTML were deprecated:
|
||||
* Parser::serializeHalfParsedText()
|
||||
* Parser::unserializeHalfParsedText()
|
||||
* Parser::isValidHalfParsedText()
|
||||
* StripState::getSubState()
|
||||
* StripState::merge()
|
||||
* The DeferredStringifier class is deprecated, use Message::listParam() instead.
|
||||
* The type string for the parameter $lang of DateFormatter::getInstance is
|
||||
deprecated.
|
||||
* Wikimedia\Rdbms\SavepointPostgres is deprecated.
|
||||
* The DO_MAINTENANCE constant is deprecated. RUN_MAINTENANCE_IF_MAIN should be
|
||||
used instead.
|
||||
* The function wfShellWikiCmd() has been deprecated, use
|
||||
MediaWiki\Shell::makeScriptCommand().
|
||||
* In the future, the hooks 'PreferencesFormPreSave' and 'PreferencesGetLegend'
|
||||
will be allowed to provide any HTMLForm object rather than PreferencesForm.
|
||||
|
||||
=== Other changes in 1.31 ===
|
||||
* Browser support for Internet Explorer 10 was lowered from Grade A to Grade C.
|
||||
* Browser support for Opera 12 and older was dropped entirely. Opera 15+
|
||||
continues at Grade A.
|
||||
* Multi-content-revision capability was introduced into the storage layer. See
|
||||
<https://mediawiki.org/wiki/Requests_for_comment/Multi-Content_Revisions>.
|
||||
* The "free" CSS class is now only applied to unbracketed URLs in wikitext.
|
||||
Links written using square brackets will get the class "text" not "free".
|
||||
* RFC 157418: Whitespace is trimmed from wikitext headings, wikitext list items,
|
||||
wikitext table captions, wikitext table headings, wikitext table cells. HTML
|
||||
headings, HTML list items, HTML table captions, HTML table headings, HTML
|
||||
table cells will not have this trimming behavior.
|
||||
|
||||
== Compatibility ==
|
||||
MediaWiki 1.31 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is
|
||||
supported, it is generally advised to use PHP 7.0.0 or later for long term
|
||||
support.
|
||||
|
||||
MySQL/MariaDB 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.5.8 or later
|
||||
* PostgreSQL 9.2 or later
|
||||
* SQLite 3.3.7 or later
|
||||
* Oracle 9.0.1 or later
|
||||
* Microsoft SQL Server 2005 (9.00.1399)
|
||||
|
||||
== Upgrading ==
|
||||
1.31 has several database changes since 1.30, 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).
|
||||
|
||||
Don't forget to always back up your database before upgrading!
|
||||
|
||||
See the file UPGRADE for more detailed upgrade instructions, including
|
||||
important information when upgrading from versions prior to 1.11.
|
||||
|
||||
For notes on 1.30.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.
|
||||
|
||||
|
||||
= MediaWiki 1.30 =
|
||||
|
||||
== MediaWiki 1.30.1 ==
|
||||
|
||||
This is a security and maintenance release of the MediaWiki 1.30 branch.
|
||||
|
||||
=== Changes since MediaWiki 1.30.0 ===
|
||||
* (T169545, CVE-2018-0503) SECURITY: $wgRateLimits entry for 'user' overrides
|
||||
'newbie'.
|
||||
* (T194605, CVE-2018-0505) SECURITY: BotPasswords can bypass CentralAuth's
|
||||
account lock.
|
||||
* (T87572) Make FormatMetadata::flattenArrayReal() work for an associative array.
|
||||
* Updated composer/spdx-licenses from 1.1.4 to 1.3.0 (development dependency).
|
||||
* (T189567) the CLI installer (maintenance/install.php) learned to detect and
|
||||
include extensions. Pass --with-extensions to enable that feature.
|
||||
* (T190503) Let built-in web server (maintenance/dev) handle .php requests.
|
||||
* (T167507) selenium: Run Chrome headlessly.
|
||||
* selenium: Pass -no-sandbox to Chrome under Docker.
|
||||
* (T179190) selenium: Move logic for running tests from package.json to selenium.sh
|
||||
* (T192584) Stop incorrectly passing USE INDEX to RecentChange::newFromConds().
|
||||
* Add default edit rate limit of 90 edits/minute for all users.
|
||||
* (T186565) Fix PHP Notice from `ob_end_flush()` in `FileRepo::streamFile()`.
|
||||
* oojs/oojs-ui updated to remove an unnecessary dependancy.
|
||||
* (T196125) php-memcached 3.0 (provided with PHP 7.0) is now supported.
|
||||
* (T118683) Fix exception from &$user deref on HHVM in the TitleMoveComplete hook.
|
||||
* (T196672) The mtime of extension.json files is now able to be zero
|
||||
* (T180403) Validate $length in padleft/padright parser functions.
|
||||
* (T143790) Make $wgEmailConfirmToEdit only affect edit actions.
|
||||
* (T193995) Fix undefined patchPath() method call in parser tests.
|
||||
* Special:BotPasswords now requires reauthentication.
|
||||
* (T191608, T187638) Add 'logid' parameter to Special:Log.
|
||||
* (T193829) Indicate when a Bot Password needs reset.
|
||||
* (T151415) Log email changes.
|
||||
* (T200861) Fix total breakage of SQLite web upgrade.
|
||||
* (T202550) Unbreak SpecialListusersHeaderForm and SpecialListusersHeader
|
||||
hooks.
|
||||
* (T190539) Explicitly require Postgres 9.1.
|
||||
* (T118420) Unbreak Oracle installer.
|
||||
|
||||
== MediaWiki 1.30.0 ==
|
||||
|
||||
=== Changes since MediaWiki 1.30.0-rc.0 ===
|
||||
|
@ -265,6 +814,49 @@ changes to languages because of Phabricator reports.
|
|||
|
||||
= MediaWiki 1.29 =
|
||||
|
||||
== MediaWiki 1.29.3 ==
|
||||
|
||||
This is a security and maintenance release of the MediaWiki 1.29 branch.
|
||||
|
||||
=== Changes since 1.29.2 ===
|
||||
* (T169545, CVE-2018-0503) SECURITY: $wgRateLimits entry for 'user' overrides
|
||||
'newbie'.
|
||||
* (T194605, CVE-2018-0505) SECURITY: BotPasswords can bypass CentralAuth's
|
||||
account lock.
|
||||
* (T180551) Fix LanguageSrTest for language converter
|
||||
* (T180552) Fix langauge converter parser test with self-close tags
|
||||
* (T180537) Remove $wgAuth usage from wrapOldPasswords.php
|
||||
* (T180485) InputBox: Have inputbox langconvert certain attributes
|
||||
* (T161732, T181547) Upgraded Moment.js from v2.15.0 to v2.19.3.
|
||||
* (T172927) Drop vendor from MW release branch
|
||||
* (T87572) Make FormatMetadata::flattenArrayReal() work for an associative array
|
||||
* Updated composer/spdx-licenses from 1.1.4 to 1.3.0 (development dependency).
|
||||
* (T189567) the CLI installer (maintenance/install.php) learned to detect and
|
||||
include extensions. Pass --with-extensions to enable that feature.
|
||||
* (T182381) Mask deprecated call in WatchedItemUnitTest
|
||||
* (T190503) Let built-in web server (maintenance/dev) handle .php requests.
|
||||
* The karma qunit tests would fail on some configuration due to headers already
|
||||
sent. Check headers_sent() before sending cpPosTime headers
|
||||
* (T167507) selenium: Run Chrome headlessly.
|
||||
* selenium: Pass -no-sandbox to Chrome under Docker
|
||||
* (T191247) Use MediaWiki\SuppressWarnings around trigger_error('') instead @
|
||||
* (T75174, T161041) Unit test ChangesListSpecialPageTest::testFilterUserExpLevel
|
||||
fails under SQLite.
|
||||
* (T192584) Stop incorrectly passing USE INDEX to RecentChange::newFromConds().
|
||||
* (T179190) selenium: Move test running logic from package.json to selenium.sh.
|
||||
* (T117839, T193200) PDFHandler: Fix for pdfinfo changes in poppler-utils 0.48.
|
||||
* Add default edit rate limit of 90 edits/minute for all users.
|
||||
* (T196125) php-memcached 3.0 (provided with PHP 7.0) is now supported.
|
||||
* (T196672) The mtime of extension.json files is now able to be zero
|
||||
* (T180403) Validate $length in padleft/padright parser functions.
|
||||
* (T143790) Make $wgEmailConfirmToEdit only affect edit actions.
|
||||
* (T194237) Special:BotPasswords now requires reauthentication.
|
||||
* (T191608, T187638) Add 'logid' parameter to Special:Log.
|
||||
* (T176097) resourceloader: Disable a flaky MessageBlobStoreTest case
|
||||
* (T193829) Indicate when a Bot Password needs reset.
|
||||
* (T151415) Log email changes.
|
||||
* (T118420) Unbreak Oracle installer.
|
||||
|
||||
== MediaWiki 1.29.2 ==
|
||||
|
||||
This is a security and maintenance release of the MediaWiki 1.29 branch.
|
||||
|
@ -1040,6 +1632,34 @@ There's usually someone online in #mediawiki on irc.freenode.net.
|
|||
|
||||
= MediaWiki 1.27 =
|
||||
|
||||
== MediaWiki 1.27.5 ==
|
||||
|
||||
This is a security and maintenance release of the MediaWiki 1.27 branch.
|
||||
|
||||
=== Changes since 1.27.4 ===
|
||||
* (T169545, CVE-2018-0503) SECURITY: $wgRateLimits entry for 'user' overrides
|
||||
'newbie'.
|
||||
* (T194605, CVE-2018-0505) SECURITY: BotPasswords can bypass CentralAuth's
|
||||
account lock.
|
||||
* Upgraded Moment.js from v2.8.4 to v2.19.3.
|
||||
* (T160298) Fixed Special:ActiveUsers due to bad backport.
|
||||
* (T87572) Make FormatMetadata::flattenArrayReal() work for an associative array.
|
||||
* Updated list of SPDX licenses for extensions.
|
||||
* (T189567) the CLI installer (maintenance/install.php) learned to detect and
|
||||
include extensions. Pass --with-extensions to enable that feature.
|
||||
* (T192584) Stop incorrectly passing USE INDEX to RecentChange::newFromConds().
|
||||
* Add default edit rate limit of 90 edits/minute for all users.
|
||||
* (T196125) php-memcached 3.0 (provided with PHP 7.0) is now supported.
|
||||
* (T196672) The mtime of extension.json files is now able to be zero.
|
||||
* (T118683) Fix exception from &$user deref on HHVM in the TitleMoveComplete hook.
|
||||
* (T180403) Validate $length in padleft/padright parser functions.
|
||||
* (T143790) Make $wgEmailConfirmToEdit only affect edit actions.
|
||||
* Special:BotPasswords now requires reauthentication.
|
||||
* (T191608, T187638) Add 'logid' parameter to Special:Log.
|
||||
* (T193829) Indicate when a Bot Password needs reset.
|
||||
* (T151415) Log email changes.
|
||||
* (T118420) Unbreak Oracle installer.
|
||||
|
||||
== MediaWiki 1.27.4 ==
|
||||
This is a security and maintenance release of the MediaWiki 1.27 branch.
|
||||
|
||||
|
@ -4244,7 +4864,7 @@ This is a maintenance release of the MediaWiki 1.22 branch.
|
|||
|
||||
=== Changes since 1.22.9 ===
|
||||
* (bug 64970) Fix support for blobs on DatabaseOracle::update
|
||||
* (bug 60719) In MediaWiki 1.22, the job queue execution on each page request was changed (Gerrit change 59797) so, instead of executing the job inside the same PHP process that's rendering the page, a new PHP cli command is spawned to execute runJobs.php in the background. It will only work if $wgPhpCli is set to an actual path or safe mode is off, otherwise, the old method will be used. https://www.mediawiki.org/wiki/Manual:Job_queue#Changes_introduced_in_MediaWiki_1.22 for more infomation. This change was in earlier releases of 1.22 but was not noted here until now.
|
||||
* (bug 60719) In MediaWiki 1.22, the job queue execution on each page request was changed (Gerrit change 59797) so, instead of executing the job inside the same PHP process that's rendering the page, a new PHP cli command is spawned to execute runJobs.php in the background. It will only work if $wgPhpCli is set to an actual path or safe mode is off, otherwise, the old method will be used. https://www.mediawiki.org/wiki/Manual:Job_queue#Changes_introduced_in_MediaWiki_1.22 for more information. This change was in earlier releases of 1.22 but was not noted here until now.
|
||||
|
||||
== MediaWiki 1.22.9 ==
|
||||
This is a security and maintenance release of the MediaWiki 1.22 branch.
|
||||
|
@ -5322,7 +5942,7 @@ This is a security and maintenance release of the MediaWiki 1.20 branch.
|
|||
* Localisation updates from http://translatewiki.net.
|
||||
* mwdocgen.php: Implement --version option.
|
||||
* Remove svnstat stuff used in Doxygen generation
|
||||
* (bug 43594) Correctly supress warnings that were missed after the upstream
|
||||
* (bug 43594) Correctly suppress warnings that were missed after the upstream
|
||||
* PHP change to E_STRICT being included in E_ALL.
|
||||
|
||||
== MediaWiki 1.20.4 ==
|
||||
|
@ -11419,7 +12039,7 @@ it from source control: https://www.mediawiki.org/wiki/Download_from_SVN
|
|||
* (bug 11082) Fix check for fully-specced table names in Database::tableName
|
||||
* (bug 11067) Fix regression in upload conflict thumbnail display
|
||||
* (bug 10985) Resolved cached entries on Special:DoubleRedirects were being
|
||||
supressed, breaking paging - now strikes out "fixed" results
|
||||
suppressed, breaking paging - now strikes out "fixed" results
|
||||
* (bug 8393) <sup> and <sub> need to be preserved (without attributes) for
|
||||
entries in the table of contents
|
||||
* (bug 11114) Fix regression in read-only mode error display during editing
|
||||
|
@ -15829,7 +16449,7 @@ pages for purposes of page relevancy ranking.
|
|||
* (bug 1241) Don't show 'cont.' for first entry of the category list
|
||||
* (bug 1240) Special:Preferences was broken in Slovenian locale when
|
||||
$wgUseDynamicDates is enabled
|
||||
* Added magic word MAG_NOCONTENTCONVERT to supress the conversion of the
|
||||
* Added magic word MAG_NOCONTENTCONVERT to suppress the conversion of the
|
||||
content of an article. Useful in zh:
|
||||
* write-lock for updating the zh conversion tables in memcache
|
||||
* recursively parse subpages of MediaWiki:Zhconversiontable
|
||||
|
|
13
INSTALL
13
INSTALL
|
@ -17,11 +17,8 @@ Required software:
|
|||
MediaWiki is developed and tested mainly on Unix/Linux platforms, but should
|
||||
work on Windows as well.
|
||||
|
||||
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/Special:MyLanguage/Extension:Math
|
||||
Support for specialised content requires installing the relevant extension. For
|
||||
formulæ, see https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Math
|
||||
|
||||
Don't forget to check the RELEASE-NOTES file...
|
||||
|
||||
|
@ -56,7 +53,7 @@ ie. /wiki/index.php/Article.
|
|||
| will appear. It is common in this case to use w as the folder name and |
|
||||
| /wiki/ as the virtual article path where your articles pretend to be. |
|
||||
| |
|
||||
| See: https://www.mediawiki.org/wiki/Manual:Short_URL |
|
||||
| See: https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Short_URL |
|
||||
+--------------------------------------------------------------------------+
|
||||
|
||||
Hop into your browser and surf into the wiki directory. It'll direct you into
|
||||
|
@ -70,8 +67,8 @@ available to download from the installer. Download this now, there is not a
|
|||
way (yet) to get it after you exit the installer. Place it in the main wiki
|
||||
directory, and the wiki should now be working.
|
||||
|
||||
Once the wiki is set up, you should remove the mw-config directory (though it will
|
||||
refuse to config again if the wiki is set up).
|
||||
Once the wiki is set up, you should remove the mw-config directory (though it
|
||||
will refuse to config again if the wiki is set up).
|
||||
|
||||
----
|
||||
|
||||
|
|
|
@ -1,506 +0,0 @@
|
|||
== MediaWiki 1.31.1 ==
|
||||
|
||||
This is a security and maintenance release of the MediaWiki 1.31 branch.
|
||||
|
||||
=== Changes since MediaWiki 1.31.0 ===
|
||||
* (T169545, CVE-2018-0503) SECURITY: $wgRateLimits entry for 'user' overrides
|
||||
'newbie'.
|
||||
* (T194605, CVE-2018-0505) SECURITY: BotPasswords can bypass CentralAuth's
|
||||
account lock.
|
||||
* (T199029, CVE-2018-13258) SECURITY: Tarball was missing .htaccess files.
|
||||
* (T197229) Bundle Nuke extension, it was accidentally omitted.
|
||||
* (T193995) Fix undefined patchPath() method call in parser tests.
|
||||
* (T198687) Fix various selectFields methods to use the string 'NULL', not null.
|
||||
* Special:BotPasswords now requires reauthentication.
|
||||
* (T191608, T187638) Add 'logid' parameter to Special:Log.
|
||||
* (T193829) Indicate when a Bot Password needs reset.
|
||||
* (T198037) GitInfo: Don't try shelling out if it's disabled.
|
||||
* (T151415) Log email changes.
|
||||
* (T197206) Fix performance regression when multiple DB used without caching.
|
||||
* (T197030) PHPSessionHandler: Suppress headers warnings in initialize().
|
||||
* (T182377, T196793) Exif: Guard against uncountable tag values.
|
||||
* (T200861) Fix total breakage of SQLite web upgrade.
|
||||
* (T200864) Fix pingback over-reporting on non-MySQL databases
|
||||
* (T202550) Unbreak SpecialListusersHeaderForm and SpecialListusersHeader
|
||||
hooks.
|
||||
|
||||
=== Changes since MediaWiki 1.31.0-rc.2 ===
|
||||
* (T195783) Initialize PSR-4 namespaces at same stage as normal autoloader.
|
||||
* (T196092) Hide MySQL binary/utf-8 charset option in the installer.
|
||||
* (T196185) Don't allow setting $wgDBmysql5 in the installer.
|
||||
* (T196125) php-memcached 3.0 (provided with PHP 7.0) is now supported.
|
||||
* (T182366) UploadBase::checkXMLEncodingMissmatch() now works on PHP 7.1+
|
||||
* (T118683) Fix exception from &$user deref on HHVM in the TitleMoveComplete hook.
|
||||
* (T196672) The mtime of extension.json files is now able to be zero
|
||||
* (T180403) Validate $length in padleft/padright parser functions.
|
||||
* (T143790) Make $wgEmailConfirmToEdit only affect edit actions.
|
||||
|
||||
=== Changes since MediaWiki 1.31.0-rc.0 ===
|
||||
* (T33223) Drop archive.ar_text and ar_flags.
|
||||
* Add default edit rate limit of 90 edits/minute for all users.
|
||||
* (T187645) Use codepoint as tiebreaker when getting first-letters in
|
||||
IcuCollation.
|
||||
* (T191947) Don't shell during the installer if shelling out is disabled.
|
||||
* (T194319) Improve duplicate config setting exception as part of extension
|
||||
registration.
|
||||
* (T195211) Don't require trailing slash in PSR-4 autoloader directory.
|
||||
* (T186565) Fix PHP Notice from `ob_end_flush()` in `FileRepo::streamFile()`.
|
||||
* Do not incorrectly hide namespace input field in the installer.
|
||||
* (T186456) Refactor checks looking for PEAR maik libraries to be clearer.
|
||||
|
||||
=== Important pre-upgrade notes for 1.31 ===
|
||||
* If you're using MySQL, SQLite, or MSSQL, are not using update.php to apply
|
||||
schema changes, and cannot have downtime to run migrateArchiveText.php and
|
||||
apply patch-drop-ar_text.sql manually, you'll have to apply a default value
|
||||
to the ar_text and ar_flags columns of the archive table or make those
|
||||
columns nullable before upgrading to MediaWiki 1.31.
|
||||
maintenance/archives/patch-nullable-ar_text.sql shows how to do this for MySQL.
|
||||
|
||||
=== Configuration changes in 1.31 ===
|
||||
* $wgEnableAPI and $wgEnableWriteAPI are now deprecated and will be removed in
|
||||
a future version. The API is now considered to be stable, secure and
|
||||
essential.
|
||||
* $wgUsejQueryThree was removed, as it is now the default. This was documented
|
||||
as a temporary variable during the migration period, deprecated since 1.29.
|
||||
* $wgLogoHD has been updated to support svg images and uses $wgLogo where
|
||||
possible for fallback images such as png.
|
||||
* (T44246) $wgFilterLogTypes will no longer ignore 'patrol' when user does not
|
||||
have the right to mark things patrolled.
|
||||
* Wikis that contain imported revisions or CentralAuth global blocks should run
|
||||
maintenance/cleanupUsersWithNoId.php.
|
||||
* The configuration settings $wgResourceLoaderMinifierStatementsOnOwnLine and
|
||||
$wgResourceLoaderMinifierMaxLineLength, deprecated since 1.27, were removed.
|
||||
* (T180921) $wgReferrerPolicy now supports having fallbacks for browsers that
|
||||
are not using the latest version of the Referrer Policy specification.
|
||||
* $wgFragmentMode is now set to [ 'legacy', 'html5' ] by default. This is a
|
||||
first step of migration to human-readable section IDs that will later result
|
||||
in 'html5' being the default mode.
|
||||
* CACHE_ACCEL now only supports APC(u) or WinCache. XCache support was removed
|
||||
as upstream is inactive and has no plans to move to PHP 7.
|
||||
* The old CategorizedRecentChanges feature, including its related configuration
|
||||
option $wgAllowCategorizedRecentChanges, has been removed.
|
||||
* (T188472) The 'comma' value for $wgArticleCountMethod is no longer supported
|
||||
for performance reasons, and installations with this setting will now work as
|
||||
if it was configured with 'any'.
|
||||
* (T185753) MediaWiki now defaults to using RemexHtml to tidy up user input,
|
||||
rather than being off by default. If you wish to disable HTML tidying
|
||||
entirely, set $wgTidyConfig to null; if you wish to use the old, deprecated
|
||||
Tidy external binary, both set $wgTidyConfig to null and $wgUseTidy to true.
|
||||
* $wgLogAutopatrol now defaults to false instead of true.
|
||||
* $wgValidateAllHtml was removed and will be ignored.
|
||||
* $wgScriptExtension, deprecated and ignored since 1.25, was removed. See the
|
||||
1.25 release notes for more information.
|
||||
* $wgUseAjax is now marked as deprecated, just like the deprecated AJAX
|
||||
framework that it enables. Some extensions mistakenly used this to check
|
||||
whether any AJAX functionality at all should be enabled, further making this
|
||||
problematic to retain.
|
||||
* $wgDBmysql5 is now deprecated, and will be removed in a future version. It
|
||||
has been marked as experimental ever since it was introduced.
|
||||
|
||||
=== New features in 1.31 ===
|
||||
* (T76554) User sub-pages named ….json are now protected in the same way that
|
||||
….js and ….css pages are, so that configuration options can safely be placed
|
||||
there.
|
||||
* Wikimedia\Rdbms\IDatabase->select() and similar methods now support joins
|
||||
with parentheses for grouping.
|
||||
* As a first pass in standardizing dialog boxes across the MediaWiki product,
|
||||
Html class now provides helper methods for messageBox, successBox, errorBox
|
||||
and warningBox generation.
|
||||
* (T9240) Imports will now record unknown (and, optionally, known) usernames in
|
||||
a format like "iw>Example".
|
||||
* (T20209) Linker (used on history pages, log pages, and so on) will display
|
||||
usernames formed like "iw>Example" as interwiki links, as if by wikitext like
|
||||
[[iw:User:Example|iw>Example]].
|
||||
* (T111605) The 'ImportHandleUnknownUser' hook allows extensions to auto-create
|
||||
users during an import.
|
||||
* Added a hook, ParserOutputPostCacheTransform, to allow extensions to affect
|
||||
the ParserOutput::getText() post-cache transformations.
|
||||
* Added a hook, UploadForm:getInitialPageText, to allow extensions to alter the
|
||||
initial page text for file uploads.
|
||||
* (T181651) The info page for File pages now displays the file's base-16 SHA1
|
||||
hash value in the table of basic information.
|
||||
* Style tags with a 'data-mw-deduplicate' attribute will be deduplicated as a
|
||||
ParserOutput::getText() post-cache transformation. This may be disabled by
|
||||
passing 'deduplicateStyles' => false to that method.
|
||||
* The identity of the logged-in or IP "actor" for logged actions is being moved
|
||||
into a new actor table, with the rows in tables such as revision and logging
|
||||
referring to the actor ID instead of storing the user ID and name/IP in
|
||||
every row.
|
||||
* This is currently gated by $wgActorTableSchemaMigrationStage. Most wikis
|
||||
can set this to MIGRATION_NEW and run maintenance/migrateActors.php as
|
||||
soon as any necessary extensions are updated.
|
||||
* Most code accessing rows for logged actions from the database should use
|
||||
the relevant getQueryInfo() methods to get the information needed to build
|
||||
the SQL query. The ActorMigration class may also be used to get feature
|
||||
-flagged information needed to access actor-related fields during the
|
||||
migration period.
|
||||
* Added Wikimedia\Rdbms\IDatabase::cancelAtomic(), to roll back an atomic
|
||||
section without having to roll back the whole transaction.
|
||||
* Wikimedia\Rdbms\IDatabase::doAtomicSection(), non-native ::insertSelect(),
|
||||
and non-MySQL ::replace() and ::upsert() no longer roll back the whole
|
||||
transaction on failure.
|
||||
* (T189785) Added a monthly heartbeat ping to the pingback feature.
|
||||
* The CLI installer (maintenance/install.php) learned to detect and include
|
||||
extensions. Pass --with-extensions to enable that feature.
|
||||
* (T184791) rc_patrolled now has three states: "0" for unpatrolled,
|
||||
"1" for manually patrolled and "2" for autopatrolled actions.
|
||||
* Extensions can now set their type to "editor" if they provide an editor or
|
||||
enhance the editing experience.
|
||||
* Extensions can use a PSR-4 autoloader by setting an "AutoloadNamespaces"
|
||||
property in extension.json. See the documentation at
|
||||
<https://mediawiki.org/wiki/Manual:Extension.json/Schema#AutoloadNamespaces>
|
||||
for more details and an example.
|
||||
* (T19099) Tabs which link to pages that don't exist (like those to uncreated
|
||||
discussion pages) now have a tooltip to indicate state, not just colour.
|
||||
|
||||
=== External library changes in 1.31 ===
|
||||
* pear/mail, pear/mail_mime and pear/mail_mime-decode have been moved from
|
||||
suggested to required. These packages now must be installed via composer
|
||||
and not via PEAR itself.
|
||||
|
||||
==== Upgraded external libraries ====
|
||||
* Updated jquery.chosen from v0.9.14 to v1.8.2.
|
||||
* Updated composer/spdx-licenses from 1.1.4 to 1.3.0 (development dependency).
|
||||
* Updated nikic/php-parser from 2.1.0 to 3.1.3 (development dependency).
|
||||
* Updated wikimedia/ip-set from 1.1.0 to 1.2.0.
|
||||
* Updated wikimedia/relpath from 2.0.0 to 2.1.1.
|
||||
* Updated wikimedia/running-stat from 1.1.0 to 1.2.0.
|
||||
* Updated wikimedia/wrappedstring from 2.2.0 to 2.3.0.
|
||||
* Updated mediawiki/at-ease from 1.1.0 to 1.2.0.
|
||||
* Updated wikimedia/php-session-serializer from 1.0.4 to 1.0.6.
|
||||
* Updated wikimedia/remex-html from 1.0.2 to 1.0.3.
|
||||
* Updated wikimedia/html-formatter from 1.0.1 to 1.0.2.
|
||||
|
||||
==== New external libraries ====
|
||||
* Added wikimedia/object-factory 1.0.0
|
||||
|
||||
==== Removed and replaced external libraries ====
|
||||
* (T17845) The deprecated 'jquery.badge' module was removed.
|
||||
* The deprecated 'jquery.autoEllipsis' module was removed. Use the CSS
|
||||
text-overflow property instead.
|
||||
* The deprecated 'jquery.placeholder' module was removed.
|
||||
* The deprecated 'jquery.appear' module was removed. Use the
|
||||
'mediawiki.viewport' module instead.
|
||||
* mediawiki/at-ease was replaced with wikimedia/at-ease.
|
||||
|
||||
=== Bug fixes in 1.31 ===
|
||||
* (T90902) Non-breaking space in header ID breaks anchor.
|
||||
* (T189375) CSSMin now allows quoted urls in `url()` syntax to start with a
|
||||
space.
|
||||
* (T2087, T10897, T87753, T174639) Whitespace created by category and language
|
||||
links is now stripped rather than leaving blank lines in odd places.
|
||||
* (T3780) Uploads with UTF-8 names now work on PHP7.1+ on Windows servers.
|
||||
* (T182366) UploadBase::checkXMLEncodingMissmatch() now works on PHP 7.1+
|
||||
|
||||
=== Action API changes in 1.31 ===
|
||||
* (T185058) The 'name' value to tgprop for action=query&list=tags has been
|
||||
removed. It has never made a difference in the output, the name was always
|
||||
returned regardless.
|
||||
* The 'watch' and 'unwatch' parameters for action=move have been removed. They
|
||||
were deprecated and also accidentally nonfunctional since 1.17 in 2010. Use
|
||||
'watchlist' instead.
|
||||
|
||||
=== Action API internal changes in 1.31 ===
|
||||
* ApiBase::getProfileDBTime, deprecated since 1.25, was removed.
|
||||
* ApiBase::getModuleProfileName, deprecated since 1.25, was removed.
|
||||
* ApiBase::getProfileTime, deprecated since 1.25, was removed.
|
||||
|
||||
=== Languages updated in 1.31 ===
|
||||
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.
|
||||
|
||||
* (T180052) Mirandese (mwl) now supports gendered NS_USER/NS_USER_TALK.
|
||||
* (T182305) New language support: Nyungar (nys).
|
||||
* (T186359) New language support: Siberian Tatar [cебертатар] (sty).
|
||||
* (T186635) New language support: Guianan Creole (gcr).
|
||||
* (T186647) New language support: Kumyk [къумукъ] (kum).
|
||||
* (T187750) New language support: Spanish formal address (es-formal).
|
||||
* (T187824) New language support: Hungarian formal address (hu-formal).
|
||||
* (T189127) New language support: Gorontalo (gor).
|
||||
|
||||
=== Breaking changes in 1.31 ===
|
||||
* MessageBlobStore::insertMessageBlob(), deprecated in 1.27, was removed.
|
||||
* The OutputPage class constructor now requires a context parameter.
|
||||
Instantiating without context was deprecated in 1.18.
|
||||
* The mw.page JavaScript singleton, deprecated in 1.30, was removed.
|
||||
* Article::getLastPurgeTimestamp(), WikiPage::getLastPurgeTimestamp(), and the
|
||||
related WikiPage::PURGE_* constants, deprecated in 1.29, were removed.
|
||||
* The Article::selectFields(), ::onArticleCreate(), ::onArticleDelete(), and
|
||||
::onArticleEdit() methods, deprecated in 1.24, were removed.
|
||||
* Installer::locateExecutable() and ::locateExecutableInDefaultPaths() were
|
||||
removed. Use ExecutableFinder::findInDefaultPaths() instead.
|
||||
* The deprecated MW_DIFF_VERSION constant was removed.
|
||||
DifferenceEngine::MW_DIFF_VERSION should be used instead.
|
||||
* Due to significant refactoring, method ContribsPager::getUserCond() that had
|
||||
no access restriction has been removed.
|
||||
* The Block class will no longer accept usable-but-missing usernames for
|
||||
'byText' or ->setBlocker(). Callers should either ensure the blocker exists
|
||||
locally or use a new interwiki-format username like "iw>Example".
|
||||
* The following methods and constants from the WatchedItem class, which were
|
||||
deprecated in 1.27, have been removed:
|
||||
* WatchedItem::getTitle()
|
||||
* WatchedItem::fromUserTitle()
|
||||
* WatchedItem::addWatch()
|
||||
* WatchedItem::removeWatch()
|
||||
* WatchedItem::isWatched()
|
||||
* WatchedItem::duplicateEntries()
|
||||
* WatchedItem::IGNORE_USER_RIGHTS
|
||||
* WatchedItem::CHECK_USER_RIGHTS
|
||||
* WatchedItem::DEPRECATED_USAGE_TIMESTAMP
|
||||
* The $statementsOnOwnLine parameter of JavaScriptMinifier::minify was removed.
|
||||
$wgResourceLoaderMinifierStatementsOnOwnLine, the corresponding configuration
|
||||
variable, has been deprecated since 1.27 and was removed as well.
|
||||
* The $maxLineLength parameter of JavaScriptMinifier::minify was removed.
|
||||
$wgResourceLoaderMinifierMaxLineLength, the corresponding configuration
|
||||
variable, has been deprecated since 1.27 and was removed as well.
|
||||
* The HtmlFormatter class, deprecated in 1.27, was removed. The namespaced
|
||||
HtmlFormatter\HtmlFormatter class should be used instead.
|
||||
* The driver 'mysql' for MySQL, deprecated in MediaWiki 1.30, has been removed.
|
||||
The driver has been deprecated since PHP 5.5 and was removed in PHP 7.0. The
|
||||
default driver for MySQL has been 'mysqli' since MediaWiki 1.22.
|
||||
* The following properties of PreparedEdit were deprecated in 1.21 and have
|
||||
been removed:
|
||||
* PreparedEdit->newText
|
||||
* PreparedEdit->oldText
|
||||
* PreparedEdit->pst
|
||||
* ParserOutput objects which are generated using a non-default value for
|
||||
ParserOptions::setWrapOutputClass() can no longer be added to the parser
|
||||
cache.
|
||||
* The following deprecated methods from the OutputPage class have been removed:
|
||||
* OutputPage::addExtensionStyle(); deprecated in 1.27
|
||||
* OutputPage::getExtStyle(); deprecated in 1.27
|
||||
* OutputPage::setETag(); deprecated in 1.28 (obsolete no-op)
|
||||
* OutputPage::setSquidMaxage(); deprecated in 1.27
|
||||
* OutputPage::readOnlyPage(); deprecated in 1.25
|
||||
* OutputPage::rateLimited(); deprecated in 1.25
|
||||
* Additionally, the protected OutputPage::$mExtStyles array, only accessed
|
||||
through the above and with no known uses, was removed.
|
||||
* The no-op method Skin::showIPinHeader(), deprecated in 1.27, was removed.
|
||||
* The following variables and methods in EditPage, deprecated in MediaWiki 1.30,
|
||||
were removed:
|
||||
* $isCssJsSubpage — use ::isUserConfigPage()
|
||||
* $isCssSubpage — use ::isUserCssConfigPage()
|
||||
* $isJsSubpage — use ::isUserJsConfigPage()
|
||||
* $isWrongCaseCssJsPage – use ::isWrongCaseUserConfigPage()
|
||||
* ::getSummaryInput() – use ::getSummaryInputWidget()
|
||||
* ::getSummaryInputOOUI() – use ::getSummaryInputWidget()
|
||||
* ::getCheckboxes() – use ::getCheckboxesWidget() or
|
||||
::getCheckboxesDefinition()
|
||||
* ::getCheckboxesOOUI() – use ::getCheckboxesWidget() or
|
||||
::getCheckboxesDefinition()
|
||||
* ResourceLoaderModule::getPosition(), deprecated in 1.29, has been removed.
|
||||
* In User, the cookie-related methods which were wrappers for the functions on
|
||||
the response object, and were deprecated in 1.27, have been removed:
|
||||
* ::setCookie()
|
||||
* ::clearCookie()
|
||||
* ::setExtendedLoginCookie()
|
||||
Note that User::setCookies() remains, and is not deprecated.
|
||||
* Also in User, some auth-related methods which were deprecated in 1.27 have
|
||||
been removed:
|
||||
* ::getEditTokenTimestamp() – use MediaWiki\Session\Token::getTimestamp()
|
||||
* ::getPasswordFactory() – create a PasswordFactory directly
|
||||
* ::passwordChangeInputAttribs()
|
||||
* The global functions wfProfileIn and wfProfileOut, deprecated in 1.25, have
|
||||
been removed.
|
||||
* SpecialPageFactory::getList(), deprecated in 1.24, has been removed. You can
|
||||
use ::getNames() instead.
|
||||
* OpenSearch::getOpenSearchTemplate(), deprecated in 1.25, has been removed. You
|
||||
can use ApiOpenSearch::getOpenSearchTemplate() instead.
|
||||
* The global function wfBaseConvert, deprecated in 1.27, has been removed. Use
|
||||
Wikimedia\base_convert() directly.
|
||||
* Calling Database::begin() explicitly during an implicit transaction or when
|
||||
DBO_TRX is set results in an exception. Calling Database::commit() explicitly
|
||||
for an implicit transaction also results in an exception. Previously these
|
||||
were logged as errors. The startAtomic() and endAtomic() methods, or
|
||||
AtomicSectionUpdate should be used instead.
|
||||
* The global function wfOutputHandler() was removed, use the its replacement
|
||||
MediaWiki\OutputHandler::handle() instead. The global function was only
|
||||
sometimes defined. Its replacement is always available via the autoloader.
|
||||
* ChangeTags::listExtensionActivatedTags and ::listExtensionDefinedTags,
|
||||
deprecated in 1.28, have been removed. Use ::listSoftwareActivatedTags() and
|
||||
::listSoftwareDefinedTags() instead.
|
||||
* Title::getTitleInvalidRegex(), deprecated in 1.25, has been removed. You can
|
||||
use MediaWikiTitleCodec::getTitleInvalidRegex() instead.
|
||||
* HTMLForm & VFormHTMLForm::isVForm(), deprecated in 1.25, have been removed.
|
||||
* The ProfileSection class, deprecated in 1.25 and unused, has been removed.
|
||||
* The ResourceLoaderGetLessVars hook, deprecated in 1.30, has been removed. Use
|
||||
ResourceLoaderModule::getLessVars() to expose local variables instead of
|
||||
global ones.
|
||||
* As part of work to modernise user-generated content clean-up, a config option
|
||||
and some methods related to HTML validity were removed without deprecation.
|
||||
The public methods MWTidy::checkErrors() and the path through which it was
|
||||
called, TidyDriverBase::validate(), are removed, as are the testing methods
|
||||
MediaWikiTestCase::assertValidHtmlSnippet() and ::assertValidHtmlDocument().
|
||||
The $wgValidateAllHtml configuration option is removed and will be ignored.
|
||||
* Execution of external programs using MediaWiki\Shell\Command now applies
|
||||
the RESTRICT_DEFAULT Firejail restriction by default.
|
||||
* The ResourceLoaderModule::getHashMtime() and ::getDefinitionMtime() methods,
|
||||
deprecated in 1.26, were removed.
|
||||
* The deprecated 'mediawiki.widgets.CategorySelector' module alias was removed.
|
||||
Use the 'mediawiki.widgets.CategoryMultiselectWidget' module directly.
|
||||
|
||||
=== Deprecations in 1.31 ===
|
||||
* The Revision class was deprecated in favor of RevisionStore, BlobStore, and
|
||||
RevisionRecord and its subclasses.
|
||||
* The global function wfBCP47 is deprecated in favour of LanguageCode::bcp47.
|
||||
* The global function wfCountDown is now deprecated in favor of
|
||||
Maintenance::countDown.
|
||||
* Several methods for returning lists of fields to select from the database
|
||||
have been deprecated in favor of similar methods that also return the tables
|
||||
to select from and the join conditions for those tables.
|
||||
* Block::selectFields() → Block::getQueryInfo()
|
||||
* RecentChange::selectFields() → RecentChange::getQueryInfo()
|
||||
* ArchivedFile::selectFields() → ArchivedFile::getQueryInfo()
|
||||
* LocalFile::selectFields() → LocalFile::getQueryInfo()
|
||||
* LocalFile::getCacheFields() with a prefix no longer works
|
||||
* LocalFile::getLazyCacheFields() with a prefix no longer works
|
||||
* OldLocalFile::selectFields() → OldLocalFile::getQueryInfo()
|
||||
* RecentChange::selectFields() → RecentChange::getQueryInfo()
|
||||
* Revision::userJoinCond() → Revision::getQueryInfo( [ 'user' ] )
|
||||
* Revision::selectUserFields() → Revision::getQueryInfo( [ 'user' ] )
|
||||
* Revision::pageJoinCond() → Revision::getQueryInfo( [ 'page' ] )
|
||||
* Revision::selectPageFields() → Revision::getQueryInfo( [ 'page' ] )
|
||||
* Revision::selectTextFields() → Revision::getQueryInfo( [ 'text' ] )
|
||||
* Revision::selectFields() → Revision::getQueryInfo()
|
||||
* Revision::selectArchiveFields() → Revision::getArchiveQueryInfo()
|
||||
* User::selectFields() → User::getQueryInfo()
|
||||
* WikiPage::selectFields() → WikiPage::getQueryInfo()
|
||||
* Revision::setUserIdAndName() was deprecated.
|
||||
* Access to TitleValue class properties was deprecated, the relevant getters
|
||||
should be used instead.
|
||||
* DifferenceEngine::getDiffBodyCacheKey() is deprecated. Subclasses should
|
||||
override DifferenceEngine::getDiffBodyCacheKeyParams() instead.
|
||||
* Use of Maintenance::error( $err, $die ) to exit script was deprecated. Use
|
||||
Maintenance::fatalError() instead.
|
||||
* Passing a ParserOptions object to OutputPage::parserOptions() is deprecated.
|
||||
* The RevisionInsertComplete hook is now deprecated; use instead the hook
|
||||
RevisionRecordInserted. RevisionInsertComplete is still called, but the second
|
||||
and third parameter will always be null. Hard deprecation is scheduled for 1.32.
|
||||
* The following methods that get and set ParserOutput state are deprecated.
|
||||
Callers should use the new stateless $options parameter to
|
||||
ParserOutput::getText() instead.
|
||||
* ParserOptions::getEditSection()
|
||||
* ParserOptions::setEditSection()
|
||||
* ParserOutput::getEditSectionTokens()
|
||||
* ParserOutput::setEditSectionTokens()
|
||||
* ParserOutput::getTOCEnabled()
|
||||
* ParserOutput::setTOCEnabled()
|
||||
* OutputPage::enableSectionEditLinks()
|
||||
* OutputPage::sectionEditLinksEnabled()
|
||||
* The public ParserOutput state fields $mTOCEnabled and $mEditSectionTokens
|
||||
are also deprecated.
|
||||
* License::getLicenses has been deprecated; use License::getLines instead.
|
||||
* QuickTemplate::setRef() was deprecated in favour of QuickTemplate::set().
|
||||
Setting template variables by reference allowed violating the principle of
|
||||
data being immutable once added to the skin template. In practice, this method
|
||||
was not being used for that. Rather, setRef() existed as memory optimisation
|
||||
for PHP 4.
|
||||
* QuickTemplate::setTranslator() and MediaWikiI18N::set() were deprecated in
|
||||
favour of Skin::msg() parameters.
|
||||
* MediaWikiI18N::translate() was deprecated in favour of Skin::msg() or
|
||||
wfMessage().
|
||||
* Passing false to ParserOptions::setWrapOutputClass() is deprecated. Use the
|
||||
'unwrap' transform to ParserOutput::getText() instead.
|
||||
* \ObjectFactory (no namespace) is deprecated, the namespaced class
|
||||
\Wikimedia\ObjectFactory from the wikimedia/object-factory library should be
|
||||
used instead.
|
||||
* CommentStore::newKey is deprecated. Instead, get an instance from
|
||||
MediaWikiServices.
|
||||
* The following CommentStore methods have had their signatures changed to
|
||||
introduce a $key parameter, usage of the methods on instances retrieved from
|
||||
CommentStore::newKey will remain unchanged but deprecated:
|
||||
* CommentStore::getFields
|
||||
* CommentStore::getJoin
|
||||
* CommentStore::getComment
|
||||
* CommentStore::getCommentLegacy
|
||||
* CommentStore::insert
|
||||
* CommentStore::insertWithTemplate
|
||||
* The following methods in Title have been renamed, and the old ones are
|
||||
deprecated:
|
||||
* Title::getSkinFromCssJsSubpage – use ::getSkinFromConfigSubpage
|
||||
* Title::isCssOrJsPage – use ::isSiteConfigPage
|
||||
* Title::isCssJsSubpage – use ::isUserConfigPage
|
||||
* Title::isCssSubpage – use ::isUserCssConfigPage
|
||||
* Title::isJsSubpage – use ::isUserJsConfigPage
|
||||
* The following methods related to caching of half-parsed HTML were deprecated:
|
||||
* Parser::serializeHalfParsedText()
|
||||
* Parser::unserializeHalfParsedText()
|
||||
* Parser::isValidHalfParsedText()
|
||||
* StripState::getSubState()
|
||||
* StripState::merge()
|
||||
* The DeferredStringifier class is deprecated, use Message::listParam() instead.
|
||||
* The type string for the parameter $lang of DateFormatter::getInstance is
|
||||
deprecated.
|
||||
* Wikimedia\Rdbms\SavepointPostgres is deprecated.
|
||||
* The DO_MAINTENANCE constant is deprecated. RUN_MAINTENANCE_IF_MAIN should be
|
||||
used instead.
|
||||
* The function wfShellWikiCmd() has been deprecated, use
|
||||
MediaWiki\Shell::makeScriptCommand().
|
||||
* In the future, the hooks 'PreferencesFormPreSave' and 'PreferencesGetLegend'
|
||||
will be allowed to provide any HTMLForm object rather than PreferencesForm.
|
||||
|
||||
=== Other changes in 1.31 ===
|
||||
* Browser support for Internet Explorer 10 was lowered from Grade A to Grade C.
|
||||
* Browser support for Opera 12 and older was dropped entirely. Opera 15+
|
||||
continues at Grade A.
|
||||
* Multi-content-revision capability was introduced into the storage layer. See
|
||||
<https://mediawiki.org/wiki/Requests_for_comment/Multi-Content_Revisions>.
|
||||
* The "free" CSS class is now only applied to unbracketed URLs in wikitext.
|
||||
Links written using square brackets will get the class "text" not "free".
|
||||
* RFC 157418: Whitespace is trimmed from wikitext headings, wikitext list items,
|
||||
wikitext table captions, wikitext table headings, wikitext table cells. HTML
|
||||
headings, HTML list items, HTML table captions, HTML table headings, HTML
|
||||
table cells will not have this trimming behavior.
|
||||
|
||||
== Compatibility ==
|
||||
MediaWiki 1.31 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is
|
||||
supported, it is generally advised to use PHP 7.0.0 or later for long term
|
||||
support.
|
||||
|
||||
MySQL/MariaDB 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.5.8 or later
|
||||
* PostgreSQL 9.2 or later
|
||||
* SQLite 3.3.7 or later
|
||||
* Oracle 9.0.1 or later
|
||||
* Microsoft SQL Server 2005 (9.00.1399)
|
||||
|
||||
== Upgrading ==
|
||||
1.31 has several database changes since 1.30, 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).
|
||||
|
||||
Don't forget to always back up your database before upgrading!
|
||||
|
||||
See the file UPGRADE for more detailed upgrade instructions, including
|
||||
important information when upgrading from versions prior to 1.11.
|
||||
|
||||
For notes on 1.30.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.
|
|
@ -0,0 +1,743 @@
|
|||
== MediaWiki 1.32 ==
|
||||
|
||||
=== Changes since MediaWiki 1.32.0-rc.2 ===
|
||||
* (T188327) Fix slow queries in migrateActors.php.
|
||||
* (T102320) Fix $magicWords for the Sanskrit language.
|
||||
|
||||
=== Changes since MediaWiki 1.32.0-rc.1 ===
|
||||
* Fix addition of ug_expiry column to user_groups table on MSSQL.
|
||||
* (T210307) Fix the cache timestamp for forced updates.
|
||||
* (T210621) User: Bypass repeatable-read when creating an actor_id.
|
||||
* (T197535) Extensions can now specify PHP versions and PHP extensions they
|
||||
depend on.
|
||||
* Updated wikimedia/ip-set from v1.2.0 to v1.3.0.
|
||||
* (T212356) When using action=delete on pages with many revisions, the module
|
||||
may return a boolean-true 'scheduled' and no 'logid'. This signifies that the
|
||||
deletion will be processed via the job queue.
|
||||
* (T64103) Dropped columns category.cat_hidden, site_stats.ss_admins, and
|
||||
recentchanges.rc_cur_time from the PostgreSQL schema.
|
||||
|
||||
=== Changes since MediaWiki 1.32.0-rc.0 ===
|
||||
* (T209885) Prevent populateSearchIndex.php from breaking once actor migration
|
||||
has been started.
|
||||
* (T210998) Properly set $wgLanguageCode in the generated LocalSettings.php
|
||||
if --lang is used with the command-line installer (install.php).
|
||||
|
||||
=== Configuration changes in 1.32 ===
|
||||
|
||||
==== New configuration ====
|
||||
* $wgJpegQuality – The quality of JPEG thumbnails is now configurable through
|
||||
this setting. The default is 80, which matches the quality of JPEG thumbnails
|
||||
previously generated by ImageMagick. The quality of JPEG thumbnails generated
|
||||
by GD was previously 95, but now uses the $wgJpegQuality setting as well.
|
||||
* $wgCookieSetOnIpBlock - This determines whether to set a cookie when an IP
|
||||
user is blocked. Doing so means that a blocked user, even after moving to a
|
||||
new IP address, will still be blocked.
|
||||
* $wgRawHtmlMessages – This new configuration setting is added for listing
|
||||
messages which are displayed as raw HTML.
|
||||
* $wgCSPHeader and $wgCSPReportOnlyHeader – You can now define a
|
||||
"Content Security Policy" for your wiki. This adds a defense-in-depth feature
|
||||
to stop an attacker who has found a bug in the parser allowing them to insert
|
||||
malicious attributes. Disabled by default. (T135963)
|
||||
* $wgGroupPermissions – A new user group, 'interface-admin', is added for
|
||||
controlling access to sitewide CSS/JS (and editing other users' CSS/JS). No
|
||||
other group has 'editsitecss', 'editusercss', 'editsitejs' or 'edituserjs'
|
||||
by default.
|
||||
* $wgGrantPermissions – A new grant group, 'editsiteconfig', is added for
|
||||
granting the above rights.
|
||||
* $wgDBDefaultGroup – A default database group for use by maintenance scripts.
|
||||
* $wgResourceLoaderEnableJSProfiler – This new configuration setting lets you
|
||||
enable client-side profiling of JavaScript modules; it is off by default.
|
||||
* (T193868) $wgChangeTagsSchemaMigrationStage — This temporary configuration
|
||||
setting allows sysadmins to gradually migrate the database table schema for
|
||||
how change tags are stored.
|
||||
* (T199334) $wgTagStatisticsNewTable — This temporary configuration setting
|
||||
allows sysadmins to enable the caching of Special:Tags via the new
|
||||
change_tag_def table.
|
||||
|
||||
==== Changed configuration ====
|
||||
* $wgUseAjax – This setting, deprecated in 1.31, is now ignored.
|
||||
* $wgDefaultUserOptions – The default watchlist view time (watchlistdays) has
|
||||
been increased from 3 to 7 days. (T194414)
|
||||
* $wgGroupPermissions – The right to edit sitewide Javascript
|
||||
(e.g. MediaWiki:Common.js), CSS or JSON was separated from 'editinterface'
|
||||
and is available under 'editsitejs'/'editsitecss'/'editsitejson'. Having
|
||||
'editinterface' is still necessary to edit such pages.
|
||||
* $wgMultiContentRevisionSchemaMigrationStage now defaults to writing both the
|
||||
old and the new schema, but reading the new schema, so Multi-Content Revisions
|
||||
(MCR) are now functional per default. The new default value of the setting is
|
||||
SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW.
|
||||
* $wgActorTableSchemaMigrationStage no longer accepts MIGRATION_WRITE_BOTH or
|
||||
MIGRATION_WRITE_NEW. It instead uses SCHEMA_COMPAT_WRITE_BOTH |
|
||||
SCHEMA_COMPAT_READ_OLD and SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW
|
||||
for intermediate stages of migration.
|
||||
* $wgDBTableOptions – The default table options now use the binary charset. The
|
||||
default was already overridden in the installer-generated LocalSettings.php,
|
||||
and so is always set to binary after the installer UI option was removed. The
|
||||
default value is only used when the installer installs an extension.
|
||||
* $wgPopularPasswordFile — The location of the default popular passwords file
|
||||
has been moved to be in line with other non-PHP files used by libraries and
|
||||
classes.
|
||||
* $wgEnableImageWhitelist is now disabled by default, as it opens up a hole for
|
||||
potential privacy leaks by administrators. You can check
|
||||
"MediaWiki:External image whitelist" on your wiki to see whether the feature
|
||||
was ever used, and whether it needs to be re-enabled.
|
||||
|
||||
==== Removed configuration ====
|
||||
* $wgEnableAPI and $wgEnableWriteAPI – These settings, deprecated in 1.31,
|
||||
have been removed. (T115414)
|
||||
* $wgSiteSupportPage – This setting, unused since 1.5, was removed.
|
||||
* $wgBrowserBlacklist – This setting, deprecated in 1.30, was removed.
|
||||
* $wgExperimentalHtmlIds – This setting, deprecated since 1.30, was removed.
|
||||
The 'html5-legacy' value for $wgFragmentMode is no longer accepted.
|
||||
* $wgPasswordSenderName - This setting, ignored since 1.23 by MediaWiki and
|
||||
most extensions, is no longer set. Instead, you can modify the system
|
||||
message `emailsender`.
|
||||
* $wgTidyConfig – The experimental Html5Internal and Html5Depurate tidy drivers
|
||||
were removed. RemexHtml, which is the default, should be used instead.
|
||||
* (T181318) The $wgStyleVersion setting and its appendage to various script and
|
||||
style URLs in OutputPage, deprecated in 1.31, was removed.
|
||||
* (T140807) The wgResourceLoaderLESSImportPaths configuration option was removed
|
||||
from ResourceLoader. Instead, use `@import` statements in LESS to import
|
||||
files directly from nearby directories within the same project.
|
||||
* (T140804) The wgResourceLoaderLESSVars configuration option, deprecated
|
||||
since 1.30, was removed. Instead, to expose variables from PHP to LESS, use
|
||||
the ResourceLoaderModule::getLessVars() method.
|
||||
* $wgResourceLoaderValidateStaticJS – This setting, unused since MediaWiki 1.18,
|
||||
was removed.
|
||||
* Two temporary variables for deploying the feature of filters on change lists,
|
||||
$wgStructuredChangeFiltersShowPreference introduced in MediaWiki 1.30 and
|
||||
$wgStructuredChangeFiltersOnWatchlist in 1.31, were removed.
|
||||
|
||||
=== New features in 1.32 ===
|
||||
* (T112474) Generalized the ResourceLoader mechanism for overriding modules
|
||||
using a particular page during edit previews.
|
||||
* (T12331) You can now log page creation events by setting $wgPageCreationLog
|
||||
to true.
|
||||
* Added 'ApiParseMakeOutputPage' hook.
|
||||
* (T174313) Added checkbox on Special:ListUsers to display only users in
|
||||
temporary user groups.
|
||||
* (T152462) A cookie can now be set when an IP user is blocked to track that
|
||||
user if they move to a new IP address. This is disabled by default.
|
||||
* (T194950) Added 'ApiMaxLagInfo' hook.
|
||||
* SpecialPage::checkLoginSecurityLevel() will now preserve POST data when
|
||||
reauthenticating.
|
||||
* FormSpecialPage::execute() will now call checkLoginSecurityLevel() if
|
||||
getLoginSecurityLevel() returns non-false.
|
||||
* The 'ImageBeforeProduceHTML' hook is now passed three new parameters, $parser,
|
||||
&$query and &$widthOption, allowing extensions even finer control over the
|
||||
resulting HTML code.
|
||||
* Added new 'ArticleShowPatrolFooter' hook, which allows extensions to determine
|
||||
if the [mark as patrolled] link should be shown at the footer of patrollable
|
||||
pages.
|
||||
* The array of hidden options ($opts) passed to the 'SpecialSearchPowerBox' hook
|
||||
is now passed by reference, allowing extensions to modify or even unset it.
|
||||
* Added new 'OutputPageAfterGetHeadLinksArray' hook, allowing extensions to
|
||||
modify the return value of OutputPage#getHeadLinksArray in order to add,
|
||||
remove or otherwise alter the elements to be output in the page <head>.
|
||||
* (T28934) The 'HistoryPageToolLinks' hook allows extensions to append
|
||||
additional links to the subtitle of a history page.
|
||||
* The 'GetLinkColours' hook now receives an additional $title parameter,
|
||||
the Title object of the page being parsed, on which the links will be shown.
|
||||
* (T194731) DifferenceEngine supports multiple slots. Added SlotDiffRenderer to
|
||||
render diffs between two Content objects, and DifferenceEngine::setRevisions()
|
||||
to render diffs between two custom (potentially multi-content) revisions.
|
||||
Added GetSlotDiffRenderer hook which works like GetDifferenceEngine for slots.
|
||||
* Added a temporary action=mcrundo to the web UI, as the normal undo logic
|
||||
can't yet handle MCR and deadlines are forcing is to put off fixing that.
|
||||
This action should be considered deprecated and should not be used directly.
|
||||
* Extensions overriding ContentHandler::getUndoContent() will need to be
|
||||
updated for the changed method signature.
|
||||
* Added a new hook, 'UserGetRightsRemove', which can be used to remove rights
|
||||
from user. Unlike the 'UserGetRights' it will ensure that removed rights
|
||||
will not be reinserted.
|
||||
* (T197535) Extensions can now specify PHP versions and PHP extensions they
|
||||
depend on.
|
||||
|
||||
=== External library changes in 1.32 ===
|
||||
|
||||
==== New external libraries ====
|
||||
* Added pear/Net_SMTP v1.8.0.
|
||||
* Added wikimedia/xmp-reader v0.6.0.
|
||||
|
||||
* Added cache/integration-tests v0.16.0 (dev-only).
|
||||
* Added giorgiosironi/eris v0.10.0 (dev-only).
|
||||
* Added seld/jsonlint v1.7.1 (dev-only).
|
||||
|
||||
* Added EasyDeflate (unversioned).
|
||||
|
||||
==== Changed external libraries ====
|
||||
* Updated OOUI from v0.26.3 to v0.29.2.
|
||||
* Updated wikimedia/base-convert from v1.0.1 to v2.0.0.
|
||||
* Updated wikimedia/remex-html from v1.0.3 to v2.0.1.
|
||||
* Updated wikimedia/scoped-callback from v1.0.0 to v2.0.0.
|
||||
** ScopedCallback objects can no longer be serialized.
|
||||
* Updated wikimedia/timestamp from v1.0.0 to v2.2.0.
|
||||
* Updated wikimedia/wrappedstring from v2.3.0 to v3.0.1.
|
||||
* oyejorge/less.php replaced with our fork wikimedia/less.php
|
||||
* Updated wikimedia/ip-set from v1.2.0 to v1.3.0.
|
||||
|
||||
* Updated composer/spdx-licenses from v1.3.0 to v1.4.0 (dev-only).
|
||||
* Updated mediawiki/mediawiki-codesniffer from v18.0.0 to v22.0.0 (dev-only).
|
||||
* Updated psy/psysh from v0.8.11 to v0.9.6 (dev-only).
|
||||
|
||||
* Updated CLDRPluralRuleParser from v0.1.0 to v1.3.2-pre.
|
||||
* Updated jquery from v3.2.1 to v3.3.1.
|
||||
* Updated jquery.client from v2.0.0 to v2.0.1.
|
||||
* Updated jquery.i18n from v1.0.4 to v1.0.5.
|
||||
* Updated mustache.js from v0.8.2-d9aa703 to v1.0.0.
|
||||
* Updated OOjs from v2.2.0 to v2.2.2.
|
||||
* Updated qunitjs from v2.4.0 to v2.6.2.
|
||||
* Updated sinonjs from v1.17.3 to v1.17.7.
|
||||
|
||||
==== Removed external libraries ====
|
||||
* pear/mail_mime-decode was removed.
|
||||
|
||||
=== Bug fixes in 1.32 ===
|
||||
* SpecialPage::execute() will now only call checkLoginSecurityLevel() if
|
||||
getLoginSecurityLevel() returns non-false.
|
||||
* (T43720, T46197) Improved page display title handling for category pages
|
||||
* (T65080) Fixed resetting options of some types via API action=options.
|
||||
|
||||
=== Action API changes in 1.32 ===
|
||||
* Added templated parameters.
|
||||
* A module can define a templated parameter like "{fruit}-quantity", where
|
||||
the actual parameters recognized correspond to the values of a multi-valued
|
||||
parameter. Then clients can make requests like
|
||||
"fruits=apples|bananas&apples-quantity=1&bananas-quantity=5".
|
||||
* action=paraminfo will return templated parameter definitions separately
|
||||
from normal parameters. All parameter definitions now include an "index"
|
||||
key to allow clients to maintain parameter ordering when merging normal and
|
||||
templated parameters.
|
||||
* It is now an error to submit too many values for a multi-valued parameter.
|
||||
This has generated a warning since MediaWiki 1.14.
|
||||
* Assertion failures from the 'assert' and 'assertuser' parameters will no
|
||||
longer use the action module's custom response format, for the few modules
|
||||
that use custom formatters that handle errors.
|
||||
* (T198935) User list preferences such as `email-blacklist` and similar
|
||||
extension preferences are no longer represented as arrays when returned by
|
||||
action=query&meta=userinfo&uiprop=options.
|
||||
* 'missingparam' errors will now use the prefixed parameter name in the code
|
||||
and error text, e.g. "noxxfoo" and "The 'xxfoo' parameter must be set" rather
|
||||
than "nofoo" and "The 'foo' parameter must be set".
|
||||
* action=query&prop=revisions now takes a 'rvslots' parameter to indicate the
|
||||
multi-content revision slots for which content should be returned. It also
|
||||
has a new rvprop, 'roles', to indicate which roles have slots. A deprecation
|
||||
warning will be issued if rvprop=content or rvprop=contentmodel are used
|
||||
without rvslots.
|
||||
* The rvcontentformat parameter to action=query&prop=revisions has been
|
||||
deprecated. Clients should be prepared to deal with the default format for
|
||||
relevant models.
|
||||
* Use of the deprecated parameters rvexpandtemplates, rvgeneratexml, rvparse,
|
||||
rvdiffto, rvdifftotext, rvdifftotextpst, rvcontentformat, or the deprecated
|
||||
rvprop=parsetree is forbidden with the new 'rvslots' parameter.
|
||||
* action=query&prop=deletedrevisions, action=query&list=allrevisions, and
|
||||
action=query&list=alldeletedrevisions are changed similarly to
|
||||
&prop=revisions (see the three previous items).
|
||||
* (T174032) action=compare now supports multi-content revisions.
|
||||
* It has a 'slots' parameter to select diffing of individual slots. The
|
||||
default behavior is to return one combined diff.
|
||||
* The 'fromtext', 'fromsection', 'fromcontentmodel', 'fromcontentformat',
|
||||
'totext', 'tosection', 'tocontentmodel', and 'tocontentformat' parameters
|
||||
are deprecated. Specify the new 'fromslots' and 'toslots' to identify which
|
||||
slots have text supplied and the corresponding templated parameters for
|
||||
each slot.
|
||||
* The behavior of 'fromsection' and 'tosection' of extracting one section's
|
||||
content is not being preserved. 'fromsection-{slot}' and 'tosection-{slot}'
|
||||
instead expand the given text as if for a section edit. This effectively
|
||||
declines T183823 in favor of T185723.
|
||||
* (T198214) The 'disabletidy' parameter to action=parse has been
|
||||
deprecated; untidy output will not be supported by future wikitext
|
||||
parsers.
|
||||
* Added intestactionsdetail to action=query&prop=info to allow retrieving the
|
||||
reasons an action is not allowed.
|
||||
* Deprecated action=query&prop=info inprop=readable in favor of
|
||||
intestactions=read.
|
||||
* (T212356) When using action=delete on pages with many revisions, the module
|
||||
may return a boolean-true 'scheduled' and no 'logid'. This signifies that the
|
||||
deletion will be processed via the job queue.
|
||||
|
||||
=== Action API internal changes in 1.32 ===
|
||||
* Added 'ApiParseMakeOutputPage' hook.
|
||||
* Parameter names may no longer contain '{' or '}', as these are now used for
|
||||
templated parameters.
|
||||
* (T194950) Added 'ApiMaxLagInfo' hook.
|
||||
* The following methods now take a RevisionRecord rather than a Revision. No
|
||||
external callers are known.
|
||||
* ApiFeedContributions::feedItemAuthor()
|
||||
* ApiFeedContributions::feedItemDesc()
|
||||
* ApiQueryRevisionsBase::extractRevisionInfo()
|
||||
* The following deprecated methods have been removed:
|
||||
* ApiBase::profileIn() (deprecated in 1.25)
|
||||
* ApiBase::profileOut() (deprecated in 1.25)
|
||||
* ApiBase::safeProfileOut() (deprecated in 1.25)
|
||||
* ApiBase::profileDBIn() (deprecated in 1.25)
|
||||
* ApiBase::profileDBOut() (deprecated in 1.25)
|
||||
* ApiBase::dieUsage() (deprecated in 1.29)
|
||||
* ApiBase::dieUsageMsg() (deprecated in 1.29)
|
||||
* ApiBase::dieUsageMsgOrDebug() (deprecated in 1.29)
|
||||
* ApiBase::getErrorFromStatus() (deprecated in 1.29)
|
||||
* ApiBase::parseMsg() (deprecated in 1.29)
|
||||
* ApiBase::setWarning() (deprecated in 1.29)
|
||||
* ApiPageSet::getInvalidTitles() (deprecated in 1.26)
|
||||
* ApiQueryLogEvents::addLogParams() (deprecated in 1.25)
|
||||
* ApiUsageException::getCodeString() (deprecated in 1.29)
|
||||
* ApiUsageException::getMessageArray() (deprecated in 1.29)
|
||||
* Class UsageException, deprecated in 1.29, has been removed.
|
||||
* ApiErrorFormatter: Added getFormat() and newWithFormat(). In particular, you
|
||||
can now easily test $formatter->getFormat() === 'bc', and then call
|
||||
$formatter->newWithFormat( 'plaintext' ) to get a non-BC formatter.
|
||||
|
||||
=== Languages updated in 1.32 ===
|
||||
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.
|
||||
|
||||
* (T193566) Added language support for Ambonese Malay (abs).
|
||||
* (T194047) Added language support for Shawiya, Latin script (shy-latn).
|
||||
* (T195940) Added language support for Batak Mandailing (btm).
|
||||
* (T137491) Added language support for Standard Moroccan Amazigh (zgh).
|
||||
* (T198132) Added language support for Manipuri (mni).
|
||||
* (T201276) Added language support for Western Armenian (hyw).
|
||||
* (T201583) Added language support for Mon (mnw).
|
||||
|
||||
=== Breaking changes in 1.32 ===
|
||||
* $wgRequestTime, deprecated in 1.25, was removed. Use
|
||||
$_SERVER['REQUEST_TIME_FLOAT'] or WebRequest::getElapsedTime() instead.
|
||||
* The MediaWikiI18N class, deprecated in 1.31, was removed.
|
||||
* QuickTemplate::setTranslator(), deprecated in 1.31, was removed. Use
|
||||
Skin::msg() instead.
|
||||
* wfInitShellLocale(), deprecated in 1.30, was removed.
|
||||
* wfShellExecDisabled(), deprecated in 1.30, was removed.
|
||||
* The type string for the parameter $lang of DateFormatter::getInstance,
|
||||
deprecated in 1.31, was removed.
|
||||
* The EDIT_TOKEN_SUFFIX constant deprecated in 1.27, was removed. Use
|
||||
MediaWiki\Session\Token::SUFFIX instead.
|
||||
* EditPage::isOouiEnabled() deprecated in 1.30, was removed.
|
||||
* mw.util.wikiGetlink(), deprecated in 1.23, was removed. Use mw.util.getUrl()
|
||||
instead.
|
||||
* (T61113) The following methods and constants from the Revision class, which
|
||||
were deprecated in 1.25, have now been removed:
|
||||
* Revision::getRawUser()
|
||||
* Revision::getRawUserText()
|
||||
* Revision::getRawComment()
|
||||
* window.gM() from mediawiki.jqueryMsg, deprecated in 1.23, was removed. Use
|
||||
mw.msg() or mw.message() instead.
|
||||
* mw.util.escapeId(), deprecated in 1.30, was removed. Use
|
||||
mw.util.escapeIdForAttribute or mw.util.escapeIdForLink instead.
|
||||
* mw.util.updateTooltipAccessKeys(), deprecated in 1.24, was removed. Use
|
||||
jquery.accessKeyLabel instead.
|
||||
* The SqlDataUpdate class, deprecated in 1.28, has been removed.
|
||||
* The Html5Internal and Html5Depurate tidy driver classes were removed, along
|
||||
with the Balancer tidy implementation. Both implementations were experimental,
|
||||
and were replaced by RemexHtml.
|
||||
* (T179624) Job::insert() and ::batchInsert(), deprecated in 1.21, were both
|
||||
removed. Use JobQueueGroup::singleton()->push() instead.
|
||||
* The jquery.footHovzer module, for mediawiki.debug, was removed.
|
||||
* The es5-shim module, empty and deprecated since 1.29, was removed.
|
||||
* the dom-level2-shim module, empty and deprecated since 1.29, was removed.
|
||||
* the json module, empty and deprecated since 1.29, was removed.
|
||||
* The mediawiki.widgets.visibleByteLimit module alias, deprecated in 1.32, was
|
||||
removed. Use mediawiki.widgets.visibleLengthLimit instead.
|
||||
* The jquery.farbtastic module, unused since 1.18, was removed.
|
||||
* The 'jquery.expandableField' module, unused since 1.22, was removed.
|
||||
* The hooks 'PreferencesFormPreSave' and 'PreferencesGetLegend' may provide
|
||||
any HTMLForm object rather than PreferencesForm.
|
||||
* The non namespaced TimestampException class, deprecated in 1.29, was removed.
|
||||
Use Wikimedia\Timestamp\TimestampException instead.
|
||||
* The global functions codepointToUtf8, hexSequenceToUtf8, utf8ToHexSequence,
|
||||
utf8ToCodepoint, and escapeSingleString (deprecated in 1.25) were removed.
|
||||
The UtfNormal\Utils class from the utfnormal library should be used instead.
|
||||
* The deprecated UTF8_ and UNICODE_ constants were removed. The class constants
|
||||
from the UtfNormal\Constants class from the utfnormal library should be used
|
||||
* The protected methods PHPSessionHandler::returnSuccess() and returnFailure(),
|
||||
only needed for PHP5 compatibility, have been removed. It now uses the boolean
|
||||
values `true` and `false` respectively.
|
||||
* The $parserMemc global and wfGetParserCacheStorage(), deprecated since 1.30,
|
||||
were removed. Use the ParserCache class instead.
|
||||
* ScopedCallback (deprecated in 1.28) was removed. Use Wikimedia\ScopedCallback
|
||||
instead.
|
||||
* Support for ResourceLoaderModule::getModifiedTime() and getModifiedHash(),
|
||||
deprecated since 1.26, was removed. Use getDefinitionSummary() instead.
|
||||
* (T195256) Skins are recommended not to rely on JavaScript for the "mw-jump"
|
||||
and "jump-to-nav" accessibility links. To this end, the "jquery.mw-jump"
|
||||
is no longer loaded by default. The Vector and MonoBook skins have made a
|
||||
minor change to implement the toggle feature with CSS instead. To restore
|
||||
prior functionality, either explicitly load "jquery.mw-jump" in your skin
|
||||
or refer to T195256 for details on how to make the same change.
|
||||
* Hook 'EditPageBeforeEditChecks' was removed;
|
||||
use 'EditPageGetCheckboxesDefinition' instead.
|
||||
* Linker::getLinkColour() and DummyLinker::getLinkColour(), deprecated since
|
||||
1.28, were removed. LinkRenderer::getLinkClasses() should be used instead.
|
||||
* Wikimedia\Rdbms\LoadBalancer::getLaggedSlaveMode(), deprecated in 1.28, has
|
||||
been removed. Use Wikimedia\Rdbms\LoadBalancer::getLaggedReplicaMode()
|
||||
instead.
|
||||
* mw.widgets.CategoryMultiselectWidget now uses TagMultiselectWidget instead of
|
||||
CapsuleMultiselectWidget. The following methods may no longer be used:
|
||||
* setItemsFromData: Use setValue instead
|
||||
* getItemsData: Use getItems instead and get the data property
|
||||
* Two OutputPage methods, addMetadataLink() and getMetadataAttribute(), were
|
||||
removed. Use addLink() instead.
|
||||
* Another two OutputPage methods, setPageTitleActionText() and
|
||||
getPageTitleActionText(), were removed. They did nothing since 1.15 (almost
|
||||
ten years). Use setHTMLTitle() directly.
|
||||
* The return value of OutputPage::adaptCdnTTL() has been removed. The
|
||||
value returned was misleading and probably not what any caller would
|
||||
have wanted.
|
||||
* All MagicWord static member variables have been removed. Use appropriate
|
||||
hooks or MagicWordFactory methods instead.
|
||||
* MagicWord::clearCache() has been removed. Instead, create a new
|
||||
MagicWordFactory, such as by calling
|
||||
resetServiceForTesting( 'MagicWordFactory' ) on a MediaWikiServices.
|
||||
* mw.util.init() has been removed. This function is not needed anymore and was
|
||||
a no-op function since 1.30.
|
||||
* SpecialPageFactory::resetList() is a no-op. Call overrideMwServices()
|
||||
instead.
|
||||
* MediaWiki no longer supports a StartProfiler.php file. Instead, you can set
|
||||
$wgProfiler and $wgEnableProfileInfo.
|
||||
* The mw.loader.addSource() is now considered a private method, and no longer
|
||||
supports the `id, url` signature. Use the `Object` parameter instead.
|
||||
* The backwards-compatibility code in HTMLForm to add a drop-down control to an
|
||||
option that is not set to be a drop-down if the "mw-chosen" class is present,
|
||||
is now removed.
|
||||
* Several collations were removed. They were workarounds for bugs in the ICU
|
||||
library and they are no longer needed (as of ICU 57.1):
|
||||
* 'uppercase-se' (NorthernSamiUppercaseCollation) - use 'uca-se' instead
|
||||
* 'xx-uca-et' (CollationEt) - use 'uca-et' instead
|
||||
* 'xx-uca-fa' (CollationFa) - use 'uca-fa' instead
|
||||
* LanguageCode::bcp47() now always returns a valid BCP 47 code. This means
|
||||
that some MediaWiki-specific language codes, such as `simple`, are mapped
|
||||
into valid BCP 47 codes (eg `en-simple`).
|
||||
* The hooks 'SpecialRecentChangesFilters' & 'SpecialWatchlistFilters' deprecated
|
||||
in 1.23 were removed. Instead, use 'ChangesListSpecialPageStructuredFilters'.
|
||||
The ChangesListSpecialPage code for these legacy hooks, and their use in
|
||||
SpecialRecentchanges.php and SpecialWatchlist, was also removed:
|
||||
* ChangesListSpecialPage->getCustomFilters()
|
||||
* ChangesListSpecialPage->getFilterGroupDefinitionFromLegacyCustomFilters()
|
||||
* ChangesListSpecialPage::customFilters
|
||||
* The global function wfUseMW, deprecated since 1.26, has now been removed. Use
|
||||
the "requires" property of static extension registration instead.
|
||||
* $wgSpecialPages no longer accepts array syntax, deprecated since 1.18.
|
||||
* The MailAddress constructor can no longer be called with a User object,
|
||||
behaviour which has been deprecated since 1.24.
|
||||
* LBFactory, deprecated since 1.28, has been removed. Instead, use
|
||||
Wikimedia\Rdbms\LBFactory.
|
||||
* The MimeMagic class, deprecated since 1.28 has been removed. Get a
|
||||
MimeAnalyzer instance from MediaWikiServices instead.
|
||||
* The '--tidy' option to maintenance/parse.php has been removed. Tidying
|
||||
the output is now the default. Use '--no-tidy' to bypass the tidy
|
||||
phase.
|
||||
* The global function wfErrorLog, deprecated since 1.25, has now been removed.
|
||||
Use MWLoggerLegacyLogger::emit or UDPTransport.
|
||||
* The hooks 'SpecialRecentChangesQuery' & 'SpecialWatchlistQuery', deprecated in
|
||||
1.23, were removed. Instead, use ChangesListSpecialPageStructuredFilters or
|
||||
ChangesListSpecialPageQuery.
|
||||
* The global function wfUsePHP, deprecated since 1.30, has now been removed. To
|
||||
assert a newer version of PHP than MediaWiki does, use extension registration.
|
||||
* The hook 'ChangesListSpecialPageFilters', deprecated in 1.29, has now been
|
||||
removed. Use the 'ChangesListSpecialPageStructuredFilters' hook instead.
|
||||
* DeferredUpdates::setImmediateMode(), deprecated since 1.29, has been removed.
|
||||
* File / MediaHandler::getStreamHeaders(), deprecated since 1.30, was removed.
|
||||
* The hook 'DoEditSectionLink', deprecated since 1.25, has been removed. Use
|
||||
the hook 'SkinEditSectionLinks' instead.
|
||||
* The hook 'UserGetImplicitGroups', deprecated since 1.25, has been removed.
|
||||
* The global function wfRunHooks, deprecated since 1.25, has now been removed.
|
||||
Use Hooks::run().
|
||||
* The hook 'UnknownAction', deprecated since 1.19, has now been removed.
|
||||
* The hook 'ParserLimitReport', deprecated since 1.22, has been removed. Use
|
||||
the hooks 'ParserLimitReportPrepare' and 'ParserLimitReportFormat' instead.
|
||||
* The following deprecated API methods have been removed:
|
||||
* ApiBase::profileIn() (deprecated in 1.25)
|
||||
* ApiBase::profileOut() (deprecated in 1.25)
|
||||
* ApiBase::safeProfileOut() (deprecated in 1.25)
|
||||
* ApiBase::profileDBIn() (deprecated in 1.25)
|
||||
* ApiBase::profileDBOut() (deprecated in 1.25)
|
||||
* ApiBase::dieUsage() (deprecated in 1.29)
|
||||
* ApiBase::dieUsageMsg() (deprecated in 1.29)
|
||||
* ApiBase::dieUsageMsgOrDebug() (deprecated in 1.29)
|
||||
* ApiBase::getErrorFromStatus() (deprecated in 1.29)
|
||||
* ApiBase::parseMsg() (deprecated in 1.29)
|
||||
* ApiBase::setWarning() (deprecated in 1.29)
|
||||
* ApiPageSet::getInvalidTitles() (deprecated in 1.26)
|
||||
* ApiQueryLogEvents::addLogParams() (deprecated in 1.25)
|
||||
* ApiUsageException::getCodeString() (deprecated in 1.29)
|
||||
* ApiUsageException::getMessageArray() (deprecated in 1.29)
|
||||
* Class UsageException, deprecated in 1.29, has been removed.
|
||||
* MediaWiki no longer has a 'JavaScript-powered' wikitext toolbar built in. The
|
||||
old "bulletin board style toolbar", known as "the 2006 wikitext editor", has
|
||||
been removed, and instead sysadmins will be required to choose one (or more)
|
||||
of the several extensions available for this purpose if they need the
|
||||
functionality. The MediaWiki "tarball" releases have included the replacement
|
||||
extension for this, the WikiEditor extension aka "the 2010 wikitext editor",
|
||||
for many years now. As part of this, several parts of MediaWiki have been
|
||||
removed or simplified:
|
||||
* The user option 'showtoolbar' (shown as "Show edit toolbar") is no longer
|
||||
available; if an extension adds a toolbar via the EditPageBeforeEditToolbar
|
||||
hook, it will be shown; extensions should provide a specific user preference
|
||||
to disable themselves as needed.
|
||||
* The public methods Language::getImageFile() and ::getImageFiles(), and the
|
||||
related specification of $imageFiles within individual languages' code file,
|
||||
as well as the referenced static media assets, all of which were only used
|
||||
inside MediaWiki itself for providing the icons for the old toolbar, have
|
||||
been removed without explicit deprecation.
|
||||
* The internal ResourceLoader module "mediawiki.toolbar", which is unused
|
||||
except by MediaWiki itself and back-compatibility code, has been removed.
|
||||
* The internal ResourceLoaderEditToolbarModule class has been removed.
|
||||
|
||||
=== Deprecations in 1.32 ===
|
||||
* HTMLForm::setSubmitProgressive() is deprecated. No need to call it. Submit
|
||||
button is already marked as progressive.
|
||||
* Skin::setupSkinUserCss() is deprecated. Adding of modules to load
|
||||
has been centralised to Skin::getDefaultModules(), which is now capable
|
||||
of queueing style modules as well.
|
||||
* OutputPage::addModuleScripts() and ParserOutput::addModuleScripts are
|
||||
deprecated. Use addModules() instead.
|
||||
* Overriding SearchEngine::{searchText,searchTitle,searchArchiveTitle}
|
||||
in extending classes is deprecated. Extend related doSearch* methods
|
||||
instead.
|
||||
* The following 'mediawiki.api' plugin modules were merged into mediawiki.api
|
||||
and deprecated: mediawiki.api.category, mediawiki.api.edit,
|
||||
mediawiki.api.login, mediawiki.api.options, mediawiki.api.parse,
|
||||
mediawiki.api.upload, mediawiki.api.user, mediawiki.api.watch,
|
||||
mediawiki.api.messages, and mediawiki.api.rollback.
|
||||
* ApiBase::truncateArray() is deprecated. No replacement, as nothing is known
|
||||
to use it.
|
||||
* WatchAction::getUnwatchToken is deprecated. Use WatchAction::getWatchToken
|
||||
with the 'unwatch' action parameter instead.
|
||||
* IcuCollation::getICUVersion() is deprecated, as you can just use the PHP
|
||||
constant INTL_ICU_VERSION directly in all versions that MediaWiki supports.
|
||||
* Parser::fetchFile() is deprecated. Use ::fetchFileAndTitle() instead.
|
||||
* The ApiQueryContributions class has been renamed to ApiQueryUserContribs.
|
||||
* The XMPInfo, XMPReader, and XMPValidate classes have been deprecated in favor
|
||||
of the namespaced classes provided by the wikimedia/xmp-reader library.
|
||||
* SearchResultSet::{next,rewind} are deprecated. Calling code should
|
||||
use foreach on the SearchResultSet, or the extractResults method. Extending
|
||||
code should override extractResults.
|
||||
* Instantiating SearchResultSet directly is deprecated. SearchEngine
|
||||
implementations must subclass SearchResultSet for their purposes.
|
||||
* SearchResult::setExtensionData argument has been changed from accepting an
|
||||
array to accepting a Closure that returns the array when called.
|
||||
* Class CryptRand, everything in MWCryptRand except generateHex() and function
|
||||
MediaWikiServices::getCryptRand() are deprecated, use random_bytes() to
|
||||
generate cryptographically secure random byte sequences.
|
||||
* Parser::getConverterLanguage() is deprecated. Use ::getTargetLanguage()
|
||||
instead.
|
||||
* Language::markNoConversion() is deprecated. It confused readers because
|
||||
it had unexpected behavior (only marking text if it looked like a URL)
|
||||
and was only used in a single place in the code. Use
|
||||
LanguageConverter::markNoConversion() instead.
|
||||
* (T197492) Language::truncate() was soft deprecated in 1.31 and is
|
||||
hard deprecated in this release. It has been split into two similar
|
||||
methods, Language::truncateForVisual() and Language::truncateForDatabase(),
|
||||
which measure length in characters and bytes, respectively. Use
|
||||
Language::truncateForVisual() when possible to provide equity to users
|
||||
of multibyte scripts.
|
||||
* (T176526) EditPage::getContextTitle() falling back to $wgTitle when the
|
||||
context title is unset is now deprecated; anything creating an EditPage
|
||||
instance should set the context title via ::setContextTitle().
|
||||
* The 'jquery.hidpi' module (polyfill for IMG srcset) is deprecated.
|
||||
* ResourceLoaderStartUpModule::getStartupModules() and ::getLegacyModules()
|
||||
are deprecated. These concepts are obsolete and have no replacement.
|
||||
* String type for $lang of DifferenceEngine::setTextLanguage is deprecated.
|
||||
* The following methods of OutputPage are now deprecated in favour
|
||||
of using showFatalError directly: OutputPage::showFileDeleteError()
|
||||
OutputPage::showFileNotFoundError(), OutputPage::showFileRenameError()
|
||||
OutputPage::showFileCopyError() and OutputPage::showUnexpectedValueError().
|
||||
* The Replacer, DoubleReplacer, HashtableReplacer, and RegexlikeReplacer
|
||||
classes are now deprecated. Use a Closure instead.
|
||||
* (T194263) ContentHandler::makeParserOptions() is deprecated. Use
|
||||
WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
|
||||
* (T100681) Use of the Parsoid v1 API with the VirtualRESTService, deprecated in
|
||||
MediaWiki 1.26, is now hard-deprecated. All known clients were converted to
|
||||
the Parsoid v3 API in May 2015.
|
||||
* $input is deprecated in hook 'LogEventsListGetExtraInputs'. Use
|
||||
$formDescriptor instead.
|
||||
* SearchEngine::transformSearchTerm( $term ) should no longer be called prior
|
||||
to running searchText. This method was mainly implemented to support the
|
||||
'prefix' URI param in SpecialSearch, but there are no reasons to expose this
|
||||
logic as it should be handled internally by SearchEngine implementations
|
||||
supporting this feature. SearchEngine implementations should no longer
|
||||
override this methods.
|
||||
* SearchEngine::replacePrefixes( $query ) should no longer be called prior
|
||||
to running searchText/searchTitle.
|
||||
* (T199657) Messages for $wgFilterLogTypes labels should be no longer be in the
|
||||
'log-show-hide-[type]' format. Instead use 'logeventslist-[type]-log'.
|
||||
* Global functions wfArrayFilter() and wfArrayFilterByKey() are deprecated.
|
||||
use array_filter() directly.
|
||||
* The $wgShowSQLErrors global is deprecated and nonfunctional.
|
||||
Set $wgShowExceptionDetails and/or $wgShowHostnames instead.
|
||||
* The $wgShowDBErrorBacktrace global is deprecated and nonfunctional.
|
||||
Set $wgShowExceptionDetails instead.
|
||||
* Public access to the DifferenceEngine properties mOldid, mNewid, mOldRev,
|
||||
mNewRev, mOldPage, mNewPage, mOldContent, mNewContent, mRevisionsLoaded,
|
||||
mTextLoaded and mCacheHit is deprecated. Use getOldid() / getNewid() /
|
||||
getOldRevision() / getNewRevision() for the first four (note that the
|
||||
revision ones return a RevisionRecord, not a Revision), do your own lookup
|
||||
for page/content.
|
||||
* The $wgExternalDiffEngine value 'wikidiff2' is deprecated. To use wikidiff2
|
||||
just enable the PHP extension, and it will be autodetected.
|
||||
* (T194731) DifferenceEngine properties mOldContent and mNewContent and methods
|
||||
setContent(), generateContentDiffBody(), generateTextDiffBody() and textDiff()
|
||||
are deprecated. To interact with a single slot, use a SlotDiffRenderer (and
|
||||
subclass it to customize diff rendering); to diff custom (e.g. unsaved)
|
||||
content, use setRevisions(). Subclassing DifferenceEngine should only be done
|
||||
to customize page-level diff properties (such as the navigation header).
|
||||
* The wfUseMW function, soft-deprecated in 1.26, is now hard deprecated.
|
||||
* All MagicWord static methods are now deprecated. Use the MagicWordFactory
|
||||
methods instead.
|
||||
* PasswordFactory::init is deprecated. To get a password factory with the
|
||||
standard configuration, use MediaWikiServices::getPasswordFactory.
|
||||
* $wgContLang is deprecated, use MediaWikiServices::getContentLanguage()
|
||||
instead.
|
||||
* $wgParser is deprecated, use MediaWikiServices::getParser() instead.
|
||||
* wfGetMainCache() is deprecated, use ObjectCache::getLocalClusterInstance()
|
||||
instead.
|
||||
* wfGetCache() is deprecated, use ObjectCache::getInstance() instead.
|
||||
* All SpecialPageFactory static methods are deprecated. Instead, call the
|
||||
methods on a SpecialPageFactory instance, which may be obtained from
|
||||
MediaWikiServices.
|
||||
* mw.user.stickyRandomId was renamed to the more explicit
|
||||
mw.user.getPageviewToken to better capture its function.
|
||||
* Passing Revision objects to ContentHandler::getUndoContent() is deprecated,
|
||||
Content object should be passed instead.
|
||||
* (T197179) Parameters 'notice', 'notice-messages', 'notice-message',
|
||||
previously used by OOUI HTMLForm fields, are now deprecated. Use
|
||||
'help', 'help-message', 'help-messages' instead.
|
||||
* (T197179) HTMLFormField::getNotices() is now deprecated.
|
||||
* The jquery.localize module is now deprecated. Use jquery.i18n instead.
|
||||
* The SecondaryDataUpdates hook was deprecated in favor of RevisionDataUpdates,
|
||||
or overriding ContentHandler::getSecondaryDataUpdates (T194038).
|
||||
* The WikiPageDeletionUpdates hook was deprecated in favor of
|
||||
PageDeletionDataUpdates, or overriding ContentHandler::getDeletionDataUpdates
|
||||
(T194038).
|
||||
* Content::getSecondaryDataUpdates has been deprecated in favor of
|
||||
ContentHandler::getSecondaryDataUpdates() for overriding by extensions
|
||||
(T194038).
|
||||
Application logic should call WikiPage::doSecondaryDataUpdates() (T194037).
|
||||
* Content::getDeletionUpdates has been deprecated in favor of
|
||||
ContentHandler::getDeletionUpdates() for overriding by extensions (T194038).
|
||||
Application logic should call WikiPage::doSecondaryDataUpdates() (T194037).
|
||||
* (T198214) Old Tidy-related configuration settings, which were soft-deprecated
|
||||
in MediaWiki 1.26, have now been hard deprecated. This affects $wgUseTidy,
|
||||
$wgTidyBin, $wgTidyConf, $wgTidyOpts, $wgTidyInternal, and $wgDebugTidy. Use
|
||||
$wgTidyConfig instead.
|
||||
* All Tidy configurations other than Remex have been hard deprecated;
|
||||
future parsers will not emit compatible output for these configurations.
|
||||
In particular, running MediaWiki with tidy disabled has been deprecated.
|
||||
* (T198214) OutputPage::addWikiText(), OutputPage::addWikiTextWithTitle(),
|
||||
and OutputPage::addWikiTextTitle() have been deprecated, since they
|
||||
can result in untidy output. In addition OutputPage::addWikiTextTidy()
|
||||
and OutputPage::addWikiTextTitleTidy() was deprecated to make naming new
|
||||
methods consistent. Use OutputPage::addWikiTextAsInterface() or
|
||||
OutputPage::addWikiTextAsContent() instead, which ensures the output is
|
||||
tidy and clarifies whether content-language specific postprocessing should
|
||||
be done on the text.
|
||||
* OutputPage::parse() and OutputPage::parseInline() have been deprecated
|
||||
due to untidy output and inconsistent handling of wrapper divs and
|
||||
interface/content language defaults. Use OutputPage::parseAsContent(),
|
||||
OutputPage::parseAsInterface(), or OutputPage::parseInlineAsInterface()
|
||||
as appropriate.
|
||||
* QuickTemplate::msgHtml() and BaseTemplate::msgHtml() have been deprecated
|
||||
as they promote bad practises. I18n messages should always be properly
|
||||
escaped.
|
||||
* Skin::getDynamicStylesheetQuery() has been deprecated. It always
|
||||
returns action=raw&ctype=text/css which callers should use directly.
|
||||
* Class LegacyFormatter is deprecated.
|
||||
* Use of CommentStore::insertWithTempTable() with 'img_description' is
|
||||
deprecated. Use CommentStore::insert() instead.
|
||||
* Language::setCode is deprecated as public function. Use Language::factory
|
||||
to create a new Language object with a different language code.
|
||||
* Several classes have been moved from the MediaWiki\Storage\ namespace to the
|
||||
MediaWiki\Revision\ namespace. The old class names are aliased for
|
||||
compatibility, but are deprecated. Classes are IncompleteRevisionException,
|
||||
MutableRevisionRecord, MutableRevisionSlots, RevisionAccessException,
|
||||
RevisionArchiveRecord, RevisionFactory, RevisionLookup, RevisionRecord,
|
||||
RevisionSlots, RevisionStore, RevisionStoreRecord, SlotRecord, and
|
||||
SuppressedDataException.
|
||||
* When using OOUI HTMLForm containing an 'info' field which uses the 'rawrow'
|
||||
option, it is now deprecated to give its contents (the 'default' option)
|
||||
as a string. They should be given as a OOUI\FieldLayout object instead.
|
||||
Notably, this affects fields defined in the 'GetPreferences' hook, because
|
||||
Special:Preferences uses an OOUI form now. (If possible, don't use 'rawrow'.)
|
||||
* In Skin::doEditSectionLink omitting the parameters $tooltip and $lang is
|
||||
deprecated. For the $lang parameter, types other than Language are
|
||||
deprecated.
|
||||
* The $wgUseKeyHeader configuration option and the
|
||||
OutputPage::getKeyHeader() method have been deprecated; the relevant
|
||||
draft IETF spec expired without becoming a standard.
|
||||
* Deprecated API action=query&prop=info inprop=readable in favor of
|
||||
intestactions=read.
|
||||
|
||||
=== Other changes in 1.32 ===
|
||||
* (T198811) The following tables have had their UNIQUE indexes turned into
|
||||
proper PRIMARY KEYs for increased maintainability: interwiki, page_props,
|
||||
protected_titles and site_identifiers.
|
||||
* OOUI HTMLForm will now display help text inline after the input field,
|
||||
rather than in a popup. Previous behavior can be restored by using
|
||||
`'help-inline' => false`.
|
||||
* The archive table's ar_rev_id field is now unique.
|
||||
* Special:BotPasswords now requires reauthentication.
|
||||
* (T174023) Multi-Content Revision (MCR) capabilities were introduced into the
|
||||
storage layer and have basic support for display. No user interface exists
|
||||
yet for creating or managing content in slots beides the main slot. See
|
||||
<https://www.mediawiki.org/wiki/Multi-Content_Revisions> for more
|
||||
information.
|
||||
* The image_comment_temp database table has been removed. Since all access
|
||||
should be mediated by the CommentStore class, this change shouldn't affect
|
||||
external code.
|
||||
* (T206147) Database::close() will no longer commit any open transactions.
|
||||
* (T64103) Dropped columns category.cat_hidden, site_stats.ss_admins, and
|
||||
recentchanges.rc_cur_time from the PostgreSQL schema.
|
||||
|
||||
== Compatibility ==
|
||||
MediaWiki 1.32 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is
|
||||
supported, it is generally advised to use PHP 7.0.0 or later for long term
|
||||
support. MediaWiki requires that the mbstring, xml, ctype, json, iconv and
|
||||
fileinfo PHP extensions are loaded to work.
|
||||
|
||||
MySQL/MariaDB 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.5.8 or later
|
||||
* PostgreSQL 9.2 or later
|
||||
* SQLite 3.3.7 or later
|
||||
* Oracle 9.0.1 or later
|
||||
* Microsoft SQL Server 2005 (9.00.1399)
|
||||
|
||||
== Upgrading ==
|
||||
1.32 has several database changes since 1.31, 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).
|
||||
|
||||
Don't forget to always back up your database before upgrading!
|
||||
|
||||
See the file UPGRADE for more detailed upgrade instructions, including
|
||||
important information when upgrading from versions prior to 1.11.
|
||||
|
||||
For notes on 1.31.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.
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* To use a profiler, copy this file to StartProfiler.php and add:
|
||||
* $wgProfiler['class'] = 'ProfilerXhprof';
|
||||
*
|
||||
* For output, set the 'output' key to an array of class names, one for each
|
||||
* output type you want the profiler to generate. For example:
|
||||
* $wgProfiler['output'] = array( 'ProfilerOutputText' );
|
||||
*
|
||||
* The output classes available to you by default are ProfilerOutputDb,
|
||||
* ProfilerOutputDump, ProfilerOutputStats, ProfilerOutputText, and
|
||||
* ProfilerOutputUdp.
|
||||
*
|
||||
* ProfilerOutputStats outputs profiling data as StatsD metrics. It expects
|
||||
* that you have set the $wgStatsdServer configuration variable to the host (or
|
||||
* host:port) of your statsd server.
|
||||
*
|
||||
* ProfilerOutputText will output profiling data in the page body as a comment.
|
||||
* You can make the profiling data in HTML render as part of the page content
|
||||
* by setting the 'visible' configuration flag:
|
||||
* $wgProfiler['visible'] = true;
|
||||
*
|
||||
* 'ProfilerOutputDb' expects a database table that can be created by applying
|
||||
* maintenance/archives/patch-profiling.sql to your database.
|
||||
*
|
||||
* 'ProfilerOutputDump' expects a $wgProfiler['outputDir'] telling it where to
|
||||
* write dump files. The files produced are compatible with the XHProf gui.
|
||||
* For a rudimentary sampling profiler:
|
||||
* $wgProfiler['class'] = 'ProfilerXhprof';
|
||||
* $wgProfiler['output'] = array( 'ProfilerOutputDb' );
|
||||
* $wgProfiler['sampling'] = 50; // one every 50 requests
|
||||
* This will use ProfilerStub for non-sampled cases.
|
||||
*
|
||||
* For performance, the profiler is always disabled for CLI scripts as they
|
||||
* could be long running and the data would accumulate. Use the '--profiler'
|
||||
* parameter of maintenance scripts to override this.
|
||||
*/
|
259
UPGRADE
259
UPGRADE
|
@ -1,24 +1,23 @@
|
|||
This file provides an overview of the MediaWiki upgrade process. For help with
|
||||
specific problems, check
|
||||
specific problems, you should check:
|
||||
|
||||
* the documentation at https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents
|
||||
* the docs at https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents ;
|
||||
* the mediawiki-l mailing list archive at
|
||||
https://lists.wikimedia.org/pipermail/mediawiki-l/
|
||||
https://lists.wikimedia.org/pipermail/mediawiki-l/ ; and
|
||||
* the bug tracker at https://phabricator.wikimedia.org/
|
||||
|
||||
for information and workarounds to common issues.
|
||||
… 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/Special:MyLanguage/Manual:Upgrading
|
||||
We provide comprehensive documentation on upgrading to the latest version of the
|
||||
software at https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Upgrading.
|
||||
|
||||
=== Consult the release notes ===
|
||||
|
||||
Before doing anything, stop and consult the release notes supplied with the new
|
||||
version of the software. These detail bug fixes, new features and functionality,
|
||||
and any particular points that may need to be noted during the upgrade
|
||||
procedure.
|
||||
and any particular points that may need to be noted during the upgrade process.
|
||||
|
||||
=== Backup first ===
|
||||
|
||||
|
@ -27,19 +26,18 @@ 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/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
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Backing_up_a_wiki is 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.
|
||||
|
||||
=== Perform the file upgrade ===
|
||||
|
||||
Download the files for the new version of the software. These are available
|
||||
as a compressed "tar" archive from the Wikimedia Download Service
|
||||
Download the files for the new version of the software. These are available as a
|
||||
compressed "tar" archive from the Wikimedia Download Service
|
||||
(https://releases.wikimedia.org/mediawiki/).
|
||||
|
||||
You can also obtain the new files directly from our Git source code
|
||||
repository.
|
||||
You can also obtain the new files directly from our Git source code repository.
|
||||
|
||||
Replace the existing MediaWiki files with the new. You should preserve the
|
||||
LocalSettings.php file and the "extensions" and "images" directories.
|
||||
|
@ -50,15 +48,15 @@ deleted file archives, and any custom skins.
|
|||
|
||||
=== Perform the database upgrade ===
|
||||
|
||||
As of 1.21, it is possible to separate schema changes (i.e. adding,
|
||||
dropping, or changing tables, fields, or indices) from all other
|
||||
database changes (e.g. populating fields). If you need this
|
||||
capability, see "From the command line" below.
|
||||
As of 1.21, it is possible to separate schema changes (i.e. adding, dropping, or
|
||||
changing tables, fields, or indices) from all other database changes (e.g.
|
||||
populating fields). If you need this capability, see "From the command line"
|
||||
below.
|
||||
|
||||
==== From the web ====
|
||||
==== From the Web ====
|
||||
|
||||
If you browse to the web-based installation script (usually at
|
||||
/mw-config/index.php) from your wiki installation you can follow the script and
|
||||
If you browse to the Web-based installation script (usually at
|
||||
./mw-config/index.php) from your wiki installation you can follow the script and
|
||||
upgrade your database in place.
|
||||
|
||||
==== From the command line ====
|
||||
|
@ -68,19 +66,19 @@ update.php script to check and update the schema. This will insert missing
|
|||
tables, update existing tables, and move data around as needed. In most cases,
|
||||
this is successful and nothing further needs to be done.
|
||||
|
||||
If you need to separate out the schema changes so they can be run
|
||||
by someone with more privileges, then you can use the --schema option
|
||||
to produce a text file with the necessary commands. You can use
|
||||
--schema, --noschema, $wgAllowSchemaUpdates as well as proper database
|
||||
permissions to enforce this separation.
|
||||
If you need to separate out the schema changes so they can be run by someone
|
||||
with more privileges, then you can use the --schema option to produce a text
|
||||
file with the necessary commands. You can use --schema, --noschema,
|
||||
$wgAllowSchemaUpdates as well as proper database permissions to enforce this
|
||||
separation.
|
||||
|
||||
=== Check configuration settings ===
|
||||
|
||||
The names of configuration variables, and their default values and purposes,
|
||||
can change between release branches, e.g. $wgDisableUploads in 1.4 is replaced
|
||||
with $wgEnableUploads in later versions. When upgrading, consult the release
|
||||
notes to check for configuration changes which would alter the expected
|
||||
behavior of MediaWiki.
|
||||
The names of configuration variables, and their default values and purposes, can
|
||||
change between release branches, e.g. $wgDisableUploads in 1.4 is replaced with
|
||||
$wgEnableUploads in later versions. When upgrading, consult the release notes to
|
||||
check for configuration changes which would alter the expected behavior of
|
||||
MediaWiki.
|
||||
|
||||
=== Check installed extensions ===
|
||||
|
||||
|
@ -94,48 +92,48 @@ LocalSettings.php
|
|||
|
||||
It makes sense to test your wiki immediately following any kind of maintenance
|
||||
procedure, and especially after upgrading; check that page views and edits work
|
||||
normally and that special pages continue to function, etc. and correct errors
|
||||
normally, that special pages continue to function, etc., and correct any errors
|
||||
and quirks which reveal themselves.
|
||||
|
||||
You should also test any extensions, and upgrade these if necessary.
|
||||
|
||||
== Upgrading from 1.16 or earlier ==
|
||||
|
||||
If you have a Chinese or Japanese wiki ($wgLanguageCode is set to one
|
||||
of "zh", "ja", or "yue") and you are using MySQL fulltext search, you
|
||||
will probably want to update the search index.
|
||||
If you have a Chinese or Japanese wiki ($wgLanguageCode is set to one of "zh",
|
||||
"ja", or "yue") and you are using MySQL fulltext search, you will probably want
|
||||
to update the search index.
|
||||
|
||||
In the "maintenance" directory, run the updateDoubleWidthSearch.php
|
||||
script. This will update the searchindex table for those pages that
|
||||
contain double-byte latin characters.
|
||||
In the "maintenance" directory, run the updateDoubleWidthSearch.php script. This
|
||||
will update the searchindex table for those pages that contain double-byte Latin
|
||||
characters.
|
||||
|
||||
== Upgrading from 1.10 or earlier ==
|
||||
|
||||
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.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.
|
||||
|
||||
== Upgrading from 1.8 or earlier ==
|
||||
|
||||
MediaWiki 1.9 and later no longer keep default localized message text
|
||||
in the database; 'MediaWiki:'-namespace pages that do not exist in the
|
||||
database are simply transparently filled-in on demand.
|
||||
MediaWiki 1.9 and later no longer keep default localized message text in the
|
||||
database; 'MediaWiki:'-namespace pages that do not exist in the database are
|
||||
simply transparently filled-in on demand.
|
||||
|
||||
The upgrade process will delete any 'MediaWiki:' pages which are left
|
||||
in the default state (last edited by 'MediaWiki default'). This may
|
||||
take a few moments, similar to the old initial setup.
|
||||
The upgrade process will delete any 'MediaWiki:' pages which are left in the
|
||||
default state (last edited by 'MediaWiki default'). This may take a few moments,
|
||||
similar to the old initial setup.
|
||||
|
||||
Note that the large number of deletions may cause older edits to expire
|
||||
from the list on Special:Recentchanges, although the deletions themselves
|
||||
will be hidden by default. (Click "show bot edits" to list them.)
|
||||
Note that the large number of deletions may cause older edits to expire from the
|
||||
list on Special:Recentchanges, although the deletions themselves will be hidden
|
||||
by default. (Click "show bot edits" to list them.)
|
||||
|
||||
See RELEASE-NOTES for more details about new and changed options.
|
||||
|
||||
== Upgrading from 1.7 or earlier ==
|
||||
|
||||
$wgDefaultUserOptions now contains all the defaults, not only overrides.
|
||||
If you're setting this as a complete array(), you may need to change it
|
||||
to set only specific items as recommended in DefaultSettings.php.
|
||||
$wgDefaultUserOptions now contains all the defaults, not only overrides. If you
|
||||
are setting this as a complete array(), you may need to change it to set only
|
||||
specific items as recommended in DefaultSettings.php.
|
||||
|
||||
== Upgrading from 1.6 or earlier ==
|
||||
|
||||
|
@ -146,58 +144,56 @@ new database fields are filled with data.
|
|||
|
||||
== Upgrading from 1.5 or earlier ==
|
||||
|
||||
Major changes have been made to the schema from 1.4.x. The updater
|
||||
has not been fully tested for all conditions, and might well break.
|
||||
Major changes have been made to the schema from 1.4.x. The updater has not been
|
||||
fully tested for all conditions, and might well break.
|
||||
|
||||
On a large site, the schema update might take a long time. It might
|
||||
explode, or leave your database half-done or otherwise badly hurting.
|
||||
On a large site, the schema update might take a long time. It might explode, or
|
||||
leave your database half-done or otherwise badly hurting.
|
||||
|
||||
Among other changes, note that Latin-1 encoding (ISO-8859-1) is
|
||||
no longer supported. Latin-1 wikis will need to be upgraded to
|
||||
UTF-8; an experimental command-line upgrade helper script,
|
||||
'upgrade1_5.php', can do this -- run it prior to 'update.php' or
|
||||
the web upgrader.
|
||||
Among other changes, note that Latin-1 encoding (ISO-8859-1) is no longer
|
||||
supported. Latin-1 wikis will need to be upgraded to UTF-8; an experimental
|
||||
command-line upgrade helper script, 'upgrade1_5.php', can do this -- run it
|
||||
prior to 'update.php' or the Web upgrader.
|
||||
|
||||
NOTE that upgrade1_5.php does not work properly with recent versions
|
||||
of MediaWiki. If upgrading a 1.4.x wiki, you should upgrade to 1.5
|
||||
first. upgrade1_5.php has been removed from MediaWiki 1.21.
|
||||
NOTE that upgrade1_5.php does not work properly with recent versions of
|
||||
MediaWiki. If upgrading a 1.4.x wiki, you should upgrade to 1.5 first.
|
||||
upgrade1_5.php has been removed from MediaWiki 1.21.
|
||||
|
||||
If you absolutely cannot make the UTF-8 upgrade work, you can try
|
||||
doing it by hand: dump your old database, convert the dump file
|
||||
using iconv as described here:
|
||||
http://portal.suse.com/sdb/en/2004/05/jbartsh_utf-8.html
|
||||
and then reimport it. You can also convert filenames using convmv,
|
||||
but note that the old directory hashes will no longer be valid,
|
||||
so you will also have to move them to new destinations.
|
||||
If you absolutely cannot make the UTF-8 upgrade work, you can try doing it by
|
||||
hand: dump your old database, convert the dump file using iconv as described
|
||||
here: http://portal.suse.com/sdb/en/2004/05/jbartsh_utf-8.html
|
||||
and then re-import it. You can also convert filenames using convmv, but note
|
||||
that the old directory hashes will no longer be valid, so you will also have to
|
||||
move them to new destinations.
|
||||
|
||||
Message changes:
|
||||
* A number of additional UI messages have been changed from HTML to
|
||||
wikitext, and will need to be manually fixed if customized.
|
||||
* A number of additional UI messages have been changed from HTML to wikitext,
|
||||
and will need to be manually fixed if customized.
|
||||
|
||||
=== Configuration changes from 1.4.x: ===
|
||||
|
||||
$wgDisableUploads has been replaced with $wgEnableUploads.
|
||||
|
||||
$wgWhitelistAccount has been replaced by the 'createaccount' permission
|
||||
key in $wgGroupPermissions. To emulate the old effect of setting:
|
||||
$wgWhitelistAccount has been replaced by the 'createaccount' permission key in
|
||||
$wgGroupPermissions. To emulate the old effect of setting:
|
||||
$wgWhitelistAccount['user'] = 0;
|
||||
set:
|
||||
$wgGroupPermissions['*']['createaccount'] = false;
|
||||
|
||||
$wgWhitelistEdit has been replaced by the 'edit' permission key.
|
||||
To emulate the old effect of setting:
|
||||
$wgWhitelistEdit has been replaced by the 'edit' permission key. To emulate the
|
||||
old effect of setting:
|
||||
$wgWhitelistEdit = true;
|
||||
set:
|
||||
$wgGroupPermissions['*']['edit'] = false;
|
||||
|
||||
If $wgWhitelistRead is set, you must also disable the 'read' permission
|
||||
for it to take affect on anonymous users:
|
||||
If $wgWhitelistRead is set, you must also disable the 'read' permission for it
|
||||
to take affect on anonymous users:
|
||||
$wgWhitelistRead = array( "Main Page", "Special:Userlogin" );
|
||||
$wgGroupPermissions['*']['read'] = false;
|
||||
|
||||
Note that you can disable/enable several other permissions by modifying
|
||||
this configuration array in your LocalSettings.php; see DefaultSettings.php
|
||||
for the complete default permission set.
|
||||
Note that you can disable/enable several other permissions by modifying this
|
||||
configuration array in your LocalSettings.php; see DefaultSettings.php for the
|
||||
complete default permission set.
|
||||
|
||||
If using Memcached, you must enabled it differently now:
|
||||
$wgUseMemCached = true;
|
||||
|
@ -206,35 +202,31 @@ should be replaced with:
|
|||
|
||||
== Upgrading from 1.4.2 or earlier ==
|
||||
|
||||
1.4.3 has added new fields to the sitestats table. These fields are
|
||||
optional and help to speed Special:Statistics on large sites. If you
|
||||
choose not to run the database upgrades, everything will continue to
|
||||
work in 1.4.3.
|
||||
1.4.3 has added new fields to the sitestats table. These fields are optional and
|
||||
help to speed Special:Statistics on large sites. If you choose not to run the
|
||||
database upgrades, everything will continue to work in 1.4.3.
|
||||
|
||||
You can apply the update by running maintenance/update.php, or
|
||||
manually run the SQL commands from this file:
|
||||
You can apply the update by running maintenance/update.php, or manually run the
|
||||
SQL commands from this file:
|
||||
maintenance/archives/patch-ss_total_articles.sql
|
||||
|
||||
|
||||
== Upgrading from 1.4rc1 or earlier betas ==
|
||||
|
||||
The logging table has been altered from 1.4beta4 to 1.4beta5
|
||||
and again in 1.4.0 final. Copy in the new files and use the web
|
||||
installer to upgrade, or the command-line maintenance/update.php.
|
||||
|
||||
If you cannot use the automated installers/updaters, you may
|
||||
update the table by manually running the SQL commands in these
|
||||
files:
|
||||
maintenance/archives/patch-log_params.sql
|
||||
maintenance/archives/patch-logging-title.sql
|
||||
The logging table has been altered from 1.4beta4 to 1.4beta5 and again in 1.4.0
|
||||
final. Copy in the new files and use the Web installer to upgrade, or the
|
||||
command-line maintenance/update.php.
|
||||
|
||||
If you cannot use the automated installers/updaters, you may update the table by
|
||||
manually running the SQL commands in these files:
|
||||
maintenance/archives/patch-log_params.sql
|
||||
maintenance/archives/patch-logging-title.sql
|
||||
|
||||
== Upgrading from 1.3 or earlier ==
|
||||
|
||||
This should generally go smoothly.
|
||||
|
||||
If you keep your LocalSettings.php, you may need to change the style paths
|
||||
to match the newly rearranged skin modules. Change these lines:
|
||||
If you keep your LocalSettings.php, you may need to change the style paths to
|
||||
match the newly rearranged skin modules. Change these lines:
|
||||
$wgStylePath = "$wgScriptPath/stylesheets";
|
||||
$wgStyleDirectory = "$IP/stylesheets";
|
||||
$wgLogo = "$wgStylePath/images/wiki.png";
|
||||
|
@ -244,9 +236,9 @@ to this:
|
|||
$wgStyleDirectory = "$IP/skins";
|
||||
$wgLogo = "$wgStylePath/common/images/wiki.png";
|
||||
|
||||
As well as new messages, the processing of some messages has changed.
|
||||
If you have customized them, please compare the new format using
|
||||
Special:Allmessages or the relevant LanguageXX.php files:
|
||||
As well as new messages, the processing of some messages has changed. If you
|
||||
have customized them, please compare the new format using Special:Allmessages or
|
||||
the relevant LanguageXX.php files:
|
||||
|
||||
* copyrightwarning
|
||||
* dberrortext
|
||||
|
@ -262,45 +254,42 @@ Special:Allmessages or the relevant LanguageXX.php files:
|
|||
* showhideminor
|
||||
* unprotectedarticle
|
||||
|
||||
Note that the 1.3 beta releases included a potential vulnerability if PHP
|
||||
is configured with register_globals on and the includes directory is
|
||||
served to the web. For general safety, turn register_globals *off* if you
|
||||
don't _really_ need it for another package.
|
||||
|
||||
If your hosting provider turns it on and you can't turn it off yourself,
|
||||
send them a kind note explaining that it can expose their servers and their
|
||||
customers to attacks.
|
||||
Note that the 1.3 beta releases included a potential vulnerability if PHP is
|
||||
configured with register_globals on and the includes directory is served to the
|
||||
Web. For general safety, turn register_globals *off* if you don't _really_ need
|
||||
it for another package.
|
||||
|
||||
If your hosting provider turns it on and you can't turn it off yourself, send
|
||||
them a kind note explaining that it can expose their servers and their customers
|
||||
to attacks.
|
||||
|
||||
== Upgrading from 1.2 or earlier ==
|
||||
|
||||
If you've been using the MediaWiki: namespace for custom page templates,
|
||||
note that things are a little different. The Template: namespace has been
|
||||
added which is more powerful -- templates can include parameters for
|
||||
instance.
|
||||
If you've been using the MediaWiki: namespace for custom page templates, note
|
||||
that things are a little different. The Template: namespace has been added which
|
||||
is more powerful -- templates can include parameters for instance.
|
||||
|
||||
If you were using custom MediaWiki: entries for text inclusions, they
|
||||
will *not* automatically be moved to Template: entries at upgrade time.
|
||||
Be sure to go through and check that everything is working properly;
|
||||
you can move them manually or you can try using moveCustomMessages.php
|
||||
in maintenance/archives to do it automatically, but this might break things.
|
||||
|
||||
Also, be sure to pick the correct character encoding -- some languages were
|
||||
only available in Latin-1 on 1.2.x and are now available for Unicode as well.
|
||||
If you want to upgrade an existing wiki from Latin-1 to Unicode you'll have
|
||||
to dump the database to SQL, run it through iconv or another conversion tool,
|
||||
and restore it. Sorry.
|
||||
If you were using custom MediaWiki: entries for text inclusions, they will *not*
|
||||
automatically be moved to Template: entries at upgrade time. Be sure to go
|
||||
through and check that everything is working properly; you can move them
|
||||
manually or you can try using moveCustomMessages.php in maintenance/archives to
|
||||
do it automatically, but this might break things.
|
||||
|
||||
Also, be sure to pick the correct character encoding -- some languages were only
|
||||
available in Latin-1 on 1.2.x and are now available for Unicode as well. If you
|
||||
want to upgrade an existing wiki from Latin-1 to Unicode you'll have to dump the
|
||||
database to SQL, run it through iconv or another conversion tool, and restore
|
||||
it. Sorry.
|
||||
|
||||
== Upgrading from 1.1 or earlier ==
|
||||
|
||||
This is less thoroughly tested, but should work.
|
||||
|
||||
You need to specify the *admin* database username and password to the
|
||||
installer in order for it to successfully upgrade the database structure.
|
||||
You may wish to manually change the GRANTs later.
|
||||
You need to specify the *admin* database username and password to the installer
|
||||
in order for it to successfully upgrade the database structure. You may wish to
|
||||
manually change the GRANTs later.
|
||||
|
||||
If you have a very old database (earlier than organized MediaWiki releases
|
||||
in late August 2003) you may need to manually run some of the update SQL
|
||||
scripts in maintenance/archives before the installer is able to pick up
|
||||
with remaining updates.
|
||||
If you have a very old database (earlier than organized MediaWiki releases in
|
||||
late August 2003) you may need to manually run some of the update SQL scripts in
|
||||
maintenance/archives before the installer is able to pick up with remaining
|
||||
updates.
|
||||
|
|
33
api.php
33
api.php
|
@ -2,13 +2,10 @@
|
|||
/**
|
||||
* This file is the entry point for all API queries.
|
||||
*
|
||||
* It begins by checking whether the API is enabled on this wiki; if not,
|
||||
* it informs the user that s/he should set $wgEnableAPI to true and exits.
|
||||
* Otherwise, it constructs a new ApiMain using the parameter passed to it
|
||||
* as an argument in the URL ('?action=') and with write-enabled set to the
|
||||
* value of $wgEnableWriteAPI as specified in LocalSettings.php.
|
||||
* It then invokes "execute()" on the ApiMain object instance, which
|
||||
* produces output in the format specified in the URL.
|
||||
* It begins by constructing a new ApiMain using the parameter passed to it
|
||||
* as an argument in the URL ('?action='). It then invokes "execute()" on the
|
||||
* ApiMain object instance, which produces output in the format specified in
|
||||
* the URL.
|
||||
*
|
||||
* Copyright © 2006 Yuri Astrakhan <Firstname><Lastname>@gmail.com
|
||||
*
|
||||
|
@ -44,7 +41,7 @@ if ( !$wgRequest->checkUrlExtension() ) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Pathinfo can be used for stupid things. We don't support it for api.php at
|
||||
// PATH_INFO can be used for stupid things. We don't support it for api.php at
|
||||
// all, so error out if it's present.
|
||||
if ( isset( $_SERVER['PATH_INFO'] ) && $_SERVER['PATH_INFO'] != '' ) {
|
||||
$correctUrl = wfAppendQuery( wfScript( 'api' ), $wgRequest->getQueryValues() );
|
||||
|
@ -55,14 +52,6 @@ if ( isset( $_SERVER['PATH_INFO'] ) && $_SERVER['PATH_INFO'] != '' ) {
|
|||
die( 1 );
|
||||
}
|
||||
|
||||
// Verify that the API has not been disabled
|
||||
if ( !$wgEnableAPI ) {
|
||||
header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 );
|
||||
echo 'MediaWiki API is not enabled for this site. Add the following line to your LocalSettings.php'
|
||||
. '<pre><b>$wgEnableAPI=true;</b></pre>';
|
||||
die( 1 );
|
||||
}
|
||||
|
||||
// Set a dummy $wgTitle, because $wgTitle == null breaks various things
|
||||
// In a perfect world this wouldn't be necessary
|
||||
$wgTitle = Title::makeTitle( NS_SPECIAL, 'Badtitle/dummy title for API calls set in api.php' );
|
||||
|
@ -76,14 +65,18 @@ try {
|
|||
* is some form of an ApiMain, possibly even one that produces an error message,
|
||||
* but we don't care here, as that is handled by the constructor.
|
||||
*/
|
||||
$processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
|
||||
$processor = new ApiMain( RequestContext::getMain(), true );
|
||||
|
||||
// Last chance hook before executing the API
|
||||
Hooks::run( 'ApiBeforeMain', [ &$processor ] );
|
||||
if ( !$processor instanceof ApiMain ) {
|
||||
throw new MWException( 'ApiBeforeMain hook set $processor to a non-ApiMain class' );
|
||||
}
|
||||
} catch ( Exception $e ) {
|
||||
} catch ( Exception $e ) { // @todo Remove this block when HHVM is no longer supported
|
||||
// Crap. Try to report the exception in API format to be friendly to clients.
|
||||
ApiMain::handleApiBeforeMainException( $e );
|
||||
$processor = false;
|
||||
} catch ( Throwable $e ) {
|
||||
// Crap. Try to report the exception in API format to be friendly to clients.
|
||||
ApiMain::handleApiBeforeMainException( $e );
|
||||
$processor = false;
|
||||
|
@ -110,7 +103,9 @@ if ( $wgAPIRequestLog ) {
|
|||
try {
|
||||
$manager = $processor->getModuleManager();
|
||||
$module = $manager->getModule( $wgRequest->getVal( 'action' ), 'action' );
|
||||
} catch ( Exception $ex ) {
|
||||
} catch ( Exception $ex ) { // @todo Remove this block when HHVM is no longer supported
|
||||
$module = null;
|
||||
} catch ( Throwable $ex ) {
|
||||
$module = null;
|
||||
}
|
||||
if ( !$module || $module->mustBePosted() ) {
|
||||
|
|
244
autoload.php
244
autoload.php
|
@ -12,7 +12,8 @@ $wgAutoloadLocalClasses = [
|
|||
'ActiveUsersPager' => __DIR__ . '/includes/specials/pagers/ActiveUsersPager.php',
|
||||
'ActivityUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/ActivityUpdateJob.php',
|
||||
'ActorMigration' => __DIR__ . '/includes/ActorMigration.php',
|
||||
'AddRFCAndPMIDInterwiki' => __DIR__ . '/maintenance/addRFCandPMIDInterwiki.php',
|
||||
'AddChangeTag' => __DIR__ . '/maintenance/addChangeTag.php',
|
||||
'AddRFCandPMIDInterwiki' => __DIR__ . '/maintenance/addRFCandPMIDInterwiki.php',
|
||||
'AddSite' => __DIR__ . '/maintenance/addSite.php',
|
||||
'AjaxDispatcher' => __DIR__ . '/includes/AjaxDispatcher.php',
|
||||
'AjaxResponse' => __DIR__ . '/includes/AjaxResponse.php',
|
||||
|
@ -64,7 +65,7 @@ $wgAutoloadLocalClasses = [
|
|||
'ApiManageTags' => __DIR__ . '/includes/api/ApiManageTags.php',
|
||||
'ApiMergeHistory' => __DIR__ . '/includes/api/ApiMergeHistory.php',
|
||||
'ApiMessage' => __DIR__ . '/includes/api/ApiMessage.php',
|
||||
'ApiMessageTrait' => __DIR__ . '/includes/api/ApiMessage.php',
|
||||
'ApiMessageTrait' => __DIR__ . '/includes/api/ApiMessageTrait.php',
|
||||
'ApiModuleManager' => __DIR__ . '/includes/api/ApiModuleManager.php',
|
||||
'ApiMove' => __DIR__ . '/includes/api/ApiMove.php',
|
||||
'ApiOpenSearch' => __DIR__ . '/includes/api/ApiOpenSearch.php',
|
||||
|
@ -93,7 +94,7 @@ $wgAutoloadLocalClasses = [
|
|||
'ApiQueryCategories' => __DIR__ . '/includes/api/ApiQueryCategories.php',
|
||||
'ApiQueryCategoryInfo' => __DIR__ . '/includes/api/ApiQueryCategoryInfo.php',
|
||||
'ApiQueryCategoryMembers' => __DIR__ . '/includes/api/ApiQueryCategoryMembers.php',
|
||||
'ApiQueryContributions' => __DIR__ . '/includes/api/ApiQueryUserContributions.php',
|
||||
'ApiQueryContributions' => __DIR__ . '/includes/api/ApiQueryUserContribs.php',
|
||||
'ApiQueryContributors' => __DIR__ . '/includes/api/ApiQueryContributors.php',
|
||||
'ApiQueryDeletedRevisions' => __DIR__ . '/includes/api/ApiQueryDeletedRevisions.php',
|
||||
'ApiQueryDeletedrevs' => __DIR__ . '/includes/api/ApiQueryDeletedrevs.php',
|
||||
|
@ -129,11 +130,12 @@ $wgAutoloadLocalClasses = [
|
|||
'ApiQueryStashImageInfo' => __DIR__ . '/includes/api/ApiQueryStashImageInfo.php',
|
||||
'ApiQueryTags' => __DIR__ . '/includes/api/ApiQueryTags.php',
|
||||
'ApiQueryTokens' => __DIR__ . '/includes/api/ApiQueryTokens.php',
|
||||
'ApiQueryUserContribs' => __DIR__ . '/includes/api/ApiQueryUserContribs.php',
|
||||
'ApiQueryUserInfo' => __DIR__ . '/includes/api/ApiQueryUserInfo.php',
|
||||
'ApiQueryUsers' => __DIR__ . '/includes/api/ApiQueryUsers.php',
|
||||
'ApiQueryWatchlist' => __DIR__ . '/includes/api/ApiQueryWatchlist.php',
|
||||
'ApiQueryWatchlistRaw' => __DIR__ . '/includes/api/ApiQueryWatchlistRaw.php',
|
||||
'ApiRawMessage' => __DIR__ . '/includes/api/ApiMessage.php',
|
||||
'ApiRawMessage' => __DIR__ . '/includes/api/ApiRawMessage.php',
|
||||
'ApiRemoveAuthenticationData' => __DIR__ . '/includes/api/ApiRemoveAuthenticationData.php',
|
||||
'ApiResetPassword' => __DIR__ . '/includes/api/ApiResetPassword.php',
|
||||
'ApiResult' => __DIR__ . '/includes/api/ApiResult.php',
|
||||
|
@ -172,7 +174,7 @@ $wgAutoloadLocalClasses = [
|
|||
'AvroValidator' => __DIR__ . '/includes/utils/AvroValidator.php',
|
||||
'BacklinkCache' => __DIR__ . '/includes/cache/BacklinkCache.php',
|
||||
'BacklinkJobUtils' => __DIR__ . '/includes/jobqueue/utils/BacklinkJobUtils.php',
|
||||
'BackupDumper' => __DIR__ . '/maintenance/backup.inc',
|
||||
'BackupDumper' => __DIR__ . '/maintenance/includes/BackupDumper.php',
|
||||
'BackupReader' => __DIR__ . '/maintenance/importDump.php',
|
||||
'BadRequestError' => __DIR__ . '/includes/exception/BadRequestError.php',
|
||||
'BadTitleError' => __DIR__ . '/includes/exception/BadTitleError.php',
|
||||
|
@ -183,11 +185,9 @@ $wgAutoloadLocalClasses = [
|
|||
'BatchRowIterator' => __DIR__ . '/includes/utils/BatchRowIterator.php',
|
||||
'BatchRowUpdate' => __DIR__ . '/includes/utils/BatchRowUpdate.php',
|
||||
'BatchRowWriter' => __DIR__ . '/includes/utils/BatchRowWriter.php',
|
||||
'BatchedQueryRunner' => __DIR__ . '/maintenance/runBatchedQuery.php',
|
||||
'BcryptPassword' => __DIR__ . '/includes/password/BcryptPassword.php',
|
||||
'BenchHttpHttps' => __DIR__ . '/maintenance/benchmarks/bench_HTTP_HTTPS.php',
|
||||
'BenchIfSwitch' => __DIR__ . '/maintenance/benchmarks/bench_if_switch.php',
|
||||
'BenchStrtrStrReplace' => __DIR__ . '/maintenance/benchmarks/bench_strtr_str_replace.php',
|
||||
'BenchUtf8TitleCheck' => __DIR__ . '/maintenance/benchmarks/bench_utf8_title_check.php',
|
||||
'BenchWfIsWindows' => __DIR__ . '/maintenance/benchmarks/bench_wfIsWindows.php',
|
||||
'BenchWikimediaBaseConvert' => __DIR__ . '/maintenance/benchmarks/bench_Wikimedia_base_convert.php',
|
||||
|
@ -195,21 +195,24 @@ $wgAutoloadLocalClasses = [
|
|||
'BenchmarkDeleteTruncate' => __DIR__ . '/maintenance/benchmarks/bench_delete_truncate.php',
|
||||
'BenchmarkHooks' => __DIR__ . '/maintenance/benchmarks/benchmarkHooks.php',
|
||||
'BenchmarkJSMinPlus' => __DIR__ . '/maintenance/benchmarks/benchmarkJSMinPlus.php',
|
||||
'BenchmarkJavaScriptMinifier' => __DIR__ . '/maintenance/benchmarks/benchmarkJavaScriptMinifier.php',
|
||||
'BenchmarkLruHash' => __DIR__ . '/maintenance/benchmarks/benchmarkLruHash.php',
|
||||
'BenchmarkParse' => __DIR__ . '/maintenance/benchmarks/benchmarkParse.php',
|
||||
'BenchmarkPurge' => __DIR__ . '/maintenance/benchmarks/benchmarkPurge.php',
|
||||
'BenchmarkSanitizer' => __DIR__ . '/maintenance/benchmarks/benchmarkSanitizer.php',
|
||||
'BenchmarkStringReplacement' => __DIR__ . '/maintenance/benchmarks/benchmarkStringReplacement.php',
|
||||
'BenchmarkTidy' => __DIR__ . '/maintenance/benchmarks/benchmarkTidy.php',
|
||||
'BenchmarkTitleValue' => __DIR__ . '/maintenance/benchmarks/benchmarkTitleValue.php',
|
||||
'Benchmarker' => __DIR__ . '/maintenance/benchmarks/Benchmarker.php',
|
||||
'BitmapHandler' => __DIR__ . '/includes/media/Bitmap.php',
|
||||
'BitmapHandler_ClientOnly' => __DIR__ . '/includes/media/Bitmap_ClientOnly.php',
|
||||
'BitmapHandler' => __DIR__ . '/includes/media/BitmapHandler.php',
|
||||
'BitmapHandler_ClientOnly' => __DIR__ . '/includes/media/BitmapHandler_ClientOnly.php',
|
||||
'BitmapMetadataHandler' => __DIR__ . '/includes/media/BitmapMetadataHandler.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',
|
||||
'BmpHandler' => __DIR__ . '/includes/media/BmpHandler.php',
|
||||
'BotPassword' => __DIR__ . '/includes/user/BotPassword.php',
|
||||
'BrokenRedirectsPage' => __DIR__ . '/includes/specials/SpecialBrokenRedirects.php',
|
||||
'BufferingStatsdDataFactory' => __DIR__ . '/includes/libs/stats/BufferingStatsdDataFactory.php',
|
||||
|
@ -222,9 +225,9 @@ $wgAutoloadLocalClasses = [
|
|||
'CachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/CachedBagOStuff.php',
|
||||
'CachingSiteStore' => __DIR__ . '/includes/site/CachingSiteStore.php',
|
||||
'CannotCreateActorException' => __DIR__ . '/includes/exception/CannotCreateActorException.php',
|
||||
'CapsCleanup' => __DIR__ . '/maintenance/cleanupCaps.php',
|
||||
'CategoriesRdf' => __DIR__ . '/includes/CategoriesRdf.php',
|
||||
'Category' => __DIR__ . '/includes/Category.php',
|
||||
'CategoryChangesAsRdf' => __DIR__ . '/maintenance/categoryChangesAsRdf.php',
|
||||
'CategoryFinder' => __DIR__ . '/includes/CategoryFinder.php',
|
||||
'CategoryMembershipChange' => __DIR__ . '/includes/changes/CategoryMembershipChange.php',
|
||||
'CategoryMembershipChangeJob' => __DIR__ . '/includes/jobqueue/jobs/CategoryMembershipChangeJob.php',
|
||||
|
@ -263,12 +266,16 @@ $wgAutoloadLocalClasses = [
|
|||
'ClassCollector' => __DIR__ . '/includes/utils/AutoloadGenerator.php',
|
||||
'CleanupAncientTables' => __DIR__ . '/maintenance/cleanupAncientTables.php',
|
||||
'CleanupBlocks' => __DIR__ . '/maintenance/cleanupBlocks.php',
|
||||
'CleanupCaps' => __DIR__ . '/maintenance/cleanupCaps.php',
|
||||
'CleanupEmptyCategories' => __DIR__ . '/maintenance/cleanupEmptyCategories.php',
|
||||
'CleanupImages' => __DIR__ . '/maintenance/cleanupImages.php',
|
||||
'CleanupInvalidDbKeys' => __DIR__ . '/maintenance/cleanupInvalidDbKeys.php',
|
||||
'CleanupPreferences' => __DIR__ . '/maintenance/cleanupPreferences.php',
|
||||
'CleanupRemovedModules' => __DIR__ . '/maintenance/cleanupRemovedModules.php',
|
||||
'CleanupSpam' => __DIR__ . '/maintenance/cleanupSpam.php',
|
||||
'CleanupUploadStash' => __DIR__ . '/maintenance/cleanupUploadStash.php',
|
||||
'CleanupUsersWithNoId' => __DIR__ . '/maintenance/cleanupUsersWithNoId.php',
|
||||
'CleanupWatchlist' => __DIR__ . '/maintenance/cleanupWatchlist.php',
|
||||
'ClearInterwikiCache' => __DIR__ . '/maintenance/clearInterwikiCache.php',
|
||||
'ClearUserWatchlistJob' => __DIR__ . '/includes/jobqueue/jobs/ClearUserWatchlistJob.php',
|
||||
'ClearWatchlistNotificationsJob' => __DIR__ . '/includes/jobqueue/jobs/ClearWatchlistNotificationsJob.php',
|
||||
|
@ -278,8 +285,6 @@ $wgAutoloadLocalClasses = [
|
|||
'CodeContentHandler' => __DIR__ . '/includes/content/CodeContentHandler.php',
|
||||
'Collation' => __DIR__ . '/includes/collation/Collation.php',
|
||||
'CollationCkb' => __DIR__ . '/includes/collation/CollationCkb.php',
|
||||
'CollationEt' => __DIR__ . '/includes/collation/CollationEt.php',
|
||||
'CollationFa' => __DIR__ . '/includes/collation/CollationFa.php',
|
||||
'CommandLineInc' => __DIR__ . '/maintenance/commandLine.inc',
|
||||
'CommandLineInstaller' => __DIR__ . '/maintenance/install.php',
|
||||
'CommentStore' => __DIR__ . '/includes/CommentStore.php',
|
||||
|
@ -303,6 +308,7 @@ $wgAutoloadLocalClasses = [
|
|||
'Content' => __DIR__ . '/includes/content/Content.php',
|
||||
'ContentHandler' => __DIR__ . '/includes/content/ContentHandler.php',
|
||||
'ContentModelLogFormatter' => __DIR__ . '/includes/logging/ContentModelLogFormatter.php',
|
||||
'ContentSecurityPolicy' => __DIR__ . '/includes/ContentSecurityPolicy.php',
|
||||
'ContextSource' => __DIR__ . '/includes/context/ContextSource.php',
|
||||
'ContribsPager' => __DIR__ . '/includes/specials/pagers/ContribsPager.php',
|
||||
'ConvertExtensionToRegistration' => __DIR__ . '/maintenance/convertExtensionToRegistration.php',
|
||||
|
@ -317,6 +323,7 @@ $wgAutoloadLocalClasses = [
|
|||
'CoreParserFunctions' => __DIR__ . '/includes/parser/CoreParserFunctions.php',
|
||||
'CoreTagHooks' => __DIR__ . '/includes/parser/CoreTagHooks.php',
|
||||
'CreateAndPromote' => __DIR__ . '/maintenance/createAndPromote.php',
|
||||
'CreateCommonPasswordCdb' => __DIR__ . '/maintenance/createCommonPasswordCdb.php',
|
||||
'CreateFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/CreateFileOp.php',
|
||||
'CreditsAction' => __DIR__ . '/includes/actions/CreditsAction.php',
|
||||
'CrhConverter' => __DIR__ . '/languages/classes/LanguageCrh.php',
|
||||
|
@ -359,6 +366,7 @@ $wgAutoloadLocalClasses = [
|
|||
'DateFormats' => __DIR__ . '/maintenance/language/date-formats.php',
|
||||
'DateFormatter' => __DIR__ . '/includes/parser/DateFormatter.php',
|
||||
'DeadendPagesPage' => __DIR__ . '/includes/specials/SpecialDeadendpages.php',
|
||||
'DeduplicateArchiveRevId' => __DIR__ . '/maintenance/deduplicateArchiveRevId.php',
|
||||
'DeferrableCallback' => __DIR__ . '/includes/deferred/DeferrableCallback.php',
|
||||
'DeferrableUpdate' => __DIR__ . '/includes/deferred/DeferrableUpdate.php',
|
||||
'DeferredStringifier' => __DIR__ . '/includes/libs/DeferredStringifier.php',
|
||||
|
@ -372,15 +380,18 @@ $wgAutoloadLocalClasses = [
|
|||
'DeleteEqualMessages' => __DIR__ . '/maintenance/deleteEqualMessages.php',
|
||||
'DeleteFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/DeleteFileOp.php',
|
||||
'DeleteLinksJob' => __DIR__ . '/includes/jobqueue/jobs/DeleteLinksJob.php',
|
||||
'DeleteLocalPasswords' => __DIR__ . '/maintenance/includes/DeleteLocalPasswords.php',
|
||||
'DeleteLogFormatter' => __DIR__ . '/includes/logging/DeleteLogFormatter.php',
|
||||
'DeleteOldRevisions' => __DIR__ . '/maintenance/deleteOldRevisions.php',
|
||||
'DeleteOrphanedRevisions' => __DIR__ . '/maintenance/deleteOrphanedRevisions.php',
|
||||
'DeletePageJob' => __DIR__ . '/includes/jobqueue/jobs/DeletePageJob.php',
|
||||
'DeleteSelfExternals' => __DIR__ . '/maintenance/deleteSelfExternals.php',
|
||||
'DeletedContribsPager' => __DIR__ . '/includes/specials/pagers/DeletedContribsPager.php',
|
||||
'DeletedContributionsPage' => __DIR__ . '/includes/specials/SpecialDeletedContributions.php',
|
||||
'DependencyWrapper' => __DIR__ . '/includes/cache/CacheDependency.php',
|
||||
'DeprecatedGlobal' => __DIR__ . '/includes/DeprecatedGlobal.php',
|
||||
'DeprecatedInterfaceFinder' => __DIR__ . '/maintenance/findDeprecated.php',
|
||||
'DeprecationHelper' => __DIR__ . '/includes/debug/DeprecationHelper.php',
|
||||
'DerivativeContext' => __DIR__ . '/includes/context/DerivativeContext.php',
|
||||
'DerivativeRequest' => __DIR__ . '/includes/DerivativeRequest.php',
|
||||
'DerivativeResourceLoaderContext' => __DIR__ . '/includes/resourceloader/DerivativeResourceLoaderContext.php',
|
||||
|
@ -395,8 +406,9 @@ $wgAutoloadLocalClasses = [
|
|||
'DiffOpCopy' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
'DiffOpDelete' => __DIR__ . '/includes/diff/DairikiDiff.php',
|
||||
'DifferenceEngine' => __DIR__ . '/includes/diff/DifferenceEngine.php',
|
||||
'DifferenceEngineSlotDiffRenderer' => __DIR__ . '/includes/diff/DifferenceEngineSlotDiffRenderer.php',
|
||||
'Digit2Html' => __DIR__ . '/maintenance/language/digit2html.php',
|
||||
'DjVuHandler' => __DIR__ . '/includes/media/DjVu.php',
|
||||
'DjVuHandler' => __DIR__ . '/includes/media/DjVuHandler.php',
|
||||
'DjVuImage' => __DIR__ . '/includes/media/DjVuImage.php',
|
||||
'DnsSrvDiscoverer' => __DIR__ . '/includes/libs/DnsSrvDiscoverer.php',
|
||||
'DoubleRedirectJob' => __DIR__ . '/includes/jobqueue/jobs/DoubleRedirectJob.php',
|
||||
|
@ -425,7 +437,9 @@ $wgAutoloadLocalClasses = [
|
|||
'DumpRenderer' => __DIR__ . '/maintenance/renderDump.php',
|
||||
'DumpRev' => __DIR__ . '/maintenance/storage/dumpRev.php',
|
||||
'DumpStringOutput' => __DIR__ . '/includes/export/DumpStringOutput.php',
|
||||
'DumpUploads' => __DIR__ . '/maintenance/dumpUploads.php',
|
||||
'DuplicateJob' => __DIR__ . '/includes/jobqueue/jobs/DuplicateJob.php',
|
||||
'EasyDeflate' => __DIR__ . '/includes/libs/EasyDeflate.php',
|
||||
'EditAction' => __DIR__ . '/includes/actions/EditAction.php',
|
||||
'EditCLI' => __DIR__ . '/maintenance/edit.php',
|
||||
'EditPage' => __DIR__ . '/includes/EditPage.php',
|
||||
|
@ -436,6 +450,7 @@ $wgAutoloadLocalClasses = [
|
|||
'EmailNotification' => __DIR__ . '/includes/mail/EmailNotification.php',
|
||||
'EmaillingJob' => __DIR__ . '/includes/jobqueue/jobs/EmaillingJob.php',
|
||||
'EmptyBagOStuff' => __DIR__ . '/includes/libs/objectcache/EmptyBagOStuff.php',
|
||||
'EmptyUserGroup' => __DIR__ . '/maintenance/emptyUserGroup.php',
|
||||
'EnConverter' => __DIR__ . '/languages/classes/LanguageEn.php',
|
||||
'EncryptedPassword' => __DIR__ . '/includes/password/EncryptedPassword.php',
|
||||
'EnhancedChangesList' => __DIR__ . '/includes/changes/EnhancedChangesList.php',
|
||||
|
@ -452,7 +467,7 @@ $wgAutoloadLocalClasses = [
|
|||
'EventRelayerNull' => __DIR__ . '/includes/libs/eventrelayer/EventRelayerNull.php',
|
||||
'ExecutableFinder' => __DIR__ . '/includes/utils/ExecutableFinder.php',
|
||||
'Exif' => __DIR__ . '/includes/media/Exif.php',
|
||||
'ExifBitmapHandler' => __DIR__ . '/includes/media/ExifBitmap.php',
|
||||
'ExifBitmapHandler' => __DIR__ . '/includes/media/ExifBitmapHandler.php',
|
||||
'ExplodeIterator' => __DIR__ . '/includes/libs/ExplodeIterator.php',
|
||||
'ExportProgressFilter' => __DIR__ . '/includes/export/ExportProgressFilter.php',
|
||||
'ExportSites' => __DIR__ . '/maintenance/exportSites.php',
|
||||
|
@ -510,6 +525,7 @@ $wgAutoloadLocalClasses = [
|
|||
'FileJournal' => __DIR__ . '/includes/libs/filebackend/filejournal/FileJournal.php',
|
||||
'FileOp' => __DIR__ . '/includes/libs/filebackend/fileop/FileOp.php',
|
||||
'FileOpBatch' => __DIR__ . '/includes/libs/filebackend/FileOpBatch.php',
|
||||
'FileOpPerfTest' => __DIR__ . '/maintenance/fileOpPerfTest.php',
|
||||
'FileRepo' => __DIR__ . '/includes/filerepo/FileRepo.php',
|
||||
'FileRepoStatus' => __DIR__ . '/includes/filerepo/FileRepoStatus.php',
|
||||
'FindDeprecated' => __DIR__ . '/maintenance/findDeprecated.php',
|
||||
|
@ -533,16 +549,16 @@ $wgAutoloadLocalClasses = [
|
|||
'FormAction' => __DIR__ . '/includes/actions/FormAction.php',
|
||||
'FormOptions' => __DIR__ . '/includes/FormOptions.php',
|
||||
'FormSpecialPage' => __DIR__ . '/includes/specialpage/FormSpecialPage.php',
|
||||
'FormatInstallDoc' => __DIR__ . '/maintenance/formatInstallDoc.php',
|
||||
'FormatJson' => __DIR__ . '/includes/json/FormatJson.php',
|
||||
'FormatMetadata' => __DIR__ . '/includes/media/FormatMetadata.php',
|
||||
'FormattedRCFeed' => __DIR__ . '/includes/rcfeed/FormattedRCFeed.php',
|
||||
'FormlessAction' => __DIR__ . '/includes/actions/FormlessAction.php',
|
||||
'GIFHandler' => __DIR__ . '/includes/media/GIF.php',
|
||||
'GIFHandler' => __DIR__ . '/includes/media/GIFHandler.php',
|
||||
'GIFMetadataExtractor' => __DIR__ . '/includes/media/GIFMetadataExtractor.php',
|
||||
'GanConverter' => __DIR__ . '/languages/classes/LanguageGan.php',
|
||||
'GenderCache' => __DIR__ . '/includes/cache/GenderCache.php',
|
||||
'GenerateCollationData' => __DIR__ . '/maintenance/language/generateCollationData.php',
|
||||
'GenerateCommonPassword' => __DIR__ . '/maintenance/createCommonPasswordCdb.php',
|
||||
'GenerateJsonI18n' => __DIR__ . '/maintenance/generateJsonI18n.php',
|
||||
'GenerateNormalizerDataAr' => __DIR__ . '/maintenance/language/generateNormalizerDataAr.php',
|
||||
'GenerateNormalizerDataMl' => __DIR__ . '/maintenance/language/generateNormalizerDataMl.php',
|
||||
|
@ -550,7 +566,7 @@ $wgAutoloadLocalClasses = [
|
|||
'GenericArrayObject' => __DIR__ . '/includes/libs/GenericArrayObject.php',
|
||||
'GetConfiguration' => __DIR__ . '/maintenance/getConfiguration.php',
|
||||
'GetLagTimes' => __DIR__ . '/maintenance/getLagTimes.php',
|
||||
'GetSlaveServer' => __DIR__ . '/maintenance/getReplicaServer.php',
|
||||
'GetReplicaServer' => __DIR__ . '/maintenance/getReplicaServer.php',
|
||||
'GetTextMaint' => __DIR__ . '/maintenance/getText.php',
|
||||
'GitInfo' => __DIR__ . '/includes/GitInfo.php',
|
||||
'GlobalDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
|
||||
|
@ -566,6 +582,7 @@ $wgAutoloadLocalClasses = [
|
|||
'HTMLComboboxField' => __DIR__ . '/includes/htmlform/fields/HTMLComboboxField.php',
|
||||
'HTMLDateTimeField' => __DIR__ . '/includes/htmlform/fields/HTMLDateTimeField.php',
|
||||
'HTMLEditTools' => __DIR__ . '/includes/htmlform/fields/HTMLEditTools.php',
|
||||
'HTMLExpiryField' => __DIR__ . '/includes/htmlform/fields/HTMLExpiryField.php',
|
||||
'HTMLFileCache' => __DIR__ . '/includes/cache/HTMLFileCache.php',
|
||||
'HTMLFloatField' => __DIR__ . '/includes/htmlform/fields/HTMLFloatField.php',
|
||||
'HTMLForm' => __DIR__ . '/includes/htmlform/HTMLForm.php',
|
||||
|
@ -616,7 +633,7 @@ $wgAutoloadLocalClasses = [
|
|||
'Http' => __DIR__ . '/includes/http/Http.php',
|
||||
'HttpError' => __DIR__ . '/includes/exception/HttpError.php',
|
||||
'HttpStatus' => __DIR__ . '/includes/libs/HttpStatus.php',
|
||||
'IApiMessage' => __DIR__ . '/includes/api/ApiMessage.php',
|
||||
'IApiMessage' => __DIR__ . '/includes/api/IApiMessage.php',
|
||||
'IBufferingStatsdDataFactory' => __DIR__ . '/includes/libs/stats/IBufferingStatsdDataFactory.php',
|
||||
'ICacheHelper' => __DIR__ . '/includes/cache/CacheHelper.php',
|
||||
'IContextSource' => __DIR__ . '/includes/context/IContextSource.php',
|
||||
|
@ -634,7 +651,6 @@ $wgAutoloadLocalClasses = [
|
|||
'IcuCollation' => __DIR__ . '/includes/collation/IcuCollation.php',
|
||||
'IdentityCollation' => __DIR__ . '/includes/collation/IdentityCollation.php',
|
||||
'ImageBuilder' => __DIR__ . '/maintenance/rebuildImages.php',
|
||||
'ImageCleanup' => __DIR__ . '/maintenance/cleanupImages.php',
|
||||
'ImageGalleryBase' => __DIR__ . '/includes/gallery/ImageGalleryBase.php',
|
||||
'ImageHandler' => __DIR__ . '/includes/media/ImageHandler.php',
|
||||
'ImageHistoryList' => __DIR__ . '/includes/page/ImageHistoryList.php',
|
||||
|
@ -689,22 +705,21 @@ $wgAutoloadLocalClasses = [
|
|||
'JobQueueAggregatorRedis' => __DIR__ . '/includes/jobqueue/aggregator/JobQueueAggregatorRedis.php',
|
||||
'JobQueueConnectionError' => __DIR__ . '/includes/jobqueue/JobQueue.php',
|
||||
'JobQueueDB' => __DIR__ . '/includes/jobqueue/JobQueueDB.php',
|
||||
'JobQueueEnqueueUpdate' => __DIR__ . '/includes/deferred/JobQueueEnqueueUpdate.php',
|
||||
'JobQueueError' => __DIR__ . '/includes/jobqueue/JobQueue.php',
|
||||
'JobQueueFederated' => __DIR__ . '/includes/jobqueue/JobQueueFederated.php',
|
||||
'JobQueueGroup' => __DIR__ . '/includes/jobqueue/JobQueueGroup.php',
|
||||
'JobQueueMemory' => __DIR__ . '/includes/jobqueue/JobQueueMemory.php',
|
||||
'JobQueueReadOnlyError' => __DIR__ . '/includes/jobqueue/JobQueue.php',
|
||||
'JobQueueRedis' => __DIR__ . '/includes/jobqueue/JobQueueRedis.php',
|
||||
'JobQueueSecondTestQueue' => __DIR__ . '/includes/jobqueue/JobQueueSecondTestQueue.php',
|
||||
'JobRunner' => __DIR__ . '/includes/jobqueue/JobRunner.php',
|
||||
'JobSpecification' => __DIR__ . '/includes/jobqueue/JobSpecification.php',
|
||||
'JpegHandler' => __DIR__ . '/includes/media/Jpeg.php',
|
||||
'JpegHandler' => __DIR__ . '/includes/media/JpegHandler.php',
|
||||
'JpegMetadataExtractor' => __DIR__ . '/includes/media/JpegMetadataExtractor.php',
|
||||
'JsonContent' => __DIR__ . '/includes/content/JsonContent.php',
|
||||
'JsonContentHandler' => __DIR__ . '/includes/content/JsonContentHandler.php',
|
||||
'KkConverter' => __DIR__ . '/languages/classes/LanguageKk.php',
|
||||
'KuConverter' => __DIR__ . '/languages/classes/LanguageKu.php',
|
||||
'LBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactory.php',
|
||||
'LCStore' => __DIR__ . '/includes/cache/localisation/LCStore.php',
|
||||
'LCStoreCDB' => __DIR__ . '/includes/cache/localisation/LCStoreCDB.php',
|
||||
'LCStoreDB' => __DIR__ . '/includes/cache/localisation/LCStoreDB.php',
|
||||
|
@ -823,19 +838,22 @@ $wgAutoloadLocalClasses = [
|
|||
'MachineReadableRCFeedFormatter' => __DIR__ . '/includes/rcfeed/MachineReadableRCFeedFormatter.php',
|
||||
'MagicWord' => __DIR__ . '/includes/MagicWord.php',
|
||||
'MagicWordArray' => __DIR__ . '/includes/MagicWordArray.php',
|
||||
'MagicWordFactory' => __DIR__ . '/includes/MagicWordFactory.php',
|
||||
'MailAddress' => __DIR__ . '/includes/mail/MailAddress.php',
|
||||
'MainConfigDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
|
||||
'MaintainableDBConnRef' => __DIR__ . '/includes/libs/rdbms/database/MaintainableDBConnRef.php',
|
||||
'Maintenance' => __DIR__ . '/maintenance/Maintenance.php',
|
||||
'MaintenanceFormatInstallDoc' => __DIR__ . '/maintenance/formatInstallDoc.php',
|
||||
'MakeTestEdits' => __DIR__ . '/maintenance/makeTestEdits.php',
|
||||
'MalformedTitleException' => __DIR__ . '/includes/title/MalformedTitleException.php',
|
||||
'ManageForeignResources' => __DIR__ . '/maintenance/resources/manageForeignResources.php',
|
||||
'ManageJobs' => __DIR__ . '/maintenance/manageJobs.php',
|
||||
'ManualLogEntry' => __DIR__ . '/includes/logging/LogEntry.php',
|
||||
'MapCacheLRU' => __DIR__ . '/includes/libs/MapCacheLRU.php',
|
||||
'MappedIterator' => __DIR__ . '/includes/libs/MappedIterator.php',
|
||||
'MarkpatrolledAction' => __DIR__ . '/includes/actions/MarkpatrolledAction.php',
|
||||
'McTest' => __DIR__ . '/maintenance/mctest.php',
|
||||
'McrRestoreAction' => __DIR__ . '/includes/actions/McrRestoreAction.php',
|
||||
'McrUndoAction' => __DIR__ . '/includes/actions/McrUndoAction.php',
|
||||
'MediaHandler' => __DIR__ . '/includes/media/MediaHandler.php',
|
||||
'MediaHandlerFactory' => __DIR__ . '/includes/media/MediaHandlerFactory.php',
|
||||
'MediaStatisticsPage' => __DIR__ . '/includes/specials/SpecialMediaStatistics.php',
|
||||
|
@ -843,51 +861,14 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaTransformInvalidParametersException' => __DIR__ . '/includes/media/MediaTransformInvalidParametersException.php',
|
||||
'MediaTransformOutput' => __DIR__ . '/includes/media/MediaTransformOutput.php',
|
||||
'MediaWiki' => __DIR__ . '/includes/MediaWiki.php',
|
||||
'MediaWikiI18N' => __DIR__ . '/includes/skins/MediaWikiI18N.php',
|
||||
'MediaWikiShell' => __DIR__ . '/maintenance/shell.php',
|
||||
'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php',
|
||||
'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php',
|
||||
'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php',
|
||||
'MediaWiki\\Auth\\AbstractAuthenticationProvider' => __DIR__ . '/includes/auth/AbstractAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\AbstractPasswordPrimaryAuthenticationProvider' => __DIR__ . '/includes/auth/AbstractPasswordPrimaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\AbstractPreAuthenticationProvider' => __DIR__ . '/includes/auth/AbstractPreAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\AbstractPrimaryAuthenticationProvider' => __DIR__ . '/includes/auth/AbstractPrimaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\AbstractSecondaryAuthenticationProvider' => __DIR__ . '/includes/auth/AbstractSecondaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\AuthManager' => __DIR__ . '/includes/auth/AuthManager.php',
|
||||
'MediaWiki\\Auth\\AuthManagerAuthPlugin' => __DIR__ . '/includes/auth/AuthManagerAuthPlugin.php',
|
||||
'MediaWiki\\Auth\\AuthManagerAuthPluginUser' => __DIR__ . '/includes/auth/AuthManagerAuthPlugin.php',
|
||||
'MediaWiki\\Auth\\AuthPluginPrimaryAuthenticationProvider' => __DIR__ . '/includes/auth/AuthPluginPrimaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\AuthenticationProvider' => __DIR__ . '/includes/auth/AuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\AuthenticationRequest' => __DIR__ . '/includes/auth/AuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\AuthenticationResponse' => __DIR__ . '/includes/auth/AuthenticationResponse.php',
|
||||
'MediaWiki\\Auth\\ButtonAuthenticationRequest' => __DIR__ . '/includes/auth/ButtonAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\CheckBlocksSecondaryAuthenticationProvider' => __DIR__ . '/includes/auth/CheckBlocksSecondaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\ConfirmLinkAuthenticationRequest' => __DIR__ . '/includes/auth/ConfirmLinkAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\ConfirmLinkSecondaryAuthenticationProvider' => __DIR__ . '/includes/auth/ConfirmLinkSecondaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\CreateFromLoginAuthenticationRequest' => __DIR__ . '/includes/auth/CreateFromLoginAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\CreatedAccountAuthenticationRequest' => __DIR__ . '/includes/auth/CreatedAccountAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\CreationReasonAuthenticationRequest' => __DIR__ . '/includes/auth/CreationReasonAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\EmailNotificationSecondaryAuthenticationProvider' => __DIR__ . '/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\LegacyHookPreAuthenticationProvider' => __DIR__ . '/includes/auth/LegacyHookPreAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\LocalPasswordPrimaryAuthenticationProvider' => __DIR__ . '/includes/auth/LocalPasswordPrimaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\PasswordAuthenticationRequest' => __DIR__ . '/includes/auth/PasswordAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\PasswordDomainAuthenticationRequest' => __DIR__ . '/includes/auth/PasswordDomainAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\PreAuthenticationProvider' => __DIR__ . '/includes/auth/PreAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\PrimaryAuthenticationProvider' => __DIR__ . '/includes/auth/PrimaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\RememberMeAuthenticationRequest' => __DIR__ . '/includes/auth/RememberMeAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\ResetPasswordSecondaryAuthenticationProvider' => __DIR__ . '/includes/auth/ResetPasswordSecondaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\SecondaryAuthenticationProvider' => __DIR__ . '/includes/auth/SecondaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\TemporaryPasswordAuthenticationRequest' => __DIR__ . '/includes/auth/TemporaryPasswordAuthenticationRequest.php',
|
||||
'MediaWiki\\Auth\\TemporaryPasswordPrimaryAuthenticationProvider' => __DIR__ . '/includes/auth/TemporaryPasswordPrimaryAuthenticationProvider.php',
|
||||
'MediaWiki\\Auth\\ThrottlePreAuthenticationProvider' => __DIR__ . '/includes/auth/ThrottlePreAuthenticationProvider.php',
|
||||
'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\\Config\\ConfigRepository' => __DIR__ . '/includes/config/ConfigRepository.php',
|
||||
'MediaWiki\\DB\\PatchFileLocation' => __DIR__ . '/includes/db/PatchFileLocation.php',
|
||||
'MediaWiki\\Diff\\ComplexityException' => __DIR__ . '/includes/diff/ComplexityException.php',
|
||||
'MediaWiki\\Diff\\WordAccumulator' => __DIR__ . '/includes/diff/WordAccumulator.php',
|
||||
'MediaWiki\\EditPage\\TextConflictHelper' => __DIR__ . '/includes/editpage/TextConflictHelper.php',
|
||||
'MediaWiki\\EditPage\\TextboxBuilder' => __DIR__ . '/includes/editpage/TextboxBuilder.php',
|
||||
'MediaWiki\\Edit\\PreparedEdit' => __DIR__ . '/includes/edit/PreparedEdit.php',
|
||||
'MediaWiki\\HeaderCallback' => __DIR__ . '/includes/HeaderCallback.php',
|
||||
'MediaWiki\\Http\\HttpRequestFactory' => __DIR__ . '/includes/http/HttpRequestFactory.php',
|
||||
'MediaWiki\\Interwiki\\ClassicInterwikiLookup' => __DIR__ . '/includes/interwiki/ClassicInterwikiLookup.php',
|
||||
|
@ -916,85 +897,32 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Logger\\Spi' => __DIR__ . '/includes/debug/logger/Spi.php',
|
||||
'MediaWiki\\MediaWikiServices' => __DIR__ . '/includes/MediaWikiServices.php',
|
||||
'MediaWiki\\OutputHandler' => __DIR__ . '/includes/OutputHandler.php',
|
||||
'MediaWiki\\Preferences\\DefaultPreferencesFactory' => __DIR__ . '/includes/preferences/DefaultPreferencesFactory.php',
|
||||
'MediaWiki\\Preferences\\PreferencesFactory' => __DIR__ . '/includes/preferences/PreferencesFactory.php',
|
||||
'MediaWiki\\ProcOpenError' => __DIR__ . '/includes/exception/ProcOpenError.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',
|
||||
'MediaWiki\\Session\\MetadataMergeException' => __DIR__ . '/includes/session/MetadataMergeException.php',
|
||||
'MediaWiki\\Session\\PHPSessionHandler' => __DIR__ . '/includes/session/PHPSessionHandler.php',
|
||||
'MediaWiki\\Session\\Session' => __DIR__ . '/includes/session/Session.php',
|
||||
'MediaWiki\\Session\\SessionBackend' => __DIR__ . '/includes/session/SessionBackend.php',
|
||||
'MediaWiki\\Session\\SessionId' => __DIR__ . '/includes/session/SessionId.php',
|
||||
'MediaWiki\\Session\\SessionInfo' => __DIR__ . '/includes/session/SessionInfo.php',
|
||||
'MediaWiki\\Session\\SessionManager' => __DIR__ . '/includes/session/SessionManager.php',
|
||||
'MediaWiki\\Session\\SessionManagerInterface' => __DIR__ . '/includes/session/SessionManagerInterface.php',
|
||||
'MediaWiki\\Session\\SessionProvider' => __DIR__ . '/includes/session/SessionProvider.php',
|
||||
'MediaWiki\\Session\\SessionProviderInterface' => __DIR__ . '/includes/session/SessionProviderInterface.php',
|
||||
'MediaWiki\\Session\\Token' => __DIR__ . '/includes/session/Token.php',
|
||||
'MediaWiki\\Session\\UserInfo' => __DIR__ . '/includes/session/UserInfo.php',
|
||||
'MediaWiki\\ShellDisabledError' => __DIR__ . '/includes/exception/ShellDisabledError.php',
|
||||
'MediaWiki\\Shell\\Command' => __DIR__ . '/includes/shell/Command.php',
|
||||
'MediaWiki\\Shell\\CommandFactory' => __DIR__ . '/includes/shell/CommandFactory.php',
|
||||
'MediaWiki\\Shell\\FirejailCommand' => __DIR__ . '/includes/shell/FirejailCommand.php',
|
||||
'MediaWiki\\Shell\\Result' => __DIR__ . '/includes/shell/Result.php',
|
||||
'MediaWiki\\Shell\\Shell' => __DIR__ . '/includes/shell/Shell.php',
|
||||
'MediaWiki\\Site\\MediaWikiPageNameNormalizer' => __DIR__ . '/includes/site/MediaWikiPageNameNormalizer.php',
|
||||
'MediaWiki\\Sparql\\SparqlClient' => __DIR__ . '/includes/sparql/SparqlClient.php',
|
||||
'MediaWiki\\Sparql\\SparqlException' => __DIR__ . '/includes/sparql/SparqlException.php',
|
||||
'MediaWiki\\Storage\\BlobAccessException' => __DIR__ . '/includes/Storage/BlobAccessException.php',
|
||||
'MediaWiki\\Storage\\BlobStore' => __DIR__ . '/includes/Storage/BlobStore.php',
|
||||
'MediaWiki\\Storage\\BlobStoreFactory' => __DIR__ . '/includes/Storage/BlobStoreFactory.php',
|
||||
'MediaWiki\\Storage\\IncompleteRevisionException' => __DIR__ . '/includes/Storage/IncompleteRevisionException.php',
|
||||
'MediaWiki\\Storage\\MutableRevisionRecord' => __DIR__ . '/includes/Storage/MutableRevisionRecord.php',
|
||||
'MediaWiki\\Storage\\MutableRevisionSlots' => __DIR__ . '/includes/Storage/MutableRevisionSlots.php',
|
||||
'MediaWiki\\Storage\\NameTableAccessException' => __DIR__ . '/includes/Storage/NameTableAccessException.php',
|
||||
'MediaWiki\\Storage\\NameTableStore' => __DIR__ . '/includes/Storage/NameTableStore.php',
|
||||
'MediaWiki\\Storage\\RevisionAccessException' => __DIR__ . '/includes/Storage/RevisionAccessException.php',
|
||||
'MediaWiki\\Storage\\RevisionArchiveRecord' => __DIR__ . '/includes/Storage/RevisionArchiveRecord.php',
|
||||
'MediaWiki\\Storage\\RevisionFactory' => __DIR__ . '/includes/Storage/RevisionFactory.php',
|
||||
'MediaWiki\\Storage\\RevisionLookup' => __DIR__ . '/includes/Storage/RevisionLookup.php',
|
||||
'MediaWiki\\Storage\\RevisionRecord' => __DIR__ . '/includes/Storage/RevisionRecord.php',
|
||||
'MediaWiki\\Storage\\RevisionSlots' => __DIR__ . '/includes/Storage/RevisionSlots.php',
|
||||
'MediaWiki\\Storage\\RevisionStore' => __DIR__ . '/includes/Storage/RevisionStore.php',
|
||||
'MediaWiki\\Storage\\RevisionStoreRecord' => __DIR__ . '/includes/Storage/RevisionStoreRecord.php',
|
||||
'MediaWiki\\Storage\\SlotRecord' => __DIR__ . '/includes/Storage/SlotRecord.php',
|
||||
'MediaWiki\\Storage\\SqlBlobStore' => __DIR__ . '/includes/Storage/SqlBlobStore.php',
|
||||
'MediaWiki\\Storage\\SuppressedDataException' => __DIR__ . '/includes/Storage/SuppressedDataException.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',
|
||||
'MediaWiki\\Tidy\\RaggettInternalPHP' => __DIR__ . '/includes/tidy/RaggettInternalPHP.php',
|
||||
'MediaWiki\\Tidy\\RaggettWrapper' => __DIR__ . '/includes/tidy/RaggettWrapper.php',
|
||||
'MediaWiki\\Tidy\\RemexCompatFormatter' => __DIR__ . '/includes/tidy/RemexCompatFormatter.php',
|
||||
'MediaWiki\\Tidy\\RemexCompatMunger' => __DIR__ . '/includes/tidy/RemexCompatMunger.php',
|
||||
'MediaWiki\\Tidy\\RemexDriver' => __DIR__ . '/includes/tidy/RemexDriver.php',
|
||||
'MediaWiki\\Tidy\\RemexMungerData' => __DIR__ . '/includes/tidy/RemexMungerData.php',
|
||||
'MediaWiki\\Tidy\\TidyDriverBase' => __DIR__ . '/includes/tidy/TidyDriverBase.php',
|
||||
'MediaWiki\\Special\\SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory.php',
|
||||
'MediaWiki\\Storage\\IncompleteRevisionException' => __DIR__ . '/includes/Revision/IncompleteRevisionException.php',
|
||||
'MediaWiki\\Storage\\MutableRevisionRecord' => __DIR__ . '/includes/Revision/MutableRevisionRecord.php',
|
||||
'MediaWiki\\Storage\\MutableRevisionSlots' => __DIR__ . '/includes/Revision/MutableRevisionSlots.php',
|
||||
'MediaWiki\\Storage\\RevisionAccessException' => __DIR__ . '/includes/Revision/RevisionAccessException.php',
|
||||
'MediaWiki\\Storage\\RevisionArchiveRecord' => __DIR__ . '/includes/Revision/RevisionArchiveRecord.php',
|
||||
'MediaWiki\\Storage\\RevisionFactory' => __DIR__ . '/includes/Revision/RevisionFactory.php',
|
||||
'MediaWiki\\Storage\\RevisionLookup' => __DIR__ . '/includes/Revision/RevisionLookup.php',
|
||||
'MediaWiki\\Storage\\RevisionRecord' => __DIR__ . '/includes/Revision/RevisionRecord.php',
|
||||
'MediaWiki\\Storage\\RevisionSlots' => __DIR__ . '/includes/Revision/RevisionSlots.php',
|
||||
'MediaWiki\\Storage\\RevisionStore' => __DIR__ . '/includes/Revision/RevisionStore.php',
|
||||
'MediaWiki\\Storage\\RevisionStoreRecord' => __DIR__ . '/includes/Revision/RevisionStoreRecord.php',
|
||||
'MediaWiki\\Storage\\SlotRecord' => __DIR__ . '/includes/Revision/SlotRecord.php',
|
||||
'MediaWiki\\Storage\\SuppressedDataException' => __DIR__ . '/includes/Revision/SuppressedDataException.php',
|
||||
'MediaWiki\\User\\UserIdentity' => __DIR__ . '/includes/user/UserIdentity.php',
|
||||
'MediaWiki\\User\\UserIdentityValue' => __DIR__ . '/includes/user/UserIdentityValue.php',
|
||||
'MediaWiki\\Widget\\CheckMatrixWidget' => __DIR__ . '/includes/widget/CheckMatrixWidget.php',
|
||||
'MediaWiki\\Widget\\ComplexNamespaceInputWidget' => __DIR__ . '/includes/widget/ComplexNamespaceInputWidget.php',
|
||||
'MediaWiki\\Widget\\ComplexTitleInputWidget' => __DIR__ . '/includes/widget/ComplexTitleInputWidget.php',
|
||||
'MediaWiki\\Widget\\DateInputWidget' => __DIR__ . '/includes/widget/DateInputWidget.php',
|
||||
'MediaWiki\\Widget\\DateTimeInputWidget' => __DIR__ . '/includes/widget/DateTimeInputWidget.php',
|
||||
'MediaWiki\\Widget\\ExpiryInputWidget' => __DIR__ . '/includes/widget/ExpiryInputWidget.php',
|
||||
'MediaWiki\\Widget\\NamespaceInputWidget' => __DIR__ . '/includes/widget/NamespaceInputWidget.php',
|
||||
'MediaWiki\\Widget\\SearchInputWidget' => __DIR__ . '/includes/widget/SearchInputWidget.php',
|
||||
'MediaWiki\\Widget\\Search\\BasicSearchResultSetWidget' => __DIR__ . '/includes/widget/search/BasicSearchResultSetWidget.php',
|
||||
|
@ -1027,6 +955,7 @@ $wgAutoloadLocalClasses = [
|
|||
'Message' => __DIR__ . '/includes/Message.php',
|
||||
'MessageBlobStore' => __DIR__ . '/includes/cache/MessageBlobStore.php',
|
||||
'MessageCache' => __DIR__ . '/includes/cache/MessageCache.php',
|
||||
'MessageCacheUpdate' => __DIR__ . '/includes/deferred/MessageCacheUpdate.php',
|
||||
'MessageContent' => __DIR__ . '/includes/content/MessageContent.php',
|
||||
'MessageLocalizer' => __DIR__ . '/languages/MessageLocalizer.php',
|
||||
'MessageSpecifier' => __DIR__ . '/includes/libs/MessageSpecifier.php',
|
||||
|
@ -1034,9 +963,9 @@ $wgAutoloadLocalClasses = [
|
|||
'MigrateArchiveText' => __DIR__ . '/maintenance/migrateArchiveText.php',
|
||||
'MigrateComments' => __DIR__ . '/maintenance/migrateComments.php',
|
||||
'MigrateFileRepoLayout' => __DIR__ . '/maintenance/migrateFileRepoLayout.php',
|
||||
'MigrateImageCommentTemp' => __DIR__ . '/maintenance/migrateImageCommentTemp.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',
|
||||
'MostimagesPage' => __DIR__ . '/includes/specials/SpecialMostimages.php',
|
||||
|
@ -1060,18 +989,18 @@ $wgAutoloadLocalClasses = [
|
|||
'MwSql' => __DIR__ . '/maintenance/sql.php',
|
||||
'MySqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MySqlLockManager.php',
|
||||
'MysqlInstaller' => __DIR__ . '/includes/installer/MysqlInstaller.php',
|
||||
'MysqlMaintenance' => __DIR__ . '/maintenance/mysql.php',
|
||||
'MysqlUpdater' => __DIR__ . '/includes/installer/MysqlUpdater.php',
|
||||
'NaiveForeignTitleFactory' => __DIR__ . '/includes/title/NaiveForeignTitleFactory.php',
|
||||
'NaiveImportTitleFactory' => __DIR__ . '/includes/title/NaiveImportTitleFactory.php',
|
||||
'NamespaceAwareForeignTitleFactory' => __DIR__ . '/includes/title/NamespaceAwareForeignTitleFactory.php',
|
||||
'NamespaceConflictChecker' => __DIR__ . '/maintenance/namespaceDupes.php',
|
||||
'NamespaceDupes' => __DIR__ . '/maintenance/namespaceDupes.php',
|
||||
'NamespaceImportTitleFactory' => __DIR__ . '/includes/title/NamespaceImportTitleFactory.php',
|
||||
'NewFilesPager' => __DIR__ . '/includes/specials/pagers/NewFilesPager.php',
|
||||
'NewPagesPager' => __DIR__ . '/includes/specials/pagers/NewPagesPager.php',
|
||||
'NewUsersLogFormatter' => __DIR__ . '/includes/logging/NewUsersLogFormatter.php',
|
||||
'NoWriteWatchedItemStore' => __DIR__ . '/includes/watcheditem/NoWriteWatchedItemStore.php',
|
||||
'NolinesImageGallery' => __DIR__ . '/includes/gallery/NolinesImageGallery.php',
|
||||
'NorthernSamiUppercaseCollation' => __DIR__ . '/includes/collation/NorthernSamiUppercaseCollation.php',
|
||||
'NotRecursiveIterator' => __DIR__ . '/includes/libs/iterators/NotRecursiveIterator.php',
|
||||
'NukeNS' => __DIR__ . '/maintenance/nukeNS.php',
|
||||
'NukePage' => __DIR__ . '/maintenance/nukePage.php',
|
||||
|
@ -1098,7 +1027,7 @@ $wgAutoloadLocalClasses = [
|
|||
'Orphans' => __DIR__ . '/maintenance/orphans.php',
|
||||
'OutputPage' => __DIR__ . '/includes/OutputPage.php',
|
||||
'PHPVersionCheck' => __DIR__ . '/includes/PHPVersionCheck.php',
|
||||
'PNGHandler' => __DIR__ . '/includes/media/PNG.php',
|
||||
'PNGHandler' => __DIR__ . '/includes/media/PNGHandler.php',
|
||||
'PNGMetadataExtractor' => __DIR__ . '/includes/media/PNGMetadataExtractor.php',
|
||||
'PPCustomFrame_DOM' => __DIR__ . '/includes/parser/Preprocessor_DOM.php',
|
||||
'PPCustomFrame_Hash' => __DIR__ . '/includes/parser/Preprocessor_Hash.php',
|
||||
|
@ -1133,10 +1062,12 @@ $wgAutoloadLocalClasses = [
|
|||
'PageProps' => __DIR__ . '/includes/PageProps.php',
|
||||
'PageQueryPage' => __DIR__ . '/includes/specialpage/PageQueryPage.php',
|
||||
'Pager' => __DIR__ . '/includes/pager/Pager.php',
|
||||
'PaginatingSearchEngine' => __DIR__ . '/includes/search/PaginatingSearchEngine.php',
|
||||
'ParameterizedPassword' => __DIR__ . '/includes/password/ParameterizedPassword.php',
|
||||
'Parser' => __DIR__ . '/includes/parser/Parser.php',
|
||||
'ParserCache' => __DIR__ . '/includes/parser/ParserCache.php',
|
||||
'ParserDiffTest' => __DIR__ . '/includes/parser/ParserDiffTest.php',
|
||||
'ParserFactory' => __DIR__ . '/includes/parser/ParserFactory.php',
|
||||
'ParserOptions' => __DIR__ . '/includes/parser/ParserOptions.php',
|
||||
'ParserOutput' => __DIR__ . '/includes/parser/ParserOutput.php',
|
||||
'ParsoidVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/ParsoidVirtualRESTService.php',
|
||||
|
@ -1147,7 +1078,6 @@ $wgAutoloadLocalClasses = [
|
|||
'PasswordReset' => __DIR__ . '/includes/user/PasswordReset.php',
|
||||
'PatchSql' => __DIR__ . '/maintenance/patchSql.php',
|
||||
'PathRouter' => __DIR__ . '/includes/PathRouter.php',
|
||||
'PathRouterPatternReplacer' => __DIR__ . '/includes/PathRouter.php',
|
||||
'PatrolLog' => __DIR__ . '/includes/logging/PatrolLog.php',
|
||||
'PatrolLogFormatter' => __DIR__ . '/includes/logging/PatrolLogFormatter.php',
|
||||
'Pbkdf2Password' => __DIR__ . '/includes/password/Pbkdf2Password.php',
|
||||
|
@ -1165,7 +1095,10 @@ $wgAutoloadLocalClasses = [
|
|||
'PopulateArchiveRevId' => __DIR__ . '/maintenance/populateArchiveRevId.php',
|
||||
'PopulateBacklinkNamespace' => __DIR__ . '/maintenance/populateBacklinkNamespace.php',
|
||||
'PopulateCategory' => __DIR__ . '/maintenance/populateCategory.php',
|
||||
'PopulateChangeTagDef' => __DIR__ . '/maintenance/populateChangeTagDef.php',
|
||||
'PopulateContentModel' => __DIR__ . '/maintenance/populateContentModel.php',
|
||||
'PopulateContentTables' => __DIR__ . '/maintenance/populateContentTables.php',
|
||||
'PopulateExternallinksIndex60' => __DIR__ . '/maintenance/populateExternallinksIndex60.php',
|
||||
'PopulateFilearchiveSha1' => __DIR__ . '/maintenance/populateFilearchiveSha1.php',
|
||||
'PopulateImageSha1' => __DIR__ . '/maintenance/populateImageSha1.php',
|
||||
'PopulateInterwiki' => __DIR__ . '/maintenance/populateInterwiki.php',
|
||||
|
@ -1181,8 +1114,11 @@ $wgAutoloadLocalClasses = [
|
|||
'PostgresInstaller' => __DIR__ . '/includes/installer/PostgresInstaller.php',
|
||||
'PostgresUpdater' => __DIR__ . '/includes/installer/PostgresUpdater.php',
|
||||
'Preferences' => __DIR__ . '/includes/Preferences.php',
|
||||
'PreferencesForm' => __DIR__ . '/includes/specials/forms/PreferencesForm.php',
|
||||
'PreferencesForm' => __DIR__ . '/includes/specials/forms/PreferencesFormLegacy.php',
|
||||
'PreferencesFormLegacy' => __DIR__ . '/includes/specials/forms/PreferencesFormLegacy.php',
|
||||
'PreferencesFormOOUI' => __DIR__ . '/includes/specials/forms/PreferencesFormOOUI.php',
|
||||
'PrefixSearch' => __DIR__ . '/includes/PrefixSearch.php',
|
||||
'PrefixingStatsdDataFactoryProxy' => __DIR__ . '/includes/libs/stats/PrefixingStatsdDataFactoryProxy.php',
|
||||
'PreprocessDump' => __DIR__ . '/maintenance/preprocessDump.php',
|
||||
'Preprocessor' => __DIR__ . '/includes/parser/Preprocessor.php',
|
||||
'Preprocessor_DOM' => __DIR__ . '/includes/parser/Preprocessor_DOM.php',
|
||||
|
@ -1269,13 +1205,13 @@ $wgAutoloadLocalClasses = [
|
|||
'ReplicatedBagOStuff' => __DIR__ . '/includes/libs/objectcache/ReplicatedBagOStuff.php',
|
||||
'RepoGroup' => __DIR__ . '/includes/filerepo/RepoGroup.php',
|
||||
'RequestContext' => __DIR__ . '/includes/context/RequestContext.php',
|
||||
'ResetAuthenticationThrottle' => __DIR__ . '/maintenance/resetAuthenticationThrottle.php',
|
||||
'ResetUserEmail' => __DIR__ . '/maintenance/resetUserEmail.php',
|
||||
'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',
|
||||
'ResourceLoaderFilePath' => __DIR__ . '/includes/resourceloader/ResourceLoaderFilePath.php',
|
||||
'ResourceLoaderForeignApiModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderForeignApiModule.php',
|
||||
|
@ -1284,12 +1220,12 @@ $wgAutoloadLocalClasses = [
|
|||
'ResourceLoaderJqueryMsgModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderJqueryMsgModule.php',
|
||||
'ResourceLoaderLanguageDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageDataModule.php',
|
||||
'ResourceLoaderLanguageNamesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageNamesModule.php',
|
||||
'ResourceLoaderLessVarFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLessVarFileModule.php',
|
||||
'ResourceLoaderMediaWikiUtilModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderMediaWikiUtilModule.php',
|
||||
'ResourceLoaderModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderModule.php',
|
||||
'ResourceLoaderOOUIFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIFileModule.php',
|
||||
'ResourceLoaderOOUIImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIImageModule.php',
|
||||
'ResourceLoaderOOUIModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIModule.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',
|
||||
|
@ -1334,12 +1270,12 @@ $wgAutoloadLocalClasses = [
|
|||
'RollbackAction' => __DIR__ . '/includes/actions/RollbackAction.php',
|
||||
'RollbackEdits' => __DIR__ . '/maintenance/rollbackEdits.php',
|
||||
'RowUpdateGenerator' => __DIR__ . '/includes/utils/RowUpdateGenerator.php',
|
||||
'RunBatchedQuery' => __DIR__ . '/maintenance/runBatchedQuery.php',
|
||||
'RunJobs' => __DIR__ . '/maintenance/runJobs.php',
|
||||
'SVGMetadataExtractor' => __DIR__ . '/includes/media/SVGMetadataExtractor.php',
|
||||
'SVGReader' => __DIR__ . '/includes/media/SVGMetadataExtractor.php',
|
||||
'SamplingStatsdClient' => __DIR__ . '/includes/libs/stats/SamplingStatsdClient.php',
|
||||
'Sanitizer' => __DIR__ . '/includes/parser/Sanitizer.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',
|
||||
|
@ -1392,6 +1328,7 @@ $wgAutoloadLocalClasses = [
|
|||
'SkinFallbackTemplate' => __DIR__ . '/includes/skins/SkinFallbackTemplate.php',
|
||||
'SkinTemplate' => __DIR__ . '/includes/skins/SkinTemplate.php',
|
||||
'SlideshowImageGallery' => __DIR__ . '/includes/gallery/SlideshowImageGallery.php',
|
||||
'SlotDiffRenderer' => __DIR__ . '/includes/diff/SlotDiffRenderer.php',
|
||||
'SpecialActiveUsers' => __DIR__ . '/includes/specials/SpecialActiveusers.php',
|
||||
'SpecialAllMessages' => __DIR__ . '/includes/specials/SpecialAllMessages.php',
|
||||
'SpecialAllMyUploads' => __DIR__ . '/includes/specials/SpecialMyRedirectPages.php',
|
||||
|
@ -1443,9 +1380,10 @@ $wgAutoloadLocalClasses = [
|
|||
'SpecialPage' => __DIR__ . '/includes/specialpage/SpecialPage.php',
|
||||
'SpecialPageAction' => __DIR__ . '/includes/actions/SpecialPageAction.php',
|
||||
'SpecialPageData' => __DIR__ . '/includes/specials/SpecialPageData.php',
|
||||
'SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory.php',
|
||||
'SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory_deprecated.php',
|
||||
'SpecialPageLanguage' => __DIR__ . '/includes/specials/SpecialPageLanguage.php',
|
||||
'SpecialPagesWithProp' => __DIR__ . '/includes/specials/SpecialPagesWithProp.php',
|
||||
'SpecialPasswordPolicies' => __DIR__ . '/includes/specials/SpecialPasswordPolicies.php',
|
||||
'SpecialPasswordReset' => __DIR__ . '/includes/specials/SpecialPasswordReset.php',
|
||||
'SpecialPermanentLink' => __DIR__ . '/includes/specials/SpecialPermanentLink.php',
|
||||
'SpecialPreferences' => __DIR__ . '/includes/specials/SpecialPreferences.php',
|
||||
|
@ -1481,7 +1419,6 @@ $wgAutoloadLocalClasses = [
|
|||
'SpecialWatchlist' => __DIR__ . '/includes/specials/SpecialWatchlist.php',
|
||||
'SpecialWhatLinksHere' => __DIR__ . '/includes/specials/SpecialWhatlinkshere.php',
|
||||
'SqlBagOStuff' => __DIR__ . '/includes/objectcache/SqlBagOStuff.php',
|
||||
'SqlDataUpdate' => __DIR__ . '/includes/deferred/SqlDataUpdate.php',
|
||||
'SqlSearchResultSet' => __DIR__ . '/includes/search/SqlSearchResultSet.php',
|
||||
'Sqlite' => __DIR__ . '/maintenance/sqlite.inc',
|
||||
'SqliteInstaller' => __DIR__ . '/includes/installer/SqliteInstaller.php',
|
||||
|
@ -1505,7 +1442,7 @@ $wgAutoloadLocalClasses = [
|
|||
'StubUserLang' => __DIR__ . '/includes/StubObject.php',
|
||||
'SubmitAction' => __DIR__ . '/includes/actions/SubmitAction.php',
|
||||
'SubpageImportTitleFactory' => __DIR__ . '/includes/title/SubpageImportTitleFactory.php',
|
||||
'SvgHandler' => __DIR__ . '/includes/media/SVG.php',
|
||||
'SvgHandler' => __DIR__ . '/includes/media/SvgHandler.php',
|
||||
'SwiftFileBackend' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendDirList' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
'SwiftFileBackendFileList' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
||||
|
@ -1521,17 +1458,17 @@ $wgAutoloadLocalClasses = [
|
|||
'TempFileRepo' => __DIR__ . '/includes/filerepo/TempFileRepo.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',
|
||||
'TextPassDumper' => __DIR__ . '/maintenance/dumpTextPass.php',
|
||||
'TextSlotDiffRenderer' => __DIR__ . '/includes/diff/TextSlotDiffRenderer.php',
|
||||
'TextStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
|
||||
'TgConverter' => __DIR__ . '/languages/classes/LanguageTg.php',
|
||||
'ThrottledError' => __DIR__ . '/includes/exception/ThrottledError.php',
|
||||
'ThumbnailImage' => __DIR__ . '/includes/media/MediaTransformOutput.php',
|
||||
'ThumbnailRenderJob' => __DIR__ . '/includes/jobqueue/jobs/ThumbnailRenderJob.php',
|
||||
'TidyUpBug37714' => __DIR__ . '/maintenance/tidyUpBug37714.php',
|
||||
'TiffHandler' => __DIR__ . '/includes/media/Tiff.php',
|
||||
'TidyUpT39714' => __DIR__ . '/maintenance/tidyUpT39714.php',
|
||||
'TiffHandler' => __DIR__ . '/includes/media/TiffHandler.php',
|
||||
'Timing' => __DIR__ . '/includes/libs/Timing.php',
|
||||
'Title' => __DIR__ . '/includes/Title.php',
|
||||
'TitleArray' => __DIR__ . '/includes/TitleArray.php',
|
||||
|
@ -1579,7 +1516,6 @@ $wgAutoloadLocalClasses = [
|
|||
'UploadChunkFileException' => __DIR__ . '/includes/upload/UploadFromChunks.php',
|
||||
'UploadChunkVerificationException' => __DIR__ . '/includes/upload/UploadFromChunks.php',
|
||||
'UploadChunkZeroLengthFileException' => __DIR__ . '/includes/upload/UploadFromChunks.php',
|
||||
'UploadDumper' => __DIR__ . '/maintenance/dumpUploads.php',
|
||||
'UploadForm' => __DIR__ . '/includes/specials/forms/UploadForm.php',
|
||||
'UploadFromChunks' => __DIR__ . '/includes/upload/UploadFromChunks.php',
|
||||
'UploadFromFile' => __DIR__ . '/includes/upload/UploadFromFile.php',
|
||||
|
@ -1591,7 +1527,6 @@ $wgAutoloadLocalClasses = [
|
|||
'UploadSourceField' => __DIR__ . '/includes/specials/formfields/UploadSourceField.php',
|
||||
'UploadStash' => __DIR__ . '/includes/upload/UploadStash.php',
|
||||
'UploadStashBadPathException' => __DIR__ . '/includes/upload/UploadStash.php',
|
||||
'UploadStashCleanup' => __DIR__ . '/maintenance/cleanupUploadStash.php',
|
||||
'UploadStashException' => __DIR__ . '/includes/upload/UploadStash.php',
|
||||
'UploadStashFile' => __DIR__ . '/includes/upload/UploadStash.php',
|
||||
'UploadStashFileException' => __DIR__ . '/includes/upload/UploadStash.php',
|
||||
|
@ -1601,7 +1536,6 @@ $wgAutoloadLocalClasses = [
|
|||
'UploadStashWrongOwnerException' => __DIR__ . '/includes/upload/UploadStash.php',
|
||||
'UploadStashZeroLengthFileException' => __DIR__ . '/includes/upload/UploadStash.php',
|
||||
'UppercaseCollation' => __DIR__ . '/includes/collation/UppercaseCollation.php',
|
||||
'UsageException' => __DIR__ . '/includes/api/ApiUsageException.php',
|
||||
'User' => __DIR__ . '/includes/user/User.php',
|
||||
'UserArray' => __DIR__ . '/includes/user/UserArray.php',
|
||||
'UserArrayFromResult' => __DIR__ . '/includes/user/UserArrayFromResult.php',
|
||||
|
@ -1641,7 +1575,6 @@ $wgAutoloadLocalClasses = [
|
|||
'WatchedItemQueryServiceExtension' => __DIR__ . '/includes/watcheditem/WatchedItemQueryServiceExtension.php',
|
||||
'WatchedItemStore' => __DIR__ . '/includes/watcheditem/WatchedItemStore.php',
|
||||
'WatchedItemStoreInterface' => __DIR__ . '/includes/watcheditem/WatchedItemStoreInterface.php',
|
||||
'WatchlistCleanup' => __DIR__ . '/maintenance/cleanupWatchlist.php',
|
||||
'WebInstaller' => __DIR__ . '/includes/installer/WebInstaller.php',
|
||||
'WebInstallerComplete' => __DIR__ . '/includes/installer/WebInstallerComplete.php',
|
||||
'WebInstallerCopying' => __DIR__ . '/includes/installer/WebInstallerCopying.php',
|
||||
|
@ -1661,7 +1594,7 @@ $wgAutoloadLocalClasses = [
|
|||
'WebInstallerUpgrade' => __DIR__ . '/includes/installer/WebInstallerUpgrade.php',
|
||||
'WebInstallerUpgradeDoc' => __DIR__ . '/includes/installer/WebInstallerUpgradeDoc.php',
|
||||
'WebInstallerWelcome' => __DIR__ . '/includes/installer/WebInstallerWelcome.php',
|
||||
'WebPHandler' => __DIR__ . '/includes/media/WebP.php',
|
||||
'WebPHandler' => __DIR__ . '/includes/media/WebPHandler.php',
|
||||
'WebRequest' => __DIR__ . '/includes/WebRequest.php',
|
||||
'WebRequestUpload' => __DIR__ . '/includes/WebRequestUpload.php',
|
||||
'WebResponse' => __DIR__ . '/includes/WebResponse.php',
|
||||
|
@ -1736,6 +1669,7 @@ $wgAutoloadLocalClasses = [
|
|||
'Wikimedia\\Rdbms\\SessionConsistentConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/SessionConsistentConnectionManager.php',
|
||||
'Wikimedia\\Rdbms\\Subquery' => __DIR__ . '/includes/libs/rdbms/encasing/Subquery.php',
|
||||
'Wikimedia\\Rdbms\\TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php',
|
||||
'Wikimedia\\StaticArrayWriter' => __DIR__ . '/includes/libs/StaticArrayWriter.php',
|
||||
'WikitextContent' => __DIR__ . '/includes/content/WikitextContent.php',
|
||||
'WikitextContentHandler' => __DIR__ . '/includes/content/WikitextContentHandler.php',
|
||||
'WikitextLogFormatter' => __DIR__ . '/includes/logging/WikitextLogFormatter.php',
|
||||
|
@ -1745,9 +1679,9 @@ $wgAutoloadLocalClasses = [
|
|||
'WrapOldPasswords' => __DIR__ . '/maintenance/wrapOldPasswords.php',
|
||||
'XCFHandler' => __DIR__ . '/includes/media/XCF.php',
|
||||
'XMLRCFeedFormatter' => __DIR__ . '/includes/rcfeed/XMLRCFeedFormatter.php',
|
||||
'XMPInfo' => __DIR__ . '/includes/libs/xmp/XMPInfo.php',
|
||||
'XMPReader' => __DIR__ . '/includes/libs/xmp/XMP.php',
|
||||
'XMPValidate' => __DIR__ . '/includes/libs/xmp/XMPValidate.php',
|
||||
'XMPInfo' => __DIR__ . '/includes/compat/XMPReader.php',
|
||||
'XMPReader' => __DIR__ . '/includes/compat/XMPReader.php',
|
||||
'XMPValidate' => __DIR__ . '/includes/compat/XMPReader.php',
|
||||
'Xhprof' => __DIR__ . '/includes/libs/Xhprof.php',
|
||||
'XhprofData' => __DIR__ . '/includes/libs/XhprofData.php',
|
||||
'Xml' => __DIR__ . '/includes/Xml.php',
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"name": "mediawiki/core",
|
||||
"description": "Free software wiki application developed by the Wikimedia Foundation and others",
|
||||
"type": "mediawiki-core",
|
||||
"keywords": ["mediawiki", "wiki"],
|
||||
"homepage": "https://www.mediawiki.org/",
|
||||
"authors": [
|
||||
|
@ -19,59 +20,63 @@
|
|||
"composer/semver": "1.4.2",
|
||||
"cssjanus/cssjanus": "1.2.0",
|
||||
"ext-ctype": "*",
|
||||
"ext-fileinfo": "*",
|
||||
"ext-iconv": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-xml": "*",
|
||||
"liuggio/statsd-php-client": "1.0.18",
|
||||
"oojs/oojs-ui": "v0.26.4",
|
||||
"oyejorge/less.php": "1.7.0.14",
|
||||
"oojs/oojs-ui": "0.29.2",
|
||||
"pear/mail": "1.4.1",
|
||||
"pear/mail_mime": "1.10.2",
|
||||
"pear/mail_mime-decode": "1.5.5.2",
|
||||
"pear/net_smtp": "1.8.0",
|
||||
"php": ">=5.6.99",
|
||||
"psr/log": "1.0.2",
|
||||
"wikimedia/assert": "0.2.2",
|
||||
"wikimedia/at-ease": "1.2.0",
|
||||
"wikimedia/base-convert": "1.0.1",
|
||||
"wikimedia/base-convert": "2.0.0",
|
||||
"wikimedia/cdb": "1.4.1",
|
||||
"wikimedia/cldr-plural-rule-parser": "1.0.0",
|
||||
"wikimedia/composer-merge-plugin": "1.4.1",
|
||||
"wikimedia/html-formatter": "1.0.2",
|
||||
"wikimedia/ip-set": "1.2.0",
|
||||
"wikimedia/ip-set": "1.3.0",
|
||||
"wikimedia/less.php": "1.8.0",
|
||||
"wikimedia/object-factory": "1.0.0",
|
||||
"wikimedia/php-session-serializer": "1.0.6",
|
||||
"wikimedia/purtle": "1.0.7",
|
||||
"wikimedia/relpath": "2.1.1",
|
||||
"wikimedia/remex-html": "1.0.3",
|
||||
"wikimedia/remex-html": "2.0.1",
|
||||
"wikimedia/running-stat": "1.2.1",
|
||||
"wikimedia/scoped-callback": "1.0.0",
|
||||
"wikimedia/scoped-callback": "2.0.0",
|
||||
"wikimedia/utfnormal": "2.0.0",
|
||||
"wikimedia/timestamp": "1.0.0",
|
||||
"wikimedia/timestamp": "2.2.0",
|
||||
"wikimedia/wait-condition-loop": "1.0.1",
|
||||
"wikimedia/wrappedstring": "2.3.0",
|
||||
"wikimedia/wrappedstring": "3.0.1",
|
||||
"wikimedia/xmp-reader": "0.6.0",
|
||||
"zordius/lightncandy": "0.23"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/spdx-licenses": "1.3.0",
|
||||
"cache/integration-tests": "0.16.0",
|
||||
"composer/spdx-licenses": "1.4.0",
|
||||
"giorgiosironi/eris": "^0.10.0",
|
||||
"hamcrest/hamcrest-php": "^2.0",
|
||||
"jakub-onderka/php-parallel-lint": "0.9.2",
|
||||
"jetbrains/phpstorm-stubs": "dev-master#1b9906084d6635456fcf3f3a01f0d7d5b99a578a",
|
||||
"jetbrains/phpstorm-stubs": "dev-master#38ff1a581b297f7901e961b8c923862ea80c3b96",
|
||||
"justinrainbow/json-schema": "~5.2",
|
||||
"mediawiki/mediawiki-codesniffer": "18.0.0",
|
||||
"mediawiki/mediawiki-codesniffer": "22.0.0",
|
||||
"monolog/monolog": "~1.22.1",
|
||||
"nikic/php-parser": "3.1.3",
|
||||
"seld/jsonlint": "1.7.1",
|
||||
"nmred/kafka-php": "0.1.5",
|
||||
"phpunit/phpunit": "4.8.36 || ^6.5",
|
||||
"psy/psysh": "0.8.11",
|
||||
"psy/psysh": "0.9.6",
|
||||
"wikimedia/avro": "1.8.0",
|
||||
"wikimedia/testing-access-wrapper": "~1.0",
|
||||
"wmde/hamcrest-html-matchers": "^0.1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-apc": "Local data and opcode cache",
|
||||
"ext-apcu": "Local data cache for greatly improved performance",
|
||||
"ext-curl": "Improved http communication abilities",
|
||||
"ext-fileinfo": "Improved mime magic detection",
|
||||
"ext-intl": "ICU integration",
|
||||
"ext-wikidiff2": "Diff accelerator",
|
||||
"monolog/monolog": "Flexible debug logging system",
|
||||
|
@ -82,10 +87,7 @@
|
|||
"psr-0": {
|
||||
"ComposerHookHandler": "includes/composer",
|
||||
"ComposerVendorHtaccessCreator": "includes/composer"
|
||||
},
|
||||
"files": [
|
||||
"includes/compat/Timestamp.php"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"files": [
|
||||
|
|
|
@ -71,7 +71,7 @@ want to write code destined for Wikipedia.
|
|||
It's often the case that the best algorithm to use for a given task
|
||||
depends on whether or not replication is in use. Due to our unabashed
|
||||
Wikipedia-centrism, we often just use the replication-friendly version,
|
||||
but if you like, you can use wfGetLB()->getServerCount() > 1 to
|
||||
but if you like, you can use LoadBalancer::getServerCount() > 1 to
|
||||
check to see if replication is in use.
|
||||
|
||||
=== Lag ===
|
||||
|
@ -107,7 +107,7 @@ in the session, and then at the start of each request, waiting for the
|
|||
slave to catch up to that position before doing any reads from it. If
|
||||
this wait times out, reads are allowed anyway, but the request is
|
||||
considered to be in "lagged slave mode". Lagged slave mode can be
|
||||
checked by calling wfGetLB()->getLaggedSlaveMode(). The only
|
||||
checked by calling LoadBalancer::getLaggedReplicaMode(). The only
|
||||
practical consequence at present is a warning displayed in the page
|
||||
footer.
|
||||
|
||||
|
|
106
docs/design.txt
106
docs/design.txt
|
@ -1,106 +0,0 @@
|
|||
design.txt
|
||||
|
||||
This is a brief overview of the new design.
|
||||
|
||||
More thorough and up-to-date information is available on the documentation
|
||||
wiki at https://www.mediawiki.org/
|
||||
|
||||
Primary classes:
|
||||
|
||||
User
|
||||
Encapsulates the state of the user viewing/using the site. Can be queried
|
||||
for things like the user's settings, name, etc. Handles the details of
|
||||
getting and saving to the "user" table of the database, and dealing with
|
||||
sessions and cookies.
|
||||
|
||||
OutputPage
|
||||
Encapsulates the entire HTML page that will be sent in response to any
|
||||
server request. It is used by calling its functions to add text, headers,
|
||||
etc., in any order, and then calling output() to send it all. It could be
|
||||
easily changed to send incrementally if that becomes useful, but I prefer
|
||||
the flexibility. This should also do the output encoding. The system
|
||||
allocates a global one in $wgOut.
|
||||
|
||||
Title
|
||||
Represents the title of an article, and does all the work of translating
|
||||
among various forms such as plain text, URL, database key, etc. For
|
||||
convenience, and for historical reasons, it also represents a few features
|
||||
of articles that don't involve their text, such as access rights.
|
||||
See also title.txt.
|
||||
|
||||
Article
|
||||
Encapsulates access to the "page" table of the database. The object
|
||||
represents a an article, and maintains state such as text (in Wikitext
|
||||
format), flags, etc.
|
||||
|
||||
Revision
|
||||
Encapsulates individual page revision data and access to the
|
||||
revision/text/blobs storage system. Higher-level code should never touch
|
||||
text storage directly; this class mediates it.
|
||||
|
||||
Skin
|
||||
Encapsulates a "look and feel" for the wiki. All of the functions that
|
||||
render HTML, and make choices about how to render it, are here, and are
|
||||
called from various other places when needed (most notably,
|
||||
OutputPage::addWikiText()). The StandardSkin object is a complete
|
||||
implementation, and is meant to be subclassed with other skins that may
|
||||
override some of its functions. The User object contains a reference to a
|
||||
skin (according to that user's preference), and so rather than having a
|
||||
global skin object we just rely on the global User and get the skin with
|
||||
$wgUser->getSkin().
|
||||
See also skin.txt.
|
||||
|
||||
Language
|
||||
Represents the language used for incidental text, and also has some
|
||||
character encoding functions and other locale stuff. The current user
|
||||
interface language is instantiated as $wgLang, and the local content
|
||||
language as $wgContLang; be sure to use the *correct* language object
|
||||
depending upon the circumstances.
|
||||
See also language.txt.
|
||||
|
||||
Parser
|
||||
Class used to transform wikitext to html.
|
||||
|
||||
LinkCache
|
||||
Keeps information on existence of articles. See linkcache.txt.
|
||||
|
||||
Naming/coding conventions:
|
||||
|
||||
These are meant to be descriptive, not dictatorial; I won't presume to tell
|
||||
you how to program, I'm just describing the methods I chose to use for myself.
|
||||
If you do choose to follow these guidelines, it will probably be easier for
|
||||
you to collaborate with others on the project, but if you want to contribute
|
||||
without bothering, by all means do so (and don't be surprised if I reformat
|
||||
your code).
|
||||
|
||||
- I have the code indented with tabs to save file size and so that users can
|
||||
set their tab stops to any depth they like. I use 4-space tab stops, which
|
||||
work well. I also use K&R brace matching style. I know that's a religious
|
||||
issue for some, so if you want to use a style that puts opening braces on
|
||||
the next line, that's OK too, but please don't use a style where closing
|
||||
braces don't align with either the opening brace on its own line or the
|
||||
statement that opened the block--that's confusing as hell.
|
||||
|
||||
- Certain functions and class members are marked with /* private */, rather
|
||||
than being marked as such. This is a hold-over from PHP 4, which didn't
|
||||
support proper visibilities. You should not access things marked in this
|
||||
manner outside the class/inheritance line as this code is subjected to be
|
||||
updated in a manner that enforces this at some time in the near future, and
|
||||
things will break. New code should use the standard method of setting
|
||||
visibilities as normal.
|
||||
|
||||
- Globals are particularly evil in PHP; it sets a lot of them automatically
|
||||
from cookies, query strings, and such, leading to namespace conflicts; when
|
||||
a variable name is used in a function, it is silently declared as a new
|
||||
local masking the global, so you'll get weird error because you forgot the
|
||||
global declaration; lack of static class member variables means you have to
|
||||
use globals for them, etc. Evil, evil.
|
||||
|
||||
I think I've managed to pare down the number of globals we use to a scant
|
||||
few dozen or so, and I've prefixed them all with "wg" so you can spot errors
|
||||
better (odds are, if you see a "wg" variable being used in a function that
|
||||
doesn't declare it global, that's probably an error).
|
||||
|
||||
Other conventions: Top-level functions are wfFuncname(), names of session
|
||||
variables are wsName, cookies wcName, and form field values wpName ("p" for
|
||||
"POST").
|
|
@ -174,8 +174,6 @@ perhaps configure it to use them (see Configuration section of this document):
|
|||
"$wgAntivirus = 'clamav';".
|
||||
* 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
|
||||
"$wgUseTidy = true;".
|
||||
* 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
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<namespace key="2" case="first-letter">User</namespace>
|
||||
<namespace key="3" case="first-letter">User talk</namespace>
|
||||
<namespace key="4" case="first-letter">DemoWiki</namespace>
|
||||
<namespace key="5" case="first-letter">DemoWIki talk</namespace>
|
||||
<namespace key="5" case="first-letter">DemoWiki talk</namespace>
|
||||
<namespace key="6" case="first-letter">File</namespace>
|
||||
<namespace key="7" case="first-letter">File talk</namespace>
|
||||
<namespace key="8" case="first-letter">MediaWiki</namespace>
|
||||
|
|
|
@ -55,13 +55,31 @@
|
|||
},
|
||||
"requires": {
|
||||
"type": "object",
|
||||
"description": "Indicates what versions of MediaWiki core or extensions are required. This syntax may be extended in the future, for example to check dependencies between other services.",
|
||||
"description": "Indicates what versions of PHP, MediaWiki core or extensions are required. This syntax may be extended in the future, for example to check dependencies between other services.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"MediaWiki": {
|
||||
"type": "string",
|
||||
"description": "Version constraint string against MediaWiki core."
|
||||
},
|
||||
"platform": {
|
||||
"type": "object",
|
||||
"description": "Indicates version constraints against platform services.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"php": {
|
||||
"type": "string",
|
||||
"description": "Version constraint string against PHP."
|
||||
}
|
||||
},
|
||||
"patternProprties": {
|
||||
"^ext-": {
|
||||
"type": "string",
|
||||
"description": "Required PHP extension.",
|
||||
"const": "*"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensions": {
|
||||
"type": "object",
|
||||
"description": "Set of version constraint strings against specific extensions."
|
||||
|
@ -285,6 +303,9 @@
|
|||
"class": {
|
||||
"enum": ["ResourceLoaderImageModule"]
|
||||
},
|
||||
"defaultColor": {
|
||||
"type": "string"
|
||||
},
|
||||
"data": {
|
||||
"type": "string"
|
||||
},
|
||||
|
@ -300,6 +321,9 @@
|
|||
"selectorWithVariant": {
|
||||
"type": "string"
|
||||
},
|
||||
"useDataURI": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"variants": {
|
||||
"type": "object"
|
||||
},
|
||||
|
@ -336,10 +360,6 @@
|
|||
"type": "object",
|
||||
"description": "ResourceLoader sources to register"
|
||||
},
|
||||
"ResourceLoaderLESSVars": {
|
||||
"type": "object",
|
||||
"description": "ResourceLoader LESS variables"
|
||||
},
|
||||
"ConfigRegistry": {
|
||||
"type": "object",
|
||||
"description": "Registry of factory functions to create Config objects"
|
||||
|
@ -569,7 +589,13 @@
|
|||
},
|
||||
"AutoloadNamespaces": {
|
||||
"type": "object",
|
||||
"description": "Mapping of PSR-4 compliant namespace to directory for autoloading"
|
||||
"description": "Mapping of PSR-4 compliant namespace to directory for autoloading",
|
||||
"patternProperties": {
|
||||
"^[A-Za-z0-9\\\\]+\\\\$": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"AutoloadClasses": {
|
||||
"type": "object"
|
||||
|
@ -660,6 +686,13 @@
|
|||
"type": "string"
|
||||
}
|
||||
},
|
||||
"RawHtmlMessages": {
|
||||
"type": "array",
|
||||
"description": "Messages which are rendered as raw HTML",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"callback": {
|
||||
"type": [
|
||||
"array",
|
||||
|
|
|
@ -56,13 +56,31 @@
|
|||
},
|
||||
"requires": {
|
||||
"type": "object",
|
||||
"description": "Indicates what versions of MediaWiki core or extensions are required. This syntax may be extended in the future, for example to check dependencies between other services.",
|
||||
"description": "Indicates what versions of PHP, MediaWiki core or extensions are required. This syntax may be extended in the future, for example to check dependencies between other services.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"MediaWiki": {
|
||||
"type": "string",
|
||||
"description": "Version constraint string against MediaWiki core."
|
||||
},
|
||||
"platform": {
|
||||
"type": "object",
|
||||
"description": "Indicates version constraints against platform services.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"php": {
|
||||
"type": "string",
|
||||
"description": "Version constraint string against PHP."
|
||||
}
|
||||
},
|
||||
"patternProprties": {
|
||||
"^ext-": {
|
||||
"type": "string",
|
||||
"description": "Required PHP extension.",
|
||||
"const": "*"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensions": {
|
||||
"type": "object",
|
||||
"description": "Set of version constraint strings against specific extensions."
|
||||
|
@ -288,6 +306,9 @@
|
|||
"class": {
|
||||
"enum": ["ResourceLoaderImageModule"]
|
||||
},
|
||||
"defaultColor": {
|
||||
"type": "string"
|
||||
},
|
||||
"data": {
|
||||
"type": "string"
|
||||
},
|
||||
|
@ -303,6 +324,9 @@
|
|||
"selectorWithVariant": {
|
||||
"type": "string"
|
||||
},
|
||||
"useDataURI": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"variants": {
|
||||
"type": "object"
|
||||
},
|
||||
|
@ -349,10 +373,6 @@
|
|||
"type": "object",
|
||||
"description": "ResourceLoader sources to register"
|
||||
},
|
||||
"ResourceLoaderLESSVars": {
|
||||
"type": "object",
|
||||
"description": "ResourceLoader LESS variables"
|
||||
},
|
||||
"ConfigRegistry": {
|
||||
"type": "object",
|
||||
"description": "Registry of factory functions to create Config objects"
|
||||
|
@ -590,7 +610,13 @@
|
|||
},
|
||||
"AutoloadNamespaces": {
|
||||
"type": "object",
|
||||
"description": "Mapping of PSR-4 compliant namespace to directory for autoloading"
|
||||
"description": "Mapping of PSR-4 compliant namespace to directory for autoloading",
|
||||
"patternProperties": {
|
||||
"^[A-Za-z0-9\\\\]+\\\\$": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"AutoloadClasses": {
|
||||
"type": "object"
|
||||
|
@ -682,6 +708,13 @@
|
|||
"type": "string"
|
||||
}
|
||||
},
|
||||
"RawHtmlMessages": {
|
||||
"type": "array",
|
||||
"description": "Messages which are rendered as raw HTML",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"callback": {
|
||||
"type": [
|
||||
"array",
|
||||
|
|
|
@ -40,8 +40,6 @@ documentation for the remaining 114 globals, however some of the most important
|
|||
ones are listed below. They are typically initialised either in index.php or in
|
||||
Setup.php.
|
||||
|
||||
For a description of the classes, see design.txt.
|
||||
|
||||
$wgTitle
|
||||
Title object created from the request URL.
|
||||
|
||||
|
@ -63,5 +61,5 @@ $wgParser
|
|||
$wgRequest
|
||||
WebRequest object, to get request data
|
||||
|
||||
$wgMemc, $messageMemc, $parserMemc
|
||||
$wgMemc, $messageMemc
|
||||
Object caches
|
||||
|
|
703
docs/hooks.txt
703
docs/hooks.txt
File diff suppressed because it is too large
Load Diff
|
@ -80,18 +80,15 @@ usage evenly), make its entry a subarray:
|
|||
MediaWiki uses a fork of Ryan T. Dean's pure-PHP memcached client.
|
||||
It also supports the PECL PHP extension for memcached.
|
||||
|
||||
MediaWiki uses three object for object caching:
|
||||
* $wgMemc, controlled by $wgMainCacheType
|
||||
* $parserMemc, controlled by $wgParserCacheType
|
||||
* $messageMemc, controlled by $wgMessageCacheType
|
||||
If you set CACHE_NONE to one of the three control variable, (default
|
||||
value for $wgMainCacheType), MediaWiki still create a MemCacheClient,
|
||||
but requests to it are no-ops and we always fall through to the
|
||||
database. If the cache daemon can't be contacted, it should also
|
||||
disable itself fairly smoothly.
|
||||
MediaWiki uses the ObjectCache class to retrieve instances of
|
||||
BagOStuff by purpose, controlled by the following variables:
|
||||
* $wgMainCacheType
|
||||
* $wgParserCacheType
|
||||
* $wgMessageCacheType
|
||||
|
||||
By default, $wgMemc is used but when it is $parserMemc or $messageMemc
|
||||
this is mentioned below.
|
||||
If you set one of these to CACHE_NONE, MediaWiki still creates a
|
||||
BagOStuff object, but calls it to it are no-ops. If the cache daemon
|
||||
can't be contacted, it should also disable itself fairly smoothly.
|
||||
|
||||
== Keys used ==
|
||||
|
||||
|
@ -134,7 +131,7 @@ Localisation:
|
|||
cleared by: Language::loadLocalisation()
|
||||
|
||||
Message Cache:
|
||||
stored in: $messageMemc
|
||||
backend: $wgMessageCacheType
|
||||
key: $wgDBname:messages, $wgDBname:messages-hash, $wgDBname:messages-status
|
||||
ex: wikidb:messages, wikidb:messages-hash, wikidb:messages-status
|
||||
stores: an array where the keys are DB keys and the values are messages
|
||||
|
@ -151,7 +148,8 @@ Newtalk:
|
|||
expiry: 30 minutes
|
||||
|
||||
Parser Cache:
|
||||
stored in: $parserMemc
|
||||
access: ParserCache
|
||||
backend: $wgParserCacheType
|
||||
key: $wgDBname:pcache:idhash:$pageid-$renderkey!$hash
|
||||
$pageid: id of the page
|
||||
$renderkey: 1 if action=render, 0 otherwise
|
||||
|
@ -205,7 +203,7 @@ Sessions:
|
|||
cleared by: session_destroy()
|
||||
|
||||
Sidebar:
|
||||
stored in: $parserMemc
|
||||
access: WANObjectCache
|
||||
controlled by: $wgEnableSidebarCache
|
||||
key: $wgDBname:sidebar
|
||||
ex: wikidb:sidebar
|
||||
|
@ -221,7 +219,7 @@ Special:Allpages:
|
|||
cleared by: nothing
|
||||
|
||||
Special:Recentchanges (feed):
|
||||
stored in: $messageMemc
|
||||
backend: $wgMessageCacheType
|
||||
key: $wgDBname:rcfeed:$format:$limit:$hideminor:$target and
|
||||
rcfeed:$format:timestamp
|
||||
ex: wikidb:rcfeed:rss:50:: and rcfeed:rss:timestamp
|
||||
|
|
|
@ -0,0 +1,191 @@
|
|||
This document provides an overview of the usage of PageUpdater and DerivedPageDataUpdater.
|
||||
|
||||
== PageUpdater ==
|
||||
PageUpdater is the canonical way to create page revisions, that is, to perform edits.
|
||||
|
||||
PageUpdater is a stateful, handle-like object that allows new revisions to be created
|
||||
on a given wiki page using the saveRevision() method. PageUpdater provides setters for
|
||||
defining the new revision's content as well as meta-data such as change tags. saveRevision()
|
||||
stores the new revision's primary content and metadata, and triggers the necessary
|
||||
updates to derived secondary data and cached artifacts e.g. in the ParserCache and the
|
||||
CDN layer, using a DerivedPageDataUpdater.
|
||||
|
||||
PageUpdater instances follow the below life cycle, defined by a number of
|
||||
methods:
|
||||
|
||||
+----------------------------+
|
||||
| |
|
||||
| new |
|
||||
| |
|
||||
+------|--------------|------+
|
||||
| |
|
||||
grabParentRevision()-| |
|
||||
or hasEditConflict()-| |
|
||||
| |
|
||||
+--------v-------+ |
|
||||
| | |
|
||||
| parent known | |
|
||||
| | |
|
||||
Enables---------------+--------|-------+ |
|
||||
safe operations based on | |-saveRevision()
|
||||
the parent revision, e.g. | |
|
||||
section replacement or | |
|
||||
edit conflict resolution. | |
|
||||
| |
|
||||
saveRevision()-| |
|
||||
| |
|
||||
+------v--------------v------+
|
||||
| |
|
||||
| creation committed |
|
||||
| |
|
||||
Enables-----------------+----------------------------+
|
||||
wasSuccess()
|
||||
isUnchanged()
|
||||
isNew()
|
||||
getState()
|
||||
getNewRevision()
|
||||
etc.
|
||||
|
||||
The stateful nature of PageUpdater allows it to be used to safely perform
|
||||
transformations that depend on the new revision's parent revision, such as replacing
|
||||
sections or applying 3-way conflict resolution, while protecting against race
|
||||
conditions using a compare-and-swap (CAS) mechanism: after calling code used the
|
||||
grabParentRevision() method to access the edit's logical parent, PageUpdater
|
||||
remembers that revision, and ensure that that revision is still the page's current
|
||||
revision when performing the atomic database update for the revision's primary
|
||||
meta-data when saveRevision() is called. If another revision was created concurrently,
|
||||
saveRevision() will fail, indicating the problem with the "edit-conflict" code in the status
|
||||
object.
|
||||
|
||||
Typical usage for programmatic revision creation (with $page being a WikiPage as of 1.32, to be
|
||||
replaced by a repository service later):
|
||||
|
||||
$updater = $page->newPageUpdater( $user );
|
||||
$updater->setContent( SlotRecord::MAIN, $content );
|
||||
$updater->setRcPatrolStatus( RecentChange::PRC_PATROLLED );
|
||||
$newRev = $updater->saveRevision( $comment );
|
||||
|
||||
Usage with content depending on the parent revision
|
||||
|
||||
$updater = $page->newPageUpdater( $user );
|
||||
$parent = $updater->grabParentRevision();
|
||||
$content = $parent->getContent( SlotRecord::MAIN )->replaceSection( $section, $sectionContent );
|
||||
$updater->setContent( SlotRecord::MAIN, $content );
|
||||
$newRev = $updater->saveRevision( $comment, EDIT_UPDATE );
|
||||
|
||||
In both cases, all secondary updates will be triggered automatically.
|
||||
|
||||
== DerivedPageDataUpdater ==
|
||||
DerivedPageDataUpdater is a stateful, handle-like object that caches derived data representing
|
||||
a revision, and can trigger updates of cached copies of that data, e.g. in the links tables,
|
||||
page_props, the ParserCache, and the CDN layer.
|
||||
|
||||
DerivedPageDataUpdater is used by PageUpdater when creating new revisions, but can also
|
||||
be used independently when performing meta data updates during undeletion, import, or
|
||||
when puring a page. It's a stepping stone on the way to a more complete refactoring of WikiPage.
|
||||
|
||||
NOTE: Avoid direct usage of DerivedPageDataUpdater. In the future, we want to define interfaces
|
||||
for the different use cases of DerivedPageDataUpdater, particularly providing access to post-PST
|
||||
content and ParserOutput to callbacks during revision creation, which currently use
|
||||
WikiPage::prepareContentForEdit, and allowing updates to be triggered on purge, import, and
|
||||
undeletion, which currently use WikiPage::doEditUpdates() and Content::getSecondaryDataUpdates().
|
||||
|
||||
The primary reason for DerivedPageDataUpdater to be stateful is internal caching of state
|
||||
that avoids the re-generation of ParserOutput and re-application of pre-save-
|
||||
transformations (PST).
|
||||
|
||||
DerivedPageDataUpdater instances follow the below life cycle, defined by a number of
|
||||
methods:
|
||||
|
||||
+---------------------------------------------------------------------+
|
||||
| |
|
||||
| new |
|
||||
| |
|
||||
+---------------|------------------|------------------|---------------+
|
||||
| | |
|
||||
grabCurrentRevision()-| | |
|
||||
| | |
|
||||
+-----------v----------+ | |
|
||||
| | |-prepareContent() |
|
||||
| knows current | | |
|
||||
| | | |
|
||||
Enables------------------+-----|-----|----------+ | |
|
||||
pageExisted() | | | |
|
||||
wasRedirect() | |-prepareContent() | |-prepareUpdate()
|
||||
| | | |
|
||||
| | +-------------v------------+ |
|
||||
| | | | |
|
||||
| +----> has content | |
|
||||
| | | |
|
||||
Enables------------------------|----------+--------------------------+ |
|
||||
isChange() | | |
|
||||
isCreation() |-prepareUpdate() | |
|
||||
getSlots() | prepareUpdate()-| |
|
||||
getTouchedSlotRoles() | | |
|
||||
getCanonicalParserOutput() | +-----------v------------v-----------------+
|
||||
| | |
|
||||
+------------------> has revision |
|
||||
| |
|
||||
Enables-------------------------------------------+------------------------|-----------------+
|
||||
updateParserCache() |
|
||||
runSecondaryDataUpdates() |-doUpdates()
|
||||
|
|
||||
+-----------v---------+
|
||||
| |
|
||||
| updates done |
|
||||
| |
|
||||
+---------------------+
|
||||
|
||||
|
||||
- grabCurrentRevision() returns the logical parent revision of the target revision. It is
|
||||
guaranteed to always return the same revision for a given DerivedPageDataUpdater instance.
|
||||
If called before prepareUpdate(), this fixates the logical parent to be the page's current
|
||||
revision. If called for the first time after prepareUpdate(), it returns the revision
|
||||
passed as the 'oldrevision' option to prepareUpdate(), or, if that wasn't given, the
|
||||
parent of $revision parameter passed to prepareUpdate().
|
||||
|
||||
- prepareContent() is called before the new revision is created, to apply pre-save-
|
||||
transformation (PST) and allow subsequent access to the canonical ParserOutput of the
|
||||
revision. getSlots() and getCanonicalParserOutput() as well as getSecondaryDataUpdates()
|
||||
may be used after prepareContent() was called. Calling prepareContent() with the same
|
||||
parameters again has no effect. Calling it again with mismatching paramters, or calling
|
||||
it after prepareUpdate() was called, triggers a LogicException.
|
||||
|
||||
- prepareUpdate() is called after the new revision has been created. This may happen
|
||||
right after the revision was created, on the same instance on which prepareContent() was
|
||||
called, or later (possibly much later), on a fresh instance in a different process,
|
||||
due to deferred or asynchronous updates, or during import, undeletion, purging, etc.
|
||||
prepareUpdate() is required before a call to doUpdates(), and it also enables calls to
|
||||
getSlots() and getCanonicalParserOutput() as well as getSecondaryDataUpdates().
|
||||
Calling prepareUpdate() with the same parameters again has no effect.
|
||||
Calling it again with mismatching parameters, or calling it with parameters mismatching
|
||||
the ones prepareContent() was called with, triggers a LogicException.
|
||||
|
||||
- getSecondaryDataUpdtes() returns DataUpdates that represent derived data for the revision.
|
||||
These may be used to update such data, e.g. in ApiPurge, RefreshLinksJob, and the refreshLinks
|
||||
script.
|
||||
|
||||
- doUpdates() triggers the updates defined by getSecondaryDataUpdtes(), and also causes
|
||||
updates to cached artifacts in the ParserCache, the CDN layer, etc. This is primarily
|
||||
used by PageUpdater, but also by PageArchive during undeletion, and when importing
|
||||
revisions from XML. doUpdates() can only be called after prepareUpdate() was used to
|
||||
initialize the DerivedPageDataUpdater instance for a specific revision. Calling it before
|
||||
prepareUpdate() is called raises a LogicException.
|
||||
|
||||
A DerivedPageDataUpdater instance is intended to be re-used during different stages
|
||||
of complex update operations that often involve callbacks to extension code via
|
||||
MediaWiki's hook mechanism, or deferred or even asynchronous execution of Jobs and
|
||||
DeferredUpdates. Since these mechanisms typically do not provide a way to pass a
|
||||
DerivedPageDataUpdater directly, WikiPage::getDerivedPageDataUpdater() has to be used to
|
||||
obtain a DerivedPageDataUpdater for the update currently in progress - re-using the
|
||||
same DerivedPageDataUpdater if possible avoids re-generation of ParserOutput objects
|
||||
and other expensively derived artifacts.
|
||||
|
||||
This mechanism for re-using a DerivedPageDataUpdater instance without passing it directly
|
||||
requires a way to ensure that a given DerivedPageDataUpdater instance can actually be used
|
||||
in the calling code's context. For this purpose, WikiPage::getDerivedPageDataUpdater()
|
||||
calls the isReusableFor() method on DerivedPageDataUpdater, which ensures that the given
|
||||
instance is applicable to the given parameters. In other words, isReusableFor() predicts
|
||||
whether calling prepareContent() or prepareUpdate() with a given set of parameters will
|
||||
trigger a LogicException. In that case, WikiPage::getDerivedPageDataUpdater() creates a
|
||||
fresh DerivedPageDataUpdater instance.
|
|
@ -130,7 +130,7 @@ MemCachedClient::set_debug($do_debug);
|
|||
MemCachedClient::forget_dead_hosts();
|
||||
|
||||
// When a function returns FALSE, an error code is set.
|
||||
// This funtion will return the error code.
|
||||
// This function will return the error code.
|
||||
// See error_string()
|
||||
// returns last error code set
|
||||
MemCachedClient::error()
|
||||
|
|
|
@ -28,19 +28,9 @@ Primary scripts:
|
|||
that points to the search engines of the wiki.
|
||||
|
||||
profileinfo.php
|
||||
Allow users to see the profiling information that are stored in the
|
||||
database.
|
||||
|
||||
To save the profiling information in the database (required to use this
|
||||
script), you have to modify StartProfiler.php to use the Profiler class and
|
||||
not the stub profiler which is enabled by default.
|
||||
You will also need to set $wgProfiler['output'] to 'db' in LocalSettings.php
|
||||
to force the profiler to save the informations in the database and apply the
|
||||
maintenance/archives/patch-profiling.sql patch to the database.
|
||||
|
||||
To enable the profileinfo.php itself, you'll need to set $wgDBadminuser
|
||||
and $wgDBadminpassword in your LocalSettings.php, as well as $wgEnableProfileInfo
|
||||
See also https://www.mediawiki.org/wiki/Manual:Profiling .
|
||||
Simple interface for displaying request profiles that were stored in the
|
||||
database. For more information, see the documentation in that file, and at
|
||||
https://www.mediawiki.org/wiki/Manual:Profiling.
|
||||
|
||||
thumb.php
|
||||
Script used to resize images if it is configured to be done when the web
|
||||
|
|
|
@ -58,7 +58,7 @@ These can also be customised on a per-user basis, by editing
|
|||
|
||||
Several custom skins are available as of 2014.
|
||||
|
||||
https://www.mediawiki.org/wiki/Category:All_skins
|
||||
https://www.mediawiki.org/wiki/Special:MyLanguage/Category:All_skins
|
||||
|
||||
Installing a skin requires adding its files in a subdirectory under skins/ and
|
||||
adding an appropriate require_once line to LocalSettings.php, similarly to how
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<link rel="stylesheet" href="../../resources/src/mediawiki.legacy/shared.css">
|
||||
<link rel="stylesheet" href="../../resources/src/mediawiki/mediawiki.feedlink.css">
|
||||
<link rel="stylesheet" href="../../resources/src/mediawiki.feedlink/feedlink.css">
|
||||
</head>
|
||||
<body style="font-size: small;">
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<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">
|
||||
<link rel="stylesheet" href="../../resources/src/mediawiki.diff.styles/diff.css">
|
||||
<link rel="stylesheet" media="print" href="../../resources/src/mediawiki.diff.styles/print.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
/** This is just for coloring: */
|
||||
table { border: 1px solid #CC0; }
|
||||
td { border: 1px solid #CCC; }
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
#first {
|
||||
width: 300px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>
|
||||
This play with table-layout:fixed; and applying the width to colgroup or col element. Firefox only recongize the width if it is applied on col element!</p>
|
||||
<p>
|
||||
On a perfect browser, both tables should look the same</p>
|
||||
|
||||
<dl>
|
||||
<dt>colgroup</dt>
|
||||
<dd>300 px width is applied to the first colgroup element</dd>
|
||||
</dl>
|
||||
<div style="width: 400px;">
|
||||
<table>
|
||||
<colgroup id="first" /></colgroup>
|
||||
<colgroup id="second"/></colgroup>
|
||||
<colgroup id="third" /></colgroup>
|
||||
<tr>
|
||||
<td>Very long?</td>
|
||||
<td>#</td>
|
||||
<td>$</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<dl>
|
||||
<dt>col</dt>
|
||||
<dd>Each colgroup has an additional col element. The first col element is applied the 300 px width</dd>
|
||||
</dl>
|
||||
|
||||
<div style="width: 400px;">
|
||||
<table>
|
||||
<colgroup><col id="first" /></colgroup>
|
||||
<colgroup><col id="second"/></colgroup>
|
||||
<colgroup><col id="third" /></colgroup>
|
||||
<tr>
|
||||
<td>Very long?</td>
|
||||
<td>#</td>
|
||||
<td>$</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
|
@ -1 +1 @@
|
|||
Subproject commit 9fc6235372d4bfe385324f007939469fc90d481d
|
||||
Subproject commit b61bd351347a0d9e4b9975909e0da7baf77388e4
|
|
@ -1 +1 @@
|
|||
Subproject commit 008326926a2f8858f72f621963831d19dd8a0464
|
||||
Subproject commit 2432d8099cbe673f37ce05aad0b756320f1cbe2e
|
|
@ -1 +1 @@
|
|||
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct).
|
||||
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct).
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* CategoryTree extension, an AJAX based gadget
|
||||
* to display the category structure of a wiki
|
||||
*
|
||||
* @file
|
||||
* @ingroup Extensions
|
||||
* @author Daniel Kinzler, brightbyte.de
|
||||
* @copyright © 2006-2008 Daniel Kinzler and others
|
||||
* @license GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
if ( function_exists( 'wfLoadExtension' ) ) {
|
||||
wfLoadExtension( 'CategoryTree' );
|
||||
// Keep i18n globals so mergeMessageFileList.php doesn't break
|
||||
$wgMessagesDirs['CategoryTree'] = __DIR__ . '/i18n';
|
||||
/* wfWarn(
|
||||
'Deprecated PHP entry point used for CategoryTree extension. ' .
|
||||
'Please use wfLoadExtension instead, ' .
|
||||
'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
|
||||
); */
|
||||
return true;
|
||||
} else {
|
||||
die( 'This version of the CategoryTree extension requires MediaWiki 1.25+' );
|
||||
}
|
||||
|
||||
// To maintain compatibility with configuration we currently keep
|
||||
// the defines, but there are deprecated, and we'll be removed in
|
||||
// a future MediaWiki release, in addition to this file.
|
||||
|
||||
/**
|
||||
* Constants for use with the mode,
|
||||
* defining what should be shown in the tree
|
||||
*/
|
||||
define( 'CT_MODE_CATEGORIES', 0 );
|
||||
define( 'CT_MODE_PAGES', 10 );
|
||||
define( 'CT_MODE_ALL', 20 );
|
||||
define( 'CT_MODE_PARENTS', 100 );
|
||||
|
||||
/**
|
||||
* Constants for use with the hideprefix option,
|
||||
* defining when the namespace prefix should be hidden
|
||||
*/
|
||||
define( 'CT_HIDEPREFIX_NEVER', 0 );
|
||||
define( 'CT_HIDEPREFIX_ALWAYS', 10 );
|
||||
define( 'CT_HIDEPREFIX_CATEGORIES', 20 );
|
||||
define( 'CT_HIDEPREFIX_AUTO', 30 );
|
|
@ -2,9 +2,9 @@
|
|||
"require-dev": {
|
||||
"jakub-onderka/php-parallel-lint": "1.0.0",
|
||||
"jakub-onderka/php-console-highlighter": "0.3.2",
|
||||
"mediawiki/mediawiki-codesniffer": "18.0.0",
|
||||
"mediawiki/mediawiki-codesniffer": "22.0.0",
|
||||
"mediawiki/minus-x": "0.3.1",
|
||||
"mediawiki/mediawiki-phan-config": "0.2.0"
|
||||
"mediawiki/mediawiki-phan-config": "0.3.0"
|
||||
},
|
||||
"scripts": {
|
||||
"fix": [
|
||||
|
@ -16,5 +16,8 @@
|
|||
"phpcs -p -s",
|
||||
"minus-x check ."
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"phan-taint-check-plugin": "1.5.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Anok kutai jang"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "kas lebar",
|
||||
"categorytree-member-counts": "punya{{PLURAL:$1|$1 subkategori}}, {{PLURAL:$2|$2 kintal}}, deng {{PLURAL:$3|$3 berkas}}",
|
||||
"categorytree-num-categories": "$1 K",
|
||||
"categorytree-num-pages": "$1 K"
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Vickylin77s"
|
||||
]
|
||||
},
|
||||
"categorytree-portlet": " pisakilac",
|
||||
"categorytree-mode-all": "O po:long no felih",
|
||||
"categorytree-expand": " misatapang",
|
||||
"categorytree-member-counts": "Maparo I laloma’ no $1 ko …I kalaenoay a silsil 、$2 …ay ko felih ato $3 ko tang^an",
|
||||
"categorytree-num-categories": "$1 kasakilac",
|
||||
"categorytree-num-pages": "$1 o felih",
|
||||
"categorytree-num-files": "$1 tang^an"
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Reda Benkhadra"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "وسع"
|
||||
}
|
|
@ -4,7 +4,8 @@
|
|||
"Тест",
|
||||
"Чаховіч Уладзіслаў",
|
||||
"Mikalai Udodau",
|
||||
"Mechanizatar"
|
||||
"Mechanizatar",
|
||||
"Artsiom91"
|
||||
]
|
||||
},
|
||||
"categorytree": "Дрэва катэгорый",
|
||||
|
@ -36,7 +37,7 @@
|
|||
"categorytree-error": "Памылка загрузкі даных.",
|
||||
"categorytree-retry": "Калі ласка, пачакайце і паспрабуйце яшчэ раз.",
|
||||
"apihelp-categorytree-description": "Унутраны модуль пашырэння CategoryTree.",
|
||||
"apihelp-categorytree-param-category": "Назва ў прасторы імёнаў катэгорыяў. Прэфікс, калі будзе пададзены, будзе ігнаравацца.",
|
||||
"apihelp-categorytree-param-options": "Налады для канструктару CategoryTree як JSON-аб’екту. Параметр глыбіні (<var>depth</var>) па змоўчанні роўны <kbd>1</kbd>.",
|
||||
"apihelp-categorytree-param-category": "Назва ў прасторы назваў катэгорый. Прэфікс, калі будзе пададзены, будзе ігнаравацца.",
|
||||
"apihelp-categorytree-param-options": "Настройкі для канструктара CategoryTree як JSON-аб’екта. Параметр глыбіні (<var>depth</var>) па змоўчванні роўны <kbd>1</kbd>.",
|
||||
"apierror-categorytree-invalidjson": "Опцыі павінны быць дапушчальнымі JSON-аб’ектамі."
|
||||
}
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
"Aftab1995",
|
||||
"Aftabuzzaman",
|
||||
"আজিজ",
|
||||
"Bodhisattwa"
|
||||
"Bodhisattwa",
|
||||
"আফতাবুজ্জামান"
|
||||
]
|
||||
},
|
||||
"categorytree": "বিষয়শ্রেণীবৃক্ষ",
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Simartampua"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "Pabolak",
|
||||
"categorytree-member-counts": "Marisi {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 alaman}}, dot {{PLURAL:$3|1 file|$3 berkas}}",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 P"
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Chocoj"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "tinimirisäx",
|
||||
"categorytree-member-counts": "Ruk'wan {{K'IYILAL:$1|1 ral na'oj samaj|$1 ral na'oj samaj}}, {{K'IYILAL:$2|1 ruxaq samaj|$2 ruxaq samaj}}, chuqa' {{K'IYILAL:$3|1 yakb'äl samaj|$3 yakb'äl samaj}}",
|
||||
"categorytree-num-categories": "$1 R",
|
||||
"categorytree-num-pages": "$1 R",
|
||||
"categorytree-num-files": "$1 R"
|
||||
}
|
|
@ -2,17 +2,22 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"GnuDoyng",
|
||||
"Yejianfei"
|
||||
"Yejianfei",
|
||||
"Davidzdh"
|
||||
]
|
||||
},
|
||||
"categorytree": "類別樹",
|
||||
"categorytree-header": "Sṳ̆-ĭk lôi-biék miàng-chĭng, káng ĭ gì chéu-hìng giék-gáiu. Chiāng cé̤ṳ-é, ciā hiĕk-miêng sāi-ê̤ṳng siŏh cṳ̄ng gŏ̤-gék JavaScript gé-sŭk, giéu lō̤ AJAX. Nṳ̄ nâ sāi-ê̤ṳng guó-sì gì báuk-lāng-ké, hĕ̤k-ciā cĕk lâi JavaScript, cêu mâ̤ ciáng-siòng gĕ̤ng-cáuk.",
|
||||
"categorytree-header": "Sṳ̆-ĭk lôi-biék mìng-chĭng, káng ĭ gì chéu-hìng giék-gáiu. Chiāng cé̤ṳ-é, ciā hiĕk-miêng sāi-ê̤ṳng siŏh cṳ̄ng gŏ̤-gék JavaScript gé-sŭk, giéu lō̤ AJAX. Nṳ̄ nâ sāi-ê̤ṳng guó-sì gì báuk-lāng-ké, hĕ̤k-ciā cĕk lâi JavaScript, cêu mâ̤ ciáng-siòng gĕ̤ng-cáuk.",
|
||||
"categorytree-category": "分類:",
|
||||
"categorytree-go": "顯示樹",
|
||||
"categorytree-mode-categories": "囇有類別",
|
||||
"categorytree-mode-pages": "無文件其頁面",
|
||||
"categorytree-mode-all": "全部頁面",
|
||||
"categorytree-num-pages": "$1頁",
|
||||
"categorytree-expand": "Kŭi",
|
||||
"categorytree-member-counts": "Bău-guák $1 bĭh cṳ̄-hŭng-lôi,$2 bĭh hiĕk-miêng, $3 bĭh ùng-giông",
|
||||
"categorytree-num-categories": "$1 lôi",
|
||||
"categorytree-num-pages": "$1 hiĕk",
|
||||
"categorytree-num-files": "$1 dáung",
|
||||
"categorytree-loading": "載入…",
|
||||
"categorytree-no-subcategories": "無子類別",
|
||||
"categorytree-no-pages": "無頁面或者子類別",
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"ⲁϩⲙⲉⲧ"
|
||||
"ⲁϩⲙⲉⲧ",
|
||||
"Ⲁϩⲙⲉⲧ"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "ⲟⲩⲱϣⲥ",
|
||||
"categorytree-num-pages": "$1 `ⲛⲥ"
|
||||
}
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
"Li-sung",
|
||||
"Mormegil",
|
||||
"LordMsz",
|
||||
"Matěj Suchánek"
|
||||
"Matěj Suchánek",
|
||||
"Ilimanaq29"
|
||||
]
|
||||
},
|
||||
"categorytree": "Strom kategorií",
|
||||
|
@ -36,5 +37,6 @@
|
|||
"categorytree-not-found": "Kategorie <em>$1</em> nenalezena",
|
||||
"categorytree-error": "Chyba při načítání dat.",
|
||||
"categorytree-retry": "Počkejte chvilku a zkuste to znova.",
|
||||
"apihelp-categorytree-description": "Interní modul pro rozšíření CategoryTree."
|
||||
"apihelp-categorytree-description": "Interní modul pro rozšíření CategoryTree.",
|
||||
"apierror-categorytree-invalidjson": "Nastavení musí být platný objekt JSON."
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
"categorytree-portlet": "катигорїѩ",
|
||||
"categorytree-category": "катигорїꙗ :",
|
||||
"categorytree-mode-all": "вьсѩ страницѧ",
|
||||
"categorytree-expand": "отврьꙁи",
|
||||
"categorytree-num-categories": "$1 К҃",
|
||||
"categorytree-num-pages": "$1 С҃",
|
||||
"categorytree-num-files": "$1 Д҃"
|
||||
|
|
|
@ -7,14 +7,15 @@
|
|||
"Dead3y3",
|
||||
"Protnet",
|
||||
"ZaDiak",
|
||||
"SucreRouge"
|
||||
"SucreRouge",
|
||||
"Nikosgranturismogt"
|
||||
]
|
||||
},
|
||||
"categorytree": "Δέντρο κατηγορίας",
|
||||
"categorytree-portlet": "Κατηγορίες",
|
||||
"categorytree-legend": "Εμφάνιση δέντρου κατηγορίας",
|
||||
"categorytree-desc": "Πλοηγηθείτε δυναμικά στη [[Special:CategoryTree|δομή της κατηγορίας]]",
|
||||
"categorytree-header": "Εισαγάγετε όνομα κατηγορίας για να δείτε τα περιεχόμενά της ως δεντρική δομή.\nΣημειώστε ότι αυτό απαιτεί προηγμένη λειτουργικότητα JavaScript γνωστή ως AJAX.\nΑν έχετε πολύ παλιό περιηγητή, ή αν έχετε απενεργοποιημένο το JavaScript, δεν θα δουλέψει.",
|
||||
"categorytree-header": "Εισαγάγετε όνομα κατηγορίας για να δείτε τα περιεχόμενά της ως δεντρική δομή. (απαιτεί JavaScript).",
|
||||
"categorytree-category": "Κατηγορία:",
|
||||
"categorytree-go": "Εμφάνιση δέντρου",
|
||||
"categorytree-parents": "Γονείς",
|
||||
|
@ -37,5 +38,10 @@
|
|||
"categorytree-no-pages": "καμία σελίδα ή υποκατηγορία",
|
||||
"categorytree-not-found": "Η κατηγορία <i>$1</i> δεν βρέθηκε",
|
||||
"categorytree-error": "Πρόβλημα φόρτωσης δεδομένων.",
|
||||
"categorytree-retry": "Παρακαλούμε περιμένετε μια στιγμή και προσπαθήστε ξανά."
|
||||
"categorytree-retry": "Παρακαλούμε περιμένετε μια στιγμή και προσπαθήστε ξανά.",
|
||||
"apihelp-categorytree-description": "Εσωτερικό δομοστοιχείο για την επέκταση CategoryTree.",
|
||||
"apihelp-categorytree-summary": "Εσωτερικό δομοστοιχείο για την επέκταση CategoryTree.",
|
||||
"apihelp-categorytree-param-category": "Τίτλος στον ονοματοχώρο κατηγορίας, το πρόθεμα θα αγνοηθεί εάν δοθεί.",
|
||||
"apihelp-categorytree-param-options": "Επιλογές για τον κατασκευαστή CategoryTree ως αντικείμενο JSON. Η επιλογή <var>depth</var> είναι προεπιλεγμένη στο <kbd>1</kbd>.",
|
||||
"apierror-categorytree-invalidjson": "Οι επιλογές πρέπει να είναι έγκυρο αντικείμενο JSON."
|
||||
}
|
||||
|
|
|
@ -41,5 +41,5 @@
|
|||
"apihelp-categorytree-summary": "Internal module for the CategoryTree extension.",
|
||||
"apihelp-categorytree-param-category": "Title in the category namespace, prefix will be ignored if given.",
|
||||
"apihelp-categorytree-param-options": "Options for the CategoryTree constructor as a JSON object. The <var>depth</var> option defaults to <kbd>1</kbd>.",
|
||||
"apierror-categorytree-invalidjson": "Options must be valid a JSON object."
|
||||
"apierror-categorytree-invalidjson": "Options must be a valid JSON object."
|
||||
}
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"An13sa",
|
||||
"Theklan"
|
||||
"Theklan",
|
||||
"Matěj Suchánek"
|
||||
]
|
||||
},
|
||||
"categorytree": "Kategoria Zuhaitza",
|
||||
|
@ -19,7 +20,7 @@
|
|||
"categorytree-mode-all": "orrialde guztiak",
|
||||
"categorytree-collapse": "itxi",
|
||||
"categorytree-expand": "zabaldu",
|
||||
"categorytree-member-counts": "{{PLURAL:$1|azpikategoria 1|$1 azpikategoria}}, {{PLURAL:$2|orrialde 1|$2 orrialde}} eta {{PLURALK:$3|fitxategi 1|$3 fitxategi}} ditu",
|
||||
"categorytree-member-counts": "{{PLURAL:$1|azpikategoria 1|$1 azpikategoria}}, {{PLURAL:$2|orrialde 1|$2 orrialde}} eta {{PLURAL:$3|fitxategi 1|$3 fitxategi}} ditu",
|
||||
"categorytree-num-categories": "$1 K",
|
||||
"categorytree-num-pages": "$1 O",
|
||||
"categorytree-num-files": "$1 F",
|
||||
|
|
|
@ -7,14 +7,15 @@
|
|||
"Mjbmr",
|
||||
"ZxxZxxZ",
|
||||
"Alirezaaa",
|
||||
"Rtemis"
|
||||
"Rtemis",
|
||||
"Fatemi127"
|
||||
]
|
||||
},
|
||||
"categorytree": "درخت رده",
|
||||
"categorytree-portlet": "ردهها",
|
||||
"categorytree-legend": "نمایش درخت رده",
|
||||
"categorytree-desc": "ناوبری فعال [[Special:CategoryTree|ساختار ردهای]]",
|
||||
"categorytree-header": "نام ردهای را وارد کنید تا محتویات آن به صورت درختی نمایش یابد. (نیازمندم جاوااسکریپت)",
|
||||
"categorytree-header": "نام ردهای را وارد کنید تا محتویات آن به صورت درختی نمایش یابد. (نیازمند جاوااسکریپت)",
|
||||
"categorytree-category": "رده:",
|
||||
"categorytree-go": "نمایش درخت",
|
||||
"categorytree-parents": "والدین",
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Mybluberet"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "Gblamɔ mli",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 F"
|
||||
}
|
|
@ -10,7 +10,7 @@
|
|||
},
|
||||
"categorytree": "Árbore de categorías",
|
||||
"categorytree-portlet": "Categorías",
|
||||
"categorytree-legend": "Mostrar a árbore de categorías",
|
||||
"categorytree-legend": "Amosar a árbore de categorías",
|
||||
"categorytree-desc": "Navegación dinámica a través da [[Special:CategoryTree|estrutura de categorías]]",
|
||||
"categorytree-header": "Introduza o nome dunha categoría para ver o seu contido nunha estrutura de árbore. (Require JavaScript.)",
|
||||
"categorytree-category": "Categoría:",
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
"categorytree-nothing-found": "nije pronađena ijedna stavka",
|
||||
"categorytree-no-subcategories": "nema potkategorija",
|
||||
"categorytree-no-parent-categories": "nema viših kategorija",
|
||||
"categorytree-no-pages": "Nema članaka ili podkategorija.",
|
||||
"categorytree-no-pages": "Nema članaka ili potkategorija.",
|
||||
"categorytree-not-found": "Kategorija <i>$1</i> nije pronađena",
|
||||
"categorytree-error": "Problem s učitavanjem podataka.",
|
||||
"categorytree-retry": "Pričekajte trenutak pa pokušajte opet.",
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
]
|
||||
},
|
||||
"categorytree": "Egbü nke ébéanọr",
|
||||
"categorytree-portlet": "Ébéanọr",
|
||||
"categorytree-portlet": "Ụdàkọ",
|
||||
"categorytree-legend": "Zi egbü nke ébéanọr",
|
||||
"categorytree-category": "Ébéonọr:",
|
||||
"categorytree-category": "Ụdàkọ:",
|
||||
"categorytree-go": "Zí oshíshí",
|
||||
"categorytree-parents": "Ndi mụrụ",
|
||||
"categorytree-mode-categories": "Náni ébéanọr",
|
||||
|
@ -16,6 +16,6 @@
|
|||
"categorytree-expand": "Sá àsáá",
|
||||
"categorytree-load": "mmẹ̀wẹ́òbú",
|
||||
"categorytree-loading": "ọ byáwálá...",
|
||||
"categorytree-no-subcategories": "ébéonọr-ime àdíghị",
|
||||
"categorytree-no-pages": "ihü ma ébéonọr-ímé àdíghị"
|
||||
"categorytree-no-subcategories": "ụdàkọòkpurù adịghị̀",
|
||||
"categorytree-no-pages": "ihu mà ụdàkọòkpurù adịghị̀"
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
"categorytree-error": "Parikut ti panagikarga ti linaon.",
|
||||
"categorytree-retry": "Pangngaasi nga aguray intono madamdama ken ipadas manen.",
|
||||
"apihelp-categorytree-description": "Akin-uneg a modulo para iti pagpaatiddog ti CategoryTree.",
|
||||
"apihelp-categorytree-summary": "Akin-uneg a modulo para iti pagpaatiddog ti CategoryTree.",
|
||||
"apihelp-categorytree-param-category": "Titulo iti nagan ti espasio ti kategoria, saanto a maikaskaso ti pasakbay no maited.",
|
||||
"apihelp-categorytree-param-options": "Dagiti pagpilian ti konstruktor ti CategoryTree a kas maysa a banag ti JSON. Ti pagpilian ti <var>depth</var> ket kasisigud iti <kbd>1</kbd>.",
|
||||
"apierror-categorytree-invalidjson": "Dagiti pagpilian ket nasken nga umiso a banag ti JSON."
|
||||
|
|
|
@ -7,25 +7,25 @@
|
|||
"Adam-Yourist"
|
||||
]
|
||||
},
|
||||
"categorytree": "Категорий га",
|
||||
"categorytree-portlet": "Категореш",
|
||||
"categorytree-legend": "Категорий га хьахьокха",
|
||||
"categorytree-category": "Категори:",
|
||||
"categorytree-go": "Га хьахьокха",
|
||||
"categorytree-parents": "Хьалхара категореш",
|
||||
"categorytree": "ОагӀатий га",
|
||||
"categorytree-portlet": "ОагӀаташ",
|
||||
"categorytree-legend": "Хьахьокха оагӀатий га",
|
||||
"categorytree-category": "ОагӀат:",
|
||||
"categorytree-go": "Хьахьокха оагӀаташ",
|
||||
"categorytree-parents": "Ларда оагӀаташ",
|
||||
"categorytree-mode-label": "Раж:",
|
||||
"categorytree-mode-categories": "алхха категореш",
|
||||
"categorytree-mode-categories": "алхха оагӀаташ",
|
||||
"categorytree-mode-all": "еррига оагIонаш",
|
||||
"categorytree-expand": "хьадоаржаде",
|
||||
"categorytree-member-counts": "Укхунах йоалл $1 {{PLURAL:$1|1=кIалоагIат}} а, $2 {{PLURAL:$2|1=оагӀув}} а, $3 {{PLURAL:$3|1=файл}} а",
|
||||
"categorytree-member-counts": "Укхо чулоац: $1 {{PLURAL:$1|1=кӀалоагӀат}}, $2 {{PLURAL:$2|1=оагӀув}}, $3 {{PLURAL:$3|1=файл}}",
|
||||
"categorytree-num-categories": "$1 К",
|
||||
"categorytree-num-pages": "$1 Оа",
|
||||
"categorytree-num-files": "$1 Ф",
|
||||
"categorytree-num-empty": "яьсса",
|
||||
"categorytree-load": "чуяккха",
|
||||
"categorytree-load": "хьачуяккха",
|
||||
"categorytree-loading": "доттар...",
|
||||
"categorytree-nothing-found": "Укх категори чу кIалкатегореш яц.",
|
||||
"categorytree-no-subcategories": "кIалкатегореш яц",
|
||||
"categorytree-no-parent-categories": "хьалхара категореш яц",
|
||||
"categorytree-no-pages": "оагӀонаш а кIалкатегореш а яц"
|
||||
"categorytree-nothing-found": "Укх оагӀата чу кIалоагӀаташ яц.",
|
||||
"categorytree-no-subcategories": "кIалоагӀаташ яц",
|
||||
"categorytree-no-parent-categories": "ларда оагӀаташ яц",
|
||||
"categorytree-no-pages": "оагӀонаш а яц кIалоагӀаташ а яц"
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 P",
|
||||
"categorytree-num-empty": "vakua",
|
||||
"categorytree-load": "kargar",
|
||||
"categorytree-nothing-found": "nulo trovita",
|
||||
"categorytree-no-subcategories": "nula subkategorii",
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"राम प्रसाद जोशी"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "घेओ पारिने",
|
||||
"categorytree-member-counts": "ला {{PLURAL:$1|1 श्रेणी लिजे|$1 श्रेणीहरू लिज्य}}, {{PLURAL:$2|1 पाल लिजे|$2 पालहरू लिज्या}}, तथा {{PLURAL:$3|1 फाइल लिजे|$3 फाइलहरू लिज्य}}",
|
||||
"categorytree-num-categories": "$1 C (श्रे)",
|
||||
"categorytree-num-pages": "$1 P (पा)",
|
||||
"categorytree-num-files": "$1 C (श्रे)"
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Rul1902"
|
||||
]
|
||||
},
|
||||
"categorytree": "ကၞါင့်ထုင်း",
|
||||
"categorytree-portlet": "ကၞါင့်လ်ုဖး",
|
||||
"categorytree-category": "ကၞါင့်:",
|
||||
"categorytree-go": "မ်ုၮဲဆ်ုထုင်း",
|
||||
"categorytree-parents": "မေဝ်ႋဖါလ်ုဖး",
|
||||
"categorytree-mode-label": "မုဂ်:",
|
||||
"categorytree-mode-categories": "ကၞါင့်လ်ုဖးလှ်",
|
||||
"categorytree-mode-pages": "ဖိုင်ႋလ်ုမွာဲၜး လိက်မေံၜၠာ်လုက်ဆိင့်",
|
||||
"categorytree-mode-all": "လိက်မေံၜၠာ်လုက်ဆိင့်",
|
||||
"categorytree-collapse": "မ်ုပေဝ်ႋက္ဍာ",
|
||||
"categorytree-expand": "လဝ်လဲာ",
|
||||
"categorytree-member-counts": "{{PLURAL:$1|အ်ုဆုဂ်ကါင်ဖါ ၁ ၮါင်း|$1 အ်ုဆုဂ်ကါင်ဖါလ်ုဖး}}၊ {{PLURAL:$2|လိက်မေံသး ၁ ၮါင်း| လိက်မေံသး $2 ၮါင်း}}၊ လ်ု {{PLURAL:$3|ဖိုင်ႋ ၁ ၮါင်း| ဖိုင်ႋ $3 ၮါင်း }} အွးလင်ထဆေဝ်ႋ",
|
||||
"categorytree-num-categories": "$1 ကဏ္ဍ",
|
||||
"categorytree-num-pages": "$1 လိက်မေံသး",
|
||||
"categorytree-num-files": "$1 ဖိုင်",
|
||||
"categorytree-num-empty": "ပၠဝ်ပြေ",
|
||||
"categorytree-load": "ဆောဝ်ႋ",
|
||||
"categorytree-loading": "ဆ်ုကျုဂ်ထုင်းထာင်",
|
||||
"categorytree-nothing-found": "ဍးၮင်ႋမိင်ၜး",
|
||||
"categorytree-no-subcategories": "ကၞါင့်ကါင်ဖါလ်ုအှ်ၜး",
|
||||
"categorytree-no-parent-categories": "မေဝ်ႋဖါကၞါင့်လ်ုအှ်ၜး",
|
||||
"categorytree-no-pages": "လိက်မေံၜၠာ်လ်ု ကၞါင့်ကါင်ဖါလ်ုဖးသယ် လ်ုအှ်ၮင်ႋမိင်ၜး",
|
||||
"categorytree-not-found": "ကၞါင့် <i>$1</i> လ်ုဍးၜး"
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Purodha"
|
||||
"Purodha",
|
||||
"Als-Holder"
|
||||
]
|
||||
},
|
||||
"categorytree": "Saachjroppe als Boum",
|
||||
|
@ -18,7 +19,7 @@
|
|||
"categorytree-mode-all": "alles: nomahl Sigge, Saachjroppe, un Mehdije",
|
||||
"categorytree-collapse": "zosammefallde",
|
||||
"categorytree-expand": "opfallde",
|
||||
"categorytree-empty-bullet": "►<!-- https://phabricator.wikimedia.org/T141238 -->",
|
||||
"categorytree-empty-bullet": "►",
|
||||
"categorytree-member-counts": "do dren {{PLURAL:$1|{{PLURAL:$4|sin|es|es}} ein Ungerjrupp|sin $1 Ungerjruppe|es kein Ungerjrupp}}, {{PLURAL:$2|ein Sigg|$2 Sigge|kein Sigg}}, un {{PLURAL:$3|ein Datei|$3 Dateie|kein Dateie}}, zosamme {{PLURAL:$4|ein Saach|$4 Saache|och nix}}",
|
||||
"categorytree-num-categories": "$1 J",
|
||||
"categorytree-num-pages": "$1 S",
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
"categorytree-mode-all": "hemû rûpel",
|
||||
"categorytree-collapse": "bigre",
|
||||
"categorytree-expand": "veke",
|
||||
"categorytree-member-counts": "{{PLURAL:$1|1 binkategorî|$1 binkategoriyan}}, {{PLURAL:$2|1 rûpek|$2 rûpelan}} û {{PLURAL:$3|1 dosye|$3 dosyeyan}} dihewîne.",
|
||||
"categorytree-num-categories": "$1 K",
|
||||
"categorytree-num-pages": "$1 R",
|
||||
"categorytree-num-files": "$1 D",
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Peter57770",
|
||||
"R12ntech"
|
||||
]
|
||||
},
|
||||
"categorytree-category": "Očháže:",
|
||||
"categorytree-expand": "Yutȟáŋka yo/ye",
|
||||
"categorytree-member-counts": "{{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, na {{PLURAL:$3|1 file|$3 files}} yukȟé",
|
||||
"categorytree-num-categories": "$1 O",
|
||||
"categorytree-num-pages": "$1 Oy",
|
||||
"categorytree-num-files": "$1 O"
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Asenoner"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "slergia",
|
||||
"categorytree-member-counts": "À dedit {{PLURAL:$1|1 subcategoria|$1 subcategories}}, {{PLURAL:$2|1 plata|$2 plates}}, y {{PLURAL:$3|1 documënt|$3 documënc}}",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 F"
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Awangba Mangang"
|
||||
]
|
||||
},
|
||||
"categorytree-portlet": "ꯃꯆꯥꯈꯥꯏꯕꯁꯤꯡ",
|
||||
"categorytree-category": "ꯃꯆꯥꯈꯥꯏꯕ:",
|
||||
"categorytree-mode-all": "ꯂꯃꯥꯏꯁꯤꯡ ꯂꯣꯏꯅꯥ",
|
||||
"categorytree-collapse": "ꯁꯨꯞꯆꯤꯟꯕ",
|
||||
"categorytree-expand": "ꯄꯥꯛꯊꯣꯛꯄꯥ",
|
||||
"categorytree-member-counts": "Contains {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, and {{PLURAL:$3|1 file|$3 files}}",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 F",
|
||||
"categorytree-num-empty": "ꯌꯥꯎꯗꯕ",
|
||||
"categorytree-load": "ꯆꯤꯡꯕ/ꯎꯨꯡꯂꯤꯕ",
|
||||
"categorytree-loading": "ꯆꯤꯡꯂꯤ/ꯎꯪꯂꯤ",
|
||||
"categorytree-nothing-found": "ꯀꯔꯤꯝꯇꯥ ꯄꯪꯗꯦ",
|
||||
"categorytree-no-subcategories": "ꯄꯤꯛꯊꯕ ꯃꯆꯥꯈꯥꯏꯕꯁꯤꯡ ꯂꯩꯇꯩ"
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Htawmonzel",
|
||||
"Aue Nai"
|
||||
]
|
||||
},
|
||||
"categorytree": "တၞဆု ကဏ္ဍ",
|
||||
"categorytree-portlet": "ကဏ္ဍဂမၠိုင်",
|
||||
"categorytree-legend": "ထ္ၜး ကဏ္ဍမတၞံဆု",
|
||||
"categorytree-category": "ကဏ္ဍ:",
|
||||
"categorytree-go": "ထ္ၜးတၞံဆု",
|
||||
"categorytree-parents": "မိမ",
|
||||
"categorytree-mode-label": "အရီု:",
|
||||
"categorytree-mode-categories": "ကဏ္ဍဂမၠိုၚ်ဟေၚ်",
|
||||
"categorytree-mode-all": "မုက်လိက် သီုဖအိုတ်",
|
||||
"categorytree-collapse": "ဒေါမ်",
|
||||
"categorytree-expand": "သၠဲ",
|
||||
"categorytree-member-counts": "အရာမပါလုပ်ဂမၠိုင် {{PLURAL:$1|1 ကဏ္ဍလစှ်ေ|$1 ကဏ္ဍလစှ်ေဂမၠိုင်}}, {{PLURAL:$2|1 မုက်လိက်|$2 မုက်လိက်ဂမၠိုင်}}, ကေုာံ {{PLURAL:$3|1 ဝှာင်|$3 ဝှာင်ဂမၠိုင်}}",
|
||||
"categorytree-num-categories": "$1 ကဏ္ဍ",
|
||||
"categorytree-num-pages": "$1 မုက်လိက်",
|
||||
"categorytree-num-files": "$1 ဝှာင်",
|
||||
"categorytree-num-empty": "မုဟွံမွဲ",
|
||||
"categorytree-load": "ပတိုန်",
|
||||
"categorytree-loading": "ပတိုန်ဒၟံၚ်...",
|
||||
"categorytree-nothing-found": "မုမွဲမှဟွံဆဵု",
|
||||
"categorytree-no-subcategories": "ကဏ္ဍလစှ်ေဂမၠိုင် ဟွံမွဲ",
|
||||
"categorytree-no-parent-categories": "ကဏ္ဍမိဂမၠိုၚ်ဟွံသေၚ်",
|
||||
"categorytree-not-found": "ကဏ္ဍ <i>$1</i> ဟွံဆဵု"
|
||||
}
|
|
@ -4,8 +4,9 @@
|
|||
"Jawadywn"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "selék",
|
||||
"categorytree-expand": "jéjérke",
|
||||
"categorytree-member-counts": "punyo {{PLURAL:$1|$1 sub-bangso}}, {{PLURAL:$2|$2 karangan}}, samo {{PLURAL:$3|$3 berkas}}",
|
||||
"categorytree-num-categories": "$1 B",
|
||||
"categorytree-num-pages": "$1 L",
|
||||
"categorytree-num-pages": "$1 K",
|
||||
"categorytree-num-files": "$1 B"
|
||||
}
|
||||
|
|
|
@ -2,14 +2,28 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Ninjastrikers",
|
||||
"9.sinistra"
|
||||
"9.sinistra",
|
||||
"Dr Lotus Black"
|
||||
]
|
||||
},
|
||||
"categorytree": "ကဏ္ဍ ဖွဲ့စည်းပုံ",
|
||||
"categorytree-portlet": "ကဏ္ဍများ",
|
||||
"categorytree-legend": "ကဏ္ဍ ဖွဲ့စည်းပုံကို ပြရန်",
|
||||
"categorytree-category": "ကဏ္ဍ:",
|
||||
"categorytree-mode-categories": "ကဏ္ဍများသာ",
|
||||
"categorytree-mode-pages": "ဖိုင်များကလွဲ၍ စာမျက်နှာများ",
|
||||
"categorytree-mode-all": "စာမျက်နှာအားလုံး",
|
||||
"categorytree-collapse": "ချုံ့ရန်",
|
||||
"categorytree-expand": "ချဲ့ကား",
|
||||
"categorytree-member-counts": "{{PLURAL:$1|ကဏ္ဍခွဲ ၁ ခု|$1 ကဏ္ဍခွဲများ}}၊ {{PLURAL:$2|စာမျက်နှာ ၁ ခု| စာမျက်နှာ $2 ခု}}၊ နှင့် {{PLURAL:$3|ဖိုင် ၁ ခု| ဖိုင် $3 ခု }} ပါဝင်သည်",
|
||||
"categorytree-num-categories": "$1 ကဏ္ဍ",
|
||||
"categorytree-num-pages": "$1 စာမျက်နှာ",
|
||||
"categorytree-num-files": "$1 ဖိုင်",
|
||||
"categorytree-num-empty": "ဘာမှမရှိ"
|
||||
"categorytree-num-empty": "ဘာမှမရှိ",
|
||||
"categorytree-loading": "ဝန်ဆွဲတင်နေသည်...",
|
||||
"categorytree-nothing-found": "ဘာတစ်ခုမှ မတွေ့ပါ",
|
||||
"categorytree-no-subcategories": "ကဏ္ဍခွဲများ မရှိပါ",
|
||||
"categorytree-no-parent-categories": "မိခင်ကဏ္ဍများ မတွေ့ပါ",
|
||||
"categorytree-not-found": "ကဏ္ဍ <i>$1</i> မတွေ့ပါ",
|
||||
"categorytree-retry": "ခေတ္တခဏစောင့်ဆိုင်းပြီး ထပ်မံကြိုးစားကြည့်ပါ။"
|
||||
}
|
||||
|
|
|
@ -11,17 +11,21 @@
|
|||
"categorytree-portlet": "Neneuhcayomeh",
|
||||
"categorytree-legend": "Monexti in Neneuhcayocuammayotl",
|
||||
"categorytree-desc": "Iciuhca mopanoltiz ipan in [[Special:CategoryTree|Neneuhcayocuammayotl]]",
|
||||
"categorytree-header": "Xikîkuilo sè tlaìxmatkàtlàlilòtòkâtli, ìka tikỉtílìs in ìtlamàmàyòtekpànalpialòl.\nXikmauhtie, molwi yankuik JavaScript tekitìliskàyòtl tètech moneki, ìxmatkàyö kèn AJAX.\nIntlà molwi yi wêkàuhkáyòtl in monetzànìltzòwîkàuh, nòso tiksewîtok in JavaScript, awel tlen monèxtis.",
|
||||
"categorytree-header": "Xiquihcuilo ce neneuhcayotocaitl ica tiquitiliz in ìtlamamayotecpanalpialol.\nXicmauhtie, molhui yancuic JavaScript tequitilizcayotl tetech monequi, ixmatkayo quen AJAX.\nIntla molhui yi huehcauhcayotl in monetzanilohuicauh, nozo ticcehuitoc in JavaScript, ahuel tlen monextiz.",
|
||||
"categorytree-category": "Neneuhcayotl:",
|
||||
"categorytree-go": "Monextiz cuammayotl",
|
||||
"categorytree-parents": "Achcauhcaneneuhcayotl",
|
||||
"categorytree-mode-label": "Quenamihcan",
|
||||
"categorytree-mode-categories": "Zan neneuhcayomeh monextizqueh",
|
||||
"categorytree-mode-pages": "zan tlahcuilolamameh ahmo ixiptin",
|
||||
"categorytree-mode-all": "Nochtin in tlahcuilolamameh",
|
||||
"categorytree-collapse": "motepitonoz",
|
||||
"categorytree-expand": "mohueyiyaliz",
|
||||
"categorytree-member-counts": "quipiya {{PLURAL:$1|ce tlani-neneuhcayotl|$1 tlani-neneuhcayomeh}}, {{PLURAL:$2|tlahcuilolamatl|$2 tlahcuilolamameh}}, ihuan {{PLURAL:$3|ce tlapiyaliztecpanaliztli|$3 tlapiyaliztecpanaliztin}}",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 Ihcu",
|
||||
"categorytree-num-empty": "Cacti",
|
||||
"categorytree-load": "motemohuiz",
|
||||
"categorytree-loading": "hualtemohticah...",
|
||||
"categorytree-nothing-found": "ahmo tlen omahcic",
|
||||
|
@ -30,5 +34,10 @@
|
|||
"categorytree-no-pages": "ahtle oncateh tlahcuilolamameh nozo tlani-neneuhcayomeh",
|
||||
"categorytree-not-found": "Neneuhcayotl <i>$1</i> ahmo omahxilih",
|
||||
"categorytree-error": "Ahhuel temo in tlamatilicehualli",
|
||||
"categorytree-retry": "Timitztlatlauhtiah, ximochiya chihton niman occepa xicyehyeco."
|
||||
"categorytree-retry": "Timitztlatlauhtiah, ximochiya chihton niman occepa xicyehyeco.",
|
||||
"apihelp-categorytree-description": "Tlahtic inoncuahquizaliz itech ixeliuhca CategoryTree.",
|
||||
"apihelp-categorytree-summary": "Tlahtic inoncuahquizaliz itech ixeliuhca CategoryTree.",
|
||||
"apihelp-categorytree-param-category": "Itoca ipan tocatlacauhtli ihtic neneuhcayotl; in tepiton tlamantli, intla motenehua, ahmo motequitiz.",
|
||||
"apihelp-categorytree-param-options": "In pehpenaliztli itlocpa quichihuani CategoryTree iuhqui tlamantli itlocpa JSON. In pehpenaliztli <var>depth</var> zan icel quicui in machiyotl <kbd>1</kbd>.",
|
||||
"apierror-categorytree-invalidjson": "In pehpenaliztli monequi ce yectli machiyotl JSON."
|
||||
}
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Chelin",
|
||||
"C.R."
|
||||
"C.R.",
|
||||
"Ruthven"
|
||||
]
|
||||
},
|
||||
"categorytree": "Arvero d' 'e categurìe",
|
||||
|
@ -16,7 +17,7 @@
|
|||
"categorytree-mode-label": "Modalità:",
|
||||
"categorytree-mode-categories": "mostra solo 'e categurìe",
|
||||
"categorytree-mode-pages": "tutte 'e paggene accettuanno l'immaggene",
|
||||
"categorytree-mode-all": "Tutte 'e paggene",
|
||||
"categorytree-mode-all": "Tutte 'e ppaggene",
|
||||
"categorytree-collapse": "annascunne",
|
||||
"categorytree-expand": "fa vede",
|
||||
"categorytree-member-counts": "Cuntene {{PLURAL:$1|1 sottocategurìa|$1 sottocategurìe}}, {{PLURAL:$2|1 paggena|$2 paggene}} e {{PLURAL:$3|1 file|$3 file}}",
|
||||
|
@ -34,6 +35,8 @@
|
|||
"categorytree-error": "Probblema c' 'o caricamento d' 'e date.",
|
||||
"categorytree-retry": "Aspetta nu mumento e prova n'ata vota.",
|
||||
"apihelp-categorytree-description": "Modulo nterno pe' ne ffà n'estensione CategoryTree",
|
||||
"apihelp-categorytree-summary": "Modulo nterno pe' ne ffà n'estensione CategoryTree",
|
||||
"apihelp-categorytree-param-category": "Titolo dint' 'o namespace categurìa, 'o prefisso sarrà gnurato si dato.",
|
||||
"apihelp-categorytree-param-options": "Opziune p' 'o costruttore comm'a n'uggetto JSON.\nL'opziona <var>depth</var> è determinata a <kbd>1</kbd>."
|
||||
"apihelp-categorytree-param-options": "Opziune p' 'o costruttore comm'a n'uggetto JSON.\nL'opziona <var>depth</var> è determinata a <kbd>1</kbd>.",
|
||||
"apierror-categorytree-invalidjson": "L'opziune hann'a essere valide pe' n'oggetto JSON."
|
||||
}
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
"Event",
|
||||
"SuperPotato",
|
||||
"Jon Harald Søby",
|
||||
"Kingu"
|
||||
"Kingu",
|
||||
"Jeblad"
|
||||
]
|
||||
},
|
||||
"categorytree": "Kategoritre",
|
||||
|
@ -22,7 +23,7 @@
|
|||
"categorytree-mode-all": "alle sider",
|
||||
"categorytree-collapse": "skjul",
|
||||
"categorytree-expand": "utvid",
|
||||
"categorytree-member-counts": "Inneholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}} og {{PLURAL:$3|én fil|$3 filer}}",
|
||||
"categorytree-member-counts": "Inneholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}}, og {{PLURAL:$3|én fil|$3 filer}}",
|
||||
"categorytree-num-categories": "$1 K",
|
||||
"categorytree-num-pages": "$1 S",
|
||||
"categorytree-num-files": "$1 F",
|
||||
|
|
|
@ -1,10 +1,17 @@
|
|||
{
|
||||
"@metadata": [],
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Lam-ang"
|
||||
]
|
||||
},
|
||||
"categorytree-mode-pages": "Saray bolobolong ya aga kaibay picture",
|
||||
"categorytree-mode-all": "Amin ya bolobolong",
|
||||
"categorytree-collapse": "isara",
|
||||
"categorytree-expand": "lukasan",
|
||||
"categorytree-num-categories": "$1 K",
|
||||
"categorytree-num-pages": "$1 B",
|
||||
"categorytree-load": "I-lugan",
|
||||
"categorytree-loading": "ilulugan…",
|
||||
"categorytree-nothing-found": "anggapoy naanap",
|
||||
"categorytree-no-pages": "Anggapoy bolong odino subcategory"
|
||||
}
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
"Matma Rex",
|
||||
"Sp5uhe",
|
||||
"Chrumps",
|
||||
"Woytecr"
|
||||
"Woytecr",
|
||||
"Railfail536"
|
||||
]
|
||||
},
|
||||
"categorytree": "Drzewo kategorii",
|
||||
|
@ -38,6 +39,7 @@
|
|||
"categorytree-error": "Problem z ładowaniem danych.",
|
||||
"categorytree-retry": "Poczekaj chwilę i spróbuj ponownie – kliknij ten napis.",
|
||||
"apihelp-categorytree-description": "Wewnętrzny moduł rozszerzenia CategoryTree.",
|
||||
"apihelp-categorytree-summary": "Wewnętrzny moduł rozszerzenia CategoryTree.",
|
||||
"apihelp-categorytree-param-category": "Tytuł w przestrzeni nazw kategorii, prefiks będzie ignorowany jeżeli podany.",
|
||||
"apihelp-categorytree-param-options": "Opcje dla konstruktora CategoryTree w postaci obiektu JSON. Opcja <var>depth</var> domyślnie wynosi <kbd>1</kbd>.",
|
||||
"apierror-categorytree-invalidjson": "Opcje powinny być prawidłowymi obiektami JSON."
|
||||
|
|
|
@ -37,8 +37,8 @@
|
|||
"categorytree-collapse": "Tooltip for the \"collapse\" button.\n{{Identical|Collapse}}",
|
||||
"categorytree-expand": "Tooltip for the \"expand\" button.\n{{Identical|Expand}}",
|
||||
"categorytree-collapse-bullet": "{{notranslate}}",
|
||||
"categorytree-expand-bullet": "For right-to-left scripts, set this message to the single character ◄ . Otherwise, do not translate this message.\n{{optional}}",
|
||||
"categorytree-empty-bullet": "Prefix used before category names in category pages when the number of subcategories (or something) is 0, to indicate that there is no sub-tree of items to expand.",
|
||||
"categorytree-expand-bullet": "For right-to-left scripts, set this message to the single character ◄ . Otherwise, do not translate this message. Does not support wiki-syntax, html or entity references. \n{{optional}}",
|
||||
"categorytree-empty-bullet": "Prefix used before category names in category pages when the number of subcategories (or something) is 0, to indicate that there is no sub-tree of items to expand. Does not support wiki-syntax, html or entity references.",
|
||||
"categorytree-page-bullet": "{{notranslate}}",
|
||||
"categorytree-member-counts": "Tooltip showing a detailed summary of subcategory member counts. Parameters:\n* $1 - number of subcategories\n* $2 - number of pages (without subcategories and files)\n* $3 - number of files\n* $4 - (Unused) total number of members\n* $5 - (Unused) members to be shown in the tree, depending on mode\nUse with <nowiki>{{PLURAL}}</nowiki>",
|
||||
"categorytree-member-num": "{{notranslate}}\nHowever, if needed, you can localise the parentheses.\n\n(From https://www.mediawiki.org/wiki/Extension:CategoryTree#categorytree-member-num):\nBy default, when listing subcategories on a category page, each subcategory is followed by an integer indicating how many subcategories lie beneath it:\n<pre>\nMy category name (5)\n</pre>\nYou can change this behavior by overriding this system message. Parameters:\n* $1 - (Unused) number of subcategories\n* $2 - (Unused) number of articles (not including category pages or file pages)\n* $3 - (Unused) number of uploaded files\n* $4 - (Unused) total number of member pages, including category pages and file pages\n* $5 - (Varies depending on CategoryTree mode....Can someone describe it?)\n\nTip: Use the ParserFunctions extension (https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions) to provide if/then/else logic to display different parts conditionally. For example:\n<pre>\n{{#ifeq:$1|0||$1 categories}}\n</pre>",
|
||||
|
|
|
@ -4,5 +4,6 @@
|
|||
"Michaelobregon"
|
||||
]
|
||||
},
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P"
|
||||
}
|
||||
|
|
|
@ -3,27 +3,33 @@
|
|||
"authors": [
|
||||
"Albinus",
|
||||
"Manik Soren",
|
||||
"Ramjit Tudu"
|
||||
"Ramjit Tudu",
|
||||
"Fagunkoyel Hansdah",
|
||||
"Amire80"
|
||||
]
|
||||
},
|
||||
"categorytree": "ᱫᱟᱨᱮ ᱛᱷᱚᱠ",
|
||||
"categorytree-portlet": "ᱛᱷᱚᱠ ᱠᱚ",
|
||||
"categorytree-legend": "ᱥᱚᱫᱚᱨᱢᱮ ᱫᱟᱨᱮ ᱛᱷᱚᱠ",
|
||||
"categorytree-category": "ᱛᱷᱚᱠ:",
|
||||
"categorytree-go": "Dare uduḱme",
|
||||
"categorytree-parents": "Gogo baba",
|
||||
"categorytree-mode-label": "ᱰᱷᱚᱝ",
|
||||
"categorytree-go": "ᱫᱟᱨᱮ ᱩᱫᱩᱜᱽᱢᱮ",
|
||||
"categorytree-parents": "ᱜᱚᱜᱚ ᱵᱟᱵᱟ",
|
||||
"categorytree-mode-label": "ᱰᱷᱚᱝ:",
|
||||
"categorytree-mode-categories": "ᱛᱷᱚᱠ ᱠᱚ ᱥᱩᱢᱩᱝ",
|
||||
"categorytree-mode-all": "Sanam sakamko",
|
||||
"categorytree-collapse": "Murchạo caba",
|
||||
"categorytree-mode-pages": "ᱵᱮᱜᱚᱨ ᱨᱮᱫ ᱥᱟᱦᱴᱟᱠᱚ",
|
||||
"categorytree-mode-all": "ᱡᱚᱛᱚ ᱥᱟᱦᱴᱟᱠᱳ",
|
||||
"categorytree-collapse": "ᱢᱩᱨᱪᱷᱟᱹᱣ ᱪᱟᱵᱟ",
|
||||
"categorytree-expand": "ᱯᱷᱟᱭᱞᱟᱣ",
|
||||
"categorytree-member-counts": "Contains {{PLURAL:$1|1 ᱥᱟᱵ ᱠᱮᱴᱟᱜᱳᱨᱤ|$1 ᱥᱟᱵ ᱠᱮᱴᱟᱜᱳᱨᱤᱥ}}, {{PLURAL:$2|1 ᱥᱟᱦᱴᱟ|$2 ᱥᱟᱦᱴᱟᱠᱩ}}, and {{PLURAL:$3|1 ᱯᱷᱟᱭᱤᱞ|$3 ᱯᱷᱟᱭᱤᱞᱥ}}",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 ᱮᱯᱷ",
|
||||
"categorytree-num-empty": "Khạligea",
|
||||
"categorytree-load": "Rakaṕ",
|
||||
"categorytree-loading": "Rakaṕkana",
|
||||
"categorytree-nothing-found": "Cet́ hõ baṅ ńamlena",
|
||||
"categorytree-num-empty": "ᱠᱷᱟᱹᱞᱤᱜᱮᱭᱟ",
|
||||
"categorytree-load": "ᱞᱟᱫᱮ",
|
||||
"categorytree-loading": "ᱞᱟᱫᱮᱜᱠᱟᱱᱟ...",
|
||||
"categorytree-nothing-found": "ᱪᱮᱫ ᱦᱚ ᱵᱟᱝ ᱧᱟᱢᱞᱮᱱᱟ",
|
||||
"categorytree-no-subcategories": "ᱡᱚᱜᱚᱼᱛᱷᱚᱠ ᱠᱚ ᱵᱟᱹᱱᱩᱜᱼᱟ",
|
||||
"categorytree-no-parent-categories": "ᱢᱩᱬ ᱛᱷᱚᱠ ᱵᱟᱹᱱᱩᱜᱼᱟ",
|
||||
"categorytree-no-pages": "ᱥᱟᱦᱴᱟᱠᱚ ᱟᱨᱵᱟᱝ ᱡᱚᱜᱚᱼᱛᱷᱚᱠ ᱠᱚ ᱵᱟᱹᱱᱩᱜᱼᱟ",
|
||||
"categorytree-not-found": "ᱛᱷᱚᱠ <i>$1</i> ᱵᱟᱭ ᱧᱟᱢᱞᱮᱱᱟ"
|
||||
}
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Marzedu"
|
||||
"Marzedu",
|
||||
"L2212"
|
||||
]
|
||||
},
|
||||
"categorytree-portlet": "Categorias",
|
||||
"categorytree-category": "Categoria:",
|
||||
"categorytree-mode-all": "totu is pàginas"
|
||||
"categorytree-mode-all": "totu is pàginas",
|
||||
"categorytree-expand": "ismànnia",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 F"
|
||||
}
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Sindhu",
|
||||
"Mehtab ahmed"
|
||||
"Mehtab ahmed",
|
||||
"Tweety"
|
||||
]
|
||||
},
|
||||
"categorytree": "زمرا شجرو",
|
||||
"categorytree-mode-all": "سڀ صفحا",
|
||||
"categorytree-expand": "ڦھلايو",
|
||||
"categorytree-member-counts": "مشتمل آھي {{PLURAL:$1|ذيلي زمرو|$1 ذيلي زمرا}}، {{PLURAL:$2|صفحو|$2 صفحا}}، ۽ {{PLURAL:$3|هڪ فائيل| $3 فائيلَ}}",
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
"Amara-Amaziɣ"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "ⵙⵙⵉⵎⵖⵓⵔ",
|
||||
"categorytree-num-categories": "$1 ⴳⵢ",
|
||||
"categorytree-num-pages": "$1 ⵙⵏ",
|
||||
"categorytree-num-files": "$1 ⴼ"
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
"Vikoula5"
|
||||
]
|
||||
},
|
||||
"categorytree-expand": "snefli",
|
||||
"categorytree-member-counts": "Yegber $1 {{PLURAL:$1|taggayt tasnawant|taggayin tisnawanin}}, $2 {{PLURAL:$2|aebter|isebtar}} akked $3 {{PLURAL:$3|ufaylu|ifayla}}",
|
||||
"categorytree-num-categories": "$1 C",
|
||||
"categorytree-num-pages": "$1 P"
|
||||
"categorytree-num-pages": "$1 P",
|
||||
"categorytree-num-files": "$1 F"
|
||||
}
|
||||
|
|
|
@ -4,27 +4,27 @@
|
|||
"Saraiki"
|
||||
]
|
||||
},
|
||||
"categorytree": "قسماں دا شجرہ",
|
||||
"categorytree-portlet": "قسماں، زمرے",
|
||||
"categorytree-legend": "قسماں دا شجرہ ݙکھاؤ",
|
||||
"categorytree-category": "قسم",
|
||||
"categorytree": "ونکیاں دا شجرہ",
|
||||
"categorytree-portlet": "ونکیاں",
|
||||
"categorytree-legend": "ونکیاں دا شجرہ ݙکھاؤ",
|
||||
"categorytree-category": "ونکی",
|
||||
"categorytree-go": "لین ݙکھاؤ",
|
||||
"categorytree-parents": "والدین",
|
||||
"categorytree-mode-label": "طور:",
|
||||
"categorytree-mode-categories": "صرف زمرہ جات",
|
||||
"categorytree-mode-categories": "صرف ونکیاں",
|
||||
"categorytree-mode-pages": "فائلاں دے علاوہ ورقے",
|
||||
"categorytree-mode-all": "سارے مقالے",
|
||||
"categorytree-collapse": "لکاؤ",
|
||||
"categorytree-expand": "ودھاؤ",
|
||||
"categorytree-member-counts": "ایندے وچ {{PLURAL:$1|1 ذیلی زمرہ|$1 ذیلی زمرہ جات}}، {{PLURAL:$2|1 ورقہ|$2 ورقے}} تے {{PLURAL:$3|1 فائل|$3 فائلیں}} موجود ہن/ہے۔",
|
||||
"categorytree-num-categories": "$1 ز",
|
||||
"categorytree-num-pages": "$1 پی",
|
||||
"categorytree-member-counts": "ایندے وچ {{PLURAL:$1|1 ذیلی ونکی|$1 ذیلی ونکیاں}}، {{PLURAL:$2|1 ورقہ|$2 ورقے}} تے {{PLURAL:$3|1 فائل|$3 فائلیں}} موجود ہن/ہے۔",
|
||||
"categorytree-num-categories": "$1 ونک",
|
||||
"categorytree-num-pages": "$1 ورق",
|
||||
"categorytree-num-files": "$1 ایف",
|
||||
"categorytree-num-empty": "خالی",
|
||||
"categorytree-load": "چڑھاؤ",
|
||||
"categorytree-loading": "لوڈ تھیدا پئے",
|
||||
"categorytree-nothing-found": "کجھ نی لبھیا",
|
||||
"categorytree-no-subcategories": "کوئی ذیلی زمرہ کائنی",
|
||||
"categorytree-no-subcategories": "کوئی ذیلی ونکی کائنی",
|
||||
"categorytree-no-parent-categories": "کوئی پیرنٹ کیٹیگریاں کائنی",
|
||||
"categorytree-no-pages": "کوئی ورقہ یا ذیلی زمرے کائنی",
|
||||
"categorytree-error": "ڈیٹا لوڈ کرݨ وچ رپھڑ۔"
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ghiutun"
|
||||
]
|
||||
},
|
||||
"categorytree-num-categories": "$1 Kat."
|
||||
}
|
|
@ -8,7 +8,8 @@
|
|||
"Slaven Kosanovic",
|
||||
"Михајло Анђелковић",
|
||||
"Сербијана",
|
||||
"BadDog"
|
||||
"BadDog",
|
||||
"Obsuser"
|
||||
]
|
||||
},
|
||||
"categorytree": "Стабло категорија",
|
||||
|
@ -23,9 +24,9 @@
|
|||
"categorytree-mode-categories": "само категорије",
|
||||
"categorytree-mode-pages": "странице изузевши датотеке",
|
||||
"categorytree-mode-all": "све странице",
|
||||
"categorytree-collapse": "скупи",
|
||||
"categorytree-expand": "прикажи",
|
||||
"categorytree-member-counts": "садржи {{PLURAL:$1|једну поткатегорију|$1 поткатегорије|$1 поткатегорија}}, {{PLURAL:$2|једну страницу|$2 странице|$2 страница}} и {{PLURAL:$3|једну датотеку|$3 датотеке|$3 датотека}}",
|
||||
"categorytree-collapse": "сакриј",
|
||||
"categorytree-expand": "проширите",
|
||||
"categorytree-member-counts": "Садржи {{PLURAL:$1|једну поткатегорију|$1 поткатегорије|$1 поткатегорија}}, {{PLURAL:$2|једну страницу|$2 странице|$2 страница}} и {{PLURAL:$3|једну датотеку|$3 датотеке|$3 датотека}}",
|
||||
"categorytree-num-categories": "$1 К",
|
||||
"categorytree-num-pages": "$1 С",
|
||||
"categorytree-num-files": "$1 Д",
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
"authors": [
|
||||
"Michaello",
|
||||
"Milicevic01",
|
||||
"Rancher"
|
||||
"Rancher",
|
||||
"Zoranzoki21"
|
||||
]
|
||||
},
|
||||
"categorytree": "Stablo kategorija",
|
||||
|
@ -19,8 +20,8 @@
|
|||
"categorytree-mode-pages": "stranice izuzevši datoteke",
|
||||
"categorytree-mode-all": "sve stranice",
|
||||
"categorytree-collapse": "sakrij",
|
||||
"categorytree-expand": "prikaži",
|
||||
"categorytree-member-counts": "sadrži {{PLURAL:$1|jednu potkategoriju|$1 potkategorije|$1 potkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}",
|
||||
"categorytree-expand": "proširite",
|
||||
"categorytree-member-counts": "Sadrži {{PLURAL:$1|jednu potkategoriju|$1 potkategorije|$1 potkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}",
|
||||
"categorytree-num-categories": "$1 K",
|
||||
"categorytree-num-pages": "$1 S",
|
||||
"categorytree-num-files": "$1 D",
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
{
|
||||
"@metadata": [],
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Mapoza2"
|
||||
]
|
||||
},
|
||||
"categorytree": "Lenane le Mekga",
|
||||
"categorytree-category": "Mokga:",
|
||||
"categorytree-go": "Mpontshe lenane",
|
||||
"categorytree-mode-categories": "mekga feela",
|
||||
"categorytree-mode-pages": "maqephe ntle le ditshwantsho",
|
||||
"categorytree-mode-all": "maqephe ohle",
|
||||
"categorytree-collapse": "Nyenyefatsa",
|
||||
"categorytree-expand": "Hodisa",
|
||||
"categorytree-load": "jara",
|
||||
|
|
|
@ -8,14 +8,15 @@
|
|||
"Runningfridgesrule",
|
||||
"Stultiwikia",
|
||||
"Vito Genovese",
|
||||
"Superyetkin"
|
||||
"Superyetkin",
|
||||
"Hedda"
|
||||
]
|
||||
},
|
||||
"categorytree": "Kategori hiyerarşisi",
|
||||
"categorytree-portlet": "Kategoriler",
|
||||
"categorytree-legend": "Kategori ağacını göster",
|
||||
"categorytree-desc": "[[Special:CategoryTree|Kategori yapısını]] dinamik olarak idare et",
|
||||
"categorytree-header": "Kategori ismini girip, içeriğini hiyerarşik şekilde görebilirsiniz. Bu özellik AJAX adıyla bilinen gelişmiş JavaScript ile çalışabilir. Eğer tarayıcınız eski ise ya da JavaScript kullanımı kapalı ise, çalışmaz.",
|
||||
"categorytree-header": "İçeriği bir ağaç yapısı olarak görmek için bir kategori adı girin. (JavaScript gerektirir.)",
|
||||
"categorytree-category": "Kategori",
|
||||
"categorytree-go": "Ağacı göster",
|
||||
"categorytree-parents": "Üst kategoriler",
|
||||
|
@ -38,5 +39,10 @@
|
|||
"categorytree-no-pages": "alt kategori veya madde yok.",
|
||||
"categorytree-not-found": "<i>\"$1\"</i> isimli kategori bulunamadı",
|
||||
"categorytree-error": "Bilgi yüklenmesi ile bir problem var.",
|
||||
"categorytree-retry": "Lütfen kısa süre için bekleyin, sonra bir kere daha deneyin."
|
||||
"categorytree-retry": "Lütfen kısa süre için bekleyin, sonra bir kere daha deneyin.",
|
||||
"apihelp-categorytree-description": "CategoryTree uzantısı için iç modül.",
|
||||
"apihelp-categorytree-summary": "CategoryTree uzantısı için iç modül.",
|
||||
"apihelp-categorytree-param-category": "Kategori ad alanındaki başlık, verilen varsa önek dikkate alınmaz.",
|
||||
"apihelp-categorytree-param-options": "JSON nesnesi olarak CategoryTree yapıcısı için seçenekler. <var>Derinlik</var> seçeneği varsayılan <kbd>1</kbd>",
|
||||
"apierror-categorytree-invalidjson": "Seçenekler bir JSON nesnesi için geçerli olmalıdır."
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"Don Alessandro"
|
||||
]
|
||||
},
|
||||
"categorytree": "Төркемнәр \"агачы\".",
|
||||
"categorytree": "Төркемнәр шәҗәрәсе",
|
||||
"categorytree-portlet": "Төркемнәр",
|
||||
"categorytree-legend": "Төркемнәрнең шәҗәрәсен ачарга",
|
||||
"categorytree-desc": "[[Special:CategoryTree|Төркемнәрнең асылы]]н аңлату өчен төзелгән AJAX-бит",
|
||||
|
@ -37,6 +37,7 @@
|
|||
"categorytree-error": "Хата",
|
||||
"categorytree-retry": "Зинһар бераз көтеп торыгыз һәм тагын бер кат йөкләүне башкарып карагыз.",
|
||||
"apihelp-categorytree-description": "CategoryTree кушымтасы өчен эчке модуль.",
|
||||
"apihelp-categorytree-summary": "CategoryTree кушымтасы өчен эчке модуль.",
|
||||
"apihelp-categorytree-param-category": "Төркемнәр мәйданы исемлеге, куелган очракта префикс кулланылмый.",
|
||||
"apihelp-categorytree-param-options": "JSON-җисемнәр сыман CategoryTree төзүчесе төрләре. <var>depth</var> (тирәнлек) параметры <kbd>1</kbd> итеп куелган.",
|
||||
"apierror-categorytree-invalidjson": "Юрамалар JSON-җисемнәре белән валид булырга тиеш."
|
||||
|
|
|
@ -32,11 +32,20 @@ class ApiCategoryTree extends ApiBase {
|
|||
}
|
||||
$options = get_object_vars( $options );
|
||||
}
|
||||
|
||||
$title = CategoryTree::makeTitle( $params['category'] );
|
||||
if ( !$title || $title->isExternal() ) {
|
||||
if ( is_callable( [ $this, 'dieWithError' ] ) ) {
|
||||
$this->dieWithError( [ 'apierror-invalidtitle', wfEscapeWikiText( $params['category'] ) ] );
|
||||
} else {
|
||||
$this->dieUsageMsg( [ 'invalidtitle', wfEscapeWikiText( $params['category'] ) ] );
|
||||
}
|
||||
}
|
||||
|
||||
$depth = isset( $options['depth'] ) ? (int)$options['depth'] : 1;
|
||||
|
||||
$ct = new CategoryTree( $options );
|
||||
$depth = CategoryTree::capDepth( $ct->getOption( 'mode' ), $depth );
|
||||
$title = CategoryTree::makeTitle( $params['category'] );
|
||||
$config = $this->getConfig();
|
||||
$ctConfig = ConfigFactory::getDefaultInstance()->makeConfig( 'categorytree' );
|
||||
$html = $this->getHTML( $ct, $title, $depth, $ctConfig );
|
||||
|
|
|
@ -381,7 +381,6 @@ class CategoryTree {
|
|||
}
|
||||
|
||||
$html .= Xml::closeElement( 'div' );
|
||||
$html .= "\n\t\t";
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
@ -474,7 +473,6 @@ class CategoryTree {
|
|||
}
|
||||
|
||||
$s = $this->renderNodeInfo( $t, $cat, $depth - 1 );
|
||||
$s .= "\n\t\t";
|
||||
|
||||
if ( $row->page_namespace == NS_CATEGORY ) {
|
||||
$categories .= $s;
|
||||
|
@ -517,7 +515,7 @@ class CategoryTree {
|
|||
foreach ( $res as $row ) {
|
||||
$t = Title::newFromRow( $row );
|
||||
|
||||
$label = htmlspecialchars( $t->getText() );
|
||||
$label = $t->getText();
|
||||
|
||||
$wikiLink = $special->getLocalURL( 'target=' . $t->getPartialURL() .
|
||||
'&' . $this->getOptionsAsUrlParameters() );
|
||||
|
@ -527,11 +525,8 @@ class CategoryTree {
|
|||
}
|
||||
|
||||
$s .= Xml::openElement( 'span', [ 'class' => 'CategoryTreeItem' ] );
|
||||
$s .= Xml::openElement( 'a', [ 'class' => 'CategoryTreeLabel', 'href' => $wikiLink ] )
|
||||
. $label . Xml::closeElement( 'a' );
|
||||
$s .= Xml::element( 'a', [ 'class' => 'CategoryTreeLabel', 'href' => $wikiLink ], $label );
|
||||
$s .= Xml::closeElement( 'span' );
|
||||
|
||||
$s .= "\n\t\t";
|
||||
}
|
||||
|
||||
return $s;
|
||||
|
@ -587,9 +582,9 @@ class CategoryTree {
|
|||
// configuration setting
|
||||
// patch contributed by Manuel Schneider <manuel.schneider@wikimedia.ch>, Bug 8011
|
||||
if ( $hideprefix ) {
|
||||
$label = htmlspecialchars( $title->getText() );
|
||||
$label = $title->getText();
|
||||
} else {
|
||||
$label = htmlspecialchars( $title->getPrefixedText() );
|
||||
$label = $title->getPrefixedText();
|
||||
}
|
||||
|
||||
$labelClass = 'CategoryTreeLabel ' . ' CategoryTreeLabelNs' . $ns;
|
||||
|
@ -634,7 +629,7 @@ class CategoryTree {
|
|||
}
|
||||
}
|
||||
if ( $count === 0 ) {
|
||||
$bullet = wfMessage( 'categorytree-empty-bullet' )->plain() . ' ';
|
||||
$bullet = wfMessage( 'categorytree-empty-bullet' )->escaped() . ' ';
|
||||
$attr['class'] = 'CategoryTreeEmptyBullet';
|
||||
} else {
|
||||
$linkattr = [];
|
||||
|
@ -644,10 +639,13 @@ class CategoryTree {
|
|||
|
||||
$tag = 'span';
|
||||
if ( $children == 0 ) {
|
||||
$txt = wfMessage( 'categorytree-expand-bullet' )->plain();
|
||||
// Use ->plain() and htmlspecialchars() to ensure
|
||||
// identical to what is done by JS, which does:
|
||||
// $link.text( mw.msg( 'categorytree-expand-bullet' ) )
|
||||
$txt = htmlspecialchars( wfMessage( 'categorytree-expand-bullet' )->plain() );
|
||||
$linkattr[ 'data-ct-state' ] = 'collapsed';
|
||||
} else {
|
||||
$txt = wfMessage( 'categorytree-collapse-bullet' )->plain();
|
||||
$txt = htmlspecialchars( wfMessage( 'categorytree-collapse-bullet' )->plain() );
|
||||
$linkattr[ 'data-ct-loaded' ] = true;
|
||||
$linkattr[ 'data-ct-state' ] = 'expanded';
|
||||
}
|
||||
|
@ -655,19 +653,17 @@ class CategoryTree {
|
|||
$bullet = Xml::openElement( $tag, $linkattr ) . $txt . Xml::closeElement( $tag ) . ' ';
|
||||
}
|
||||
} else {
|
||||
$bullet = wfMessage( 'categorytree-page-bullet' )->plain();
|
||||
$bullet = wfMessage( 'categorytree-page-bullet' )->escaped();
|
||||
}
|
||||
$s .= Xml::tags( 'span', $attr, $bullet ) . ' ';
|
||||
|
||||
$s .= Xml::openElement( 'a', [ 'class' => $labelClass, 'href' => $wikiLink ] )
|
||||
. $label . Xml::closeElement( 'a' );
|
||||
$s .= Xml::element( 'a', [ 'class' => $labelClass, 'href' => $wikiLink ], $label );
|
||||
|
||||
if ( $count !== false && $this->getOption( 'showcount' ) ) {
|
||||
$s .= self::createCountString( RequestContext::getMain(), $cat, $count );
|
||||
}
|
||||
|
||||
$s .= Xml::closeElement( 'div' );
|
||||
$s .= "\n\t\t";
|
||||
$s .= Xml::openElement(
|
||||
'div',
|
||||
[
|
||||
|
@ -681,13 +677,13 @@ class CategoryTree {
|
|||
if ( $children == '' ) {
|
||||
$s .= Xml::openElement( 'i', [ 'class' => 'CategoryTreeNotice' ] );
|
||||
if ( $mode == CategoryTreeMode::CATEGORIES ) {
|
||||
$s .= wfMessage( 'categorytree-no-subcategories' )->text();
|
||||
$s .= wfMessage( 'categorytree-no-subcategories' )->escaped();
|
||||
} elseif ( $mode == CategoryTreeMode::PAGES ) {
|
||||
$s .= wfMessage( 'categorytree-no-pages' )->text();
|
||||
$s .= wfMessage( 'categorytree-no-pages' )->escaped();
|
||||
} elseif ( $mode == CategoryTreeMode::PARENTS ) {
|
||||
$s .= wfMessage( 'categorytree-no-parent-categories' )->text();
|
||||
$s .= wfMessage( 'categorytree-no-parent-categories' )->escaped();
|
||||
} else {
|
||||
$s .= wfMessage( 'categorytree-nothing-found' )->text();
|
||||
$s .= wfMessage( 'categorytree-nothing-found' )->escaped();
|
||||
}
|
||||
$s .= Xml::closeElement( 'i' );
|
||||
} else {
|
||||
|
@ -698,8 +694,6 @@ class CategoryTree {
|
|||
$s .= Xml::closeElement( 'div' );
|
||||
$s .= Xml::closeElement( 'div' );
|
||||
|
||||
$s .= "\n\t\t";
|
||||
|
||||
return $s;
|
||||
}
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ class CategoryTreeHooks {
|
|||
* This loads CategoryTreeFunctions.php and calls CategoryTree::getTag()
|
||||
* @param string $cat
|
||||
* @param array $argv
|
||||
* @param Parser $parser
|
||||
* @param Parser|null $parser
|
||||
* @param bool $allowMissing
|
||||
* @return bool|string
|
||||
*/
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
|
||||
$link.data( 'ct-loaded', true );
|
||||
|
||||
$children.append(
|
||||
$children.empty().append(
|
||||
$( '<i class="CategoryTreeNotice"></i>' )
|
||||
.text( mw.msg( 'categorytree-loading' ) )
|
||||
);
|
||||
|
@ -141,7 +141,7 @@
|
|||
|
||||
// Element may not have a .CategoryTreeTag parent, fallback to defauls
|
||||
// Probably a CategoryPage (@todo: based on what?)
|
||||
ctTitle = $link.data( 'ct-title' );
|
||||
ctTitle = $link.attr( 'data-ct-title' );
|
||||
ctMode = $linkParentCTTag.data( 'ct-mode' );
|
||||
ctMode = typeof ctMode === 'number' ? ctMode : undefined;
|
||||
ctOptions = $linkParentCTTag.attr( 'data-ct-options' );
|
||||
|
@ -151,7 +151,7 @@
|
|||
|
||||
// Mode and options have defaults or fallbacks, title does not.
|
||||
// Don't make a request if there is no title.
|
||||
if ( typeof ctTitle !== 'string' ) {
|
||||
if ( !ctTitle ) {
|
||||
error();
|
||||
return;
|
||||
}
|
||||
|
@ -163,6 +163,8 @@
|
|||
uselang: mw.config.get( 'wgUserLanguage' ),
|
||||
formatversion: 2
|
||||
} ).done( function ( data ) {
|
||||
var $data;
|
||||
|
||||
data = data.categorytree.html;
|
||||
|
||||
if ( data === '' ) {
|
||||
|
@ -184,12 +186,13 @@
|
|||
data = mw.msg( 'categorytree-nothing-found' );
|
||||
}
|
||||
|
||||
data = $( '<i class="CategoryTreeNotice"></i>' ).text( data );
|
||||
$data = $( '<i class="CategoryTreeNotice"></i>' ).text( data );
|
||||
} else {
|
||||
$data = $( $.parseHTML( data ) );
|
||||
attachHandler( $data );
|
||||
}
|
||||
|
||||
$children.html( data );
|
||||
attachHandler( $children );
|
||||
|
||||
$children.empty().append( $data );
|
||||
} )
|
||||
.fail( error );
|
||||
};
|
||||
|
|
|
@ -3,7 +3,5 @@
|
|||
$cfg = require __DIR__ . '/../../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
||||
// SpecialPage->categoryTreeCategories
|
||||
$cfg['suppress_issue_types'][] = 'PhanUndeclaredProperty';
|
||||
// TitlePrefixSearch
|
||||
$cfg['suppress_issue_types'][] = 'PhanDeprecatedClass';
|
||||
|
||||
return $cfg;
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit b98e6a483c3840b52ffb79eda666496a48ae5dfc
|
||||
Subproject commit 27be3bc174bd036f4218bdac592c85d59819369c
|
|
@ -1 +1 @@
|
|||
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct).
|
||||
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct).
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
<?php
|
||||
|
||||
if ( function_exists( 'wfLoadExtension' ) ) {
|
||||
wfLoadExtension( 'Cite' );
|
||||
// Keep i18n globals so mergeMessageFileList.php doesn't break
|
||||
$wgMessagesDirs['Cite'] = __DIR__ . '/i18n';
|
||||
/* wfWarn(
|
||||
'Deprecated PHP entry point used for Cite extension. Please use wfLoadExtension instead, ' .
|
||||
'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
|
||||
); */
|
||||
return true;
|
||||
} else {
|
||||
die( 'This version of the Cite extension requires MediaWiki 1.25+' );
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"require-dev": {
|
||||
"jakub-onderka/php-parallel-lint": "1.0.0",
|
||||
"mediawiki/mediawiki-codesniffer": "18.0.0",
|
||||
"mediawiki/mediawiki-codesniffer": "22.0.0",
|
||||
"jakub-onderka/php-console-highlighter": "0.3.2",
|
||||
"mediawiki/minus-x": "0.3.1",
|
||||
"mediawiki/mediawiki-phan-config": "0.2.0"
|
||||
"mediawiki/mediawiki-phan-config": "0.3.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": [
|
||||
|
@ -18,6 +18,6 @@
|
|||
]
|
||||
},
|
||||
"extra": {
|
||||
"phan-taint-check-plugin": "1.1.0"
|
||||
"phan-taint-check-plugin": "1.5.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"name": "Cite",
|
||||
"version": "1.0.0",
|
||||
"author": [
|
||||
"Ævar Arnfjörð Bjarmason",
|
||||
"Andrew Garrett",
|
||||
|
@ -15,11 +16,13 @@
|
|||
"license-name": "GPL-2.0-or-later",
|
||||
"type": "parserhook",
|
||||
"requires": {
|
||||
"MediaWiki": ">= 1.30.0"
|
||||
"MediaWiki": ">= 1.32.0"
|
||||
},
|
||||
"MessagesDirs": {
|
||||
"cite": "i18n",
|
||||
"ve-cite": "modules/ve-cite/i18n"
|
||||
"Cite": [
|
||||
"i18n",
|
||||
"modules/ve-cite/i18n"
|
||||
]
|
||||
},
|
||||
"APIPropModules": {
|
||||
"references": {
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Anok kutai jang"
|
||||
]
|
||||
},
|
||||
"cite_error": "Salah waktu kutip: $1"
|
||||
}
|
|
@ -6,7 +6,7 @@
|
|||
"Fwolff"
|
||||
]
|
||||
},
|
||||
"cite-desc": "Maak <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> etikette beskikbaar vir sitasie.",
|
||||
"cite-desc": "Maak <code><nowiki><ref[ name=id]></nowiki></code> en <code><nowiki><references/></nowiki></code> etikette beskikbaar vir sitasie.",
|
||||
"cite_error": "Verwysingfout: $1",
|
||||
"cite_error_ref_numeric_key": "Ongeldige etiket <code><ref></code>;\ndie naam kan nie 'n eenvoudige heelgetal wees nie.\nGebruik 'n beskrywende titel",
|
||||
"cite_error_ref_no_key": "Ongeldige etiket <code><ref></code>;\n\"refs\" sonder inhoud moet 'n naam hê",
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"Tokoabibi"
|
||||
]
|
||||
},
|
||||
"cite-desc": "midama <nowiki><ref[ name=id]></nowiki> atu <nowiki><references/></nowiki> aazihen-paya, kapah pabacuen miazih tu tatenga’ay nasulitan",
|
||||
"cite-desc": "midama <code><nowiki><ref[ name=id]></nowiki></code> atu <code><nowiki><references/></nowiki></code> aazihen-paya, kapah pabacuen miazih tu tatenga’ay nasulitan",
|
||||
"cite_error": "nicaliwan mungangaw: $1",
|
||||
"cite_error_ref_numeric_key": "la’cus <code><ref></code> aazihen-paya, kya susin amama pisaungay asip-bacu, pisaungay taneng misapuelac lacul a satangahan",
|
||||
"cite_error_ref_no_key": "<code><ref></code> aazihen-paya angangan a kese mungangaw saca kalungangan caay kalucek.",
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Vickylin77s"
|
||||
]
|
||||
},
|
||||
"cite_error": "Moraraway ko picaliw:$1"
|
||||
}
|
|
@ -4,7 +4,7 @@
|
|||
"Juanpabl"
|
||||
]
|
||||
},
|
||||
"cite-desc": "Adibe as etiquetas <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> ta fer citas",
|
||||
"cite-desc": "Adibe as etiquetas <code><nowiki><ref[ name=id]></nowiki></code> y <code><nowiki><references/></nowiki></code> ta fer citas",
|
||||
"cite_error": "Error en a cita: $1",
|
||||
"cite_error_ref_numeric_key": "Etiqueta <code><ref></code> incorreuta; o nombre d'a etiqueta no puede estar un numero entero, faiga servir un títol descriptivo",
|
||||
"cite_error_ref_no_key": "Etiqueta <code><ref></code> incorreuta; as referencias sin de conteniu han de tener un nombre",
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue