Work in progress on ResourceLoader mobilification
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderUserGroupsModule.php
index c81a999..1316f42 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Resource loader module for user customizations.
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
@@ -16,8 +18,6 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @author Trevor Parscal
- * @author Roan Kattouw
  */
 
 /**
@@ -28,34 +28,45 @@ class ResourceLoaderUserGroupsModule extends ResourceLoaderWikiModule {
        /* Protected Methods */
        protected $origin = self::ORIGIN_USER_SITEWIDE;
 
+       /**
+        * @param $context ResourceLoaderContext
+        * @return array
+        */
        protected function getPages( ResourceLoaderContext $context ) {
-               if ( $context->getUser() ) {
-                       $user = User::newFromName( $context->getUser() );
-                       if( $user instanceof User ){
-                               $pages = array();
-                               foreach( $user->getEffectiveGroups() as $group ){
-                                       if( in_array( $group, array( '*', 'user' ) ) ){
-                                               continue;
-                                       }
-                                       $g = ucfirst( $group );
-                                       $pages["MediaWiki:$g.js"] = array( 'type' => 'script' );
-                                       $pages["MediaWiki:$g.css"] = array( 'type' => 'style' );
-                               }
-                               return $pages;
+               global $wgUser;
+
+               $userName = $context->getUser();
+               if ( $userName === null ) {
+                       return array();
+               }
+
+               // Use $wgUser is possible; allows to skip a lot of code
+               if ( is_object( $wgUser ) && $wgUser->getName() == $userName ) {
+                       $user = $wgUser;
+               } else {
+                       $user = User::newFromName( $userName );
+                       if ( !$user instanceof User ) {
+                               return array();
                        }
                }
-               return array();
+
+               $pages = array();
+               foreach( $user->getEffectiveGroups() as $group ) {
+                       if ( in_array( $group, array( '*', 'user' ) ) ) {
+                               continue;
+                       }
+                       $pages["MediaWiki:Group-$group.js"] = array( 'type' => 'script' );
+                       $pages["MediaWiki:Group-$group.css"] = array( 'type' => 'style' );
+               }
+               return $pages;
        }
-       
+
        /* Methods */
-       
+
+       /**
+        * @return string
+        */
        public function getGroup() {
                return 'user';
        }
-       
-       public function getFlip( $context ) {
-               global $wgContLang;
-
-               return $wgContLang->getDir() !== $context->getDirection();
-       }
 }