/** * Returns an instance of class. * * @return OCSFUNDRAISING_BOL_DonationDao */ public static function getInstance() { if (self::$classInstance === null) { self::$classInstance = new self(); } return self::$classInstance; }
/** * @param $goalId * @param $type * @param int $page * @param int $limit * @return array|bool */ public function getDonationList($goalId, $type, $page = 1, $limit = 3) { if (!$goalId) { return false; } switch ($type) { case 'top': $list = $this->donationDao->getGoalTopDonations($goalId, $limit); break; case 'latest': $list = $this->donationDao->getGoalLatestDonations($goalId, $limit); break; case 'all': $list = $this->donationDao->getGoalDonations($goalId, $page, $limit); break; } if (!$list) { return false; } $avatarService = BOL_AvatarService::getInstance(); $userService = BOL_UserService::getInstance(); $defAvatar = array('src' => $avatarService->getDefaultAvatarUrl()); $userIdList = array(); foreach ($list as $donation) { if ($donation->userId && !in_array($donation->userId, $userIdList)) { array_push($userIdList, $donation->userId); } } $avatars = $avatarService->getDataForUserAvatars($userIdList); $displayNames = $userService->getDisplayNamesForList($userIdList); $userNames = $userService->getUserNamesForList($userIdList); $res = array(); foreach ($list as $donation) { $donation->donationStamp = UTIL_DateTime::formatDate($donation->donationStamp, false); $donation->amount = floatval($donation->amount); $res[$donation->id]['dto'] = $donation; if ($donation->userId) { $res[$donation->id]['avatar'] = !empty($avatars[$donation->userId]) ? $avatars[$donation->userId] : $defAvatar; $res[$donation->id]['username'] = !empty($userNames[$donation->userId]) ? $userNames[$donation->userId] : $userService->getUserName($donation->userId); $res[$donation->id]['displayName'] = !empty($displayNames[$donation->userId]) ? $displayNames[$donation->userId] : $userService->getDisplayName($donation->userId); } else { $res[$donation->id]['avatar'] = $defAvatar; $res[$donation->id]['username'] = $donation->username; $res[$donation->id]['displayName'] = $donation->username; } } return $res; }