Page MenuHomePhabricator

LinkSearchNamespace.patch

Authored By
bzimport
Nov 21 2014, 9:28 PM
Size
2 KB
Referenced Files
None
Subscribers
None

LinkSearchNamespace.patch

Index: LinkSearch.php
===================================================================
--- LinkSearch.php (revision 17406)
+++ LinkSearch.php (working copy)
@@ -23,8 +23,19 @@
/*function*/ false, /*file*/ false );
class LinkSearchPage extends QueryPage {
- function __construct( $query ) {
+ /// Query
+ private $mQuery;
+ /// Namespace to search
+ private $mNamespace;
+
+ /// Constructor
+ /**
+ * @param $query string Query
+ * @param $namespace mixed Namespace to search (int) or '' for all namespaces
+ */
+ function __construct( $query, $namespace = '' ) {
$this->mQuery = $query;
+ $this->mNamespace = $namespace;
}
function getName() {
@@ -50,7 +61,7 @@
}
function linkParameters() {
- return array( 'target' => $this->mQuery );
+ return array( 'target' => $this->mQuery, 'namespace' => $this->mNamespace );
}
function getSQL() {
@@ -59,6 +70,12 @@
$page = $dbr->tableName( 'page' );
$externallinks = $dbr->tableName( 'externallinks' );
+ if( $this->mNamespace == '' ) {
+ $namespace = '';
+ } else {
+ $namespace = 'AND page_namespace = ' . intval( $this->mNamespace );
+ }
+
$encSearch = $dbr->addQuotes( self::mungeQuery( $this->mQuery ) );
return
@@ -72,7 +89,8 @@
$externallinks FORCE INDEX (el_index)
WHERE
page_id=el_from
- AND el_index LIKE $encSearch";
+ AND el_index LIKE $encSearch
+ $namespace";
}
function formatResult( $skin, $result ) {
@@ -115,6 +133,7 @@
function wfSpecialLinksearch( $par=null ) {
list( $limit, $offset ) = wfCheckLimits();
$target = $GLOBALS['wgRequest']->getVal( 'target', $par );
+ $namespace = $GLOBALS['wgRequest']->getVal( 'namespace', '' );
$self = Title::makeTitle( NS_SPECIAL, 'Linksearch' );
@@ -124,12 +143,14 @@
wfOpenElement( 'form',
array( 'method' => 'get', 'action' => $GLOBALS['wgScript'] ) ) .
wfHidden( 'title', $self->getPrefixedDbKey() ) .
- wfInput( 'target', 50, $target ) .
+ '<p>' . wfInput( 'target', 50, $target ) . "</p>\n" .
+ '<p>' . wfMsgExt( 'namespace', array( 'parseinline') ) .
+ XML::namespaceSelector( $namespace, '' ) . "</p>\n" .
wfSubmitButton( wfMsg( 'search' ) ) .
wfCloseElement( 'form' ) );
if( $target != '' ) {
- $searcher = new LinkSearchPage( $target );
+ $searcher = new LinkSearchPage( $target, $namespace );
$searcher->doQuery( $offset, $limit );
}
}

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2961
Default Alt Text
LinkSearchNamespace.patch (2 KB)

Event Timeline