Файловый менеджер - Редактировать - /var/www/html/components/com_community/views/events/view.html.php
Ðазад
<?php /** * @copyright (C) 2013 iJoomla, Inc. - All rights reserved. * @license GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html) * @author iJoomla.com <webmaster@ijoomla.com> * @url https://www.jomsocial.com/license-agreement * The PHP code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript *are NOT GPL, and are released under the IJOOMLA Proprietary Use License v1.0 * More info at https://www.jomsocial.com/license-agreement */ use Joomla\CMS\Date\Date; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Session\Session; use Joomla\CMS\Table\Table; use Joomla\CMS\Uri\Uri; use Joomla\Registry\Registry; // Check to ensure this file is included in Joomla! defined('_JEXEC') or die(); jimport('joomla.application.component.view'); if (!class_exists("CommunityViewEvents")) { class CommunityViewEvents extends CommunityView { /** * */ public function _addSubmenu() { //CFactory::load( 'helpers' , 'event' ); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $id = $jinput->request->get('eventid', '', 'INT'); $event = Table::getInstance('Event', 'CTable'); $event->load($id); CEventHelper::getHandler($event)->addSubmenus($this); } /** * */ public function showSubmenu($display=true) { $this->_addSubmenu(); return parent::showSubmenu($display); } /** * Application full view * @return type */ public function appFullView() { $document = Factory::getDocument(); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $this->showSubmenu(); $applicationName = CStringHelper::strtolower($jinput->get->get('app', '', 'STRING')); if (empty($applicationName)) { Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_APP_ID_REQUIRED'), 'error'); } if (!$this->accessAllowed('registered')) { return; } $output = ''; //@todo: Since group walls doesn't use application yet, we process it manually now. if ($applicationName == 'walls') { //CFactory::load( 'libraries' , 'wall' ); //$jConfig = Factory::getConfig(); $limit = $jinput->request->getInt('limit', 5); $limitstart = $jinput->request->getInt('limitstart', 0); $eventId = $jinput->request->getInt('eventid'); $my = CFactory::getUser(); $config = CFactory::getConfig(); $eventsModel = CFactory::getModel('Events'); $event = Table::getInstance('Event', 'CTable'); $event->load($eventId); $config = CFactory::getConfig(); /** * Opengraph */ CHeadHelper::setType('website', Text::sprintf('COM_COMMUNITY_EVENTS_WALL_TITLE', $event->title)); $guest = $event->isMember($my->id); $waitingApproval = $event->isPendingApproval($my->id); $status = $event->getUserStatus($my->id, 'events'); $responded = (($status == COMMUNITY_EVENT_STATUS_ATTEND) || ($status == COMMUNITY_EVENT_STATUS_WONTATTEND) || ($status == COMMUNITY_EVENT_STATUS_MAYBE)); if (!$config->get('lockeventwalls') || ($config->get( 'lockeventwalls' ) && ($guest) && !($waitingApproval) && $responded) || COwnerHelper::isCommunityAdmin() ) { // Get the walls content $output .= '<div id="wallContent">'; $output .= CWallLibrary::getWallContents( 'events', $event->id, $event->isAdmin($my->id), $limit, $limitstart, 'wall/content', 'events,events' ); $output .= '</div>'; $output .= CWallLibrary::getWallInputForm( $event->id, 'events,ajaxSaveWall', 'events,ajaxRemoveWall' ); jimport('joomla.html.pagination'); $wallModel = CFactory::getModel('wall'); $pagination = new JPagination($wallModel->getCount($event->id, 'events'), $limitstart, $limit); $output .= '<div class="cPagination">' . $pagination->getPagesLinks() . '</div>'; } } else { //CFactory::load( 'libraries' , 'apps' ); $model = CFactory::getModel('apps'); $applications = CAppPlugins::getInstance(); $applicationId = $model->getUserApplicationId($applicationName); $application = $applications->get($applicationName, $applicationId); if (!$application) { Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_APPS_NOT_FOUND'), 'error'); } // Get the parameters $manifest = CPluginHelper::getPluginPath( 'community', $applicationName ) . '/' . $applicationName . '/' . $applicationName . '.xml'; $params = new CParameter($model->getUserAppParams($applicationId), $manifest); $application->params = $params; $application->id = $applicationId; $output = $application->onAppDisplay($params); } echo $output; } /** * * @param type $tpl * @return type */ public function display($tpl = null) { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $document = Factory::getDocument(); $config = CFactory::getConfig(); $my = CFactory::getUser(); $pageId = $jinput->get('pageid', '', 'INT'); $groupId = $jinput->get('groupid', '', 'INT'); $eventparent = $jinput->get('parent', '', 'INT'); if (!empty($groupId)) { $group = Table::getInstance('Group', 'CTable'); $group->load($groupId); // @rule: Test if the group is unpublished, don't display it at all. if (!$group->published) { echo Text::_('COM_COMMUNITY_GROUPS_UNPUBLISH_WARNING'); return; } $params = new CParameter($group->params); if ($params->get('eventpermission', 0) <= 0) { $mainframe->redirect(CRoute::_('index.php?option=com_community&view=groups&task=viewgroup&groupid='.$groupId, false)); } if ($group->isPrivate() && !$group->isMember($my->id)) { $tmpl = new CTemplate(); echo $tmpl->fetch('events/missingevent'); return; } // Set pathway for group videos // Community > Groups > Group Name > Events $this->addPathway( Text::_('COM_COMMUNITY_GROUPS'), CRoute::_('index.php?option=com_community&view=groups') ); $this->addPathway( $group->name, CRoute::_('index.php?option=com_community&view=pages&task=viewgroup&groupid=' . $groupId) ); //page title $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events&groupid=' . $groupId) ); } else if (!empty($pageId)) { $page = Table::getInstance('Page', 'CTable'); $page->load($pageId); // @rule: Test if the page is unpublished, don't display it at all. if (!$page->published) { echo Text::_('COM_COMMUNITY_PAGES_UNPUBLISH_WARNING'); return; } $params = new CParameter($page->params); if ($params->get('eventpermission', 0) <= 0) { $mainframe->redirect(CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid='.$pageId, false)); } if ($page->isPrivate() && !$page->isMember($my->id)) { $tmpl = new CTemplate(); echo $tmpl->fetch('events/missingevent'); return; } // Set pathway for page videos // Community > Groups > Group Name > Events $this->addPathway( Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages') ); $this->addPathway( $page->name, CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid=' . $pageId) ); //page title $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events&pageid=' . $pageId) ); } else { //page title $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); } // Get category id from the query string if there are any. $categoryId = $jinput->get('categoryid', 0, 'STRING'); //string because it might contain featured_only $limitstart = $jinput->get('limitstart', 0, 'INT'); $showFeaturedOnly = false; if(!is_numeric($categoryId) && $categoryId == 'featured_only'){ $categoryId = 0; $showFeaturedOnly = true; } $category = Table::getInstance('EventCategory', 'CTable'); $category->load($categoryId); if($groupId){ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_GROUP_EVENT')); }else if($pageId){ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGE_EVENT')); }else if (isset($category) && $category->id != 0) { $title = Text::sprintf( 'COM_COMMUNITY_EVENTS_CATEGORY_NAME', str_replace('&', '&', Text::_($this->escape($category->name))) ); CHeadHelper::setType('website', $title); } else { CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS')); } $feedLink = CRoute::_('index.php?option=com_community&view=events&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . Text::_( 'COM_COMMUNITY_SUBSCRIBE_ALL_EVENTS_FEED' ) . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $data = new stdClass(); $defaultSortOrder = $config->get('event_default_sort_order', 'latest'); $sorted = $jinput->get( 'sort', $defaultSortOrder, 'STRING' ); /* begin: UNLIMITED LEVEL BREADCRUMBS PROCESSING */ if ($category->parent == COMMUNITY_NO_PARENT) { $this->addPathway( Text::_($this->escape($category->name)), CRoute::_('index.php?option=com_community&view=events&categoryid=' . $category->id) ); } else { // Parent Category $parentsInArray = array(); $n = 0; $parentId = $category->id; $parent = Table::getInstance('EventCategory', 'CTable'); do { $parent->load($parentId); $parentId = $parent->parent; $parentsInArray[$n]['id'] = $parent->id; $parentsInArray[$n]['parent'] = $parent->parent; $parentsInArray[$n]['name'] = $parent->name; $n++; } while ($parent->parent > COMMUNITY_NO_PARENT); for ($i = count($parentsInArray) - 1; $i >= 0; $i--) { $this->addPathway( $parentsInArray[$i]['name'], CRoute::_( 'index.php?option=com_community&view=events&categoryid=' . $parentsInArray[$i]['id'] ) ); } } /* end: UNLIMITED LEVEL BREADCRUMBS PROCESSING */ $data->categories = $this->_cachedCall( '_getEventsCategories', array($category->id), '', array(COMMUNITY_CACHE_TAG_EVENTS_CAT) ); $model = CFactory::getModel('events'); // Get event in category and it's children. $categories = $model->getAllCategories(); $categoryIds = CCategoryHelper::getCategoryChilds($categories, $category->id); if ($category->id > 0) { $categoryIds[] = (int)$category->id; } //CFactory::load( 'helpers' , 'event' ); $event = Table::getInstance('Event', 'CTable'); $handler = CEventHelper::getHandler($event); // It is safe to pass 0 as the category id as the model itself checks for this value. $data->events = $model->getEvents( $categoryIds, null, $sorted, null, true, false, null, array('parent' => $eventparent), ($showFeaturedOnly) ? 'featured_only' : $handler->getContentTypes(), $handler->getContentId() ); // Get pagination object $data->pagination = $model->getPagination(); $eventsHTML = $this->_cachedCall( '_getEventsHTML', array($data->events, false, $data->pagination), '', array(COMMUNITY_CACHE_TAG_EVENTS) ); //Cache Group Featured List $featuredEvents = $this->_cachedCall( 'getEventsFeaturedList', array(), '', array(COMMUNITY_CACHE_TAG_FEATURED) ); $featuredHTML = $featuredEvents['HTML']; //no Featured Event headline slideshow on Category filtered page if (!empty($categoryId)) { $featuredHTML = ''; } $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_EVENTS_SORT_CREATED'), 'startdate' => Text::_('COM_COMMUNITY_EVENTS_SORT_COMING') ); $title = Text::_('COM_COMMUNITY_EVENTS'); if ($groupId) { $title= Text::_('COM_COMMUNITY_GROUP_EVENTS'); } else if($pageId) { $title= Text::_('COM_COMMUNITY_PAGE_EVENTS'); } $config = CFactory::getConfig(); $canSearch= ( (!$config->get('enableguestsearchevents') && COwnerHelper::isRegisteredUser() ) || $config->get('enableguestsearchevents') ) ? true :false; if ($groupId) { $createLink = CRoute::_('index.php?option=com_community&view=events&groupid='.$groupId.'&task=create'); } else if ($pageId) { $createLink = CRoute::_('index.php?option=com_community&view=events&pageid='.$pageId.'&task=create'); } else { $createLink = CRoute::_('index.php?option=com_community&view=events&task=create'); } $tmpl = new CTemplate(); $tmpl->set('handler', $handler) ->set('canSearch', $canSearch) ->set('pageTitle', $title) ->set('featuredHTML', $featuredHTML) ->set('index', true) ->set('categories', $data->categories) ->set('eventsHTML', $eventsHTML) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->set('my', $my) ->set('isGroup', ($groupId) ? $groupId : false ) ->set('isPage', ($pageId) ? $pageId : false ) ->set('submenu', $this->showSubmenu(false)) ->set('createLink', $createLink); if ($groupId) { $tmpl->set('canCreate', $my->authorise('community.create', 'groups.events.' . $groupId)) ->set('groupMiniHeader', CMiniHeader::showGroupMiniHeader($groupId)); } else if ($pageId) { $tmpl->set('canCreate', $my->authorise('community.create', 'pages.events.' . $pageId)) ->set('pageMiniHeader', CMiniHeader::showPageMiniHeader($pageId)); } else { $tmpl->set('canCreate', 0); } echo $tmpl->fetch('events/base'); } /** * List All FEATURED EVENTS * @ since 2.4 * */ public function getEventsFeaturedList() { $featEvents = $this->_getEventsFeaturedList(); if ($featEvents) { $featuredHTML['HTML'] = $this->_getFeatHTML($featEvents); } else { $featuredHTML['HTML'] = null; } return $featuredHTML; } /** * Generate Featured Events HTML * * @param array Array of events objects * @return string HTML * @since 2.4 */ private function _getFeatHTML($events) { //CFactory::load( 'helpers' , 'owner' ); //CFactory::load( 'libraries', 'events' ); $my = CFactory::getUser(); $config = CFactory::getConfig(); $event = Table::getInstance('Event', 'CTable'); // Get the formated date & time $format = ($config->get('eventshowampm')) ? Text::_('COM_COMMUNITY_EVENTS_TIME_FORMAT_12HR') : Text::_( 'COM_COMMUNITY_EVENTS_TIME_FORMAT_24HR' ); $startDate = $event->getStartDate(false); $endDate = $event->getEndDate(false); $allday = false; if (($startDate->format('%Y-%m-%d') == $endDate->format('%Y-%m-%d')) && $startDate->format( '%H:%M:%S' ) == '00:00:00' && $endDate->format('%H:%M:%S') == '23:59:59' ) { $format = Text::_('COM_COMMUNITY_EVENT_TIME_FORMAT_LC1'); $allday = true; } $tmpl = new CTemplate(); return $tmpl->set('events', $events) ->set('showFeatured', $config->get('show_featured')) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('my', $my) ->set('allday', $allday) ->fetch('events.featured'); } /** * Display invite form * */ public function invitefriends() { CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_INVITE_FRIENDS_TO_EVENT_TITLE')); if (!$this->accessAllowed('registered')) { return; } $this->showSubmenu(); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $my = CFactory::getUser(); $eventId = $jinput->get->get('eventid', '', 'INT'); $this->_addEventInPathway($eventId); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_INVITE_FRIENDS_TO_EVENT_TITLE')); $friendsModel = CFactory::getModel('Friends'); $model = CFactory::getModel('Events'); $event = Table::getInstance('Event', 'CTable'); $event->load($eventId); $tmpFriends = $friendsModel->getFriends($my->id, 'name', false); $friends = array(); for ($i = 0; $i < count($tmpFriends); $i++) { $friend = $tmpFriends[$i]; $eventMember = Table::getInstance('EventMembers', 'CTable'); $keys = array('eventId' => $eventId, 'memberId' => $friend->id); $eventMember->load($keys); if (!$event->isMember($friend->id) && !$eventMember->exists()) { $friends[] = $friend; } } unset($tmpFriends); $tmpl = new CTemplate(); echo $tmpl->set('friends', $friends) ->set('event', $event) ->fetch('events.invitefriends'); } public function pastevents() { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $document = Factory::getDocument(); $config = CFactory::getConfig(); $my = CFactory::getUser(); $groupId = $jinput->get->get('groupid', '', 'INT'); $pageId = $jinput->get->get('pageid', '', 'INT'); if (!empty($groupId)) { $group = Table::getInstance('Group', 'CTable'); $group->load($groupId); // Set pathway for group videos // Community > Groups > Group Name > Events $this->addPathway( Text::_('COM_COMMUNITY_GROUPS'), CRoute::_('index.php?option=com_community&view=groups') ); $this->addPathway( $group->name, CRoute::_('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $groupId) ); } else if (!empty($pageId)) { $page = Table::getInstance('Page', 'CTable'); $page->load($pageId); // Set pathway for page videos // Community > Pages > Page Name > Events $this->addPathway( Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=page') ); $this->addPathway( $page->name, CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid=' . $pageId) ); } else { $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_PAST_TITLE'), ''); } CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_PAST_TITLE')); $feedLink = CRoute::_('index.php?option=com_community&view=events&task=pastevents&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . Text::_( 'COM_COMMUNITY_SUBSCRIBE_EXPIRED_EVENTS_FEED' ) . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); // loading neccessary files here. //CFactory::load( 'libraries' , 'filterbar' ); //CFactory::load( 'helpers' , 'event' ); //CFactory::load( 'helpers' , 'owner' ); //CFactory::load( 'models' , 'events'); //$event = Table::getInstance( 'Event' , 'CTable' ); $data = new stdClass(); $defaultSortOrder = $config->get('event_default_sort_order', 'latest'); $sorted = $jinput->get->get('sort', $defaultSortOrder, 'STRING'); $model = CFactory::getModel('events'); //CFactory::load( 'helpers' , 'event' ); $event = Table::getInstance('Event', 'CTable'); $handler = CEventHelper::getHandler($event); // It is safe to pass 0 as the category id as the model itself checks for this value. $data->events = $model->getEvents( null, null, $sorted, null, false, true, null, null, $handler->getContentTypes(), $handler->getContentId() ); // Get pagination object $data->pagination = $model->getPagination(); // Get the template for the group lists $eventsHTML = $this->_cachedCall( '_getEventsHTML', array($data->events, true, $data->pagination), '', array(COMMUNITY_CACHE_TAG_EVENTS) ); $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_EVENTS_SORT_CREATED'), 'startdate' => Text::_('COM_COMMUNITY_EVENTS_SORT_START_DATE') ); $title = Text::_('COM_COMMUNITY_EVENTS_PAST_TITLE'); if ($groupId) { $title= Text::_('COM_COMMUNITY_EVENTS_PAST_GROUP_TITLE'); } else if ($pageId) { $title= Text::_('COM_COMMUNITY_EVENTS_PAST_PAGE_TITLE'); } $config = CFactory::getConfig(); $canSearch= ( (!$config->get('enableguestsearchevents') && COwnerHelper::isRegisteredUser() ) || $config->get('enableguestsearchevents') ) ? true :false; if ($groupId) { $createLink = CRoute::_('index.php?option=com_community&view=events&groupid='.$groupId.'&task=create'); } else if ($pageId) { $createLink = CRoute::_('index.php?option=com_community&view=events&pageid='.$pageId.'&task=create'); } else { $createLink = CRoute::_('index.php?option=com_community&view=events&task=create'); } $tmpl = new CTemplate(); $tmpl->set('eventsHTML', $eventsHTML) ->set('canSearch', $canSearch) ->set('pageTitle', $title) ->set('config', $config) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->set('groupMiniHeader', ($groupId) ? CMiniHeader::showGroupMiniHeader($groupId) : false) ->set('pageMiniHeader', ($pageId) ? CMiniHeader::showPageMiniHeader($pageId) : false) ->set('my', $my) ->set('submenu', $this->showSubmenu(false)) ->set('createLink', $createLink) ->set('ispastevents', true); if($groupId) { //$tmpl->set('canCreate', $my->authorise('community.create', 'groups.events.' . $groupId)); } else { //$tmpl->set('canCreate', $my->authorise('community.create', 'events')); } $tmpl->set('canCreate', 0); echo $tmpl->fetch('events/base'); } /* * @since 2.4 * To retrieve nearby events */ public function modEventNearby() { return $this->_getNearbyEvent(); } /* * @since 2.4 */ public function _getNearbyEvent() { $tmpl = new CTemplate(); echo $tmpl->fetch('events.nearbysearch'); } /* * @since 3.0 * To get event category */ public function modEventCategories($category, $categories) { return $this->_getEventCategories($category, $categories); } /* * @since 3.0 */ public function _getEventCategories($category, $categories) { $tmpl = new CTemplate(); echo $tmpl->set('category', $category) ->set('categories', $categories) ->fetch('modules/events/categories'); } /* * @since 2.4 * To retrieve events on calendar */ public function modEventCalendar() { return $this->_getEventCalendar(); } /* * @since 2.4 */ private function _getEventCalendar() { $tmpl = new CTemplate(); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; //@since 2.6 if there is group id assigned, only display group's events. $gid = $jinput->request->get('groupid', '', 'INT'); //only display echo $tmpl->set('group_id', $gid) ->fetch('events.eventcalendar'); } /* * @since 2.4 * To retrieve event pending list */ public function modEventPendingList() { $my = CFactory::getUser(); return $this->_getPendingListHTML($my); } /** * Main events page display * @return type */ public function myevents() { //if (!$this->accessAllowed('registered')) { //return; //} $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $document = Factory::getDocument(); $config = CFactory::getConfig(); $my = CFactory::getUser(); $userid = $jinput->get('userid', $my->id, 'INT'); $currentUser = CFactory::getUser($userid); $groupId = $jinput->get->get('groupid', '', 'INT'); $pageId = $jinput->get->get('pageid', '', 'INT'); $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::sprintf('COM_COMMUNITY_USER_EVENTS', $currentUser->getDisplayName()), ''); /** * Opengraph */ CHeadHelper::setType( 'website', Text::sprintf('COM_COMMUNITY_USER_EVENTS', $currentUser->getDisplayName()) ); $feedLink = CRoute::_('index.php?option=com_community&view=events&userid=' . $userid . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . Text::_( 'COM_COMMUNITY_SUBSCRIBE_MY_EVENTS_FEED' ) . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $data = new stdClass(); $defaultSortOrder = $config->get('event_default_sort_order', 'latest'); $sorted = $jinput->get->get('sort', $defaultSortOrder, 'STRING'); $model = CFactory::getModel('events'); // It is safe to pass 0 as the category id as the model itself checks for this value. $data->events = $model->getEvents(null, $userid, $sorted); // Get pagination object $data->pagination = $model->getPagination(); // Get the template for the group lists $eventsHTML = $this->_cachedCall( '_getEventsHTML', array($data->events, false, $data->pagination), '', array(COMMUNITY_CACHE_TAG_EVENTS) ); $tmpl = new CTemplate(); $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_EVENTS_SORT_CREATED'), 'startdate' => Text::_('COM_COMMUNITY_EVENTS_SORT_COMING') ); $title = Text::_('COM_COMMUNITY_EVENTS_MINE'); if($groupId) { $title= Text::_('COM_COMMUNITY_EVENT_GROUP_MINE'); }elseif($pageId) { $title= Text::_('COM_COMMUNITY_EVENT_PAGE_MINE'); }elseif($userid != $my->id){ $title = Text::sprintf('COM_COMMUNITY_USER_EVENTS',CFactory::getUser($userid)->getDisplayName()); } $config = CFactory::getConfig(); $canSearch= ( (!$config->get('enableguestsearchevents') && COwnerHelper::isRegisteredUser() ) || $config->get('enableguestsearchevents') ) ? true :false; if ($groupId) { $createLink = CRoute::_('index.php?option=com_community&view=events&groupid='.$groupId.'&task=create'); } else if ($pageId) { $createLink = CRoute::_('index.php?option=com_community&view=events&pageid='.$pageId.'&task=create'); } else { $createLink = CRoute::_('index.php?option=com_community&view=events&task=create'); } $tmpl->set('eventsHTML', $eventsHTML) ->set('canSearch', $canSearch) ->set('pageTitle', $title) ->set('config', $config) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->set('submenu', $this->showSubmenu(false)) ->set('createLink', $createLink) ->set('my', $my); if($userid == $my->id) { $tmpl->set('canCreate', $my->authorise('community.create', 'events')); } else { $tmpl->set('canCreate', 0); } echo $tmpl->fetch('events/base'); } public function myinvites() { if (!$this->accessAllowed('registered')) { return; } $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $document = Factory::getDocument(); $config = CFactory::getConfig(); $my = CFactory::getUser(); $userid = $jinput->get('userid'); $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_PENDING_INVITATIONS'), ''); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_PENDING_INVITATIONS')); $feedLink = CRoute::_('index.php?option=com_community&view=events&userid=' . $userid . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . Text::_( 'COM_COMMUNITY_SUBSCRIBE_TO_PENDING_INVITATIONS_FEED' ) . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); //CFactory::load( 'libraries' , 'filterbar' ); //CFactory::load( 'helpers' , 'event' ); //CFactory::load( 'helpers' , 'owner' ); //CFactory::load( 'models' , 'events'); $defaultSortOrder = $config->get('event_default_sort_order', 'latest'); $sorted = $jinput->get->get('sort', $defaultSortOrder, 'STRING'); $model = CFactory::getModel('events'); $pending = COMMUNITY_EVENT_STATUS_INVITED; // It is safe to pass 0 as the category id as the model itself checks for this value. $rows = $model->getEvents(null, $my->id, $sorted, null, true, false, $pending); $pagination = $model->getPagination(); $count = count($rows); $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_EVENTS_SORT_CREATED'), 'startdate' => Text::_('COM_COMMUNITY_EVENTS_SORT_COMING') ); $events = array(); if ($rows) { foreach ($rows as $row) { $event = Table::getInstance('Event', 'CTable'); $event->bind($row); $events[] = $event; } unset($eventObjs); } $tmpl = new CTemplate(); $title = Text::_('COM_COMMUNITY_EVENTS_PENDING_INVITATIONS'); echo $tmpl->set('events', $events) ->set('pageTitle', $title) ->set('pagination', $pagination) ->set('config', $config) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->set('my', $my) ->set('count', $count) ->set('submenu', $this->showSubmenu(false)) ->fetch('events.myinvites'); } /** * Method to display the create / edit event's form. * Both views share the same template file. * */ public function _displayForm($event) { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $my = CFactory::getUser(); $config = CFactory::getConfig(); $model = CFactory::getModel('events'); $categories = $model->getCategories(); $now = Date::getInstance(); $groupid = $jinput->get('groupid', '', 'INT'); $pageid = $jinput->get('pageid', '', 'INT'); $task = $jinput->get('task'); //J1.6 returns timezone as string, not integer offset. $systemOffset = $mainframe->get('offset'); //$systemOffset = $systemOffset->getOffsetFromGMT(true); $editorType = ($config->get('allowhtml')) ? $config->get('htmleditor', 'none') : 'none'; $editor = new CEditor($editorType); $totalEventCount = $model->getEventsCreationCount($my->id); if ($event->catid == null) { $event->catid = $jinput->getInt('categoryid', 0); } $event->startdatetime = $jinput->post->get('startdatetime', '00:01', 'NONE'); $event->enddatetime = $jinput->post->get('enddatetime', '23:59', 'NONE'); $timezones = CTimeHelper::getBeautifyTimezoneList(); $helper = CEventHelper::getHandler($event); $startDate = $event->getStartDate(false); $endDate = $event->getEndDate(false); $repeatEndDate = $event->getRepeatEndDate(); $dateSelection = CEventHelper::getDateSelection($startDate, $endDate); // Load category tree $cTree = CCategoryHelper::getCategories($categories); $lists['categoryid'] = CCategoryHelper::getSelectList('events', $cTree, $event->catid, true); $app = CAppPlugins::getInstance(); $appFields = $app->triggerEvent('onFormDisplay', array('createEvent')); $beforeFormDisplay = CFormElement::renderElements($appFields, 'before'); $afterFormDisplay = CFormElement::renderElements($appFields, 'after'); //to invite group members if this event creation belongs to a group and members is more than 1 $showGroupMemberInvitation = false; if($groupid){ $group = Table::getInstance('Group','CTable'); $group->load($groupid); $showGroupMemberInvitation = ($group->getMembersCount() > 1) ? true : false; } $showPageMemberInvitation = false; if($pageid){ $page = Table::getInstance('Page','CTable'); $page->load($pageid); $showPageMemberInvitation = ($page->getMembersCount() > 1) ? true : false; } $tmpl = new CTemplate(); echo $tmpl->set('startDate', $startDate) ->set('showGroupMemberInvitation', $showGroupMemberInvitation) ->set('showPageMemberInvitation', $showPageMemberInvitation) ->set('endDate', $endDate) ->set('enableRepeat', ($my->authorise('community.view', 'events.repeat') && $task != 'edit')) ->set('repeatEndDate', $repeatEndDate) ->set('startHourSelect', $dateSelection->startHour) ->set('endHourSelect', $dateSelection->endHour) ->set('startMinSelect', $dateSelection->startMin) ->set('endMinSelect', $dateSelection->endMin) ->set('startAmPmSelect', $dateSelection->startAmPm) ->set('endAmPmSelect', $dateSelection->endAmPm) ->set('timezones', $timezones) ->set('params', new CParameter($event->params)) ->set('config', $config) ->set('systemOffset', $systemOffset) ->set('lists', $lists) ->set('categories', $categories) ->set('event', $event) ->set('editor', $editor) ->set('helper', $helper) ->set('now', $now->format('%Y-%m-%d')) ->set('eventCreated', $totalEventCount) ->set('eventcreatelimit', $config->get('eventcreatelimit')) ->set('beforeFormDisplay', $beforeFormDisplay) ->set('afterFormDisplay', $afterFormDisplay) ->fetch('events.forms'); } /** * Display the form of the event import and the listing of events users can import * from the calendar file. * */ public function import($data) { $jinput = Factory::getApplication()->input; $events = $data['events']; $config = Factory::getConfig(); $offset = $config->get('offset'); if (isset($data['icalParser'])) { $parser = $data['icalParser']; if (isset($parser->cal['VTIMEZONE']['TZID'])) { $offset = $parser->cal['VTIMEZONE']['TZID']; } } $groupId = $jinput->getInt('groupid', 0); $groupLink = $groupId > 0 ? '&groupid=' . $groupId : ''; $pageId = $jinput->getInt('pageid', 0); $pageLink = $pageId > 0 ? '&pageid=' . $pageId : ''; $saveImportLink = CRoute::_('index.php?option=com_community&view=events&task=saveImport' . $groupLink . $pageLink); if (!$this->accessAllowed('registered')) { return; } //$this->showSubmenu(); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_IMPORT_ICAL')); $model = CFactory::getModel('events'); $categories = $model->getCategories(); //CFactory::load( 'helpers' , 'event' ); $event = Table::getInstance('Event', 'CTable'); //CFactory::load( 'helpers' , 'time' ); $timezones = CTimeHelper::getTimezoneList(); $offsetValue = new DateTime('now', new DateTimeZone($offset)); $offsetValue = (int)$offsetValue->format('P'); if ($groupId) { $createLink = CRoute::_('index.php?option=com_community&view=events&groupid='.$groupId.'&task=create'); $pageTitle = Text::_('COM_COMMUNITY_EVENTS_IMPORT_GROUP_EVENT'); } else if ($pageId) { $createLink = CRoute::_('index.php?option=com_community&view=events&pageid='.$pageId.'&task=create'); $pageTitle = Text::_('COM_COMMUNITY_EVENTS_IMPORT_PAGE_EVENT'); } else { $createLink = CRoute::_('index.php?option=com_community&view=events&task=create'); $pageTitle = Text::_('COM_COMMUNITY_IMPORT_EVENTS'); } $tmpl = new CTemplate(); echo CMiniHeader::showEventMiniHeader($event->id); echo $tmpl->set('events', $events) ->set('categories', $categories) ->set('timezones', $timezones) ->set('offset', $offset) ->set('saveimportlink', $saveImportLink) ->set('offsetValue', $offsetValue) ->set('submenu', $this->showSubmenu(false)) ->set('pageTitle', $pageTitle) ->set('canCreate', CFactory::getUser()->authorise('community.create', 'events')) ->set('createLink', $createLink) //->set('groupMiniHeader', ($groupId) ? CMiniHeader::showGroupMiniHeader($groupId) : false) ->fetch('events.import'); } /** * Displays the create event form * */ public function create($event) { if (!$this->accessAllowed('registered')) { return; } $document = Factory::getDocument(); $config = CFactory::getConfig(); $mainframe = Factory::getApplication(); $handler = CEventHelper::getHandler($event); if (!$handler->creatable()) { $document->setTitle(''); $mainframe->enqueueMessage(Text::_('COM_COMMUNITY_EVENTS_DISABLE_CREATE'), 'error'); return; } $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_CREATE_TITLE'), ''); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_CREATE_TITLE')); // $js = 'assets/validate-1.5.min.js'; // CFactory::attach($js, 'js'); //$this->showSubmenu(); $this->_displayForm($event); return; } public function edit($event) { if (!$this->accessAllowed('registered')) { return; } /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_EDIT_TITLE')); $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_EDIT_TITLE'), ''); // $file = 'assets/validate-1.5.min.js'; // CFactory::attach($file, 'js'); if (!$this->accessAllowed('registered')) { CSystemHelper::showErrorPage(); return; } $this->showSubmenu(); $this->_displayForm($event); return; } public function printpopup($event) { $config = CFactory::getConfig(); $my = CFactory::getUser(); // We need to attach the javascirpt manually $script = ''; // $js = JURI::root() . 'components/com_community/assets/joms.jquery-1.8.1.min.js'; // $script = '<script type="text/javascript" src="' . $js . '"></script>'; // $js = JURI::root() . 'components/com_community/assets/script-1.2.min.js'; // $script .= '<script type="text/javascript" src="' . $js . '"></script>'; $creator = CFactory::getUser($event->creator); $creatorUtcOffset = $creator->getUtcOffset(); $creatorUtcOffsetStr = CTimeHelper::getTimezone($event->offset); // Get the formated date & time $format = ($config->get('eventshowampm')) ? Text::_('COM_COMMUNITY_DATE_FORMAT_LC2_12H') : Text::_( 'COM_COMMUNITY_DATE_FORMAT_LC2_24H' ); $event->startdateHTML = CTimeHelper::getFormattedTime($event->startdate, $format); $event->enddateHTML = CTimeHelper::getFormattedTime($event->enddate, $format); // Output to template $tmpl = new CTemplate(); echo $tmpl->set('event', $event) ->set('script', $script) ->set('creatorUtcOffsetStr', $creatorUtcOffsetStr) ->fetch('events.print'); } /** * Responsible for displaying the event page. * */ public function viewevent() { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $document = Factory::getDocument(); $config = CFactory::getConfig(); $my = CFactory::getUser(); CWindow::load(); $eventLib = new CEvents(); $eventid = $jinput->getInt('eventid', 0); $eventModel = CFactory::getModel('events'); $event = Table::getInstance('Event', 'CTable'); $handler = CEventHelper::getHandler($event); $event->load($eventid); if (empty($event->id)) { Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_EVENTS_NOT_AVAILABLE_ERROR'), 'warning'); return; } // Am I invited in this event? $isInvited = false; $join = ''; $friendsCount = 0; if ( $my->id > 0 ) { $isInvited = $eventModel->isInvitedMe(0, $my->id, $event->id); } // If I was invited, I want to know my invitation informations if ($isInvited) { $invitor = CFactory::getUser($isInvited[0]->invited_by); $join = '<a href="' . CUrlHelper::userLink($invitor->id) . '">' . $invitor->getDisplayName() . '</a>'; // Get users friends in this group $friendsCount = $eventModel->getFriendsCount($my->id, $event->id); } if(!$my->authorise('community.view', 'events.' . $event->id)){ $text = Text::_('COM_COMMUNITY_EVENTS_UNLISTED_ERROR'); //check if the user has already request for invitation or invited if (!$isInvited && $my->id > 0) { var_dump($isInvited); if ($event->getUserStatus($my->id) == COMMUNITY_EVENT_STATUS_REQUESTINVITE) { $text .= Text::_('COM_COMMUNITY_EVENTS_AWAITING_APPROVAL'); } else { $text .= ' <a href="javascript:" onclick="joms.api.eventJoin(\''.$event->id.'\');">Request Invitation</a>'; } Factory::getApplication()->enqueueMessage($text, 'warning'); return; } else if ($my->id == 0) { Factory::getApplication()->enqueueMessage($text, 'warning'); return; } } if (!$handler->exists()) { Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_EVENTS_NOT_AVAILABLE_ERROR'), 'warning'); return; } // banned user cannot see this event if (!$handler->browsable() || $event->getUserStatus($my->id) == COMMUNITY_EVENT_STATUS_BANNED) { $tmpl = new CTemplate(); echo $tmpl->fetch('events/missingevent'); return; } // @rule: Test if the group is unpublished, don't display it at all. if (!$event->isPublished()) { CSystemHelper::showUnpublishPageEvent(); return; } //$this->showSubmenu(); $event->hit(); $isGroupAdmin = false; $isPageAdmin = false; // Basic page presentation if ($event->type == 'group') { $groupId = $event->contentid; $group = Table::getInstance('Group', 'CTable'); $group->load($groupId); // group event permission if (($group->approvals == COMMUNITY_PRIVATE_GROUP && !$group->isMember($my->id)) && !COwnerHelper::isCommunityAdmin()){ $tmpl = new CTemplate(); echo $tmpl->fetch('events/missingevent'); return; } // Set pathway for group videos // Community > Groups > Group Name > Events $this->addPathway( Text::_('COM_COMMUNITY_GROUPS'), CRoute::_('index.php?option=com_community&view=groups') ); $this->addPathway( $group->name, CRoute::_('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $groupId) ); $groupEventDetails = new stdClass(); $groupEventDetails->creator= CFactory::getUser($event->creator); $groupEventDetails->groupName = $group->name; $groupEventDetails->groupLink = CRoute::_('index.php?option=com_community&view=groups&task=viewgroup&groupid='.$group->id); $isGroupAdmin = $group->isAdmin($my->id); $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events&groupid=' . $group->id) ); $this->addPathway($event->title); } else if ($event->type == 'page') { $pageId = $event->contentid; $page = Table::getInstance('Page', 'CTable'); $page->load($pageId); // page event permission if (($page->approvals == COMMUNITY_PRIVATE_PAGE && !$page->isMember($my->id)) && !COwnerHelper::isCommunityAdmin()){ $tmpl = new CTemplate(); echo $tmpl->fetch('events/missingevent'); return; } // Set pathway for page videos // Community > Pages > Page Name > Events $this->addPathway( Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages') ); $this->addPathway( $page->name, CRoute::_('index.php?option=com_community&view=page&task=viewpage&pageid=' . $pageId) ); $pageEventDetails = new stdClass(); $pageEventDetails->creator= CFactory::getUser($event->creator); $pageEventDetails->pageName = $page->name; $pageEventDetails->pageLink = CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid='.$page->id); $isPageAdmin = $page->isAdmin($my->id); $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events&pageid=' . $page->id) ); $this->addPathway($event->title); } else { $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway($event->title); } /** * Opengraph */ CHeadHelper::setType( 'website', Text::sprintf('COM_COMMUNITY_EVENT_PAGE_TITLE', $event->title), null, array($event->getCover()) ); // Permissions and privacies $isEventGuest = $event->isMember($my->id); $isMine = ($my->id == $event->creator); $isAdmin = $event->isAdmin($my->id) || $isGroupAdmin || $isPageAdmin; $isCommunityAdmin = COwnerHelper::isCommunityAdmin(); // Get Event Admins $eventAdmins = $event->getAdmins(12, CC_RANDOMIZE); $adminsInArray = array(); // Attach avatar of the admin for ($i = 0; ($i < count($eventAdmins)); $i++) { $row = $eventAdmins[$i]; $admin = CFactory::getUser($row->id); array_push( $adminsInArray, '<a href="' . CUrlHelper::userLink($admin->id) . '">' . $admin->getDisplayName() . '</a>' ); } $adminsList = ltrim(implode(', ', $adminsInArray), ','); // Get Attending Event Guests $eventMembers = $event->getMembers(COMMUNITY_EVENT_STATUS_ATTEND, CFactory::getConfig()->get('event_sidebar_members_show_total',12) , CC_RANDOMIZE); $eventMembersCount = $event->getMembersCount(COMMUNITY_EVENT_STATUS_ATTEND); // Attach avatar of the admin // Pre-load multiple users at once $userids = array(); foreach ($eventMembers as $uid) { $userids[] = $uid->id; } CFactory::loadUsers($userids); for ($i = 0; ($i < count($eventMembers)); $i++) { $row = $eventMembers[$i]; $eventMembers[$i] = CFactory::getUser($row->id); } // Pre-load multiple users at once $waitingApproval = $event->isPendingApproval($my->id); $waitingRespond = false; $myStatus = $event->getUserStatus($my->id); $hasResponded = (($myStatus == COMMUNITY_EVENT_STATUS_ATTEND) || ($myStatus == COMMUNITY_EVENT_STATUS_WONTATTEND) || ($myStatus == COMMUNITY_EVENT_STATUS_MAYBE)); // Get Bookmark HTML $bookmarks = new CBookmarks( CRoute::getExternalURL( 'index.php?option=com_community&view=events&task=viewevent&eventid=' . $event->id ) ); $bookmarksHTML = $bookmarks->getHTML(); // Get the Wall $wallContent = CWallLibrary::getWallContents( 'events', $event->id, $isAdmin, $config->get('stream_default_comments', 0), 0, 'wall/content', 'events,events' ); $wallCount = CWallLibrary::getWallCount('events', $event->id); $viewAllLink = false; if ($jinput->request->get('task', '', 'STRING') != 'app') { $viewAllLink = CRoute::_( 'index.php?option=com_community&view=events&task=app&eventid=' . $event->id . '&app=walls' ); } $wallContent .= CWallLibrary::getViewAllLinkHTML($viewAllLink, $wallCount); $wallForm = ''; // Construct the RVSP radio list $arr = array( HTMLHelper::_('select.option', COMMUNITY_EVENT_STATUS_ATTEND, Text::_('COM_COMMUNITY_EVENTS_YES')), HTMLHelper::_('select.option', COMMUNITY_EVENT_STATUS_WONTATTEND, Text::_('COM_COMMUNITY_EVENTS_NO')), HTMLHelper::_('select.option', COMMUNITY_EVENT_STATUS_MAYBE, Text::_('COM_COMMUNITY_EVENTS_MAYBE')) ); $status = $event->getMemberStatus($my->id); $radioList = HTMLHelper::_('select.radiolist', $arr, 'status', '', 'value', 'text', $status, false); $unapprovedCount = $event->inviteRequestCount(); //... $editEvent = $jinput->get->get('edit', false, 'NONE'); $editEvent = ($editEvent == 1) ? true : false; // Get like $likes = new CLike(); $isUserLiked = false; if ($isLikeEnabled = $likes->enabled('events')) { $isUserLiked = $likes->userLiked('events', $event->id, $my->id); } $totalLikes = $likes->getLikeCount('events', $event->id); // Is this event is a past event? $now = new Date(); $isPastEvent = ($event->getEndDate(false)->toSql() < $now->toSql(true)) ? true : false; // Get the formated date & time $format = ($config->get('eventshowampm')) ? Text::_('COM_COMMUNITY_EVENTS_TIME_FORMAT_12HR') : Text::_( 'COM_COMMUNITY_EVENTS_TIME_FORMAT_24HR' ); $startDate = $event->getStartDate(false); $endDate = $event->getEndDate(false); $allday = false; if (($startDate->format('%Y-%m-%d') == $endDate->format('%Y-%m-%d')) && $startDate->format( '%H:%M:%S' ) == '00:00:00' && $endDate->format('%H:%M:%S') == '23:59:59' ) { $format = Text::_('COM_COMMUNITY_EVENT_TIME_FORMAT_LC1'); $allday = true; } $event->startdateHTML = CTimeHelper::getFormattedTime($event->startdate, $format); $event->enddateHTML = CTimeHelper::getFormattedTime($event->enddate, $format); if (!isset($event->params)) { $event->params = ''; } $params = new CParameter($event->params); $event->defaultCover = $event->isDefaultCover(); // Cover position. $event->coverPostion = $params->get('coverPosition', ''); if (strpos($event->coverPostion, '%') === false) { $event->coverPostion = 0; } // Find cover album and photo. $event->coverAlbum = false; $event->coverPhoto = false; $album = Table::getInstance('Album', 'CTable'); $albumId = $album->isCoverExist('event', $event->id); if ($albumId) { $album->load($albumId); $event->coverAlbum = $albumId; $event->coverPhoto = $album->photoid; } $inviteHTML = CInvitation::getHTML( null, 'events,inviteUsers', $event->id, CInvitation::SHOW_FRIENDS, CInvitation::SHOW_EMAIL ); $status = new CUserStatus($event->id, 'events'); $tmpl = new CTemplate(); $creator = new CUserStatusCreator('message'); $creator->title = ($isMine) ? Text::_('COM_COMMUNITY_STATUS') : Text::_('COM_COMMUNITY_MESSAGE'); $creator->html = $tmpl->fetch('status.message'); $status->addCreator($creator); // Upgrade wall to stream @since 2.5 $event->upgradeWallToStream(); // Add custom stream $streamHTML = $eventLib->getStreamHTML($event); if ($event->getMemberStatus($my->id) == COMMUNITY_EVENT_STATUS_ATTEND) { $RSVPmessage = Text::_('COM_COMMUNITY_EVENTS_ATTENDING_EVENT_MESSAGE'); } else { if ($event->getMemberStatus($my->id) == COMMUNITY_EVENT_STATUS_WONTATTEND) { $RSVPmessage = Text::_('COM_COMMUNITY_EVENTS_NOT_ATTENDING_EVENT_MESSAGE'); } else { $RSVPmessage = Text::_('COM_COMMUNITY_EVENTS_NOT_RESPOND_RSVP_MESSAGE'); } } // Get recurring event series $eventSeries = null; $seriesCount = 0; if ($event->isRecurring()) { $advance = array( 'expired' => false, 'return' => 'object', 'limit' => COMMUNITY_EVENT_SERIES_LIMIT, 'exclude' => $event->id, 'published' => 1 ); $tempseries = $eventModel->getEventChilds($event->parent, $advance); if($tempseries) { foreach ($tempseries as $series) { $table = Table::getInstance('Event', 'CTable'); $table->bind($series); $eventSeries[] = $table; } } $seriesCount = $eventModel->getEventChildsCount($event->parent); } //pending request invitation guest $pendingRequestGuests = $event->getMembers(COMMUNITY_EVENT_STATUS_REQUESTINVITE, 0, false, false); // Pre-load multiple users at once $tempUserInfo = array(); foreach ($pendingRequestGuests as $uid) { $tempUserInfo[] = CFactory::getUser($uid->id); } $pendingRequestGuests = $tempUserInfo; $featured = new CFeatured(FEATURED_EVENTS); $featuredList = $featured->getItemIds(); // Get Attending Event Guests $maybeList = $event->getMembers(COMMUNITY_EVENT_STATUS_MAYBE, 12, CC_RANDOMIZE); $maybeCount = $event->getMembersCount(COMMUNITY_EVENT_STATUS_MAYBE); $tempUserInfo = array(); foreach ($maybeList as $uid) { $tempUserInfo[] = CFactory::getUser($uid->id); } $maybeList = $tempUserInfo; $wontAttendList = $event->getMembers(COMMUNITY_EVENT_STATUS_WONTATTEND, 12, CC_RANDOMIZE); $wontAttendCount = $event->getMembersCount(COMMUNITY_EVENT_STATUS_WONTATTEND); $tempUserInfo = array(); foreach ($wontAttendList as $uid) { $tempUserInfo[] = CFactory::getUser($uid->id); } $wontAttendList = $tempUserInfo; //gets all the albums related to this photo $photosModel = CFactory::getModel('photos'); $allowShow = array(COMMUNITY_EVENT_STATUS_ATTEND,COMMUNITY_EVENT_STATUS_WONTATTEND,COMMUNITY_EVENT_STATUS_MAYBE); if(($event->permission == 1 || $event->unlisted == 1) && !in_array($event->getUserStatus($my->id),$allowShow)){ //this is a invitation only group or unlisted event, so we only show covers album and exclude others $excludeType = array( 'event', 'event.gif', 'event.stream', 'event.Cover' ); $albums = $photosModel->getEventAlbums($event->id, false, false, '', false, '', $excludeType); }else{ $albums = $photosModel->getEventAlbums($event->id, false, false, '', false, '', array('event.Cover')); } $totalPhotos = 0; foreach($albums as $album){ $albumParams = new CParameter($album->params); $totalPhotos = $totalPhotos + $albumParams->get('count'); } //get total videos $videosModel = CFactory::getModel('videos'); $videos = $videosModel->getEventVideos($eventid); $totalVideos = count($videosModel->getEventVideos($eventid)); //get total polls $pollsModel = CFactory::getModel('polls'); $totalPolls = $pollsModel->getEventPollsCount($eventid); // Output to template echo $tmpl->setMetaTags('event', $event) ->set('status', $status) ->set('albums', $albums) ->set('videos', $videos) ->set('timezoneName', $params->get('timezone')) ->set('pendingRequestGuests', $pendingRequestGuests) ->set('streamHTML', $streamHTML) ->set('timezone', CTimeHelper::getTimezone($event->offset)) ->set('handler', $handler) ->set('isUserLiked', $isUserLiked) ->set('totalLikes', $totalLikes) ->set('inviteHTML', $inviteHTML) ->set('guestStatus', $event->getUserStatus($my->id)) ->set('event', $event) ->set('radioList', $radioList) ->set('bookmarksHTML', $bookmarksHTML) ->set('isLikeEnabled', $isLikeEnabled) ->set('isEventGuest', $isEventGuest) ->set('isMine', $isMine) ->set('isAdmin', $isAdmin) ->set('isCommunityAdmin', $isCommunityAdmin) ->set('unapproved', $unapprovedCount) ->set('waitingApproval', $waitingApproval) ->set('wallContent', $wallContent) ->set('eventMembers', $eventMembers) ->set('eventMembersCount', $eventMembersCount) ->set('editEvent', $editEvent) ->set('my', $my) ->set('creator', CFactory::getUser($event->creator)) ->set('memberStatus', $myStatus) ->set('waitingRespond', $waitingRespond) ->set('isInvited', $isInvited) ->set('join', $join) ->set('friendsCount', $friendsCount) ->set('isPastEvent', $isPastEvent) ->set('adminsList', $adminsList) ->set('RSVPmessage', $RSVPmessage) ->set('allday', $allday) ->set('eventSeries', $eventSeries) ->set('seriesCount', $seriesCount) ->set('groupEventDetails', isset($groupEventDetails) ? $groupEventDetails : null) ->set('pageEventDetails', isset($pageEventDetails) ? $pageEventDetails : null) ->set('featuredList', $featuredList) ->set('photoPermission', $params->get('photopermission')) ->set('videoPermission', $params->get('videopermission')) ->set('showPhotos', ( $params->get('photopermission') != -1 ) && $config->get('enablephotos') && $config->get('eventphotos')) ->set('showVideos', ( $params->get('videopermission') != -1 ) && $config->get('enablevideos') && $config->get('eventvideos')) ->set('showPolls', ( $params->get('pollspermission') != -1 ) && $config->get('enablepolls') && $config->get('event_polls')) ->set('totalPhotos', $totalPhotos) ->set('totalVideos', $totalVideos) ->set('totalPolls', $totalPolls) ->set('maybeList', $maybeList) ->set('maybeCount', $maybeCount) ->set('wontAttendList', $wontAttendList) ->set('wontAttendCount', $wontAttendCount) ->fetch('events/single'); } /** * Responsible to output the html codes for the task viewguest. * Outputs html codes for the viewguest page. * * @return none. * */ public function viewguest() { if (!$this->accessAllowed('registered')) { return; } $document = Factory::getDocument(); $jinput = Factory::getApplication()->input; $config = CFactory::getConfig(); $my = CFactory::getUser(); $id = $jinput->getInt('eventid', 0); $type = $jinput->get('type'); $approval = $jinput->get('approve'); $event = Table::getInstance('Event', 'CTable'); $event->load($id); $handler = CEventHelper::getHandler($event); $types = array( COMMUNITY_EVENT_ADMINISTRATOR, COMMUNITY_EVENT_STATUS_INVITED, COMMUNITY_EVENT_STATUS_ATTEND, COMMUNITY_EVENT_STATUS_WONTATTEND, COMMUNITY_EVENT_STATUS_MAYBE, COMMUNITY_EVENT_STATUS_BLOCKED, COMMUNITY_EVENT_STATUS_REQUESTINVITE, COMMUNITY_EVENT_STATUS_BANNED ); if (!in_array($type, $types)) { Factory::getApplication()->enqueueMessage(Text::_('Invalid status type'), 'error'); } // Set the guest type for the title purpose switch ($type) { case COMMUNITY_EVENT_ADMINISTRATOR: $guestType = Text::_('COM_COMMUNITY_ADMINS'); break; case COMMUNITY_EVENT_STATUS_INVITED: $guestType = Text::_('COM_COMMUNITY_EVENTS_PENDING_MEMBER'); break; case COMMUNITY_EVENT_STATUS_ATTEND: $guestType = Text::_('COM_COMMUNITY_EVENTS_CONFIRMED_GUESTS'); break; case COMMUNITY_EVENT_STATUS_WONTATTEND: $guestType = Text::_('COM_COMMUNITY_EVENTS_WONT_ATTEND'); break; case COMMUNITY_EVENT_STATUS_MAYBE: $guestType = Text::_('COM_COMMUNITY_EVENTS_MAYBE_ATTEND'); break; case COMMUNITY_EVENT_STATUS_BLOCKED: $guestType = Text::_('COM_COMMUNITY_EVENTS_BLOCKED'); break; case COMMUNITY_EVENT_STATUS_REQUESTINVITE: $guestType = Text::_('COM_COMMUNITY_REQUESTED_INVITATION'); break; case COMMUNITY_EVENT_STATUS_BANNED: $guestType = Text::_('COM_COMMUNITY_EVENTS_BANNED_MEMBERS'); break; } // Then we load basic page presentation $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::sprintf('COM_COMMUNITY_EVENTS_TITLE_LABEL', $event->title), ''); /** * Opengraph */ CHeadHelper::setType( 'website', Text::sprintf('COM_COMMUNTIY_EVENTS_GUESTLIST', $event->title, $guestType) ); $status = $event->getUserStatus($my->id); $allowed = array( COMMUNITY_EVENT_STATUS_INVITED, COMMUNITY_EVENT_STATUS_ATTEND, COMMUNITY_EVENT_STATUS_WONTATTEND, COMMUNITY_EVENT_STATUS_MAYBE ); $accessAllowed = ((in_array( $status, $allowed )) && $status != COMMUNITY_EVENT_STATUS_BLOCKED) ? true : false; if ($handler->hasInvitation() && (($accessAllowed && $event->allowinvite) || $event->isAdmin( $my->id ) || COwnerHelper::isCommunityAdmin()) ) { $this->addSubmenuItem( 'javascript:void(0)', Text::_('COM_COMMUNITY_TAB_INVITE'), "joms.invitation.showForm('', 'events,inviteUsers','" . $event->id . "','1','1');", SUBMENU_RIGHT ); } $this->showSubmenu(); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); // status = unsure | noreply | accepted | declined | blocked // permission = admin | guest | if ($type == COMMUNITY_EVENT_ADMINISTRATOR) { $guestsIds = $event->getAdmins(0); } else { $guestsIds = $event->getMembers($type, 0, false, $approval); } $guests = array(); // Pre-load multiple users at once $userids = array(); foreach ($guestsIds as $uid) { $userids[] = $uid->id; } CFactory::loadUsers($userids); for ($i = 0; $i < count($guestsIds); $i++) { $guests[$i] = CFactory::getUser($guestsIds[$i]->id); $guests[$i]->friendsCount = $guests[$i]->getFriendCount(); $guests[$i]->isMe = ($my->id == $guests[$i]->id) ? true : false; $guests[$i]->isAdmin = $event->isAdmin($guests[$i]->id); $guests[$i]->statusType = $guestsIds[$i]->statusCode; } // Featured $featured = new CFeatured(FEATURED_USERS); $featuredList = $featured->getItemIds(); $pagination = $event->getPagination(); // Output to template $tmpl = new CTemplate(); echo CMiniHeader::showEventMiniHeader($event->id); echo $tmpl->set('event', $event) ->set('type', $type) ->set('handler', $handler) ->set('guests', $guests) ->set('eventid', $event->id) ->set('isMine', $event->isCreator($my->id)) ->set('isSuperAdmin', $isSuperAdmin) ->set('pagination', $pagination) ->set('my', $my) ->set('config', $config) ->set('isAdmin', $event->isAdmin($my->id)) ->set('featuredList', $featuredList) ->fetch('events.viewguest'); } public function search() { // Get the document object and set the necessary properties of the document $document = Factory::getDocument(); $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_SEARCH'), ''); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_SEARCH_EVENTS_TITLE')); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; // $script = '<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>'; // $document->addCustomTag($script); $config = CFactory::getConfig(); // Display the submenu $this->showSubmenu(); //New search features $model = CFactory::getModel('events'); $categories = $model->getCategories(); // input filtered to remove tags $search = trim($jinput->get('search', '', 'STRING')); // Input for advance search $catId = $jinput->getInt('catid', ''); $unit = $jinput->get('unit', $config->get('eventradiusmeasure'), 'NONE'); $category = Table::getInstance('EventCategory', 'CTable'); $category->load($catId); $advance = array(); $advance['startdate'] = $jinput->get('startdate', '', 'NONE'); $advance['enddate'] = $jinput->get('enddate', '', 'NONE'); $advance['radius'] = (float) $jinput->get('radius', '', 'NONE'); $advance['fromlocation'] = $jinput->get('location', '', 'NONE'); if ($unit === COMMUNITY_EVENT_UNIT_KM) { //COM_COMMUNITY_EVENTS_MILES // Since our searching need a value in Miles unit, we need to convert the KM value to Miles // 1 kilometre = 0.621371192 miles // 1 mile = 1.6093 km $advance['radius'] = $advance['radius'] * 0.621371192; } $events = ''; $pagination = null; $posted = $jinput->getInt('posted', ''); $count = 0; $eventsHTML = ''; // Test if there are any post requests made if (!empty($search) || !empty($catId) || (!empty($advance['startdate']) || !empty($advance['enddate']) || !empty($advance['radius']) || !empty($advance['fromlocation']))) { // Check for request forgeries Session::checkToken('get') or jexit(Text::_('COM_COMMUNITY_INVALID_TOKEN')); //CFactory::load( 'libraries' , 'apps' ); $appsLib = CAppPlugins::getInstance(); $saveSuccess = $appsLib->triggerEvent('onFormSave', array('jsform-events-search')); if (empty($saveSuccess) || !in_array(false, $saveSuccess)) { $events = $model->getEvents($category->id, null , 'latest', $search, null, null, null, $advance); $pagination = $model->getPagination(); $count = $model->getEventsSearchTotal(); } } // Get the template for the events lists $eventsHTML = $this->_getEventsHTML($events, false, $pagination, true); $app = CAppPlugins::getInstance(); $appFields = $app->triggerEvent('onFormDisplay', array('jsform-events-search')); $beforeFormDisplay = CFormElement::renderElements($appFields, 'before'); $afterFormDisplay = CFormElement::renderElements($appFields, 'after'); $searchLinks = parent::getAppSearchLinks('events'); // Revert back the radius value $advance['radius'] = $jinput->get('radius', '', 'NONE'); $tmpl = new CTemplate(); echo $tmpl->set('beforeFormDisplay', $beforeFormDisplay) ->set('afterFormDisplay', $afterFormDisplay) ->set('posted', $posted) ->set('eventsCount', $count) ->set('eventsHTML', $eventsHTML) ->set('search', $search) ->set('catId', $category->id) ->set('categories', $categories) ->set('advance', $advance) ->set('unit', $unit) ->set('searchLinks', $searchLinks) ->fetch('events.search'); } /** * An event has just been created, should we just show the album ? */ public function created() { $jinput = Factory::getApplication()->input; $eventid = $jinput->getInt('eventid', 0); //CFactory::load( 'models' , 'events'); $event = Table::getInstance('Event', 'CTable'); $event->load($eventid); /** * Opengraph */ CHeadHelper::setType('website', $event->title); $uri = Uri::base(); $this->showSubmenu(); $tmpl = new CTemplate(); echo $tmpl->set( 'link', CRoute::_('index.php?option=com_community&view=events&task=viewevent&eventid=' . $event->id) ) ->set( 'linkUpload', CRoute::_('index.php?option=com_community&view=events&task=uploadavatar&eventid=' . $event->id) ) ->set( 'linkEdit', CRoute::_('index.php?option=com_community&view=events&task=edit&eventid=' . $event->id) ) ->set( 'linkInvite', CRoute::_('index.php?option=com_community&view=events&task=invitefriends&eventid=' . $event->id) ) ->fetch('events.created'); } public function sendmail() { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_EMAIL_SEND')); $this->addPathway( Text::_('COM_COMMUNITY_EVENTS'), CRoute::_('index.php?option=com_community&view=events') ); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_EMAIL_SEND')); if (!$this->accessAllowed('registered')) { return; } // Display the submenu $this->showSubmenu(); $eventId = $jinput->get('eventid', '', 'INT'); $type = $jinput->get('type', COMMUNITY_EVENT_STATUS_ATTEND , 'INT'); //CFactory::load( 'helpers', 'owner' ); //CFactory::load( 'models' , 'events' ); $event = Table::getInstance('Event', 'CTable'); $event->load($eventId); if (empty($eventId) || empty($event->title)) { echo Text::_('COM_COMMUNITY_INVALID_ID_PROVIDED'); return; } $my = CFactory::getUser(); $config = CFactory::getConfig(); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; //CFactory::load( 'libraries' , 'editor' ); $editor = new CEditor($config->get('htmleditor')); //CFactory::load( 'helpers' , 'event' ); $handler = CEventHelper::getHandler($event); if (!$handler->manageable()) { $this->noAccess(); return; } $message = $jinput->post->get('message','','RAW'); $title = $jinput->get('title', '', 'STRING'); echo CMiniHeader::showEventMiniHeader($event->id); $tmpl = new CTemplate(); echo $tmpl->set('editor', $editor) ->set('type',$type) ->set('event', $event) ->set('message', $message) ->set('title', $title) ->fetch('events.sendmail'); } public function uploadAvatar() { /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_EVENTS_AVATAR')); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $eventid = $jinput->get('eventid', '0', 'INT'); $this->_addEventInPathway($eventid); $this->addPathway(Text::_('COM_COMMUNITY_EVENTS_AVATAR')); $this->showSubmenu(); $event = Table::getInstance('Event', 'CTable'); $event->load($eventid); //CFactory::load( 'helpers' , 'event' ); $handler = CEventHelper::getHandler($event); if (!$handler->manageable()) { $this->noAccess(); return; } $config = CFactory::getConfig(); $uploadLimit = (double)$config->get('maxuploadsize'); $uploadLimit .= 'MB'; //CFactory::load( 'models' , 'events' ); $event = Table::getInstance('Event', 'CTable'); $event->load($eventid); //CFactory::load( 'libraries' , 'apps' ); $app = CAppPlugins::getInstance(); $appFields = $app->triggerEvent('onFormDisplay', array('jsform-events-uploadavatar')); $beforeFormDisplay = CFormElement::renderElements($appFields, 'before'); $afterFormDisplay = CFormElement::renderElements($appFields, 'after'); $tmpl = new CTemplate(); echo $tmpl->set('beforeFormDisplay', $beforeFormDisplay) ->set('afterFormDisplay', $afterFormDisplay) ->set('eventId', $eventid) ->set('avatar', $event->getAvatar('avatar')) ->set('thumbnail', $event->getThumbAvatar()) ->set('uploadLimit', $uploadLimit) ->fetch('events.uploadavatar'); } public function _addEventInPathway($eventId) { //CFactory::load( 'models' , 'events' ); $event = Table::getInstance('Event', 'CTable'); $event->load($eventId); $this->addPathway( $event->title, CRoute::_('index.php?option=com_community&view=events&task=viewevent&eventid=' . $event->id) ); } public function _getEventsHTML($eventObjs, $isExpired = false, $pagination = null, $isSearch = false) { $jinput = Factory::getApplication()->input; $categoryid = $jinput->get('categoryid', 0, 'SR'); $groupid = $jinput->get('groupid', 0, 'INT'); $pageid = $jinput->get('pageid', 0, 'INT'); $task = $jinput->get('task', '', 'STRING'); $events = array(); $config = CFactory::getConfig(); $format = ($config->get('eventshowampm')) ? Text::_('COM_COMMUNITY_DATE_FORMAT_LC2_12H') : Text::_( 'COM_COMMUNITY_DATE_FORMAT_LC2_24H' ); if ($eventObjs) { foreach ($eventObjs as $row) { $event = Table::getInstance('Event', 'CTable'); $event->bind($row); $params = new Registry($event->params); $event->showPhotos = ( $params->get('photopermission') != -1 ) && $config->get('enablephotos') && $config->get('eventphotos'); $event->showVideos = ( $params->get('videopermission') != -1 ) && $config->get('enablevideos') && $config->get('eventvideos'); $event->showPolls = ( $params->get('pollspermission') != -1 ) && $config->get('enablepolls') && $config->get('event_polls'); if($event->showPhotos){ //gets all the albums related to this photo $photosModel = CFactory::getModel('photos'); $albums = $photosModel->getEventAlbums($event->id); $event->totalPhotos = 0; foreach($albums as $album){ $albumParams = new CParameter($album->params); $event->totalPhotos = $event->totalPhotos + $albumParams->get('count'); } } if($event->showVideos){ //get total videos $videosModel = CFactory::getModel('videos'); $event->totalVideos = count($videosModel->getEventVideos($event->id)); } if($event->showPolls){ //get total polls $pollsModel = CFactory::getModel('polls'); $event->totalPolls = $pollsModel->getEventPollsCount($event->id); } $events[] = $event; } unset($eventObjs); } $featured = new CFeatured(FEATURED_EVENTS); $featuredList = $featured->getItemIds(); $defaultSortOrder = $config->get('event_default_sort_order', 'latest'); $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_EVENTS_SORT_CREATED'), 'startdate' => Text::_('COM_COMMUNITY_EVENTS_SORT_COMING') ); $tmpl = new CTemplate(); return $tmpl->set('showFeatured', $config->get('show_featured')) ->set('featuredList', $featuredList) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('events', $events) ->set('availableCategories', $this->getFullEventsCategories()) ->set('isSearch', $isSearch) ->set('groupid',$groupid) ->set('pageid',$pageid) ->set('task', $task) ->set('categoryId', $categoryid) ->set('isExpired', $isExpired) ->set('pagination', $pagination) ->set('timeFormat', $format) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->fetch('events/list'); } public function _getEventsCategories($categoryId) { $model = CFactory::getModel('events'); $categories = $model->getCategoriesCount(); $categories = CCategoryHelper::getParentCount($categories, $categoryId); return $categories; } public function getEventsCategory($id){ $model = CFactory::getModel('events'); $categories = $model->getCategories(CEventHelper::ALL_TYPES, $id); return $categories; } /** * List all the category including the children and format it */ public function getFullEventsCategories($id = 0, $level = 0, $categoryList = array()){ $mainCategories = $this->getEventsCategory($id); // first level of video category if(count($mainCategories) > 0){ foreach($mainCategories as $category){ $prefix = ''; for($i = 0; $i < $level; $i++){ $prefix = $prefix.'-'; // this will add the - in front of the category name } $category->name = $prefix.' '.Text::_($category->name); $categoryList[] = $category; $categoryList = $this->getFullEventsCategories($category->id, $level+1, $categoryList); } } return $categoryList; } public function _getPendingListHTML($user) { //CFactory::load( 'models', 'events' ); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $model = CFactory::getModel('events'); $sorted = $jinput->get->get( 'sort', 'latest', 'STRING' ); $pending = COMMUNITY_EVENT_STATUS_INVITED; $rows = $model->getEvents(null, $user->id, $sorted, null, true, false, $pending); $events = array(); if ($rows) { foreach ($rows as $row) { $event = Table::getInstance('Event', 'CTable'); $event->bind($row); $events[] = $event; } } $tmpl = new CTemplate(); return $tmpl->set('events', $events) ->fetch('events.pendinginvitelist'); } /** * @param $activity * @throws Exception */ public function singleActivity($activity) { // we will determine all the user settings based on the activity viewed $my = CFactory::getUser(); $userId = $activity->actor; if($activity->id == 0 || empty($activity->id)){ //redirect this to error : no activity found Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_ERROR_ACTIVITY_NOT_FOUND'), 'warning'); } echo CMiniHeader::showEventMiniHeader($activity->eventid); $document = Factory::getDocument(); $document->setTitle(HTMLHelper::_('string.truncate', $activity->title, 75)); CHeadHelper::setDescription(HTMLHelper::_('string.truncate', $activity->title, 300, true)); //see if the user has blocked each other $getBlockStatus = new blockUser(); $blocked = $getBlockStatus->isUserBlocked($userId, 'profile'); if ($blocked && !COwnerHelper::isCommunityAdmin()) { Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_ERROR_ACTIVITY_NOT_FOUND'), 'warning'); } //everything is fine, lets get to the activity echo $this->_getNewsfeedHTML(); } private function _getNewsfeedHTML() { $my = CFactory::getUser(); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $userId = $jinput->get('userid', $my->id, 'INT'); return CActivities::getActivitiesByFilter('active-profile', $userId, 'profile', true, array('show_featured'=>true)); } public function _getEventsFeaturedList() { //CFactory::load( 'libraries' , 'featured' ); $featured = new CFeatured(FEATURED_EVENTS); $featuredEvents = $featured->getItemIds(); $featuredList = array(); $now = new Date(); foreach ($featuredEvents as $event) { $table = Table::getInstance('Event', 'CTable'); $table->load($event); $expiry = new Date($table->enddate); if ($expiry->toUnix() >= $now->toUnix()) { if ($table->id != '') { $featuredList[] = $table; } } } if (!empty($featuredList)) { foreach ($featuredList as $key => $row) { $orderByDate[$key] = strtotime($row->startdate); } array_multisort($orderByDate, SORT_ASC, $featuredList); } return $featuredList; } } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0.01 |
proxy
|
phpinfo
|
ÐаÑтройка