http://www.mediawiki.org/wiki/Special:Code/MediaWiki/89899

Revision: 89899
Author:   robin
Date:     2011-06-11 23:02:13 +0000 (Sat, 11 Jun 2011)
Log Message:
-----------
* Ability to choose which test wiki for RandomByTest
* Small fixes for ViewUserLang
* Validate prefix in recent changes (if invalid, show all recent changes)

Modified Paths:
--------------
    trunk/extensions/WikimediaIncubator/IncubatorTest.php
    trunk/extensions/WikimediaIncubator/SpecialRandomByTest.php
    trunk/extensions/WikimediaIncubator/SpecialViewUserLang.php
    trunk/extensions/WikimediaIncubator/TestWikiRC.php
    trunk/extensions/WikimediaIncubator/WikimediaIncubator.php

Modified: trunk/extensions/WikimediaIncubator/IncubatorTest.php
===================================================================
--- trunk/extensions/WikimediaIncubator/IncubatorTest.php       2011-06-11 
22:14:03 UTC (rev 89898)
+++ trunk/extensions/WikimediaIncubator/IncubatorTest.php       2011-06-11 
23:02:13 UTC (rev 89899)
@@ -104,7 +104,7 @@
        */
        static function validatePrefix( $title, $onlyprefix = false ) {
                $data = self::analyzePrefix( $title, $onlyprefix );
-               if( isset( $data['error'] ) ) { return true; }
+               if( !isset( $data['error'] ) ) { return true; }
                return false;
        }
 
