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

Reply via email to