示例#1
0
 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();
 }
示例#2
0
 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);
     }
 }
示例#3
0
 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);
 }
示例#4
0
 function canEdit($user_id = null)
 {
     return RaidPlannerHelper::getPermission('edit_characters', $user_id);
 }
示例#5
0
 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;
 }