$smarty->assign('listlanguages', $languages);
$smarty->assign('listpriorities', array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'));
$smarty->assign('listprioritycolors', array('fff', 'fdd', 'fcc', 'fbb', 'faa', 'f99', 'e88', 'd77', 'c66', 'b66', 'a66'));
$smarty->assign('listroles', array('0' => '', '1' => tra('required'), '2' => tra('optional'), '3' => tra('non participant')));
if ($prefs['feature_theme_control'] == 'y') {
    $cat_type = "calendar";
    $cat_objid = $calID;
    include 'tiki-tc.php';
}
$headerlib->add_cssfile('themes/base_files/feature_css/calendar.css', 20);
$smarty->assign('referer', empty($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], 'tiki-calendar_edit_item.php') !== false ? 'tiki-calendar.php' : $_SERVER['HTTP_REFERER']);
$smarty->assign('myurl', 'tiki-calendar_edit_item.php');
$smarty->assign('id', $id);
$smarty->assign('hour_minmax', $hour_minmax);
if (isset($calitem['recurrenceId']) && $calitem['recurrenceId'] > 0) {
    $cr = new CalRecurrence($calitem['recurrenceId']);
    $smarty->assign('recurrence', $cr->toArray());
}
$headerlib->add_js('function checkDateOfYear(day,month) {
		var mName = new Array("-","' . tra('January') . '","' . tra('February') . '","' . tra('March') . '","' . tra('April') . '","' . tra('May') . '","' . tra('June') . '","' . tra('July') . '","' . tra('August') . '","' . tra('September') . '","' . tra('October') . '","' . tra('November') . '","' . tra('December') . '}");
		var error = false;
		if (month == 4 || month == 6 || month == 9 || month == 11)
			if (day == 31)
				error = true;
			if (month == 2)
				if (day > 29)
					error = true;
			if (error) {
				document.getElementById("errorDateOfYear").innerHTML = "<em>' . tra('There\'s no such date as') . ' " + day + " ' . tra('of') . ' " + mName[month] + "</em>";
			} else {
				document.getElementById("errorDateOfYear").innerHTML = "";
Exemple #2
0
 function add_coho_recurrence_items(&$eventArray, $calIds, $user, $tstart, $tstop, $offset, $maxRecords, $sort_mode = 'start_asc', $find = '', $customs = array())
 {
     global $prefs;
     if (count($calIds) == 0) {
         return;
     }
     $where = array();
     $bindvars = array();
     foreach ($calIds as $calendarId) {
         $where[] = "i.`calendarId`=?";
         $bindvars[] = (int) $calendarId;
     }
     $cond = "(" . implode(" or ", $where) . ") and ";
     // find all recurrences that intersect with the desired range
     $cond .= " (i.`startPeriod` < ? and (i.`endPeriod` > ? or i.`endPeriod` = 0 or i.`endPeriod` IS NULL))";
     $bindvars[] = (int) $tstop;
     $bindvars[] = (int) $tstart;
     $cond .= " and ((c.`personal`='y' and i.`user`=?) or c.`personal` != 'y')";
     $bindvars[] = $user;
     $query = "select i.`recurrenceId` as `recurrenceId`, i.`calendarId` as `calendarId`, i.`startPeriod` as `recurrenceStart`, i.`endPeriod` as `recurrenceEnd` ";
     $tblRef = "i.";
     $query .= "from `tiki_calendar_recurrence` as i left join `tiki_calendars` as c on i.`calendarId`=c.`calendarId` where ({$cond})  order by " . $tblRef . $this->convertSortMode("{$sort_mode}");
     $result = $this->query($query, $bindvars, $maxRecords, $offset);
     while ($row = $result->fetchRow()) {
         // calculate the dates/times where we would expect unchanged items to be rendered
         $recurrenceEntry = new CalRecurrence($row["recurrenceId"]);
         // want to find where to start and end the rendering, bounded by view and recurrence period
         $inview_start = $row["recurrenceStart"];
         if ($inview_start < $tstart) {
             $inview_start = $tstart;
         }
         $inview_end = $row["recurrenceEnd"];
         if ($inview_end == 0) {
             $inview_end = $tstop;
         } elseif ($inview_end > $tstop) {
             $inview_end = $tstop;
         }
         $expectedDates = $recurrenceEntry->coho_getUnchangedDates((int) $inview_start, (int) $inview_end);
         /// NOTE: only one-day events are treated here
         // query for overrides
         $override_query = "select `recurrence_override` as `recurrence_override` " . "from `tiki_calendar_items` where `recurrenceId` = ? " . "and `calendarId` = ? ";
         $override_query .= "and (`recurrence_override` >= ? and `recurrence_override` <= ?) " . "order by `recurrence_override` ASC";
         $override_bindvars = array();
         $override_bindvars[] = $row["recurrenceId"];
         $override_bindvars[] = $row["calendarId"];
         $override_bindvars[] = (int) $tstart;
         $override_bindvars[] = (int) $tstop;
         $override_result = $this->query($override_query, $override_bindvars);
         $override_date = $override_result->fetchRow();
         // simulate the result of a get_item of an actual event
         $event = $this->get_coho_unchanged_recurrence_item($row["recurrenceId"], $expectedDates[0]);
         $render = false;
         foreach ($expectedDates as $unchangedDate) {
             // unix timestamp of beginning of day
             if (!$override_date) {
                 $render = true;
             } else {
                 if ($override_date['recurrence_override'] != $unchangedDate) {
                     // no overriding event so we can render it unchanged
                     $render = true;
                 } else {
                     $render = false;
                 }
             }
             if ($render) {
                 // rendering unchanged
                 // all items in the unchanged recurring event are the same except the date
                 $tmp = str_pad($event["start_time"], 4, "0", STR_PAD_LEFT);
                 $itemhour = substr($tmp, 0, 2);
                 $itemminute = substr($tmp, -2);
                 $time_addition = $itemhour * 3600 + $itemminute * 60;
                 $eventstartTS = $unchangedDate + $time_addition;
                 $event["start"] = $eventstartTS;
                 $event["date_start"] = (int) $eventstartTS;
                 $eventendTS = $eventstartTS + $event["duration"];
                 $event["end"] = $eventendTS;
                 $event["date_end"] = (int) $eventendTS;
                 $head = TikiLib::date_format($prefs['short_time_format'], $event["start"]) . " - " . TikiLib::date_format($prefs['short_time_format'], $event["end"]);
                 $eventArray["{$unchangedDate}"][] = array("result" => $event, "calitemId" => $event["calitemId"], "calname" => $event["calname"], "time" => $event["start_time"], "end" => $event["end_time"], "type" => $event["status"], "web" => $event["url"], "startTimeStamp" => $eventstartTS, "endTimeStamp" => $eventendTS, "nl" => $event["nlId"], "prio" => $event["priority"], "location" => $event["locationName"], "category" => $event["categoryName"], "name" => $event["name"], "head" => $head, "parsedDescription" => $this->parse_data($event["description"]), "description" => str_replace("\n|\r", "", $event["description"]), "recurrenceId" => $event["recurrenceId"], "calendarId" => $event['calendarId'], "status" => $event['status']);
             } else {
                 // not rendered, will be rendered in override during non-recurrence rendering
                 // if "used up" this override_date, go to next override date
                 $override_date = $override_result->fetchRow();
             }
         }
     }
 }