@@ -252,7 +252,7 @@
        static function efLoadViewUserLangLink( $id, $nt, &$links ) {
                global $wgUser;
                if ( $wgUser->isAllowed( 'viewuserlang' ) ) {
-                       $user = wfUrlencode( $nt->getText() );
+                       $user = $nt->getText();
                        $links[] = $wgUser->getSkin()->link(
                                SpecialPage::getTitleFor( 'ViewUserLang', $user 
),
                                wfMsgHtml( 'wminc-viewuserlang' )

Modified: trunk/extensions/WikimediaIncubator/SpecialRandomByTest.php
===================================================================
--- trunk/extensions/WikimediaIncubator/SpecialRandomByTest.php 2011-06-11 
22:14:03 UTC (rev 89898)
+++ trunk/extensions/WikimediaIncubator/SpecialRandomByTest.php 2011-06-11 
23:02:13 UTC (rev 89899)
@@ -7,11 +7,15 @@
 class SpecialRandomByTest extends RandomPage
 {
        public function __construct() {
-               global $wgUser, $wmincPref, $wmincProjectSite;
-               if( IncubatorTest::isContentProject() ) {
+               global $wgUser, $wgRequest, $wmincPref, $wmincProjectSite;
+               $target = $wgRequest->getVal( 'testwiki' );
+               $target = IncubatorTest::analyzePrefix( $target );
+               $project = ( isset( $target['project'] ) ? $target['project'] : 
'' );
+               $lang = ( isset( $target['lang'] ) ? $target['lang'] : '' );
+               if( IncubatorTest::isContentProject() || ($project && $lang) ) {
                        $dbr = wfGetDB( DB_SLAVE );
                        $this->extra[] = 'page_title' .
-                               $dbr->buildLike( IncubatorTest::displayPrefix() 
. '/', $dbr->anyString() );
+                               $dbr->buildLike( IncubatorTest::displayPrefix( 
$project, $lang ) . '/', $dbr->anyString() );
                } elseif($wgUser->getOption($wmincPref . '-project') == 
$wmincProjectSite['short'] ) {
                        global $wgVersion;
                        // only works above MW 1.17

Modified: trunk/extensions/WikimediaIncubator/SpecialViewUserLang.php
===================================================================
--- trunk/extensions/WikimediaIncubator/SpecialViewUserLang.php 2011-06-11 
22:14:03 UTC (rev 89898)
+++ trunk/extensions/WikimediaIncubator/SpecialViewUserLang.php 2011-06-11 
23:02:13 UTC (rev 89899)
@@ -70,12 +70,15 @@
                global $wgOut, $wmincPref, $wmincProjectSite, $wgUser;
                $sk = $wgUser->getSkin();
                $user = User::newFromName( $target );
+               $name = $user->getName();
+               $id = $user->getId();
                $langNames = Language::getLanguageNames();
-               if ( $user == null || $user->getId() == 0 ) {
+               if ( $user == null || $id == 0 ) {
                        // show error if a user with that name does not exist
                        $wgOut->addHTML( Xml::span( wfMsg( 
'wminc-userdoesnotexist', $target ), 'error' ) );
                } else {
                        $userproject = $user->getOption( $wmincPref . 
'-project' );
+                       $userproject = ($userproject ? $userproject : 'none');
                        $usercode = $user->getOption( $wmincPref . '-code' );
                        $prefix = IncubatorTest::displayPrefix( $userproject, 
$usercode );
                        if ( IncubatorTest::isContentProject( $userproject ) ) {
@@ -85,11 +88,10 @@
                        } else {
                                $testwiki = wfMsgHtml( 'wminc-testwiki-none' );
                        }
-                       $name = $user->getName();
                        $wgOut->addHtml(
                                Xml::openElement( 'ul' ) .
                                '<li>' . wfMsgHtml( 'username' ) . ' ' .
-                                       $sk->userLink( $name, $name ) . 
$sk->userToolLinks( $name, $name ) . '</li>' .
+                                       $sk->userLink( $id, $name ) . 
$sk->userToolLinks( $id, $name, true ) . '</li>' .
                                '<li>' . wfMsgHtml( 'loginlanguagelabel', 
$langNames[$user->getOption( 'language' )] .
                                        ' (' . $user->getOption( 'language' ) . 
')' ) . '</li>' .
                                '<li>' . wfMsgHtml( 'wminc-testwiki' ) . ' ' . 
$testwiki . '</li>' .

Modified: trunk/extensions/WikimediaIncubator/TestWikiRC.php
===================================================================
--- trunk/extensions/WikimediaIncubator/TestWikiRC.php  2011-06-11 22:14:03 UTC 
(rev 89898)
+++ trunk/extensions/WikimediaIncubator/TestWikiRC.php  2011-06-11 23:02:13 UTC 
(rev 89899)
@@ -20,12 +20,14 @@
                        // If project site is selected, display all changes 
except test wiki changes
                        $dbr = wfGetDB( DB_SLAVE );
                        $conds[] = 'rc_title NOT ' . $dbr->buildLike( 'W', 
$dbr->anyChar(), '/', $dbr->anyString() );
-               } else {
+               } elseif( IncubatorTest::validatePrefix( $prefix, true ) ) {
                        // Else, display changes to the selected test wiki in 
the appropriate namespaces
                        $dbr = wfGetDB( DB_SLAVE );
                        $conds['rc_namespace'] = $wmincTestWikiNamespaces;
                        $conds[] = 'rc_title ' . $dbr->buildLike( $prefix . 
'/', $dbr->anyString() ) .
                        ' OR rc_title = ' . $dbr->addQuotes( $prefix );
+               } else {
+                       return true;
                }
                return true;
        }

Modified: trunk/extensions/WikimediaIncubator/WikimediaIncubator.php
===================================================================
--- trunk/extensions/WikimediaIncubator/WikimediaIncubator.php  2011-06-11 
22:14:03 UTC (rev 89898)
+++ trunk/extensions/WikimediaIncubator/WikimediaIncubator.php  2011-06-11 
23:02:13 UTC (rev 89899)
@@ -13,7 +13,7 @@
        'path' => __FILE__,
        'name' => 'Wikimedia Incubator',
        'author' => 'SPQRobin',
-       'version' => '3.1.0',
+       'version' => '3.1.1',
        'url' => 'http://www.mediawiki.org/wiki/Extension:WikimediaIncubator',
        'descriptionmsg' => 'wminc-desc',
 );


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to