Also improve the description a bit and explain at a high level
how this code is used, and which classes back those entry points.
Change-Id: Ia69531858e714d0b43a29a7d5b6dcc5c7edd8240
Since MW 1.31 there are messageBox, warningBox, errorBox and successBox
available which should be used instead.
These are simple wrappers around Html::messageBox and related methods
which should be used directly instead. Internal usage has been migrated
as of a9252abb1c, but these public methods remain for now. Once
removed we can also removed the internal Html::infoBox() method.
Bug: T232903
Change-Id: I2756c88987754c4e3f84d98c531d8396098cd7fe
Adding optional $className parameter to provide additional
styling options.
Optional parameter $heading was introduced for MobileFrontend. Therefore
leaving inconsistent parameter order is necessary for the time being.
Bug: T232903
Change-Id: I5857b2c58a47a83156c32f086a73fe2bd48ab0c8
Pass the url to the Copying page as a message parameter instead.
This results in identical text and styling. Not even "external link"
vs plain link styling difference, because that doesn't exist in the
installer stylesheet.
The message is renamed in this commit because it is a breaking
change (due to <doclink> being removed, and due to $2 being
required).
Bug: T227297
Change-Id: I73efd9ecb193523a7e384a7a40c768d32b2361b8
This method is very specific to the installer and is only used in one
place, in WebInstaller, and should probably be moved there.
For now, make its documentation less confusing, more correct, and
mark it as `@internal`, this is not a supported public interface.
Bug: T227297
Change-Id: I8902fe34b80c5152bfd37e9c24427ad48b5f4167
Changes in the behavior:
* The expanding/collapsing now works even with disabled JavaScript.
* There is no FOUC on loading anymore.
* The animation on show/hide is absent.
Change-Id: I1b88d8e2cdbb1c969670a7a8637dba10bf447330
HHVM does not support variadic arguments with type hints. This is
mostly not a big problem, because we can just drop the type hint, but
for some reason PHPUnit adds a type hint of "array" when it creates
mocks, so a class with a variadic method can't be mocked (at least in
some cases). As such, I left alone all the classes that seem like
someone might like to mock them, like Title and User. If anyone wants
to mock them in the future, they'll have to switch back to
func_get_args(). Some of the changes are definitely safe, like
functions and test classes.
In most cases, func_get_args() (and/or func_get_arg(), func_num_args() )
were only present because the code was written before we required PHP
5.6, and writing them as variadic functions is strictly superior. In
some cases I left them alone, aside from HHVM compatibility:
* Forwarding all arguments to another function. It's useful to keep
func_get_args() here where we want to keep the list of expected
arguments and their meanings in the function signature line for
documentation purposes, but don't want to copy-paste a long line of
argument names.
* Handling deprecated calling conventions.
* One or two miscellaneous cases where we're basically using the
arguments individually but want to use them as an array as well for
some reason.
Change-Id: I066ec95a7beb7c0665146195a08e7cce1222c788
global $wgParser was deprecated in 1.32 and services are used
instead to get the parser object via MediaWikiServices. Making
this replacement as we're avoiding globals.
Change-Id: I967a52c481bfcc83552053a03e88acb038810828
If we're going to call `OutputPage::addWikiTextAs*` or
`OutputPage::parseAs*` to parse the message, we don't need to
pre-expand `{{...}}` markup before passing it to the parser.
Follow up to I2f68f73365df876e6f9d017e4e3ddea39c4a1284.
Bug: T206574
Change-Id: I0ee493207ea80c1caba7e60a31714805dc54c64e
This fixes 26 of the phan-taint-check warnings on MW core. Some
are outright fixed, others are false positives that were suppressed.
This really only covers some of the easy ones. There are still
314 warnings to go.
Change-Id: I30463bc3a09fd4324d190de8533f51784764dd3a
Unicode escape sequences cannot be used in single quoted strings,
in which they are treated as literal text.
Follows-up 125cbd8c01.
Change-Id: Ife53a613a801b8bb96542b42fd3d2bb3dccaf629
Directly use the UTF-8 encoding of the 'NO-BREAK SPACE' (U+00A0) instead of
the HTML/XML entities   or   or .
With the UTF-8 character the generated HTML is shorter and better to read.
Also change the special value for the label in HTMLForm from   to
U+00A0 but also support   for backward compability.
Bug: T154300
Change-Id: I882599ac1120789bb4e524c4394870680caca4f4
To match recent change to Special:Preferences, only allow languages
with localisation as interface or content language.
Bug: T188030
Change-Id: I8acae47ee70feb98bcde982d9b0e3637daf96ffb
Uses new PHP 5.6 syntax like ...parameter unpacking and
calling anything looking like a callback to make the code more readable.
There are much more occurrences but this commit is intentionally limited
to an easily reviewable size.
In one occurrence, a simple conditional instead of trickery was much more readable.
This patch finishes all the easy stuf in the core, the remainder is either unobvious
or would result in smaller readability gains. It will be carefully dealt with in
further commits.
Change-Id: I79a16c48bfb98b75e5b99f2f6f4fa07b3ae02c5b
This changes ensures to generate the same URLs on doclinks like in the
navigation bar.
mw-config/?page=Welcome has as "Restart installation" the URL
/.../mw-config/?page=Restart&lastPage=Language
and as "a copy of the GNU General Public License" the URL
before this change
/.../mw-config/index.php?page=Copying&lastPage=Welcome
after this change
/.../mw-config/?page=Copying&lastPage=Welcome
Change-Id: Ide5cb52d71363c3a54e1b6ac48c272e1de823322
As there will likely be extensions bundled with the 1.31 release that
depend upon other extensions, we should have the installer prevent users
from enabling extensions that depend on other, not-enabled extensions.
We can build a dependency map from extension.json's "requires"
component. On the client-side, we'll first disable all checkboxes that
require other extensions, and evaluate each checkbox click, updating the
disabled checkboxes as possible.
This required some refactoring of how ExtensionRegistry reports issues
with dependency resolution so we could get a list of what was missing.
While we're at it, sort the extensions under headings by type.
This does not support skins that have dependencies yet (T186092).
Bug: T31134
Bug: T55985
Change-Id: I5f0e3b1b540b5ef6f9b8e3fc2bbaad1c65b4b680
During the install process LocalSettings.php does not exist
yet so globals simply take their values from DefaultSettings.php.
The installer uses the correct settings directly for e.g. database
operations, but this blows up when something tries to use
MediaWikiServices which is hardcoded to work with globals.
Make the installer update the globals to work around this.
Bug: T187586
Change-Id: I042099c399bc58929e83178f61e6e6ca478a3ee6
The parser output is enclosed by a <div> and must not enclosed into a
<span> because of an HTML validation error.
Bug: T171423
Change-Id: I034d54436a622803fe07d3c93483b9fe705bc925
Having such comments is worse than not having them. They add zero
information. But you must read the text to understand there is
nothing you don't already know from the class and the method name.
Change-Id: I994d11e05f202b880390723e148d79c72cca29f0
It's unreasonable to expect newbies to know that "bug 12345" means "Task T14345"
except where it doesn't, so let's just standardise on the real numbers.
Change-Id: I6f59febaf8fc96e80f8cfc11f4356283f461142a
This allows software packages to specify where the LocalSettings.php
file should be saved to when the user is downloading it from the web
installer.
Bug: T123151
Change-Id: I06ded602be9aac0a10773e9d85c4d1585a70933b
Previously, user-group-specific policies were not checked, because the
user hadn't been created yet, and so wasn't assigned to any groups. In his
overhaul of password policy, Chris wrote a function that was designed for
exactly this purpose (UserPasswordPolicy::checkUserPasswordForGroups) but
didn't put it into use.
Some changes to the error handling code are needed so the error messages
display correctly.
Bug: T115700
Change-Id: I1391c77c9667b646b29003bb0b2abcdc21d8c4d8
There is no need to store session variables
(that also include user-supplied arguments)
as $wgXXX global variables.
Bug: T116375
Change-Id: I880d4299566beaf99ed1fc21c690cdda64149b0e
NoLocalSettings.php tries to detect whether the installer has been
started or not. But this detection has been broken since I4cf237d when a
change was made to stop setting the session name when NO_SESSION is
defined, causing NoLocalSettings.php to be looking at a different
session-cookie than is actually being used by the installer.
The complete fix is twofold:
* Have WebInstaller::startSession() call session_name()
* Have NoLocalSettings.php not call session_name() when PHP's
session.auto_start configuration setting is set.
Change-Id: I618d11df902b5d1f70e175bc94137621e9195c2f
Instead of using .mw-help-field-container from mediawiki.legacy to style help
tooltips, use a class that is specific to the WebInstaller and which is styled
in its stylesheet. This allows us to stop embedding it in mediawiki.legacy
(which is loaded on every page).
The CSS is copied directly from the styles for mw-help-field-container et al.
in mediawiki.legacy.
Change-Id: I8e092e9d2c91b5f70499d93c1134f43f2e96348c
Continues the path of deprecating $wgScriptExtension and all of
the related baggage.
You'll only end up with sadness when we rip out of the rest of
this later so don't let people shoot themselves in the foot.
Change-Id: I34cd1d2c266405ebc761a271e3740e972fb7cf2f
Paths are tricky and installer code is old and ugly. Somebody
should really clean this up. Prep the paths always, not just
on the environment checks page.
Co-Authored-By: Timo Tijhof <krinklemail@gmail.com>
Bug: T100145
Change-Id: I4e55c59c2bed0dc94e6bc3a8c59709ec80822235