function display($tpl = null) { $user = JFactory::getUser(); if ($user->id == 0) { // user not logged in $user = JUser::getInstance(intval(@$_REQUEST['user'])); if ($user->getParam('calendar_secret', '') != '' && $user->getParam('calendar_secret', '') == $_REQUEST['secret']) { // access validated } else { die('Invalid access!'); } } $canView = RaidPlannerHelper::getPermission('view_raids') == 1; $model = $this->getModel(); $this->assignRef('canView', $canView); $this->assignRef('events', $model->getEvents('own', $user->id)); header("Content-Type: text/Calendar"); header("Content-Disposition: inline; filename=raid_calendar.ics"); parent::display($tpl); $app = JFactory::getApplication(); $app->close(); }
function display($tpl = null) { $model = $this->getModel(); $paramsObj = JComponentHelper::getParams('com_raidplanner'); $menuitemid = JRequest::getInt('Itemid'); if ($menuitemid) { $menu = JFactory::getApplication()->getMenu(); $menuparams = $menu->getParams($menuitemid); $paramsObj->merge($menuparams); } $params = array('show_history' => $paramsObj->get('show_history', 0), 'macro_format' => $paramsObj->get('macro_format', ''), 'allow_rating' => $paramsObj->get('allow_rating', 0), 'multi_raid_signup' => $paramsObj->get('multi_raid_signup', 0)); if (RaidPlannerHelper::getPermission('view_raids') != 1) { $mainframe = JFactory::getApplication(); $mainframe->redirect(JRoute::_('index.php?option=com_raidplanner&view=default')); } else { $macro = false; $raid_id = JRequest::getInt('id'); $attendants = $model->getAttendants($raid_id); $event = $model->getEvent($raid_id); $characters = $model->getCharacters(@$event->minimum_level, @$event->maximum_level, @$event->minimum_rank, @$event->guild_id); $isOfficer = $model->userIsOfficer($event->raid_id); if ($isOfficer) { $all_characters = $model->getCharacters(@$event->minimum_level, @$event->maximum_level, @$event->minimum_rank, @$event->guild_id, true); foreach ($attendants as $att_key => $att_char) { // remove that from all_characters foreach ($all_characters as $all_key => $all_char) { if ($att_char->character_id == $all_char->character_id) { unset($all_characters[$all_key]); break; } } } if ($params['macro_format'] != '') { $macro = ''; foreach ($attendants as $attendant) { if ($attendant->confirmed == 1) { $macro .= str_replace('%c', $attendant->char_name, $params['macro_format']) . "\n"; } } } } else { $all_characters = array(); } RaidPlannerHelper::loadGuildCSS(@$event->guild_id); if ($params['multi_raid_signup'] == 1) { $upcoming = $model->getUpcomingEvents($event->start_time); $this->assignRef('upcoming', $upcoming); } $this->assignRef('params', $params); $this->assignRef('macro', $macro); $this->assignRef('event', $event); $this->assignRef('attendants', $attendants); $this->assign('confirmed_roles', $model->getConfirmedRoles($attendants)); $this->assign('xml_history', $model->getHistory($event->raid_id, true)); $this->assign('roles', $model->getRoles()); $this->assignRef('characters', $characters); $this->assignRef('all_characters', $all_characters); $this->assign('selfstatus', $model->getUserStatus($event->raid_id)); $this->assignRef('isOfficer', $isOfficer); $this->assign('canSignup', $model->userCanSignUp($event->raid_id)); $this->assign('onvacation', $model->usersOnVacation($event->start_time)); $this->assignRef('finished', $event->finished); $this->assign('canRate', $model->userCanRate($event->raid_id)); $this->assign('ratings', $model->getRates($event->raid_id)); parent::display($tpl); } }
function display($tpl = null) { $eventmodel = $this->getModel('event'); $paramsObj = JComponentHelper::getParams('com_raidplanner'); $menuitemid = JFactory::getApplication()->getMenu()->getActive()->id; if ($menuitemid) { $menu = JFactory::getApplication()->getMenu(); $menuparams = $menu->getParams($menuitemid); $paramsObj->merge($menuparams); } $params = array('first_dow' => $paramsObj->get('first_dow', 0), 'popup_width' => $paramsObj->get('popup_width', 750), 'popup_height' => $paramsObj->get('popup_height', 500), 'show_history' => $paramsObj->get('show_history', 0), 'use_modal' => $paramsObj->get('use_modal', 1), 'show_tooltips' => $paramsObj->get('show_tooltips', 1), 'show_icons' => $paramsObj->get('show_icons', 1)); $is_mobile = RaidPlannerHelper::detectMobile(); if (!$is_mobile && $params['use_modal'] == 1) { JHtml::_('behavior.modal', 'a.rpevent', array('size' => array('x' => $params['popup_width'], 'y' => $params['popup_height']))); } if (RaidPlannerHelper::getPermission('view_calendar') != 1) { // redirect to the index page $app = JFactory::getApplication(); $msg = JText::_('JGLOBAL_AUTH_ACCESS_DENIED'); $app->redirect(JRoute::_(JURI::root() . 'index.php'), $msg); } $user = JFactory::getUser(); $canView = RaidPlannerHelper::getPermission('view_raids') == 1; $this->assign('isOfficer', $eventmodel->userIsOfficer()); $this->assignRef('canView', $canView); $model = $this->getModel(); $month = JRequest::getVar('month', null); if ($month == '') { $modalevent_id = JRequest::getInt('modalevent', 0); if ($modalevent_id > 0) { $month = $eventmodel->getMonth($modalevent_id); } else { $month = date("Y-m"); } } $monthparts = explode("-", $month); $display_year = intval($monthparts[0]); $display_month = intval($monthparts[1]); if ($display_year < 1900 || $display_year > 2199) { $display_year = date("Y"); } if ($display_month < 1 || $display_month > 12) { $display_month = date("m"); } $prevmonth = date("Y-m", mktime(0, 0, 0, $display_month - 1, 1, $display_year)); $nextmonth = date("Y-m", mktime(0, 0, 0, $display_month + 1, 1, $display_year)); $lastday = date("t", mktime(0, 0, 0, $display_month, 1, $display_year)); $year = date("Y", mktime(0, 0, 0, $display_month, 1, $display_year)); $monthonly = date("m", mktime(0, 0, 0, $display_month, 1, $display_year)); $shift = date("w", mktime(0, 0, 0, $display_month, 1, $display_year)); if ($user->getParam('calendar_secret', '') != '') { $calendar_mode = 'subscribe'; $this->assignRef('user_id', $user->id); $this->assign('calendar_secret', $user->getParam('calendar_secret', '')); } else { $calendar_mode = 'download'; } $this->assignRef('mobile_browser', $is_mobile); $this->assign('invitations', RaidPlannerHelper::checkInvitations()); $this->assignRef('menuitemid', $menuitemid); $this->assignRef('calendar_mode', $calendar_mode); $this->assignRef('prevmonth', $prevmonth); $this->assignRef('nextmonth', $nextmonth); $this->assignRef('lastday', $lastday); $this->assignRef('year', $year); $this->assignRef('monthonly', $monthonly); $this->assignRef('shift', $shift); $this->assignRef('params', $params); $this->assign('events', $model->getEvents($display_year . "-" . $display_month . "-01", null)); $this->assignRef('eventmodel', $eventmodel); parent::display($tpl); }
function canEdit($user_id = null) { return RaidPlannerHelper::getPermission('edit_characters', $user_id); }
function userCanSignUp($raid_id = null) { $can_signup = false; if ($raid_id > 0) { $db = JFactory::getDBO(); $user = JFactory::getUser(); $user_id = $user->id; $date = RaidPlannerHelper::getDate(); $query = "SELECT DATE_SUB(start_time,interval freeze_time minute) > '" . RaidPlannerHelper::date2Sql($date) . "' FROM #__raidplanner_raid WHERE raid_id = " . intval($raid_id); $db->setQuery($query); if ($db->loadResult() == 1) { $can_signup = RaidPlannerHelper::getPermission('allow_signup', $user_id); } } return $can_signup; }