MediaWiki
REL1_23
|
00001 <?php 00026 class ResourceLoaderUserGroupsModule extends ResourceLoaderWikiModule { 00027 00028 /* Protected Members */ 00029 00030 protected $origin = self::ORIGIN_USER_SITEWIDE; 00031 protected $targets = array( 'desktop', 'mobile' ); 00032 00033 /* Protected Methods */ 00034 00039 protected function getPages( ResourceLoaderContext $context ) { 00040 global $wgUser, $wgUseSiteJs, $wgUseSiteCss; 00041 00042 $userName = $context->getUser(); 00043 if ( $userName === null ) { 00044 return array(); 00045 } 00046 if ( !$wgUseSiteJs && !$wgUseSiteCss ) { 00047 return array(); 00048 } 00049 00050 // Use $wgUser is possible; allows to skip a lot of code 00051 if ( is_object( $wgUser ) && $wgUser->getName() == $userName ) { 00052 $user = $wgUser; 00053 } else { 00054 $user = User::newFromName( $userName ); 00055 if ( !$user instanceof User ) { 00056 return array(); 00057 } 00058 } 00059 00060 $pages = array(); 00061 foreach ( $user->getEffectiveGroups() as $group ) { 00062 if ( $group == '*' ) { 00063 continue; 00064 } 00065 if ( $wgUseSiteJs ) { 00066 $pages["MediaWiki:Group-$group.js"] = array( 'type' => 'script' ); 00067 } 00068 if ( $wgUseSiteCss ) { 00069 $pages["MediaWiki:Group-$group.css"] = array( 'type' => 'style' ); 00070 } 00071 } 00072 return $pages; 00073 } 00074 00075 /* Methods */ 00076 00080 public function getGroup() { 00081 return 'user'; 00082 } 00083 }