/** * @see \wcf\data\IGroupedUserListAction::getGroupedUserList() */ public function getGroupedUserList() { // resolve page count $sql = "SELECT\tCOUNT(*) AS count\n\t\t\tFROM\twcf" . WCF_N . "_user_follow\n\t\t\tWHERE\tuserID = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array($this->parameters['userID'])); $row = $statement->fetchArray(); $pageCount = ceil($row['count'] / 20); // get user ids $sql = "SELECT\tfollowUserID\n\t\t\tFROM\twcf" . WCF_N . "_user_follow\n\t\t\tWHERE\tuserID = ?"; $statement = WCF::getDB()->prepareStatement($sql, 20, ($this->parameters['pageNo'] - 1) * 20); $statement->execute(array($this->parameters['userID'])); $userIDs = array(); while ($row = $statement->fetchArray()) { $userIDs[] = $row['followUserID']; } // create group $group = new GroupedUserList(); $group->addUserIDs($userIDs); // load user profiles GroupedUserList::loadUsers(); WCF::getTPL()->assign(array('groupedUsers' => array($group))); return array('pageCount' => $pageCount, 'template' => WCF::getTPL()->fetch('groupedUserList')); }
/** * @see \wcf\data\IGroupedUserListAction::getGroupedUserList() */ public function getGroupedUserList() { // fetch number of pages $sql = "SELECT\tCOUNT(*)\n\t\t\tFROM\twcf" . WCF_N . "_like\n\t\t\tWHERE\tobjectID = ?\n\t\t\t\tAND objectTypeID = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array($this->parameters['data']['objectID'], $this->objectType->objectTypeID)); $pageCount = ceil($statement->fetchColumn() / 20); $sql = "SELECT\t\tuserID, likeValue\n\t\t\tFROM\t\twcf" . WCF_N . "_like\n\t\t\tWHERE\t\tobjectID = ?\n\t\t\t\t\tAND objectTypeID = ?\n\t\t\tORDER BY\tlikeValue DESC, time DESC"; $statement = WCF::getDB()->prepareStatement($sql, 20, ($this->parameters['pageNo'] - 1) * 20); $statement->execute(array($this->parameters['data']['objectID'], $this->objectType->objectTypeID)); $data = array(Like::LIKE => array(), Like::DISLIKE => array()); while ($row = $statement->fetchArray()) { $data[$row['likeValue']][] = $row['userID']; } $values = array(); if (!empty($data[Like::LIKE])) { $values[Like::LIKE] = new GroupedUserList(WCF::getLanguage()->get('wcf.like.details.like')); $values[Like::LIKE]->addUserIDs($data[Like::LIKE]); } if (!empty($data[Like::DISLIKE])) { $values[Like::DISLIKE] = new GroupedUserList(WCF::getLanguage()->get('wcf.like.details.dislike')); $values[Like::DISLIKE]->addUserIDs($data[Like::DISLIKE]); } // load user profiles GroupedUserList::loadUsers(); WCF::getTPL()->assign(array('groupedUsers' => $values)); return array('containerID' => $this->parameters['data']['containerID'], 'pageCount' => $pageCount, 'template' => WCF::getTPL()->fetch('groupedUserList')); }
/** * @see \wcf\data\IGroupedUserListAction::getGroupedUserList() */ public function getGroupedUserList() { // get options $sql = "SELECT\t\toptionID, optionValue\n\t\t\tFROM\t\twcf" . WCF_N . "_poll_option\n\t\t\tWHERE\t\tpollID = ?\n\t\t\tORDER BY\t" . ($this->poll->sortByVotes ? "votes DESC" : "showOrder ASC"); $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array($this->poll->pollID)); $options = array(); while ($row = $statement->fetchArray()) { $options[$row['optionID']] = new GroupedUserList($row['optionValue'], 'wcf.poll.noVotes'); } // get votes $sql = "SELECT\tuserID, optionID\n\t\t\tFROM\twcf" . WCF_N . "_poll_option_vote\n\t\t\tWHERE\tpollID = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array($this->poll->pollID)); $voteData = array(); while ($row = $statement->fetchArray()) { if (!isset($voteData[$row['optionID']])) { $voteData[$row['optionID']] = array(); } $voteData[$row['optionID']][] = $row['userID']; } // assign user ids foreach ($voteData as $optionID => $userIDs) { $options[$optionID]->addUserIDs($userIDs); } // load user profiles GroupedUserList::loadUsers(); WCF::getTPL()->assign(array('groupedUsers' => $options)); return array('pageCount' => 1, 'template' => WCF::getTPL()->fetch('groupedUserList')); }