From 8e90b0a2dd2301d16f08a0eb74bec8496a19dd91 Mon Sep 17 00:00:00 2001 From: Victor Vasiliev Date: Fri, 18 Jan 2008 17:15:27 +0000 Subject: [PATCH] * (bug 10049) Prefix index search and namespaces in Special:Withoutinterwiki --- RELEASE-NOTES | 2 +- includes/SpecialWithoutinterwiki.php | 41 ++++++++++++++++++++++++++-- languages/messages/MessagesEn.php | 1 + 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 54795304b5..a3593b92bf 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -133,7 +133,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * Add DBA caching to installer * (bug 18585) Added a bunch of parameters to the revertpage message * Support redirects in image namespace - +* (bug 10049) Prefix index search and namespaces in Special:Withoutinterwiki === Bug fixes in 1.12 === diff --git a/includes/SpecialWithoutinterwiki.php b/includes/SpecialWithoutinterwiki.php index 334645860f..37d9a282ee 100644 --- a/includes/SpecialWithoutinterwiki.php +++ b/includes/SpecialWithoutinterwiki.php @@ -8,13 +8,41 @@ * @author Rob Church */ class WithoutInterwikiPage extends PageQueryPage { + private $prefix = ''; function getName() { return 'Withoutinterwiki'; } function getPageHeader() { - return '

' . wfMsgExt( 'withoutinterwiki-header', array( 'parseinline' ) ) . '

'; + global $wgScript, $wgContLang; + $prefix = $this->prefix; + $t = SpecialPage::getTitleFor( $this->getName() ); + $align = $wgContLang->isRtl() ? 'left' : 'right'; + + $s = '

' . wfMsgExt( 'withoutinterwiki-header', array( 'parseinline' ) ) . '

'; + $s .= Xml::openElement( 'div', array( 'class' => 'namespaceoptions' ) ); + $s .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ); + $s .= Xml::hidden( 'title', $t->getPrefixedText() ); + $s .= Xml::openElement( 'table', array( 'id' => 'nsselect', 'class' => 'withoutinterwiki' ) ); + $s .= " + " . + Xml::label( wfMsg( 'allpagesprefix' ), 'wiprefix' ) . + " + " . + Xml::input( 'prefix', 20, htmlspecialchars ( $prefix ), array( 'id' => 'wiprefix' ) ) . + " + + + + " . + Xml::submitButton( wfMsgHtml( 'withoutinterwiki-submit' ) ) . + " + "; + $s .= Xml::closeElement( 'table' ); + $s .= Xml::closeElement( 'form' ); + $s .= Xml::closeElement( 'div' ); + return $s; } function sortDescending() { @@ -32,6 +60,7 @@ class WithoutInterwikiPage extends PageQueryPage { function getSQL() { $dbr = wfGetDB( DB_SLAVE ); list( $page, $langlinks ) = $dbr->tableNamesN( 'page', 'langlinks' ); + $prefix = $this->prefix ? "AND page_title LIKE '" . $dbr->escapeLike( $this->prefix ) . "%'" : ''; return "SELECT 'Withoutinterwiki' AS type, page_namespace AS namespace, @@ -42,14 +71,22 @@ class WithoutInterwikiPage extends PageQueryPage { ON ll_from = page_id WHERE ll_title IS NULL AND page_namespace=" . NS_MAIN . " - AND page_is_redirect = 0"; + AND page_is_redirect = 0 + {$prefix}"; + } + + function setPrefix( $prefix = '' ) { + $this->prefix = $prefix; } } function wfSpecialWithoutinterwiki() { + global $wgRequest; list( $limit, $offset ) = wfCheckLimits(); + $prefix = $wgRequest->getVal( 'prefix' ); $wip = new WithoutInterwikiPage(); + $wip->setPrefix( $prefix ); $wip->doQuery( $offset, $limit ); } diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index b3fb7de659..3815912aa8 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -1649,6 +1649,7 @@ The [http://meta.wikimedia.org/wiki/Help:Job_queue job queue] length is '''\$7'' 'withoutinterwiki' => 'Pages without language links', 'withoutinterwiki-header' => 'The following pages do not link to other language versions:', 'withoutinterwiki-summary' => '', # only translate this message to other languages if you have to change it +'withoutinterwiki-submit' => 'Show', 'fewestrevisions' => 'Pages with the fewest revisions', 'fewestrevisions-summary' => '', # only translate this message to other languages if you have to change it -- 2.20.1