diff options
author | jwangen <jwangen> | 2002-10-27 06:16:28 +0000 |
---|---|---|
committer | jwangen <jwangen> | 2002-10-27 06:16:28 +0000 |
commit | 004f2c7c85a27d18309e49e7a29de13b53981d42 (patch) | |
tree | f15038586c018bce8084639252587678f9a99893 | |
parent | dc6d8b40debc48b1aeddcd2afa6e50eef4a051c9 (diff) | |
download | phpicalendar-004f2c7c85a27d18309e49e7a29de13b53981d42.tar.gz phpicalendar-004f2c7c85a27d18309e49e7a29de13b53981d42.tar.bz2 phpicalendar-004f2c7c85a27d18309e49e7a29de13b53981d42.zip |
Fixed a couple bugs in day and week where events that start before
$day_start wouldn't show and where $day_start that aren't on the hour
would break the views
-rw-r--r-- | config.inc.php | 2 | ||||
-rw-r--r-- | day.php | 47 | ||||
-rw-r--r-- | week.php | 41 |
3 files changed, 69 insertions, 21 deletions
diff --git a/config.inc.php b/config.inc.php index 2371a63..5d80edb 100644 --- a/config.inc.php +++ b/config.inc.php @@ -24,7 +24,7 @@ $default_path = 'http://ical.silter.org/phpicalendar'; // Yes/No questions --- 'yes' means Yes, anything else means no. 'yes' must be lowercase. $save_parsed_cals = 'no'; // Recommended 'yes'. Saves a copy of the cal in /tmp after it's been parsed. Improves performence. -$use_sessions = 'yes'; // This has not yet been implemented. +$use_sessions = 'no'; // This has not yet been implemented. $display_custom_goto = 'no'; // In the 'Jump To' box, display the custom 'go to day' box. $display_ical_list = 'yes'; // In the 'Jump To' box, display the pop-up menu with the list of all calendars in the $calendar_path directory. $allow_webcals = 'no'; // Allow http:// and webcal:// prefixed URLs to be used as the $cal for remote viewing of "subscribe-able" calendars. This does not have to be enabled to allow specific ones below. @@ -156,11 +156,32 @@ if (is_array($master_array[($getdate)])) { $cal_time = $key; $key = strtotime ($key); $key = date ($timeFormat, $key); - + unset($this_time_arr); + + // add events that overlap the start time + if (isset($master_array[$getdate][$cal_time]) && sizeof($master_array[$getdate][$cal_time]) > 0) { + $this_time_arr = $master_array[$getdate][$cal_time]; + } + + // add events that overlap $day_start instead of cutting them out completely + if ("$day_start" == "$cal_time" && is_array($master_array[$getdate])) { + foreach($master_array[$getdate] as $time_key => $time_arr) { + if ((int)$time_key < (int)$cal_time && is_array($time_arr)) { + foreach($time_arr as $event_tmp) { + if ((int)$event_tmp['event_end'] > (int)$cal_time) { + $this_time_arr[] = $event_tmp; + } + } + } else { + break; + } + } + } + // check for eventstart - if (isset($master_array[($getdate)][$cal_time]) && sizeof($master_array[($getdate)][$cal_time]) > 0) { - foreach ($master_array[($getdate)][$cal_time] as $eventKey => $loopevent) { - $drawEvent = drawEventTimes ($loopevent['event_start'], $loopevent['event_end']); + if (isset($this_time_arr) && sizeof($this_time_arr) > 0) { + foreach ($this_time_arr as $eventKey => $loopevent) { + $drawEvent = drawEventTimes ($cal_time, $loopevent['event_end']); $j = 0; while ($event_length[$j]) { if ($event_length[$j]['state'] == 'ended') { @@ -178,8 +199,12 @@ if (is_array($master_array[($getdate)])) { echo '<tr height="' . $gridLength . '">'."\n"; echo '<td rowspan="' . (60 / $gridLength) . '" align="center" valign="top" width="60" class="timeborder">'.$key.'</td>'."\n"; echo '<td width="1" height="' . $gridLength . '"></td>'."\n"; + } elseif("$cal_time" == "$day_start") { + $size_tmp = 60 - (int)substr($cal_time,2,2); + echo "<tr height=\"" . $gridLength . "\">\n"; + echo "<td rowspan=\"" . ($size_tmp / $gridLength) . "\" align=\"center\" valign=\"top\" width=\"60\" class=\"timeborder\">$key</td>\n"; + echo "<td width=\"1\" height=\"" . $gridLength . "\"></td>\n"; } else { - echo '<tr height="' . $gridLength . '">'."\n"; echo '<td width="1" height="' . $gridLength . '"></td>'."\n"; } @@ -196,7 +221,7 @@ if (is_array($master_array[($getdate)])) { } else { $emptyWidth = $nbrGridCols; for ($i=0;$i<sizeof($event_length);$i++) { - //echo $master_array[($getdate)][$cal_time][($event_length[$i]['key'])]['event_text'] . ' ind: ' . $i . ' / anz: ' . $event_length[$i]['overlap'] . ' = ' . eventWidth($i,$event_length[$i]['overlap']) . '<br />'; + //echo $this_time_arr[($event_length[$i]['key'])]['event_text'] . ' ind: ' . $i . ' / anz: ' . $event_length[$i]['overlap'] . ' = ' . eventWidth($i,$event_length[$i]['overlap']) . '<br />'; $drawWidth = $nbrGridCols / ($event_length[$i]['overlap'] + 1); //print $nbrGridCols.' -- '; //print $drawWidth; @@ -204,11 +229,11 @@ if (is_array($master_array[($getdate)])) { switch ($event_length[$i]['state']) { case 'begin': $event_length[$i]['state'] = 'started'; - $event_text = stripslashes(urldecode($master_array[($getdate)][$cal_time][($event_length[$i]['key'])]['event_text'])); - $event_text2 = rawurlencode(addslashes($master_array[($getdate)][$cal_time][($event_length[$i]['key'])]['event_text'])); - $event_start = strtotime ($master_array[($getdate)][$cal_time][($event_length[$i]['key'])]['event_start']); - $event_end = strtotime ($master_array[($getdate)][$cal_time][($event_length[$i]['key'])]['event_end']); - $description = addslashes(urlencode($master_array[($getdate)][$cal_time][($event_length[$i]['key'])]['description'])); + $event_text = stripslashes(urldecode($this_time_arr[($event_length[$i]['key'])]['event_text'])); + $event_text2 = rawurlencode(addslashes($this_time_arr[($event_length[$i]['key'])]['event_text'])); + $event_start = strtotime ($this_time_arr[($event_length[$i]['key'])]['event_start']); + $event_end = strtotime ($this_time_arr[($event_length[$i]['key'])]['event_end']); + $description = addslashes(urlencode($this_time_arr[($event_length[$i]['key'])]['description'])); $event_start = date ($timeFormat, $event_start); $event_end = date ($timeFormat, $event_end); $calendar_name2 = rawurlencode(addslashes($calendar_name)); @@ -199,6 +199,11 @@ for ($i=0;$i<7;$i++) { echo "<tr height=\"" . $gridLength . "\">\n"; echo "<td rowspan=\"" . (60 / $gridLength) . "\" align=\"center\" valign=\"top\" width=\"60\" class=\"timeborder\">$key</td>\n"; echo "<td width=\"1\" height=\"" . $gridLength . "\"></td>\n"; + } elseif("$cal_time" == "$day_start") { + $size_tmp = 60 - (int)substr($cal_time,2,2); + echo "<tr height=\"" . $gridLength . "\">\n"; + echo "<td rowspan=\"" . ($size_tmp / $gridLength) . "\" align=\"center\" valign=\"top\" width=\"60\" class=\"timeborder\">$key</td>\n"; + echo "<td width=\"1\" height=\"" . $gridLength . "\"></td>\n"; } else { echo "<tr height=\"" . $gridLength . "\">\n"; @@ -213,12 +218,30 @@ for ($i=0;$i<7;$i++) { for ($week_loop=0; $week_loop<7; $week_loop++) { $thisday = date("Ymd", $thisdate); $dayborder = 0; + unset($this_time_arr); + if (isset($master_array[$thisday][$cal_time]) && sizeof($master_array[$thisday][$cal_time]) > 0) { + $this_time_arr = $master_array[$thisday][$cal_time]; + } + + if ("$day_start" == "$cal_time" && is_array($master_array[$thisday])) { + foreach($master_array[$thisday] as $time_key => $time_arr) { + if ((int)$time_key < (int)$cal_time && is_array($time_arr)) { + foreach($time_arr as $event_tmp) { + if ((int)$event_tmp['event_end'] > (int)$cal_time) { + $this_time_arr[] = $event_tmp; + } + } + } else { + break; + } + } + } // check for eventstart - if (isset($master_array[($thisday)]["$cal_time"]) && sizeof($master_array[($thisday)]["$cal_time"]) > 0) { - foreach ($master_array[($thisday)]["$cal_time"] as $eventKey => $loopevent) { - $drawEvent = drawEventTimes ($loopevent["event_start"], $loopevent["event_end"]); + if (isset($this_time_arr) && sizeof($this_time_arr) > 0) { + foreach ($this_time_arr as $eventKey => $loopevent) { + $drawEvent = drawEventTimes ($cal_time, $loopevent["event_end"]); $j = 0; while (isset($event_length[$thisday][$j])) { if ($event_length[$thisday][$j]["state"] == "ended") { @@ -248,19 +271,19 @@ for ($i=0;$i<7;$i++) { $emptyWidth = $nbrGridCols[$thisday]; for ($i=0;$i<sizeof($event_length[$thisday]);$i++) { - //echo $master_array[($thisday)]["$cal_time"][($event_length[$thisday][$i]["key"])]["event_text"] . " ind: " . $i . " / anz: " . $event_length[$thisday][$i]["overlap"] . " = " . eventWidth($i,$event_length[$thisday][$i]["overlap"]) . "<br />"; + //echo $this_time_arr[($event_length[$thisday][$i]["key"])]["event_text"] . " ind: " . $i . " / anz: " . $event_length[$thisday][$i]["overlap"] . " = " . eventWidth($i,$event_length[$thisday][$i]["overlap"]) . "<br />"; $drawWidth = $nbrGridCols[$thisday] / ($event_length[$thisday][$i]["overlap"] + 1); $emptyWidth = $emptyWidth - $drawWidth; switch ($event_length[$thisday][$i]["state"]) { case "begin": $event_length[$thisday][$i]["state"] = "started"; - $event_text = stripslashes(urldecode($master_array[($thisday)]["$cal_time"][($event_length[$thisday][$i]["key"])]["event_text"])); + $event_text = stripslashes(urldecode($this_time_arr[($event_length[$thisday][$i]["key"])]["event_text"])); $event_text = word_wrap($event_text, 25, $week_events_lines); - $event_text2 = urlencode(addslashes($master_array[($thisday)]["$cal_time"][($event_length[$thisday][$i]["key"])]["event_text"])); - $event_start = strtotime ($master_array[($thisday)]["$cal_time"][($event_length[$thisday][$i]["key"])]["event_start"]); - $event_end = strtotime ($master_array[($thisday)]["$cal_time"][($event_length[$thisday][$i]["key"])]["event_end"]); - $description = urlencode(addslashes($master_array[($thisday)]["$cal_time"][($event_length[$thisday][$i]["key"])]["description"])); + $event_text2 = urlencode(addslashes($this_time_arr[($event_length[$thisday][$i]["key"])]["event_text"])); + $event_start = strtotime ($this_time_arr[($event_length[$thisday][$i]["key"])]["event_start"]); + $event_end = strtotime ($this_time_arr[($event_length[$thisday][$i]["key"])]["event_end"]); + $description = urlencode(addslashes($this_time_arr[($event_length[$thisday][$i]["key"])]["description"])); $event_start = date ($timeFormat, $event_start); $event_end = date ($timeFormat, $event_end); $calendar_name2 = urlencode(addslashes($calendar_name)); |