From 05cbfe0ad40bd70ab1087cf01fdf8bdcb10ab990 Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Fri, 3 Jan 2014 11:00:22 -0800 Subject: [PATCH] Allow SearchResults to specify that they matched file content Change-Id: I214406250d10b971dcca025da508272d9805567b --- includes/search/SearchEngine.php | 7 +++++++ includes/specials/SpecialSearch.php | 9 +++++++-- languages/messages/MessagesEn.php | 1 + languages/messages/MessagesQqq.php | 1 + maintenance/language/messages.inc | 1 + 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/includes/search/SearchEngine.php b/includes/search/SearchEngine.php index 9ebe5e7aa0..e3a10ab8b8 100644 --- a/includes/search/SearchEngine.php +++ b/includes/search/SearchEngine.php @@ -988,6 +988,13 @@ class SearchResult { function getInterwikiPrefix() { return ''; } + + /** + * Did this match file contents (eg: PDF/DJVU)? + */ + function isFileMatch() { + return false; + } } /** * A SearchResultSet wrapper for SearchEngine::getNearMatch diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index 802efebf8b..18e777a426 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -687,10 +687,15 @@ class SpecialSearch extends SpecialPage { ); } + $fileMatch = ''; // Include a thumbnail for media files... if ( $t->getNamespace() == NS_FILE ) { $img = $result->getFile(); $img = $img ?: wfFindFile( $t ); + if ( $result->isFileMatch() ) { + $fileMatch = "" . + $this->msg( 'search-file-match' )->escaped() . ""; + } if ( $img ) { $thumb = $img->transform( array( 'width' => 120, 'height' => 120 ) ); if ( $thumb ) { @@ -706,7 +711,7 @@ class SpecialSearch extends SpecialPage { $thumb->toHtml( array( 'desc-link' => true ) ) . '' . '' . - $link . + "{$link} {$fileMatch}" . $extract . "
{$score}{$desc} - {$date}{$related}
" . '' . @@ -725,7 +730,7 @@ class SpecialSearch extends SpecialPage { &$score, &$size, &$date, &$related, &$html ) ) ) { - $html = "
  • {$link} {$redirect} {$section}
    {$extract}\n" . + $html = "
  • {$link} {$redirect} {$section} {$fileMatch}
    {$extract}\n" . "
    {$score}{$size} - {$date}{$related}
    " . "
  • \n"; } diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 41a38e4a9a..d7b300cace 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -1839,6 +1839,7 @@ Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA 'search-result-score' => 'Relevance: $1%', 'search-redirect' => '(redirect $1)', 'search-section' => '(section $1)', +'search-file-match' => '(matches file content)', 'search-suggest' => 'Did you mean: $1', 'search-interwiki-caption' => 'Sister projects', 'search-interwiki-default' => '$1 results:', diff --git a/languages/messages/MessagesQqq.php b/languages/messages/MessagesQqq.php index 80c2d6a8a7..64214d2d8b 100644 --- a/languages/messages/MessagesQqq.php +++ b/languages/messages/MessagesQqq.php @@ -2914,6 +2914,7 @@ Parameters: * \$1 - a link to the redirect to the page (so, \$1 is the page that the search result is redirected '''from''')", 'search-section' => 'This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that section is more relevant than the rest of the page. $1 is a section title. {{Identical|Section}}', +'search-file-match' => 'This text will be shown on the search result listing after the page title of a result if the search engine got search results from the contents of files, rather than the pages.', 'search-suggest' => 'Used for "Did you mean" suggestions: * $1 - suggested link', 'search-interwiki-caption' => 'Used in [[Special:Search]], when showing search results from other wikis.', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 3534810ccd..8b76a6b7a9 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -979,6 +979,7 @@ $wgMessageStructure = array( 'search-result-score', 'search-redirect', 'search-section', + 'search-file-match', 'search-suggest', 'search-interwiki-caption', 'search-interwiki-default', -- 2.20.1