* * http://www.radix.net/~cknudsen * * -------------------------------------------- * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 2 of the License, or (at your * * option) any later version. * \**************************************************************************/ /* $Id$ */ $phpgw_info["flags"] = array("currentapp" => "calendar", "noheader" => True, "nonavbar" => True, "enable_calendar_class" => True, "enable_nextmatchs_class" => True); include("../header.inc.php"); if($REQUEST_METHOD == "POST") { } $cal_info = new calendar_item; for(reset($HTTP_POST_VARS);$key=key($HTTP_POST_VARS);next($HTTP_POST_VARS)) { $data = $HTTP_POST_VARS[$key]; $cal_info->set($key,$data); } $phpgw->calendar->add($cal_info,$cal_info->id); // Input time format "2359" // function add_duration($time, $duration) // { // $hour = (int)($time / 10000); // $min = $time % 100; // $minutes = $hour * 60 + $min + $duration; // $h = $minutes / 60; // $m = $minutes % 60; // $ret = sprintf ("%d%02d",$h,$m); // //echo "add_duration ( $time, $duration ) = $ret
"; // return $ret; // } // // check to see if two events overlap // function times_overlap($time1, $duration1, $time2, $duration2) // { // //echo "times_overlap ( $time1, $duration1, $time2, $duration2 )
"; // $hour1 = (int) ($time1 / 100); // $min1 = $time1 % 100; // $hour2 = (int) ($time2 / 100); // $min2 = $time2 % 100; // // convert to minutes since midnight // $tmins1start = $hour1 * 60 + $min1; // $tmins1end = $tmins1start + $duration1; // $tmins2start = $hour2 * 60 + $min2; // $tmins2end = $tmins2start + $duration2; // //echo "tmins1start=$tmins1start, tmins1end=$tmins1end, tmins2start=" // // . "$tmins2start, tmins2end=$tmins2end
"; // // if ($tmins1start >= $tmins2start && $tmins1start <= $tmins2end) // return true; // if ($tmins1end >= $tmins2start && $tmins1end <= $tmins2end) // return true; // if ($tmins2start >= $tmins1start && $tmins2start <= $tmins1end) // return true; // if ($tmins2end >= $tmins1start && $tmins2end <= $tmins1end) // return true; // return false; // } // // $phpgw->db->lock(array('webcal_entry','webcal_entry_user','webcal_entry_groups', // 'webcal_entry_repeats')); // // // first check for any schedule conflicts // if (strlen($hour) > 0) { // $date = mktime(0,0,0,$month,$day,$year); // if ($phpgw_info["user"]["preferences"]["common"]["timeformat"] == "12") { // $hour %= 12; // if ($ampm == "pm") // $hour += 12; // } // // $sql = "SELECT webcal_entry_user.cal_login, webcal_entry.cal_time," . // "webcal_entry.cal_duration, webcal_entry.cal_name, " . // "webcal_entry.cal_id, webcal_entry.cal_access " . // "FROM webcal_entry, webcal_entry_user " . // "WHERE webcal_entry.cal_id = webcal_entry_user.cal_id " . // "AND webcal_entry.cal_date = " . date("Ymd", $date) . " AND ( "; // // for ($i = 0; $i < count($participants); $i++) { // if ($i) $sql .= " OR "; // $sql .= " webcal_entry_user.cal_login = '" . $participants[$i] . "'"; // } // $sql .= " )"; // // $phpgw->db->query($sql); // $time1 = sprintf("%d:%02d", $hour, $minute); // $duration1 = sprintf("%d", $duration); // // while ($phpgw->db->next_record()) { // // see if either event overlaps one another // if ($phpgw->db->f(4) != $id) { // $time2 = $phpgw->db->f(1); // $duration2 = $phpgw->db->f(2); // if (times_overlap($time1, $duration1, $time2, $duration2)) { // $overlap .= "
  • "; // if ($phpgw->db->f(5) == 'R' && $phpgw->db->f(0) != $login) // $overlap .= "(PRIVATE)"; // else { // $overlap .= "link("view.php", // "id=".$phpgw->db->f(4))."\">" // . $phpgw->db->f(3) . ""; // } // $overlap .= " (" . display_time($time2); // if ($duration2 > 0) // $overlap .= "-" . display_time(add_duration($time2,$duration2)) // . ")"; // } // } // } // } // //if ($overlap) // $error = lang("The following conflicts with the suggested time:", // $overlap); // //if (! $error) { // // now add the entries // // if ($id != 0) { // $phpgw->db->query("DELETE FROM webcal_entry WHERE cal_id = $id"); // $phpgw->db->query("DELETE FROM webcal_entry_user WHERE cal_id = $id"); // $phpgw->db->query("DELETE FROM webcal_entry_repeats WHERE cal_id = $id"); // $phpgw->db->query("DELETE FROM webcal_entry_groups WHERE cal_id = $id"); // } // // $sql = "INSERT INTO webcal_entry (cal_owner, cal_date, " . // "cal_time, cal_mod_date, cal_mod_time, cal_duration, cal_priority, " . // "cal_access, cal_type, cal_name, cal_description ) " . // "VALUES ('" . $phpgw_info["user"]["account_id"] . "', "; // // $date = mktime(0,0,0,$month,$day,$year); // $sql .= date("Ymd", $date) . ", "; // if (strlen($hour) > 0) { // if ($phpgw_info["user"]["preferences"]["common"]["timeformat"] == "12") { // $hour %= 12; // if ($ampm == "pm") // $hour += 12; // } // $sql .= sprintf("%02d%02d00, ",$hour,$minute); // } else // $sql .= "'-1', "; // // $sql .= date("Ymd") . ", " . date("Gis") . ", "; // $sql .= sprintf("%d, ",$duration); // $sql .= sprintf("%d, ",$priority); // $sql .= "'$access', "; // // if ($rpt_type != 'none') // $sql .= "'M', "; // else // $sql .= "'E', "; // // if (strlen($name) == 0) // $name = "Unnamed Event"; // // $sql .= "'" . addslashes($name) . "', "; // if (! $description) // $sql .= "'" . addslashes($name) . "')"; // else // $sql .= "'" . addslashes($description) . "' )"; // // $error = ""; // $phpgw->db->query($sql); // // $phpgw->db->query("SELECT MAX(cal_id) FROM webcal_entry"); // $phpgw->db->next_record(); // $id = $phpgw->db->f(0); // // while ($participant = each($participants)) { // $phpgw->db->query("INSERT INTO webcal_entry_user (cal_id,cal_login,cal_status ) " // . "VALUES ($id, '" . $participant[1] . "', 'A')"); // } // // if (strlen($rpt_type) || ! strcmp($rpt_type,'none') == 0) { // // clearly, we want to delete the old repeats, before inserting new... // $phpgw->db->query("delete from webcal_entry_repeats where cal_id='$id'"); // $freq = ($rpt_freq?$rpt_freq:1); // // if ($rpt_end_use) { // $end = "'" . date("Ymd",mktime(0,0,0,$rpt_month,$rpt_day,$rpt_year)) // . "'"; // } else // $end = 0; // // if ($rpt_type == 'weekly') { // $days = ($rpt_sun?'y':'n') // . ($rpt_mon?'y':'n') // . ($rpt_tue?'y':'n') // . ($rpt_wed?'y':'n') // . ($rpt_thu?'y':'n') // . ($rpt_fri?'y':'n') // . ($rpt_sat?'y':'n'); // } else { // $days = "nnnnnnn"; // } // // $phpgw->db->query("insert into webcal_entry_repeats (cal_id,cal_type," // . "cal_end,cal_days,cal_frequency) values($id,'$rpt_type'," // . "$end,'$days',$freq)"); // } // $phpgw->db->query("insert into webcal_entry_groups values ($id,'" // . $phpgw->accounts->array_to_string($access,$n_groups) . "') "); // // Header("Location: ".$phpgw->link("index.php","year=$year&month=$month&cd=14")); $phpgw->common->phpgw_footer(); ?>