Merge "Clear cached HTML artifacts"
[lhc/web/wiklou.git] / includes / specials / SpecialNewpages.php
index 5ba7c88..1f81cf0 100644 (file)
@@ -40,7 +40,6 @@ class SpecialNewpages extends IncludableSpecialPage {
        }
 
        protected function setup( $par ) {
-               // Options
                $opts = new FormOptions();
                $this->opts = $opts; // bind
                $opts->add( 'hideliu', false );
@@ -63,32 +62,30 @@ class SpecialNewpages extends IncludableSpecialPage {
                        $opts->add( $key, $params['default'] );
                }
 
-               // Set values
                $opts->fetchValuesFromRequest( $this->getRequest() );
                if ( $par ) {
                        $this->parseParams( $par );
                }
 
-               // Validate
                $opts->validateIntBounds( 'limit', 0, 5000 );
        }
 
        protected function parseParams( $par ) {
                $bits = preg_split( '/\s*,\s*/', trim( $par ) );
                foreach ( $bits as $bit ) {
-                       if ( 'shownav' == $bit ) {
+                       if ( $bit === 'shownav' ) {
                                $this->showNavigation = true;
                        }
-                       if ( 'hideliu' === $bit ) {
+                       if ( $bit === 'hideliu' ) {
                                $this->opts->setValue( 'hideliu', true );
                        }
-                       if ( 'hidepatrolled' == $bit ) {
+                       if ( $bit === 'hidepatrolled' ) {
                                $this->opts->setValue( 'hidepatrolled', true );
                        }
-                       if ( 'hidebots' == $bit ) {
+                       if ( $bit === 'hidebots' ) {
                                $this->opts->setValue( 'hidebots', true );
                        }
-                       if ( 'showredirs' == $bit ) {
+                       if ( $bit === 'showredirs' ) {
                                $this->opts->setValue( 'hideredirs', false );
                        }
                        if ( is_numeric( $bit ) ) {
@@ -192,9 +189,12 @@ class SpecialNewpages extends IncludableSpecialPage {
                // wfArrayToCgi(), called from LinkRenderer/Title, will not output null and false values
                // to the URL, which would omit some options (T158504). Fix it by explicitly setting them
                // to 0 or 1.
-               $changed = array_map( function ( $value ) {
-                       return $value ? '1' : '0';
-               }, $changed );
+               // Also do this only for boolean options, not eg. namespace or tagfilter
+               foreach ( $changed as $key => $value ) {
+                       if ( array_key_exists( $key, $filters ) ) {
+                               $changed[$key] = $changed[$key] ? '1' : '0';
+                       }
+               }
 
                $self = $this->getPageTitle();
                $linkRenderer = $this->getLinkRenderer();