http://www.mediawiki.org/wiki/Special:Code/MediaWiki/96122
Revision: 96122
Author: robin
Date: 2011-09-02 16:43:33 +0000 (Fri, 02 Sep 2011)
Log Message:
-----------
* Use more specific css for .subpages and mark it important, because it's
overridden by other css
* Make ListUsersTestWiki work for "incubator" option; reuse existing
IncubatorTest::getUrlParam(); nicer SQL queries with arrays
* Remove link in user right message
Modified Paths:
--------------
trunk/extensions/WikimediaIncubator/InfoPage.css
trunk/extensions/WikimediaIncubator/ListUsersTestWiki.php
trunk/extensions/WikimediaIncubator/WikimediaIncubator.i18n.php
Modified: trunk/extensions/WikimediaIncubator/InfoPage.css
===================================================================
--- trunk/extensions/WikimediaIncubator/InfoPage.css 2011-09-02 16:41:38 UTC
(rev 96121)
+++ trunk/extensions/WikimediaIncubator/InfoPage.css 2011-09-02 16:43:33 UTC
(rev 96122)
@@ -50,6 +50,6 @@
#ca-nstab-main a {
color: black;
}
-.subpages {
- display: none;
+span.subpages {
+ display: none !important;
}
\ No newline at end of file
Modified: trunk/extensions/WikimediaIncubator/ListUsersTestWiki.php
===================================================================
--- trunk/extensions/WikimediaIncubator/ListUsersTestWiki.php 2011-09-02
16:41:38 UTC (rev 96121)
+++ trunk/extensions/WikimediaIncubator/ListUsersTestWiki.php 2011-09-02
16:43:33 UTC (rev 96122)
@@ -5,21 +5,27 @@
*/
class ListUsersTestWiki {
/**
- * Get the &testwiki=wx/xyz parameter and validate it
- * @return Array
+ * If the &testwiki= parameter matches the project site (Incubator),
return that
+ * @return Array or null
*/
- static function getTestWiki() {
- global $wgRequest;
- return IncubatorTest::analyzePrefix( $wgRequest->getVal(
'testwiki' ), true );
+ static function getProjectInput() {
+ global $wmincProjectSite, $wgRequest;
+ $input = strtolower( $wgRequest->getVal( 'testwiki' ) );
+ if( $input == strtolower( $wmincProjectSite['name'] ) || $input
== strtolower( $wmincProjectSite['short'] ) ) {
+ return $wmincProjectSite;
+ }
+ return;
}
/**
* Input form
*/
static function onSpecialListusersHeaderForm( $pager, &$out ) {
- $testwiki = self::getTestWiki();
+ $testwiki = IncubatorTest::getUrlParam();
+ $project = self::getProjectInput();
+ $input = $project ? $project['name'] : ( $testwiki ?
$testwiki['prefix'] : null );
$out .= Xml::label( wfMsg( 'wminc-testwiki' ), 'testwiki' ) . '
' .
- Xml::input( 'testwiki', 20, ( $testwiki['error'] ? null
: $testwiki['prefix'] ), array( 'id' => 'testwiki' ) ) . '<br />';
+ Xml::input( 'testwiki', 20, $input, array( 'id' =>
'testwiki' ) ) . '<br />';
return true;
}
@@ -27,9 +33,11 @@
* Show a message that you are viewing a list of users of a certain
test wiki
*/
static function onSpecialListusersHeader( $pager, &$out ) {
- $testwiki = self::getTestWiki();
- if( !$testwiki['error'] ) {
- $out .= wfMsgWikiHtml( 'wminc-listusers-testwiki',
$testwiki['prefix'] );
+ if( $project = self::getProjectInput() ) {
+ $out .= wfMsgWikiHtml( 'wminc-listusers-testwiki', '"'
. $project['name'] . '"' );
+ } elseif( $testwiki = IncubatorTest::getUrlParam() ) {
+ $link = Linker::linkKnown( Title::newFromText(
$testwiki['prefix'] ) );
+ $out .= wfMsgWikiHtml( 'wminc-listusers-testwiki',
$link );
}
return true;
}
@@ -38,21 +46,25 @@
* Query
*/
static function onSpecialListusersQueryInfo( $pager, &$query ) {
- $testwiki = self::getTestWiki();
- if( !$testwiki['error'] ) {
- global $wmincPref;
- $dbr = wfGetDB( DB_SLAVE );
- $projectPrefName = $dbr->addQuotes(
"$wmincPref-project" );
- $projectPrefVal = $dbr->addQuotes( $testwiki['project']
);
- $langPrefName = $dbr->addQuotes( "$wmincPref-code" );
- $langPrefVal = $dbr->addQuotes( $testwiki['lang'] );
- $query['tables']['p1'] = 'user_properties';
- $query['tables']['p2'] = 'user_properties';
- $query['join_conds']['p1'] = array( 'JOIN',
- "user_id=p1.up_user AND
(p1.up_property=$projectPrefName AND p1.up_value=$projectPrefVal)" );
- $query['join_conds']['p2'] = array( 'JOIN',
- "user_id=p2.up_user AND
(p2.up_property=$langPrefName AND p2.up_value=$langPrefVal)" );
+ $testwiki = IncubatorTest::getUrlParam();
+ $project = self::getProjectInput();
+ if( !$project && !$testwiki ) {
+ return true; # no input or invalid input
}
+ global $wmincPref;
+ $query['tables']['p1'] = 'user_properties';
+ $query['join_conds']['p1'] = array( 'JOIN', array(
'user_id=p1.up_user',
+ 'p1.up_property' => "$wmincPref-project",
+ 'p1.up_value' => $project ? $project['short'] :
$testwiki['project']
+ ) );
+ if( $project ) {
+ return true; # project site doesn't need language code
= returning
+ }
+ $query['tables']['p2'] = 'user_properties';
+ $query['join_conds']['p2'] = array( 'JOIN', array(
'user_id=p2.up_user',
+ 'p2.up_property' => "$wmincPref-code",
+ 'p2.up_value' => $testwiki['lang']
+ ) );
return true;
}
}
Modified: trunk/extensions/WikimediaIncubator/WikimediaIncubator.i18n.php
===================================================================
--- trunk/extensions/WikimediaIncubator/WikimediaIncubator.i18n.php
2011-09-02 16:41:38 UTC (rev 96121)
+++ trunk/extensions/WikimediaIncubator/WikimediaIncubator.i18n.php
2011-09-02 16:43:33 UTC (rev 96122)
@@ -45,7 +45,7 @@
'wminc-ip' => '"$1" is an IP address.',
# User groups
- 'right-viewuserlang' => 'View [[Special:ViewUserLang|user language and
test wiki]]',
+ 'right-viewuserlang' => 'View user language and test wiki',
'group-test-sysop' => 'Test wiki administrators',
'group-test-sysop-member' => 'test wiki administrator',
'grouppage-test-sysop' => 'Project:Test wiki administrators',
@@ -56,7 +56,7 @@
'wminc-code-retired' => 'This language code has been changed and no
longer refers to the original language.',
# Special:ListUsers
- 'wminc-listusers-testwiki' => 'You are viewing users who have set their
test wiki preference to [[$1]].',
+ 'wminc-listusers-testwiki' => 'You are viewing users who have set their
test wiki preference to $1.',
);
/** Message documentation (Message documentation)
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs