public function ajaxUpdateStatus($eventId, $status) { $filter = JFilterInput::getInstance(); $eventId = $filter->clean($eventId, 'int'); $status = $filter->clean($status, 'int'); $target = NULL; if (!COwnerHelper::isRegisteredUser()) { return $this->ajaxBlockUnregister(); } $my = CFactory::getUser(); $objResponse = new JAXResponse(); $memberId = $my->id; $modal =& $this->getModel('events'); $event =& JTable::getInstance('Event', 'CTable'); $event->load($eventId); CFactory::load('helpers', 'event'); $handler = CEventHelper::getHandler($event); if (!$handler->isAllowed()) { $objResponse->addAlert(JText::_('COM_COMMUNITY_ACCESS_FORBIDDEN')); return $objResponse->sendResponse(); } if ($event->ticket && ($status == COMMUNITY_EVENT_STATUS_ATTEND && $event->confirmedcount + 1 > $event->ticket)) { $objResponse->addAlert(JText::_('COM_COMMUNITY_EVENTS_TICKET_FULL')); return $objResponse->sendResponse(); } $eventMember =& JTable::getInstance('EventMembers', 'CTable'); $eventMember->load($memberId, $eventId); if ($eventMember->permission != 1 && $eventMember->permission != 2) { $eventMember->permission = 3; } $date =& JFactory::getDate(); $eventMember->created = $date->toMYSQL(); $eventMember->status = $status; $eventMember->store(); $event->updateGuestStats(); $event->store(); //activities stream goes here. $url = $handler->getFormattedLink('index.php?option=com_community&view=events&task=viewevent&eventid=' . $event->id, false); CFactory::load('helpers', 'event'); // We update the activity only if a user attend an event and the event was set to public event if ($status == COMMUNITY_EVENT_STATUS_ATTEND && $handler->isPublic()) { $command = 'events.attendence.attend'; $actor = $my->id; $target = 0; $content = ''; $cid = $event->id; $app = 'events'; $act = $handler->getActivity($command, $actor, $target, $content, $cid, $app); $act->eventid = $event->id; $params = new CParameter(''); $action_str = 'events.attendence.attend'; $params->set('eventid', $event->id); $params->set('action', $action_str); $params->set('event_url', $url); // Add activity logging CFactory::load('libraries', 'activities'); CActivityStream::add($act, $params->toString()); } //trigger goes here. CFactory::load('libraries', 'apps'); $appsLib =& CAppPlugins::getInstance(); $appsLib->loadApplications(); $params = array(); $params[] =& $event; $params[] = $my->id; $params[] = $status; if (!is_null($target)) { $params[] = $target; } $this->cacheClean(array(COMMUNITY_CACHE_TAG_EVENTS, COMMUNITY_CACHE_TAG_ACTIVITIES)); CFactory::load('libraries', 'events'); $html = CEvents::getEventMemberHTML($event->id); if ($status == COMMUNITY_EVENT_STATUS_ATTEND) { $RSVPmessage = JText::_('COM_COMMUNITY_EVENTS_ATTENDING_EVENT_MESSAGE'); } else { $RSVPmessage = JText::_('COM_COMMUNITY_EVENTS_NOT_ATTENDING_EVENT_MESSAGE'); } $objResponse->addScriptCall('__callback', $html); $objResponse->addScriptCall("joms.jQuery('#community-event-rsvp-alert .cdata').html('{$RSVPmessage}');"); return $objResponse->sendResponse(); }
public function ajaxUpdateStatus($eventId, $status) { $filter = JFilterInput::getInstance(); $eventId = $filter->clean($eventId, 'int'); $status = $filter->clean($status, 'int'); $target = null; if (!COwnerHelper::isRegisteredUser()) { return $this->ajaxBlockUnregister(); } $my = CFactory::getUser(); $json = array(); $memberId = $my->id; $modal = $this->getModel('events'); $event = JTable::getInstance('Event', 'CTable'); $event->load($eventId); //CFactory::load( 'helpers' , 'event' ); $handler = CEventHelper::getHandler($event); if (!$handler->isAllowed()) { $json['error'] = JText::_('COM_COMMUNITY_ACCESS_FORBIDDEN'); die(json_encode($json)); } if ($event->ticket && ($status == COMMUNITY_EVENT_STATUS_ATTEND && $event->confirmedcount + 1 > $event->ticket)) { $json['error'] = JText::_('COM_COMMUNITY_EVENTS_TICKET_FULL'); die(json_encode($json)); } $eventMember = JTable::getInstance('EventMembers', 'CTable'); $keys = array('eventId' => $eventId, 'memberId' => $memberId); $eventMember->load($keys); if ($eventMember->permission != 1 && $eventMember->permission != 2) { $eventMember->permission = 3; } $date = JFactory::getDate(); $eventMember->created = $date->toSql(); $eventMember->status = $status; $eventMember->store(); $event->updateGuestStats(); $event->store(); // trigger on event join. $this->triggerEvents('onEventJoin', $event); //activities stream goes here. $url = $handler->getFormattedLink('index.php?option=com_community&view=events&task=viewevent&eventid=' . $event->id, false); // We update the activity only if a user attend an event and the event was set to public event if ($status == COMMUNITY_EVENT_STATUS_ATTEND && $handler->isPublic()) { $command = 'events.attendence.attend'; $actor = $my->id; $target = 0; $content = ''; $cid = $event->id; $app = 'events.attend'; $act = $handler->getActivity($command, $actor, $target, $content, $cid, $app); $act->eventid = $event->id; $params = new CParameter(''); $action_str = 'events.attendence.attend'; $params->set('eventid', $event->id); $params->set('action', $action_str); $params->set('event_url', $url); // Add activity logging CActivityStream::addActor($act, $params->toString()); } if ($status == COMMUNITY_EVENT_STATUS_WONTATTEND) { $command = 'events.attendence.attend'; $actor = $my->id; $target = 0; $content = ''; $cid = $event->id; $app = 'events.attend'; $act = $handler->getActivity($command, $actor, $target, $content, $cid, $app); $act->eventid = $event->id; $params = new CParameter(''); $action_str = 'events.attendence.attend'; $params->set('eventid', $event->id); $params->set('action', $action_str); $params->set('event_url', $url); CActivityStream::removeActor($act, $params->toString()); } //trigger goes here. $appsLib = CAppPlugins::getInstance(); $appsLib->loadApplications(); $params = array(); $params[] = $event; $params[] = $my->id; $params[] = $status; if (!is_null($target)) { $params[] = $target; } $this->cacheClean(array(COMMUNITY_CACHE_TAG_EVENTS, COMMUNITY_CACHE_TAG_ACTIVITIES)); $html = CEvents::getEventMemberHTML($event->id); if ($status == COMMUNITY_EVENT_STATUS_ATTEND) { $RSVPmessage = JText::_('COM_COMMUNITY_EVENTS_ATTENDING_EVENT_MESSAGE'); } else { if ($status == COMMUNITY_EVENT_STATUS_MAYBE) { $RSVPmessage = JText::_('COM_COMMUNITY_EVENTS_MAYBE_ATTENDING_EVENT_MESSAGE'); } else { $RSVPmessage = JText::_('COM_COMMUNITY_EVENTS_NOT_ATTENDING_EVENT_MESSAGE'); } } $json['success'] = true; $json['html'] = $html; if (isset($RSVPmessage)) { $json['message'] = $RSVPmessage; } die(json_encode($json)); }