X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fpreferences%2FDefaultPreferencesFactory.php;h=bf6ab4a82ced8352ddaf7396b50b84a89c65074c;hb=39ded1e13f8bd5c3ea055067320749be0d15ff6a;hp=d5a706afc4294021b50a9a8882de1ba5809f8ea1;hpb=267b6441d3c0a461922a4747b71ca4f39817f656;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/preferences/DefaultPreferencesFactory.php b/includes/preferences/DefaultPreferencesFactory.php index d5a706afc4..bf6ab4a82c 100644 --- a/includes/preferences/DefaultPreferencesFactory.php +++ b/includes/preferences/DefaultPreferencesFactory.php @@ -45,8 +45,7 @@ use MWTimestamp; use OutputPage; use Parser; use ParserOptions; -use PreferencesForm; -use PreferencesFormOOUI; +use PreferencesFormLegacy; use Psr\Log\LoggerAwareTrait; use Psr\Log\NullLogger; use Skin; @@ -186,9 +185,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { $info['disabled'] = 'disabled'; } $field = HTMLForm::loadInputFromParameters( $name, $info, $dummyForm ); // For validation - $globalDefault = isset( $defaultOptions[$name] ) - ? $defaultOptions[$name] - : null; + $globalDefault = $defaultOptions[$name] ?? null; // If it validates, set it as the default if ( isset( $info['default'] ) ) { @@ -222,7 +219,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { if ( ( isset( $info['type'] ) && $info['type'] == 'multiselect' ) || ( isset( $info['class'] ) && $info['class'] == \HTMLMultiSelectField::class ) ) { $options = HTMLFormField::flattenOptions( $info['options'] ); - $prefix = isset( $info['prefix'] ) ? $info['prefix'] : $name; + $prefix = $info['prefix'] ?? $name; $val = []; foreach ( $options as $value ) { @@ -237,7 +234,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { ( isset( $info['class'] ) && $info['class'] == \HTMLCheckMatrix::class ) ) { $columns = HTMLFormField::flattenOptions( $info['columns'] ); $rows = HTMLFormField::flattenOptions( $info['rows'] ); - $prefix = isset( $info['prefix'] ) ? $info['prefix'] : $name; + $prefix = $info['prefix'] ?? $name; $val = []; foreach ( $columns as $column ) { @@ -409,7 +406,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { } // Language - $languages = Language::fetchLanguageNames( null, 'mw' ); + $languages = Language::fetchLanguageNames( null, 'mwfile' ); $languageCode = $this->config->get( 'LanguageCode' ); if ( !array_key_exists( $languageCode, $languages ) ) { $languages[$languageCode] = $languageCode; @@ -1276,6 +1273,15 @@ class DefaultPreferencesFactory implements PreferencesFactory { 'help-message' => 'prefs-help-watchlist-token2', ]; } + + if ( $this->config->get( 'StructuredChangeFiltersShowWatchlistPreference' ) ) { + $defaultPreferences['wlenhancedfilters-disable'] = [ + 'type' => 'toggle', + 'section' => 'watchlist/opt-out', + 'label-message' => 'rcfilters-watchlist-preference-label', + 'help-message' => 'rcfilters-watchlist-preference-help', + ]; + } } /** @@ -1412,8 +1418,8 @@ class DefaultPreferencesFactory implements PreferencesFactory { $pixels = $l10n->msg( 'unit-pixel' )->text(); foreach ( $this->config->get( 'ImageLimits' ) as $index => $limits ) { - // Note: A left-to-right marker (\u200e) is inserted, see T144386 - $display = "{$limits[0]}" . json_decode( '"\u200e"' ) . "×{$limits[1]}" . $pixels; + // Note: A left-to-right marker (U+200E) is inserted, see T144386 + $display = "{$limits[0]}\u{200E}×{$limits[1]}$pixels"; $ret[$display] = $index; } @@ -1484,12 +1490,12 @@ class DefaultPreferencesFactory implements PreferencesFactory { * @param IContextSource $context * @param string $formClass * @param array $remove Array of items to remove - * @return PreferencesForm + * @return HTMLForm */ public function getForm( User $user, IContextSource $context, - $formClass = PreferencesFormOOUI::class, + $formClass = PreferencesFormLegacy::class, array $remove = [] ) { if ( SpecialPreferences::isOouiEnabled( $context ) ) { @@ -1511,7 +1517,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { } /** - * @var $htmlForm PreferencesForm + * @var $htmlForm HTMLForm */ $htmlForm = new $formClass( $formDescriptor, $context, 'prefs' ); @@ -1522,7 +1528,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { # Used message keys: 'accesskey-preferences-save', 'tooltip-preferences-save' $htmlForm->setSubmitTooltip( 'preferences-save' ); $htmlForm->setSubmitID( 'prefcontrol' ); - $htmlForm->setSubmitCallback( function ( array $formData, PreferencesForm $form ) { + $htmlForm->setSubmitCallback( function ( array $formData, HTMLForm $form ) { return $this->submitForm( $formData, $form ); } ); @@ -1627,10 +1633,10 @@ class DefaultPreferencesFactory implements PreferencesFactory { * Handle the form submission if everything validated properly * * @param array $formData - * @param PreferencesForm $form + * @param HTMLForm $form * @return bool|Status|string */ - protected function saveFormData( $formData, PreferencesForm $form ) { + protected function saveFormData( $formData, HTMLForm $form ) { $user = $form->getModifiedUser(); $hiddenPrefs = $this->config->get( 'HiddenPrefs' ); $result = true; @@ -1707,10 +1713,10 @@ class DefaultPreferencesFactory implements PreferencesFactory { * @deprecated since 1.31, its inception * * @param array $formData - * @param PreferencesForm $form + * @param HTMLForm $form * @return bool|Status|string */ - public function legacySaveFormData( $formData, PreferencesForm $form ) { + public function legacySaveFormData( $formData, HTMLForm $form ) { return $this->saveFormData( $formData, $form ); } @@ -1718,15 +1724,14 @@ class DefaultPreferencesFactory implements PreferencesFactory { * Save the form data and reload the page * * @param array $formData - * @param PreferencesForm $form + * @param HTMLForm $form * @return Status */ - protected function submitForm( array $formData, PreferencesForm $form ) { + protected function submitForm( array $formData, HTMLForm $form ) { $res = $this->saveFormData( $formData, $form ); - if ( $res ) { + if ( $res === true ) { $context = $form->getContext(); - $urlOptions = []; if ( $res === 'eauth' ) { @@ -1750,7 +1755,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { $context->getOutput()->redirect( $url ); } - return Status::newGood(); + return ( $res === true ? Status::newGood() : $res ); } /** @@ -1759,10 +1764,10 @@ class DefaultPreferencesFactory implements PreferencesFactory { * @deprecated since 1.31, its inception * * @param array $formData - * @param PreferencesForm $form + * @param HTMLForm $form * @return Status */ - public function legacySubmitForm( array $formData, PreferencesForm $form ) { + public function legacySubmitForm( array $formData, HTMLForm $form ) { return $this->submitForm( $formData, $form ); }