initializeIconElement( $config ); $this->initializeLabelElement( $config ); $this->initializeGroupElement( $config ); // Properties $this->header = new Tag( 'legend' ); $this->helpText = $config['help'] ?? ''; $this->helpInline = $config['helpInline'] ?? false; // Initialization $this->header ->addClasses( [ 'oo-ui-fieldsetLayout-header' ] ) ->appendContent( $this->icon, $this->label ); $this->group->addClasses( [ 'oo-ui-fieldsetLayout-group' ] ); $this ->addClasses( [ 'oo-ui-fieldsetLayout' ] ) ->prependContent( $this->header, $this->group ); if ( $this->helpText ) { if ( $this->helpInline ) { $helpWidget = new LabelWidget( [ 'classes' => [ 'oo-ui-inline-help' ], 'label' => $this->helpText, ] ); $this->prependContent( $this->header, $helpWidget, $this->group ); } else { $helpWidget = new ButtonWidget( [ 'classes' => [ 'oo-ui-fieldsetLayout-help' ], 'framed' => false, 'icon' => 'info', 'title' => $this->helpText, // TODO We have no way to use localisation messages in PHP // (and to use different languages when used from MediaWiki) // 'label' => msg( 'ooui-field-help' ), // 'invisibleLabel' => true, ] ); $this->header->appendContent( $helpWidget ); } } if ( isset( $config['items'] ) ) { $this->addItems( $config['items'] ); } } public function getConfig( &$config ) { $config['$overlay'] = true; if ( $this->helpText !== '' ) { $config['help'] = $this->helpText; } if ( $this->helpInline ) { $config['helpInline'] = $this->helpInline; } return parent::getConfig( $config ); } }