コード例 #1
0
ファイル: user_dao.php プロジェクト: hardikamutech/loov
 /**
  * Returns an instance of class (singleton pattern implementation).
  *
  * @return BOL_UserDao
  */
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
コード例 #2
0
ファイル: groups_bridge.php プロジェクト: vazahat/dudex
 public function findUsers($groupId, $count, $withPhoto = true)
 {
     $userTable = BOL_UserDao::getInstance()->getTableName();
     $avatarJoin = !$withPhoto ? '' : "INNER JOIN `" . BOL_AvatarDao::getInstance()->getTableName() . "` as `a`\n    \t\t\tON( `u`.`id` = `a`.`userId` )";
     $query = "\n            SELECT `u`.* FROM `{$userTable}` AS `u`\n\n            INNER JOIN `" . GROUPS_BOL_GroupUserDao::getInstance()->getTableName() . "` AS `g`\n                    ON( `u`.`id` = `g`.`userId` )\n\n            LEFT JOIN `" . BOL_UserSuspendDao::getInstance()->getTableName() . "` as `s`\n                    ON( `u`.`id` = `s`.`userId` )\n\n            LEFT JOIN `" . BOL_UserApproveDao::getInstance()->getTableName() . "` as `d`\n                    ON( `u`.`id` = `d`.`userId` )\n\n            {$avatarJoin}\n\n            WHERE g.groupId=:g AND `s`.`id` IS NULL AND `d`.`id` IS NULL\n            ORDER BY `u`.`activityStamp` DESC\n            LIMIT :ls, :le";
     return OW::getDbo()->queryForObjectList($query, BOL_UserDao::getInstance()->getDtoClassName(), array('ls' => 0, 'le' => $count, 'g' => $groupId));
 }
コード例 #3
0
ファイル: send_queue_dao.php プロジェクト: vazahat/dudex
 public function fillData($period, $defaultSchedules)
 {
     $usersDao = BOL_UserDao::getInstance();
     $scheduleDao = NOTIFICATIONS_BOL_ScheduleDao::getInstance();
     $query = "REPLACE INTO " . $this->getTableName() . " (`userId`, `timeStamp`) SELECT DISTINCT u.id, UNIX_TIMESTAMP() FROM " . $usersDao->getTableName() . " u\n                    LEFT JOIN " . $scheduleDao->getTableName() . " s ON u.id = s.userId\n                    WHERE (IF( s.schedule IS NULL, :ds, s.schedule )=:as  AND u.activityStamp < :as ) OR IF( s.schedule IS NULL, :ds, s.schedule )=:is ORDER BY u.activityStamp DESC";
     return $this->dbo->query($query, array('as' => time() - $period, 'ds' => $defaultSchedules, 'is' => NOTIFICATIONS_BOL_Service::SCHEDULE_IMMEDIATELY, 'as' => NOTIFICATIONS_BOL_Service::SCHEDULE_AUTO));
 }
コード例 #4
0
ファイル: membership_user_dao.php プロジェクト: vazahat/dudex
 /**
  * Finds users by membership type
  * 
  * @param int $typeId
  * @param int $page
  * @param int $onPage
  */
 public function findByTypeId($typeId, $page, $onPage)
 {
     $limit = (int) $onPage;
     $first = ($page - 1) * $limit;
     $sql = "SELECT `m`.*\n            FROM `" . $this->getTableName() . "` AS `m`\n            LEFT JOIN `" . BOL_UserDao::getInstance()->getTableName() . "` AS `u` ON (`u`.`id` = `m`.`userId`)\n            WHERE `m`.`typeId` = :typeId\n            ORDER BY `u`.`activityStamp` DESC\n            LIMIT :first, :limit";
     return $this->dbo->queryForList($sql, array('typeId' => $typeId, 'first' => $first, 'limit' => $limit));
 }
コード例 #5
0
 /**
  * Class constructor
  */
 private function __construct()
 {
     $this->sectionDao = FORUM_BOL_SectionDao::getInstance();
     $this->groupDao = FORUM_BOL_GroupDao::getInstance();
     $this->topicDao = FORUM_BOL_TopicDao::getInstance();
     $this->postDao = FORUM_BOL_PostDao::getInstance();
     $this->userDao = BOL_UserDao::getInstance();
 }
