X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FPrefixSearch.php;h=63a4d9c620fec048f75af9d9100c50c356fd2540;hb=c767dfdea00ab090eb0bf9263754b7d1bc5ff5b0;hp=62ee5c650d12328fe3d5f64a7b0ae6cd6bbb977f;hpb=10d1b7d12b5d097413cd507740c5c71781c2580b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/PrefixSearch.php b/includes/PrefixSearch.php index 62ee5c650d..63a4d9c620 100644 --- a/includes/PrefixSearch.php +++ b/includes/PrefixSearch.php @@ -58,54 +58,14 @@ abstract class PrefixSearch { return []; // Return empty result } - $hasNamespace = $this->extractNamespace( $search ); - if ( $hasNamespace ) { - list( $namespace, $search ) = $hasNamespace; - $namespaces = [ $namespace ]; - } else { - $namespaces = $this->validateNamespaces( $namespaces ); - Hooks::run( 'PrefixSearchExtractNamespace', [ &$namespaces, &$search ] ); + $hasNamespace = SearchEngine::parseNamespacePrefixes( $search, false, true ); + if ( $hasNamespace !== false ) { + list( $search, $namespaces ) = $hasNamespace; } return $this->searchBackend( $namespaces, $search, $limit, $offset ); } - /** - * Figure out if given input contains an explicit namespace. - * - * @param string $input - * @return false|array Array of namespace and remaining text, or false if no namespace given. - */ - protected function extractNamespace( $input ) { - if ( strpos( $input, ':' ) === false ) { - return false; - } - - // Namespace prefix only - $title = Title::newFromText( $input . 'Dummy' ); - if ( - $title && - $title->getText() === 'Dummy' && - !$title->inNamespace( NS_MAIN ) && - !$title->isExternal() - ) { - return [ $title->getNamespace(), '' ]; - } - - // Namespace prefix with additional input - $title = Title::newFromText( $input ); - if ( - $title && - !$title->inNamespace( NS_MAIN ) && - !$title->isExternal() - ) { - // getText provides correct capitalization - return [ $title->getNamespace(), $title->getText() ]; - } - - return false; - } - /** * Do a prefix search for all possible variants of the prefix * @param string $search @@ -211,7 +171,7 @@ abstract class PrefixSearch { $searchParts = explode( '/', $search, 2 ); $searchKey = $searchParts[0]; - $subpageSearch = isset( $searchParts[1] ) ? $searchParts[1] : null; + $subpageSearch = $searchParts[1] ?? null; // Handle subpage search separately. if ( $subpageSearch !== null ) {