Файловый менеджер - Редактировать - /var/www/html/mediawiki-1.43.1/includes/skins/components/SkinComponentSearch.php
Ðазад
<?php namespace MediaWiki\Skin; use InvalidArgumentException; use MediaWiki\Config\Config; use MediaWiki\Html\Html; use MediaWiki\Linker\Linker; use MediaWiki\MainConfigNames; use MediaWiki\Message\Message; use MediaWiki\Title\Title; use MessageLocalizer; /** * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html * * @internal for use inside Skin and SkinTemplate classes only */ class SkinComponentSearch implements SkinComponent { /** @var Config */ private $config; /** @var MessageLocalizer */ private $localizer; /** @var Title */ private $searchTitle; /** @var array|null */ private $cachedData; /** * @param Config $config * @param MessageLocalizer $localizer * @param Title $searchTitle */ public function __construct( Config $config, MessageLocalizer $localizer, Title $searchTitle ) { $this->config = $config; $this->localizer = $localizer; $this->searchTitle = $searchTitle; $this->cachedData = null; } /** * @return MessageLocalizer */ private function getMessageLocalizer(): MessageLocalizer { return $this->localizer; } /** * @param string $key * @return Message */ private function msg( string $key ): Message { return $this->localizer->msg( $key ); } /** * @return Config */ private function getConfig(): Config { return $this->config; } /** * @param array $attrs (optional) will be passed to tooltipAndAccesskeyAttribs * and decorate the resulting input * @return string of HTML input */ private function makeSearchInput( array $attrs = [] ) { return Html::element( 'input', $this->getSearchInputAttributes( $attrs ) ); } /** * @param string $mode representing the type of button wanted * either `go` OR `fulltext`. * @param array $attrs (optional) * @return string of HTML button */ private function makeSearchButton( string $mode, array $attrs = [] ) { switch ( $mode ) { case 'go': case 'fulltext': $realAttrs = [ 'type' => 'submit', 'name' => $mode, 'value' => $this->msg( $mode == 'go' ? 'searcharticle' : 'searchbutton' )->text(), ]; $realAttrs = array_merge( $realAttrs, Linker::tooltipAndAccesskeyAttribs( "search-$mode", [], null, $this->getMessageLocalizer() ), $attrs ); return Html::element( 'input', $realAttrs ); default: throw new InvalidArgumentException( 'Unknown mode passed to ' . __METHOD__ ); } } /** * @param array $attrs (optional) will be passed to tooltipAndAccesskeyAttribs * and decorate the resulting input * @return array attributes of HTML input */ private function getSearchInputAttributes( array $attrs = [] ) { $autoCapHint = $this->getConfig()->get( MainConfigNames::CapitalLinks ); $realAttrs = [ 'type' => 'search', 'name' => 'search', 'placeholder' => $this->msg( 'searchsuggest-search' )->text(), 'aria-label' => $this->msg( 'searchsuggest-search' )->text(), // T251664: Disable autocapitalization of input // method when using fully case-sensitive titles. 'autocapitalize' => $autoCapHint ? 'sentences' : 'none', ]; return array_merge( $realAttrs, Linker::tooltipAndAccesskeyAttribs( 'search', [], null, $this->getMessageLocalizer() ), $attrs ); } /** * @inheritDoc * Since 1.38: * - string html-button-fulltext-attributes HTML attributes for usage on a button * that redirects user to a search page with the current query. * - string html-button-go-attributes HTML attributes for usage on a search * button that redirects user to a title that matches the query. * - string html-input-attributes HTML attributes for input on an input field * that is used to construct a search query. * Since 1.35: * - string form-action Where the form should post to e.g. /w/index.php * - string html-button-search Search button with label * derived from `html-button-go-attributes`. * - string html-button-search-fallback Search button with label * derived from `html-button-fulltext-attributes`. * - string html-input An input element derived from `html-input-attributes`. */ public function getTemplateData(): array { // Optimization: Generate once. if ( $this->cachedData ) { return $this->cachedData; } $config = $this->getConfig(); $localizer = $this->getMessageLocalizer(); $searchButtonAttributes = [ 'class' => 'searchButton' ]; $fallbackButtonAttributes = [ 'class' => 'searchButton mw-fallbackSearchButton' ]; $buttonAttributes = [ 'type' => 'submit', ]; $searchTitle = $this->searchTitle; $inputAttrs = $this->getSearchInputAttributes( [] ); $goButtonAttributes = $searchButtonAttributes + $buttonAttributes + [ 'name' => 'go', ] + Linker::tooltipAndAccesskeyAttribs( 'search-go', [], null, $localizer ); $fulltextButtonAttributes = $fallbackButtonAttributes + $buttonAttributes + [ 'name' => 'fulltext' ] + Linker::tooltipAndAccesskeyAttribs( 'search-fulltext', [], null, $localizer ); $this->cachedData = [ 'search-special-page-title' => $searchTitle->getText(), 'form-action' => $config->get( MainConfigNames::Script ), 'html-button-search-fallback' => $this->makeSearchButton( 'fulltext', $fallbackButtonAttributes + [ 'id' => 'mw-searchButton', ] ), 'html-button-search' => $this->makeSearchButton( 'go', $searchButtonAttributes + [ 'id' => 'searchButton', ] ), 'html-input' => $this->makeSearchInput( [ 'id' => 'searchInput' ] ), 'msg-search' => $this->msg( 'search' )->text(), 'page-title' => $searchTitle->getPrefixedDBkey(), 'array-button-go-attributes' => $goButtonAttributes, 'html-button-go-attributes' => Html::expandAttributes( $goButtonAttributes ), 'array-button-fulltext-attributes' => $fulltextButtonAttributes, 'html-button-fulltext-attributes' => Html::expandAttributes( $fulltextButtonAttributes ), 'array-input-attributes' => $inputAttrs, 'html-input-attributes' => Html::expandAttributes( $inputAttrs ), ]; return $this->cachedData; } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка