/**
  * Returns an instance of the UserProfileMenu class.
  * 
  * @return	UserProfileMenu
  */
 public static function getInstance()
 {
     if (self::$instance == null) {
         self::$instance = new UserProfileMenu();
     }
     return self::$instance;
 }
 /**
  * @see EventListener::execute()
  */
 public function execute($eventObj, $className, $eventName)
 {
     if (MODULE_USER_INFRACTION == 1) {
         if ($eventName == 'init') {
             if (WCF::getUser()->getPermission('admin.user.infraction.canWarnUser') || USER_CAN_SEE_HIS_WARNINGS && WCF::getUser()->userID == $eventObj->userID) {
                 $eventObj->sqlSelects .= "(SELECT COUNT(*) FROM wcf" . WCF_N . "_user_infraction_warning_to_user WHERE userID = " . $eventObj->userID . ") AS warnings,";
             }
         } else {
             if ($eventName == 'assignVariables') {
                 if (!$eventObj->getUser()->warnings) {
                     // remove warning overview tab
                     foreach (UserProfileMenu::getInstance()->menuItems as $parentMenuItem => $items) {
                         foreach ($items as $key => $item) {
                             if ($item['menuItem'] == 'wcf.user.profile.menu.link.infraction') {
                                 unset(UserProfileMenu::getInstance()->menuItems[$parentMenuItem][$key]);
                             }
                         }
                     }
                 }
                 // add warn button
                 if (WCF::getUser()->getPermission('admin.user.infraction.canWarnUser')) {
                     WCF::getTPL()->append('additionalAdminOptions', '<li><a href="index.php?form=UserWarn&amp;userID=' . $eventObj->userID . SID_ARG_2ND . '">' . WCF::getLanguage()->get('wcf.user.infraction.button.warn') . '</a></li>');
                 }
             }
         }
     }
 }
	/**
	 * @see EventListener::execute()
	 */
	public function execute($eventObj, $className, $eventName) {
		if (!WCF::getUser()->getPermission('user.ucstomUserPages.canViewPages'))
			return;
		
		switch ($className) {
			case 'UserProfileMenu':
				$items = UserCustomPage::getMenuItemsByUserID($eventObj->userID);
		
				foreach ($items as $name => $menuItem) {
					UserProfileMenu::getInstance()->menuItems[''][] = array(
						'menuItem' => $menuItem,
						'parentMenuItem' => '',
						'menuItemLink' => 'index.php?page=UserCustomPage&userID='.$eventObj->userID.'&pageName='.$name.SID_ARG_2ND_NOT_ENCODED,
						'menuItemIcon' => 'messageM.png',
						'permissions' => 'user.customUserPages.canViewPages'
					);
				}
				
				break;
			
			case 'UserProfileFrame':
				if (WCF::getUser()->userID == $eventObj->userID && $eventObj->getUser()->getPermission('user.customUserPages.canUse'))
					WCF::getTPL()->append('additionalUserCardOptions',
						WCF::getTPL()->display('customUserPagesUserCardOption')
					);
				
				break;
		}
	}
 public function show()
 {
     // set active tab
     // set active menu item
     UserProfileMenu::getInstance()->setActiveMenuItem('wcf.user.profile.menu.link.bash.ownEntries');
     parent::show();
 }
 /**
  * @see EventListener::execute()
  */
 public function execute($eventObj, $className, $eventName)
 {
     if ($eventName == 'init') {
         $eventObj->sqlSelects .= "(SELECT COUNT(*) FROM wcf" . WCF_N . "_contest WHERE userID = user.userID) AS contestEntries,";
     } else {
         if ($eventName == 'assignVariables') {
             if (!WCF::getUser()->getPermission('user.contest.canViewContest') || !$eventObj->getUser()->getPermission('user.contest.canUseContest') || !$eventObj->getUser()->contestEntries && (WCF::getUser()->userID != $eventObj->userID || !WCF::getUser()->getPermission('user.contest.canUseContest'))) {
                 // remove contest overview tab
                 foreach (UserProfileMenu::getInstance()->menuItems as $parentMenuItem => $items) {
                     foreach ($items as $key => $item) {
                         if ($item['menuItem'] == 'wcf.user.profile.menu.link.contest') {
                             unset(UserProfileMenu::getInstance()->menuItems[$parentMenuItem][$key]);
                         }
                     }
                 }
             }
         }
     }
 }
 /**
  * Initialises the user profile menu.
  */
 protected static function initUserProfileMenu()
 {
     require_once WCF_DIR . 'lib/page/util/menu/UserProfileMenu.class.php';
     self::$userProfileMenuObj = UserProfileMenu::getInstance();
 }
 /**
  * @see Page::show()
  */
 public function show()
 {
     // set active menu item
     UserProfileMenu::getInstance()->setActiveMenuItem('wcf.user.profile.menu.link.infraction');
     // check permission
     if (!USER_CAN_SEE_HIS_WARNINGS || WCF::getUser()->userID != $this->frame->getUserID()) {
         WCF::getUser()->checkPermission('admin.user.infraction.canWarnUser');
     }
     parent::show();
 }
 /**
  * Assigns variables to the template engine.
  */
 public function assignVariables()
 {
     // call assignVariables event
     EventHandler::fireAction($this, 'assignVariables');
     if (!$this->getUser()->friends || !$this->getUser()->shareWhitelist) {
         // remove friends tab
         foreach (UserProfileMenu::getInstance()->menuItems as $parentMenuItem => $items) {
             foreach ($items as $key => $item) {
                 if ($item['menuItem'] == 'wcf.user.profile.menu.link.friends') {
                     unset(UserProfileMenu::getInstance()->menuItems[$parentMenuItem][$key]);
                 }
             }
         }
     }
     // assign variables
     WCF::getTPL()->assign(array('user' => $this->user, 'userID' => $this->userID, 'connection' => $this->connection, 'network' => $this->network, 'userSymbols' => $this->userSymbols));
 }
 /**
  * @see Page::show()
  */
 public function show()
 {
     UserProfileMenu::getInstance()->setActiveMenuItem('wcf.user.profile.menu.link.guestbook');
     if (!MODULE_USER_GUESTBOOK) {
         throw new IllegalLinkException();
     }
     parent::show();
 }
	/**
	 * @see Page::show()
	 */
	public function show() {
		UserProfileMenu::getInstance()->setActiveMenuItem($this->page->menuItem);
		
		parent::show();
	}
 /**
  * @see	Page::show()
  */
 public function show()
 {
     UserProfileMenu::getInstance()->setActiveMenuItem('wcf.user.profile.menu.link.guestbook');
     // TODO: check permissions and shit
     parent::show();
 }
 /**
  * @see Page::show()
  */
 public function show()
 {
     require_once WCF_DIR . 'lib/page/util/menu/UserProfileMenu.class.php';
     UserProfileMenu::getInstance()->userID = $this->userID;
     UserProfileMenu::getInstance()->setActiveMenuItem('wcf.user.profile.menu.link.guestbook');
     // check permission
     WCF::getUser()->checkPermission('user.guestbook.canRead');
     if ($this->user->ignoredUser) {
         require_once WCF_DIR . 'lib/system/exception/NamedUserException.class.php';
         throw new NamedUserException(WCF::getLanguage()->get('wcf.user.profile.error.ignoredUser', array('$username' => StringUtil::encodeHTML($this->user->username))));
     }
     if (WCF::getUser()->getPermission('user.guestbook.canViewMembersListTab') && WCF::getUser()->getPermission('user.membersList.canView')) {
         HeaderMenu::setActiveMenuItem('wcf.header.menu.memberslist');
     } else {
         if (WCF::getUser()->getPermission('user.guestbook.canViewListMenuButton')) {
             HeaderMenu::setActiveMenuItem('wcf.header.menu.userGuestbook');
         }
     }
     parent::show();
 }
 /**
  * @see Page::show()
  */
 public function show()
 {
     // set active menu item
     UserProfileMenu::getInstance()->setActiveMenuItem('wcf.user.profile.menu.link.profile');
     // update profile hits
     if ($this->frame->getUserID() != WCF::getUser()->userID && !WCF::getSession()->spiderID) {
         $sql = "UPDATE\twcf" . WCF_N . "_user\n\t\t\t\tSET\tprofileHits = profileHits + 1\n\t\t\t\tWHERE\tuserID = " . $this->frame->getUserID();
         WCF::getDB()->registerShutdownUpdate($sql);
         // save visitor
         if (WCF::getUser()->userID && !WCF::getUser()->invisible) {
             $sql = "INSERT INTO\t\t\twcf" . WCF_N . "_user_profile_visitor\n\t\t\t\t\t\t\t\t\t(ownerID, userID, time)\n\t\t\t\t\tVALUES\t\t\t\t(" . $this->frame->getUserID() . ", " . WCF::getUser()->userID . ", " . TIME_NOW . ")\n\t\t\t\t\tON DUPLICATE KEY UPDATE\t\ttime = VALUES(time)";
             WCF::getDB()->registerShutdownUpdate($sql);
         }
     }
     parent::show();
 }
 /**
  * @see Page::show()
  */
 public function show()
 {
     // check permission
     if (!WCF::getUser()->userID) {
         require_once WCF_DIR . 'lib/system/exception/PermissionDeniedException.class.php';
         throw new PermissionDeniedException();
     }
     // set active tab
     require_once WCF_DIR . 'lib/page/util/menu/UserProfileMenu.class.php';
     UserProfileMenu::getInstance()->userID = $this->userID;
     UserCPMenu::getInstance()->setActiveMenuItem('wcf.user.usercp.menu.link.profile.guestbook');
     if (WCF::getUser()->getPermission('user.guestbook.canViewMembersListTab') && WCF::getUser()->getPermission('user.membersList.canView')) {
         HeaderMenu::setActiveMenuItem('wcf.header.menu.memberslist');
     } else {
         if (WCF::getUser()->getPermission('user.guestbook.canViewListMenuButton')) {
             HeaderMenu::setActiveMenuItem('wcf.header.menu.userGuestbook');
         }
     }
     require_once WCF_DIR . 'lib/data/message/attachment/AttachmentsEditor.class.php';
     $this->attachmentsEditor = new AttachmentsEditor();
     // show form
     parent::show();
 }
 /**
  * @see Page::show()
  */
 public function show()
 {
     // check permission
     if (!WCF::getUser()->getPermission('user.wantedPoster.canViewWantedPoster')) {
         require_once WCF_DIR . 'lib/system/exception/PermissionDeniedException.class.php';
         throw new PermissionDeniedException();
     } else {
         if ($this->user->ignoredUser) {
             require_once WCF_DIR . 'lib/system/exception/NamedUserException.class.php';
             throw new NamedUserException(WCF::getLanguage()->get('wcf.user.profile.error.ignoredUser', array('$username' => StringUtil::encodeHTML($this->user->username))));
         }
     }
     if (WCF::getUser()->getPermission('user.wantedPoster.canViewMembersListTab') && WCF::getUser()->getPermission('user.membersList.canView')) {
         HeaderMenu::setActiveMenuItem('wcf.header.menu.memberslist');
     } else {
         if (WCF::getUser()->getPermission('user.wantedPoster.canViewHeaderMenu')) {
             HeaderMenu::setActiveMenuItem('wcf.header.menu.userWantedPoster');
         }
     }
     require_once WCF_DIR . 'lib/page/util/menu/UserProfileMenu.class.php';
     UserProfileMenu::getInstance()->userID = $this->userID;
     UserProfileMenu::getInstance()->setActiveMenuItem('wcf.user.profile.menu.link.wantedPoster');
     // get attachments
     require_once WCF_DIR . 'lib/data/message/attachment/Attachments.class.php';
     $attachments = new Attachments($this->userID, 'wantedPoster');
     $this->attachmentList = $attachments->getSortedAttachments();
     require_once WCF_DIR . 'lib/data/message/bbcode/AttachmentBBCode.class.php';
     AttachmentBBCode::setAttachments($this->attachmentList);
     parent::show();
 }