コード例 #6
0
ファイル: __api.php プロジェクト: hardikamutech/hammu
 public function login(array $params)
 {
     $required_data = array("username", "password");
     foreach ($required_data as $rdata) {
         if (!array_key_exists($rdata, $post) || empty($post[$rdata])) {
             $return = array("response_message" => "Please enter " . $rdata, "response_status" => "0");
             echo json_encode($return);
             exit;
         }
     }
     if (empty($post["username"]) || empty($post["password"])) {
         throw new ErrorException();
     }
     $deviceId = $post["token"];
     $deviceType = $post["type"];
     $email_check = BOL_UserDao::getInstance()->findUserByUsernameOrEmail($post["username"]);
     $email_exits = count($email_check);
     if ($email_exits != '1') {
         $messages = "Sorry!!! Your Username or Email is not registered";
         $return_data = array("response_status" => '0', "response_message" => $messages);
         echo json_encode($return_data);
         exit;
     } else {
         $result = OW::getUser()->authenticate(new BASE_CLASS_StandardAuth($post["username"], $post["password"]));
         if (!$result->isValid()) {
             $messages = $result->getMessages();
             $messages = "Sorry!!! Your password doesn’t match. Please try again";
             $return_data = array("response_status" => '0', "response_message" => $messages);
             echo json_encode($return_data);
             exit;
         } else {
             $token = OW_Auth::getInstance()->getAuthenticator()->getId();
             $tokenauth = new OW_TokenAuthenticator($token);
             $service = PHOTO_BOL_PhotoService::getInstance();
             $this->user = BOL_UserService::getInstance()->findUserById($result->getUserId());
             $email = $this->user->getEmail();
             $account_type = $this->user->getAccountType();
             if ($account_type == "8cc28eaddb382d7c6a94aeea9ec029fb") {
                 $sex = "lady";
             } else {
                 $sex = "gentleman";
             }
             $username = $this->user->getUsername();
             $user_id = $result->getUserId();
             $avatars = BOL_AvatarService::getInstance()->getAvatarsUrlList(array($user_id));
             $check_exist_value = SKAPI_BOL_Service::getInstance()->findValueExistOrNot($user_id);
             $user_skapi_id = $check_exist_value[0]->id;
             $user_details = SKAPI_BOL_Service::getInstance()->createUserDetails($user_id, $deviceId, $deviceType, $user_skapi_id);
             $messages = "Login Successfully";
             $return_data = array("response_status" => '1', "response_message" => $messages, "data" => array("user_id" => $user_id, "user_name" => $username, "email" => $email, "profile_picture" => $avatars[$user_id], "user_type" => $sex));
             echo json_encode($return_data);
             //return true;
         }
     }
     exit;
 }
コード例 #7
0
ファイル: search_dao.php プロジェクト: hardikamutech/loov
 public function findSearchResultListOrderedByRecentlyJoined($userIdList, $first, $count)
 {
     if (empty($userIdList)) {
         return array();
     }
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter("user", "id", array("method" => "USEARCH_BOL_SearchDao::findSearchResultListOrderedByRecentlyJoined"));
     $where = '';
     $sql = "SELECT `user`.* FROM `" . BOL_UserDao::getInstance()->getTableName() . "` `user`\n            {$queryParts["join"]}\n                \n            WHERE `user`.`id` IN (" . $this->dbo->mergeInClause($userIdList) . ") {$where}\n            ORDER BY user.joinStamp DESC, `user`.`activityStamp` DESC  LIMIT :from, :count  ";
     return $this->dbo->queryForObjectList($sql, $this->getDtoClassName(), array('from' => (int) $first, 'count' => (int) $count));
 }
コード例 #8
0
ファイル: user_service.php プロジェクト: hardikamutech/hammu
 public function cronSendWellcomeLetter()
 {
     $preferenceValues = array('send_wellcome_letter' => 1);
     $userIdList = $this->userDao->findUserIdListByPreferenceValues($preferenceValues);
     if (empty($userIdList)) {
         return;
     }
     $users = $this->findUserListByIdList($userIdList);
     foreach ($users as $user) {
         $this->sendWellcomeLetter($user);
     }
 }
コード例 #9
0
ファイル: notify_log_dao.php プロジェクト: hardikamutech/loov
 public function findUserIdListForNotify($timeStamp, $first, $count = BOOKMARKS_BOL_Service::COUNT_CRON_USER)
 {
     if (empty($timeStamp)) {
         return array();
     }
     $sql = 'SELECT `id`
             FROM `' . BOL_UserDao::getInstance()->getTableName() . '`
             WHERE `activityStamp` <= :stamp AND `id` NOT IN (
                 SELECT `userId`
                 FROM `' . $this->getTableName() . '`)
             LIMIT :first, :count';
     return $this->dbo->queryForColumnList($sql, array('stamp' => $timeStamp, 'first' => (int) $first, 'count' => (int) $count));
 }
