fix for first week of month

This commit is contained in:
skeeter 2001-01-15 17:48:26 +00:00
parent c61806fea5
commit dcb0502ae2

View File

@ -27,7 +27,7 @@
var $last_hour; var $last_hour;
var $rowspan; var $rowspan;
var $weekstarttime; var $weekstarttime;
var $daysinweek; var $daysinweek = 7;
var $filter; var $filter;
var $tempyear; var $tempyear;
var $tempmonth; var $tempmonth;
@ -69,15 +69,25 @@
} }
} }
function get_sunday_before($year,$month,$day) { function get_weekday_start($year,$month,$day) {
global $phpgw; global $phpgw;
global $phpgw_info; global $phpgw_info;
$weekday = date("w",mktime(0,0,0,$month,$day,$year)); $weekday = date("w",mktime(0,0,0,$month,$day,$year));
if ($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday" && $weekday == 0) { if ($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday") {
$day -= 7; $this->days = array(0 => "Mon", 1 => "Tue", 2 => "Wed", 3 => "Thu", 4 => "Fri", 5 => "Sat", 6 => "Sun");
$weekday = date("w", mktime(0,0,0,$month,$day,$year) ); if ($weekday == 0)
$sb = mktime(0,0,0,$month,$day - 6,$year);
if ($weekday == 1)
$sb = mktime(0,0,0,$month,$day,$year);
$sb = mktime(0,0,0,$month,$day - ($weekday - 1),$year);
} else {
$this->days = array(0 => "Sun", 1 => "Mon", 2 => "Tue", 3 => "Wed", 4 => "Thu", 5 => "Fri", 6 => "Sat");
$sb = mktime(0,0,0,$month,$day - $weekday,$year);
} }
return mktime(0,0,0,$month,$day - $weekday,$year) - (3600 * intval($phpgw_info["user"]["preferences"]["common"]["tz_offset"]));
return $sb;
// - ((60 * 60) * intval($phpgw_info["user"]["preferences"]["common"]["tz_offset"]));
} }
function normalizeminutes(&$minutes) { function normalizeminutes(&$minutes) {
@ -159,13 +169,7 @@
global $phpgw; global $phpgw;
global $phpgw_info; global $phpgw_info;
$date = Array("raw","day","month","year","full"); return $this->gmtdate(mktime($hour, $minute, $second, $month, $day, $year));
$date["raw"] = mktime($hour, $minute, $second, $month, $day, $year) - ((60 * 60) * intval($phpgw_info["user"]["preferences"]["common"]["tz_offset"]));
$date["year"] = intval($phpgw->common->show_date($date["raw"],"Y"));
$date["month"] = intval($phpgw->common->show_date($date["raw"],"m"));
$date["day"] = intval($phpgw->common->show_date($date["raw"],"d"));
$date["full"] = intval($phpgw->common->show_date($date["raw"],"Ymd"));
return $date;
} }
function localdates($localtime) { function localdates($localtime) {
@ -491,7 +495,6 @@
$p->set_var('description',$description); $p->set_var('description',$description);
$str = $p->finish($p->parse('out','link_pict')); $str = $p->finish($p->parse('out','link_pict'));
} }
echo $str;
return $str; return $str;
} }
@ -668,14 +671,7 @@
global $phpgw; global $phpgw;
global $phpgw_info; global $phpgw_info;
$this->weekstarttime = $this->get_sunday_before($year,$month,1); $this->weekstarttime = $this->get_weekday_start($year,$month,1);
if ($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday") {
$this->days = array(0 => "Mon", 1 => "Tue", 2 => "Wed", 3 => "Thu", 4 => "Fri", 5 => "Sat", 6 => "Sun");
$this->weekstarttime += 86400;
} else {
$this->days = array(0 => "Sun", 1 => "Mon", 2 => "Tue", 3 => "Wed", 4 => "Thu", 5 => "Fri", 6 => "Sat");
}
$this->daysinweek = 7;
$p = CreateObject('phpgwapi.Template',$phpgw->common->get_tpl_dir('calendar')); $p = CreateObject('phpgwapi.Template',$phpgw->common->get_tpl_dir('calendar'));
// $p->halt_on_error("report"); // $p->halt_on_error("report");
@ -726,8 +722,9 @@
$p->parse('column_header','month_column',True); $p->parse('column_header','month_column',True);
} }
for ($j=0;$j<$this->daysinweek;$j++) { for ($j=0;$j<$this->daysinweek;$j++) {
$date = $this->localdates($startdate + ($j * 24 * 3600)); $date = $this->gmtdate($startdate + ($j * 24 * 3600));
$p->set_var('column_data',''); $p->set_var('column_data','');
$p->set_var('extra','');
if ($weekly || ($date["full"] >= $monthstart && $date["full"] <= $monthend)) { if ($weekly || ($date["full"] >= $monthstart && $date["full"] <= $monthend)) {
if($weekly) $cellcolor = $phpgw->nextmatchs->alternate_row_color($cellcolor); if($weekly) $cellcolor = $phpgw->nextmatchs->alternate_row_color($cellcolor);
if ($date["full"] == $this->today["full"]) { if ($date["full"] == $this->today["full"]) {
@ -781,7 +778,8 @@
} }
} }
$p->parse('column_data','week_day_events',True); $p->parse('column_data','week_day_events',True);
if (!$j) { $p->set_var('events','');
if (!$j || ($j && $date["full"] == $monthstart)) {
$p->set_var('week_day_font_size','-2'); $p->set_var('week_day_font_size','-2');
if(!$this->printer_friendly) { if(!$this->printer_friendly) {
$str = "<a href=\"".$phpgw->link($phpgw_info["server"]["webserver_url"]."/calendar/week.php","date=".$date["full"])."\">week " .(int)((date("z",($startdate+(24*3600*4)))+7)/7)."</a>"; $str = "<a href=\"".$phpgw->link($phpgw_info["server"]["webserver_url"]."/calendar/week.php","date=".$date["full"])."\">week " .(int)((date("z",($startdate+(24*3600*4)))+7)/7)."</a>";
@ -792,10 +790,10 @@
$p->parse('column_data','week_day_events',True); $p->parse('column_data','week_day_events',True);
$p->set_var('events',''); $p->set_var('events','');
} }
}
$p->parse('column_header','month_column',True); $p->parse('column_header','month_column',True);
$p->set_var('column_data',''); $p->set_var('column_data','');
} }
}
return $p->finish($p->parse('out','month_header')); return $p->finish($p->parse('out','month_header'));
} }
@ -845,15 +843,15 @@
$p->set_block('month_filler','month_filler'); $p->set_block('month_filler','month_filler');
$p->set_block('month_header','month_header'); $p->set_block('month_header','month_header');
$start = $this->get_sunday_before($year, $month, $day); $start = $this->get_weekday_start($year, $month, $day);
$cellcolor = $phpgw_info["theme"]["row_off"]; $cellcolor = $phpgw_info["theme"]["row_off"];
if ($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday") { // if ($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday") {
$start += 86400; // $start += 86400;
} // }
$str = ""; // $str = "";
$true_printer_friendly = $this->printer_friendly; $true_printer_friendly = $this->printer_friendly;
@ -895,13 +893,8 @@
$monthstart = intval(date("Ymd",mktime(0,0,0,$month,1,$year))); $monthstart = intval(date("Ymd",mktime(0,0,0,$month,1,$year)));
$monthend = intval(date("Ymd",mktime(0,0,0,$month + 1,0,$year))); $monthend = intval(date("Ymd",mktime(0,0,0,$month + 1,0,$year)));
$weekstarttime = $this->get_sunday_before($year,$month,1); $weekstarttime = $this->get_weekday_start($year,$month,1);
if ($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday") {
$days = array(0 => "Monday", 1 => "Tuesday", 2 => "Wednesday", 3 => "Thursday", 4 => "Friday", 5 => "Saturday", 6 => "Sunday");
$weekstarttime += (3600 * 25);
} else {
$days = array(0 => "Sunday", 1 => "Monday", 2 => "Tuesday", 3 => "Wednesday", 4 => "Thursday", 5 => "Friday", 6 => "Saturday");
}
$str = ""; $str = "";
$str .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" valign=\"top\">"; $str .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" valign=\"top\">";
$str .= "<tr valign=\"top\">"; $str .= "<tr valign=\"top\">";
@ -990,14 +983,7 @@
global $phpgw; global $phpgw;
global $phpgw_info; global $phpgw_info;
if($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday") { $weekstarttime = $this->get_weekday_start($year,$month,1);
$days = array(0 => "Mo", 1 => "Tu", 2 => "We", 3 => "Th", 4 => "Fr", 5 => "Sa", 6 => "Su");
$weekstarttime = $this->get_sunday_before($year,$month,1) + 86400;
} else {
$days = array(0 => "Su", 1 => "Mo", 2 => "Tu", 3 => "We", 4 => "Th", 5 => "Fr", 6 => "Sa");
$weekstarttime = $this->get_sunday_before($year,$month,1);
}
$daysinweek = 7;
$str = ""; $str = "";
$str .= "<table border=\"0\" bgcolor=\"".$phpgw_info["theme"]["bg_color"]."\">"; $str .= "<table border=\"0\" bgcolor=\"".$phpgw_info["theme"]["bg_color"]."\">";
@ -1059,13 +1045,8 @@
$monthstart = intval(date("Ymd",mktime(0,0,0,$month,1,$year))); $monthstart = intval(date("Ymd",mktime(0,0,0,$month,1,$year)));
$monthend = intval(date("Ymd",mktime(0,0,0,$month + 1,0,$year))); $monthend = intval(date("Ymd",mktime(0,0,0,$month + 1,0,$year)));
$weekstarttime = $this->get_sunday_before($year,$month,1); $weekstarttime = $this->get_weekday_start($year,$month,1);
if ($phpgw_info["user"]["preferences"]["calendar"]["weekdaystarts"] == "Monday") {
$days = array(0 => "Monday", 1 => "Tuesday", 2 => "Wednesday", 3 => "Thursday", 4 => "Friday", 5 => "Saturday", 6 => "Sunday");
$weekstarttime += (3600 * 25);
} else {
$days = array(0 => "Sunday", 1 => "Monday", 2 => "Tuesday", 3 => "Wednesday", 4 => "Thursday", 5 => "Friday", 6 => "Saturday");
}
$p = CreateObject('phpgwapi.Template',$phpgw->common->get_tpl_dir('calendar')); $p = CreateObject('phpgwapi.Template',$phpgw->common->get_tpl_dir('calendar'));
$p->set_unknowns("remove"); $p->set_unknowns("remove");
$p->set_file(array('mini_cal' => 'mini_cal.tpl', $p->set_file(array('mini_cal' => 'mini_cal.tpl',
@ -1082,7 +1063,7 @@
$p->set_var('bgcolor2',$phpgw_info["theme"]["cal_dayview"]); $p->set_var('bgcolor2',$phpgw_info["theme"]["cal_dayview"]);
for($i=0;$i<7;$i++) { for($i=0;$i<7;$i++) {
$p->set_var('dayname',"<b>" . substr(lang($days[$i]),0,2) . "</b>"); $p->set_var('dayname',"<b>" . substr(lang($this->days[$i]),0,2) . "</b>");
$p->parse('daynames','mini_day',True); $p->parse('daynames','mini_day',True);
} }
for($i=$weekstarttime;date("Ymd",$i)<=$monthend;$i += (24 * 3600 * 7)) { for($i=$weekstarttime;date("Ymd",$i)<=$monthend;$i += (24 * 3600 * 7)) {
@ -1112,13 +1093,13 @@
} else { } else {
$p->set_var('bgcolor2','#FEFEFE'); $p->set_var('bgcolor2','#FEFEFE');
$str = ""; $str = "";
if(!$this->printer_friendly) { // if(!$this->printer_friendly) {
$str .= '<a href="'.$phpgw->link($phpgw_info["server"]["webserver_url"] // $str .= '<a href="'.$phpgw->link($phpgw_info["server"]["webserver_url"]
. '/calendar/'.$link,'year='.$cal["year"].'&month='.$cal["month"].'&day=' // . '/calendar/'.$link,'year='.$cal["year"].'&month='.$cal["month"].'&day='
. $cal["day"]).'" class="minicalendargrey">'; // . $cal["day"]).'" class="minicalendargrey">';
} // }
$str .= $cal["day"]; // $str .= $cal["day"];
if (!$this->printer_friendly) $str .= '</a>'; // if (!$this->printer_friendly) $str .= '</a>';
$p->set_var('dayname',$str); $p->set_var('dayname',$str);
} }
$p->parse('monthweek_day','mini_day',True); $p->parse('monthweek_day','mini_day',True);