/** * Create an event * @return void */ private function createEvent() { // if post data is set, we are creating an event if (isset($_POST) && count($_POST) > 0) { require_once FRAMEWORK_PATH . 'models/event.php'; $event = new Event($this->registry, 0); $event->setName($this->registry->getObject('db')->sanitizeData($_POST['name'])); $event->setDescription($this->registry->getObject('db')->sanitizeData($_POST['description'])); $event->setDate($this->registry->getObject('db')->sanitizeData($_POST['date']), false); $event->setStartTime($this->registry->getObject('db')->sanitizeData($_POST['start_time'])); $event->setEndTime($this->registry->getObject('db')->sanitizeData($_POST['end_time'])); $event->setCreator($this->registry->getObject('authenticate')->getUser()->getID()); $event->setType($this->registry->getObject('db')->sanitizeData($_POST['type'])); if (isset($_POST['invitees']) && is_array($_POST['invitees']) && count($_POST['invitees']) > 0) { // assumes invitees are added to a table using javascript, with a hidden field with name invitees[] for the ID of invitee $is = array(); foreach ($_POST['invitees'] as $i) { $is[] = intval($i); } $event->setInvitees($is); } $event->save(); $this->registry->redirectUser($this->registry->buildURL(array('event', 'view', $event->getID()), '', false), 'Event created', 'Thanks, the event has been created', false); } else { $this->registry->getObject('template')->buildFromTemplates('header.tpl.php', 'events/create.tpl.php', 'footer.tpl.php'); } }
/** * The file contents is looked at and events are created here. * @param string $fileContents * @return integer The number of events saved. */ public function setEventsFromICal($fullDir, $fullFileName, $personId) { //start parse of local file $v = new vcalendar(); // set directory $v->setConfig('directory', $fullDir); // set file name $v->setConfig('filename', $fullFileName); $v->parse(); $count = 0; foreach ($v->components as $component => $info) { # get first vevent $comp = $v->getComponent("VEVENT"); $summary_array = $comp->getProperty("summary", 1, TRUE); //echo "Event: ", $summary_array["value"], "\n"; $dtstart_array = $comp->getProperty("dtstart", 1, TRUE); $dtstart = $dtstart_array["value"]; $startDate = "{$dtstart["year"]}-{$dtstart["month"]}-{$dtstart["day"]}"; $startTime = "{$dtstart["hour"]}:{$dtstart["min"]}:{$dtstart["sec"]}"; $dtend_array = $comp->getProperty("dtend", 1, TRUE); $dtend = $dtend_array["value"]; $endDate = "{$dtend["year"]}-{$dtend["month"]}-{$dtend["day"]}"; $endTime = "{$dtend["hour"]}:{$dtend["min"]}:{$dtend["sec"]}"; //echo "start: ", $startDate,"T",$startTime, "\n"; //echo "end: ", $endDate,"T",$endTime, "\n"; $location_array = $comp->getProperty("location", 1, TRUE); //echo "Location: ", $location_array["value"], "\n <br>"; //TODO: Check that this event does not already exist. $event = new Event(); $event->setPersonId($personId); $event->setName($summary_array["value"]); $event->setStartTime($startDate . "T" . $startTime); $event->setEndTime($endDate . "T" . $endTime); $event->setLocation($location_array["value"]); $event->save(); $count++; } return $count; }
$response["error_message"] = "Invalid ID,Expecting numeric ID"; } print json_encode($response); }); $app->put('/event/:id', function ($id) use($app, $eventMapper) { verifyRequiredParams(array('id', 'logo')); $event = new Event(); $event->setId($id); $event->setName($app->request()->put('name')); $event->setDetails($app->request()->put('details')); $event->setSlogan($app->request()->put('slogan')); $event->setCategory($app->request()->put('type')); $event->setRules($app->request()->put('rules')); $event->setStartDate($app->request()->put('start_date')); $event->setEndDate($app->request()->put('end_date')); $event->setStartTime($app->request()->put('start_time')); $event->setEndTime($app->request()->put('end_time')); $event->setGroupSize($app->request()->put('group_size')); $event->setLogo($app->request()->put('logo')); # --Getting the put vars and typecasting to int. Blehhh. Can't help, its PHP xD $feeHome = $app->request()->put('fee_home'); settype($feeHome, "integer"); $feeRemote = $app->request()->put('fee_remote'); settype($feeRemote, "integer"); #-- $event->setFeeHome($feeHome); $event->setFeeRemote($feeRemote); $event->setLocation($app->request()->put('location')); $event->setEventHeadName($app->request()->put('event_head_name')); $event->setEventHeadContact($app->request()->put('event_head_contact')); $event->setAward($app->request()->put('award'));
protected function processForm(sfWebRequest $request, sfForm $form) { //var_dump($request->getParameter('event[start_time]')); $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { //$event = $form->save(); $name = $form->getValue('name'); $venue = $form->getValue('venue'); $description = $form->getValue('description'); $price = $form->getValue('price'); $c_ids = $form->getValue('category_ids'); $event_url = $form->getValue('event_url'); $start_time = $form->getValue('start_time'); $end_time = $form->getValue('end_time'); $date = $form->getValue('date'); $o_id = $form->getValue('organizer_id'); $event = null; if (!$form->getObject()->isNew()) { $event = $form->getObject(); //Delete previous relations to genres Doctrine_Core::getTable('EventCategory')->createQuery()->delete()->where('event_id = ?', $event->getId())->execute(); } else { $event = new Event(); } if ($event === null) { $event = new Event(); } //$event = new Event(); //$event->setCategoryId($c_id); $event->setName($name); $event->setDescription($description); $event->setPrice($price); $event->setVenue($venue); $event->setEventUrl($event_url); $event->setStartTime($start_time); $event->setEndTime($end_time); $event->setOrganizerId($o_id); $sql_date = date("Y-m-d", strtotime($date)); $event->setDate($sql_date); $event->save(); foreach ($c_ids as $cid) { $ec = new EventCategory(); $ec->setEventId($event->getId()); $ec->setCategoryId($cid); $ec->save(); } $this->getUser()->setAttribute('m', 1); $this->redirect('organize/edit?id=' . $event->getId() . '&m=1'); } }
$end_time = htmlspecialchars($_POST["end_time"]); } if (isset($_POST["location"])) { $location = htmlspecialchars($_POST["location"]); } if (isset($_POST["description"])) { $description = htmlspecialchars($_POST["description"]); } if (isset($_POST["max_attendance"])) { $max_attendance = htmlspecialchars($_POST["max_attendance"]); } // set up event object $event = new Event(); $event->setTitle($title); $event->setDate($date); $event->setStartTime($start_time); $event->setEndTime($end_time); $event->setLocation($location); $event->setDescription($description); $event->setMaxAttendance($max_attendance); $event->setCreatorUserId($_SESSION['uid']); $failure_messages = array(); if (!$event->validate()) { foreach ($event->getValidationFailures() as $failure) { $message = '<p><strong>Error in ' . $failure->getPropertyPath() . ' field!</strong> ' . $failure->getMessage() . '</p>'; array_push($failure_messages, $message); // clear out the bad data $_POST[$failure->getPropertyPath()] = ''; } unset($message); } else {
/** * Save client event * @param web request $request */ public function executeUpdateEvent($request) { $sf_user = $this->getUser(); $sf_user_id = $sf_user->getGuardUser()->getId(); $client_id = $request->getParameter('id'); $client_profile = ProfilePeer::retrieveByPK($client_id); $sfguard_user_profile = $sf_user->getProfile(); $sfguard_fullname = $sfguard_user_profile->getFullname(); $sfguard_email = $sfguard_user_profile->getEmail(); $start_hour = $request->getParameter('start_hour'); $start_min = $request->getParameter('start_min'); $time_mode = $request->getParameter('start_mn'); $client_branch_id = BranchUsersPeer::getUserBranchId($client_profile->getUserId()); $hour = sfConfig::get('mod_client_outlook_shour'); $sc_hour = sfConfig::get('mod_client_secondhalf_shhour'); if ($request->isMethod('post')) { $event_id = $this->getRequestParameter('event_id'); $event_details = ''; if ($event_id) { $event_details = pmProjectObjectsPeer::retrieveByPK($event_id); $this->form = new ClientEventForm($event_details); } else { $this->form = new ClientEventForm(); } $event_data = $request->getParameter('pm_project_objects'); if ($time_mode == 'AM') { $start_hour_value = $start_hour == 11 ? '00' : $hour[$start_hour]; $date_field_1 = $event_data['date_field_1'] . ' ' . $start_hour_value . ':' . $start_min . ':00'; } elseif ($time_mode == 'PM') { $start_hour_value = $start_hour == 11 ? $hour[$start_hour] : $sc_hour[$start_hour]; $date_field_1 = $event_data['date_field_1'] . ' ' . $start_hour_value . ':' . $start_min . ':00'; } $event_data['module'] = 'client event'; $event_data['tree_left'] = $client_branch_id; $event_data['tree_right'] = $sf_user_id; $event_data['integer_field_2'] = $client_id; $event_data['date_field_1'] = $date_field_1; $event_data['contract_id'] = $request->getParameter('contract_id'); $event_data['created_by_id'] = $sf_user_id; $event_data['updated_by_id'] = $sf_user_id; $this->form->bind($event_data); if ($this->form->isValid()) { $client_event = $this->form->save(); $client_event->setParentId($client_event->getId()); $client_event->setUpdatedAt($date_field_1); $client_event->save(); // create instance of event class and add client event in event table $event = ''; $c = new Criteria(); $c->add(EventPeer::CEVENT_ID, $event_id); $event = EventPeer::doSelectOne($c); if (!$event) { $event = new Event(); } $event_start_date = $client_event->getDateField1(); $client_full_name = $client_profile->getFname() . ' ' . $client_profile->getLname(); $event->setUserId($client_profile->getUserId()); $event->setSubject($client_full_name . ': ' . $client_event->getName() . ': ' . $client_event->getBody()); $event->setBody($client_event->getName() . ': ' . $client_event->getBody()); $event->setEventType('client event'); $event->setStartTime($date_field_1); $event->setEndTime($date_field_1); $event->setCeventId($client_event->getId()); $event->setCalendarId(calendarsPeer::getCalendarIdByUserId($sf_user_id)); $event->save(); $ical = $this->getICalData($event); $event->setUri($ical->filename); $event->setIcsData($ical->createCalendar()); $event->setCreatedById($sf_user_id); $event->save(); $events = $event; if ($time_mode == 'PM') { $hour = sfConfig::get('mod_client_outlook_shour'); } else { $hour = sfConfig::get('mod_client_outlook_shour'); } $start_time = strtotime($event_start_date); $end_time = strtotime($event_start_date); $hour_start = $hour[$start_hour]; //set default 9:00am $minute_start = $start_min; $end_hr = $start_min; // star time $start = array('year' => date('Y', $start_time), 'month' => date('m', $start_time), 'day' => date('d', $start_time), 'hour' => $hour_start, 'min' => $minute_start, 'sec' => date('s', $start_time)); $outlook_start = date('d-m-Y', $start_time); $metting_start_time = $hour_start . ':' . $minute_start . ':' . '00'; $mode = $time_mode == 'PM' ? ' PM' : ' AM'; $metting_start_time = $metting_start_time . $mode; sfConfig::set('sf_web_debug', false); $description = get_partial('message_data', array()); $sender = str_replace('sender', "{$client_full_name}", $description); $topic = str_replace('topic', "{$client_event->getName()}", $sender); $time = str_replace('start', "{$outlook_start}", $topic); $s_t = str_replace('s_t', "{$metting_start_time}", $time); $place = str_replace('place', "{$client_event->getVarcharField1()}", $s_t); $subject = str_replace('subject', "{$client_event->getBody()}", $place); $involved_user = $client_event->getContractId(); $c = new Criteria(); $c->add(ProfilePeer::USER_ID, $involved_user); $involved_user_profile = ProfilePeer::doSelectOne($c); $organizer = $involved_user_profile->getEmail(); if ($time_mode == 'PM') { $outlook_hour = sfConfig::get('mod_client_soutlook_dhour'); } else { $outlook_hour = sfConfig::get('mod_client_secoutlook_sechour'); } $time_start = array('year' => date('Y', $start_time), 'month' => date('m', $start_time), 'day' => date('d', $start_time), 'hour' => $outlook_hour[$hour_start], 'min' => $minute_start, 'sec' => date('s', $start_time)); $v_event = new vevent(); $v_event->setProperty("organizer", 'MAILTO:' . $organizer); //$v_event->setProperty("recurrence-id", $start); $v_event->setProperty('uid', md5($events->getId())); $v_event->setProperty('dtstamp', $events->getCreatedAt()); $v_event->setProperty('dtstart', $time_start); $v_event->setProperty('location', $client_event->getVarcharField1()); $v_event->setProperty('dtend', $time_start); $v_event->setProperty('summary', $events->getSubject()); $v_event->setProperty('description', $subject); $v_event->setProperty("status", "CONFIRMED"); $v_timezone = new vtimezone(); $v_timezone->setProperty("tzid", "Pacific/Auckland"); $v_event->setComponent($v_timezone); $cal_events[] = $v_event; $v_alarm = new valarm(); $v_alarm->setProperty('trigger', 'PT15M'); $v_alarm->setProperty('action', 'display'); $v_alarm->setProperty('Description', "Reminder: " . $subject); $v_event->setComponent($v_alarm); $calendar_events = $cal_events; $config = array('unique_id' => 'ravebuild.com'); $v_calendar = new vcalendar(); $v_calendar->setProperty("method", "REQUEST"); $mail_data = $this->setIcalEvents($v_calendar, $calendar_events); $all_events = $v_calendar->createCalendar(); $send_mail = new mailSend(); $send_mail->sendInvitationToUser($organizer, null, $all_events); $event_type = $event_id ? 'updated' : 'added'; $modification_message = $event_id ? 'Update Client Event' : 'Add Client Event'; $client_user_id = $client_profile->getUserId(); $this->saveHistory($modification_message, $client_user_id); $sf_user->setFlash('notice', 'The Event "' . $client_event->getBody() . '" has been ' . $event_type . ' successfully.'); $this->redirect($request->getReferer()); } } }