Simplify DatabaseBase::tableName()

- Removed isset() check for configuration setting since they are always defined
- Removed triple check whether a database is already defined by putting everything in the same place
- Simplify the construction of the result string

Change-Id: Iaaf68149f16b1d38a038db1b41909464f29e2289
(bug 42030) Include original URL params in variant links

Change-Id: Iaedb56445b97ee09bd7fa08c9f23cd147757dee4
Links created by Linker::makeExternalLink didn't include rel=nofollow

The links created by Linker::makeExternalLink didn't obey $wgNoFollowLinks
(and $wgNoFollowNsExceptions, $wgNoFollowDomainExceptions). To
fix this I made the function call Parser::getExternalLinkRel which
I implemented earlier.

Fixes bug 41983.

Change-Id: I2ff35f89502db2e1f8266f3a943e38c0ea67aced
Further tweaks to pipe trick documentation (follow-up Iaf365e31)

- call them pipe tricks (plural) as there's more than one
- mention double-width comma as well
- use one tab character for alignment due to double-width chars
- document reverse pipe trick

Change-Id: I27a1d04362eb3988fc1318fa1f73f69877019439
(bug 41330) Default to the current year in the history page filter form

Change-Id: Ia510f0a24248f95c839ab88062cee1c0c0b9b6c1
Cleanup to ImagePage::openShowImage()

- Removed useless $showLink variable and related check since the variable is always defined to true
- Moved $linktext up so that there's no need to use a temporary variable to modify it
- Moved $longDesc down where it's used
- Change "else { if ( ... ) { } }" to elseif for better clarity

Change-Id: I65dcbb76c7f0a0441a6420e76affe797a3dc9c45
Force case-sensitivity on the LIKE operator, to ensure similar behaviour
between MySQL and SQLite

Change-Id: Idf2d90fe3df07364657abb6070f6eac59add1306
Fix ORMRow::insert() on PostgreSQL.

When inserting a new row, ORMRow explicitly passed NULL as the value for
the id field which in MySQL means "use next value in sequence", but in
PostgreSQL means "use NULL".  With this change, for id fields no value
is passed if it isn't set to non-null.  This fixes bug #43475.

This effectively bars the possibility to set the id field of an existing
row to NULL, but the current code already disallows any changes in id
fields.

Change-Id: I29d86fa6fc38ff1852821658e4927b4d7d4a72b6
(bug 35993) API gettoken parameter is deprecated (release notes complement)

Added in HISTORY (section API changes):
* (bug 35993) Deprecated gettoken parameter - support will be removed in 1.22.

This is a follow-up for change I369ddc74.

Change-Id: Ie78e1061353725793dbba2876037fb32cb9035a8
(bug 34211) Initial focus on Special:Block is nowhere

Change-Id: I64c5b5a0e52b0207bab1715dfac3a2355ef1bf50
Followup I888c616e: one more string to localize.

Change-Id: I330c7a1af055a4b89843349f5b05e9aa4fff10d0
Followup I888c616e: Keep IRC line format unchanged.

Change-Id: Ifeec00fc98c7912b6e16b6f07d1fdc26ab4e4fb5
(bug 22457) More natural flow for the "By e-mail" feature

This feature is on Special:Userlogin/signup to allow a random new
password to be sent to expected account owner on assisted signup.

It uses JavaScript to hide the password & retype password fields when a
logged-in user creates an account (for someone else) and checks the by
e-mail feature.

Change-Id: I7bf57eef64fea19a8237f997019e0b2bfdf401b3
Fix ApiCreateAccountTest for $wgEnableEmail = false;

1) ApiCreateAccountTest::testInvalidEmail
Failed asserting that exception of type "UsageException" is thrown.

Also explicit log out the user

Change-Id: I1d90c2b78bbcef494dc91822feeba37eebb8ca20
Pass database connection to SpecialWatchlist::countItems

This avoids getting two connection to the 'watchlist' group.

Change-Id: I36cefc7d54cb6ed6c58a6f16932809b72a573d98
Additional tests to catch Parsoid regressions.

Change-Id: I5927ec25d978c9399b1d515a56c6fd39546f3d90
Minor tweaks to installer text

- use "open wiki" (explicit meaning) rather than "traditional wiki" (implicit meaning)
- tweak sentence that explains what the "traditional wiki" is to work with whatever label is used
- "Traditionally" --> "Usually" (less dogmatic)
- use the system message for the "back" button, to match the "next" button

Change-Id: I92b599965c6ed7e405951a37f2d3cbc8710aff16
(Bug 27559) Preserve tab selection after submit in [[Special:Preferences]]

Firstly it was planned to be implemented via cookies, but they behave terribly.
So, for now it's a HTML5-only solution (via sessionStorage).

Change-Id: I7b7f14a6dca580a4498bda1ada48d1a3ba7c69c3
Make redirect update in refreshLinks.php bypass the redirect table

This makes this script actually useful when updating namespaces by
making sure the target registred in the "redirect" is the correct one.

Consider the following example:

- Create a redirect page pointing to a page "Extra:Target"
- Add $wgExtraNamespaces[100] = 'Extra'; in LocalSettings.php
- run refreshLinks.php

Previously the redirect target of that page was not updated and still
pointing to (0, "Extra:Target") which no longer a valid title.
Now it will be updated correctly to point to (100, "Target").

The value of the page_is_redirect field will also be updated to be
sure it has the correct value, which might be wrong when the target
becomes valid or invalid, e.g. by changing $wgInvalidRedirectTargets.

Change-Id: I458ca63550df56ca96b35749daf4e7b866ab9d93
Fix typo in exception message

Also capitalise first letter and use single quotes for consistency.

Change-Id: Ic09699bd675845334cdd53f39fb9c0f1ab3b61e2