http://www.mediawiki.org/wiki/Special:Code/MediaWiki/94903
Revision: 94903 Author: ashley Date: 2011-08-18 15:52:27 +0000 (Thu, 18 Aug 2011) Log Message: ----------- SocialProfile: make Special:UserStatus a listed special page, add standard checks (block+DB read-only mode) and move some hardcoded English texts into the i18n file Modified Paths: -------------- trunk/extensions/SocialProfile/UserStatus/SpecialUserStatus.php trunk/extensions/SocialProfile/UserStatus/UserStatus.i18n.php Modified: trunk/extensions/SocialProfile/UserStatus/SpecialUserStatus.php =================================================================== --- trunk/extensions/SocialProfile/UserStatus/SpecialUserStatus.php 2011-08-18 15:39:29 UTC (rev 94902) +++ trunk/extensions/SocialProfile/UserStatus/SpecialUserStatus.php 2011-08-18 15:52:27 UTC (rev 94903) @@ -1,26 +1,53 @@ <?php -class SpecialUserStatus extends UnlistedSpecialPage { +class SpecialUserStatus extends SpecialPage { /** - * Constructor + * Constructor -- set up the new special page */ public function __construct() { - global $wgOut, $wgScriptPath; - - parent::__construct( 'UserStatus' ); - $wgOut->addScriptFile( $wgScriptPath . '/extensions/SocialProfile/UserStatus/UserStatus.js' ); + parent::__construct( 'UserStatus', 'delete-status-update' ); } + /** + * Show the special page + * + * @param $params Mixed: parameter(s) passed to the special page or null + */ public function execute( $params ) { - global $wgOut,$wgUser; - if ( $wgUser->isAllowed( 'delete-status-update' ) ) { - $output = "Enter username: <input type=\"text\" id=\"us-name-input\"> "; - $output .= "<input type=\"button\" value=\"Find\" onclick=\"javascript:UserStatus.specialGetHistory();\">"; - $output .= "<div id=\"us-special\"> </div>"; - $wgOut->addHTML($output); + global $wgOut, $wgScriptPath, $wgUser; + + // Make sure that the user is allowed to access this special page + if( !$wgUser->isAllowed( 'delete-status-update' ) ) { + $wgOut->permissionRequired( 'delete-status-update' ); + return false; } - return; + + // Blocked through Special:Block? No access for you either! + if( $wgUser->isBlocked() ) { + $wgOut->blockedPage( false ); + return false; + } + + // Is the database locked or not? + if( wfReadOnly() ) { + $wgOut->readOnlyPage(); + return false; + } + + // Set the page title and robot policies + $this->setHeaders(); + + // Add required JS file + $wgOut->addScriptFile( $wgScriptPath . '/extensions/SocialProfile/UserStatus/UserStatus.js' ); + + // Build and output the form for deleting users' status updates + $output = wfMsg( 'userstatus-enter-username' ) . + ' <input type="text" id="us-name-input" /> '; + $output .= '<input type="button" value="' . + wfMsg( 'userstatus-find' ) . '" onclick="javascript:UserStatus.specialGetHistory();" />'; + $output .= '<div id="us-special"> </div>'; + $wgOut->addHTML( $output ); } - + } Modified: trunk/extensions/SocialProfile/UserStatus/UserStatus.i18n.php =================================================================== --- trunk/extensions/SocialProfile/UserStatus/UserStatus.i18n.php 2011-08-18 15:39:29 UTC (rev 94902) +++ trunk/extensions/SocialProfile/UserStatus/UserStatus.i18n.php 2011-08-18 15:52:27 UTC (rev 94903) @@ -12,6 +12,9 @@ * @author Yevhenii Vlasenko */ $messages['en'] = array( + 'userstatus' => 'Delete status updates', + 'userstatus-enter-username' => 'Enter username:', + 'userstatus-find' => 'Find', 'userstatus-edit' => 'Edit', 'userstatus-save' => 'Save', 'userstatus-cancel' => 'Cancel', _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs