Example #1
0
 /**
  * Load multiple users at a same time to save up on the queries.
  * @return	boolean		True upon success
  * @param	Array	$userIds	An array of user ids to be loaded.
  */
 public static function loadUsers($userIds)
 {
     $userIds = array_diff_key($userIds, self::$instances);
     if (empty($userIds)) {
         return;
     }
     $ids = implode(",", $userIds);
     $db = JFactory::getDBO();
     $query = 'SELECT  ' . ' a.' . $db->quoteName('userid') . ' as _userid ,' . ' a.' . $db->quoteName('status') . ' as _status , ' . ' a.' . $db->quoteName('points') . ' as _points, ' . ' a.' . $db->quoteName('posted_on') . ' as _posted_on, ' . ' a.' . $db->quoteName('avatar') . ' as _avatar , ' . ' a.' . $db->quoteName('thumb') . ' as _thumb , ' . ' a.' . $db->quoteName('invite') . ' as _invite, ' . ' a.' . $db->quoteName('params') . ' as _cparams,  ' . ' a.' . $db->quoteName('view') . ' as _view, ' . ' a.' . $db->quoteName('friends') . ' as _friends, ' . ' a.' . $db->quoteName('groups') . ' as _groups, ' . ' a.' . $db->quoteName('events') . ' as _events, ' . ' a.' . $db->quoteName('alias') . '	as _alias, ' . ' a.' . $db->quoteName('profile_id') . ' as _profile_id, ' . ' a.' . $db->quoteName('friendcount') . ' as _friendcount, ' . ' a.' . $db->quoteName('storage') . ' as _storage, ' . ' a.' . $db->quoteName('watermark_hash') . ' as _watermark_hash, ' . ' a.' . $db->quoteName('search_email') . ' AS _search_email, ' . ' s.' . $db->quoteName('userid') . ' as _isonline, u.* ' . ' FROM ' . $db->quoteName('#__community_users') . ' as a ' . ' LEFT JOIN ' . $db->quoteName('#__users') . ' u ' . ' ON u.' . $db->quoteName('id') . '=a.' . $db->quoteName('userid') . ' LEFT OUTER JOIN ' . $db->quoteName('#__session') . 's ' . ' ON s.' . $db->quoteName('userid') . '=a.' . $db->quoteName('userid') . ' WHERE a.' . $db->quoteName('userid') . ' IN (' . $ids . ')';
     $db->setQuery($query);
     $objs = $db->loadObjectList();
     foreach ($objs as $obj) {
         $user = new CUser($obj->_userid);
         $isNewUser = $user->init($obj);
         $user->getThumbAvatar();
         // technically, we should not fetch any new user here
         if ($isNewUser) {
             // New user added to jomSocial database
             // trigger event onProfileInit
             $appsLib = CAppPlugins::getInstance();
             $appsLib->loadApplications();
             $args = array();
             $args[] = $user;
             $appsLib->triggerEvent('onProfileCreate', $args);
         }
         CFactory::getUser($obj->_userid, $user);
     }
 }
Example #2
0
 /**
  * Load multiple users at a same time to save up on the queries.
  * @return	boolean		True upon success
  * @param	Array	$userIds	An array of user ids to be loaded.
  */
 public function loadUsers($userIds)
 {
     if (empty($userIds)) {
         return;
     }
     $ids = implode(",", $userIds);
     $db =& JFactory::getDBO();
     $query = "SELECT  " . "\ta.`userid` as _userid , " . "\ta.`status` as _status , " . "\ta.`points`\tas _points, " . "\ta.`posted_on` as _posted_on, " . "\ta.`avatar`\tas _avatar , " . "\ta.`thumb`\tas _thumb , " . "\ta.`invite`\tas _invite, " . "\ta.`params`\tas _cparams,  " . "\ta.`view`\tas _view, " . " a.`friendcount` as _friendcount, " . " a.`alias`\tas _alias, " . " a.`profile_id` as _profile_id, " . " a.`friendcount` as _friendcount, " . " a.`storage` as _storage, " . " a.`watermark_hash` as _watermark_hash, " . "s.`userid` as _isonline, u.* " . " FROM #__community_users as a " . " LEFT JOIN #__users u " . " ON u.`id`=a.`userid` " . " LEFT OUTER JOIN #__session s " . " ON s.`userid`=a.`userid` " . "WHERE a.`userid` IN ({$ids})";
     $db->setQuery($query);
     $objs = $db->loadObjectList();
     foreach ($objs as $obj) {
         $user = new CUser($obj->_userid);
         $isNewUser = $user->init($obj);
         $user->getThumbAvatar();
         // technically, we should not fetch any new user here
         if ($isNewUser) {
             // New user added to jomSocial database
             // trigger event onProfileInit
             $appsLib = CAppPlugins::getInstance();
             $appsLib->loadApplications();
             $args = array();
             $args[] = $user;
             $appsLib->triggerEvent('onProfileCreate', $args);
         }
         CFactory::getUser($obj->_userid, $user);
     }
 }
 /**
  * Return an array of friend records
  * This is a temporary solution to for the performance issue on photo page view.
  * Todo: need to support pagination on the cWindow
  */
 public function getFriendRecords($id)
 {
     if ($id == 0) {
         // guest obviously has no frinds
         $fid = array();
         return $fid;
     }
     $db = JFactory::getDBO();
     $query = 'SELECT DISTINCT(a.' . $db->quoteName('connect_to') . ') AS id , b.' . $db->quoteName('name') . ' , b.' . $db->quoteName('username') . ' , u.' . $db->quoteName('params') . 'AS _cparams' . ' , b.' . $db->quoteName('params') . 'AS params' . ' FROM ' . $db->quoteName('#__community_connection') . ' AS a' . ' INNER JOIN ' . $db->quoteName('#__users') . ' AS b  ' . ' ON a.' . $db->quoteName('connect_from') . '=' . $db->Quote($id) . ' AND b.' . $db->quoteName('block') . '=' . $db->Quote(0) . ' AND a.' . $db->quoteName('connect_to') . '=b.' . $db->quoteName('id') . ' AND a.' . $db->quoteName('status') . '=' . $db->Quote(1) . ' LEFT JOIN ' . $db->quoteName('#__community_users') . ' u ' . ' ON a.' . $db->quoteName('connect_to') . '=u.' . $db->quoteName('userid') . ' WHERE NOT EXISTS ( SELECT d.' . $db->quoteName('blocked_userid') . ' FROM ' . $db->quoteName('#__community_blocklist') . ' AS d  WHERE d.' . $db->quoteName('userid') . ' = ' . $db->Quote($id) . ' AND d.' . $db->quoteName('blocked_userid') . ' = a.' . $db->quoteName('connect_to') . ')' . ' ORDER BY a.' . $db->quoteName('connection_id') . ' DESC';
     $db->setQuery($query);
     $friends = $db->loadObjectList();
     $users = array();
     foreach ($friends as $friend) {
         $user = new CUser($friend->id);
         $isNewUser = $user->init($friend);
         $users[] = $user;
     }
     return $users;
 }