/** * collect data from POST after submit or update in showadd * * @param $raidplan */ public function SetRaidplan(Raidplan $raidplan, $action) { global $user, $template; $error = array(); // read subjectline $raidplan->setSubject(utf8_normalize_nfc(request_var('subject', '', true))); //read comment section $body = utf8_normalize_nfc(request_var('message', '', true)); $bitfield = $uid = $options = ''; $allow_bbcode = $allow_urls = $allow_smilies = true; generate_text_for_storage($body, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies); $raidplan->setBbcode(array('uid' => $uid, 'bitfield' => $bitfield)); $raidplan->setBody($body); $raidplan->setPoster($user->data['user_id']); // set access level $raidplan->setAccesslevel(request_var('accesslevel', 0)); // set member group id $raidplan->setGroupId(0); $raidplan->setGroupIdList(','); $group_id_array = request_var('calGroupId', array(0)); $num_group_ids = sizeof($group_id_array); if ($num_group_ids == 1) { // if only one group pass the groupid $raidplan->setGroupId($group_id_array[0]); } elseif ($num_group_ids > 1) { // if we want multiple groups then pass the array for ($group_index = 0; $group_index < $num_group_ids; $group_index++) { if ($group_id_array[$group_index] == "") { continue; } $raidplan->setGroupIdList($group_id_array[$group_index] . ","); } } //assign raid team switch ($raidplan->getAccesslevel()) { case 0: //non raid, manual event. $raidplan->setSignupsAllowed(0); $raidplan->setRaidteam(0); break; case 1: // if we selected group access but didn't actually choose a group then throw error if ($num_group_ids < 1) { $error[] = $user->lang['NO_GROUP_SELECTED']; } //no break! //no break! case 2: //everyone invited $raidplan->setRaidteam(request_var('teamselect', request_var('team_id', 0))); $raidplan->setSignupsAllowed(1); $raidplan->init_raidplan_roles(); $raidroles = request_var('role_needed', array(0 => 0)); foreach ($raidroles as $role_id => $needed) { $raidplan->setRaidroles($role_id, (int) $needed); } } //set event type $raidplan->setEventType(request_var('bbdkp_events', 0)); // invite/start date values from pulldown click $end_m = request_var('calMEnd', 0); $end_d = request_var('calDEnd', 0); $end_y = request_var('calYEnd', 0); $inv_hr = request_var('calinvHr', 0); $inv_mn = request_var('calinvMn', 0); $raidplan->setInviteTime(gmmktime($inv_hr, $inv_mn, 0, $end_m, $end_d, $end_y) - $user->timezone - $user->dst); $start_hr = request_var('calHr', 0); $start_mn = request_var('calMn', 0); $raidplan->setStartTime(gmmktime($start_hr, $start_mn, 0, $end_m, $end_d, $end_y) - $user->timezone - $user->dst); $end_hr = request_var('calEndHr', 0); $end_mn = request_var('calEndMn', 0); $raidplan->setEndTime(gmmktime($end_hr, $end_mn, 0, $end_m, $end_d, $end_y) - $user->timezone - $user->dst); if ($raidplan->getEndTime() < $raidplan->getStartTime()) { //check for enddate before begindate // if the end hour is earlier than start hour then roll over a day $temp = $raidplan->getEndTime(); $raidplan->setEndTime($temp += 3600 * 24); } //if this is not an "all day event" $raidplan->setAllDay(0); $raidplan->setday(sprintf('%2d-%2d-%4d', $end_d, $end_m, $end_y)); $raidplan->Check_auth(); if (count($error) > 0) { trigger_error(implode($error, "<br /> "), E_USER_WARNING); } $str = serialize($raidplan); $str1 = base64_encode($str); switch ($action) { case 'addraid': if (!$raidplan->getAuthCanadd()) { trigger_error('USER_CANNOT_POST_RAIDPLAN'); } $s_hidden_fields = build_hidden_fields(array('addraid' => true, 'raidobject' => $str1)); $template->assign_vars(array('S_HIDDEN_FIELDS' => $s_hidden_fields)); confirm_box(false, $user->lang['CONFIRM_ADDRAID'], $s_hidden_fields); break; case 'updateraid': if (!$raidplan->getAuthCanedit()) { trigger_error('USER_CANNOT_EDIT_RAIDPLAN'); } $s_hidden_fields = build_hidden_fields(array('updateraid' => true, 'raidobject' => $str1, 'raidplan_id' => $raidplan->getId())); $template->assign_vars(array('S_HIDDEN_FIELDS' => $s_hidden_fields)); confirm_box(false, $user->lang['CONFIRM_UPDATERAID'], $s_hidden_fields); break; } }