/** * Loads a list of recent activity entries. * * @return array */ public function load() { $eventList = new ViewableUserActivityEventList(); if ($this->parameters['lastEventID']) { $eventList->getConditionBuilder()->add("user_activity_event.time <= ?", array($this->parameters['lastEventTime'])); $eventList->getConditionBuilder()->add("user_activity_event.eventID < ?", array($this->parameters['lastEventID'])); } else { $eventList->getConditionBuilder()->add("user_activity_event.time < ?", array($this->parameters['lastEventTime'])); } // profile view if ($this->parameters['userID']) { $eventList->getConditionBuilder()->add("user_activity_event.userID = ?", array($this->parameters['userID'])); } else { if ($this->parameters['filteredByFollowedUsers'] && count(WCF::getUserProfileHandler()->getFollowingUsers())) { $eventList->getConditionBuilder()->add('user_activity_event.userID IN (?)', array(WCF::getUserProfileHandler()->getFollowingUsers())); } } $eventList->readObjects(); $lastEventTime = $eventList->getLastEventTime(); if (!$lastEventTime) { return array(); } // removes orphaned and non-accessable events UserActivityEventHandler::validateEvents($eventList); if (!count($eventList)) { return array(); } // parse template WCF::getTPL()->assign(array('eventList' => $eventList)); $events = $eventList->getObjects(); return array('lastEventID' => end($events)->eventID, 'lastEventTime' => $lastEventTime, 'template' => WCF::getTPL()->fetch('recentActivityListItem')); }
/** * @see \wcf\system\dashboard\box\IDashboardBox::init() */ public function init(DashboardBox $box, IPage $page) { parent::init($box, $page); // get current date $currentDay = DateUtil::format(null, 'm-d'); $date = explode('-', DateUtil::format(null, 'Y-n-j')); // get user ids $userIDs = UserBirthdayCache::getInstance()->getBirthdays($date[1], $date[2]); $userIDs = array_intersect($userIDs, WCF::getUserProfileHandler()->getFollowingUsers()); if (!empty($userIDs)) { $userProfileList = new UserProfileList(); $userProfileList->setObjectIDs($userIDs); $userProfileList->readObjects(); $i = 0; foreach ($userProfileList as $userProfile) { if ($i == 10) { break; } if (!$userProfile->isProtected() && substr($userProfile->birthday, 5) == $currentDay) { $this->userProfiles[] = $userProfile; $i++; } } } $this->fetched(); }
/** * @see \wcf\system\dashboard\box\IDashboardBox::init() */ public function init(DashboardBox $box, IPage $page) { parent::init($box, $page); if (MODULE_USERS_ONLINE && WCF::getSession()->getPermission('user.profile.canViewUsersOnlineList') && count(WCF::getUserProfileHandler()->getFollowingUsers())) { $this->usersOnlineList = new UsersOnlineList(); $this->usersOnlineList->getConditionBuilder()->add('session.userID IN (?)', array(WCF::getUserProfileHandler()->getFollowingUsers())); $this->usersOnlineList->sqlLimit = 10; $this->usersOnlineList->readObjects(); } $this->fetched(); }
/** * @see \wcf\system\dashboard\box\IDashboardBox::init() */ public function init(DashboardBox $box, IPage $page) { parent::init($box, $page); if (WCF::getUser()->userID && count(WCF::getUserProfileHandler()->getFollowingUsers())) { $this->canFilterByFollowedUsers = true; } $this->eventList = new ViewableUserActivityEventList(); if ($this->canFilterByFollowedUsers && WCF::getUser()->recentActivitiesFilterByFollowing) { $this->filteredByFollowedUsers = true; $this->eventList->getConditionBuilder()->add('user_activity_event.userID IN (?)', array(WCF::getUserProfileHandler()->getFollowingUsers())); } $this->eventList->sqlLimit = RECENT_ACTIVITY_ITEMS; $this->eventList->readObjects(); $this->lastEventTime = $this->eventList->getLastEventTime(); // removes orphaned and non-accessable events UserActivityEventHandler::validateEvents($this->eventList); $this->fetched(); }
/** * Checks the 'canViewOnlineStatus' setting. * * @param integer $userID * @param integer $canViewOnlineStatus * @return boolean */ public static function isVisible($userID, $canViewOnlineStatus) { if (WCF::getSession()->getPermission('admin.user.canViewInvisible') || $userID == WCF::getUser()->userID) { return true; } switch ($canViewOnlineStatus) { case 0: // everyone return true; case 1: // registered if (WCF::getUser()->userID) { return true; } break; case 2: // following if (WCF::getUserProfileHandler()->isFollower($userID)) { return true; } break; } return false; }