function queryNamespaces()
{
- return "cur_namespace IN (" . implode( ",", $this->namespacesToSearch ) . ")";
+ $namespaces = implode( ",", $this->namespacesToSearch );
+ if ($namespaces == "") {
+ $namespaces = "0";
+ }
+ return "AND cur_namespace IN (" . $namespaces . ")";
#return "1";
}
return "AND cur_is_redirect=0 ";
}
+
+
+ /* private */ function initNamespaceCheckbox( $i )
+ {
+ global $wgUser, $wgNamespacesToBeSearchedDefault;
+
+
+ if ($wgUser->getRights()) {
+ // User is logged in so we retrieve his default namespaces
+ return $wgUser->getOption( "searchNs".$i );
+ }
+ else {
+ // User is not logged in so we give him the global default namespaces
+ return $wgNamespacesToBeSearchedDefault[ $i ];
+ }
+ }
+
+
+
function powersearch()
{
global $wgUser, $wgOut, $wgLang, $wgTitle;
$search = $_REQUEST['search'];
$searchx = $_REQUEST['searchx'];
$listredirs = $_REQUEST['redirs'];
- $nscb[0] = $_REQUEST['ns0'];
- $nscb[1] = $_REQUEST['ns1'];
- $nscb[2] = $_REQUEST['ns2'];
- $nscb[3] = $_REQUEST['ns3'];
- $nscb[4] = $_REQUEST['ns4'];
- $nscb[5] = $_REQUEST['ns5'];
- $nscb[6] = $_REQUEST['ns6'];
- $nscb[7] = $_REQUEST['ns7'];
+
if ( ! isset ( $searchx ) ) { /* First time here */
- $nscb[0] = $listredirs = 1; /* All others should be unset */
+ $listredirs = 1;
+ for ($i = 0; ($i <= 7); $i++)
+ {
+ $nscb[$i] = $this->initNamespaceCheckbox($i);
+ }
+ } else {
+ $nscb[0] = $_REQUEST['ns0'];
+ $nscb[1] = $_REQUEST['ns1'];
+ $nscb[2] = $_REQUEST['ns2'];
+ $nscb[3] = $_REQUEST['ns3'];
+ $nscb[4] = $_REQUEST['ns4'];
+ $nscb[5] = $_REQUEST['ns5'];
+ $nscb[6] = $_REQUEST['ns6'];
+ $nscb[7] = $_REQUEST['ns7'];
}
+
$this->checkboxes["searchx"] = 1;
$ret = wfMsg("powersearchtext");
$sql = "SELECT cur_id,cur_namespace,cur_title," .
"cur_text FROM cur,searchindex " .
"WHERE cur_id=si_page AND {$this->mTitlecond} " .
- "AND {$searchnamespaces} {$redircond}" .
+ "{$searchnamespaces} {$redircond}" .
"LIMIT {$offset}, {$limit}";
$res1 = wfQuery( $sql, $fname );
$num = wfNumRows($res1);
$sql = "SELECT cur_id,cur_namespace,cur_title," .
"cur_text FROM cur,searchindex " .
"WHERE cur_id=si_page AND {$this->mTextcond} " .
- "AND {$searchnamespaces} {$redircond} " .
+ "{$searchnamespaces} {$redircond} " .
"LIMIT {$offset}, {$limit}";
$res2 = wfQuery( $sql, $fname );
$num = $num + wfNumRows($res2);