public function ajaxLoadGroupEventMembers($namePrefix, $cid, $limitstart = 0, $limit = 200) { // pending filter $objResponse = new JAXResponse(); $filter = JFilterInput::getInstance(); $callback = 'events,inviteUsers'; $cid = $filter->clean($cid, 'int'); $namePrefix = $filter->clean($namePrefix, 'string'); $my = CFactory::getUser(); //get the handler $handlerName = ''; //load the event $event = JTable::getInstance('Event', 'CTable'); $event->load($cid); //check permission here //get all the members of the group $groupid = $event->contentid; $groupsModel = CFactory::getModel('groups'); $guestIds = $event->getMembers(COMMUNITY_EVENT_STATUS_ATTEND, 0, false, false, false); //get a list of attending users $userids = array(); foreach ($guestIds as $uid) { $userids[] = $uid->id; } $members = $groupsModel->getMembers($groupid, 0, true, false, SHOW_GROUP_ADMIN, true); $memberList = array(); foreach ($members as $member) { if ($member->id == $my->id || in_array($member->id, $userids)) { continue; //exclude myself and those who already attending } $memberList[] = $member->id; } //calculate pending group list $results = CUserHelper::filterUserByName($memberList, $namePrefix, $limitstart, $limit); $memberList = $results['users']; $invitation = JTable::getInstance('Invitation', 'CTable'); $invitation->load($callback, $cid); $tmpl = new CTemplate(); $tmpl->set('friends', $memberList)->set('selected', $invitation->getInvitedUsers()); $html = $tmpl->fetch('ajax.friend.list.events'); $loadedFriend = $limitstart + count($memberList); if ($results['total'] > $loadedFriend) { //update limitstart $limitstart = $limitstart + count($memberList); $moreCount = $results['total'] - $loadedFriend; //load more option $loadMore = '<a onClick="joms.friends.loadMoreFriend(\'' . $callback . '\',\'' . $cid . '\',\'' . $limitstart . '\',\'' . $limit . '\');" href="javascript:void(0)">' . JText::_('COM_COMMUNITY_INVITE_LOAD_MORE') . '(' . $moreCount . ') </a>'; } else { //nothing to load $loadMore = ''; } $json = array('html' => $html, 'loadMore' => $loadMore ? true : false, 'moreCount' => isset($moreCount) ? $moreCount : 0); die(json_encode($json)); }