public function index() { wfProfileIn(__METHOD__); global $wgUser; $this->isAnon = $wgUser->isAnon(); $this->username = $wgUser->getName(); $this->avatarContainerAdditionalClass = ''; $this->profileAvatar = ''; $this->setupPersonalUrls(); if ($this->isAnon) { $this->navItemLinkOpeningTag = $this->renderPersonalUrl('login', true); $this->avatarContainerAdditionalClass = ' anon-avatar-placeholder'; $this->loginDropdown = F::app()->renderView('UserLoginSpecial', 'dropdown', ['template' => 'globalNavigationDropdown', 'registerLink' => $this->renderPersonalUrl('register')]); } else { $this->navItemLinkOpeningTag = $this->renderPersonalUrl('userpage', true); if (AvatarService::isEmptyOrFirstDefault($this->username)) { $this->avatarContainerAdditionalClass = ' logged-avatar-placeholder'; } else { $this->avatarContainerAdditionalClass = ' logged-avatar'; $this->profileAvatar = AvatarService::renderAvatar($this->username, AvatarService::AVATAR_SIZE_SMALL_PLUS - 2); //2px css border } $possibleItems = ['mytalk', 'following', 'preferences']; $dropdownItems = []; // Allow hooks to modify the dropdown items. wfRunHooks('AccountNavigationModuleAfterDropdownItems', [&$possibleItems, &$this->personalUrls]); foreach ($possibleItems as $item) { if (isset($this->personalUrls[$item])) { $dropdownItems[] = $this->renderPersonalUrl($item); } } // link to Help:Content ('known' -> never render as redlink) $helpLang = array_key_exists($this->wg->LanguageCode, $this->wg->AvailableHelpLang) ? $this->wg->LanguageCode : 'en'; $dropdownItems[] = Wikia::link(Title::newFromText(wfMessage('helppage')->inLanguage($helpLang)->text()), wfMessage('help')->text(), ['data-id' => 'help'], '', ['known']); $dropdownItems[] = $this->renderPersonalUrl('logout', false); $this->userDropdown = $dropdownItems; } wfProfileOut(__METHOD__); }