aboutsummaryrefslogtreecommitdiffstats
path: root/includes/api/ApiQueryFilearchive.php
Commit message (Collapse)AuthorAgeFilesLines
* Namespace all remaining files in includes/filerepoJames D. Forrester2025-03-191-2/+2
| | | | | Bug: T353458 Change-Id: I35864ad9bd48701703c51367d62f8ebde963c52d
* api: Use type-declaration for string arg in ApiBase::__constructUmherirrender2024-10-171-7/+1
| | | | | | | Also for all sub-classes Remove simple doc-blocks without further information Change-Id: I981934efe32d44f52e5ab865a9b887be5bd0f41e
* Add namespace to includes/api classesJames D. Forrester2024-09-251-2/+9
| | | | | Bug: T353458 Change-Id: I3ea6b08c5018ba03ba45c5766e1f46e12f6b8597
* api: Migrate away from buildLike to expression builderAmir Sarabadani2023-11-081-3/+9
| | | | | | | | Also while we are here, migrate buildComparison() calls with one field only to expr() Bug: T210206 Change-Id: I2ac7adbe4fb26af3383a38106e9a36381148c828
* Namespace TitleValue under \MediaWiki\TitleJames D. Forrester2023-09-181-0/+1
| | | | | | | One of the big ones, so doing this alone. Bug: T166010 Change-Id: I4c901d5c32696d8334ec30cede7d9b6f3d8d645e
* Use real type hints for services etc. in api/ApiQuery*.phpBartosz Dziewoński2023-08-291-5/+2
| | | | | | | | | | | | | | | Mostly used find-and-replace: Find: /\*[\*\s]+@var (I?[A-Z](\w+)(?:Interface)?)[\s\*]+/\s*(private|protected|public) (\$[a-z]\w+;\n)((?=\s*/\*[\*\s]+@var (I?[A-Z](\w+)(?:Interface)?))\n|) Replace with: \3 \1 \4 Followed by some manual review to make sure I'm not changing too much, omitting some changes that looked too complicated and anything that caused test failures, and some whitespace fixes. Change-Id: Ie78be1c614985d7c2964156e454cc9266515dc18
* file: Check for old image existence in LocalFileDeleteBatchUmherirrender2023-08-241-6/+10
| | | | | | | | | | | | | | | | | | Some old files are lost and have oi_archive_name = '' in the database. In LocalFileDeleteBatch::removeNonexistentFiles a virtual url is created with the empty string at the end. That url points to a directory and not a file. The file backend response with a I/O error and the message backend-fail-internal is shown, there is no way to delete the whole file. Skip the lost files when collecting the hash as that results in ignore Preserve the empty archive_name on deletion/undeletion by distinct between NULL for current file and empty string for lost old files. Adjust api and special page a bit to not link broken file Bug: T244567 Change-Id: I40a0e80d4be5c5c76e7685ccf86bcb3aed3e114d
* Reorg: Namespace the Title classJames D. Forrester2023-03-021-0/+1
| | | | | | | | | | | | | | | | | | | This is moderately messy. Process was principally: * xargs rg --files-with-matches '^use Title;' | grep 'php$' | \ xargs -P 1 -n 1 sed -i -z 's/use Title;/use MediaWiki\\Title\\Title;/1' * rg --files-without-match 'MediaWiki\\Title\\Title;' . | grep 'php$' | \ xargs rg --files-with-matches 'Title\b' | \ xargs -P 1 -n 1 sed -i -z 's/\nuse /\nuse MediaWiki\\Title\\Title;\nuse /1' * composer fix Then manual fix-ups for a few files that don't have any use statements. Bug: T166010 Follows-Up: Ia5d8cb759dc3bc9e9bbe217d0fb109e2f8c4101a Change-Id: If8fc9d0d95fc1a114021e282a706fc3e7da3524b
* Split a base class out of CommentStoreAlexander Vorwerk2023-01-011-0/+1
| | | | | | | | | | so that extensions (i.e. CheckUser) can implement their own comment store without having a lot of code duplication basically the comment store version of I3a6486532f2ef36 Bug: T233004 Change-Id: Ib40f99e00a514d41776ce521baf113e46d37e9cd
* api: Validate timestamp in continue parameterUmherirrender2022-11-011-1/+1
| | | | | Bug: T321265 Change-Id: Ib46bc3e643938f56e0c58a3c5f5e093327e00964
* Deduplicate code for parsing API 'continue' parametersBartosz Dziewoński2022-09-291-9/+4
| | | | | | | | | | | | | | 30+ API modules had nearly identical code to split and validate the value of the 'continue' parameter. Introduce the ApiBase::parseContinueParamOrDie() method and use it to replace most usages of ApiBase::dieContinueUsageIf(). A few remain in modules with more complex continuation handling. Inline most single-use variables that remained after validation was moved into the new method. Change-Id: I66bd59ecd4ad16e2039e90f7d66cfa276e6c1c2a
* Use buildComparison() instead of raw SQL in more API modules (easy cases)Bartosz Dziewoński2022-09-291-9/+8
| | | | | | | | | | | | | | | | See ec79aa394312d62b598ad29601e2c80eaaf0dd19 about the new method. These changes all follow the same simple patterns. More complex cases are handled in I6231b6beae13474d4986929367a9adc6bb76b0db. This commit was created by running the following terrible Ruby script I devised: https://phabricator.wikimedia.org/P34833, then manually reviewing the results: checking that the output makes sense in general, that the affected variables are not used elsewhere in the file, and that no comparison conditions have been lost. A few incorrect changes were undone or corrected. Change-Id: I8ed363bd6b80a9481d44434a526f078cce20220f
* api: Replace numerous deprecated constantsReedy2022-06-061-10/+12
| | | | Change-Id: I34ffcb70efbfa257da8dab6e0790aa0d697caf5b
* filerepo: Duplicate code handling metadata of files to ArchivedFileAmir Sarabadani2022-04-201-1/+2
| | | | | | | | | | | | It has a lot of copy-paste (with possibly more to follow with introduction of maybeUpgradeRow()) but the ones that could have been taken out, were done in Idd258437d9f918. A proper fix would be to make ArchivedFile a subclass of LocalFile but that's for the future (and risky as it might break view protections) Bug: T298398 Change-Id: Id9b93bb937a2b4bcb119523482d375509cf7fc6f
* Introduce CommentFormatterTim Starling2021-09-281-4/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CommentParser: * Move comment formatting backend from Linker to a CommentParser service. Allow link existence and file existence to be batched. * Rename $local to $samePage since I think that is clearer. * Rename $title to $selfLinkTarget since it was unclear what the title was used for. * Rename the "autocomment" concept to "section link" in public interfaces, although the old term remains in CSS classes. * Keep unsafe HTML pass-through in separate "unsafe" methods, for easier static analysis and code review. CommentFormatter: * Add CommentFormatter and RowCommentFormatter services as a usable frontend for comment batches, and to replace the Linker static methods. * Provide fluent and parametric interfaces. Linker: * Remove Linker::makeCommentLink() without deprecation -- nothing calls it and it is obviously an internal helper. * Soft-deprecate Linker methods formatComment(), formatLinksInComment(), commentBlock() and revComment(). Caller migration: * CommentFormatter single: Linker, RollbackAction, ApiComparePages, ApiParse * CommentFormatter parametric batch: ImageHistoryPseudoPager * CommentFormatter fluent batch: ApiQueryFilearchive * RowCommentFormatter sequential: History feed, BlocklistPager, ProtectedPagesPager, ApiQueryProtectedTitles * RowCommentFormatter with index: ChangesFeed, ChangesList, ApiQueryDeletedrevs, ApiQueryLogEvents, ApiQueryRecentChanges * RevisionCommentBatch: HistoryPager, ContribsPager Bug: T285917 Change-Id: Ia3fd50a4a13138ba5003d884962da24746d562d0
* Use array_fill_keys() instead of array_flip() if that reflects the ↵Tim Starling2021-06-151-1/+1
| | | | | | | | | | | | | | | | | | developer's intention array_fill_keys() was introduced in PHP 5.2.0 and works like array_flip() except that it does only one thing (copying keys) instead of two things (copying keys and values). That makes it faster and more obvious. When array_flip() calls were paired, I left them as is, because that pattern is too cute. I couldn't kill something so cute. Sometimes it was hard to figure out whether the values in array_flip() result were used. That's the point of this change. If you use array_fill_keys(), the intention is obvious. Change-Id: If8d340a8bc816a15afec37e64f00106ae45e10ed
* Inject CommentStore service into api query modulesDannyS7122021-04-231-3/+15
| | | | | | | | | | | | | | - ApiQueryBlocks - ApiQueryDeletedrevs - ApiQueryFilearchive - ApiQueryLogEvents - ApiQueryProtectedTitles - ApiQueryRecentChanges - ApiQueryUserContribs - ApiQueryWatchlist Bug: T259960 Change-Id: Ib7ee815fcea3e72523124eb6a2eaf20ad9565cfe
* Use Authority and GroupPermissionLookup in Action APICindy Cicalese2021-02-231-10/+4
| | | | | | | | | | | | | | | | | | | Replaces calls directly to PermissionManager with calls to the Authority object available from Context or the GroupPermissionLookup service. This patch does not address use of PermissionManager for blocks. Deprecations: - ApiBase::checkUserRightsAny deprecated passing optional User parameter - ApiBase::checkTitleUserPermissions deprecated passing LinkTarget as first parameter, takes PageIdentity instead Bug: T271462 Bug: T271854 Change-Id: I5d7cac1c28a37e074750c46cda03283980a07fca
* Coding style: Auto-fix MediaWiki.Usage.IsNull.IsNullJames D. Forrester2020-01-101-2/+2
| | | | Change-Id: I90cfe8366c0245c9c67e598d17800684897a4e27
* api: Update QueryFilearchive to provide information to everyoneVincent Privat2019-09-061-23/+32
| | | | | | | | | | | | | | Wikimedia Commons needs the ability to quickly detect, given a SHA-1, if a file has been previously uploaded but was deleted later. This is currently not possible in an efficient manner because the fa_sha1 field of the public database replica is not indexed, and this API requires the 'deletedhistory' user right. Effectively removes the 'deletedhistory' requirement, as this API does not expose more information than the public toolforge database replica. Bug : T60993 Change-Id: I2e9e1d50b6db9fa17acaf14d0975b6e9145a411e
* Deprecate and replace usages of User:isAllowed{All,Any}Petr Pchelko2019-08-211-1/+3
| | | | | Bug: T220191 Change-Id: I197b8fadaa93e7b320fc19c10e3e09387fe09ad2
* Replace User::isAllowed with PermissionManager.Petr Pchelko2019-08-201-1/+1
| | | | | | | | Covers root includes, actions, api, block, changes, changetags, diff and PermissionManager itself. Bug: T220191 Change-Id: Ic027d32f5dd8f4c74865df0c8a9fcf91123c889c
* Re-namespace RevisionStore and RevisionRecord classesBrad Jorsch2018-10-091-1/+1
| | | | | | | | | | | | | | | | | | | During development a lot of classes were placed in MediaWiki\Storage\. The precedent set would mean that every class relating to something stored in a database table, plus all related value classes and such, would go into that namespace. Let's put them into MediaWiki\Revision\ instead. Then future classes related to the 'page' table can go into MediaWiki\Page\, future classes related to the 'user' table can go into MediaWiki\User\, and so on. Note I didn't move DerivedPageDataUpdater, PageUpdateException, PageUpdater, or RevisionSlotsUpdate in this patch. If these are kept long-term, they probably belong in MediaWiki\Page\ or MediaWiki\Edit\ instead. Bug: T204158 Change-Id: I16bea8927566a3c73c07e4f4afb3537e05aa04a5
* API: Update query modules for MCRBrad Jorsch2018-07-271-2/+4
| | | | | | | | | | | | | | | | | | | | | | MCR deprecated the Revision class in favor of the broadly similar RevisionRecord, and more interestingly added the concept of multiple content "slots" to revisions. Thus, prop=revisions, prop=deletedrevisions, and so on gain a parameter to specify which slots are wanted. When this new parameter is not specified (and any content-related props are specified), a warning about the legacy format will be issued. The rest of the modules just needed to call methods or use constants on RevisionRecord instead of Revision. ApiQueryDeletedrevs wasn't touched, since it has been deprecated since 1.25 anyway. This also updates a few non-query modules that don't depend on details of editing, diffing, or viewing MCR revisions that haven't been figured out yet. Bug: T200568 Change-Id: I1327d1784f5cedb006cd74df834cf9a560a77a5d
* Pass $key into CommentStore methods and use MediawikiServicesaddshore2018-02-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This allows CommentStore to be added to MediaWikiServices without the need of an aditional Factory. This change includes a compatability layer to allow the behaviour from 1.30 to continue to be used while deprecated. CommentStore::newKey has been deprecated. Keys are now passed into the public methods of CommentStore where needed. The following CommentStore methods have had their signatures changed to introduced a $key parameter, but when used in conjunction with CommentStore::newKey behaviour will remain unchanged: * CommentStore::getFields * CommentStore::getJoin * CommentStore::getComment * CommentStore::getCommentLegacy * CommentStore::insert * CommentStore::insertWithTemplate Change-Id: I3abb62a5cfb0dcd456da9f4eb35583476ae41cfb
* Remove "Created on" from file header commentsUmherirrender2018-01-261-2/+0
| | | | | | | | | It is the job of git and svn to provide this information/metadata. The form was different, some with short, some with long month name some with leading zero at the day, some without. The year is also present in the Copyright clause Change-Id: If006907b82b9e45f13cfa2e45d41107a95570e1a
* Replace selectFields() methods with getQueryInfo()Brad Jorsch2017-10-301-19/+4
| | | | | | | | | | | | | | Several classes have a "selectFields()" static method to tell callers which fields to select from the database. With the recent comment table change and the upcoming actor table change, this pattern has become too simplistic as a SELECT will need to join several tables to be able to retrieve all the needed fields. Thus, we deprecate the selectFields() methods in favor of getQueryInfo() methods that return tables and join conditions in addition to the fields. Change-Id: Idcfd15568489d9f03a7ba4460e96610d33bc4089
* Add `comment` table and code to start using itBrad Jorsch2017-08-301-3/+10
| | | | | | | A subsequent patch will remove the old columns. Bug: T166732 Change-Id: Ic3a434c061ed6e443ea072bc62dda09acbeeed7f
* Make API documentation links language awareBaha2017-04-051-1/+1
| | | | | | | | | | | | | | Links generated by the API are now aware of the user's preferred language and will show documents in that language if available. To test, log in to mediawiki.org and set your language preference to 'es', then on an MediaWiki installation with this patch view the generated expanded API help at `api.php?action=help&recursivesubmodules=1&modules=main`. Each link to documentation on mediawiki.org should take you to its translated /es subpage, if one exists. Bug: T104518 Change-Id: I339a1f3ae1bce9d759cf251899d57c32b1def91e
* API: i18n for warnings and errorsBrad Jorsch2016-12-061-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | API warnings and error messages are currently hard-coded English strings. This patch changes that. With a few exceptions, this patch should be compatible with non-updated extensions: * The change to ApiBase::$messageMap will blow up anything trying to mess with it. * The changes to the 'ApiCheckCanExecute' hook will cause a wrong (probably unparsed) error message to be emitted for extensions not already using an ApiMessage. Unless they're currently broken like Wikibase. Bug: T37074 Bug: T47843 Depends-On: Ia2b66b57cd4eaddc30b3ffdd7b97d6ca3e02d898 Depends-On: I2e1bb975bb0045476c03ebe6cdec00259bae22ec Depends-On: I53987bf87c48f6c00deec17a8e957d24fcc3eaa6 Depends-On: Ibf93a459eb62d30f7c70d20e91ec9faeb80d10ed Depends-On: I3cf889811f44a15935e454dd42f081164d4a098c Depends-On: Ieae527de86735ddcba34724730e8730fb277b99b Depends-On: I535344c29d51521147c2a26c341dae38cec3e931 Change-Id: Iae0e2ce3bd42dd4776a9779664086119ac188412
* Convert all array() syntax to []Kunal Mehta2016-02-171-26/+26
| | | | | | | | | | Per wikitech-l consensus: https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html Notes: * Disabled CallTimePassByReference due to false positives (T127163) Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
* Replace wfBaseConvert with Wikimedia\base_convertReedy2015-11-241-2/+2
| | | | Change-Id: Iadab3d018c3559daf79be90edb23d131729bdb68
* API: Use message-per-value for apihelp-query+filearchive-param-propumherirrender2015-08-051-0/+1
| | | | | | | | | | | Use message-per-value for message apihelp-query+filearchive-param-prop to allow smaller strings for translation. Each prop in a message also will show up a new parameter on the help page without the adjust of the translation (but than in english instead of fully skip it). Change-Id: Ia3e845e65f57ef8a8272d158ca6f46a47529c30e
* Cast various things that are supposed to be intsBrad Jorsch2015-05-061-2/+2
| | | | | | | | | | | | | Mysqli is returning SELECTed ints as strings rather than as ints, I'm guessing to avoid problems with 64-bit int types on 32-bit systems. PHP mostly doesn't care, but it causes API JSON output to have strings instead of ints all over the place. This also fixes ForeignAPIFile::getUser( 'id' ) returning the user *name*. Bug: T98276 Change-Id: Ie6591d72b3ac40172f8176a8ca8b6fad8e9275a5
* Change API result data structure to be cleaner in new formatsBrad Jorsch2015-04-201-4/+4
| | | | | | | | | | | Nothing in this patch should result in changed output for format=json or format=php except as noted in RELEASE-NOTES-1.25, and changed output for format=xml should be similar or cosmetic. However, other code accessing the result data directly may need to be updated. Bug: T87053 Bug: T12887 Change-Id: I3500708965cb8869b5aed1543381aad208dadd13
* API: Overhaul ApiResult, make format=xml not throw, and add json formatversionBrad Jorsch2015-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ApiResult was a mess: some methods could only be used with an array reference instead of manipulating the stored data, methods that had both array-ref and internal-data versions had names that didn't at all correspond, some methods that worked on an array reference were annoyingly non-static, and then the whole mess with setIndexedTagName. ApiFormatXml is also entirely annoying to deal with, as it liked to throw exceptions if certain metadata wasn't provided that no other formatter required. Its legacy also means we have this silly convention of using empty-string rather than boolean true, annoying restrictions on keys (leading to things that should be hashes being arrays of key-value object instead), '*' used as a key all over the place, and so on. So, changes here: * ApiResult is no longer an ApiBase or a ContextSource. * Wherever sensible, ApiResult provides a static method working on an arrayref and a non-static method working on internal data. * Metadata is now always added to ApiResult's internal data structure. Formatters are responsible for stripping it if necessary. "raw mode" is deprecated. * New metadata to replace the '*' key, solve the array() => '[]' vs '{}' question, and so on. * New class for formatting warnings and errors using i18n messages, and support for multiple errors and a more machine-readable format for warnings. For the moment, though, the actual output will not be changing yet (see T47843 for future plans). * New formatversion parameter for format=json and format=php, to select between BC mode and the modern output. * In BC mode, booleans will be converted to empty-string presence style; modules currently returning booleans will need to use ApiResult::META_BC_BOOLS to preserve their current output. Actual changes to the API modules' output (e.g. actually returning booleans for the new formatversion) beyond the use of ApiResult::setContentValue() are left for a future change. Bug: T76728 Bug: T57371 Bug: T33629 Change-Id: I7b37295e8862b188d1f3b0cd07f66ac34629678f
* API: Fix access on getExamplesMessagesBrad Jorsch2014-10-291-1/+1
| | | | | | | ApiBase declares it protected, but for some reason I had made it public in all subclasses. Change-Id: I8a50d4f47e66c7f09137968d3941dc5cdc1d28e4
* Fix pagecount outputrobinhood7012014-10-201-1/+1
| | | | Change-Id: I9ff3b986a2e1fdedb2ec5e281dbcaf6e35d3c2d0
* API: Internationalize all remaining core API modulesBrad Jorsch2014-10-201-45/+12
| | | | | | | | | This also adds some new ApiBase::PARAM_* constants to generate more helpful help, and a method to override the default description message for the use of ApiDisabled and ApiQueryDisabled. Bug: 71638 Change-Id: Ic0c3d232e0498d58a043037e2e0c6f0b1c3edad3
* API: Remove action=paraminfo 'props' and 'errors' result propertiesBrad Jorsch2014-08-071-79/+0
| | | | | | | | | | | | | | | | | The format for 'props' was never specified and the list for 'errors' is impossible to keep updated when considering that many errors come from MediaWiki backend code and extension hook functions. And since there doesn't seem to be any real use case for either of these, let's just kill both of them instead of wasting effort on trying to fix them. Note that neither getResultProperties nor getPossibleErrors are called from any extensions in gerrit, and none of the other deprecated methods are called outside of the implementations of those two methods. Removing the obsolete methods is left to the maintainers of the extensions, as keeping them hurts nothing and is needed to maintain compatibility with earlier versions of MediaWiki. Change-Id: Ie11a401d60c834059fbf1b5625ca8ea093b3337c
* Split "suppressrevision" into two user rightseikes2014-07-191-1/+1
| | | | | | | | | | | | In this change, a new passive user right named "viewsuppressed" which can be used in order to view suppressed page content was added to MediaWiki core. Furthermore, this right was also added to the list of available rights, to qqq.json and to en.json where also the description of the "suppressrevision" right was adjusted in order to reflect reality. Bug: 20476 Change-Id: Id1baacb9c782763db5e05ef8b5c1b761997efcc9
* API: Cleanup list=filearchiveBrad Jorsch2014-07-151-10/+23
| | | | | | | | It should return fa_id so that a client can know what to pass to action=revisiondelete and (soon) action=undelete. And the continuation was very broken. Change-Id: Icf93293f312d41b44d1c4972d75acf2ff2dc1b80
* Use precise ApiMain/ApiQuery type hints in all API modulesThiemo Mättig2014-05-161-1/+1
| | | | | | | | | | | | | | | | | Which type is used depends on the ApiModuleManager responsible for the API module. There are two managers, one in ApiMain and one in ApiQuery. Both contain a list of API modules they instantiate. Both use $this as the first parameter in the constructors of the individual modules. There is no other regular way to instantiate the modules, so we know the type must either be ApiMain or ApiQuery. The lists don't intersect. I would have prefered the naming scheme $mainModule for ApiMain modules and $queryModule for ApiQuery modules but since this doesn't add much I left the shorter variable names untouched. Change-Id: Ie6bf19150f1c9b619655a06a8e051412665e54db
* Add final period to API module descriptionsaddshore2014-03-101-1/+1
| | | | Change-Id: Icae68c1ab1fd0006e00a3a9a56ae8f831d3d0d45
* Improve API query RevDel handlingBrad Jorsch2014-01-171-19/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ApiQueryDeletedrevs, ApiQueryFilearchive, ApiQueryRecentChanges, and ApiQueryWatchlist will now return entires where fields have been revision-deleted. "Hidden" indicators will be provided as appropriate. * ApiQueryImageInfo, ApiQueryLogEvents, ApiQueryRevisions, ApiQueryContributions will now return field values in addition to the "hidden" indicators when the requesting user has the necessary rights. * Modules that return "hidden" indicators will now also return a "suppressed" indicator. * ApiQueryImageInfo will now return info for DELETED_FILE file revisions if the requesting user has the 'deletedtext' right. * ApiQueryLogEvents, when searching by user or title, will now return entries where the user or action are revision-deleted if the requesting user has the 'deletedhistory' right. * ApiQueryContributions now uses the correct user rights rather than 'hideuser' to determine when to show contributions where the username was revision-deleted. * ApiQueryContributions will now indicate when the revision text is hidden. * Fix a bug in ApiQueryDeletedrevs found during testing where specifying the "content" prop along with the "tags" prop or "drtag" parameter would cause an SQL error. * Fix various PHP warnings in ApiQueryFilearchive caused by the lack of ArchivedFile::selectFields() fields. * ApiQueryImageInfo::getInfo's $metadataOpts parameter has been renamed $opts, and now may have an option to indicate the user to use for RevDel visibility checks. * ApiQueryWatchlist now properly uses the actual user's rights for checking whether wlprop=patrol is allowed, rather than using the wlowner's rights. Bug: 27747 Bug: 27748 Bug: 28261 Bug: 34926 Bug: 48966 Change-Id: Idec2199976f460e1c73a26d0717e9fc4ab8042bb
* Fix capitalization in ApiQueryBase::titlePartToKey()btongminh2013-12-231-4/+5
| | | | | | | | | | | | ApiQueryBase::titlePartToKey now allows an extra parameter that indicates the namespace in order to properly capitalize the title part. This allows list=allcategories, list=allimages, list=alllinks, list=allpages, list=deletedrevs and list=filearchive to handle case-sensitivity properly for all parameters. Bug: 25702 Change-Id: Iaa5a71ec536f3716f54bc84b39f645545dfd8660
* Fix a few more CodeSniffer errors and warnings on some API classesSiebrand Mazeland2013-11-151-7/+19
| | | | Change-Id: I119be629d8c8811d08413751bcffc0ce403cc2bd
* Yet more formatting updates for yet more API classesSiebrand Mazeland2013-11-141-2/+2
| | | | Change-Id: Iaa1cfaaffc7c55bb7670dfbff3f063cf22434f09
* Add helpurls to some api modulesumherirrender2013-05-161-0/+4
| | | | Change-Id: I41cc20ea5daf089e5fb26d1548d3b58cfe5f4d31
* Change EXIF to ExifSiebrand Mazeland2013-05-101-1/+1
| | | | | | | | Per https://en.wikipedia.org/wiki/Exchangeable_image_file_format. Spotted by Shirayuki and documented on https://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Sesp-property-exif-data/en Change-Id: I92ba67ec60ccfe7a173d950593357b86792b8ed3