Example #1
0
    if ($all_day == '1') {
        $enddt = date('Y-m-d', strtotime($_POST['start_time'])) . '23:59:59';
    } else {
        $enddt = date('Y-m-d', strtotime($_POST['start_time'])) . ' ' . trim($_POST['end_time']);
    }
    if (strtotime($enddt) < strtotime($_POST['start_time']) && $err == '') {
        $err = 'End time is not filled in, or, happens before the start time!';
    }
    $all_day = '0';
    if (isset($_POST['allday'])) {
        $all_day = '1';
    }
    if ($err == '') {
        print_r($_POST);
        $event = new Event();
        $event->setUserId(Authentication::get_user());
        $event->setDescription($_POST['event_name']);
        $event->setStartDateTime($_POST['start_time']);
        $event->setEndDateTime($enddt);
        $event->setRemindMeTime($_POST['remind_time']);
        $event->setAllDay($all_day);
        $event->save();
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<?php 
head();
$viewing_by_day = false;
 /**
  * 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());
         }
     }
 }
 /**
  * Run method with main page logic
  * 
  * Populate template and display form for creating a new event entry. Regular users are allowed to create events but an
  * admin must approve them before they are visible on the site. Trusted users are allowed to create
  * events that will immediately be visible on the event calendar. For POST request,
  * validate form data and save information to database. Available to members only
  * @access public
  */
 public function run()
 {
     $session = Session::getInstance();
     $user = $session->getUser();
     //if (!$user || !$user->isAdmin ()) {
     if (!$user || !$user->validUser()) {
         $session->setMessage("Do not have permission to access", Session::MESSAGE_ERROR);
         header("Location: " . BASE_URL);
         return;
     }
     $form_errors = array();
     $form_values = array("title" => "", "description" => "", "sanctioned" => "", "status" => "", "date" => "", "platform" => "");
     $eventDAO = EventDAO::getInstance();
     //$event_array = $eventDAO->all ();
     if (!empty($_POST)) {
         $form_values["title"] = isset($_POST["title"]) ? trim($_POST["title"]) : "";
         $form_values["description"] = isset($_POST["description"]) ? trim($_POST["description"]) : "";
         $form_values["platform"] = isset($_POST["platform"]) ? trim($_POST["platform"]) : "";
         $form_values["sanctioned"] = isset($_POST["sanctioned"]) ? trim($_POST["sanctioned"]) : "";
         $form_values["status"] = isset($_POST["status"]) ? trim($_POST["status"]) : "";
         $form_values["date"] = isset($_POST["date"]) ? trim($_POST["date"]) : "";
         if (empty($form_values["title"])) {
             $form_errors["title"] = "No title specified";
         }
         if (empty($form_values["description"])) {
             $form_errors["description"] = "No description specified";
         }
         if (empty($form_values["platform"])) {
             $form_errors["platform"] = "No platform specified";
         } else {
             if (!is_numeric($form_values["platform"])) {
                 $form_errors["platform"] = "Platform choice must be an integer value";
             } else {
                 $platform = intval($form_values["platform"]);
                 $tmp = new Event();
                 try {
                     $tmp->setPlatformId($platform);
                 } catch (Exception $e) {
                     $form_errors["platform"] = "Invalid value for platform";
                 }
             }
         }
         if ($user->isAdmin() && empty($form_values["sanctioned"])) {
             $form_errors["sanctioned"] = "No sanctioned flag specified";
         } else {
             if ($user->isAdmin() && strcmp($form_values["sanctioned"], "true") != 0 && strcmp($form_values["sanctioned"], "false") != 0) {
                 $form_errors["sanctioned"] = "sanctioned flag must be a boolean value";
             }
         }
         if ($user->isAdmin() && empty($form_values["status"])) {
             $form_errors["status"] = "No status flag specified";
         } else {
             if ($user->isAdmin() && !is_numeric($form_values["status"])) {
                 $form_errors["status"] = "Status flag must be an integer value";
             } else {
                 if ($user->isAdmin()) {
                     $status = intval($form_values["status"]);
                     $tmp = new Event();
                     try {
                         $tmp->setStatus($status);
                     } catch (Exception $e) {
                         $form_errors["status"] = "Invalid value for status";
                     }
                 }
             }
         }
         if (empty($form_values["date"])) {
             $form_errors["date"] = "No date specified";
         } else {
             if (strtotime($_POST["date"]) == 0) {
                 $form_errors["date"] = "An invalid date was specified";
                 $form_values["date"] = "";
             }
         }
         if (empty($form_errors)) {
             $event = new Event();
             $event->setTitle($form_values["title"]);
             $event->setDescription($form_values["description"]);
             $event->setPlatformId(intval($form_values["platform"]));
             if ($user->isAdmin() || $user->validUser() && $user->getUserType() == User::TRUSTED_TYPE) {
                 $sanctioned_value = strcmp($form_values["sanctioned"], "true") == 0 ? true : false;
                 $event->setSanctioned($sanctioned_value);
                 $event->setStatus($form_values["status"]);
             } else {
                 if ($user->validUser()) {
                     $event->setSanctioned(false);
                     $event->setStatus(Event::PENDING_STATUS);
                 }
             }
             $pubtimestamp = strtotime($_POST["date"]);
             $event->setDate($pubtimestamp);
             $event->setUserId($user->id);
             //print_r ($event);
             if ($eventDAO->insert($event)) {
                 $session->setMessage("Event details saved");
                 header("Location: edit_event.php?id={$event->id}");
                 return;
             } else {
                 $session->setMessage("Event details could not be saved", Session::MESSAGE_ERROR);
             }
         }
     }
     $platformDAO = PlatformDAO::getInstance();
     $platform_array = $platformDAO->all();
     $this->template->render(array("title" => "Create Event", "extra_header" => joinPath("headers", "jscal_header_tpl.php"), "main_page" => "create_event_tpl.php", "session" => $session, "form_errors" => $form_errors, "form_values" => $form_values, "platform_array" => $platform_array));
 }
Example #4
0
 *
 * @package Kiki
 * @author Rob Kaper <http://robkaper.nl/>
 * @copyright 2012 Rob Kaper <http://robkaper.nl/>
 * @license Released under the terms of the MIT license.
 */
//  require_once "../../lib/init.php";
if ($_POST) {
    $event = new Event($_POST['eventId']);
    $errors = array();
    if (!$user->id()) {
        $errors[] = "Je bent niet ingelogd.";
    }
    // In case of multiple authors who can proofread, amend: don't update unless empty.
    if (!$event->userId()) {
        $event->setUserId($user->id());
    }
    list($date, $time) = explode(" ", $_POST['start']);
    list($day, $month, $year) = explode("-", $date);
    $start = "{$year}-{$month}-{$day} {$time}";
    $event->setStart($start);
    list($date, $time) = explode(" ", $_POST['end']);
    list($day, $month, $year) = explode("-", $date);
    $end = "{$year}-{$month}-{$day} {$time}";
    $event->setEnd($end);
    $event->setTitle($_POST['title']);
    $event->setDescription($_POST['description']);
    $event->setLocation($_POST['location']);
    $event->setFeatured(isset($_POST['featured']) && $_POST['featured'] == 'on' ? 1 : 0);
    $event->setVisible(isset($_POST['visible']) && $_POST['visible'] == 'on' ? 1 : 0);
    $event->setHashtags(isset($_POST['hashtags']) ? $_POST['hashtags'] : null);