/** * Method to store a record * * @access public * @return boolean True on success */ function store() { $row = $this->getTable(); $data = JRequest::get('post'); if ($data['minimum_level'] == '') { $data['minimum_level'] = NULL; } if ($data['maximum_level'] == '') { $data['maximum_level'] = NULL; } if ($data['minimum_rank'] == '') { $data['minimum_rank'] = NULL; } // convert datetimes to UTC $data['start_time'] = RaidPlannerHelper::getDate($data['start_time'], null, 'sql'); $data['invite_time'] = RaidPlannerHelper::getDate($data['invite_time'], null, 'sql'); // Bind the form fields to the table if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } // Make sure the record is valid if (!$row->check()) { $this->setError($this->_db->getErrorMsg()); return false; } // Store the raid table to the database if (!$row->store(true)) { $this->setError($this->_db->getErrorMsg()); return false; } return $row->raid_id; }
public static function checkInvitations($time_before = 1440, $user_id = null) { if (!self::$invite_alert_requested) { if (!$user_id) { $user = JFactory::getUser(); $user_id = $user->id; } if ($user_id) { $db = JFactory::getDBO(); $date = RaidPlannerHelper::getDate(); /* get user vacation first */ $user = JUser::getInstance($user_id); $vac = $user->getParam('vacation', ''); // Joomla ACL $query = "SELECT r.raid_id,r.location,r.start_time FROM #__raidplanner_raid AS r" . " LEFT JOIN #__user_usergroup_map AS p ON p.group_id = r.invited_group_id" . " LEFT JOIN (#__raidplanner_signups AS s,#__raidplanner_character AS c) ON (s.raid_id = r.raid_id AND c.character_id = s.character_id AND c.profile_id = p.user_id)" . " WHERE r.invited_group_id>0" . " AND s.raid_id IS NULL" . " AND p.user_id = " . intval($user_id) . " AND DATE_SUB(r.start_time,interval r.freeze_time minute) > '" . self::date2Sql($date) . "'" . " AND DATE_SUB(r.start_time,interval (r.freeze_time + " . intval($time_before) . ") minute) < '" . self::date2Sql($date) . "'"; if ($vac != '') { /* exclude vacation dates */ $vacs = explode("\n", $vac); if (!empty($vacs)) { foreach ($vacs as $vac) { $vac_period = explode(" ", $vac); $vac_period[0] = preg_replace('/[^0-9-]/i', '', $vac_period[0]); $vac_period[1] = preg_replace('/[^0-9-]/i', '', $vac_period[1]); $query .= "\nAND NOT (r.start_time>='" . $vac_period[0] . "' AND r.start_time<='" . $vac_period[1] . "')"; } } } $db->setQuery($query); self::$invite_alert_requested = true; return $db->loadObjectList(); } } return null; }
getStats(); }); </script> <div id="filter-bar" class="btn-toolbar"> <div class="filter-search btn-group pull-left"> <label for="start_time_min" class="element-invisible"><?php echo JText::_('JDATE'); ?> </label> <div class="input-append input-prepend"> <?php echo JHTML::_('calendar', RaidPlannerHelper::getDate(strtotime('-3 month'), null, RaidPlannerHelper::sqlDateFormat()), 'start_time', 'start_time', '%Y-%m-%d', array('class' => 'input-small')); ?> <span class="add-on">-</span> <?php echo JHTML::_('calendar', RaidPlannerHelper::getDate('now', null, RaidPlannerHelper::sqlDateFormat()), 'end_time', 'end_time', '%Y-%m-%d', array('class' => 'input-small')); ?> </div> </div> <div class="filter-search btn-group pull-left"> <?php if ($this->by_chars == 1) { ?> <label for="character_id" class="element-invisible"><?php echo JText::_('COM_RAIDPLANNER_CHARACTER'); ?> </label> <select name="character_id" id="character_id" class="input-normal"> <option></option> <?php foreach ($this->characters as $character_id => $character) {
/** * Saves an event, or create a new one **/ function saveEvent() { $raid_id = JRequest::getVar('raid_id', null, 'INT'); if (!$this->userIsOfficer($raid_id)) { return false; } $user = JFactory::getUser(); $user_id = $user->id; $db = JFactory::getDBO(); if ($raid_id == -1) { // insert an empty record first $query = "INSERT INTO #__raidplanner_raid (profile_id) VALUES (" . $user_id . ")"; $db->setQuery($query); $db->query(); $raid_id = $db->insertid(); } $location = JRequest::getVar('location', null, 'default', 'STRING'); $description = JRequest::getVar('description', null, 'default', 'STRING'); $start_time = RaidPlannerHelper::getDate(implode(" ", JRequest::getVar('start_time', null, 'default', 'ARRAY'))); $duration_mins = JRequest::getVar('duration_mins', 0, 'default', 'INT'); $invite_time = RaidPlannerHelper::getDate(implode(" ", JRequest::getVar('invite_time', null, 'default', 'ARRAY'))); $freeze_time = JRequest::getVar('freeze_time', null, 'default', 'INT'); $minimum_level = JRequest::getVar('minimum_level', null, 'default', 'INT'); $maximum_level = JRequest::getVar('maximum_level', null, 'default', 'INT'); $minimum_rank = JRequest::getVar('minimum_rank', null, 'default', 'INT'); $icon_name = JRequest::getVar('icon_name', null, 'default', 'STRING'); $guild_id = JRequest::getVar('guild_id', null, 'default', 'INT'); $invited_group_id = JRequest::getVar('invited_group_id', null, 'default', 'INT'); // update the record $query = "UPDATE #__raidplanner_raid SET" . " location=" . $db->Quote($location) . ",description=" . $db->Quote($description) . ",raid_leader=" . $db->Quote($user->name) . ",invite_time='" . RaidPlannerHelper::date2Sql($invite_time) . "'" . ",start_time='" . RaidPlannerHelper::date2Sql($start_time) . "'" . ",duration_mins=" . intval($duration_mins) . ",freeze_time=" . intval($freeze_time) . ",profile_id=" . intval($user_id) . ",icon_name=" . $db->Quote($icon_name) . ",minimum_level=" . ($minimum_level == '' ? "NULL" : intval($minimum_level)) . ",maximum_level=" . ($maximum_level == '' ? "NULL" : intval($maximum_level)) . ",minimum_rank=" . ($minimum_rank == '' ? "NULL" : intval($minimum_rank)) . ",guild_id=" . ($guild_id == '' ? "NULL" : intval($guild_id)) . ",invited_group_id=" . ($invited_group_id == '' ? "NULL" : intval($invited_group_id)) . " WHERE raid_id=" . intval($raid_id); $db->setQuery($query); $db->query(); $query = "UPDATE #__raidplanner_raid SET" . " raid_leader=" . $db->Quote($user->name) . " WHERE raid_id=" . intval($raid_id) . " AND raid_leader=''"; $db->setQuery($query); $db->query(); return $raid_id; }