Commit graph

194 commits

Author SHA1 Message Date
Reedy
e48ecbc524 Switch API to use Config classes
Only done where globals are config (so not $wgParser, $wgContLang etc)

Change-Id: Ic39cdd858cfb9096a2bc09618f97e64270d76f13
2014-06-15 23:56:38 +01:00
Adam Roses Wight
5971b2c39a API: Enforce section=new constraint when using 'redirect' mode
Finish implementation of the 'redirect' edit API parameter.  This flag
should only be used as a convenience when adding a new section, appending,
or prepending.  Any other usage must be done using the long-cut (fetch page,
determine if it is a redirect, follow redirects and edit the target page's
content).

This patch takes apart the "EditConflict_redirect" test, because it no
longer makes sense--unless you dear reader can figure out how to force an
edit conflict when only adding a section?

Bug: 24330
Change-Id: Ie3f7273c18e156da1e50e1a36aac2e5341710982
2014-05-22 16:08:22 -04:00
Max Semenik
eded2c5307 Allow editing transcluded sections via the API
Change-Id: I784d7263d6743ed16e401384e9efef1f231320a0
2014-05-01 13:47:18 -07:00
addshore
719d7a2f03 Add final period to API module descriptions
Change-Id: Icae68c1ab1fd0006e00a3a9a56ae8f831d3d0d45
2014-03-10 09:04:08 +00:00
umherirrender
d99e39a97f Remove final period from api module descriptions
The most description are without a final period, so that looks common.

Change-Id: If72a3cc094cfff436b53948728354cbaeff768c8
2014-03-02 20:20:56 +01:00
Siebrand Mazeland
ca209473d1 Remove unneeded uses of else{} in api/
Fixed a little documentation issue, removed a line of unreachable code
and fixed up two formatting issues in the process.

Change-Id: If29391ee1a0daf19973437f36c3216b8716debd0
2013-11-18 21:34:43 +01:00
Siebrand Mazeland
041728e24b Remove unused local variables
Change-Id: I4162d45e68d65347108f94b3d80bc146f3393c1b
2013-11-17 16:54:19 +01:00
Siebrand Mazeland
d026e1a403 Address errors and warnings in CodeSniffer in api/
Change-Id: I06de371393d50eada33154626874b106d814642b
2013-11-17 16:52:24 +01:00
Siebrand Mazeland
fe05f85a62 Update formatting on API classes
Change-Id: Ifd18a8de1d2580b723a5b91e8d202818fd97795a
2013-11-14 17:03:20 +00:00
Brad Jorsch
ff8d5988d2 API: Check for nosuchsection in all code paths
nosuchsection is currently checked only in the appendtext/prependtext
code path. Add a check for out of range section numbers in the main code
path too.

Bug: 53884
Change-Id: I5bafe8625122ca66415602c37cbca7d7f4c17742
2013-09-11 11:03:08 -07:00
Kunal Mehta
993de5fbd5 action=edit API with section=new would fail if page didn't exist
If the page doesn't exist, $articleObject->replaceSectionContent will return null
Fixes a regression introduced in be97167ab6.

Bug: 52830
Change-Id: Icdc0f130eeb40fff5c656c396b2a2af294015b98
2013-08-14 14:40:31 -07:00
Brad Jorsch
a67f50cf39 API: DWIM for action=edit&section=new&appendtext=...
While it doesn't make a whole lot of sense to prepend or append with
section=new, the user certainly doesn't intend to be copying the
contents of section 0. In the spirit of "do what I mean", we should
probably prepend/append to empty text in this situation.

Bug: 52538
Change-Id: I9b03635906ca665a4f68b3bd35d05ae9108e2356
2013-08-05 11:26:49 -04:00
Marius Hoch
cd366c1d27 Use content format for unserializing in ApiEditPage
Follow up to: Ia59fb6b

Change-Id: I42bc56aa439e88cbdb1abcafe2984ebf3eeb79af
2013-07-31 18:39:14 +02:00
Marius Hoch
be97167ab6 Make APIEditBeforeSave give the whole revision
rather then just the current section. This
makes the hook behave as documented in
docs/hooks.txt.

