Add a hidden stub Special:Search to hand search requests to; this fixes
authorBrion Vibber <brion@users.mediawiki.org>
Sat, 24 Apr 2004 06:25:19 +0000 (06:25 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Sat, 24 Apr 2004 06:25:19 +0000 (06:25 +0000)
the bug that searches get displayed with properties of the main page
(particularly bad in MonoBook). Also cleared up notices in Power Search
from improper use of $_REQUEST.

includes/SearchEngine.php
includes/Skin.php
includes/SkinCologneBlue.php
includes/SkinPHPTal.php
languages/Language.php

index 1730225..9115de3 100644 (file)
@@ -59,7 +59,8 @@ class SearchEngine {
        function powersearch()
        {
                global $wgUser, $wgOut, $wgLang, $wgTitle, $wgRequest;
-
+               $sk =& $wgUser->getSkin();
+               
                $search                 = $wgRequest->getText( 'search' );
                $searchx                = $wgRequest->getVal( 'searchx' );
                $listredirs             = $wgRequest->getVal( 'redirs' );
@@ -86,7 +87,7 @@ class SearchEngine {
                        if ( !isset( $searchx ) ) {
                                $checkboxValue = $this->initNamespaceCheckbox( $i );
                        } else {
-                               $checkboxValue = $_REQUEST[$formVar];
+                               $checkboxValue = $wgRequest->getVal( $formVar );
                        }
 
                        $checked = "";
@@ -130,9 +131,9 @@ class SearchEngine {
                  wfMsg("powersearch") . "\" />\n";
                $ret = str_replace( "$9", $tempText, $ret );
 
-               global $wgScript;
+               $action = $sk->escapeSearchLink();
                $ret = "<br /><br />\n<form id=\"powersearch\" method=\"get\" " .
-                 "action=\"$wgScript\">\n{$ret}\n</form>\n";
+                 "action=\"$action\">\n{$ret}\n</form>\n";
 
                if ( isset ( $searchx ) ) {
                        if ( ! $listredirs ) { 
index 48ba1c9..3faa1a2 100644 (file)
@@ -618,15 +618,23 @@ class Skin {
 
                return $s;
        }
-
+       
+       function getSearchLink() {
+               $searchPage =& Title::makeTitle( NS_SPECIAL, "Search" );
+               return $searchPage->getLocalURL();
+       }
+       
+       function escapeSearchLink() {
+               return htmlspecialchars( $this->getSearchLink() );
+       }
+       
        function searchForm()
        {
                global $wgRequest;
-
-               $search = $wgRequest->getText( 'search' );;
-
+               $search = $wgRequest->getText( 'search' );
+               
                $s = "<form name='search' class='inline' method='post' action=\""
-                 . wfLocalUrl( "" ) . "\">\n"
+                 . $this->escapeSearchLink() . "\">\n"
                  . "<input type='text' name=\"search\" size='19' value=\""
                  . htmlspecialchars(substr($search,0,256)) . "\" />\n"
                  . "<input type='submit' name=\"go\" value=\"" . wfMsg ("go") . "\" />&nbsp;"
index 3aa3be2..51915d4 100644 (file)
@@ -246,8 +246,8 @@ class SkinCologneBlue extends Skin {
                global $wgRequest;
 
                $search = $wgRequest->getText( 'search' );
-               $s = "<form id=\"search\" method=\"get\" class=\"inline\" action=\"" .
-                 wfLocalUrlE( "" ) . "\">";
+               $action = $this->escapeSearchLink();
+               $s = "<form id=\"search\" method=\"get\" class=\"inline\" action=\"$action\">";
                if ( "" != $label ) { $s .= "{$label}: "; }
 
                $s .= "<input type='text' name=\"search\" size='14' value=\""
index a300bf1..cddc753 100644 (file)
                        $tpl->set( "helppage", wfMsg('helppage'));
                        $tpl->set( "sysop", $wgUser->isSysop() );
                        */
-                       $tpl->setRef( "searchaction", &$wgScript );
+                       $tpl->set( "searchaction", $this->escapeSearchLink() );
                        $tpl->setRef( "stylepath", &$wgStyleSheetPath );
                        $tpl->setRef( "logopath", &$wgLogo );
                        $tpl->setRef( "lang", &$wgLanguageCode );
index 796c383..2c71ad2 100644 (file)
@@ -419,7 +419,8 @@ $wgLanguageNamesEn =& $wgLanguageNames;
        "Categories"    => "Page categories",
        "Export"                => "XML page export",
        "Version"               => "Show MediaWiki version",
-       "Allmessages"   => "All system messages"
+       "Allmessages"   => "All system messages",
+       "Search"                => "",
 );
 
 /* private */ $wgSysopSpecialPagesEn = array(