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