Bug: 52077
Change-Id: Ia59fb6bbcbf2ae4119aa9dc316af8130e0235e78
2013-07-31 17:25:50 +02:00
Roan Kattouw
e617dc6c8f Pass through request parameters in API action=edit
In addition to constructing a fake request using the data the caller
gave us, also pass through any other request variables that might have
been set. This is a bit of an evil hack, but it's the only thing we can
do to make random things like wpReviewEdit in FlaggedRevs work through
the API.

Change-Id: Idab5b524b0e3daae58ab4f26466c0f6d9d8d3044
2013-07-23 23:26:37 -07:00
Timo Tijhof
4bd5471ca3 docs: Remove odd colons after @todo
Most were this way already:
https://doc.wikimedia.org/mediawiki-core/master/php/html/todo.html

Ran a find/replace on the odd ones. Also made them all
lower case.

Change-Id: I70c6a69344ddebc603e9a1c1d87e3cc4f4f4c560
2013-05-15 06:23:40 +00:00
umherirrender
9f14ecf829 Added space after switch/Removed spaces after unset
While at it, added/removed some other spaces in the same files

Change-Id: I84d8001aa123a008807ad5eb76f396aed7c899a4
2013-04-26 16:42:31 +02:00
umherirrender
15abcf71ca Added/Removed spaces around string concatenation
And added/removed spaces around some other tokens,
like +, -, *, /, <, >, =, !

Fixed windows newline style

Change-Id: I0b9c8c408f3f6bfc0d685a074d7ec468fb848fc8
2013-04-13 13:36:24 +02:00
umherirrender
4b34c32ed2 API: Remove useless PARAM_REQUIRED = false
Also fix the condition in getPossibleErrors to avoid reporting of:
<error code="nosectiontitle" info="The sectiontitle parameter must be
set" />

Change-Id: Ifd808a040590ddffc0527da5ef0cc8cacdd008d9
2013-03-15 16:35:51 +01:00
Yuri Astrakhan
0aa24ae558 Fixed many small spelling mistakes and php docs, var decl.
Change-Id: I1508ed7eb77e5e4f700fb63955d626c4f5915840
2013-03-10 23:45:51 -04:00
umherirrender
d63121016d fix some spacing
Added/removed spaces around logical/arithmetic operator
Reduced multiple empty lines to one empty line
Removed wrong tabs before comments at end of line
Removed too many spaces in assigments

Change-Id: I2bba4e72f9b5f88c53324d7b70e6042f1aad8f6b
2013-03-07 17:53:21 +01:00
umherirrender
5880f89707 API: Throw error when interwiki is given for various title param
See bug 44341 for action=parse, but the problem with interwiki
processing can also be happen in other modules.

This gives clearer error message on some modules
For example action=move:
Bad title "*title*"
instead of:
Unknown error: "immobile-target-namespace-iw"

Change-Id: I86524533dfd778a169b39968999918a1f531efeb
2013-03-01 16:01:26 +01:00
Alexandre Emsenhuber
8e174857ef Make ApiEditPage use Article::newFromWikiPage() and add user to context
- Changed the creation of the Article object in ApiEditPage::execute() to
  use Article::newFromWikiPage(), this allows to re-use the already-existing
  WikiPage object in that method instead of having to create a new one.
  Article::newFromTitle() was used before, but for some reason this got
  reverted back to "new Article" with the merge of the Wikidata branch.
- Removed the call to WikiPage::clear() added in I1d28164d (2c27926); no
  longer needed since the WikiPage object is now already up to date after
  the edit.
- Added WikiPage and User objects to the context passed to the created
  Article object; follow-up to I74394282 (078334f).