コード例 #10
0
ファイル: event_invite_dao.php プロジェクト: vazahat/dudex
 public function findUserListForInvite($eventId, $first, $count, $friendList = null)
 {
     $userDao = BOL_UserDao::getInstance();
     $eventDao = EVENTX_BOL_EventDao::getInstance();
     $eventUserDao = EVENTX_BOL_EventUserDao::getInstance();
     $where = "";
     if (isset($friendList) && empty($friendList)) {
         return array();
     } else {
         if (!empty($friendList)) {
             $where = " AND `u`.id IN ( " . $this->dbo->mergeInClause($friendList) . " ) ";
         }
     }
     $query = "SELECT `u`.`id`\n    \t\tFROM `{$userDao->getTableName()}` as `u`\n            LEFT JOIN `" . $eventDao->getTableName() . "` as `e`\n    \t\t\tON( `u`.`id` = `e`.`userId` AND e.id = :event )\n            LEFT JOIN `" . $this->getTableName() . "` as `ei`\n    \t\t\tON( `u`.`id` = `ei`.`userId` AND `ei`.eventId = :event )\n\n            LEFT JOIN `" . $eventUserDao->getTableName() . "` as `eu`\n    \t\t\tON( `u`.`id` = `eu`.`userId` AND `eu`.eventId = :event )\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    \t\tWHERE `e`.`id` IS NULL AND `ei`.`id` IS NULL AND `s`.`id` IS NULL AND `d`.`id` IS NULL AND `eu`.`id` IS NULL " . $where . "\n    \t\tORDER BY `u`.`activityStamp` DESC\n    \t\tLIMIT :first, :count ";
     return $this->dbo->queryForColumnList($query, array('event' => $eventId, 'first' => $first, 'count' => $count));
 }
コード例 #11
0
ファイル: service.php プロジェクト: vazahat/dudex
 public function getNewUsersThisMonth($first, $count)
 {
     $query = "SELECT `u`.* FROM `" . BOL_UserDao::getInstance()->getTableName() . "` as `u`\n\t    \tLEFT JOIN `" . BOL_UserSuspendDao::getInstance()->getTableName() . "` as `s`\n\t    \t\tON( `u`.`id` = `s`.`userId` )\n            LEFT JOIN `" . BOL_UserApproveDao::getInstance()->getTableName() . "` as `d`\n                ON( `u`.`id` = `d`.`userId` )\n\t    \tWHERE `s`.`id` IS NULL AND `d`.`id` IS NULL\n\t    \tAND `u`.`joinStamp` >= :ts\n\t    \tORDER BY `u`.`joinStamp` DESC\n\t    \tLIMIT :first, :count";
     return OW::getDbo()->queryForObjectList($query, BOL_UserDao::getInstance()->getDtoClassName(), array('ts' => time() - 30 * 24 * 3600, 'first' => $first, 'count' => $count));
 }
コード例 #12
0
ファイル: photo_dao.php プロジェクト: hardikamutech/loov
 public function findPhotoListByUserIdList(array $userIdList, $first, $limit, $checkPrivacy = NULL)
 {
     if (count($userIdList) === 0) {
         return array();
     }
     $sql = 'SELECT `p`.*, `a`.`userId`
         FROM `' . $this->getTableName() . '` AS `p`
             INNER JOIN `' . PHOTO_BOL_PhotoAlbumDao::getInstance()->getTableName() . '` AS `a` ON (`p`.`albumId` = `a`.`id`)
             INNER JOIN `' . BOL_UserDao::getInstance()->getTableName() . '` AS `u` ON (`u`.`id` = `a`.`userId`)
         WHERE `a`.`userId` IN(' . implode(',', array_map('intval', array_unique($userIdList))) . ') AND `p`.`status` = :status' . ($checkPrivacy !== NULL ? $checkPrivacy ? ' AND (`p`.`' . self::PRIVACY . '` = :everybody OR `p`.`' . self::PRIVACY . '` = :friends)' : ' AND `p`.`' . self::PRIVACY . '` = :everybody' : '') . '
         ORDER BY `u`.`username`
         LIMIT :first, :limit';
     $params = array('first' => (int) $first, 'limit' => (int) $limit, 'status' => 'approved');
     if ($checkPrivacy !== NULL) {
         switch ($checkPrivacy) {
             case TRUE:
                 $params['friends'] = self::PRIVACY_FRIENDS_ONLY;
             case FALSE:
                 $params['everybody'] = self::PRIVACY_EVERYBODY;
         }
     }
     return $this->dbo->queryForList($sql, $params);
 }
