/**
  * Returns an instance of class (singleton pattern implementation).
  *
  * @return BOL_UserOnlineDao
  */
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
Exemple #2
0
 public function resetAllUsersLastData()
 {
     $sql = "SELECT COUNT(*) FROM `" . MAILBOX_BOL_UserLastDataDao::getInstance()->getTableName() . "` AS `uld`\nLEFT JOIN `" . BOL_UserOnlineDao::getInstance()->getTableName() . "` AS uo ON uo.userId = uld.userId\nWHERE uo.id IS NULL";
     $usersOfflineButOnline = OW::getDbo()->queryForColumn($sql);
     if ($usersOfflineButOnline > 0) {
         MAILBOX_BOL_ConversationService::getInstance()->resetAllUsersLastData();
     }
 }
Exemple #3
0
 public function quickSearch()
 {
     if (!OW::getRequest()->isAjax()) {
         exit(json_encode(array('result' => false)));
     }
     $lang = OW::getLanguage();
     $form = OW::getClassInstance('USEARCH_CLASS_QuickSearchForm', $this);
     $isValid = $form->isValid($_POST);
     $data = $form->getValues();
     if (!empty($data['match_sex'])) {
         $data['match_sex'] = $data['match_sex'];
         OW::getSession()->set(USEARCH_CLASS_QuickSearchForm::FORM_SESSEION_VAR, $data);
     }
     if ($isValid) {
         if (!OW::getUser()->isAuthorized('base', 'search_users')) {
             $status = BOL_AuthorizationService::getInstance()->getActionStatus('base', 'search_users');
             OW::getFeedback()->warning($status['msg']);
             exit(json_encode(array('result' => false, 'error' => $status['msg'])));
         }
         //            if ( $credits === false )
         //            {
         //                exit(json_encode(
         //                    array('result' => false, 'error' => OW::getEventManager()->call('usercredits.error_message', $eventParams))
         //                ));
         //            }
         $addParams = array('join' => '', 'where' => '');
         if ($data['online']) {
             $addParams['join'] .= " INNER JOIN `" . BOL_UserOnlineDao::getInstance()->getTableName() . "` `online` ON (`online`.`userId` = `user`.`id`) ";
         }
         if ($data['with_photo']) {
             $addParams['join'] .= " INNER JOIN `" . OW_DB_PREFIX . "base_avatar` avatar ON (`avatar`.`userId` = `user`.`id`) ";
             //$addParams['join'] .= " INNER JOIN `".OW_DB_PREFIX . "photo_album` album ON (`album`.`userId` = `user`.`id`)
             //        INNER JOIN `". OW_DB_PREFIX . "photo` `photo` ON (`album`.`id` = `photo`.`albumId`) ";
         }
         $data = USEARCH_BOL_Service::getInstance()->updateSearchData($data);
         $data = USEARCH_BOL_Service::getInstance()->updateQuickSearchData($data);
         $userIdList = BOL_UserService::getInstance()->findUserIdListByQuestionValues($data, 0, BOL_SearchService::USER_LIST_SIZE, false, $addParams);
         $listId = 0;
         if (count($userIdList) > 0) {
             $listId = BOL_SearchService::getInstance()->saveSearchResult($userIdList);
         }
         OW::getSession()->set(BOL_SearchService::SEARCH_RESULT_ID_VARIABLE, $listId);
         OW::getSession()->set('usearch_search_data', $data);
         BOL_AuthorizationService::getInstance()->trackAction('base', 'search_users');
         exit(json_encode(array('result' => true, 'url' => OW::getRouter()->urlForRoute("users-search-result", array()))));
     }
     exit(json_encode(array('result' => true, 'url' => OW::getRouter()->urlForRoute("users-search"))));
 }