Change-Id: I53088a42ef7592aaba7449ef3f84f77f2e07b2f5
2013-02-24 11:34:50 +01:00
Liangent
078334ff49 (bug 45092) Better context for Article initialized by ApiEditPage
After I99a19c93, the $context argument of EditFilterMergedContent hook
is just $editPage->mArticle->getContext() which has a title of [[API]]
when it's created in ApiEditPage called internally (like what WikiLove
does). Now a new context is created for it which simulates a real edit
(title is the title being edited, and request is the derivated one with
a few more fake parameters added).

Change-Id: I743942822eb5097d9d98c11088a91395d9e6d47f
2013-02-19 08:56:40 +00:00
Antoine Musso
b2fba3f27f api: remove duplicate __contruct calls
For historical reasons, all our API class had a dummy __construct which
simply calls their parent constructor.  This patch removes all such
occurences to save out some bytes.

Change-Id: I667955d7821f780fc5ce23823d74dedb1729b9fa
2013-01-29 09:38:17 +01:00
Yuri Astrakhan
503cd2f4ae (bug 35885) remove api version string and parameter
API was using SVN's version keyword which GIT does not support.
All related methods were either removed, or for those that
could have been used from extensions, emptied out.
api.php?version now shows unrecognized param warning.

Change-Id: I910ca1448ed2ed697ac19b17c486d130aa1d7e03
2013-01-18 12:41:18 -05:00
Yuri Astrakhan
32fd68f81c Minor cleanup
Fixed spacing, eol chars, "string" --> 'string'

Change-Id: I630247c6c5b469efb67ec9de32e8533ae88e59fb
2013-01-12 01:50:48 -05:00
burthsceh
2c279262b3 (bug 42410) Add $pageObj->clear() for newtimestamp
To return latest timestamp

Change-Id: I1d28164d89917152d3f712817a125c8be36f390d
2012-11-26 09:20:40 -05:00
Brad Jorsch
f6e8d4a04c (bug 41990) Fix regression in API edit of redirect
Before ContentHandler, an API edit passing a redirect for title and
redirect=true and omitting basetimestamp would use the last revision
timestamp of the target page. When ContentHandler was merged, this was
accidentally changed to use the last revision timestamp of the redirect
page, which was likely much earlier than the target page's last revision
and so causes an edit conflict in almost all cases.

Some scripts took advantage of this along with appendtext to add notices
to users' talk pages, so restore that old behavior. We'll also adjust
the contentmodel/contentformat detection added by ContentHandler to use
the model and format of the target page rather than the redirect in this
case, as that seems more likely to be less wrong.

Change-Id: If0c674e26a4deb54ec14f0bf45418d666a397347
2012-11-12 15:03:27 +00:00
Tychay
78a5729fea Merge "Passing the undid revisionId from the API request to the WebRequest" 2012-10-31 23:33:10 +00:00
Kaldari
f245a2f9ef Passing the undid revisionId from the API request to the WebRequest
This is so that Echo can detect when a revision is undone via the
API. wpUndidRevision is the same param used by the 'undo' button in
in the History view.

Change-Id: I82440eb442759335800cee49fd53528fcfd92ed6
2012-10-29 10:58:08 -07:00
umherirrender
82375631c2 Fix tabs inside/between statements/text
This tabs are strange and a space there is better

Change-Id: I0885dff575ee2fcd0668d08fef3226e132c5b319
2012-10-26 18:18:59 +02:00
Brad Jorsch
07c796d520 (bug 40930) Fix regression: ContentHandler prevents action=edit append to blank page
Before the ContentHandler merge, using action=edit&appendtext=... on a
non-existent page would treat the page as if it existed but had no
content. After the merge, it throws an error incorrectly claiming that
appending is not supported for wikitext.

The fix is to create a new, empty content object when appending and
there is no existing content.

Change-Id: I61f2cf3911a7d9d8553fc3f745e545cb1bcfd270
2012-10-15 15:45:39 +02:00
daniel
c546fae8ed merge latest master into Wikidata branch
Change-Id: Id4e0f40c03679c13d8934a6add99b5cd86d0437d
2012-10-08 13:58:54 +02:00
umherirrender
20291cd166 Pass user object to some Revision::getText/Title::userCan calls
Also passed some $wgUser direct (when already there), so it is seen by
someone, that the user should be passed to that method.

