From: Alexandre Emsenhuber Date: Fri, 10 Dec 2010 20:51:06 +0000 (+0000) Subject: * Converted Special:Search to subclass SpecialPage X-Git-Tag: 1.31.0-rc.0~33380 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22articles%22%2C%22id_article=%24id_article%22%29%20.%20%22?a=commitdiff_plain;h=11f3ca13056777f10e620e25fc751f2d71ebd712;p=lhc%2Fweb%2Fwiklou.git * Converted Special:Search to subclass SpecialPage * Removed useless calls to $wgOut->setArticleRelated() and $wgOut->setRobotPolicy(), they are already handled by SpecialPage::setHeaders() --- diff --git a/includes/SpecialPage.php b/includes/SpecialPage.php index 479cfd0b1f..f0c854bb9d 100644 --- a/includes/SpecialPage.php +++ b/includes/SpecialPage.php @@ -224,7 +224,7 @@ class SpecialPage { } if( !$wgDisableInternalSearch ) { - self::$mList['Search'] = array( 'SpecialPage', 'Search' ); + self::$mList['Search'] = 'SpecialSearch'; } if( $wgEmailAuthentication ) { diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index e82e8f4ed3..506955229f 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -23,34 +23,45 @@ * @ingroup SpecialPage */ -/** - * Entry point - * - * @param $par String: (default '') - */ -function wfSpecialSearch( $par = '' ) { - global $wgRequest, $wgUser; - // Strip underscores from title parameter; most of the time we'll want - // text form here. But don't strip underscores from actual text params! - $titleParam = str_replace( '_', ' ', $par ); - // Fetch the search term - $search = str_replace( "\n", " ", $wgRequest->getText( 'search', $titleParam ) ); - $searchPage = new SpecialSearch( $wgRequest, $wgUser ); - if( $wgRequest->getVal( 'fulltext' ) - || !is_null( $wgRequest->getVal( 'offset' )) - || !is_null( $wgRequest->getVal( 'searchx' )) ) - { - $searchPage->showResults( $search ); - } else { - $searchPage->goResult( $search ); - } -} - /** * implements Special:Search - Run text & title search and display the output * @ingroup SpecialPage */ -class SpecialSearch { +class SpecialSearch extends SpecialPage { + + public function __construct() { + parent::__construct( 'Search' ); + } + + /** + * Entry point + * + * @param $par String or null + */ + public function execute( $par ) { + global $wgRequest, $wgUser; + + $this->setHeaders(); + $this->outputHeader(); + + // Strip underscores from title parameter; most of the time we'll want + // text form here. But don't strip underscores from actual text params! + $titleParam = str_replace( '_', ' ', $par ); + + // Fetch the search term + $search = str_replace( "\n", " ", $wgRequest->getText( 'search', $titleParam ) ); + + $this->load( $wgRequest, $wgUser ); + + if ( $wgRequest->getVal( 'fulltext' ) + || !is_null( $wgRequest->getVal( 'offset' ) ) + || !is_null( $wgRequest->getVal( 'searchx' ) ) ) + { + $this->showResults( $search ); + } else { + $this->goResult( $search ); + } + } /** * Set up basic search parameters from the request and user settings. @@ -59,7 +70,7 @@ class SpecialSearch { * @param $request WebRequest * @param $user User */ - public function __construct( &$request, &$user ) { + public function load( &$request, &$user ) { list( $this->limit, $this->offset ) = $request->getLimitOffset( 20, 'searchlimit' ); $this->mPrefix = $request->getVal('prefix', ''); # Extract requested namespaces @@ -358,8 +369,6 @@ class SpecialSearch { $wgOut->setPageTitle( wfMsg( 'searchresults') ); $wgOut->setHTMLTitle( wfMsg( 'pagetitle', wfMsg( 'searchresults-title', $term ) ) ); } - $wgOut->setArticleRelated( false ); - $wgOut->setRobotPolicy( 'noindex,nofollow' ); // add javascript specific to special:search $wgOut->addModules( 'mediawiki.legacy.search' ); $wgOut->addModules( 'mediawiki.special.search' );