//$baseJsDir = OW::getPluginManager()->getPlugin("base")->getStaticJsUrl();
$BOL_UserDao = BOL_UserDao::getInstance();
$ow_user = OW::getUser();
$OW_Auth_inst = OW_Auth::getInstance();
$Userservice = BOL_UserService::getInstance();
$EmailVerifyService = BOL_EmailVerifyService::getInstance();
$BOL_AvatarService_inst = BOL_AvatarService::getInstance();
$SKAPI_BOL_Service_inst = SKAPI_BOL_Service::getInstance();
$PHOTO_BOL_PhotoService_inst = PHOTO_BOL_PhotoService::getInstance();
$PHOTO_BOL_PhotoAlbumService = PHOTO_BOL_PhotoAlbumService::getInstance();
$PHOTO_BOL_PhotoTemporaryService = PHOTO_BOL_PhotoTemporaryService::getInstance();
$UserResetPassword = BOL_UserResetPasswordDao::getInstance();
$QuestionService = BOL_QuestionService::getInstance();
$AccountTypeToGenderService = SKADATE_BOL_AccountTypeToGenderService::getInstance();
$BOL_AuthorizationService = BOL_AuthorizationService::getInstance();
$BOL_UserOnlineDao = BOL_UserOnlineDao::getInstance();
$USEARCH_BOL_Service = USEARCH_BOL_Service::getInstance();
$BOL_SearchService = BOL_SearchService::getInstance();
$getPluginManager = OW::getPluginManager();
$CONTACTUS_BOL_Service = CONTACTUS_BOL_Service::getInstance();
$PHOTO_BOL_PhotoService = PHOTO_BOL_PhotoService::getInstance();
$PHOTO_BOL_PhotoAlbumCoverDao = PHOTO_BOL_PhotoAlbumCoverDao::getInstance();
$PHOTO_BOL_PhotoDao = PHOTO_BOL_PhotoDao::getInstance();
$getRouter = OW::getRouter();
$language = OW::getLanguage();
$getMailer = OW::getMailer();
$getConfig = OW::getConfig();
$getFeedback = OW::getFeedback();
$getEventManager = OW::getEventManager();
$getMailer = OW::getMailer();
$ow = OW_DB_PREFIX;
Exemple #5
0
 public function deleteExpiredOnlineUsers()
 {
     $timestamp = OW::getConfig()->configExists('base', 'user_expired_time') ? time() - OW::getConfig()->getValue('base', 'user_expired_time') * 60 : time() - 30 * 60;
     $this->userOnlineDao->deleteExpired($timestamp);
 }
Exemple #6
0
 public function countOnline()
 {
     $queryParts = $this->getUserQueryFilter("u", "id", array("method" => "BOL_UserDao::countOnline"));
     $query = "SELECT  COUNT(*) FROM `{$this->getTableName()}` AS `u`\n            {$queryParts["join"]}\n            INNER JOIN `" . BOL_UserOnlineDao::getInstance()->getTableName() . "` AS `o`\n                ON(`u`.`id` = `o`.`userId`)\n            WHERE {$queryParts["where"]}";
     return $this->dbo->queryForColumn($query);
 }
 public function process($data)
 {
     if (OW::getRequest()->isPost() && !$this->isAjax() && isset($data['form_name']) && $data['form_name'] === $this->getName()) {
         OW::getSession()->set(self::FORM_SESSEION_VAR, $data);
         OW::getSession()->set('usearch_search_data', $data);
         if (isset($data[self::SUBMIT_NAME]) && $this->isValid($data) && !$this->isAjax()) {
             if (!OW::getUser()->isAuthorized('base', 'search_users')) {
                 $status = BOL_AuthorizationService::getInstance()->getActionStatus('base', 'search_users');
                 OW::getFeedback()->warning($status['msg']);
                 $this->controller->redirect();
             }
             $data = $this->updateSearchData($data);
             $data = USEARCH_BOL_Service::getInstance()->updateSearchData($data);
             $addParams = array('join' => '', 'where' => '');
             if (!empty($data['online'])) {
                 $addParams['join'] .= " INNER JOIN `" . BOL_UserOnlineDao::getInstance()->getTableName() . "` `online` ON (`online`.`userId` = `user`.`id`) ";
             }
             if (!empty($data['with_photo'])) {
                 $addParams['join'] .= " INNER JOIN `" . OW_DB_PREFIX . "base_avatar` avatar ON (`avatar`.`userId` = `user`.`id`) ";
                 //                    $addParams['join'] .= " INNER JOIN `".OW_DB_PREFIX . "photo_album` album ON (`album`.`userId` = `user`.`id`)
                 //                            INNER JOIN `". OW_DB_PREFIX . "photo` `photo` ON (`album`.`id` = `photo`.`albumId`) ";
             }
             $userIdList = USEARCH_BOL_Service::getInstance()->findUserIdListByQuestionValues($data, 0, BOL_SearchService::USER_LIST_SIZE, false, $addParams);
             $listId = 0;
             if (OW::getUser()->isAuthenticated()) {
                 foreach ($userIdList as $key => $id) {
                     if (OW::getUser()->getId() == $id) {
                         unset($userIdList[$key]);
                     }
                 }
             }
             if (count($userIdList) > 0) {
                 $listId = BOL_SearchService::getInstance()->saveSearchResult($userIdList);
             }
             OW::getSession()->set(BOL_SearchService::SEARCH_RESULT_ID_VARIABLE, $listId);
             BOL_AuthorizationService::getInstance()->trackAction('base', 'search_users');
             $this->controller->redirect(OW::getRouter()->urlForRoute("users-search-result", array()));
         }
         $this->controller->redirect(OW::getRouter()->urlForRoute("users-search"));
     }
 }
