Revert r26090 -- breaks parameters for Special:Newpages with no explanation other...
authorBrion Vibber <brion@users.mediawiki.org>
Tue, 25 Sep 2007 14:14:49 +0000 (14:14 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Tue, 25 Sep 2007 14:14:49 +0000 (14:14 +0000)
RELEASE-NOTES
includes/SpecialNewpages.php

index 197bfc4..bdb140c 100644 (file)
@@ -67,9 +67,6 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 11331) Add buildConcat() and use CASE not IF for DB compatibility. Make oldimage 
   cascade delete via image table for Postgres, change fa_storage_key TEXT.
 * (bug 11438) Live Preview chops returned text
-* (bug 8376) Special:Newpages accepts namespace in subpage form
-* Make input form of Special:Newpages nicer for RTL wikis
-* Fix namespace selection after submit of Special:Newpages
 * Show the right message on account creation when the user is blocked
 
 === API changes in 1.12 ===
index eb510d9..abd5e01 100644 (file)
@@ -138,28 +138,19 @@ class NewPagesPage extends QueryPage {
         * @return string
         */     
        function getPageHeader() {
-               global $wgScript, $wgContLang;
-               $align = $wgContLang->isRTL() ? 'left' : 'right';
+               global $wgScript;
                $self = SpecialPage::getTitleFor( $this->getName() );
-               $form = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ) .
-                       Xml::hidden( 'title', $self->getPrefixedDBkey() ) .
-                       Xml::openElement( 'table' ) .
-                       "<tr>
-                               <td align=\"$align\">" . Xml::label( wfMsg( 'namespace' ), 'namespace' ) . "</td>
-                               <td>" . Xml::namespaceSelector( intval( $this->namespace ), 'all' ) . "</td>
-                       </tr>
-                       <tr>
-                               <td align=\"$align\">" . Xml::label( wfMsg( 'newpages-username' ), 'mw-np-username' ) . "</td>
-                               <td>" . Xml::input( 'username', 30, $this->username, array( 'id' => 'mw-np-username' ) ) . "</td>
-                       </tr>
-                       <tr>
-                               <td></td>
-                               <td>" . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "</td>
-                       </tr>" .
-                       Xml::closeElement( 'table' ) .
-                       Xml::hidden( 'offset', $this->offset ) .
-                       Xml::hidden( 'limit', $this->limit ) .
-                       Xml::closeElement( 'form' );
+               $form = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) );
+               $form .= Xml::hidden( 'title', $self->getPrefixedDBkey() );
+               # Namespace selector
+               $form .= '<table><tr><td align="right">' . Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '</td>';
+               $form .= '<td>' . Xml::namespaceSelector( $this->namespace, 'all' ) . '</td></tr>';
+               # Username filter
+               $form .= '<tr><td align="right">' . Xml::label( wfMsg( 'newpages-username' ), 'mw-np-username' ) . '</td>';
+               $form .= '<td>' . Xml::input( 'username', 30, $this->username, array( 'id' => 'mw-np-username' ) ) . '</td></tr>';
+               
+               $form .= '<tr><td></td><td>' . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . '</td></tr></table>';
+               $form .= Xml::hidden( 'offset', $this->offset ) . Xml::hidden( 'limit', $this->limit ) . '</form>';
                return $form;
        }
        
@@ -177,7 +168,7 @@ class NewPagesPage extends QueryPage {
 /**
  * constructor
  */
-function wfSpecialNewpages( $par, $specialPage ) {
+function wfSpecialNewpages($par, $specialPage) {
        global $wgRequest, $wgContLang;
 
        list( $limit, $offset ) = wfCheckLimits();
@@ -185,13 +176,32 @@ function wfSpecialNewpages( $par, $specialPage ) {
        $username = '';
 
        if ( $par ) {
-               $namespace = $wgContLang->getNsIndex( $par );
+               $bits = preg_split( '/\s*,\s*/', trim( $par ) );
+               foreach ( $bits as $bit ) {
+                       if ( 'shownav' == $bit )
+                               $shownavigation = true;
+                       if ( is_numeric( $bit ) )
+                               $limit = $bit;
+
+                       $m = array();
+                       if ( preg_match( '/^limit=(\d+)$/', $bit, $m ) )
+                               $limit = intval($m[1]);
+                       if ( preg_match( '/^offset=(\d+)$/', $bit, $m ) )
+                               $offset = intval($m[1]);
+                       if ( preg_match( '/^namespace=(.*)$/', $bit, $m ) ) {
+                               $ns = $wgContLang->getNsIndex( $m[1] );
+                               if( $ns !== false ) {
+                                       $namespace = $ns;
+                               }
+                       }
+               }
        } else {
                if( $ns = $wgRequest->getText( 'namespace', NS_MAIN ) )
                        $namespace = $ns;
+               if( $un = $wgRequest->getText( 'username' ) )
+                       $username = $un;
        }
-       if( $un = $wgRequest->getText( 'username' ) )
-               $username = $un;
+       
        if ( ! isset( $shownavigation ) )
                $shownavigation = ! $specialPage->including();
 
@@ -199,4 +209,4 @@ function wfSpecialNewpages( $par, $specialPage ) {
 
        if ( ! $npp->doFeed( $wgRequest->getVal( 'feed' ), $limit ) )
                $npp->doQuery( $offset, $limit, $shownavigation );
-}
+}
\ No newline at end of file