Add 'show-multimedia-search-results' to SearchEngine feature data
authorDavid Causse <dcausse@wikimedia.org>
Wed, 10 May 2017 14:44:54 +0000 (16:44 +0200)
committerDavid Causse <dcausse@wikimedia.org>
Thu, 11 May 2017 07:45:04 +0000 (09:45 +0200)
Let the search engine controls if multimedia results have to be shown
in the new interwiki sidebar.

Bug: T164925
Change-Id: Ie3ccb28bf73110b136475e9527a2653bf06b8e45

includes/specials/SpecialSearch.php
includes/widget/search/InterwikiSearchResultSetWidget.php

index ceb6b7b..57be6f0 100644 (file)
@@ -405,7 +405,8 @@ class SpecialSearch extends SpecialPage {
                                $this,
                                $sidebarResultWidget,
                                $linkRenderer,
-                               MediaWikiServices::getInstance()->getInterwikiLookup()
+                               MediaWikiServices::getInstance()->getInterwikiLookup(),
+                               $search->getFeatureData( 'show-multimedia-search-results' )
                        );
                } else {
                        $sidebarResultWidget = new SimpleSearchResultWidget( $this, $linkRenderer );
index 3cdda02..6d942de 100644 (file)
@@ -28,18 +28,22 @@ class InterwikiSearchResultSetWidget implements SearchResultSetWidget {
        protected $iwLookup;
        /** @var $output */
        protected $output;
+       /** @var bool $showMultimedia */
+       protected $showMultimedia;
 
        public function __construct(
                SpecialSearch $specialSearch,
                SearchResultWidget $resultWidget,
                LinkRenderer $linkRenderer,
-               InterwikiLookup $iwLookup
+               InterwikiLookup $iwLookup,
+               $showMultimedia = false
        ) {
                $this->specialSearch = $specialSearch;
                $this->resultWidget = $resultWidget;
                $this->linkRenderer = $linkRenderer;
                $this->iwLookup = $iwLookup;
                $this->output = $specialSearch->getOutput();
+               $this->showMultimedia = $showMultimedia;
        }
        /**
         * @param string $term User provided search term
@@ -54,7 +58,9 @@ class InterwikiSearchResultSetWidget implements SearchResultSetWidget {
 
                $this->loadCustomCaptions();
 
-               $this->output->addModules( 'mediawiki.special.search.commonsInterwikiWidget' );
+               if ( $this->showMultimedia ) {
+                       $this->output->addModules( 'mediawiki.special.search.commonsInterwikiWidget' );
+               }
                $this->output->addModuleStyles( 'mediawiki.special.search.interwikiwidget.styles' );
 
                $iwResults = [];