コード例 #13
0
ファイル: service.php プロジェクト: vazahat/dudex
 public function countRateUsers($userId)
 {
     $rateDao = BOL_RateDao::getInstance();
     $userDao = BOL_UserDao::getInstance();
     $sql = "SELECT COUNT(*)\n            FROM `" . $rateDao->getTableName() . "` AS `r`\n            INNER JOIN `" . $userDao->getTableName() . "` AS `u` ON (`u`.`id` = `r`.`userId`) \n            WHERE `entityId` = :entityId AND `entityType` = 'user_rates'";
     return (int) OW::getDbo()->queryForColumn($sql, array('entityId' => $userId));
 }
コード例 #14
0
 private function getUserIdList($userId)
 {
     return $this->getUserIdListAlt($userId);
     $friendsEnabled = (bool) OW::getEventManager()->call('plugin.friends');
     if ($friendsEnabled) {
         $friendIdList = OW::getEventManager()->call('plugin.friends.get_friend_list', array('userId' => $userId));
     } else {
         $friendIdList = array();
     }
     $userIdList = array();
     $userWithCorrespondenceIdList = $this->getUserListWithCorrespondence();
     foreach ($userWithCorrespondenceIdList as $id) {
         $userIdList[] = $id;
     }
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter("u", "id", array("method" => "BOL_UserDao::findList"));
     $correspondenceCondition = "";
     if (!empty($userWithCorrespondenceIdList)) {
         $correspondenceCondition = " AND `u`.`id` NOT IN ( " . OW::getDbo()->mergeInClause($userWithCorrespondenceIdList) . " ) ";
     }
     $query = "SELECT `u`.`id`\r\n            FROM `" . BOL_UserDao::getInstance()->getTableName() . "` as `u`\r\n            {$queryParts["join"]}\r\n\r\n            WHERE {$queryParts["where"]} " . $correspondenceCondition;
     $tmpUserIdList = OW::getDbo()->queryForColumnList($query);
     foreach ($tmpUserIdList as $id) {
         if ($id == $userId) {
             continue;
         }
         if (!in_array($id, $userIdList)) {
             $userIdList[] = $id;
         }
     }
     return array('userIdList' => $userIdList, 'userWithCorrespondenceIdList' => $userWithCorrespondenceIdList, 'friendIdList' => $friendIdList);
 }
コード例 #15
0
ファイル: questions.php プロジェクト: vazahat/dudex
 private function askUsers($query, $data)
 {
     if (!OW::getUser()->isAuthenticated()) {
         return array('warning' => OW::getLanguage()->text('equestions', 'not_authed_ask_warning'));
     }
     $userIds = $query['ids'];
     $questionId = $data['questionId'];
     $question = $this->service->findQuestion($questionId);
     $params = array('userId' => OW::getUser()->getId(), 'questionId' => $questionId);
     if ($query['all']) {
         $params['special'] = true;
         $users = BOL_UserDao::getInstance()->findAll();
         foreach ($users as $user) {
             if ($user->id != $params['userId']) {
                 $userIds[] = $user->id;
             }
         }
     }
     foreach ($userIds as $uid) {
         $params['recipientId'] = $uid;
         $event = new OW_Event(EQUESTIONS_BOL_Service::EVENT_QUESTION_BEFORE_ASK, $params, $data);
         OW::getEventManager()->trigger($event);
     }
     $permissions = EQUESTIONS_CLASS_CreditsBridge::getInstance()->getAllPermissions(EQUESTIONS_CLASS_Credits::ACTION_ASK);
     return array('message' => OW::getLanguage()->text('equestions', 'question_ask_complete_msg', array('count' => count($userIds))), 'permissions' => $permissions);
 }
コード例 #16
0
ファイル: user_service.php プロジェクト: vBulleteen/oxwall
 /**
  * Returns query parts for filtering users ( by default: suspended, not approved, not verified ). 
  * Result array includes strings: join, where, order
  * 
  * @param array $tables
  * @param array $fields
  * @param array $params
  * @return array
  */
 public function getQueryFilter(array $tables, array $fields, $params = array())
 {
     return $this->userDao->getQueryFilter($tables, $fields, $params);
 }
