| // +----------------------------------------------------------------------+ // // $Id: Day.php,v 1.1 2004/05/24 22:25:42 quipo Exp $ // /** * @package Calendar * @version $Id: Day.php,v 1.1 2004/05/24 22:25:42 quipo Exp $ */ /** * Allows Calendar include path to be redefined * @ignore */ if (!defined('CALENDAR_ROOT')) { define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR); } /** * Load Calendar base class */ require_once CALENDAR_ROOT.'Calendar.php'; /** * Represents a Day and builds Hours. * * require_once 'Calendar'.DIRECTORY_SEPARATOR.'Day.php'; * $Day = & new Calendar_Day(2003, 10, 21); // Oct 21st 2003 * while ($Hour = & $Day->fetch()) { * echo $Hour->thisHour().'
'; * } *
* @package Calendar * @access public */ class Calendar_Day extends Calendar { /** * Marks the Day at the beginning of a week * @access private * @var boolean */ var $first = false; /** * Marks the Day at the end of a week * @access private * @var boolean */ var $last = false; /** * Used for tabular calendars * @access private * @var boolean */ var $empty = false; /** * Constructs Calendar_Day * @param int year e.g. 2003 * @param int month e.g. 8 * @param int day e.g. 15 * @access public */ function Calendar_Day($y, $m, $d) { Calendar::Calendar($y, $m, $d); } /** * Builds the Hours of the Day * @param array (optional) Caledar_Hour objects representing selected dates * @return boolean * @access public */ function build($sDates = array()) { require_once CALENDAR_ROOT.'Hour.php'; $hID = $this->cE->getHoursInDay($this->year, $this->month, $this->day); for ($i=0; $i < $hID; $i++) { $this->children[$i]= new Calendar_Hour($this->year, $this->month, $this->day, $i); } if (count($sDates) > 0) { $this->setSelection($sDates); } return true; } /** * Called from build() * @param array * @return void * @access private */ function setSelection($sDates) { foreach ($sDates as $sDate) { if ($this->year == $sDate->thisYear() && $this->month == $sDate->thisMonth() && $this->day == $sDate->thisDay()) { $key = (int)$sDate->thisHour(); if (isset($this->children[$key])) { $sDate->setSelected(); $this->children[$key] = $sDate; } } } } /** * Defines Day object as first in a week * Only used by Calendar_Month_Weekdays::build() * @param boolean state * @return void * @access private */ function setFirst ($state = true) { $this->first = $state; } /** * Defines Day object as last in a week * Used only following Calendar_Month_Weekdays::build() * @param boolean state * @return void * @access private */ function setLast($state = true) { $this->last = $state; } /** * Returns true if Day object is first in a Week * Only relevant when Day is created by Calendar_Month_Weekdays::build() * @return boolean * @access public */ function isFirst() { return $this->first; } /** * Returns true if Day object is last in a Week * Only relevant when Day is created by Calendar_Month_Weekdays::build() * @return boolean * @access public */ function isLast() { return $this->last; } /** * Defines Day object as empty * Only used by Calendar_Month_Weekdays::build() * @param boolean state * @return void * @access private */ function setEmpty ($state = true) { $this->empty = $state; } /** * @return boolean * @access public */ function isEmpty() { return $this->empty; } } ?>