Esempio n. 1
0
 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));
 }