コード例 #17
0
ファイル: clip_dao.php プロジェクト: vazahat/dudex
 /**
  * @see OW_BaseDao::getTableName()
  *
  */
 public function getTableNameUser()
 {
     return $this->userDao->getTableName();
 }
コード例 #18
0
ファイル: hammu_dao.php プロジェクト: hardikamutech/hammu
 /**
  * @param $userId
  * @param $page
  * @param $limit
  * @return array|mixed
  */
 public function findGuestUsers($userId, $page, $limit)
 {
     $first = ($page - 1) * $limit;
     $query = "SELECT `u`.*\n            FROM `" . $this->getTableName() . "` AS `g`\n            INNER JOIN `" . BOL_UserDao::getInstance()->getTableName() . "` as `u`\n                ON (`g`.`guestId` = `u`.`id`)\n            LEFT JOIN `" . BOL_UserSuspendDao::getInstance()->getTableName() . "` as `s`\n                ON( `u`.`id` = `s`.`userId` )\n            LEFT JOIN `" . BOL_UserApproveDao::getInstance()->getTableName() . "` as `d`\n                ON( `u`.`id` = `d`.`userId` )\n            WHERE `s`.`id` IS NULL AND `d`.`id` IS NULL\n            AND `g`.`userId` = ?\n            ORDER BY `g`.`visitTimestamp` DESC\n            LIMIT ?, ?";
     return $this->dbo->queryForObjectList($query, BOL_UserDao::getInstance()->getDtoClassName(), array($userId, $first, $limit));
 }
コード例 #19
0
ファイル: group_user_dao.php プロジェクト: vazahat/dudex
 public function findCountByGroupIdList($groupIdList)
 {
     if (empty($groupIdList)) {
         return array();
     }
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter("u", "userId", array("method" => "GROUPS_BOL_GroupUserDao::findCountByGroupIdList"));
     $query = 'SELECT u.groupId, COUNT(*) count FROM ' . $this->getTableName() . ' u ' . $queryParts["join"] . ' WHERE ' . $queryParts["where"] . ' AND u.groupId IN (' . implode(',', $groupIdList) . ') GROUP BY u.groupId';
     $list = $this->dbo->queryForList($query, null, GROUPS_BOL_GroupDao::LIST_CACHE_LIFETIME, array(GROUPS_BOL_GroupDao::LIST_CACHE_TAG));
     $resultList = array();
     foreach ($list as $item) {
         $resultList[$item['groupId']] = $item['count'];
     }
     foreach ($groupIdList as $groupId) {
         $resultList[$groupId] = empty($resultList[$groupId]) ? 0 : $resultList[$groupId];
     }
     return $resultList;
 }
コード例 #20
0
ファイル: activity_dao.php プロジェクト: vazahat/dudex
 public function findFeedActivity($feedType, $feedId, $actionIds)
 {
     $actionFeedDao = NEWSFEED_BOL_ActionFeedDao::getInstance();
     $unionQueryList = array();
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter("activity", "userId", array("method" => "NEWSFEED_BOL_ActivityDao::findFeedActivity"));
     $unionQueryList[] = 'SELECT activity.* FROM ' . $this->getTableName() . ' activity
         WHERE activity.actionId IN(' . implode(', ', $actionIds) . ') AND activity.status=:s 
         AND activity.privacy=:peb AND activity.visibility & :v
         AND activity.activityType IN ("' . implode('", "', NEWSFEED_BOL_Service::getInstance()->SYSTEM_ACTIVITIES) . '")';
     foreach ($actionIds as $actionId) {
         $unionQueryList[] = 'SELECT a.* FROM ( SELECT DISTINCT activity.* FROM ' . $this->getTableName() . ' activity
             ' . $queryParts["join"] . '
             INNER JOIN ' . $actionFeedDao->getTableName() . ' action_feed ON activity.id=action_feed.activityId
             WHERE ' . $queryParts["where"] . ' AND activity.actionId = ' . $actionId . ' AND
                 (
                     activity.status=:s
                     AND activity.privacy=:peb
                     AND action_feed.feedType=:ft
                     AND action_feed.feedId=:fi
                     AND activity.visibility & :v
                     OR
                     activity.activityType=:ac
                 )
             ORDER BY activity.timeStamp DESC, activity.id DESC LIMIT 100 ) a';
     }
     $query = implode(' UNION ', $unionQueryList) . " ORDER BY 7 DESC, 1 DESC ";
     return $this->dbo->queryForObjectList($query, $this->getDtoClassName(), array('ft' => $feedType, 'fi' => $feedId, 's' => NEWSFEED_BOL_Service::ACTION_STATUS_ACTIVE, 'v' => NEWSFEED_BOL_Service::VISIBILITY_FEED, 'peb' => NEWSFEED_BOL_Service::PRIVACY_EVERYBODY, 'ac' => NEWSFEED_BOL_Service::SYSTEM_ACTIVITY_CREATE));
 }
