This patch simplifies and fixes a few issues in code related to the 'timecorrection' user setting: - Always re-apply UserTimeCorrection normalization to the preference value, although it should be already normalized - Avoid duplicating code from UserTimeCorrection, both for the pipe-splitting and the offset computation/fallback - Use better variable names - Inject an ITextFormatter for generating the dropdown options, instead of a ContextSource (ew) or a Language, removing calls to wfMessage as well. Note that the ITextFormatter is not injected into the preferences factory because the eventual goal is to move the code to a new HTMLFormField class. - In TimezoneFilter, remove a redundant check: the value comes from the form, and the option for using the system time is always "System|XXX", never just "System". This seems to have been introduced in I2cadac00e46dff2bc7d81ac2f294ea2ae4e72f47; the previous code was only comparing $data[0], and not $tz. Change the test accordingly and add a test case. - Add missing star to docblocks in UserTimeCorrection, as well as a missing int cast. - Fix typo and other style issues in UserTimeCorrectionTest - Bonus: add missing docblock star in HTMLApiField Bug: T309629 Change-Id: Iab35eb17259826429e4b6bc1ba7385ab57884e98
40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
/**
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
*/
|
|
|
|
namespace MediaWiki\Preferences;
|
|
|
|
use MediaWiki\User\UserTimeCorrection;
|
|
|
|
class TimezoneFilter implements Filter {
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function filterForForm( $value ) {
|
|
return $value;
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function filterFromForm( $tz ) {
|
|
return ( new UserTimeCorrection( $tz ) )->toString();
|
|
}
|
|
}
|