MediaWiki
REL1_24
|
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; 00041 00042 $userName = $context->getUser(); 00043 if ( $userName === null ) { 00044 return array(); 00045 } 00046 00047 $useSiteJs = $this->getConfig()->get( 'UseSiteJs' ); 00048 $useSiteCss = $this->getConfig()->get( 'UseSiteCss' ); 00049 if ( !$useSiteJs && !$useSiteCss ) { 00050 return array(); 00051 } 00052 00053 // Use $wgUser is possible; allows to skip a lot of code 00054 if ( is_object( $wgUser ) && $wgUser->getName() == $userName ) { 00055 $user = $wgUser; 00056 } else { 00057 $user = User::newFromName( $userName ); 00058 if ( !$user instanceof User ) { 00059 return array(); 00060 } 00061 } 00062 00063 $pages = array(); 00064 foreach ( $user->getEffectiveGroups() as $group ) { 00065 if ( $group == '*' ) { 00066 continue; 00067 } 00068 if ( $useSiteJs ) { 00069 $pages["MediaWiki:Group-$group.js"] = array( 'type' => 'script' ); 00070 } 00071 if ( $useSiteCss ) { 00072 $pages["MediaWiki:Group-$group.css"] = array( 'type' => 'style' ); 00073 } 00074 } 00075 return $pages; 00076 } 00077 00078 /* Methods */ 00079 00083 public function getGroup() { 00084 return 'user'; 00085 } 00086 }