コード例 #21
0
ファイル: user_dao.php プロジェクト: tammyrocks/birthdays
 public function countByBirthdayPeriod($start, $end, $idList = null, $privacy = null)
 {
     if ($idList === array()) {
         return 0;
     }
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter("q", "userId", array("method" => "BIRTHDAYS_BOL_UserDao::countByBirthdayPeriod"));
     $query = "SELECT COUNT(*) FROM `" . BOL_QuestionDataDao::getInstance()->getTableName() . "` q\r\n            " . $queryParts["join"] . " \r\n            " . (!empty($privacy) ? "LEFT JOIN `" . BIRTHDAYS_BOL_PrivacyDao::getInstance()->getTableName() . "` AS `bp` ON( `q`.`userId` = bp.userId AND ( bp.privacy NOT IN (" . $this->dbo->mergeInClause($privacy) . ") ) ) " : '') . "\r\n\t\t\tWHERE " . $queryParts["where"] . " AND " . (!empty($privacy) ? " `bp`.id IS NULL AND " : "") . " q.`questionName` = 'birthdate' AND\r\n            ( DATE_FORMAT(q.`dateValue`, '" . date('Y') . "-%m-%d') BETWEEN :start1 AND :end1 OR DATE_FORMAT(q.`dateValue`, '" . (intval(date('Y')) + 1) . "-%m-%d') BETWEEN :start2 AND :end2 )\r\n            " . (!empty($idList) ? "AND q.`userId` IN (" . $this->dbo->mergeInClause($idList) . ")" : '');
     return $this->dbo->queryForColumn($query, array('start1' => $start, 'start2' => $start, 'end1' => $end, 'end2' => $end));
 }
コード例 #22
0
ファイル: service.php プロジェクト: hardikamutech/loov
 public function findSpeedmatchOpponents($userId, $first, $count, $criteria, $exclude = array())
 {
     if (!$userId) {
         return null;
     }
     if (isset($criteria['birthdate'])) {
         $range = explode('-', $criteria['birthdate']);
         if (!empty($range[0]) && !empty($range[1])) {
             $criteria['birthdate'] = array('from' => $range[0], 'to' => $range[1]);
         } else {
             unset($criteria['birthdate']);
         }
     }
     $addQuery['join'] = ' LEFT JOIN `' . $this->relationDao->getTableName() . '` AS `relation`
         ON (`user`.`id` = `relation`.`oppUserId` AND `relation`.`userId` = ' . OW::getDbo()->escapeString($userId) . ') ';
     $addQuery['where'] = ' AND `relation`.`id` IS NULL AND `user`.`id` != ' . OW::getDbo()->escapeString($userId);
     if (!empty($criteria['googlemap_location']['latitude']) && !empty($criteria['googlemap_location']['longitude'])) {
         $location = $criteria['googlemap_location'];
         unset($criteria['googlemap_location']);
         $coord = GOOGLELOCATION_BOL_LocationService::getInstance()->getNewCoordinates($location['latitude'], $location['longitude'], 225, (double) $location['distance']);
         $location['southWestLat'] = $coord['lat'];
         $location['southWestLng'] = $coord['lng'];
         $coord = GOOGLELOCATION_BOL_LocationService::getInstance()->getNewCoordinates($location['latitude'], $location['longitude'], 45, (double) $location['distance']);
         $location['northEastLat'] = $coord['lat'];
         $location['northEastLng'] = $coord['lng'];
         $sql = GOOGLELOCATION_BOL_LocationService::getInstance()->getSearchInnerJoinSql('user', $location['southWestLat'], $location['southWestLng'], $location['northEastLat'], $location['northEastLng'], null, 'LEFT');
         $locationDao = SKADATE_BOL_CurrentLocationDao::getInstance();
         $sql .= ' LEFT JOIN `' . $locationDao->getTableName() . '` current_location ON (user.id = current_location.userId
             AND (
                 current_location.latitude >= ' . $location['southWestLat'] . '
                 AND current_location.latitude <= ' . $location['northEastLat'] . '
             )
             AND (
                 current_location.longitude >= ' . $location['southWestLng'] . '
                 AND current_location.longitude <= ' . $location['northEastLng'] . '
             )) ';
         $addQuery['join'] .= $sql;
         $addQuery['where'] .= ' AND (current_location.id IS NOT NULL OR location.id IS NOT NULL) ';
         $addQuery['order'] = ' current_location.id IS NOT NULL DESC, `user`.`activityStamp` DESC ';
     }
     if (!empty($exclude)) {
         $addQuery['where'] .= ' AND `user`.`id` NOT IN (' . implode(',', array_map('intval', array_filter($exclude))) . ') ';
     }
     $idList = BOL_UserDao::getInstance()->findUserIdListByQuestionValues($criteria, $first, $count, false, $addQuery);
     return $idList;
 }