Change-Id: Id4d5504a05ea34d80d59262ad3aef28f09c807a6
2012-10-05 16:25:01 +02:00
daniel
be43796499 Comment cleanup
Change-Id: Ie41f680782502f2b70c1bdbf18da3ee790d48fe7
2012-09-13 16:21:54 +02:00
daniel
2bced58af3 Make EditPage fail on non-textual content.
Change-Id: Ida542340cab75de2540632c8116d8ebe074522cb
2012-09-12 13:43:52 +02:00
daniel
b6fe213226 merge latest master.
some tests fail due to logical changes, will fix that in a follow-up

Change-Id: I8a5e4087ecf674fbcf6327c5d168cd401be12400
2012-09-05 17:50:13 +02:00
Aaron Schulz
a53de31828 Added explicit DB flags for Revision loading calls.
Change-Id: Ie90d4197ad7a16009c96273eeae1a658678a8200
2012-08-29 20:04:30 -07:00
daniel
daf415aa88 Improved content model handling in ApiEditPage
Change-Id: Ifd9e344864f7663de7263cb536e83dbdc03cf2ed
2012-08-21 16:14:18 +02:00
daniel
0139923580 fixing long lines
Change-Id: Iebcd40a1a37a3a93cc571fa2c2b0a87f53dc97a4
2012-08-20 21:33:07 +02:00
daniel
29719f846b merging latest master
Change-Id: I36b7f2f63ab8c08f8412d521dc68ea45c8b67711
2012-08-20 16:55:28 +02:00
Alex Monk
2fabea7eea Use wfMessage instead of deprecated wfMsg*
Or $this->msg in special pages.

Change-Id: I774a89d646615053c8424050e42ad95601f92543
2012-08-18 14:11:05 +02:00
daniel
d87135d706 merged master
Change-Id: Iad12ee382d6aeb1fab6fefb611d290b74865ea4b
2012-07-23 22:07:18 +02:00
umherirrender
06166e334a (bug 38190) Add "required" flag to some token params
action=block/action=unblock can not have the token required because when
using the gettoken param, the token param can not set.

Change-Id: I15317f16c06f150d29c1b17de76f41a6cfa84820
2012-07-20 15:45:51 -07:00
Antoine Musso
4f5d2386f3 escape HTML elements in docblock with double quotes
Doxygen choke on text enclosed by '<' and '>' since it tries to
interpret them as HTML or XML elements. This patch adds double quotes
in includes/api/*.php files around the two following strings:

 <Firstname>.<Lastname>@gmail.com
 <Firstname><Lastname>@gmail.com

Which becomes:

 "<Firstname>.<Lastname>@gmail.com"
 "<Firstname><Lastname>@gmail.com"

Tested locally, it prevents doxygen 1.8.0 related warnings.

Change-Id: I36d82eb3fd4989ee3ffc65b0b527b83711d1ba69
2012-07-15 22:15:45 +02:00
daniel
906a1ba51f [bug 37746] string ids for content model and format.
The content model is stored as a varbinary(32), the format
as varbinary(64).

If the standard model resp. format is used, null is written
to the database instead of the actual id, saving space.

Change-Id: I32659b49a9ad3cb8ecae9019562cff7de42b65f9
2012-06-26 15:56:06 +02:00
daniel
436b2d37ad make ApiEditPage aware of content model and format.
Change-Id: I2ec9a8b38b10eecf47a51855ae8010a91c8acc90
2012-06-25 16:09:08 +02:00
Tim Starling
072416fa2d Fix indenting errors introduced in Wikidata branch
Change-Id: I487a0966a26359d4a6769331a6e2ee356eeb41db
2012-06-19 19:45:31 +10:00
daniel
a830943203 Merge branch 'master' of ssh://gerrit.wikimedia.org:29418/mediawiki/core into Wikidata 2012-06-14 12:43:43 +02:00