Blame | Last modification | View Log | RSS feed
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: *///// +----------------------------------------------------------------------+// | PHP Version 4 |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2002 The PHP Group |// +----------------------------------------------------------------------+// | This source file is subject to version 2.02 of the PHP license, |// | that is bundled with this package in the file LICENSE, and is |// | available at through the world-wide-web at |// | http://www.php.net/license/3_0.txt. |// | If you did not receive a copy of the PHP license and are unable to |// | obtain it through the world-wide-web, please send a note to |// | license@php.net so we can mail you a copy immediately. |// +----------------------------------------------------------------------+// | Authors: Harry Fuecks <hfuecks@phppatterns.com> |// +----------------------------------------------------------------------+//// $Id: Month.php,v 1.1 2005-09-30 14:58:00 ddelon Exp $///*** @package Calendar* @version $Id: Month.php,v 1.1 2005-09-30 14:58:00 ddelon 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 Month and builds Days* <code>* require_once 'Calendar'.DIRECTORY_SEPARATOR.'Month.php';* $Month = & new Calendar_Month(2003, 10); // Oct 2003* $Month->build(); // Build Calendar_Day objects* while ($Day = & $Month->fetch()) {* echo $Day->thisDay().'<br />';* }* </code>* @package Calendar* @access public*/class Calendar_Month extends Calendar{/*** Constructs Calendar_Month* @param int year e.g. 2003* @param int month e.g. 5* @param int (optional) unused in this class* @access public*/function Calendar_Month($y, $m, $firstDay=null){Calendar::Calendar($y, $m);}/*** Builds Day objects for this Month. Creates as many Calendar_Day objects* as there are days in the month* @param array (optional) Calendar_Day objects representing selected dates* @return boolean* @access public*/function build($sDates=array()){require_once CALENDAR_ROOT.'Day.php';$daysInMonth = $this->cE->getDaysInMonth($this->year, $this->month);for ($i=1; $i<=$daysInMonth; $i++) {$this->children[$i] = new Calendar_Day($this->year, $this->month, $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() ){$key = $sDate->thisDay();if (isset($this->children[$key])) {$sDate->setSelected();$class = strtolower(get_class($sDate));if ( $class == 'calendar_day' || $class == 'calendar_decorator' ) {$sDate->setFirst($this->children[$key]->isFirst());$sDate->setLast($this->children[$key]->isLast());}$this->children[$key] = $sDate;}}}}}?>