コード例 #23
0
ファイル: event_handler.php プロジェクト: hardikamutech/hammu
 public function photoGetPhotoList(BASE_CLASS_QueryBuilderEvent $event)
 {
     $params = $event->getParams();
     $aliases = $params['aliases'];
     if (empty($params['listType']) || !in_array($params['listType'], array('latest', 'featured', 'toprated', 'most_discussed', 'searchByDesc', 'searchByHashtag', 'searchByUsername'))) {
         return;
     }
     if (!OW::getUser()->isAuthenticated() || !(bool) OW::getConfig()->getValue('skadate', 'photo_filter_setting_matching') || OW::getUser()->isAuthorized('photo') || OW::getUser()->isAuthorized('base')) {
         return;
     }
     $userId = OW::getUser()->getId();
     $matchValue = BOL_QuestionService::getInstance()->getQuestionData(array($userId), array('sex', 'match_sex'));
     if (empty($matchValue[$userId]['match_sex'])) {
         return;
     }
     $join = 'INNER JOIN `' . BOL_UserDao::getInstance()->getTableName() . '` AS `sk_u` ON(`' . $aliases['album'] . '`.`userId` = `sk_u`.`id`)
         INNER JOIN `' . BOL_QuestionDataDao::getInstance()->getTableName() . '` AS `sk_qd` ON (`sk_qd`.`userId` = `sk_u`.`id` AND `sk_qd`.`questionName` = :sk_sexQuestionName AND `sk_qd`.`intValue` & :sk_matchSexValue)
         INNER JOIN `' . BOL_QuestionDataDao::getInstance()->getTableName() . '` AS `sk_qd1` ON (`sk_qd1`.`userId` = `sk_u`.`id` AND `sk_qd1`.`questionName` = :sk_matchSexQuestionName AND `sk_qd1`.`intValue` & :sk_sexValue)';
     $params = array('sk_sexQuestionName' => 'sex', 'sk_matchSexQuestionName' => 'match_sex', 'sk_sexValue' => $matchValue[$userId]['sex'], 'sk_matchSexValue' => $matchValue[$userId]['match_sex']);
     $event->addJoin($join);
     $event->addBatchQueryParams($params);
 }
コード例 #24
0
 public function addRoleByAccountType(BOL_QuestionAccountType $accountType)
 {
     if (empty($accountType)) {
         return;
     }
     $sql = " REPLACE INTO `" . BOL_AuthorizationUserRoleDao::getInstance()->getTableName() . "` ( `userId`, `roleId` ) " . "SELECT u.id, :role FROM " . BOL_UserDao::getInstance()->getTableName() . " u " . " INNER JOIN " . BOL_QuestionAccountTypeDao::getInstance()->getTableName() . " `accountType` ON ( accountType.name = u.accountType ) " . " WHERE  u.accountType = :account ";
     $this->dbo->query($sql, array('account' => $accountType->name, 'role' => $accountType->roleId));
 }
コード例 #25
0
ファイル: message_dao.php プロジェクト: tammyrocks/mailbox
 public function findUserListWithCorrespondenceAlt($userId, $friendIdList)
 {
     $sql = "SELECT `t`.`userId` FROM ( SELECT IF (`m`.`senderId` = :userId, `m`.`recipientId`, `m`.`senderId`) AS `userId`, `m`.`timeStamp` FROM `" . $this->getTableName() . "` as `m`\r\n        WHERE (`m`.`senderId`=:userId OR `m`.`recipientId`=:userId)\r\n        GROUP BY `userId`\r\n        ORDER BY `m`.`timeStamp` DESC) AS `t`\r\n        INNER JOIN `" . BOL_UserDao::getInstance()->getTableName() . "` AS `u` ON ( `u`.`id` = `t`.`userId` )\r\n        ORDER BY `t`.`timeStamp` DESC";
     return $this->dbo->queryForColumnList($sql, array('userId' => $userId));
 }
