getNamespaceDropdownOptions( $config ); // Parent constructor parent::__construct( $config ); // Properties $this->includeAllValue = isset( $config['includeAllValue'] ) ? $config['includeAllValue'] : null; // Initialization $this->addClasses( array( 'mw-widget-namespaceInputWidget' ) ); } protected function getNamespaceDropdownOptions( array $config ) { $namespaceOptionsParams = isset( $config['includeAllValue'] ) ? array( 'all' => $config['includeAllValue'] ) : array(); $namespaceOptions = \Html::namespaceSelectorOptions( $namespaceOptionsParams ); $options = array(); foreach ( $namespaceOptions as $id => $name ) { $options[] = array( 'data' => (string)$id, 'label' => $name, ); } return $options; } protected function getJavaScriptClassName() { return 'mw.widgets.NamespaceInputWidget'; } public function getConfig( &$config ) { $config['includeAllValue'] = $this->includeAllValue; // Skip DropdownInputWidget's getConfig(), we don't need 'options' config return \OOUI\InputWidget::getConfig( $config ); } }