/** * 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); } }
/** * 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); } }