/** * Returns class instance * * @return SKANDROID_ABOL_Service */ public static function getInstance() { if (null === self::$classInstance) { self::$classInstance = new self(); } return self::$classInstance; }
private function commonHandler($params) { $this->assign('userAdded', OW::getEventManager()->call('hotlist.is_user_added', array('userId' => OW::getUser()->getId()))); $authorized = OW::getUser()->isAuthorized('hotlist', 'add_to_list'); $promoted = false; if (!$authorized) { $status = SKANDROID_ABOL_Service::getInstance()->getAuthorizationActionStatus('hotlist', 'add_to_list'); $promoted = $status['status'] == BOL_AuthorizationService::STATUS_PROMOTED; $this->assign('authorizeMsg', $status['msg']); $this->assign('isCreditsEnable', OW::getPluginManager()->isPluginActive('usercredits')); $this->assign('isSubscribeEnable', OW::getPluginManager()->isPluginActive('membership')); } $this->assign('authorized', $authorized); $this->assign('promoted', $promoted); }
public function onPingNotifications(OW_Event $event) { if (!OW::getUser()->isAuthenticated()) { return null; } $service = SKANDROID_ABOL_Service::getInstance(); $menu = $service->getMenu(OW::getUser()->getId()); $counter = $service->getNewItemsCount($menu); $data = array('menu' => $menu, 'counter' => $counter); $eventData = $event->getData(); if (empty($eventData)) { $data = array('menu' => $menu, 'counter' => $counter); } else { if (is_array($eventData)) { $data = array_merge($eventData, $data); } } $event->setData($data); return $data; }
public function getAlbumList($post, $params) { $auth = array('photo_view' => SKANDROID_ABOL_Service::getInstance()->getAuthorizationActionStatus('photo', 'view')); $this->assign('auth', $auth); if (empty($params['userId'])) { $this->assign('list', array()); return; } $userId = (int) $params['userId']; $service = PHOTO_BOL_PhotoAlbumService::getInstance(); $list = $service->findUserAlbumList($userId, 1, 500, null, true); if ($list) { $result = array(); foreach ($list as $album) { $count = isset($album['photo_count']) ? $album['photo_count'] : 0; if (!$count) { continue; } $result[] = array('id' => $album['dto']->id, 'name' => $album['dto']->name, 'url' => $album['cover'], 'photoCount' => $count); } $list = $result; } $this->assign('list', $list); }
public function init() { $service = SKANDROID_ABOL_Service::getInstance(); $service->addRoute('skandroid.get_info', 'site/get-info', 'SKANDROID_ACTRL_Base', 'siteInfo'); $service->addRoute('skandroid.user_get_info', 'site/user-get-info', 'SKANDROID_ACTRL_Base', 'userSiteInfo'); /* ***************************** JK *************************** */ $service->addRoute('skandroid.user_get_questions', 'user/get-questions/:id', 'SKANDROID_ACTRL_User', 'getQuestions'); // $service->addRoute('skandroid.user_save_question', 'user/saveQuestion', 'SKANDROID_ACTRL_User', 'saveQuestion'); // flags $service->addRoute('skandroid.report', 'user/sendReport', 'SKANDROID_ACTRL_User', 'sendReport'); // Search $service->addRoute('skandroid.search.user_list', 'search/user-list', 'SKANDROID_ACTRL_Search', 'getList'); $service->addRoute('skandroid.user_get_search_questions', 'user/get-search-questions', 'SKANDROID_ACTRL_User', 'getSearchQuestions'); // Guests $service->addRoute('skandroid.guests.user_list', 'guests/userList', 'SKANDROID_ACTRL_Guests', 'getList'); // Billing $service->addRoute('billing.subscribe_data', 'billing/subscribeData', 'SKANDROID_ACTRL_Billing', 'getSubscribeData'); $service->addRoute('billing.suggest_options', 'billing/payment-options', 'SKANDROID_ACTRL_Billing', 'suggestPaymentOptions'); $service->addRoute('billing.verify_sale', 'billing/verifySale', 'SKANDROID_ACTRL_Billing', 'verifySale'); $service->addRoute('billing.preverify_sale', 'billing/preverifySale', 'SKANDROID_ACTRL_Billing', 'preverifySale'); $service->addRoute('billing.set_trial_plan', 'billing/setTrialPlan', 'SKANDROID_ACTRL_Billing', 'setTrialPlan'); // Bookmarks $service->addRoute('skandroid.bookmarks.user_list', 'bookmarks/userList', 'SKANDROID_ACTRL_Bookmarks', 'getList'); $service->addRoute('skandroid.get-auth-status', 'base/authorization-action-status/', 'SKANDROID_ACTRL_Base', 'getAutorizationAction'); /* ******************************* End **************************** */ // Photo $service->addRoute('skandroid.photo.user_photo_list', 'photo/user-photo-list/:id', 'SKANDROID_ACTRL_Photo', 'getList'); $service->addRoute('skandroid.photo.user_album_list', 'photo/user-album-list/:userId', 'SKANDROID_ACTRL_Photo', 'getAlbumList'); $service->addRoute('skandroid.photo.album_photo_list', 'photo/album-photo-list/:albumId', 'SKANDROID_ACTRL_Photo', 'albumPhotoList'); $service->addRoute('skandroid.photo.upload', 'photo/upload', 'SKANDROID_ACTRL_Photo', 'upload'); $service->addRoute('skandroid.photo.delete_photos', 'photo/delete-photos', 'SKANDROID_ACTRL_Photo', 'deletePhotos'); /* ***************************** Kairat *************************** */ // Matches $service->addRoute('skandroid.matches_get_list', 'matches/list', 'SKANDROID_ACTRL_Matches', 'getList'); // Speedmatch $service->addRoute('skandroid.speedmatches_get_list', 'speedmatches/list', 'SKANDROID_ACTRL_Speedmatches', 'getList'); $service->addRoute('skandroid.speedmatches_like_user', 'speedmatches/like', 'SKANDROID_ACTRL_Speedmatches', 'likeUser'); $service->addRoute('skandroid.speedmatches_skip_user', 'speedmatches/skip', 'SKANDROID_ACTRL_Speedmatches', 'skipUser'); // Facebook Connect $service->addRoute('skandroid.fbconnect_questions', 'fbconnect/questions', 'SKANDROID_ACTRL_SignUp', 'getFacebookLoginQuestion'); $service->addRoute('skandroid.fbconnect_save', 'fbconnect/save', 'SKANDROID_ACTRL_SignUp', 'saveFacebookLogin'); $service->addRoute('skandroid.try_login', 'fbconnect/try-login', 'SKANDROID_ACTRL_SignUp', 'tryLogIn'); // Bookmarks $service->addRoute('skandroid.bookmarks.mark_user', 'bookmarks/mark', 'SKANDROID_ACTRL_Bookmarks', 'markUser'); // Base $service->addRoute('skandroid.base.get_text', 'base/get-text', 'SKANDROID_ACTRL_Base', 'getText'); $service->addRoute('skandroid.base.get_custom_page', 'base/get-custom-page', 'SKANDROID_ACTRL_Base', 'customPage'); // HotList $service->addRoute('skandroid.hotlist.count', 'hotlist/count', 'SKANDROID_ACTRL_HotList', 'getCount'); $service->addRoute('skandroid.hotlist.user_list', 'hotlist/list', 'SKANDROID_ACTRL_HotList', 'getList'); $service->addRoute('skandroid.hotlist.user_list.add', 'hotlist/list/add', 'SKANDROID_ACTRL_HotList', 'addToList'); $service->addRoute('skandroid.hotlist.user_list.remove', 'hotlist/list/remove', 'SKANDROID_ACTRL_HotList', 'removeFromList'); // Mailbox $service->addRoute('skandroid.mailbox.get_modes', 'mailbox/mode/get', 'SKANDROID_ACTRL_Mailbox', 'getModes'); $service->addRoute('skandroid.mailbox.conversation_list', 'mailbox/conversation/list/:offset', 'SKANDROID_ACTRL_Mailbox', 'getConversationList'); $service->addRoute('skandroid.mailbox.as_read', 'mailbox/conversation/as-read', 'SKANDROID_ACTRL_Mailbox', 'markAsRead'); $service->addRoute('skandroid.mailbox.un_read', 'mailbox/conversation/un-read', 'SKANDROID_ACTRL_Mailbox', 'markUnRead'); $service->addRoute('skandroid.mailbox.delete', 'mailbox/conversation/delete', 'SKANDROID_ACTRL_Mailbox', 'deleteConversation'); $service->addRoute('skandroid.mailbox.get_messages', 'mailbox/messages', 'SKANDROID_ACTRL_Mailbox', 'getConversationMessages'); $service->addRoute('skandroid.mailbox.get_history', 'mailbox/messages/history', 'SKANDROID_ACTRL_Mailbox', 'getConversationHistory'); $service->addRoute('skandroid.mailbox.post_message', 'mailbox/message/send', 'SKANDROID_ACTRL_Mailbox', 'sendMessage'); $service->addRoute('skandroid.mailbox.upload_attachment', 'mailbox/message/send-attachment', 'SKANDROID_ACTRL_Mailbox', 'uploadAttachment'); $service->addRoute('skandroid.mailbox.attach_attachment', 'mailbox/compose/attach-attachment', 'SKANDROID_ACTRL_Mailbox', 'attachAttachment'); $service->addRoute('skandroid.mailbox.delete_attachment', 'mailbox/compose/delete-attachment', 'SKANDROID_ACTRL_Mailbox', 'deleteAttachment'); $service->addRoute('skandroid.mailbox.find_user', 'mailbox/compose/find-user', 'SKANDROID_ACTRL_Mailbox', 'findUser'); $service->addRoute('skandroid.mailbox.compose_send', 'mailbox/compose/send', 'SKANDROID_ACTRL_Mailbox', 'createConversation'); $service->addRoute('skandroid.mailbox.reply_send', 'mailbox/reply/send', 'SKANDROID_ACTRL_Mailbox', 'postReplyMessage'); $service->addRoute('skandroid.mailbox.recipient_info', 'mailbox/recipient/info', 'SKANDROID_ACTRL_Mailbox', 'getRecipientInfo'); $service->addRoute('skandroid.mailbox.chat_recipient_info', 'mailbox/chat-recipient/info', 'SKANDROID_ACTRL_Mailbox', 'getChatRecipientInfo'); $service->addRoute('skandroid.mailbox.authorize_info', 'mailbox/authorize/info', 'SKANDROID_ACTRL_Mailbox', 'getAuthorizeInfo'); $service->addRoute('skandroid.mailbox.authorize', 'mailbox/authorize', 'SKANDROID_ACTRL_Mailbox', 'authorize'); $service->addRoute('skandroid.mailbox.wink_back', 'mailbox/wink-back', 'SKANDROID_ACTRL_Mailbox', 'winkBack'); /* ******************************* End **************************** */ $service->addRoute('skandroid.user.authenticate', 'user/authenticate', 'SKANDROID_ACTRL_User', 'authenticate'); $service->addRoute('skandroid.base.check_api', 'base/check-api', 'SKANDROID_ACTRL_Base', 'checkApi'); $service->addRoute('skandroid.block_user', 'user/block', 'SKANDROID_ACTRL_User', 'blockUser'); $service->addRoute('skandroid.user.signout', 'user/signout', 'SKANDROID_ACTRL_User', 'signout'); // Winks $service->addRoute('skandroid.winks.send_wink', 'winks/send-wink', 'SKANDROID_ACTRL_Winks', 'sendWink'); // Exceptions OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_User", "authenticate"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_Base", "checkApi"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_Base", "siteInfo"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_approved", "SKANDROID_ACTRL_Base", "siteInfo"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_verified", "SKANDROID_ACTRL_Base", "siteInfo"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.suspended", "SKANDROID_ACTRL_Base", "siteInfo"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.suspended", "SKANDROID_ACTRL_User", "signout"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_approved", "SKANDROID_ACTRL_User", "signout"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_User", "signout"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_verified", "SKANDROID_ACTRL_User", "signout"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_Base", "siteInfo"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.suspended", "SKANDROID_ACTRL_Ping", "ping"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_approved", "SKANDROID_ACTRL_Ping", "ping"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_Ping", "ping"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_verified", "SKANDROID_ACTRL_Ping", "ping"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_SignUp", "tryLogIn"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_SignUp", "getFacebookLoginQuestion"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_SignUp", "saveFacebookLogin"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_Base", "getText"); OW::getRequestHandler()->addCatchAllRequestsExclude("skandroid.not_authenticated", "SKANDROID_ACTRL_Base", "customPage"); /* *************************************************************** */ $handler = new SKANDROID_ACLASS_EventHandler(); $handler->init(); /* $service->addRoute('skandroid.get_custom_page', 'site/getCustomPage', 'SKANDROID_ACTRL_Base', 'customPage')); $service->addRoute('skandroid.user.current.getInfo', 'user/me/getInfo', 'SKANDROID_ACTRL_User', 'getInfo')); $service->addRoute('skandroid.user.test', 'user/test', 'SKANDROID_ACTRL_User', 'test')); $service->addRoute('skandroid.report', 'user/sendReport', 'SKANDROID_ACTRL_User', 'sendReport')); $service->addRoute('skandroid.user_set_location', 'user/setLocation', 'SKANDROID_ACTRL_User', 'setLocation')); $service->addRoute('skandroid.user_get_search_questions', 'user/getSearchQuestions', 'SKANDROID_ACTRL_User', 'getSearchQuestions')); $service->addRoute('skandroid.user_save_question', 'user/saveQuestion', 'SKANDROID_ACTRL_User', 'saveQuestion')); $service->addRoute('skandroid.avatar_change', 'user/avatarChange', 'SKANDROID_ACTRL_User', 'avatarChange')); $service->addRoute('skandroid.avatar_from_poto', 'user/avatarFromPhoto', 'SKANDROID_ACTRL_User', 'avatarFromPhoto')); // Hot List $service->addRoute('hotlist.user_list.add', 'hotlist/userList/add', 'SKANDROID_ACTRL_HotList', 'addToList')); $service->addRoute('hotlist.user_list.remove', 'hotlist/userList/remove', 'SKANDROID_ACTRL_HotList', 'removeFromList')); // Photo // Matches $service->addRoute('matches.user_list', 'matches/userList', 'SKANDROID_ACTRL_Matches', 'getList')); // SpeedMatch $service->addRoute('speedmatch.get_user', 'speedmatch/getUser', 'SKANDROID_ACTRL_Speedmatch', 'getUser')); $service->addRoute('speedmatch.get_criteria', 'speedmatch/getCriteria', 'SKANDROID_ACTRL_Speedmatch', 'getCriteria')); $service->addRoute('speedmatch.like_user', 'speedmatch/likeUser', 'SKANDROID_ACTRL_Speedmatch', 'likeUser')); $service->addRoute('speedmatch.skip_user', 'speedmatch/skipUser', 'SKANDROID_ACTRL_Speedmatch', 'skipUser')); // Bookmarks $service->addRoute('bookmarks.mark_user', 'bookmarks/markUser', 'SKANDROID_ACTRL_Bookmarks', 'markUser')); $service->addRoute('bookmarks.user_list', 'bookmarks/userList', 'SKANDROID_ACTRL_Bookmarks', 'getList')); // Winks $service->addRoute('winks.send_wink_back', 'winks/sendWinkBack', 'SKANDROID_ACTRL_Winks', 'sendWinkBack')); $service->addRoute('winks.accept_wink', 'winks/acceptWink', 'SKANDROID_ACTRL_Winks', 'acceptWink')); // Mailbox $service->addRoute('mailbox.get_unread_message_count', 'mailbox/getUnreadMessageCount', 'SKANDROID_ACTRL_Mailbox', 'getUnreadMessageCount')); $service->addRoute('mailbox.user_list', 'mailbox/userList', 'SKANDROID_ACTRL_Mailbox', 'getList')); $service->addRoute('mailbox.post_message', 'mailbox/postMessage', 'SKANDROID_ACTRL_Mailbox', 'postMessage')); $service->addRoute('mailbox.get_new_messages', 'mailbox/getNewMessages', 'SKANDROID_ACTRL_Mailbox', 'getNewMessages')); $service->addRoute('mailbox.get_messages', 'mailbox/getMessages', 'SKANDROID_ACTRL_Mailbox', 'getMessages')); $service->addRoute('mailbox.get_history', 'mailbox/getHistory', 'SKANDROID_ACTRL_Mailbox', 'getHistory')); $service->addRoute('mailbox.upload_attachment', 'mailbox/uploadAttachment', 'SKANDROID_ACTRL_Mailbox', 'uploadAttachment')); $service->addRoute('mailbox.authorize', 'mailbox/authorize', 'SKANDROID_ACTRL_Mailbox', 'authorize')); // Sign Up $service->addRoute('sign_up.question_list', 'signUp/questionList', 'SKANDROID_ACTRL_SignUp', 'questionList')); $service->addRoute('sign_up.save', 'signUp/save', 'SKANDROID_ACTRL_SignUp', 'save')); $service->addRoute('sign_up.try_log_in', 'signUp/tryLogIn', 'SKANDROID_ACTRL_SignUp', 'tryLogIn')); // Ping $service->addRoute('base.ping', 'base/Ping', 'SKANDROID_ACTRL_Ping', 'ping')); */ }
private function getBenefits() { $authService = BOL_AuthorizationService::getInstance(); $permissionList = $authService->getPermissionList(); foreach ($permissionList as $permission) { /* @var $permission BOL_AuthorizationPermission */ $permissions[$permission->roleId][$permission->actionId] = true; } $roleList = $authService->getRoleList(); $groupList = SKANDROID_ABOL_Service::getInstance()->getAuthorizationActions(); $pluginList = SKANDROID_ABOL_Service::getInstance()->getAndroidAvailablePluginList(); foreach ($groupList as $key => $group) { if (count($group['actions']) === 0 || !OW::getPluginManager()->isPluginActive($group['name']) || !empty($pluginList) && !in_array($group['name'], $pluginList)) { unset($groupList[$key]); } } $result = array(); /* @var $role BOL_AuthorizationRole */ foreach ($roleList as $role) { /* @var $group BOL_AuthorizationGroup */ foreach ($groupList as &$group) { foreach ($group['actions'] as &$action) { $action['allowed'] = isset($permissions[$role->id][$action['id']]); } } $result[$role->id] = $groupList; } return $result; }
public function getAuthorizeInfo(array $actionNames) { if (count($actionNames) === 0) { return array(); } $service = SKANDROID_ABOL_Service::getInstance(); $info = array(); foreach ($actionNames as $actionName) { $info[] = array('actionName' => $actionName, 'status' => $service->getAuthorizationActionStatus('mailbox', $actionName)); } return $info; }
public function getList($params) { $viewerId = !empty($params['userId']) ? $params['userId'] : OW::getUser()->getId(); $first = empty($params['first']) ? 0 : $params['first']; $count = empty($params['count']) ? self::COUNT_LIST : $params['count']; $exclude = empty($params['exclude']) ? array() : json_decode($params['exclude']); $filter = empty($params['filter']) ? array() : json_decode($params['filter'], true); $validFilter = $this->getValidFilter($filter); $status = SKANDROID_ABOL_Service::getInstance()->getAuthorizationActionStatus('base', 'view_profile'); if ($status['status'] != BOL_AuthorizationService::STATUS_AVAILABLE) { $this->assign('authorized', false); $this->assign('promoted', $status['status'] == BOL_AuthorizationService::STATUS_PROMOTED); $this->assign('authorizeMsg', $status['msg']); return; } $this->assign('authorized', true); if (empty($filter['match_sex_data'])) { $question = BOL_QuestionService::getInstance()->findQuestionByName('match_sex'); $values = $_filter = array(); foreach (BOL_QuestionService::getInstance()->findQuestionValues('match_sex') as $value) { $values[] = array('id' => $value->value, 'label' => BOL_QuestionService::getInstance()->getQuestionValueLang($value->questionName, $value->value)); } if (in_array($question->presentation, array(BOL_QuestionService::QUESTION_PRESENTATION_SELECT, BOL_QuestionService::QUESTION_PRESENTATION_RADIO, BOL_QuestionService::QUESTION_PRESENTATION_MULTICHECKBOX))) { foreach ($values as $val) { if ($val['id'] & $validFilter['sex']) { $_filter[] = $val['id']; } } } else { $_filter[] = $validFilter['match_sex']; } $filter['match_sex'] = $_filter; $filter['match_sex_data'] = $values; } if (isset($validFilter['googlemap_location'])) { $filter['googlemap_location'] = $validFilter['googlemap_location']; } $filter['match_age'] = $validFilter['birthdate']; $this->assign('filter', $filter); //unset($validFilter['googlemap_location']); $userIdList = $this->getSpeedmatchUserIdList($viewerId, $first, $count, $validFilter, $exclude); if (empty($userIdList)) { $this->assign('list', array()); return; } $userService = BOL_UserService::getInstance(); $questionService = BOL_QuestionService::getInstance(); $userList = $accountTypes = $compatibility = array(); foreach ($userService->findUserListByIdList($userIdList) as $user) { $userList[$user->id] = $user; $accountTypes[] = $user->accountType; } if ($_compatibility = OW::getEventManager()->call('matchmaking.get_compatibility_for_list', array('userId' => $viewerId, 'idList' => $userIdList))) { foreach ($_compatibility as $userId => $c) { $compatibility[$userId] = (int) $c; } } $accountTypes = array_unique($accountTypes); $totalQuestions = $accountTypeQuestions = $matchQuestions = array(); foreach ($accountTypes as $accountType) { $questionsForAccountType = $questionService->findViewQuestionsForAccountType($accountType); $questions = array(); foreach ($this->priorityQuestions as $pq) { foreach ($questionsForAccountType as $qfa) { if ($qfa['name'] == $pq) { $questions[] = $qfa; $this->forbiddenQuestions[] = $qfa['name']; $matchQuestions[] = $qfa['name']; break; } } } foreach ($questionsForAccountType as $question) { if ($question['sectionName'] == 'about_my_match') { $questions[] = $question; $this->forbiddenQuestions[] = $question['name']; if ($question['name'] == 'relationship') { $matchQuestions[] = 'relationship'; } } } $questionsForAccountType = array_filter($questionsForAccountType, array($this, 'filterQuestionForAccount')); $questionsForAccountType = array_merge($questions, $questionsForAccountType); $accountTypeQuestions[$accountType] = $questionsForAccountType; $totalQuestions = array_merge($totalQuestions, $accountTypeQuestions[$accountType]); } $totalQuestions = array_unique(array_map(array($this, 'filterTotalQuestion'), $totalQuestions)); $displayNameList = $userService->getDisplayNamesForList($userIdList); $avatarList = array(); $skadateService = SKADATE_BOL_Service::getInstance(); foreach ($skadateService->findAvatarListByUserIdList($userIdList) as $avatar) { $avatarList[$avatar->userId] = $skadateService->getAvatarUrl($avatar->userId, $avatar->hash); } $avatarService = BOL_AvatarService::getInstance(); $avatarList += $avatarService->getAvatarsUrlList(array_diff($userIdList, array_keys($avatarList)), 2); $avatarList = array_filter($avatarList, array($this, 'filterAvatarList')); $onlineStatus = BOL_UserService::getInstance()->findOnlineStatusForUserList($userIdList); $questionsData = $questionService->getQuestionData($userIdList, array_merge($totalQuestions, $this->baseQuestions)); $userData = array(); $authorizeMsg = ''; $isAuthorized = $isSubscribe = OW::getUser()->isAuthorized('photo', 'view'); if (!$isAuthorized) { $status = SKANDROID_ABOL_Service::getInstance()->getAuthorizationActionStatus('photo', 'view'); $isSubscribe = $status['status'] == BOL_AuthorizationService::STATUS_PROMOTED; $authorizeMsg = $status['msg']; } foreach ($questionsData as $userId => $data) { $user = $userPhotos = array(); if ($isAuthorized) { $event = new OW_Event('photo.getMainAlbum', array('userId' => $userId)); OW::getEventManager()->trigger($event); $album = $event->getData(); if (!empty($album['photoList'])) { foreach ($album['photoList'] as $photo) { if ($photo['status'] == PHOTO_BOL_PhotoDao::STATUS_APPROVED) { $userPhotos[] = $photo['url']['main']; } } } } $user['userId'] = $userId; $user['isAuthorized'] = $isAuthorized; $user['isSubscribe'] = $isSubscribe; $user['authorizeMsg'] = $authorizeMsg; $user['isOnline'] = !empty($onlineStatus[$userId]); $user['displayName'] = $displayNameList[$userId]; $user['location'] = empty($data['googlemap_location']['address']) ? '' : $data['googlemap_location']['address']; $date = UTIL_DateTime::parseDate($data['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT); $user['ages'] = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']); $user['avatar'] = !empty($avatarList[$userId]) ? $avatarList[$userId] : null; $user['photos'] = $userPhotos; $user['compatibility'] = isset($compatibility[$userId]) ? $compatibility[$userId] : null; $user['info'] = array(); $f = array(); foreach ($accountTypeQuestions[$userList[$userId]->accountType] as $question) { if ($question['name'] == 'relationship' && array_search('relationship', $matchQuestions) !== false) { continue; } $questionName = $question['name']; if (empty($data[$questionName]) || array_search($questionName, $f) !== false) { continue; } $f[] = $questionName; $user['info'][] = $this->getUserInfo($userId, $question, $data[$questionName]); } $userData[] = $user; } $this->assign('list', $userData); }
public function getList($params) { $service = SKANDROID_ABOL_Service::getInstance(); $auth = array('photo_view' => $service->getAuthorizationActionStatus('photo', 'view'), 'base_search_users' => $service->getAuthorizationActionStatus('base', 'search_users')); $this->assign('auth', $auth); if ($auth["base_search_users"]["status"] != BOL_AuthorizationService::STATUS_AVAILABLE) { $this->assign("list", array()); $this->assign("total", 0); return; } $_criteriaList = array_filter(json_decode($params["criteriaList"], true)); $userId = OW::getUser()->getId(); $userInfo = BOL_QuestionService::getInstance()->getQuestionData(array($userId), array("sex", 'match_sex')); $_criteriaList["sex"] = !empty($userInfo[$userId]["sex"]) ? $userInfo[$userId]["sex"] : null; if (OW::getPluginManager()->isPluginActive('googlelocation')) { $location = null; $json = null; if (!empty($_criteriaList["current_location"]) && $_criteriaList["current_location"] != "false" && !empty($_criteriaList["current_location_address"])) { $location = !empty($_criteriaList["current_location_address"]) ? json_decode($_criteriaList["current_location_address"], true) : null; $json = $_criteriaList["current_location_address"]; } else { if (!empty($_criteriaList["custom_location"])) { $location = !empty($_criteriaList["custom_location"]) ? json_decode($_criteriaList["custom_location"], true) : null; $json = $_criteriaList["custom_location"]; } } if (!empty($location)) { $value = array('distance' => !empty($_criteriaList['distance']) ? $_criteriaList['distance'] : 0, 'address' => $location['address'], 'latitude' => $location['latitude'], 'longitude' => $location['longitude'], 'northEastLat' => $location['northEastLat'], 'northEastLng' => $location['northEastLng'], 'southWestLat' => $location['southWestLat'], 'southWestLng' => $location['southWestLng'], 'json' => $json); $_criteriaList['googlemap_location'] = $value; } } unset($_criteriaList["current_location"]); unset($_criteriaList["current_location_address"]); unset($_criteriaList["custom_location"]); $questionList = BOL_QuestionService::getInstance()->findQuestionByNameList(array_keys($_criteriaList)); $criteriaList = array(); foreach ($_criteriaList as $questionName => $questionValue) { if (empty($questionList[$questionName])) { continue; } $criteriaList[$questionName] = $this->convertQuestionValue($questionList[$questionName]->presentation, $questionValue); } if (empty($criteriaList['match_sex']) && !empty($userInfo[$userId]["match_sex"])) { $criteriaList['match_sex'] = $userInfo[$userId]["match_sex"]; } $idList = OW::getEventManager()->call("usearch.get_user_id_list_for_android", array("criterias" => $criteriaList, "limit" => array($params["first"], $params["count"]))); $idList = empty($idList) ? array() : $idList; //$idList = BOL_UserService::getInstance()->findUserIdListByQuestionValues($criteriaList, $params["first"], $params["count"]); $total = BOL_UserService::getInstance()->countUsersByQuestionValues($criteriaList); //$idList = empty($idList) ? array() : $idList; $userData = BOL_AvatarService::getInstance()->getDataForUserAvatars($idList, false, false, true, true); $questionsData = BOL_QuestionService::getInstance()->getQuestionData($idList, array("googlemap_location", "birthdate")); $displayNames = BOL_UserService::getInstance()->getDisplayNamesForList($idList); foreach ($questionsData as $userId => $data) { $date = UTIL_DateTime::parseDate($data['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT); $userData[$userId]["ages"] = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']); $userData[$userId]["location"] = empty($data["googlemap_location"]["address"]) ? null : $data["googlemap_location"]["address"]; } $photoList = array(); $avatars = array(); foreach ($idList as $userId) { $bigAvatar = SKADATE_BOL_Service::getInstance()->findAvatarByUserId($userId); $event = new OW_Event('photo.getMainAlbum', array('userId' => $userId)); OW::getEventManager()->trigger($event); $album = $event->getData(); $photos = !empty($album['photoList']) ? $album['photoList'] : array(); if ($bigAvatar) { $avatars[$userId] = SKADATE_BOL_Service::getInstance()->getAvatarUrl($userId, $bigAvatar->hash); } else { $avatars[$userId] = BOL_AvatarService::getInstance()->getAvatarUrl($userId, 2); if ($avatars[$userId] == BOL_AvatarService::getInstance()->getDefaultAvatarUrl(2)) { unset($avatars[$userId]); } } foreach ($photos as $photo) { if ($photo['status'] == PHOTO_BOL_PhotoDao::STATUS_APPROVED) { $photoList[$userId][] = array("src" => $photo["url"]["main"]); } } } $bookmarksList = OW::getEventManager()->call("bookmarks.get_mark_list", array("userId" => OW::getUser()->getId(), "idList" => $idList)); $bookmarksList = empty($bookmarksList) ? array() : $bookmarksList; $list = array(); foreach ($idList as $userId) { $list[] = array("userId" => $userId, "avatar" => !empty($avatars[$userId]) ? $avatars[$userId] : "", "photos" => empty($photoList[$userId]) ? array() : $photoList[$userId], "name" => empty($userData[$userId]["title"]) ? "" : $userData[$userId]["title"], "displayName" => !empty($displayNames[$userId]) ? $displayNames[$userId] : "", "label" => $userData[$userId]["label"], "labelColor" => $userData[$userId]["labelColor"], "location" => empty($userData[$userId]["location"]) ? "" : $userData[$userId]["location"], "ages" => $userData[$userId]["ages"], "bookmarked" => !empty($bookmarksList[$userId])); } $this->assign("list", $list); $this->assign("total", $total); BOL_AuthorizationService::getInstance()->trackAction("base", "search_users"); }
<?php /** * Copyright (c) 2014, Skalfa LLC * All rights reserved. * * ATTENTION: This commercial software is intended for exclusive use with SkaDate Dating Software (http://www.skadate.com) and is licensed under SkaDate Exclusive License by Skalfa LLC. * * Full text of this license can be found at http://www.skadate.com/sel.pdf */ //OW_Auth::getInstance()->login(1); $service = SKANDROID_ABOL_Service::getInstance(); if (SKANDROID_ACLASS_Plugin::getInstance()->isAndroidRequest()) { SKANDROID_ACLASS_Plugin::getInstance()->init(); }
public function getList($params) { $userId = !empty($params['userId']) ? $params['userId'] : OW::getUser()->getId(); $page = !empty($params['page']) ? abs((int) $params['page']) : 1; $limit = !empty($params['limit']) ? abs((int) $params['limit']) : self::COUNT; $first = ($page - 1) * $limit; $countMatches = $this->getUserCountMatches($userId); if (empty($countMatches)) { $this->assign('list', array()); return; } $sort = !empty($params['sort']) && $this->isAvailableSort($params['sort']) ? $params['sort'] : $this->getDefaultSort(); $matchList = $this->getUserMatches($userId, $sort, $first, $limit); if (empty($matchList)) { $this->assign('list', array()); return; } $userIdList = array(); $compatibilityList = array(); foreach ($matchList as $item) { $userIdList[] = $item['id']; $compatibilityList[$item['id']] = $item['compatibility']; } // $userRoleList = array(); // // foreach ( BOL_AuthorizationService::getInstance()->getRoleListOfUsers($userIdList) as $role ) // { // $userRoleList[$role['userId']] = array('label' => $role['label'], 'custom' => $role['custom']); // } $userData = array(); $displayNameList = BOL_UserService::getInstance()->getDisplayNamesForList($userIdList); $questionsData = BOL_QuestionService::getInstance()->getQuestionData($userIdList, array('googlemap_location', 'birthdate')); foreach ($questionsData as $_userId => $data) { $date = UTIL_DateTime::parseDate($data['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT); $userData[$_userId]['ages'] = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']); $userData[$_userId]['displayName'] = $displayNameList[$_userId]; $userData[$_userId]['location'] = empty($data['googlemap_location']['address']) ? '' : $data['googlemap_location']['address']; } $avatarList = array(); $skadateService = SKADATE_BOL_Service::getInstance(); foreach ($skadateService->findAvatarListByUserIdList($userIdList) as $avatar) { $avatarList[$avatar->userId] = $skadateService->getAvatarUrl($avatar->userId, $avatar->hash); } foreach (array_diff($userIdList, array_keys($avatarList)) as $_userId) { $avatarList[$_userId] = BOL_AvatarService::getInstance()->getAvatarUrl($_userId, 2); } $list = array(); $authorizeMsg = ''; $bookmarksList = $this->getUserBookmarkList($userId, $userIdList); $isAuthorized = $isSubscribe = OW::getUser()->isAuthorized('photo', 'view'); if (!$isAuthorized) { $status = SKANDROID_ABOL_Service::getInstance()->getAuthorizationActionStatus('photo', 'view'); $isSubscribe = $status['status'] == BOL_AuthorizationService::STATUS_PROMOTED; $authorizeMsg = $status['msg']; } foreach ($userIdList as $userId) { $event = new OW_Event('photo.getMainAlbum', array('userId' => $userId)); OW::getEventManager()->trigger($event); $album = $event->getData(); $userPhotos = array(); $photos = !empty($album['photoList']) ? $album['photoList'] : array(); foreach ($photos as $photo) { if ($photo['status'] == PHOTO_BOL_PhotoDao::STATUS_APPROVED) { $userPhotos[] = $photo['url']['main']; } } $list[] = array('userId' => $userId, 'isAuthorized' => $isAuthorized, 'isSubscribe' => $isSubscribe, 'displayName' => $userData[$userId]['displayName'], 'compatibility' => $compatibilityList[$userId], 'location' => $userData[$userId]['location'], 'ages' => $userData[$userId]['ages'], 'bookmarked' => !empty($bookmarksList[$userId]), 'avatar' => !empty($avatarList[$userId]) ? $avatarList[$userId] : null, 'photos' => $userPhotos, 'authorizeMsg' => $authorizeMsg); } $this->assign('list', $list); }
public function getAutorizationAction(array $params) { if (empty($params) || !is_array($params)) { throw new ApiAccessException("Invalid params"); } $auth = array(); foreach ($params as $key => $value) { $auth[$key . "_" . $value] = SKANDROID_ABOL_Service::getInstance()->getAuthorizationActionStatus($key, $value); } $this->assign('auth', $auth); }
public function setLocation($params) { $userId = OW::getUser()->getId(); if (!$userId) { throw new ApiResponseErrorException(); } if (empty($params['lat']) || empty($params['lon'])) { throw new ApiResponseErrorException(); } $set = SKANDROID_ABOL_Service::getInstance()->setUserCurrentLocation($userId, $params['lat'], $params['lon']); $this->assign('status', $set); }