* (bug 10049) Prefix index search and namespaces in Special:Withoutinterwiki
authorVictor Vasiliev <vasilievvv@users.mediawiki.org>
Fri, 18 Jan 2008 17:15:27 +0000 (17:15 +0000)
committerVictor Vasiliev <vasilievvv@users.mediawiki.org>
Fri, 18 Jan 2008 17:15:27 +0000 (17:15 +0000)
RELEASE-NOTES
includes/SpecialWithoutinterwiki.php
languages/messages/MessagesEn.php

index 5479530..a3593b9 100644 (file)
@@ -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 ===
 
index 3346458..37d9a28 100644 (file)
@@ -8,13 +8,41 @@
  * @author Rob Church <robchur@gmail.com>
  */
 class WithoutInterwikiPage extends PageQueryPage {
+       private $prefix = '';
 
        function getName() {
                return 'Withoutinterwiki';
        }
 
        function getPageHeader() {
-               return '<p>' . wfMsgExt( 'withoutinterwiki-header', array( 'parseinline' ) ) . '</p>';
+               global $wgScript, $wgContLang;
+               $prefix = $this->prefix;
+               $t = SpecialPage::getTitleFor( $this->getName() );
+               $align = $wgContLang->isRtl() ? 'left' : 'right';
+
+               $s = '<p>' . wfMsgExt( 'withoutinterwiki-header', array( 'parseinline' ) ) . '</p>';
+               $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 .= "<tr>
+                               <td align='$align'>" .
+                                       Xml::label( wfMsg( 'allpagesprefix' ), 'wiprefix' ) .
+                               "</td>
+                               <td>" .
+                                       Xml::input( 'prefix', 20, htmlspecialchars ( $prefix ), array( 'id' => 'wiprefix' ) ) .
+                               "</td>
+                       </tr>
+                       <tr>
+                               <td align='$align'></td>
+                               <td>" .
+                                       Xml::submitButton( wfMsgHtml( 'withoutinterwiki-submit' ) ) .
+                               "</td>
+                       </tr>";
+               $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 );
 }
 
index b3fb7de..3815912 100644 (file)
@@ -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