From 5bc4f09805223539cd593ccbe7ed49955dd58775 Mon Sep 17 00:00:00 2001 From: Andreas Unterkircher Date: Sat, 23 May 2009 12:48:50 +0200 Subject: make calendar window working again, fixes #78 Signed-off-by: Andreas Unterkircher --- phpfspot.class.php | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) (limited to 'phpfspot.class.php') diff --git a/phpfspot.class.php b/phpfspot.class.php index 1423f98..89f924d 100644 --- a/phpfspot.class.php +++ b/phpfspot.class.php @@ -2561,6 +2561,11 @@ class PHPFSPOT { print "PEAR Console_Getopt package is missing
\n"; $missing = true; } + @include_once 'Date.php'; + if(isset($php_errormsg) && preg_match('/Failed opening.*for inclusion/i', $php_errormsg)) { + print "PEAR Date package is missing
\n"; + $missing = true; + } @include_once $this->cfg->smarty_path .'/libs/Smarty.class.php'; if(isset($php_errormsg) && preg_match('/Failed opening.*for inclusion/i', $php_errormsg)) { print "Smarty template engine can not be found in ". $this->cfg->smarty_path ."/libs/Smarty.class.php
\n"; @@ -2665,11 +2670,22 @@ class PHPFSPOT { * @param integer $month * @param integer $day */ - public function get_calendar_matrix($year = 0, $month = 0, $day = 0) + public function get_calendar_matrix($userdate) { - if (!isset($year)) $year = date('Y'); - if (!isset($month)) $month = date('m'); - if (!isset($day)) $day = date('d'); + if(($userdate = strtotime($userdate)) === false) { + $year = date('Y'); + $month = date('m'); + $day = date('d'); + } + else { + $date = new Date(); + $date->setDate($userdate); + + $year = $date->getYear(); + $month = $date->getMonth(); + $day = $date->getDay(); + } + $rows = 1; $cols = 1; $matrix = Array(); @@ -2678,27 +2694,26 @@ class PHPFSPOT { require_once CALENDAR_ROOT.'Day.php'; // Build the month - $month = new Calendar_Month_Weekdays($year,$month); + $month_cal = new Calendar_Month_Weekdays($year,$month); // Create links - $prevStamp = $month->prevMonth(true); + $prevStamp = $month_cal->prevMonth(true); $prev = "javascript:setMonth(". date('Y',$prevStamp) .", ". date('n',$prevStamp) .", ". date('j',$prevStamp) .");"; - $nextStamp = $month->nextMonth(true); + $nextStamp = $month_cal->nextMonth(true); $next = "javascript:setMonth(". date('Y',$nextStamp) .", ". date('n',$nextStamp) .", ". date('j',$nextStamp) .");"; $selectedDays = array ( new Calendar_Day($year,$month,$day), - new Calendar_Day($year,12,25), ); // Build the days in the month - $month->build($selectedDays); + $month_cal->build($selectedDays); - $this->tmpl->assign('current_month', date('F Y',$month->getTimeStamp())); + $this->tmpl->assign('current_month', date('F Y',$month_cal->getTimeStamp())); $this->tmpl->assign('prev_month', $prev); $this->tmpl->assign('next_month', $next); - while ( $day = $month->fetch() ) { + while ( $day = $month_cal->fetch() ) { if(!isset($matrix[$rows])) $matrix[$rows] = Array(); @@ -2706,7 +2721,13 @@ class PHPFSPOT { $string = ""; $dayStamp = $day->thisDay(true); - $link = "javascript:setCalendarDate(". date('Y',$dayStamp) .", ". date('n',$dayStamp).", ". date('j',$dayStamp) .");"; + $link = "javascript:setCalendarDate('" + . date('Y',$dayStamp) + . "-" + . date('m',$dayStamp) + . "-" + . date('d',$dayStamp) + ."');"; // isFirst() to find start of week if ( $day->isFirst() ) -- cgit v1.2.3-18-g5258