コード例 #26
0
 /**
  * @param $params
  * @return string
  */
 private function prepareQuerySelectForUserIdList($params)
 {
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter('user', "id", array("method" => "MATCHMAKING_BOL_QuestionMatchDao::prepareQuerySelect"));
     $sql = "SELECT `matches`.`id` as userId, `matches`.`compatibility`  FROM (SELECT DISTINCT `user`.*, " . $params['compatibility'] . " as `compatibility` FROM `" . BOL_UserDao::getInstance()->getTableName() . "` `user`\n        " . $queryParts['join'] . $params['join'] . "\n\n        WHERE " . $queryParts['where'] . " AND `user`.`id`<>" . $params['userId'] . " " . $params['where'] . ") as `matches`\n        ORDER BY " . $params['order'] . " `matches`.`activityStamp` DESC\n        LIMIT :first, :count ";
     return $sql;
 }
コード例 #27
0
ファイル: friendship_dao.php プロジェクト: tammyrocks/friends
 public function findFriendIdListByDisplayName($userId, $search, $first, $count, $userIdList = null)
 {
     $ids = $this->findFriendIdList($userId, $first, $count, $userIdList);
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter('u', 'id', array('method' => 'MAILBOX_BOL_AjaxService::findFriendIdListByDisplayName'));
     $questionName = OW::getConfig()->getValue('base', 'display_name_question');
     $params = array('search' => $search . '%');
     if ($questionName === 'username') {
         $order = ' ORDER BY `u`.`username`';
         $queryParts['where'] .= ' AND `u`.`username` LIKE :search';
     } else {
         $order = ' ORDER BY `qd`.`textValue`';
         $params['questionName'] = $questionName;
         $queryParts['where'] .= ' AND qd.questionName=:questionName AND qd.textValue LIKE :search';
         $queryParts['join'] .= ' INNER JOIN `' . BOL_QuestionDataDao::getInstance()->getTableName() . '` AS `qd` ON(`u`.`id` = `qd`.`userId`) ';
     }
     $query = 'SELECT DISTINCT `u`.`id`
         FROM `' . BOL_UserDao::getInstance()->getTableName() . '` AS `u`
             ' . $queryParts['join'] . '
         WHERE`u`.`id` IN(' . $this->dbo->mergeInClause($ids) . ') AND ' . $queryParts['where'] . '
         ' . $order . '
         LIMIT :first, :count';
     return $this->dbo->queryForColumnList($query, array_merge(array('first' => $first, 'count' => $count), $params));
 }
コード例 #28
0
ファイル: ajax_service.php プロジェクト: hardikamutech/hammu
 public function findUsers($kw, $limit = null)
 {
     $questionName = OW::getConfig()->getValue('base', 'display_name_question');
     $questionDataTable = BOL_QuestionDataDao::getInstance()->getTableName();
     $limitStr = $limit === null ? '' : 'LIMIT 0, ' . intval($limit);
     $queryParts = BOL_UserDao::getInstance()->getUserQueryFilter("qd", "userId", array("method" => "MAILBOX_BOL_AjaxService::findUsers"));
     $query = 'SELECT DISTINCT qd.userId FROM ' . $questionDataTable . ' qd
         ' . $queryParts['join'] . '
         WHERE ' . $queryParts['where'] . ' AND questionName=:name AND textValue LIKE :kw ORDER BY `textValue` ' . $limitStr;
     return OW::getDbo()->queryForColumnList($query, array('kw' => $kw . '%', 'name' => $questionName));
 }
コード例 #29
0
ファイル: index_4_7_2015.php プロジェクト: bhushansonar/hammu
 * Step 2: Instantiate a Slim application
 *
 *
 *
 * This example instantiates a Slim application using
 * its default settings. However, you will usually configure
 * your Slim application now by passing an associative array
 * of setting names and values into the application constructor.
 *
 *
 *
 */
//$app = new \Slim\Slim();
$app = new \Slim\Slim();
//$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();
コード例 #30
0
ファイル: mark_dao.php プロジェクト: hardikamutech/loov
 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));
 }