Exemple #8
0
 public function deleteExpiredOnlineUsers()
 {
     $timestamp = time() - 30 * 60;
     $this->userOnlineDao->deleteExpired($timestamp);
 }
Exemple #9
0
 public function findBookmarksUserIdList($userId, $first = 0, $count = NULL, $list = BOOKMARKS_BOL_Service::LIST_LATEST)
 {
     if (empty($userId)) {
         return array();
     }
     empty($count) ? $count = (int) OW::getConfig()->getValue('bookmarks', 'widget_user_count') : NULL;
     switch ($list) {
         case BOOKMARKS_BOL_Service::LIST_LATEST:
             $sql = 'SELECT `' . self::MARK_USER_ID . '`
                 FROM `' . $this->getTableName() . '`
                 WHERE `' . self::USER_ID . '` = :userId
                 ORDER BY `id` DESC
                 LIMIT :first, :count';
             break;
         case BOOKMARKS_BOL_Service::LIST_ONLINE:
             $sql = 'SELECT `b`.`' . self::MARK_USER_ID . '`
                 FROM `' . $this->getTableName() . '` AS `b`
                     INNER JOIN `' . BOL_UserOnlineDao::getInstance()->getTableName() . '` AS `o`
                         ON `b`.`' . self::MARK_USER_ID . '` = `o`.`' . BOL_UserOnlineDao::USER_ID . '`
                 WHERE `b`.`' . self::USER_ID . '` = :userId
                 ORDER BY `o`.`activityStamp` DESC
                 LIMIT :first, :count';
             break;
         case BOOKMARKS_BOL_Service::LIST_NOTIFY:
         default:
             $sql = 'SELECT `b`.`' . self::MARK_USER_ID . '`
                 FROM `' . $this->getTableName() . '` AS `b`
                     INNER JOIN `' . BOL_UserDao::getInstance()->getTableName() . '` AS `u`
                         ON `b`.`' . self::MARK_USER_ID . '` = `u`.`id`
                 WHERE `b`.`' . self::USER_ID . '` = :userId
                 ORDER BY `u`.`activityStamp` DESC
                 LIMIT :first, :count';
             break;
     }
     return $this->dbo->queryForColumnList($sql, array('userId' => $userId, 'first' => $first, 'count' => $count));
 }
Exemple #10
0
 public function findOnlineList($count, $withPhoto = true)
 {
     $avatarJoin = !$withPhoto ? '' : "INNER JOIN `" . BOL_AvatarDao::getInstance()->getTableName() . "` as `a`\n    \t\t\tON( `u`.`id` = `a`.`userId` )";
     $query = "\n            SELECT `u`.*\n            FROM `{$this->getTableName()}` AS `u`\n\n            INNER JOIN `" . BOL_UserOnlineDao::getInstance()->getTableName() . "` AS `o`\n                    ON(`u`.`id` = `o`.`userId`)\n\n    \t\tLEFT JOIN `" . BOL_UserSuspendDao::getInstance()->getTableName() . "` as `s`\n    \t\t\tON( `u`.`id` = `s`.`userId` )\n\n    \t\tLEFT JOIN `" . BOL_UserApproveDao::getInstance()->getTableName() . "` as `d`\n    \t\t\tON( `u`.`id` = `d`.`userId` )\n\n                {$avatarJoin}\n\n    \t\tWHERE `s`.`id` IS NULL AND `d`.`id` IS NULL\n\n            ORDER BY `o`.`activityStamp` DESC\n            LIMIT ?, ?\n            ";
     return $this->dbo->queryForObjectList($query, $this->getDtoClassName(), array(0, $count));
 }