[Beta-level calendar support tom@wwworldmedia.com**20050623142042] { addfile ./calendar.css hunk ./calendar.css 1 +body,html,td,th { + font-family: Arial,Helvetica,Sans-Serif; + font-size: 12px; +} +table#cal { + border: 1px solid #eee; + border-collapse: collapse; +} +.cal-blank-num { + color: #fff; +} +td.cal-day { + border-right: 1px solid #eee; + padding: 4px; + text-align: center; +} +.cal-day a { + border: 1px solid #fff; + color: #333; + margin: 0px; + padding: 3px; + text-decoration: none; +} +.cal-day a:hover { + border: 1px solid #cc0000; + text-decoration: none; + margin: 0px; +} +#cal-mo { + background: #f8f8f8; + text-align: center; + padding: 1em; + margin: 0; +} +.cal-skipped { + border-right: 1px solid #eee; +} +#cal th { + border-top: 1px solid #eee; + border-right: 1px solid #eee; + font-weight: bold; + padding: 4px; +} addfile ./calendar.phtml hunk ./calendar.phtml 1 + + require_once("site.phtml"); + + function mysql_to_time($dt) { + $parts = split(" ", $dt); + if (count($parts) == 2) + $time = $parts[1]; + else + $time = "00:00:00"; + $parts = split("-", $parts[0]); + $year = $parts[0]; + $mon = $parts[1]; + $day = $parts[2]; + $parts = split(":", $time); + $hour = $parts[0]; + $min = $parts[1]; + $sec = $parts[2]; + return mktime($hour, $min, $sec, $mon, $day, $year); + } + + if (empty($method)) + die("No method specified"); + + if (! empty($dt)) + $t = strtotime($dt); + + $first_time = 0; + if (empty($t)) { + $t = time(); + $first_time = 1; + } + + $parts = split(" ", $t); + $t = $parts[0]; + + $month = date("m", $t); + $month_name = date("F", $t); + $day = date("j", $t); + $year = date("Y", $t); + $days_in_month = date("t", $t); + + $start_of_month_t = mysql_to_time("$year-$month-01"); + $end_of_month_t = mysql_to_time("$year-$month-" . date("t", $t)); + + if ($first_time) + $min_t = $start_of_month_t; + + $days = array(); + + $days_to_skip_at_start = date("w", $start_of_month_t); + + for ($i = 1; $i <= $days_in_month; $i++) { + $day = array(); + $day["n"] = $i; + $day["one_digit"] = strlen($i) == 1 ? 1 : 0; + $day["dow"] = date("D", mysql_to_time("$year-$month-$i")); + $day["dt"] = "$year-$month-$i"; + $days[] = $day; + } + + if ($month == "1" || $month == "01") { + $prev_t = mysql_to_time(($year - 1)."-12-01"); + } else { + $prev_t = mysql_to_time("$year-".($month-1)."-01"); + } + if ($prev_t < $min_t) + $prev_month_link = ""; + else + $prev_month_link = add_url_arg(add_url_arg(get_my_url(), "t", $prev_t), "min_t", $min_t); + + if ($month == "12") { + $next_t = mysql_to_time(($year + 1)."-01-01"); + } else { + $next_t = mysql_to_time("$year-".($month+1)."-01"); + } + $next_month_link = add_url_arg(add_url_arg(get_my_url(), "t", $next_t), "min_t", $min_t); + + if (!isset($id1)) $id1 = ""; + if (!isset($id2)) $id2 = ""; + if (!isset($id3)) $id3 = ""; + + display_template("calendar.phtml"); +?> hunk ./misc.js 101 +/* Calendar popup */ + +var Calendar = { + is_open: false, + + cur_window: false, + + draw: function(id1, id2, id3, id4) { + if (Calendar.is_open && Calendar.cur_window && !Calendar.cur_window.closed) { + Calendar.cur_window.close(); + Calendar.cur_window = false; + Calendar.is_open = false; + } else { + var url = "calendar.phtml?w=250&h=250&method=mY-d&id1=" + id1 + "&id2=" + id2 + "&id3=" + id3 + "&id4=" + id4; + Calendar.cur_window = openPopup(url, "calendar", 250, 250); + Calendar.is_open = true; + } + } +} + + + +/*---------------------------------------------------------------------*/ addfile ./templates/calendar.phtml hunk ./templates/calendar.phtml 1 - + +
+ |
+ ||||||
S | +M | +T | +W | +T | +F | +S | +
---|---|---|---|---|---|---|
+ + } + ?> + + | ||||||
+ |
+
+