Merge "Http::getProxy() method to get proxy configuration"
[lhc/web/wiklou.git] / includes / widget / NamespaceInputWidget.php
index a99227e..3e86738 100644 (file)
@@ -18,8 +18,9 @@ class NamespaceInputWidget extends \OOUI\DropdownInputWidget {
         * @param array $config Configuration options
         * @param string $config['includeAllValue'] If specified, add a "all namespaces" option to the
         *     namespace dropdown, and use this as the input value for it
+        * @param number[] $config['exclude'] List of namespace numbers to exclude from the selector
         */
-       public function __construct( array $config = array() ) {
+       public function __construct( array $config = [] ) {
                // Configuration initialization
                $config['options'] = $this->getNamespaceDropdownOptions( $config );
 
@@ -28,22 +29,25 @@ class NamespaceInputWidget extends \OOUI\DropdownInputWidget {
 
                // Properties
                $this->includeAllValue = isset( $config['includeAllValue'] ) ? $config['includeAllValue'] : null;
+               $this->exclude = isset( $config['exclude'] ) ? $config['exclude'] : [];
 
                // Initialization
-               $this->addClasses( array( 'mw-widget-namespaceInputWidget' ) );
+               $this->addClasses( [ 'mw-widget-namespaceInputWidget' ] );
        }
 
        protected function getNamespaceDropdownOptions( array $config ) {
-               $namespaceOptionsParams = isset( $config['includeAllValue'] ) ?
-                       array( 'all' => $config['includeAllValue'] ) : array();
+               $namespaceOptionsParams = [
+                       'all' => isset( $config['includeAllValue'] ) ? $config['includeAllValue'] : null,
+                       'exclude' => isset( $config['exclude'] ) ? $config['exclude'] : null
+               ];
                $namespaceOptions = \Html::namespaceSelectorOptions( $namespaceOptionsParams );
 
-               $options = array();
+               $options = [];
                foreach ( $namespaceOptions as $id => $name ) {
-                       $options[] = array(
+                       $options[] = [
                                'data' => (string)$id,
                                'label' => $name,
-                       );
+                       ];
                }
 
                return $options;
@@ -55,6 +59,7 @@ class NamespaceInputWidget extends \OOUI\DropdownInputWidget {
 
        public function getConfig( &$config ) {
                $config['includeAllValue'] = $this->includeAllValue;
+               $config['exclude'] = $this->exclude;
                // Skip DropdownInputWidget's getConfig(), we don't need 'options' config
                return \OOUI\InputWidget::getConfig( $config );
        }