Example #1
0
 /**
  * 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');
     }
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
    }
    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'));
    $event->setEquipmentProvided($app->request()->put('equipments_provided'));
Example #4
0
 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');
     }
 }
 }
 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 {
     // validate date fields
 /**
  * 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());
         }
     }
 }