Revision: 43499
Author:   brion
Date:     2008-11-14 19:11:52 +0000 (Fri, 14 Nov 2008)

Log Message:
-----------
Reverting in-development search changes pending fixing.

Can we please do these sorts of experimental developments on branches before 
putting them to trunk? Our trunk is meant to be functional and ready to deploy 
at all times; doing experiments on trunk delays deployments because we have to 
test and fix them or roll them back.

Reverted:
r43376
r43385
r43403
r43404
r43405
r43406
r43423

Issues I noticed during a few minutes testing:
* Background color mismatch on the frameset for wikis that set a BG color on 
Special:
* 'browse pages with this prefix' is kind of funky in "Pages & Project" (goes 
to main namespace only)
* Which namespaces are in "Pages & Project" is not discoverable
* Default link to nonexistent help page Project:Searching kind of sucks. we 
should avoid doing those by default. It used to link to Help:Contents; any 
reason for the change from one page which might have previously existed to one 
which doesn't?
* "Create the page "Stuff" on this wiki!" - Double page creation links seem 
kind of weird. There should only be one, otherwise why have two?
* Bad prefix link output when search terms are not a valid wiki title
* We've lost the Whatlinkshere link from the old results

Modified Paths:
--------------
    trunk/phase3/includes/DefaultSettings.php
    trunk/phase3/includes/SearchEngine.php
    trunk/phase3/includes/specials/SpecialSearch.php
    trunk/phase3/languages/messages/MessagesEn.php
    trunk/phase3/maintenance/language/messages.inc
    trunk/phase3/skins/common/shared.css
    trunk/phase3/skins/monobook/main.css

Modified: trunk/phase3/includes/DefaultSettings.php
===================================================================
--- trunk/phase3/includes/DefaultSettings.php   2008-11-14 17:21:21 UTC (rev 
43498)
+++ trunk/phase3/includes/DefaultSettings.php   2008-11-14 19:11:52 UTC (rev 
43499)
@@ -1436,7 +1436,7 @@
  * to ensure that client-side caches don't keep obsolete copies of global
  * styles.
  */
-$wgStyleVersion = '184';
+$wgStyleVersion = '183';
 
 
 # Server-side caching:
@@ -1924,20 +1924,6 @@
 );
 
 /**
- * Additional namespaces to those in $wgNamespacesToBeSearchedDefault that
- * will be added to default search for "project" page inclusive searches
- * 
- * Same format as $wgNamespacesToBeSearchedDefault
- */  
-$wgNamespacesToBeSearchedProject = array(
-       NS_USER           => true,
-       NS_PROJECT        => true,      
-       NS_HELP           => true,
-       NS_CATEGORY       => true,
-);
-
-
-/**
  * Site notice shown at the top of each page
  *
  * This message can contain wiki text, and can also be set through the

Modified: trunk/phase3/includes/SearchEngine.php
===================================================================
--- trunk/phase3/includes/SearchEngine.php      2008-11-14 17:21:21 UTC (rev 
43498)
+++ trunk/phase3/includes/SearchEngine.php      2008-11-14 19:11:52 UTC (rev 
43499)
@@ -43,11 +43,6 @@
                return null;
        }
        
-       /** If this search backend can list/unlist redirects */
-       function acceptListRedirects() {
-               return true;
-       }
-       
        /**
         * If an exact title match can be find, or a very slightly close match,
         * return the title. If no match, returns NULL.
@@ -267,52 +262,8 @@
                
                return array_keys($wgNamespacesToBeSearchedDefault, true);
        }
-       
+
        /**
-        * Get a list of namespace names useful for showing in tooltips
-        * and preferences
-        *
-        * @param unknown_type $namespaces
-        */
-       public static function namespacesAsText( $namespaces ){
-               global $wgContLang;
-               
-               $formatted = array_map( 
array($wgContLang,'getFormattedNsText'), $namespaces );
-               foreach( $formatted as $key => $ns ){
-                       if ( empty($ns) )
-                               $formatted[$key] = wfMsg( 'blanknamespace' );
-               }
-               return $formatted;
-       }
-       
-       /**
-        * An array of "project" namespaces indexes typically searched
-        * by logged-in users
-        * 
-        * @return array 
-        * @static
-        */
-       public static function projectNamespaces() {
-               global $wgNamespacesToBeSearchedDefault, 
$wgNamespacesToBeSearchedProject;
-               
-               return array_keys( $wgNamespacesToBeSearchedProject, true );
-       }
-       
-       /**
-        * An array of "project" namespaces indexes typically searched
-        * by logged-in users in addition to the default namespaces
-        * 
-        * @return array 
-        * @static
-        */
-       public static function defaultAndProjectNamespaces() {
-               global $wgNamespacesToBeSearchedDefault, 
$wgNamespacesToBeSearchedProject;
-               
-               return array_keys( $wgNamespacesToBeSearchedDefault + 
-                       $wgNamespacesToBeSearchedProject, true);
-       }
-       
-       /**
         * Return a 'cleaned up' search string
         *
         * @return string
@@ -534,11 +485,11 @@
        var $mRevision = null;
        var $mImage = null;
 
-       function __construct( $row ) {
+       function SearchResult( $row ) {
                $this->mTitle = Title::makeTitle( $row->page_namespace, 
$row->page_title );
                if( !is_null($this->mTitle) ){
                        $this->mRevision = Revision::newFromTitle( 
$this->mTitle );
-                       if( $this->mTitle->getNamespace() === NS_IMAGE )
+                       if($this->mTitle->getNamespace() == NS_IMAGE)
                                $this->mImage = wfFindFile( $this->mTitle );
                }
        }

Modified: trunk/phase3/includes/specials/SpecialSearch.php
===================================================================
--- trunk/phase3/includes/specials/SpecialSearch.php    2008-11-14 17:21:21 UTC 
(rev 43498)
+++ trunk/phase3/includes/specials/SpecialSearch.php    2008-11-14 19:11:52 UTC 
(rev 43499)
@@ -39,8 +39,7 @@
        $searchPage = new SpecialSearch( $wgRequest, $wgUser );
        if( $wgRequest->getVal( 'fulltext' ) 
                || !is_null( $wgRequest->getVal( 'offset' )) 
-               || !is_null( $wgRequest->getVal( 'searchx' )) )
-       {
+               || !is_null( $wgRequest->getVal( 'searchx' ))) {
                $searchPage->showResults( $search, 'search' );
        } else {
                $searchPage->goResult( $search );
@@ -70,7 +69,6 @@
                }
 
                $this->searchRedirects = $request->getcheck( 'redirs' ) ? true 
: false;
-               $this->searchAdvanced = $request->getVal('advanced');
        }
 
        /**
@@ -79,7 +77,8 @@
         * @public
         */
        function goResult( $term ) {
-               global $wgOut, $wgGoToEdit;
+               global $wgOut;
+               global $wgGoToEdit;
 
                $this->setupPage( $term );
 
@@ -87,7 +86,7 @@
                $t = Title::newFromText( $term );
 
                # If the string cannot be used to create a title
-               if( is_null( $t ) ) {
+               if( is_null( $t ) ){
                        return $this->showResults( $term );
                }
 
@@ -103,12 +102,19 @@
                if( ! is_null( $t ) ) {
                        wfRunHooks( 'SpecialSearchNogomatch', array( &$t ) );
                        # If the feature is enabled, go straight to the edit 
page
-                       if( $wgGoToEdit ) {
+                       if ( $wgGoToEdit ) {
                                $wgOut->redirect( $t->getFullURL( 'action=edit' 
) );
                                return;
                        }
                }
 
+               $wgOut->wrapWikiMsg( "==$1==\n", 'notitlematches' );
+               if( $t->quickUserCan( 'create' ) && $t->quickUserCan( 'edit' ) 
) {
+                       $wgOut->addWikiMsg( 'noexactmatch', wfEscapeWikiText( 
$term ) );
+               } else {
+                       $wgOut->addWikiMsg( 'noexactmatch-nocreate', 
wfEscapeWikiText( $term ) );
+               }
+
                return $this->showResults( $term );
        }
 
@@ -123,36 +129,20 @@
                $sk = $wgUser->getSkin();
 
                $this->setupPage( $term );
-               $this->searchEngine = SearchEngine::create();
-               
-               $t = Title::newFromText( $term );
 
-               $wgOut->addHtml( 
-                       Xml::openElement( 'table', array( 'border'=>0, 
'cellpadding'=>0, 'cellspacing'=>0 ) ) .
-                       Xml::openElement( 'tr' ) .
-                       Xml::openElement( 'td' ) . "\n" 
-               );
-               if( $this->searchAdvanced ) {
-                       $wgOut->addHTML( $this->powerSearchBox( $term ) );
-                       $showMenu = false;
-               } else {                        
-                       $wgOut->addHTML( $this->shortDialog( $term ) );
-                       $showMenu = true;
-               }
-               $wgOut->addHtml(
-                       Xml::closeElement('td') .
-                       Xml::closeElement('tr') .
-                       Xml::closeElement('table')
-               );
+               $wgOut->addWikiMsg( 'searchresulttext' );
 
                if( '' === trim( $term ) ) {
                        // Empty query -- straight view of search form
+                       $wgOut->setSubtitle( '' );
+                       $wgOut->addHTML( $this->powerSearchBox( $term ) );
+                       $wgOut->addHTML( $this->powerSearchFocus() );
                        wfProfileOut( $fname );
                        return;
                }
 
                global $wgDisableTextSearch;
-               if( $wgDisableTextSearch ) {
+               if ( $wgDisableTextSearch ) {
                        global $wgSearchForwardUrl;
                        if( $wgSearchForwardUrl ) {
                                $url = str_replace( '$1', urlencode( $term ), 
$wgSearchForwardUrl );
@@ -175,7 +165,9 @@
                        return;
                }
 
-               $search =& $this->searchEngine;
+               $wgOut->addHTML( $this->shortDialog( $term ) );
+
+               $search = SearchEngine::create();
                $search->setLimitOffset( $this->limit, $this->offset );
                $search->setNamespaces( $this->namespaces );
                $search->showRedirects = $this->searchRedirects;
@@ -184,53 +176,43 @@
                $titleMatches = $search->searchTitle( $rewritten );
 
                // Sometimes the search engine knows there are too many hits
-               if( $titleMatches instanceof SearchResultTooMany ) {
+               if ($titleMatches instanceof SearchResultTooMany) {
                        $wgOut->addWikiText( '==' . wfMsg( 'toomanymatches' ) . 
"==\n" );
+                       $wgOut->addHTML( $this->powerSearchBox( $term ) );
+                       $wgOut->addHTML( $this->powerSearchFocus() );
                        wfProfileOut( $fname );
                        return;
                }
                
                $textMatches = $search->searchText( $rewritten );
-               
+
                // did you mean... suggestions
-               if( $textMatches && $textMatches->hasSuggestion() ) {
+               if($textMatches && $textMatches->hasSuggestion()){
                        $st = SpecialPage::getTitleFor( 'Search' );             
        
-                       $stParams = wfArrayToCGI( 
-                               array( 'search' => 
$textMatches->getSuggestionQuery(), 'fulltext'       => wfMsg('search') ),
-                               $this->powerSearchOptions()
-                       );
+                       $stParams = wfArrayToCGI( array( 
+                                       'search'        => 
$textMatches->getSuggestionQuery(), 
+                                       'fulltext'      => wfMsg('search')),
+                                       $this->powerSearchOptions());
+                                       
                        $suggestLink = '<a 
href="'.$st->escapeLocalURL($stParams).'">'.
-                               $textMatches->getSuggestionSnippet().'</a>';
-
+                                       
$textMatches->getSuggestionSnippet().'</a>';
+                                       
                        $wgOut->addHTML('<div 
class="searchdidyoumean">'.wfMsg('search-suggest',$suggestLink).'</div>');
                }
-               
-               // show direct page/create link
-               if( !is_null($t) ) {
-                       if( !$t->exists() ) {
-                               $wgOut->addWikiMsg( 'searchmenu-new', 
wfEscapeWikiText( $t->getPrefixedText() ) );
-                       } else {
-                               $wgOut->addWikiMsg( 'searchmenu-exists', 
wfEscapeWikiText( $t->getPrefixedText() ) );
-                       }
-               }
-       
+
                // show number of results
-               $numTitleMatches = $titleMatches ? $titleMatches->numRows() : 0;
-               $numTextMatches = $textMatches ? $textMatches->numRows() : 0;
-               $highestNum = max( $numTitleMatches, $numTextMatches );
-               // Total query matches (possible false positives)
-               $num = $numTitleMatches + $numTextMatches;
-               // Get total actual results
+               $num = ( $titleMatches ? $titleMatches->numRows() : 0 )
+                       + ( $textMatches ? $textMatches->numRows() : 0);
                $totalNum = 0;
-               if( $titleMatches && !is_null($titleMatches->getTotalHits()) )
+               if($titleMatches && !is_null($titleMatches->getTotalHits()))
                        $totalNum += $titleMatches->getTotalHits();
-               if( $textMatches && !is_null($textMatches->getTotalHits()) )
+               if($textMatches && !is_null($textMatches->getTotalHits()))
                        $totalNum += $textMatches->getTotalHits();
-               if( $num > 0 ) {
-                       if( $totalNum > 0 ) {
+               if ( $num > 0 ) {
+                       if ( $totalNum > 0 ){
                                $top = wfMsgExt('showingresultstotal', array( 
'parseinline' ), 
                                        $this->offset+1, $this->offset+$num, 
$totalNum, $num );
-                       } elseif( $num >= $this->limit ) {
+                       } elseif ( $num >= $this->limit ) {
                                $top = wfShowingResults( $this->offset, 
$this->limit );
                        } else {
                                $top = wfShowingResultsNum( $this->offset, 
$this->limit, $num );
@@ -242,17 +224,16 @@
                if( $num || $this->offset ) {
                        $prevnext = wfViewPrevNext( $this->offset, $this->limit,
                                SpecialPage::getTitleFor( 'Search' ),
-                               wfArrayToCGI( $this->powerSearchOptions(), 
array( 'search' => $term ) ),
-                               ($highestNum < $this->limit)
-                       );
+                               wfArrayToCGI(
+                                       $this->powerSearchOptions(),
+                                       array( 'search' => $term ) ),
+                                       ($num < $this->limit) );
                        $wgOut->addHTML( "<p 
class='mw-search-pager-top'>{$prevnext}</p>\n" );
                        wfRunHooks( 'SpecialSearchResults', array( $term, 
&$titleMatches, &$textMatches ) );
                } else {
                        wfRunHooks( 'SpecialSearchNoResults', array( $term ) );
                }
 
-               $wgOut->addHtml( "<div class='searchresults'>" );
-
                if( $titleMatches ) {
                        if( $titleMatches->numRows() ) {
                                $wgOut->wrapWikiMsg( "==$1==\n", 'titlematches' 
);
@@ -282,27 +263,30 @@
                        $textMatches->free();
                }
 
-               if( $num == 0 ) {
-                       $wgOut->addWikiMsg( 'search-nonefound' );
+               if ( $num == 0 ) {
+                       $wgOut->addWikiMsg( 'nonefound' );
                }
-
-               $wgOut->addHtml( "</div>" );
-
                if( $num || $this->offset ) {
                        $wgOut->addHTML( "<p 
class='mw-search-pager-bottom'>{$prevnext}</p>\n" );
                }
+               $wgOut->addHTML( $this->powerSearchBox( $term ) );
                wfProfileOut( $fname );
        }
+
+       #------------------------------------------------------------------
+       # Private methods below this line
        
        /**
         *
         */
-       protected function setupPage( $term ) {
+       function setupPage( $term ) {
                global $wgOut;
-               if( !empty( $term ) ) {
+               if( !empty( $term ) ){
                        $wgOut->setPageTitle( wfMsg( 'searchresults') );
                        $wgOut->setHTMLTitle( wfMsg( 'pagetitle', wfMsg( 
'searchresults-title', $term) ) );
                }                       
+               $subtitlemsg = ( Title::newFromText( $term ) ? 'searchsubtitle' 
: 'searchsubtitleinvalid' );
+               $wgOut->setSubtitle( $wgOut->parse( wfMsg( $subtitlemsg, 
wfEscapeWikiText($term) ) ) );
                $wgOut->setArticleRelated( false );
                $wgOut->setRobotPolicy( 'noindex,nofollow' );
        }
@@ -313,8 +297,9 @@
         *
         * @param WebRequest $request
         * @return array
+        * @private
         */
-       protected function powerSearch( &$request ) {
+       function powerSearch( &$request ) {
                $arr = array();
                foreach( SearchEngine::searchableNamespaces() as $ns => $name ) 
{
                        if( $request->getCheck( 'ns' . $ns ) ) {
@@ -327,15 +312,14 @@
        /**
         * Reconstruct the 'power search' options for links
         * @return array
+        * @private
         */
-       protected function powerSearchOptions() {
+       function powerSearchOptions() {
                $opt = array();
                foreach( $this->namespaces as $n ) {
                        $opt['ns' . $n] = 1;
                }
                $opt['redirs'] = $this->searchRedirects ? 1 : 0;
-               if( $this->searchAdvanced )
-                       $opt['advanced'] = $this->searchAdvanced;
                return $opt;
        }
 
@@ -344,11 +328,11 @@
         * 
         * @param SearchResultSet $matches
         */
-       protected function showMatches( &$matches ) {
-               global $wgContLang;
+       function showMatches( &$matches ) {
                $fname = 'SpecialSearch::showMatches';
                wfProfileIn( $fname );
 
+               global $wgContLang;
                $terms = $wgContLang->convertForSearchResult( 
$matches->termMatches() );
 
                $out = "";
@@ -360,12 +344,14 @@
                
                $off = $this->offset + 1;
                $out .= "<ul class='mw-search-results'>\n";
+
                while( $result = $matches->next() ) {
                        $out .= $this->showHit( $result, $terms );
                }
                $out .= "</ul>\n";
 
                // convert the whole thing to desired language variant
+               global $wgContLang;
                $out = $wgContLang->convert( $out );
                wfProfileOut( $fname );
                return $out;
@@ -376,7 +362,7 @@
         * @param SearchResult $result
         * @param array $terms terms to highlight
         */
-       protected function showHit( $result, $terms ) {
+       function showHit( $result, $terms ) {
                $fname = 'SpecialSearch::showHit';
                wfProfileIn( $fname );
                global $wgUser, $wgContLang, $wgLang;
@@ -394,7 +380,7 @@
                //If page content is not readable, just return the title.
                //This is not quite safe, but better than showing excerpts from 
non-readable pages
                //Note that hiding the entry entirely would screw up paging.
-               if(!$t->userCanRead()) {
+               if (!$t->userCanRead()) {
                        wfProfileOut( $fname );
                        return "<li>{$link}</li>\n";
                }
@@ -448,7 +434,7 @@
 
                // link to related articles if supported
                $related = '';
-               if( $result->hasRelated() ) {
+               if( $result->hasRelated() ){
                        $st = SpecialPage::getTitleFor( 'Search' );
                        $stParams = wfArrayToCGI( $this->powerSearchOptions(),
                                array('search'    => 
wfMsgForContent('searchrelated').':'.$t->getPrefixedText(),
@@ -466,13 +452,14 @@
                                if( $thumb ) {
                                        $desc = $img->getShortDesc();
                                        wfProfileOut( $fname );
+                                       // Ugly table. :D
                                        // Float doesn't seem to interact well 
with the bullets.
-                                       // Table messes up vertical alignment 
of the bullets.
-                                       // Bullets are therefore disabled 
(didn't look great anyway).
+                                       // Table messes up vertical alignment 
of the bullet, but I'm
+                                       // not sure what more I can do about 
that. :(
                                        return "<li>" .
                                                '<table 
class="searchResultImage">' .
                                                '<tr>' .
-                                               '<td width="120" align="center" 
valign="top">' .
+                                               '<td width="120" 
align="center">' .
                                                $thumb->toHtml( array( 
'desc-link' => true ) ) .
                                                '</td>' .
                                                '<td valign="top">' .
@@ -499,22 +486,21 @@
         * 
         * @param SearchResultSet $matches
         */
-       protected function showInterwiki( &$matches, $query ) {
+       function showInterwiki( &$matches, $query ) {
                $fname = 'SpecialSearch::showInterwiki';
                wfProfileIn( $fname );
 
                global $wgContLang;
                $terms = $wgContLang->convertForSearchResult( 
$matches->termMatches() );
 
-               $out = "<div id='mw-search-interwiki'><div 
id='mw-search-interwiki-caption'>".
-                       wfMsg('search-interwiki-caption')."</div>\n";           
+               $out = "<div id='mw-search-interwiki'><div 
id='mw-search-interwiki-caption'>".wfMsg('search-interwiki-caption')."</div>\n";
             
                $off = $this->offset + 1;
                $out .= "<ul start='{$off}' class='mw-search-iwresults'>\n";
 
                // work out custom project captions
                $customCaptions = array();
                $customLines = explode("\n",wfMsg('search-interwiki-custom')); 
// format per line <iwprefix>:<caption>
-               foreach($customLines as $line) {
+               foreach($customLines as $line){
                        $parts = explode(":",$line,2);
                        if(count($parts) == 2) // validate line
                                $customCaptions[$parts[0]] = $parts[1]; 
@@ -545,7 +531,7 @@
         * @param string $query 
         * @param array $customCaptions iw prefix -> caption
         */
-       protected function showInterwikiHit( $result, $lastInterwiki, $terms, 
$query, $customCaptions) {
+       function showInterwikiHit( $result, $lastInterwiki, $terms, $query, 
$customCaptions){
                $fname = 'SpecialSearch::showInterwikiHit';
                wfProfileIn( $fname );
                global $wgUser, $wgContLang, $wgLang;
@@ -571,7 +557,7 @@
 
                $out = "";
                // display project name 
-               if(is_null($lastInterwiki) || $lastInterwiki != 
$t->getInterwiki()) {
+               if(is_null($lastInterwiki) || $lastInterwiki != 
$t->getInterwiki()){
                        if( key_exists($t->getInterwiki(),$customCaptions) )
                                // captions from 'search-interwiki-custom'
                                $caption = $customCaptions[$t->getInterwiki()];
@@ -585,8 +571,7 @@
                        $searchTitle = 
Title::newFromText($t->getInterwiki().":Special:Search");                       
 
                        $searchLink = $sk->makeKnownLinkObj( $searchTitle, 
wfMsg('search-interwiki-more'),
                                wfArrayToCGI(array('search' => $query, 
'fulltext' => 'Search'))); 
-                       $out .= "</ul><div 
class='mw-search-interwiki-project'><span class='mw-search-interwiki-more'>
-                               {$searchLink}</span>{$caption}</div>\n<ul>";
+                       $out .= "</ul><div 
class='mw-search-interwiki-project'><span 
class='mw-search-interwiki-more'>{$searchLink}</span>{$caption}</div>\n<ul>";
                }
 
                $out .= "<li>{$link} {$redirect}</li>\n"; 
@@ -600,7 +585,7 @@
         * @param $term string: search term
         * @return $out string: HTML form
         */
-       protected function powerSearchBox( $term ) {
+       function powerSearchBox( $term ) {
                global $wgScript;
 
                $namespaces = '';
@@ -614,189 +599,61 @@
                                        Xml::closeElement( 'span' ) . "\n";
                }
 
-               if( $this->searchEngine->acceptListRedirects() ) {
-                       $redirect = Xml::check( 'redirs', 
$this->searchRedirects, array( 'value' => '1', 'id' => 'redirs' ) );
-                       $redirectLabel =  Xml::label( wfMsg( 
'powersearch-redir' ), 'redirs' );
-               } else{
-                       $redirect = '';
-                       $redirectLabel = '';
-               }
+               $redirect = Xml::check( 'redirs', $this->searchRedirects, 
array( 'value' => '1', 'id' => 'redirs' ) );
+               $redirectLabel = Xml::label( wfMsg( 'powersearch-redir' ), 
'redirs' );
                $searchField = Xml::input( 'search', 50, $term, array( 'type' 
=> 'text', 'id' => 'powerSearchText' ) );
                $searchButton = Xml::submitButton( wfMsg( 'powersearch' ), 
array( 'name' => 'fulltext' ) ) . "\n";
                $searchTitle = SpecialPage::getTitleFor( 'Search' );
                
                $out = Xml::openElement( 'form', array( 'id' => 'powersearch', 
'method' => 'get', 'action' => $wgScript ) ) .
-                       Xml::hidden( 'title', $searchTitle->getPrefixedText() ) 
.
-                       Xml::hidden( 'advanced', 1 ) .
-                       "<p>" .
-                       wfMsgExt( 'powersearch-ns', array( 'parseinline' ) ) .
-                       "<br />" .
-                       $namespaces .
-                       "</p>" .
-                       "<p>" .
-                       $redirect . " " . $redirectLabel .
-                       "</p>" .
-                       wfMsgExt( 'powersearch-field', array( 'parseinline' ) ) 
.
-                       "&nbsp;" .
-                       $searchField .
-                       "&nbsp;" .
-                       $searchButton .
-                       ' (' . wfMsgExt('searchmenu-help',array('parseinline') 
) . ')' .
+                       Xml::fieldset( wfMsg( 'powersearch-legend' ),
+                               Xml::hidden( 'title', 
$searchTitle->getPrefixedText() ) .
+                               "<p>" .
+                               wfMsgExt( 'powersearch-ns', array( 
'parseinline' ) ) .
+                               "<br />" .
+                               $namespaces .
+                               "</p>" .
+                               "<p>" .
+                               $redirect . " " . $redirectLabel .
+                               "</p>" .
+                               wfMsgExt( 'powersearch-field', array( 
'parseinline' ) ) .
+                               "&nbsp;" .
+                               $searchField .
+                               "&nbsp;" .
+                               $searchButton ) .
                        "</form>";
-               if( $term )
-                       $out .= wfMsgExt( 'searchmenu-prefix', 
array('parseinline'), $term );
 
-               return Xml::openElement( 'fieldset', array('id' => 
'mw-searchoptions','style' => 'margin:0em;') ) .
-                       Xml::element( 'legend', null, 
wfMsg('searchmenu-legend') ) .
-                       $this->formHeader($term) . $out . 
-                       Xml::closeElement( 'fieldset' );
+               return $out;
        }
 
-       protected function powerSearchFocus() {
+       function powerSearchFocus() {
                global $wgJsMimeType;
                return "<script type=\"$wgJsMimeType\">" .
-                       "hookEvent(\"load\", function() {" .
+                       "hookEvent(\"load\", function(){" .
                                
"document.getElementById('powerSearchText').focus();" .
                        "});" .
                        "</script>";
        }
-       
-       /** Make a search link with some target namespaces */
-       protected function makeSearchLink( $term, $namespaces, $label, 
$tooltip, $params=array() ) {
-               $opt = $params;
-               foreach( $namespaces as $n ) {
-                       $opt['ns' . $n] = 1;
-               }
-               $opt['redirs'] = $this->searchRedirects ? 1 : 0;
 
-               $st = SpecialPage::getTitleFor( 'Search' );             
-               $stParams = wfArrayToCGI( array( 'search' => $term, 'fulltext' 
=> wfMsg( 'search' ) ), $opt );
-
-               return Xml::element( 'a', 
-                       array( 'href'=> $st->getLocalURL( $stParams ), 'title' 
=> $tooltip ), 
-                       $label );       
-       }
-       
-       /** Check if query starts with image: prefix */
-       protected function startsWithImage( $term ) {
-               global $wgContLang;
-               
-               $p = explode( ':', $term );
-               if( count( $p ) > 1 ) {
-                       return $wgContLang->getNsIndex( $p[0] ) == NS_IMAGE;
-               }
-               return false;
-       }
-
-       protected function formHeader( $term ) {
-               global $wgContLang, $wgCanonicalNamespaceNames;
-               
-               $sep = '&nbsp;&nbsp;&nbsp;';
-               $out = Xml::openElement('div', array( 'style' => 
'padding-bottom:0.5em;' ) );
-               
-               $bareterm = $term;
-               if( $this->startsWithImage( $term ) )
-                       $bareterm = substr( $term, strpos( $term, ':' ) + 1 ); 
// delete all/image prefix
-                       
-               $nsAllSet = array_keys( SearchEngine::searchableNamespaces() );
-               // figure out the active search profile header
-               if( $this->searchAdvanced )
-                       $active = 'advanced';
-               else if( $this->namespaces === NS_IMAGE || 
$this->startsWithImage( $term ) )
-                       $active = 'images';
-               elseif( $this->namespaces === $nsAllSet )
-                       $active = 'all';
-               elseif( $this->namespaces === SearchEngine::defaultNamespaces() 
)
-                       $active = 'default';
-               elseif( $this->namespaces === 
SearchEngine::defaultAndProjectNamespaces() )
-                       $active = 'withproject';
-               elseif( $this->namespaces === SearchEngine::projectNamespaces() 
)
-                       $active = 'project';
-               else
-                       $active = 'advanced';
-               
-               
-               // search profiles headers
-               $m = wfMsg( 'searchprofile-articles' );
-               $tt = wfMsg( 'searchprofile-articles-tooltip', 
-                       implode( ', ', SearchEngine::namespacesAsText( 
SearchEngine::defaultNamespaces() ) ) );
-               if( $active == 'default' ) {
-                       $out .= Xml::element( 'strong', array( 'title'=>$tt ), 
$m );    
-               } else {
-                       $out .= $this->makeSearchLink( $bareterm, 
SearchEngine::defaultNamespaces(), $m, $tt );
-               }
-               $out .= $sep;
-               
-               $m = wfMsg( 'searchprofile-images' );
-               $tt = wfMsg( 'searchprofile-images-tooltip' );
-               if( $active == 'images' ) {
-                       $out .= Xml::element( 'strong', array( 'title'=>$tt ), 
$m );    
-               } else {
-                       $imageTextForm = 
$wgContLang->getFormattedNsText(NS_IMAGE).':'.$bareterm;
-                       $out .= $this->makeSearchLink( $imageTextForm, array( 
NS_IMAGE ) , $m, $tt );
-               }
-               $out .= $sep;
-                       
-               $m = wfMsg( 'searchprofile-articles-and-proj' );
-               $tt = wfMsg( 'searchprofile-project-tooltip', 
-                       implode( ', ', SearchEngine::namespacesAsText( 
SearchEngine::defaultAndProjectNamespaces() ) ) );
-               if( $active == 'withproject' ) {
-                       $out .= Xml::element( 'strong', array( 'title'=>$tt ), 
$m );    
-               } else {
-                       $out .= $this->makeSearchLink( $bareterm, 
SearchEngine::defaultAndProjectNamespaces(), $m, $tt );
-               }
-               $out .= $sep;
-               
-               $m = wfMsg( 'searchprofile-project' );
-               $tt = wfMsg( 'searchprofile-project-tooltip', 
-                       implode( ', ', SearchEngine::namespacesAsText( 
SearchEngine::projectNamespaces() ) ) );
-               if( $active == 'project' ) {
-                       $out .= Xml::element( 'strong', array( 'title'=>$tt ), 
$m );    
-               } else {
-                       $out .= $this->makeSearchLink( $bareterm, 
SearchEngine::projectNamespaces(), $m, $tt );
-               }
-               $out .= $sep;
-                       
-               $m = wfMsg( 'searchprofile-everything' );
-               $tt = wfMsg( 'searchprofile-everything-tooltip' );
-               if( $active == 'all' ) {
-                       $out .= Xml::element( 'strong', array( 'title'=>$tt ), 
$m );    
-               } else {
-                       $out .= $this->makeSearchLink( $bareterm, $nsAllSet, 
$m, $tt );
-               }
-               $out .= $sep;
-               
-               $m = wfMsg( 'searchprofile-advanced' );
-               $tt = wfMsg( 'searchprofile-advanced-tooltip' );
-               if( $active == 'advanced' ) {
-                       $out .= Xml::element( 'strong', array( 'title'=>$tt ), 
$m );    
-               } else {
-                       $out .= $this->makeSearchLink( $bareterm, 
$this->namespaces, $m, $tt, array( 'advanced' => '1' ) );
-               }
-               $out .= Xml::closeElement('div') ;
-               
-               return $out;
-       }
-       
-       protected function shortDialog( $term ) {
+       function shortDialog($term) {
                global $wgScript;
-               $out = Xml::openElement( 'form', array( 'id' => 'search', 
'method' => 'get', 'action' => $wgScript ) );
+
+               $out  = Xml::openElement( 'form', array(
+                       'id' => 'search',
+                       'method' => 'get',
+                       'action' => $wgScript
+               ));
                $searchTitle = SpecialPage::getTitleFor( 'Search' );
-               $out .= Xml::hidden( 'title', $searchTitle->getPrefixedText() ) 
. "\n";
-               $out .= Xml::input( 'search', 50, $term, array( 'type' => 
'text', 'id' => 'searchText' ) ) . "\n";
+               $out .= Xml::hidden( 'title', $searchTitle->getPrefixedText() );
+               $out .= Xml::input( 'search', 50, $term, array( 'type' => 
'text', 'id' => 'searchText' ) ) . ' ';
                foreach( SearchEngine::searchableNamespaces() as $ns => $name ) 
{
                        if( in_array( $ns, $this->namespaces ) ) {
                                $out .= Xml::hidden( "ns{$ns}", '1' );
                        }
                }
                $out .= Xml::submitButton( wfMsg( 'searchbutton' ), array( 
'name' => 'fulltext' ) );
-               $out .= ' (' . wfMsgExt('searchmenu-help',array('parseinline') 
) . ')';
                $out .= Xml::closeElement( 'form' );
-               if( $term )
-                       $out .= wfMsgExt( 'searchmenu-prefix', 
array('parseinline'), $term );
-               return Xml::openElement( 'fieldset', array('id' => 
'mw-searchoptions','style' => 'margin:0em;') ) .
-                       Xml::element( 'legend', null, 
wfMsg('searchmenu-legend') ) .
-                       $this->formHeader($term) . $out .
-                       Xml::closeElement( 'fieldset' );
+
+               return $out;
        }
 }

Modified: trunk/phase3/languages/messages/MessagesEn.php
===================================================================
--- trunk/phase3/languages/messages/MessagesEn.php      2008-11-14 17:21:21 UTC 
(rev 43498)
+++ trunk/phase3/languages/messages/MessagesEn.php      2008-11-14 19:11:52 UTC 
(rev 43499)
@@ -1418,61 +1418,49 @@
 'diff-strike'             => "'''strikethrough'''",
 
 # Search results
-'searchresults'                    => 'Search results',
-'searchresults-title'              => 'Search results for "$1"',
-'toomanymatches'                   => 'Too many matches were returned, please 
try a different query',
-'titlematches'                     => 'Page title matches',
-'notitlematches'                   => 'No page title matches',
-'textmatches'                      => 'Page text matches',
-'notextmatches'                    => 'No page text matches',
-'prevn'                            => 'previous $1',
-'nextn'                            => 'next $1',
-'viewprevnext'                     => 'View ($1) ($2) ($3)',
-'searchmenu-legend'                => 'Search options',
-'searchmenu-exists'                => "'''There is page named \"[[\$1]]\" on 
this wiki'''",
-'searchmenu-new'                   => "'''[[:\$1|Create]] the page \"[[\$1]]\" 
on this wiki!'''",
-'searchhelp-url'                   => 'Project:Searching',
-'searchmenu-prefix'                => '[[Special:PrefixIndex/$1|Browse pages 
with this prefix]]',
-'searchmenu-help'                  => 
'[[{{MediaWiki:Searchhelp-url}}|{{int:help}}]]?', # do not translate or 
duplicate this message to other languages
-'searchprofile-articles'           => 'Pages',
-'searchprofile-articles-and-proj'  => 'Pages & Project',
-'searchprofile-project'            => 'Project',
-'searchprofile-images'             => 'Files',
-'searchprofile-everything'         => 'Everything',
-'searchprofile-advanced'           => 'Advanced',
-'searchprofile-articles-tooltip'   => 'Search in $1',
-'searchprofile-project-tooltip'    => 'Search in $1',
-'searchprofile-images-tooltip'     => 'Search for files',
-'searchprofile-everything-tooltip' => 'Search all of content (including talk 
pages)',
-'searchprofile-advanced-tooltip'   => 'Search in custom namespaces',
-'prefs-search-nsdefault'           => 'Search using defaults:',
-'prefs-search-nscustom'            => 'Search custom namespaces:',
-'search-result-size'               => '$1 ({{PLURAL:$2|1 word|$2 words}})',
-'search-result-score'              => 'Relevance: $1%',
-'search-redirect'                  => '(redirect $1)',
-'search-section'                   => '(section $1)',
-'search-suggest'                   => 'Did you mean: $1',
-'search-interwiki-caption'         => 'Sister projects',
-'search-interwiki-default'         => '$1 results:',
-'search-interwiki-custom'          => '', # do not translate or duplicate this 
message to other languages
-'search-interwiki-more'            => '(more)',
-'search-mwsuggest-enabled'         => 'with suggestions',
-'search-mwsuggest-disabled'        => 'no suggestions',
-'search-relatedarticle'            => 'Related',
-'mwsuggest-disable'                => 'Disable AJAX suggestions',
-'searchrelated'                    => 'related',
-'searchall'                        => 'all',
-'showingresults'                   => "Showing below up to {{PLURAL:$1|'''1''' 
result|'''$1''' results}} starting with #'''$2'''.",
-'showingresultsnum'                => "Showing below {{PLURAL:$3|'''1''' 
result|'''$3''' results}} starting with #'''$2'''.",
-'showingresultstotal'              => "Showing below {{PLURAL:$4|result 
'''$1''' of '''$3'''|results '''$1 - $2''' of '''$3'''}}",
-'search-nonefound'                 => 'There were no results matching the 
query.',
-'powersearch'                      => 'Advanced search',
-'powersearch-legend'               => 'Advanced search',
-'powersearch-ns'                   => 'Search in namespaces:',
-'powersearch-redir'                => 'List redirects',
-'powersearch-field'                => 'Search for',
-'search-external'                  => 'External search',
-'searchdisabled'                   => '{{SITENAME}} search is disabled.
+'searchresults'             => 'Search results',
+'searchresults-title'       => 'Search results for $1',
+'searchresulttext'          => 'For more information about searching 
{{SITENAME}}, see [[{{MediaWiki:Helppage}}|{{int:help}}]].',
+'searchsubtitle'            => 'You searched for \'\'\'[[:$1]]\'\'\' 
([[Special:Prefixindex/$1|all pages starting with "$1"]] | 
[[Special:WhatLinksHere/$1|all pages that link to "$1"]])',
+'searchsubtitleinvalid'     => "You searched for '''$1'''",
+'noexactmatch'              => "'''There is no page titled \"\$1\".'''
+You can [[:\$1|create this page]].",
+'noexactmatch-nocreate'     => "'''There is no page titled \"\$1\".'''",
+'toomanymatches'            => 'Too many matches were returned, please try a 
different query',
+'titlematches'              => 'Page title matches',
+'notitlematches'            => 'No page title matches',
+'textmatches'               => 'Page text matches',
+'notextmatches'             => 'No page text matches',
+'prevn'                     => 'previous $1',
+'nextn'                     => 'next $1',
+'viewprevnext'              => 'View ($1) ($2) ($3)',
+'search-result-size'        => '$1 ({{PLURAL:$2|1 word|$2 words}})',
+'search-result-score'       => 'Relevance: $1%',
+'search-redirect'           => '(redirect $1)',
+'search-section'            => '(section $1)',
+'search-suggest'            => 'Did you mean: $1',
+'search-interwiki-caption'  => 'Sister projects',
+'search-interwiki-default'  => '$1 results:',
+'search-interwiki-custom'   => '', # do not translate or duplicate this 
message to other languages
+'search-interwiki-more'     => '(more)',
+'search-mwsuggest-enabled'  => 'with suggestions',
+'search-mwsuggest-disabled' => 'no suggestions',
+'search-relatedarticle'     => 'Related',
+'mwsuggest-disable'         => 'Disable AJAX suggestions',
+'searchrelated'             => 'related',
+'searchall'                 => 'all',
+'showingresults'            => "Showing below up to {{PLURAL:$1|'''1''' 
result|'''$1''' results}} starting with #'''$2'''.",
+'showingresultsnum'         => "Showing below {{PLURAL:$3|'''1''' 
result|'''$3''' results}} starting with #'''$2'''.",
+'showingresultstotal'       => "Showing below {{PLURAL:$4|result '''$1''' of 
'''$3'''|results '''$1 - $2''' of '''$3'''}}",
+'nonefound'                 => "'''Note''': Only some namespaces are searched 
by default.
+Try prefixing your query with ''all:'' to search all content (including talk 
pages, templates, etc), or use the desired namespace as prefix.",
+'powersearch'               => 'Advanced search',
+'powersearch-legend'        => 'Advanced search',
+'powersearch-ns'            => 'Search in namespaces:',
+'powersearch-redir'         => 'List redirects',
+'powersearch-field'         => 'Search for',
+'search-external'           => 'External search',
+'searchdisabled'            => '{{SITENAME}} search is disabled.
 You can search via Google in the meantime.
 Note that their indexes of {{SITENAME}} content may be out of date.',
 'googlesearch'                     => '<form method="get" 
action="http://www.google.com/search"; id="googlesearch">

Modified: trunk/phase3/maintenance/language/messages.inc
===================================================================
--- trunk/phase3/maintenance/language/messages.inc      2008-11-14 17:21:21 UTC 
(rev 43498)
+++ trunk/phase3/maintenance/language/messages.inc      2008-11-14 19:11:52 UTC 
(rev 43499)
@@ -760,6 +760,11 @@
        'search' => array(
                'searchresults',
                'searchresults-title',
+               'searchresulttext',
+               'searchsubtitle',
+               'searchsubtitleinvalid',
+               'noexactmatch',
+               'noexactmatch-nocreate',
                'toomanymatches',
                'titlematches',
                'notitlematches',
@@ -768,25 +773,6 @@
                'prevn',
                'nextn',
                'viewprevnext',
-               'searchmenu-legend',
-               'searchmenu-exists',
-               'searchmenu-new',
-               'searchhelp-url',
-               'searchmenu-prefix',
-               'searchmenu-help',
-               'searchprofile-articles',
-               'searchprofile-articles-and-proj',
-               'searchprofile-project',
-               'searchprofile-images',
-               'searchprofile-everything',
-               'searchprofile-advanced',
-               'searchprofile-articles-tooltip',
-               'searchprofile-project-tooltip',
-               'searchprofile-images-tooltip',
-               'searchprofile-everything-tooltip',
-               'searchprofile-advanced-tooltip',
-               'prefs-search-nsdefault',
-               'prefs-search-nscustom',
                'search-result-size',
                'search-result-score',
                'search-redirect',
@@ -805,7 +791,7 @@
                'showingresults',
                'showingresultsnum',
                'showingresultstotal',
-               'search-nonefound',
+               'nonefound',
                'powersearch',
                'powersearch-legend',
                'powersearch-ns',
@@ -879,6 +865,7 @@
                'allowemail',
                'prefs-searchoptions',
                'prefs-namespaces',
+               'defaultns',
                'default',
                'files',
        ),

Modified: trunk/phase3/skins/common/shared.css
===================================================================
--- trunk/phase3/skins/common/shared.css        2008-11-14 17:21:21 UTC (rev 
43498)
+++ trunk/phase3/skins/common/shared.css        2008-11-14 19:11:52 UTC (rev 
43499)
@@ -106,18 +106,12 @@
 }
 .mw-search-results li {
        padding-bottom: 1em;
-       list-style:none;
 }
 .mw-search-result-data {
        color: green;
        font-size: 97%;
 }
 
-td#mw-search-menu {
-       padding-left:6em;
-       font-size:85%;
-}
-
 div#mw-search-interwiki {
        float: right;
        width: 18em;
@@ -150,14 +144,6 @@
        font-weight: bold;
 }
 
-div.searchresults {
-       border:1px solid darkblue;
-       padding-top: 5px;
-       padding-bottom: 5px;
-       padding-left: 15px;
-       padding-right: 15px;
-}
-
 /*
  * UserRights stuff
  */

Modified: trunk/phase3/skins/monobook/main.css
===================================================================
--- trunk/phase3/skins/monobook/main.css        2008-11-14 17:21:21 UTC (rev 
43498)
+++ trunk/phase3/skins/monobook/main.css        2008-11-14 19:11:52 UTC (rev 
43499)
@@ -1409,10 +1409,6 @@
        padding:2px;
 }
 
-#powersearch p {
-       margin-top:0px;
-}
-
 div.multipageimagenavbox {
    border: solid 1px silver;
    padding: 4px;



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to