Updated PEAR libraries to latest stable versions, changed the format in the repo so they are already extracted and dont need to be installed, only copied. Part of #2020.
This commit is contained in:
parent
85f3717eb7
commit
1589ec3dda
527 changed files with 118553 additions and 7 deletions
|
@ -53,20 +53,16 @@ INSTALL_DIR = @prefix@
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# Targets
|
# Targets
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
.PHONY: all install copy_files clean distclean
|
.PHONY: all install clean distclean
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
|
||||||
install: copy_files
|
install:
|
||||||
${INSTALL_DIR}/usr/lib/pear/bin/install.sh -d ${INSTALL_DIR}
|
|
||||||
|
|
||||||
copy_files:
|
|
||||||
${MKDIR} ${INSTALL_DIR}/usr/lib/pear/bin
|
${MKDIR} ${INSTALL_DIR}/usr/lib/pear/bin
|
||||||
${MKDIR} ${INSTALL_DIR}/usr/lib/pear/etc
|
${MKDIR} ${INSTALL_DIR}/usr/lib/pear/etc
|
||||||
${MKDIR} ${INSTALL_DIR}/usr/lib/pear/src
|
${MKDIR} ${INSTALL_DIR}/usr/lib/pear/src
|
||||||
cp -pP ${BASE_DIR}/../pear/bin/install.sh ${INSTALL_DIR}/usr/lib/pear/bin
|
|
||||||
cp -pP ${BASE_DIR}/../pear/etc/pear.conf.template ${INSTALL_DIR}/usr/lib/pear/etc
|
cp -pP ${BASE_DIR}/../pear/etc/pear.conf.template ${INSTALL_DIR}/usr/lib/pear/etc
|
||||||
cp -pP ${BASE_DIR}/../pear/src/*.tgz ${INSTALL_DIR}/usr/lib/pear/src
|
cp -R ${BASE_DIR}/../pear/src/* ${INSTALL_DIR}/usr/lib/pear/src
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
||||||
|
|
1762
campcaster/src/tools/pear/src/Archive/Tar.php
Normal file
1762
campcaster/src/tools/pear/src/Archive/Tar.php
Normal file
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
685
campcaster/src/tools/pear/src/Calendar/Calendar.php
Normal file
685
campcaster/src/tools/pear/src/Calendar/Calendar.php
Normal file
|
@ -0,0 +1,685 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Calendar.php,v 1.3 2005/10/22 10:07:11 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Calendar.php,v 1.3 2005/10/22 10:07:11 quipo Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows Calendar include path to be redefined
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_ROOT')) {
|
||||||
|
define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant which defines the calculation engine to use
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_ENGINE')) {
|
||||||
|
define('CALENDAR_ENGINE', 'UnixTS');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define Calendar Month states
|
||||||
|
*/
|
||||||
|
define('CALENDAR_USE_MONTH', 1);
|
||||||
|
define('CALENDAR_USE_MONTH_WEEKDAYS', 2);
|
||||||
|
define('CALENDAR_USE_MONTH_WEEKS', 3);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains a factory method to return a Singleton instance of a class
|
||||||
|
* implementing the Calendar_Engine_Interface.<br>
|
||||||
|
* <b>Note:</b> this class must be modified to "register" alternative
|
||||||
|
* Calendar_Engines. The engine used can be controlled with the constant
|
||||||
|
* CALENDAR_ENGINE
|
||||||
|
* @see Calendar_Engine_Interface
|
||||||
|
* @package Calendar
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
class Calendar_Engine_Factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Returns an instance of the engine
|
||||||
|
* @return object instance of a calendar calculation engine
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function & getEngine()
|
||||||
|
{
|
||||||
|
static $engine = false;
|
||||||
|
switch (CALENDAR_ENGINE) {
|
||||||
|
case 'PearDate':
|
||||||
|
$class = 'Calendar_Engine_PearDate';
|
||||||
|
break;
|
||||||
|
case 'UnixTS':
|
||||||
|
default:
|
||||||
|
$class = 'Calendar_Engine_UnixTS';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!$engine) {
|
||||||
|
if (!class_exists($class)) {
|
||||||
|
require_once CALENDAR_ROOT.'Engine'.DIRECTORY_SEPARATOR.CALENDAR_ENGINE.'.php';
|
||||||
|
}
|
||||||
|
$engine = new $class;
|
||||||
|
}
|
||||||
|
return $engine;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base class for Calendar API. This class should not be instantiated
|
||||||
|
* directly.
|
||||||
|
* @abstract
|
||||||
|
* @package Calendar
|
||||||
|
*/
|
||||||
|
class Calendar
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Instance of class implementing calendar engine interface
|
||||||
|
* @var object
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $cE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instance of Calendar_Validator (lazy initialized when isValid() or
|
||||||
|
* getValidor() is called
|
||||||
|
* @var Calendar_Validator
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $validator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Year for this calendar object e.g. 2003
|
||||||
|
* @access private
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
var $year;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Month for this calendar object e.g. 9
|
||||||
|
* @access private
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
var $month;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Day of month for this calendar object e.g. 23
|
||||||
|
* @access private
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
var $day;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hour of day for this calendar object e.g. 13
|
||||||
|
* @access private
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
var $hour;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Minute of hour this calendar object e.g. 46
|
||||||
|
* @access private
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
var $minute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Second of minute this calendar object e.g. 34
|
||||||
|
* @access private
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
var $second;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marks this calendar object as selected (e.g. 'today')
|
||||||
|
* @access private
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
var $selected = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Collection of child calendar objects created from subclasses
|
||||||
|
* of Calendar. Type depends on the object which created them.
|
||||||
|
* @access private
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
var $children = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs the Calendar
|
||||||
|
* @param int year
|
||||||
|
* @param int month
|
||||||
|
* @param int day
|
||||||
|
* @param int hour
|
||||||
|
* @param int minute
|
||||||
|
* @param int second
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function Calendar($y = 2000, $m = 1, $d = 1, $h = 0, $i = 0, $s = 0)
|
||||||
|
{
|
||||||
|
static $cE = null;
|
||||||
|
if (!isset($cE)) {
|
||||||
|
$cE = & Calendar_Engine_Factory::getEngine();
|
||||||
|
}
|
||||||
|
$this->cE = & $cE;
|
||||||
|
$this->year = (int)$y;
|
||||||
|
$this->month = (int)$m;
|
||||||
|
$this->day = (int)$d;
|
||||||
|
$this->hour = (int)$h;
|
||||||
|
$this->minute = (int)$i;
|
||||||
|
$this->second = (int)$s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the calendar by a timestamp (Unix or ISO-8601), replacing values
|
||||||
|
* passed to the constructor
|
||||||
|
* @param int|string Unix or ISO-8601 timestamp
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setTimestamp($ts)
|
||||||
|
{
|
||||||
|
$this->year = $this->cE->stampToYear($ts);
|
||||||
|
$this->month = $this->cE->stampToMonth($ts);
|
||||||
|
$this->day = $this->cE->stampToDay($ts);
|
||||||
|
$this->hour = $this->cE->stampToHour($ts);
|
||||||
|
$this->minute = $this->cE->stampToMinute($ts);
|
||||||
|
$this->second = $this->cE->stampToSecond($ts);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a timestamp from the current date / time values. Format of
|
||||||
|
* timestamp depends on Calendar_Engine implementation being used
|
||||||
|
* @return int|string timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function getTimestamp()
|
||||||
|
{
|
||||||
|
return $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $this->minute, $this->second);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines calendar object as selected (e.g. for today)
|
||||||
|
* @param boolean state whether Calendar subclass
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setSelected($state = true)
|
||||||
|
{
|
||||||
|
$this->selected = $state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if the calendar subclass object is selected (e.g. today)
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isSelected()
|
||||||
|
{
|
||||||
|
return $this->selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adjusts the date (helper method)
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function adjust()
|
||||||
|
{
|
||||||
|
$stamp = $this->getTimeStamp();
|
||||||
|
$this->year = $this->cE->stampToYear($stamp);
|
||||||
|
$this->month = $this->cE->stampToMonth($stamp);
|
||||||
|
$this->day = $this->cE->stampToDay($stamp);
|
||||||
|
$this->hour = $this->cE->stampToHour($stamp);
|
||||||
|
$this->minute = $this->cE->stampToMinute($stamp);
|
||||||
|
$this->second = $this->cE->stampToSecond($stamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the date as an associative array (helper method)
|
||||||
|
* @param mixed timestamp (leave empty for current timestamp)
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function toArray($stamp=null)
|
||||||
|
{
|
||||||
|
if (is_null($stamp)) {
|
||||||
|
$stamp = $this->getTimeStamp();
|
||||||
|
}
|
||||||
|
return array(
|
||||||
|
'year' => $this->cE->stampToYear($stamp),
|
||||||
|
'month' => $this->cE->stampToMonth($stamp),
|
||||||
|
'day' => $this->cE->stampToDay($stamp),
|
||||||
|
'hour' => $this->cE->stampToHour($stamp),
|
||||||
|
'minute' => $this->cE->stampToMinute($stamp),
|
||||||
|
'second' => $this->cE->stampToSecond($stamp)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value as an associative array (helper method)
|
||||||
|
* @param string type of date object that return value represents
|
||||||
|
* @param string $format ['int' | 'array' | 'timestamp' | 'object']
|
||||||
|
* @param mixed timestamp (depending on Calendar engine being used)
|
||||||
|
* @param int integer default value (i.e. give me the answer quick)
|
||||||
|
* @return mixed
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function returnValue($returnType, $format, $stamp, $default)
|
||||||
|
{
|
||||||
|
switch (strtolower($format)) {
|
||||||
|
case 'int':
|
||||||
|
return $default;
|
||||||
|
case 'array':
|
||||||
|
return $this->toArray($stamp);
|
||||||
|
break;
|
||||||
|
case 'object':
|
||||||
|
require_once CALENDAR_ROOT.'Factory.php';
|
||||||
|
return Calendar_Factory::createByTimestamp($returnType,$stamp);
|
||||||
|
break;
|
||||||
|
case 'timestamp':
|
||||||
|
default:
|
||||||
|
return $stamp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstract method for building the children of a calendar object.
|
||||||
|
* Implemented by Calendar subclasses
|
||||||
|
* @param array containing Calendar objects to select (optional)
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
* @abstract
|
||||||
|
*/
|
||||||
|
function build($sDates = array())
|
||||||
|
{
|
||||||
|
require_once 'PEAR.php';
|
||||||
|
PEAR::raiseError(
|
||||||
|
'Calendar::build is abstract', null, PEAR_ERROR_TRIGGER,
|
||||||
|
E_USER_NOTICE, 'Calendar::build()');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstract method for selected data objects called from build
|
||||||
|
* @param array
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
* @abstract
|
||||||
|
*/
|
||||||
|
function setSelection($sDates)
|
||||||
|
{
|
||||||
|
require_once 'PEAR.php';
|
||||||
|
PEAR::raiseError(
|
||||||
|
'Calendar::setSelection is abstract', null, PEAR_ERROR_TRIGGER,
|
||||||
|
E_USER_NOTICE, 'Calendar::setSelection()');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterator method for fetching child Calendar subclass objects
|
||||||
|
* (e.g. a minute from an hour object). On reaching the end of
|
||||||
|
* the collection, returns false and resets the collection for
|
||||||
|
* further iteratations.
|
||||||
|
* @return mixed either an object subclass of Calendar or false
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function fetch()
|
||||||
|
{
|
||||||
|
$child = each($this->children);
|
||||||
|
if ($child) {
|
||||||
|
return $child['value'];
|
||||||
|
} else {
|
||||||
|
reset($this->children);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches all child from the current collection of children
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function fetchAll()
|
||||||
|
{
|
||||||
|
return $this->children;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number Calendar subclass objects stored in the internal
|
||||||
|
* collection.
|
||||||
|
* @return int
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function size()
|
||||||
|
{
|
||||||
|
return count($this->children);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine whether this date is valid, with the bounds determined by
|
||||||
|
* the Calendar_Engine. The call is passed on to
|
||||||
|
* Calendar_Validator::isValid
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValid()
|
||||||
|
{
|
||||||
|
$validator = & $this->getValidator();
|
||||||
|
return $validator->isValid();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an instance of Calendar_Validator
|
||||||
|
* @return Calendar_Validator
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function & getValidator()
|
||||||
|
{
|
||||||
|
if (!isset($this->validator)) {
|
||||||
|
require_once CALENDAR_ROOT.'Validator.php';
|
||||||
|
$this->validator = & new Calendar_Validator($this);
|
||||||
|
}
|
||||||
|
return $this->validator;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a reference to the current Calendar_Engine being used. Useful
|
||||||
|
* for Calendar_Table_Helper and Calendar_Validator
|
||||||
|
* @return object implementing Calendar_Engine_Inteface
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function & getEngine()
|
||||||
|
{
|
||||||
|
return $this->cE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the CALENDAR_FIRST_DAY_OF_WEEK constant to the $firstDay value
|
||||||
|
* if the constant is not set yet.
|
||||||
|
* @throws E_USER_WARNING this method throws a WARNING if the
|
||||||
|
* CALENDAR_FIRST_DAY_OF_WEEK constant is already defined and
|
||||||
|
* the $firstDay parameter is set to a different value
|
||||||
|
* @param integer $firstDay first day of the week (0=sunday, 1=monday, ...)
|
||||||
|
* @return integer
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function defineFirstDayOfWeek($firstDay = null)
|
||||||
|
{
|
||||||
|
if (defined('CALENDAR_FIRST_DAY_OF_WEEK')) {
|
||||||
|
if (!is_null($firstDay) && ($firstDay != CALENDAR_FIRST_DAY_OF_WEEK)) {
|
||||||
|
$msg = 'CALENDAR_FIRST_DAY_OF_WEEK constant already defined.'
|
||||||
|
.' The $firstDay parameter will be ignored.';
|
||||||
|
trigger_error($msg, E_USER_WARNING);
|
||||||
|
}
|
||||||
|
return CALENDAR_FIRST_DAY_OF_WEEK;
|
||||||
|
}
|
||||||
|
if (is_null($firstDay)) {
|
||||||
|
$firstDay = $this->cE->getFirstDayOfWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
define ('CALENDAR_FIRST_DAY_OF_WEEK', $firstDay);
|
||||||
|
return CALENDAR_FIRST_DAY_OF_WEEK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous year
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 2002 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevYear($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp($this->year-1, 1, 1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Year', $format, $ts, $this->year-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this year
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 2003 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisYear($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp($this->year, 1, 1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Year', $format, $ts, $this->year);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for next year
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 2004 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextYear($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp($this->year+1, 1, 1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Year', $format, $ts, $this->year+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous month
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 4 or Unix timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevMonth($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp($this->year, $this->month-1, 1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Month', $format, $ts, $this->cE->stampToMonth($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this month
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 5 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisMonth($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp($this->year, $this->month, 1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Month', $format, $ts, $this->month);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for next month
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 6 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextMonth($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp($this->year, $this->month+1, 1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Month', $format, $ts, $this->cE->stampToMonth($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous day
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 10 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevDay($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day-1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Day', $format, $ts, $this->cE->stampToDay($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this day
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 11 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisDay($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day, 0, 0, 0);
|
||||||
|
return $this->returnValue('Day', $format, $ts, $this->day);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next day
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 12 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextDay($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day+1, 0, 0, 0);
|
||||||
|
return $this->returnValue('Day', $format, $ts, $this->cE->stampToDay($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous hour
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 13 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevHour($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day, $this->hour-1, 0, 0);
|
||||||
|
return $this->returnValue('Hour', $format, $ts, $this->cE->stampToHour($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this hour
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 14 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisHour($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day, $this->hour, 0, 0);
|
||||||
|
return $this->returnValue('Hour', $format, $ts, $this->hour);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next hour
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 14 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextHour($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day, $this->hour+1, 0, 0);
|
||||||
|
return $this->returnValue('Hour', $format, $ts, $this->cE->stampToHour($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous minute
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 23 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevMinute($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $this->minute-1, 0);
|
||||||
|
return $this->returnValue('Minute', $format, $ts, $this->cE->stampToMinute($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this minute
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 24 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisMinute($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $this->minute, 0);
|
||||||
|
return $this->returnValue('Minute', $format, $ts, $this->minute);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next minute
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 25 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextMinute($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $this->minute+1, 0);
|
||||||
|
return $this->returnValue('Minute', $format, $ts, $this->cE->stampToMinute($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous second
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 43 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevSecond($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $this->minute, $this->second-1);
|
||||||
|
return $this->returnValue('Second', $format, $ts, $this->cE->stampToSecond($ts));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this second
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 44 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisSecond($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $this->minute, $this->second);
|
||||||
|
return $this->returnValue('Second', $format, $ts, $this->second);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next second
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 45 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextSecond($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->cE->dateToStamp(
|
||||||
|
$this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $this->minute, $this->second+1);
|
||||||
|
return $this->returnValue('Second', $format, $ts, $this->cE->stampToSecond($ts));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
197
campcaster/src/tools/pear/src/Calendar/Day.php
Normal file
197
campcaster/src/tools/pear/src/Calendar/Day.php
Normal file
|
@ -0,0 +1,197 @@
|
||||||
|
<?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: 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.
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar'.DIRECTORY_SEPARATOR.'Day.php';
|
||||||
|
* $Day = & new Calendar_Day(2003, 10, 21); // Oct 21st 2003
|
||||||
|
* while ($Hour = & $Day->fetch()) {
|
||||||
|
* echo $Hour->thisHour().'<br />';
|
||||||
|
* }
|
||||||
|
* </code>
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
558
campcaster/src/tools/pear/src/Calendar/Decorator.php
Normal file
558
campcaster/src/tools/pear/src/Calendar/Decorator.php
Normal file
|
@ -0,0 +1,558 @@
|
||||||
|
<?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: Decorator.php,v 1.3 2005/10/22 10:29:46 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Decorator.php,v 1.3 2005/10/22 10:29:46 quipo Exp $
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Decorates any calendar class.
|
||||||
|
* Create a subclass of this class for your own "decoration".
|
||||||
|
* Used for "selections"
|
||||||
|
* <code>
|
||||||
|
* class DayDecorator extends Calendar_Decorator
|
||||||
|
* {
|
||||||
|
* function thisDay($format = 'int')
|
||||||
|
* {
|
||||||
|
.* $day = parent::thisDay('timestamp');
|
||||||
|
.* return date('D', $day);
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* $Day = & new Calendar_Day(2003, 10, 25);
|
||||||
|
* $DayDecorator = & new DayDecorator($Day);
|
||||||
|
* echo $DayDecorator->thisDay(); // Outputs "Sat"
|
||||||
|
* </code>
|
||||||
|
* @abstract
|
||||||
|
* @package Calendar
|
||||||
|
*/
|
||||||
|
class Calendar_Decorator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Subclass of Calendar being decorated
|
||||||
|
* @var object
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $calendar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs the Calendar_Decorator
|
||||||
|
* @param object subclass to Calendar to decorate
|
||||||
|
*/
|
||||||
|
function Calendar_Decorator(& $calendar)
|
||||||
|
{
|
||||||
|
$this->calendar = & $calendar;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the calendar by a Unix timestamp, replacing values
|
||||||
|
* passed to the constructor
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setTimestamp($ts)
|
||||||
|
{
|
||||||
|
$this->calendar->setTimestamp($ts);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a timestamp from the current date / time values. Format of
|
||||||
|
* timestamp depends on Calendar_Engine implementation being used
|
||||||
|
* @return int timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function getTimestamp()
|
||||||
|
{
|
||||||
|
return $this->calendar->getTimeStamp();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines calendar object as selected (e.g. for today)
|
||||||
|
* @param boolean state whether Calendar subclass
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setSelected($state = true)
|
||||||
|
{
|
||||||
|
$this->calendar->setSelected($state = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if the calendar subclass object is selected (e.g. today)
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isSelected()
|
||||||
|
{
|
||||||
|
return $this->calendar->isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adjusts the date (helper method)
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function adjust()
|
||||||
|
{
|
||||||
|
$this->calendar->adjust();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the date as an associative array (helper method)
|
||||||
|
* @param mixed timestamp (leave empty for current timestamp)
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function toArray($stamp=null)
|
||||||
|
{
|
||||||
|
return $this->calendar->toArray($stamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value as an associative array (helper method)
|
||||||
|
* @param string type of date object that return value represents
|
||||||
|
* @param string $format ['int' | 'array' | 'timestamp' | 'object']
|
||||||
|
* @param mixed timestamp (depending on Calendar engine being used)
|
||||||
|
* @param int integer default value (i.e. give me the answer quick)
|
||||||
|
* @return mixed
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function returnValue($returnType, $format, $stamp, $default)
|
||||||
|
{
|
||||||
|
return $this->calendar->returnValue($returnType, $format, $stamp, $default);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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)
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'setFirst') ) {
|
||||||
|
$this->calendar->setFirst($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)
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'setLast') ) {
|
||||||
|
$this->calendar->setLast($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() {
|
||||||
|
if ( method_exists($this->calendar,'isFirst') ) {
|
||||||
|
return $this->calendar->isFirst();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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()
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'isLast') ) {
|
||||||
|
return $this->calendar->isLast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines Day object as empty
|
||||||
|
* Only used by Calendar_Month_Weekdays::build()
|
||||||
|
* @param boolean state
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function setEmpty ($state = true)
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'setEmpty') ) {
|
||||||
|
$this->calendar->setEmpty($state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isEmpty()
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'isEmpty') ) {
|
||||||
|
return $this->calendar->isEmpty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build the children
|
||||||
|
* @param array containing Calendar objects to select (optional)
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
* @abstract
|
||||||
|
*/
|
||||||
|
function build($sDates = array())
|
||||||
|
{
|
||||||
|
$this->calendar->build($sDates);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterator method for fetching child Calendar subclass objects
|
||||||
|
* (e.g. a minute from an hour object). On reaching the end of
|
||||||
|
* the collection, returns false and resets the collection for
|
||||||
|
* further iteratations.
|
||||||
|
* @return mixed either an object subclass of Calendar or false
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function fetch()
|
||||||
|
{
|
||||||
|
return $this->calendar->fetch();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches all child from the current collection of children
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function fetchAll()
|
||||||
|
{
|
||||||
|
return $this->calendar->fetchAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number Calendar subclass objects stored in the internal
|
||||||
|
* collection.
|
||||||
|
* @return int
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function size()
|
||||||
|
{
|
||||||
|
return $this->calendar->size();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine whether this date is valid, with the bounds determined by
|
||||||
|
* the Calendar_Engine. The call is passed on to
|
||||||
|
* Calendar_Validator::isValid
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValid()
|
||||||
|
{
|
||||||
|
return $this->calendar->isValid();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an instance of Calendar_Validator
|
||||||
|
* @return Calendar_Validator
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function & getValidator()
|
||||||
|
{
|
||||||
|
$validator = $this->calendar->getValidator();
|
||||||
|
return $validator;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a reference to the current Calendar_Engine being used. Useful
|
||||||
|
* for Calendar_Table_Helper and Calendar_Validator
|
||||||
|
* @return object implementing Calendar_Engine_Inteface
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function & getEngine()
|
||||||
|
{
|
||||||
|
return $this->calendar->getEngine();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous year
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 2002 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevYear($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->prevYear($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this year
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 2003 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisYear($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->thisYear($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for next year
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 2004 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextYear($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->nextYear($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous month
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 4 or Unix timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevMonth($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->prevMonth($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this month
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 5 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisMonth($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->thisMonth($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for next month
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 6 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextMonth($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->nextMonth($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous week
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 4 or Unix timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevWeek($format = 'n_in_month')
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'prevWeek') ) {
|
||||||
|
return $this->calendar->prevWeek($format);
|
||||||
|
} else {
|
||||||
|
require_once 'PEAR.php';
|
||||||
|
PEAR::raiseError(
|
||||||
|
'Cannot call prevWeek on Calendar object of type: '.
|
||||||
|
get_class($this->calendar), 133, PEAR_ERROR_TRIGGER,
|
||||||
|
E_USER_NOTICE, 'Calendar_Decorator::prevWeek()');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this week
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 5 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisWeek($format = 'n_in_month')
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'thisWeek') ) {
|
||||||
|
return $this->calendar->thisWeek($format);
|
||||||
|
} else {
|
||||||
|
require_once 'PEAR.php';
|
||||||
|
PEAR::raiseError(
|
||||||
|
'Cannot call thisWeek on Calendar object of type: '.
|
||||||
|
get_class($this->calendar), 133, PEAR_ERROR_TRIGGER,
|
||||||
|
E_USER_NOTICE, 'Calendar_Decorator::thisWeek()');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for next week
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 6 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextWeek($format = 'n_in_month')
|
||||||
|
{
|
||||||
|
if ( method_exists($this->calendar,'nextWeek') ) {
|
||||||
|
return $this->calendar->nextWeek($format);
|
||||||
|
} else {
|
||||||
|
require_once 'PEAR.php';
|
||||||
|
PEAR::raiseError(
|
||||||
|
'Cannot call thisWeek on Calendar object of type: '.
|
||||||
|
get_class($this->calendar), 133, PEAR_ERROR_TRIGGER,
|
||||||
|
E_USER_NOTICE, 'Calendar_Decorator::nextWeek()');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous day
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 10 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevDay($format = 'int') {
|
||||||
|
return $this->calendar->prevDay($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this day
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 11 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisDay($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->thisDay($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next day
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 12 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextDay($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->nextDay($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous hour
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 13 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevHour($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->prevHour($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this hour
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 14 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisHour($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->thisHour($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next hour
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 14 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextHour($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->nextHour($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous minute
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 23 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevMinute($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->prevMinute($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this minute
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 24 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisMinute($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->thisMinute($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next minute
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 25 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextMinute($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->nextMinute($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the previous second
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 43 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevSecond($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->prevSecond($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for this second
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 44 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisSecond($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->thisSecond($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value for the next second
|
||||||
|
* @param string return value format ['int' | 'timestamp' | 'object' | 'array']
|
||||||
|
* @return int e.g. 45 or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextSecond($format = 'int')
|
||||||
|
{
|
||||||
|
return $this->calendar->nextSecond($format);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
169
campcaster/src/tools/pear/src/Calendar/Decorator/Textual.php
Normal file
169
campcaster/src/tools/pear/src/Calendar/Decorator/Textual.php
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Textual.php,v 1.3 2004/08/16 13:02:44 hfuecks Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Textual.php,v 1.3 2004/08/16 13:02:44 hfuecks Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows Calendar include path to be redefined
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_ROOT')) {
|
||||||
|
define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load Calendar decorator base class
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load the Uri utility
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Util'.DIRECTORY_SEPARATOR.'Textual.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decorator to help with fetching textual representations of months and
|
||||||
|
* days of the week.
|
||||||
|
* <b>Note:</b> for performance you should prefer Calendar_Util_Textual unless you
|
||||||
|
* have a specific need to use a decorator
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Decorator_Textual extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Decorator_Textual
|
||||||
|
* @param object subclass of Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Decorator_Textual(&$Calendar)
|
||||||
|
{
|
||||||
|
parent::Calendar_Decorator($Calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of 12 month names (first index = 1)
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function monthNames($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::monthNames($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of 7 week day names (first index = 0)
|
||||||
|
* @param string (optional) format of returned days (one,two,short or long)
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function weekdayNames($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::weekdayNames($format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the previous month of the decorated calendar object
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevMonthName($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::prevMonthName($this->calendar,$format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the month of the decorated calendar object
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisMonthName($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::thisMonthName($this->calendar,$format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the next month of the decorated calendar object
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextMonthName($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::nextMonthName($this->calendar,$format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the previous day of week of the decorated calendar object
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevDayName($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::prevDayName($this->calendar,$format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the day of week of the decorated calendar object
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisDayName($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::thisDayName($this->calendar,$format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the next day of week of the decorated calendar object
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextDayName($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::nextDayName($this->calendar,$format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the days of the week using the order defined in the decorated
|
||||||
|
* calendar object. Only useful for Calendar_Month_Weekdays, Calendar_Month_Weeks
|
||||||
|
* and Calendar_Week. Otherwise the returned array will begin on Sunday
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return array ordered array of week day names
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function orderedWeekdays($format='long')
|
||||||
|
{
|
||||||
|
return Calendar_Util_Textual::orderedWeekdays($this->calendar,$format);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
151
campcaster/src/tools/pear/src/Calendar/Decorator/Uri.php
Normal file
151
campcaster/src/tools/pear/src/Calendar/Decorator/Uri.php
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Uri.php,v 1.3 2004/08/16 09:04:20 hfuecks Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Uri.php,v 1.3 2004/08/16 09:04:20 hfuecks Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows Calendar include path to be redefined
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_ROOT')) {
|
||||||
|
define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load Calendar decorator base class
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load the Uri utility
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Util'.DIRECTORY_SEPARATOR.'Uri.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decorator to help with building HTML links for navigating the calendar<br />
|
||||||
|
* <b>Note:</b> for performance you should prefer Calendar_Util_Uri unless you
|
||||||
|
* have a specific need to use a decorator
|
||||||
|
* <code>
|
||||||
|
* $Day = new Calendar_Day(2003, 10, 23);
|
||||||
|
* $Uri = & new Calendar_Decorator_Uri($Day);
|
||||||
|
* $Uri->setFragments('year', 'month', 'day');
|
||||||
|
* echo $Uri->getPrev(); // Displays year=2003&month=10&day=22
|
||||||
|
* </code>
|
||||||
|
* @see Calendar_Util_Uri
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Decorator_Uri extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Calendar_Util_Uri
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $Uri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Decorator_Uri
|
||||||
|
* @param object subclass of Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Decorator_Uri(&$Calendar)
|
||||||
|
{
|
||||||
|
parent::Calendar_Decorator($Calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the URI fragment names
|
||||||
|
* @param string URI fragment for year
|
||||||
|
* @param string (optional) URI fragment for month
|
||||||
|
* @param string (optional) URI fragment for day
|
||||||
|
* @param string (optional) URI fragment for hour
|
||||||
|
* @param string (optional) URI fragment for minute
|
||||||
|
* @param string (optional) URI fragment for second
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setFragments($y, $m=null, $d=null, $h=null, $i=null, $s=null) {
|
||||||
|
$this->Uri = & new Calendar_Util_Uri($y, $m, $d, $h, $i, $s);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the separator string between fragments
|
||||||
|
* @param string separator e.g. /
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setSeparator($separator)
|
||||||
|
{
|
||||||
|
$this->Uri->separator = $separator;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Puts Uri decorator into "scalar mode" - URI variable names are not
|
||||||
|
* returned
|
||||||
|
* @param boolean (optional)
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setScalar($state=true)
|
||||||
|
{
|
||||||
|
$this->Uri->scalar = $state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the URI string for the previous calendar unit
|
||||||
|
* @param string calendar unit to fetch uri for (year,month,week or day etc)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prev($method)
|
||||||
|
{
|
||||||
|
return $this->Uri->prev($this, $method);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the URI string for the current calendar unit
|
||||||
|
* @param string calendar unit to fetch uri for (year,month,week or day etc)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function this($method)
|
||||||
|
{
|
||||||
|
return $this->Uri->this($this, $method);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the URI string for the next calendar unit
|
||||||
|
* @param string calendar unit to fetch uri for (year,month,week or day etc)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function next($method)
|
||||||
|
{
|
||||||
|
return $this->Uri->next($this, $method);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
148
campcaster/src/tools/pear/src/Calendar/Decorator/Weekday.php
Normal file
148
campcaster/src/tools/pear/src/Calendar/Decorator/Weekday.php
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Weekday.php,v 1.3 2004/08/16 12:25:15 hfuecks Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Weekday.php,v 1.3 2004/08/16 12:25:15 hfuecks Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows Calendar include path to be redefined
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_ROOT')) {
|
||||||
|
define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load Calendar decorator base class
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load a Calendar_Day
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
/**
|
||||||
|
* Decorator for fetching the day of the week
|
||||||
|
* <code>
|
||||||
|
* $Day = new Calendar_Day(2003, 10, 23);
|
||||||
|
* $Weekday = & new Calendar_Decorator_Weekday($Day);
|
||||||
|
* $Weekday->setFirstDay(0); // Set first day of week to Sunday (default Mon)
|
||||||
|
* echo $Weekday->thisWeekDay(); // Displays 5 - fifth day of week relative to Sun
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Decorator_Weekday extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* First day of week
|
||||||
|
* @var int (default = 1 for Monday)
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $firstDay = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Decorator_Weekday
|
||||||
|
* @param object subclass of Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Decorator_Weekday(& $Calendar)
|
||||||
|
{
|
||||||
|
parent::Calendar_Decorator($Calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the first day of the week (0 = Sunday, 1 = Monday (default) etc)
|
||||||
|
* @param int first day of week
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setFirstDay($firstDay) {
|
||||||
|
$this->firstDay = (int)$firstDay;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the previous weekday
|
||||||
|
* @param string (default = 'int') return value format
|
||||||
|
* @return int numeric day of week or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevWeekDay($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->calendar->prevDay('timestamp');
|
||||||
|
$Day = new Calendar_Day(2000,1,1);
|
||||||
|
$Day->setTimeStamp($ts);
|
||||||
|
$day = $this->calendar->cE->getDayOfWeek($Day->thisYear(),$Day->thisMonth(),$Day->thisDay());
|
||||||
|
$day = $this->adjustWeekScale($day);
|
||||||
|
return $this->returnValue('Day', $format, $ts, $day);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current weekday
|
||||||
|
* @param string (default = 'int') return value format
|
||||||
|
* @return int numeric day of week or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisWeekDay($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->calendar->thisDay('timestamp');
|
||||||
|
$day = $this->calendar->cE->getDayOfWeek($this->calendar->year,$this->calendar->month,$this->calendar->day);
|
||||||
|
$day = $this->adjustWeekScale($day);
|
||||||
|
return $this->returnValue('Day', $format, $ts, $day);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the next weekday
|
||||||
|
* @param string (default = 'int') return value format
|
||||||
|
* @return int numeric day of week or timestamp
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextWeekDay($format = 'int')
|
||||||
|
{
|
||||||
|
$ts = $this->calendar->nextDay('timestamp');
|
||||||
|
$Day = new Calendar_Day(2000,1,1);
|
||||||
|
$Day->setTimeStamp($ts);
|
||||||
|
$day = $this->calendar->cE->getDayOfWeek($Day->thisYear(),$Day->thisMonth(),$Day->thisDay());
|
||||||
|
$day = $this->adjustWeekScale($day);
|
||||||
|
return $this->returnValue('Day', $format, $ts, $day);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adjusts the day of the week relative to the first day of the week
|
||||||
|
* @param int day of week calendar from Calendar_Engine
|
||||||
|
* @return int day of week adjusted to first day
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function adjustWeekScale($dayOfWeek) {
|
||||||
|
$dayOfWeek = $dayOfWeek - $this->firstDay;
|
||||||
|
if ( $dayOfWeek >= 0 ) {
|
||||||
|
return $dayOfWeek;
|
||||||
|
} else {
|
||||||
|
return $this->calendar->cE->getDaysInWeek(
|
||||||
|
$this->calendar->year,$this->calendar->month,$this->calendar->day
|
||||||
|
) + $dayOfWeek;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
90
campcaster/src/tools/pear/src/Calendar/Decorator/Wrapper.php
Normal file
90
campcaster/src/tools/pear/src/Calendar/Decorator/Wrapper.php
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Wrapper.php,v 1.2 2005/11/03 20:35:03 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Wrapper.php,v 1.2 2005/11/03 20:35:03 quipo Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows Calendar include path to be redefined
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_ROOT')) {
|
||||||
|
define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load Calendar decorator base class
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decorator to help with wrapping built children in another decorator
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Decorator_Wrapper extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Decorator_Wrapper
|
||||||
|
* @param object subclass of Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Decorator_Wrapper(&$Calendar)
|
||||||
|
{
|
||||||
|
parent::Calendar_Decorator($Calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wraps objects returned from fetch in the named Decorator class
|
||||||
|
* @param string name of Decorator class to wrap with
|
||||||
|
* @return object instance of named decorator
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function & fetch($decorator)
|
||||||
|
{
|
||||||
|
$Calendar = parent::fetch();
|
||||||
|
if ($Calendar) {
|
||||||
|
$ret =& new $decorator($Calendar);
|
||||||
|
} else {
|
||||||
|
$ret = false;
|
||||||
|
}
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wraps the returned calendar objects from fetchAll in the named decorator
|
||||||
|
* @param string name of Decorator class to wrap with
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function fetchAll($decorator)
|
||||||
|
{
|
||||||
|
$children = parent::fetchAll();
|
||||||
|
foreach ($children as $key => $Calendar) {
|
||||||
|
$children[$key] = & new $decorator($Calendar);
|
||||||
|
}
|
||||||
|
return $children;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
293
campcaster/src/tools/pear/src/Calendar/Engine/Interface.php
Normal file
293
campcaster/src/tools/pear/src/Calendar/Engine/Interface.php
Normal file
|
@ -0,0 +1,293 @@
|
||||||
|
<?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: Interface.php,v 1.5 2004/08/16 12:29:18 hfuecks Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Interface.php,v 1.5 2004/08/16 12:29:18 hfuecks Exp $
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* The methods the classes implementing the Calendar_Engine must implement.
|
||||||
|
* Note this class is not used but simply to help development
|
||||||
|
* @package Calendar
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
class Calendar_Engine_Interface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Provides a mechansim to make sure parsing of timestamps
|
||||||
|
* into human dates is only performed once per timestamp.
|
||||||
|
* Typically called "internally" by methods like stampToYear.
|
||||||
|
* Return value can vary, depending on the specific implementation
|
||||||
|
* @param int timestamp (depending on implementation)
|
||||||
|
* @return mixed
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampCollection($stamp)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric year given a timestamp
|
||||||
|
* @param int timestamp (depending on implementation)
|
||||||
|
* @return int year (e.g. 2003)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToYear($stamp)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric month given a timestamp
|
||||||
|
* @param int timestamp (depending on implementation)
|
||||||
|
* @return int month (e.g. 9)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToMonth($stamp)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric day given a timestamp
|
||||||
|
* @param int timestamp (depending on implementation)
|
||||||
|
* @return int day (e.g. 15)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToDay($stamp)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric hour given a timestamp
|
||||||
|
* @param int timestamp (depending on implementation)
|
||||||
|
* @return int hour (e.g. 13)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToHour($stamp)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric minute given a timestamp
|
||||||
|
* @param int timestamp (depending on implementation)
|
||||||
|
* @return int minute (e.g. 34)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToMinute($stamp)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric second given a timestamp
|
||||||
|
* @param int timestamp (depending on implementation)
|
||||||
|
* @return int second (e.g. 51)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToSecond($stamp)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a timestamp. Can be worth "caching" generated
|
||||||
|
* timestamps in a static variable, identified by the
|
||||||
|
* params this method accepts, to timestamp will only
|
||||||
|
* be calculated once.
|
||||||
|
* @param int year (e.g. 2003)
|
||||||
|
* @param int month (e.g. 9)
|
||||||
|
* @param int day (e.g. 13)
|
||||||
|
* @param int hour (e.g. 13)
|
||||||
|
* @param int minute (e.g. 34)
|
||||||
|
* @param int second (e.g. 53)
|
||||||
|
* @return int (depends on implementation)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function dateToStamp($y,$m,$d,$h,$i,$s)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The upper limit on years that the Calendar Engine can work with
|
||||||
|
* @return int (e.g. 2037)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMaxYears()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The lower limit on years that the Calendar Engine can work with
|
||||||
|
* @return int (e.g 1902)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMinYears()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of months in a year
|
||||||
|
* @param int (optional) year to get months for
|
||||||
|
* @return int (e.g. 12)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMonthsInYear($y=null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of days in a month, given year and month
|
||||||
|
* @param int year (e.g. 2003)
|
||||||
|
* @param int month (e.g. 9)
|
||||||
|
* @return int days in month
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDaysInMonth($y, $m)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns numeric representation of the day of the week in a month,
|
||||||
|
* given year and month
|
||||||
|
* @param int year (e.g. 2003)
|
||||||
|
* @param int month (e.g. 9)
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getFirstDayInMonth ($y, $m)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of days in a week
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int (e.g. 7)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDaysInWeek($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the week in the year (ISO-8601), given a date
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int week number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekNInYear($y, $m, $d)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the week in the month, given a date
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @param int first day of the week (default: 1 - monday)
|
||||||
|
* @return int week number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekNInMonth($y, $m, $d, $firstDay=1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of weeks in the month
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int first day of the week (default: 1 - monday)
|
||||||
|
* @return int weeks number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeeksInMonth($y, $m)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the day of the week (0=sunday, 1=monday...)
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int weekday number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDayOfWeek($y, $m, $d)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the numeric values of the days of the week.
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return array list of numeric values of days in week, beginning 0
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekDays($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default first day of the week as an integer. Must be a
|
||||||
|
* member of the array returned from getWeekDays
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int (e.g. 1 for Monday)
|
||||||
|
* @see getWeekDays
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getFirstDayOfWeek($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of hours in a day<br>
|
||||||
|
* @param int (optional) day to get hours for
|
||||||
|
* @return int (e.g. 24)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getHoursInDay($y=null,$m=null,$d=null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of minutes in an hour
|
||||||
|
* @param int (optional) hour to get minutes for
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMinutesInHour($y=null,$m=null,$d=null,$h=null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of seconds in a minutes
|
||||||
|
* @param int (optional) minute to get seconds for
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getSecondsInMinute($y=null,$m=null,$d=null,$h=null,$i=null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
407
campcaster/src/tools/pear/src/Calendar/Engine/PearDate.php
Normal file
407
campcaster/src/tools/pear/src/Calendar/Engine/PearDate.php
Normal file
|
@ -0,0 +1,407 @@
|
||||||
|
<?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: Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: PearDate.php,v 1.8 2004/08/20 20:00:55 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: PearDate.php,v 1.8 2004/08/20 20:00:55 quipo Exp $
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Load PEAR::Date class
|
||||||
|
*/
|
||||||
|
require_once 'Date.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs calendar calculations based on the PEAR::Date class
|
||||||
|
* Timestamps are in the ISO-8601 format (YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @package Calendar
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
class Calendar_Engine_PearDate /* implements Calendar_Engine_Interface */
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Makes sure a given timestamp is only ever parsed once
|
||||||
|
* Uses a static variable to prevent date() being used twice
|
||||||
|
* for a date which is already known
|
||||||
|
* @param mixed Any timestamp format recognized by Pear::Date
|
||||||
|
* @return object Pear::Date object
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampCollection($stamp)
|
||||||
|
{
|
||||||
|
static $stamps = array();
|
||||||
|
if (!isset($stamps[$stamp])) {
|
||||||
|
$stamps[$stamp] = new Date($stamp);
|
||||||
|
}
|
||||||
|
return $stamps[$stamp];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric year given a iso-8601 datetime
|
||||||
|
* @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @return int year (e.g. 2003)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToYear($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_PearDate::stampCollection($stamp);
|
||||||
|
return (int)$date->year;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric month given a iso-8601 datetime
|
||||||
|
* @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @return int month (e.g. 9)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToMonth($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_PearDate::stampCollection($stamp);
|
||||||
|
return (int)$date->month;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric day given a iso-8601 datetime
|
||||||
|
* @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @return int day (e.g. 15)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToDay($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_PearDate::stampCollection($stamp);
|
||||||
|
return (int)$date->day;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric hour given a iso-8601 datetime
|
||||||
|
* @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @return int hour (e.g. 13)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToHour($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_PearDate::stampCollection($stamp);
|
||||||
|
return (int)$date->hour;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric minute given a iso-8601 datetime
|
||||||
|
* @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @return int minute (e.g. 34)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToMinute($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_PearDate::stampCollection($stamp);
|
||||||
|
return (int)$date->minute;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric second given a iso-8601 datetime
|
||||||
|
* @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @return int second (e.g. 51)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToSecond($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_PearDate::stampCollection($stamp);
|
||||||
|
return (int)$date->second;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a iso-8601 datetime
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (13)
|
||||||
|
* @param int hour (13)
|
||||||
|
* @param int minute (34)
|
||||||
|
* @param int second (53)
|
||||||
|
* @return string iso-8601 datetime
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function dateToStamp($y, $m, $d, $h=0, $i=0, $s=0)
|
||||||
|
{
|
||||||
|
$r = array();
|
||||||
|
Calendar_Engine_PearDate::adjustDate($y, $m, $d, $h, $i, $s);
|
||||||
|
$key = $y.$m.$d.$h.$i.$s;
|
||||||
|
if (!isset($r[$key])) {
|
||||||
|
$r[$key] = sprintf("%04d-%02d-%02d %02d:%02d:%02d",
|
||||||
|
$y, $m, $d, $h, $i, $s);
|
||||||
|
}
|
||||||
|
return $r[$key];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the correct date values (useful for math operations on dates)
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (13)
|
||||||
|
* @param int hour (13)
|
||||||
|
* @param int minute (34)
|
||||||
|
* @param int second (53)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function adjustDate(&$y, &$m, &$d, &$h, &$i, &$s)
|
||||||
|
{
|
||||||
|
if ($s < 0) {
|
||||||
|
$m -= floor($s / 60);
|
||||||
|
$s = -$s % 60;
|
||||||
|
}
|
||||||
|
if ($s > 60) {
|
||||||
|
$m += floor($s / 60);
|
||||||
|
$s %= 60;
|
||||||
|
}
|
||||||
|
if ($i < 0) {
|
||||||
|
$h -= floor($i / 60);
|
||||||
|
$i = -$i % 60;
|
||||||
|
}
|
||||||
|
if ($i > 60) {
|
||||||
|
$h += floor($i / 60);
|
||||||
|
$i %= 60;
|
||||||
|
}
|
||||||
|
if ($h < 0) {
|
||||||
|
$d -= floor($h / 24);
|
||||||
|
$h = -$h % 24;
|
||||||
|
}
|
||||||
|
if ($h > 24) {
|
||||||
|
$d += floor($h / 24);
|
||||||
|
$h %= 24;
|
||||||
|
}
|
||||||
|
for(; $m < 1; $y--, $m+=12);
|
||||||
|
for(; $m > 12; $y++, $m-=12);
|
||||||
|
|
||||||
|
while ($d < 1) {
|
||||||
|
if ($m > 1) {
|
||||||
|
$m--;
|
||||||
|
} else {
|
||||||
|
$m = 12;
|
||||||
|
$y--;
|
||||||
|
}
|
||||||
|
$d += Date_Calc::daysInMonth($m, $y);
|
||||||
|
}
|
||||||
|
for ($max_days = Date_Calc::daysInMonth($m, $y); $d > $max_days; ) {
|
||||||
|
$d -= $max_days;
|
||||||
|
if ($m < 12) {
|
||||||
|
$m++;
|
||||||
|
} else {
|
||||||
|
$m = 1;
|
||||||
|
$y++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The upper limit on years that the Calendar Engine can work with
|
||||||
|
* @return int 9999
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMaxYears()
|
||||||
|
{
|
||||||
|
return 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The lower limit on years that the Calendar Engine can work with
|
||||||
|
* @return int 0
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMinYears()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of months in a year
|
||||||
|
* @return int (12)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMonthsInYear($y=null)
|
||||||
|
{
|
||||||
|
return 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of days in a month, given year and month
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @return int days in month
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDaysInMonth($y, $m)
|
||||||
|
{
|
||||||
|
return (int)Date_Calc::daysInMonth($m, $y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns numeric representation of the day of the week in a month,
|
||||||
|
* given year and month
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @return int from 0 to 7
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getFirstDayInMonth($y, $m)
|
||||||
|
{
|
||||||
|
return (int)Date_Calc::dayOfWeek(1, $m, $y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of days in a week
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int (7)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDaysInWeek($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the week in the year (ISO-8601), given a date
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int week number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekNInYear($y, $m, $d)
|
||||||
|
{
|
||||||
|
return Date_Calc::weekOfYear($d, $m, $y); //beware, Date_Calc doesn't follow ISO-8601 standard!
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the week in the month, given a date
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @param int first day of the week (default: monday)
|
||||||
|
* @return int week number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekNInMonth($y, $m, $d, $firstDay=1)
|
||||||
|
{
|
||||||
|
$weekEnd = ($firstDay == 0) ? $this->getDaysInWeek()-1 : $firstDay-1;
|
||||||
|
$end_of_week = (int)Date_Calc::nextDayOfWeek($weekEnd, 1, $m, $y, '%e', true);
|
||||||
|
$w = 1;
|
||||||
|
while ($d > $end_of_week) {
|
||||||
|
++$w;
|
||||||
|
$end_of_week += $this->getDaysInWeek();
|
||||||
|
}
|
||||||
|
return $w;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of weeks in the month
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int first day of the week (default: monday)
|
||||||
|
* @return int weeks number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeeksInMonth($y, $m, $firstDay=1)
|
||||||
|
{
|
||||||
|
$FDOM = Date_Calc::firstOfMonthWeekday($m, $y);
|
||||||
|
if ($FDOM == 0) {
|
||||||
|
$FDOM = $this->getDaysInWeek();
|
||||||
|
}
|
||||||
|
if ($FDOM > $firstDay) {
|
||||||
|
$daysInTheFirstWeek = $this->getDaysInWeek() - $FDOM + $firstDay;
|
||||||
|
$weeks = 1;
|
||||||
|
} else {
|
||||||
|
$daysInTheFirstWeek = $firstDay - $FDOM;
|
||||||
|
$weeks = 0;
|
||||||
|
}
|
||||||
|
$daysInTheFirstWeek %= $this->getDaysInWeek();
|
||||||
|
return (int)(ceil(($this->getDaysInMonth($y, $m) - $daysInTheFirstWeek) /
|
||||||
|
$this->getDaysInWeek()) + $weeks);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the day of the week (0=sunday, 1=monday...)
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int weekday number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDayOfWeek($y, $m, $d)
|
||||||
|
{
|
||||||
|
return Date_Calc::dayOfWeek($d, $m, $y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of integer days of the week beginning 0
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return array (0, 1, 2, 3, 4, 5, 6) 1 = Monday
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekDays($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
return array(0, 1, 2, 3, 4, 5, 6);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default first day of the week
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int (default 1 = Monday)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getFirstDayOfWeek($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of hours in a day
|
||||||
|
* @return int (24)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getHoursInDay($y=null,$m=null,$d=null)
|
||||||
|
{
|
||||||
|
return 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of minutes in an hour
|
||||||
|
* @return int (60)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMinutesInHour($y=null,$m=null,$d=null,$h=null)
|
||||||
|
{
|
||||||
|
return 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of seconds in a minutes
|
||||||
|
* @return int (60)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getSecondsInMinute($y=null,$m=null,$d=null,$h=null,$i=null)
|
||||||
|
{
|
||||||
|
return 60;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
365
campcaster/src/tools/pear/src/Calendar/Engine/UnixTS.php
Normal file
365
campcaster/src/tools/pear/src/Calendar/Engine/UnixTS.php
Normal file
|
@ -0,0 +1,365 @@
|
||||||
|
<?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: UnixTS.php,v 1.9 2004/08/20 20:00:55 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: UnixTS.php,v 1.9 2004/08/20 20:00:55 quipo Exp $
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Performs calendar calculations based on the PHP date() function and
|
||||||
|
* Unix timestamps (using PHP's mktime() function).
|
||||||
|
* @package Calendar
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
class Calendar_Engine_UnixTS /* implements Calendar_Engine_Interface */
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Makes sure a given timestamp is only ever parsed once
|
||||||
|
* <pre>
|
||||||
|
* array (
|
||||||
|
* [0] => year (e.g 2003),
|
||||||
|
* [1] => month (e.g 9),
|
||||||
|
* [2] => day (e.g 6),
|
||||||
|
* [3] => hour (e.g 14),
|
||||||
|
* [4] => minute (e.g 34),
|
||||||
|
* [5] => second (e.g 45),
|
||||||
|
* [6] => num days in month (e.g. 31),
|
||||||
|
* [7] => week in year (e.g. 50),
|
||||||
|
* [8] => day in week (e.g. 0 for Sunday)
|
||||||
|
* )
|
||||||
|
* </pre>
|
||||||
|
* Uses a static variable to prevent date() being used twice
|
||||||
|
* for a date which is already known
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return array
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampCollection($stamp)
|
||||||
|
{
|
||||||
|
static $stamps = array();
|
||||||
|
if ( !isset($stamps[$stamp]) ) {
|
||||||
|
$date = @date('Y n j H i s t W w',$stamp);
|
||||||
|
$stamps[$stamp] = sscanf($date, "%d %d %d %d %d %d %d %d %d");
|
||||||
|
}
|
||||||
|
return $stamps[$stamp];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric year given a timestamp
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return int year (e.g. 2003)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToYear($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return (int)$date[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric month given a timestamp
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return int month (e.g. 9)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToMonth($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return (int)$date[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric day given a timestamp
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return int day (e.g. 15)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToDay($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return (int)$date[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric hour given a timestamp
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return int hour (e.g. 13)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToHour($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return (int)$date[3];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric minute given a timestamp
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return int minute (e.g. 34)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToMinute($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return (int)$date[4];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a numeric second given a timestamp
|
||||||
|
* @param int Unix timestamp
|
||||||
|
* @return int second (e.g. 51)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function stampToSecond($stamp)
|
||||||
|
{
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return (int)$date[5];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a timestamp
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (13)
|
||||||
|
* @param int hour (13)
|
||||||
|
* @param int minute (34)
|
||||||
|
* @param int second (53)
|
||||||
|
* @return int Unix timestamp
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function dateToStamp($y, $m, $d, $h=0, $i=0, $s=0)
|
||||||
|
{
|
||||||
|
static $dates = array();
|
||||||
|
if ( !isset($dates[$y][$m][$d][$h][$i][$s]) ) {
|
||||||
|
$dates[$y][$m][$d][$h][$i][$s] = @mktime($h, $i, $s, $m, $d, $y);
|
||||||
|
}
|
||||||
|
return $dates[$y][$m][$d][$h][$i][$s];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The upper limit on years that the Calendar Engine can work with
|
||||||
|
* @return int (2037)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMaxYears()
|
||||||
|
{
|
||||||
|
return 2037;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The lower limit on years that the Calendar Engine can work with
|
||||||
|
* @return int (1970 if it's Windows and 1902 for all other OSs)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMinYears()
|
||||||
|
{
|
||||||
|
return $min = strpos(PHP_OS, 'WIN') === false ? 1902 : 1970;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of months in a year
|
||||||
|
* @return int (12)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMonthsInYear($y=null)
|
||||||
|
{
|
||||||
|
return 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of days in a month, given year and month
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @return int days in month
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDaysInMonth($y, $m)
|
||||||
|
{
|
||||||
|
$stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,1);
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return $date[6];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns numeric representation of the day of the week in a month,
|
||||||
|
* given year and month
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @return int from 0 to 6
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getFirstDayInMonth($y, $m)
|
||||||
|
{
|
||||||
|
$stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,1);
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return $date[8];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of days in a week
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int (7)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDaysInWeek($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the week in the year (ISO-8601), given a date
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int week number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekNInYear($y, $m, $d)
|
||||||
|
{
|
||||||
|
$stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,$d);
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return $date[7];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the week in the month, given a date
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @param int first day of the week (default: monday)
|
||||||
|
* @return int week number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekNInMonth($y, $m, $d, $firstDay=1)
|
||||||
|
{
|
||||||
|
$weekEnd = ($firstDay == 0) ? $this->getDaysInWeek()-1 : $firstDay-1;
|
||||||
|
$end_of_week = 1;
|
||||||
|
while (@date('w', @mktime(0, 0, 0, $m, $end_of_week, $y)) != $weekEnd) {
|
||||||
|
++$end_of_week; //find first weekend of the month
|
||||||
|
}
|
||||||
|
$w = 1;
|
||||||
|
while ($d > $end_of_week) {
|
||||||
|
++$w;
|
||||||
|
$end_of_week += $this->getDaysInWeek();
|
||||||
|
}
|
||||||
|
return $w;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of weeks in the month
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int first day of the week (default: monday)
|
||||||
|
* @return int weeks number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeeksInMonth($y, $m, $firstDay=1)
|
||||||
|
{
|
||||||
|
$FDOM = $this->getFirstDayInMonth($y, $m);
|
||||||
|
if ($FDOM == 0) {
|
||||||
|
$FDOM = $this->getDaysInWeek();
|
||||||
|
}
|
||||||
|
if ($FDOM > $firstDay) {
|
||||||
|
$daysInTheFirstWeek = $this->getDaysInWeek() - $FDOM + $firstDay;
|
||||||
|
$weeks = 1;
|
||||||
|
} else {
|
||||||
|
$daysInTheFirstWeek = $firstDay - $FDOM;
|
||||||
|
$weeks = 0;
|
||||||
|
}
|
||||||
|
$daysInTheFirstWeek %= $this->getDaysInWeek();
|
||||||
|
return (int)(ceil(($this->getDaysInMonth($y, $m) - $daysInTheFirstWeek) /
|
||||||
|
$this->getDaysInWeek()) + $weeks);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the day of the week (0=sunday, 1=monday...)
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int weekday number
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDayOfWeek($y, $m, $d)
|
||||||
|
{
|
||||||
|
$stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,$d);
|
||||||
|
$date = Calendar_Engine_UnixTS::stampCollection($stamp);
|
||||||
|
return $date[8];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of integer days of the week beginning 0
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return array (0,1,2,3,4,5,6) 1 = Monday
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getWeekDays($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
return array(0, 1, 2, 3, 4, 5, 6);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default first day of the week
|
||||||
|
* @param int year (2003)
|
||||||
|
* @param int month (9)
|
||||||
|
* @param int day (4)
|
||||||
|
* @return int (default 1 = Monday)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getFirstDayOfWeek($y=NULL, $m=NULL, $d=NULL)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of hours in a day
|
||||||
|
* @return int (24)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getHoursInDay($y=null,$m=null,$d=null)
|
||||||
|
{
|
||||||
|
return 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of minutes in an hour
|
||||||
|
* @return int (60)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getMinutesInHour($y=null,$m=null,$d=null,$h=null)
|
||||||
|
{
|
||||||
|
return 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of seconds in a minutes
|
||||||
|
* @return int (60)
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getSecondsInMinute($y=null,$m=null,$d=null,$h=null,$i=null)
|
||||||
|
{
|
||||||
|
return 60;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
145
campcaster/src/tools/pear/src/Calendar/Factory.php
Normal file
145
campcaster/src/tools/pear/src/Calendar/Factory.php
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Factory.php,v 1.3 2005/10/22 10:08:47 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Factory.php,v 1.3 2005/10/22 10:08:47 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';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains a factory method to return a Singleton instance of a class
|
||||||
|
* implementing the Calendar_Engine_Interface.<br>
|
||||||
|
* For Month objects, to control type of month returned, use CALENDAR_MONTH_STATE
|
||||||
|
* constact e.g.;
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar/Factory.php';
|
||||||
|
* define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKDAYS); // Use Calendar_Month_Weekdays
|
||||||
|
* // define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS); // Use Calendar_Month_Weeks
|
||||||
|
* // define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH); // Use Calendar_Month
|
||||||
|
* </code>
|
||||||
|
* It defaults to building Calendar_Month objects.<br>
|
||||||
|
* Use the constract CALENDAR_FIRST_DAY_OF_WEEK to control the first day of the week
|
||||||
|
* for Month or Week objects (e.g. 0 = Sunday, 6 = Saturday)
|
||||||
|
* @package Calendar
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
class Calendar_Factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Creates a calendar object given the type and units
|
||||||
|
* @param string class of calendar object to create
|
||||||
|
* @param int year
|
||||||
|
* @param int month
|
||||||
|
* @param int day
|
||||||
|
* @param int hour
|
||||||
|
* @param int minute
|
||||||
|
* @param int second
|
||||||
|
* @return object subclass of Calendar
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function create($type, $y = 2000, $m = 1, $d = 1, $h = 0, $i = 0, $s = 0)
|
||||||
|
{
|
||||||
|
$firstDay = defined('CALENDAR_FIRST_DAY_OF_WEEK') ? CALENDAR_FIRST_DAY_OF_WEEK : 1;
|
||||||
|
switch ($type) {
|
||||||
|
case 'Day':
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
return new Calendar_Day($y,$m,$d);
|
||||||
|
case 'Month':
|
||||||
|
// Set default state for which month type to build
|
||||||
|
if (!defined('CALENDAR_MONTH_STATE')) {
|
||||||
|
define('CALENDAR_MONTH_STATE', CALENDAR_USE_MONTH);
|
||||||
|
}
|
||||||
|
switch (CALENDAR_MONTH_STATE) {
|
||||||
|
case CALENDAR_USE_MONTH_WEEKDAYS:
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
$class = 'Calendar_Month_Weekdays';
|
||||||
|
break;
|
||||||
|
case CALENDAR_USE_MONTH_WEEKS:
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weeks.php';
|
||||||
|
$class = 'Calendar_Month_Weeks';
|
||||||
|
break;
|
||||||
|
case CALENDAR_USE_MONTH:
|
||||||
|
default:
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
$class = 'Calendar_Month';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return new $class($y, $m, $firstDay);
|
||||||
|
case 'Week':
|
||||||
|
require_once CALENDAR_ROOT.'Week.php';
|
||||||
|
return new Calendar_Week($y, $m, $d, $firstDay);
|
||||||
|
case 'Hour':
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
return new Calendar_Hour($y, $m, $d, $h);
|
||||||
|
case 'Minute':
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
return new Calendar_Minute($y, $m, $d, $h, $i);
|
||||||
|
case 'Second':
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
return new Calendar_Second($y,$m,$d,$h,$i,$s);
|
||||||
|
case 'Year':
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
return new Calendar_Year($y);
|
||||||
|
default:
|
||||||
|
require_once 'PEAR.php';
|
||||||
|
PEAR::raiseError(
|
||||||
|
'Calendar_Factory::create() unrecognised type: '.$type, null, PEAR_ERROR_TRIGGER,
|
||||||
|
E_USER_NOTICE, 'Calendar_Factory::create()');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Creates an instance of a calendar object, given a type and timestamp
|
||||||
|
* @param string type of object to create
|
||||||
|
* @param mixed timestamp (depending on Calendar engine being used)
|
||||||
|
* @return object subclass of Calendar
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function & createByTimestamp($type, $stamp)
|
||||||
|
{
|
||||||
|
$cE = & Calendar_Engine_Factory::getEngine();
|
||||||
|
$y = $cE->stampToYear($stamp);
|
||||||
|
$m = $cE->stampToMonth($stamp);
|
||||||
|
$d = $cE->stampToDay($stamp);
|
||||||
|
$h = $cE->stampToHour($stamp);
|
||||||
|
$i = $cE->stampToMinute($stamp);
|
||||||
|
$s = $cE->stampToSecond($stamp);
|
||||||
|
$cal = Calendar_Factory::create($type, $y, $m, $d, $h, $i, $s);
|
||||||
|
return $cal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
113
campcaster/src/tools/pear/src/Calendar/Hour.php
Normal file
113
campcaster/src/tools/pear/src/Calendar/Hour.php
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
<?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: Hour.php,v 1.1 2004/05/24 22:25:42 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Hour.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 an Hour and builds Minutes
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar'.DIRECTORY_SEPARATOR.'Hour.php';
|
||||||
|
* $Hour = & new Calendar_Hour(2003, 10, 21, 15); // Oct 21st 2003, 3pm
|
||||||
|
* $Hour->build(); // Build Calendar_Minute objects
|
||||||
|
* while ($Minute = & $Hour->fetch()) {
|
||||||
|
* echo $Minute->thisMinute().'<br />';
|
||||||
|
* }
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Hour extends Calendar
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Hour
|
||||||
|
* @param int year e.g. 2003
|
||||||
|
* @param int month e.g. 5
|
||||||
|
* @param int day e.g. 11
|
||||||
|
* @param int hour e.g. 13
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Hour($y, $m, $d, $h)
|
||||||
|
{
|
||||||
|
Calendar::Calendar($y, $m, $d, $h);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the Minutes in the Hour
|
||||||
|
* @param array (optional) Calendar_Minute objects representing selected dates
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function build($sDates=array())
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
$mIH = $this->cE->getMinutesInHour($this->year, $this->month, $this->day,
|
||||||
|
$this->hour);
|
||||||
|
for ($i=0; $i < $mIH; $i++) {
|
||||||
|
$this->children[$i]=
|
||||||
|
new Calendar_Minute($this->year, $this->month, $this->day,
|
||||||
|
$this->hour, $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()
|
||||||
|
&& $this->hour == $sDate->thisHour())
|
||||||
|
{
|
||||||
|
$key = (int)$sDate->thisMinute();
|
||||||
|
if (isset($this->children[$key])) {
|
||||||
|
$sDate->setSelected();
|
||||||
|
$this->children[$key] = $sDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
114
campcaster/src/tools/pear/src/Calendar/Minute.php
Normal file
114
campcaster/src/tools/pear/src/Calendar/Minute.php
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
<?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: Minute.php,v 1.1 2004/05/24 22:25:42 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Minute.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 Minute and builds Seconds
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar'.DIRECTORY_SEPARATOR.'Minute.php';
|
||||||
|
* $Minute = & new Calendar_Minute(2003, 10, 21, 15, 31); // Oct 21st 2003, 3:31pm
|
||||||
|
* $Minute->build(); // Build Calendar_Second objects
|
||||||
|
* while ($Second = & $Minute->fetch()) {
|
||||||
|
* echo $Second->thisSecond().'<br />';
|
||||||
|
* }
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Minute extends Calendar
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructs Minute
|
||||||
|
* @param int year e.g. 2003
|
||||||
|
* @param int month e.g. 5
|
||||||
|
* @param int day e.g. 11
|
||||||
|
* @param int hour e.g. 13
|
||||||
|
* @param int minute e.g. 31
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Minute($y, $m, $d, $h, $i)
|
||||||
|
{
|
||||||
|
Calendar::Calendar($y, $m, $d, $h, $i);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the Calendar_Second objects
|
||||||
|
* @param array (optional) Calendar_Second objects representing selected dates
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function build($sDates=array())
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
$sIM = $this->cE->getSecondsInMinute($this->year, $this->month,
|
||||||
|
$this->day, $this->hour, $this->minute);
|
||||||
|
for ($i=0; $i < $sIM; $i++) {
|
||||||
|
$this->children[$i] = new Calendar_Second($this->year, $this->month,
|
||||||
|
$this->day, $this->hour, $this->minute, $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()
|
||||||
|
&& $this->hour == $sDate->thisHour()
|
||||||
|
&& $this->minute == $sDate->thisMinute())
|
||||||
|
{
|
||||||
|
$key = (int)$sDate->thisSecond();
|
||||||
|
if (isset($this->children[$key])) {
|
||||||
|
$sDate->setSelected();
|
||||||
|
$this->children[$key] = $sDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
114
campcaster/src/tools/pear/src/Calendar/Month.php
Normal file
114
campcaster/src/tools/pear/src/Calendar/Month.php
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
<?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.3 2005/10/22 10:10:26 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Month.php,v 1.3 2005/10/22 10:10:26 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 Month and builds Days
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar/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 $y year e.g. 2003
|
||||||
|
* @param int $m month e.g. 5
|
||||||
|
* @param int $firstDay first day of the week [optional]
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Month($y, $m, $firstDay=null)
|
||||||
|
{
|
||||||
|
Calendar::Calendar($y, $m);
|
||||||
|
$this->firstDay = $this->defineFirstDayOfWeek($firstDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
189
campcaster/src/tools/pear/src/Calendar/Month/Weekdays.php
Normal file
189
campcaster/src/tools/pear/src/Calendar/Month/Weekdays.php
Normal file
|
@ -0,0 +1,189 @@
|
||||||
|
<?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: Weekdays.php,v 1.4 2005/10/22 10:28:49 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Weekdays.php,v 1.4 2005/10/22 10:28:49 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';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load base month
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Month and builds Days in tabular form<br>
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar/Month/Weekdays.php';
|
||||||
|
* $Month = & new Calendar_Month_Weekdays(2003, 10); // Oct 2003
|
||||||
|
* $Month->build(); // Build Calendar_Day objects
|
||||||
|
* while ($Day = & $Month->fetch()) {
|
||||||
|
* if ($Day->isFirst()) {
|
||||||
|
* echo '<tr>';
|
||||||
|
* }
|
||||||
|
* if ($Day->isEmpty()) {
|
||||||
|
* echo '<td> </td>';
|
||||||
|
* } else {
|
||||||
|
* echo '<td>'.$Day->thisDay().'</td>';
|
||||||
|
* }
|
||||||
|
* if ($Day->isLast()) {
|
||||||
|
* echo '</tr>';
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Month_Weekdays extends Calendar_Month
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Instance of Calendar_Table_Helper
|
||||||
|
* @var Calendar_Table_Helper
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $tableHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* First day of the week
|
||||||
|
* @access private
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
var $firstDay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Month_Weekdays
|
||||||
|
* @param int year e.g. 2003
|
||||||
|
* @param int month e.g. 5
|
||||||
|
* @param int (optional) first day of week (e.g. 0 for Sunday, 2 for Tuesday etc.)
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Month_Weekdays($y, $m, $firstDay=null)
|
||||||
|
{
|
||||||
|
Calendar_Month::Calendar_Month($y, $m, $firstDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds Day objects in tabular form, to allow display of calendar month
|
||||||
|
* with empty cells if the first day of the week does not fall on the first
|
||||||
|
* day of the month.
|
||||||
|
* @see Calendar_Day::isEmpty()
|
||||||
|
* @see Calendar_Day_Base::isFirst()
|
||||||
|
* @see Calendar_Day_Base::isLast()
|
||||||
|
* @param array (optional) Calendar_Day objects representing selected dates
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function build($sDates=array())
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT.'Table/Helper.php';
|
||||||
|
$this->tableHelper = & new Calendar_Table_Helper($this, $this->firstDay);
|
||||||
|
Calendar_Month::build($sDates);
|
||||||
|
$this->buildEmptyDaysBefore();
|
||||||
|
$this->shiftDays();
|
||||||
|
$this->buildEmptyDaysAfter();
|
||||||
|
$this->setWeekMarkers();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepends empty days before the real days in the month
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function buildEmptyDaysBefore()
|
||||||
|
{
|
||||||
|
$eBefore = $this->tableHelper->getEmptyDaysBefore();
|
||||||
|
for ($i=0; $i < $eBefore; $i++) {
|
||||||
|
$stamp = $this->cE->dateToStamp($this->year, $this->month, -$i);
|
||||||
|
$Day = new Calendar_Day(
|
||||||
|
$this->cE->stampToYear($stamp),
|
||||||
|
$this->cE->stampToMonth($stamp),
|
||||||
|
$this->cE->stampToDay($stamp));
|
||||||
|
$Day->setEmpty();
|
||||||
|
$Day->adjust();
|
||||||
|
array_unshift($this->children, $Day);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shifts the array of children forward, if necessary
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function shiftDays()
|
||||||
|
{
|
||||||
|
if (isset ($this->children[0])) {
|
||||||
|
array_unshift($this->children, null);
|
||||||
|
unset($this->children[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Appends empty days after the real days in the month
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function buildEmptyDaysAfter()
|
||||||
|
{
|
||||||
|
$eAfter = $this->tableHelper->getEmptyDaysAfter();
|
||||||
|
$sDOM = $this->tableHelper->getNumTableDaysInMonth();
|
||||||
|
for ($i = 1; $i <= $sDOM-$eAfter; $i++) {
|
||||||
|
$Day = new Calendar_Day($this->year, $this->month+1, $i);
|
||||||
|
$Day->setEmpty();
|
||||||
|
$Day->adjust();
|
||||||
|
array_push($this->children, $Day);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the "markers" for the beginning and of a of week, in the
|
||||||
|
* built Calendar_Day children
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function setWeekMarkers()
|
||||||
|
{
|
||||||
|
$dIW = $this->cE->getDaysInWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()
|
||||||
|
);
|
||||||
|
$sDOM = $this->tableHelper->getNumTableDaysInMonth();
|
||||||
|
for ($i=1; $i <= $sDOM; $i+= $dIW) {
|
||||||
|
$this->children[$i]->setFirst();
|
||||||
|
$this->children[$i+($dIW-1)]->setLast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
139
campcaster/src/tools/pear/src/Calendar/Month/Weeks.php
Normal file
139
campcaster/src/tools/pear/src/Calendar/Month/Weeks.php
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Weeks.php,v 1.3 2005/10/22 10:28:49 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Weeks.php,v 1.3 2005/10/22 10:28:49 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';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load base month
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Month and builds Weeks
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar'.DIRECTORY_SEPARATOR.'Month'.DIRECTORY_SEPARATOR.'Weeks.php';
|
||||||
|
* $Month = & new Calendar_Month_Weeks(2003, 10); // Oct 2003
|
||||||
|
* $Month->build(); // Build Calendar_Day objects
|
||||||
|
* while ($Week = & $Month->fetch()) {
|
||||||
|
* echo $Week->thisWeek().'<br />';
|
||||||
|
* }
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Month_Weeks extends Calendar_Month
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Instance of Calendar_Table_Helper
|
||||||
|
* @var Calendar_Table_Helper
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $tableHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* First day of the week
|
||||||
|
* @access private
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
var $firstDay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Month_Weeks
|
||||||
|
* @param int year e.g. 2003
|
||||||
|
* @param int month e.g. 5
|
||||||
|
* @param int (optional) first day of week (e.g. 0 for Sunday, 2 for Tuesday etc.)
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Month_Weeks($y, $m, $firstDay=null)
|
||||||
|
{
|
||||||
|
Calendar_Month::Calendar_Month($y, $m, $firstDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds Calendar_Week objects for the Month. Note that Calendar_Week
|
||||||
|
* builds Calendar_Day object in tabular form (with Calendar_Day->empty)
|
||||||
|
* @param array (optional) Calendar_Week objects representing selected dates
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function build($sDates=array())
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT.'Table/Helper.php';
|
||||||
|
$this->tableHelper = & new Calendar_Table_Helper($this, $this->firstDay);
|
||||||
|
require_once CALENDAR_ROOT.'Week.php';
|
||||||
|
$numWeeks = $this->tableHelper->getNumWeeks();
|
||||||
|
for ($i=1, $d=1; $i<=$numWeeks; $i++,
|
||||||
|
$d+=$this->cE->getDaysInWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()) ) {
|
||||||
|
$this->children[$i] = new Calendar_Week(
|
||||||
|
$this->year, $this->month, $d, $this->tableHelper->getFirstDay());
|
||||||
|
}
|
||||||
|
//used to set empty days
|
||||||
|
$this->children[1]->setFirst(true);
|
||||||
|
$this->children[$numWeeks]->setLast(true);
|
||||||
|
|
||||||
|
// Handle selected weeks here
|
||||||
|
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->thisWeek('n_in_month');
|
||||||
|
if (isset($this->children[$key])) {
|
||||||
|
$this->children[$key]->setSelected();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
98
campcaster/src/tools/pear/src/Calendar/Second.php
Normal file
98
campcaster/src/tools/pear/src/Calendar/Second.php
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
<?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: Second.php,v 1.1 2004/05/24 22:25:42 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Second.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 Second<br />
|
||||||
|
* <b>Note:</b> Seconds do not build other objects
|
||||||
|
* so related methods are overridden to return NULL
|
||||||
|
* @package Calendar
|
||||||
|
*/
|
||||||
|
class Calendar_Second extends Calendar
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructs Second
|
||||||
|
* @param int year e.g. 2003
|
||||||
|
* @param int month e.g. 5
|
||||||
|
* @param int day e.g. 11
|
||||||
|
* @param int hour e.g. 13
|
||||||
|
* @param int minute e.g. 31
|
||||||
|
* @param int second e.g. 45
|
||||||
|
*/
|
||||||
|
function Calendar_Second($y, $m, $d, $h, $i, $s)
|
||||||
|
{
|
||||||
|
Calendar::Calendar($y, $m, $d, $h, $i, $s);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overwrite build
|
||||||
|
* @return NULL
|
||||||
|
*/
|
||||||
|
function build()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overwrite fetch
|
||||||
|
* @return NULL
|
||||||
|
*/
|
||||||
|
function fetch()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overwrite fetchAll
|
||||||
|
* @return NULL
|
||||||
|
*/
|
||||||
|
function fetchAll()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overwrite size
|
||||||
|
* @return NULL
|
||||||
|
*/
|
||||||
|
function size()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
280
campcaster/src/tools/pear/src/Calendar/Table/Helper.php
Normal file
280
campcaster/src/tools/pear/src/Calendar/Table/Helper.php
Normal file
|
@ -0,0 +1,280 @@
|
||||||
|
<?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: Helper.php,v 1.5 2005/10/22 09:51:53 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Helper.php,v 1.5 2005/10/22 09:51:53 quipo Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used by Calendar_Month_Weekdays, Calendar_Month_Weeks and Calendar_Week to
|
||||||
|
* help with building the calendar in tabular form
|
||||||
|
* @package Calendar
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
class Calendar_Table_Helper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Instance of the Calendar object being helped.
|
||||||
|
* @var object
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $calendar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instance of the Calendar_Engine
|
||||||
|
* @var object
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $cE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* First day of the week
|
||||||
|
* @access private
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
var $firstDay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The seven days of the week named
|
||||||
|
* @access private
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
var $weekDays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Days of the week ordered with $firstDay at the beginning
|
||||||
|
* @access private
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
var $daysOfWeek = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Days of the month built from days of the week
|
||||||
|
* @access private
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
var $daysOfMonth = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of weeks in month
|
||||||
|
* @var int
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $numWeeks = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of emtpy days before real days begin in month
|
||||||
|
* @var int
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $emptyBefore = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Table_Helper
|
||||||
|
* @param object Calendar_Month_Weekdays, Calendar_Month_Weeks, Calendar_Week
|
||||||
|
* @param int (optional) first day of the week e.g. 1 for Monday
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function Calendar_Table_Helper(& $calendar, $firstDay=null)
|
||||||
|
{
|
||||||
|
$this->calendar = & $calendar;
|
||||||
|
$this->cE = & $calendar->getEngine();
|
||||||
|
if (is_null($firstDay)) {
|
||||||
|
$firstDay = $this->cE->getFirstDayOfWeek(
|
||||||
|
$this->calendar->thisYear(),
|
||||||
|
$this->calendar->thisMonth(),
|
||||||
|
$this->calendar->thisDay()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$this->firstDay = $firstDay;
|
||||||
|
$this->setFirstDay();
|
||||||
|
$this->setDaysOfMonth();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs $this->daysOfWeek based on $this->firstDay
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function setFirstDay()
|
||||||
|
{
|
||||||
|
$weekDays = $this->cE->getWeekDays(
|
||||||
|
$this->calendar->thisYear(),
|
||||||
|
$this->calendar->thisMonth(),
|
||||||
|
$this->calendar->thisDay()
|
||||||
|
);
|
||||||
|
$endDays = array();
|
||||||
|
$tmpDays = array();
|
||||||
|
$begin = false;
|
||||||
|
foreach ($weekDays as $day) {
|
||||||
|
if ($begin) {
|
||||||
|
$endDays[] = $day;
|
||||||
|
} else if ($day === $this->firstDay) {
|
||||||
|
$begin = true;
|
||||||
|
$endDays[] = $day;
|
||||||
|
} else {
|
||||||
|
$tmpDays[] = $day;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->daysOfWeek = array_merge($endDays, $tmpDays);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs $this->daysOfMonth
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function setDaysOfMonth()
|
||||||
|
{
|
||||||
|
$this->daysOfMonth = $this->daysOfWeek;
|
||||||
|
$daysInMonth = $this->cE->getDaysInMonth(
|
||||||
|
$this->calendar->thisYear(), $this->calendar->thisMonth());
|
||||||
|
$firstDayInMonth = $this->cE->getFirstDayInMonth(
|
||||||
|
$this->calendar->thisYear(), $this->calendar->thisMonth());
|
||||||
|
$this->emptyBefore=0;
|
||||||
|
foreach ($this->daysOfMonth as $dayOfWeek) {
|
||||||
|
if ($firstDayInMonth == $dayOfWeek) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$this->emptyBefore++;
|
||||||
|
}
|
||||||
|
$this->numWeeks = ceil(
|
||||||
|
($daysInMonth + $this->emptyBefore)
|
||||||
|
/
|
||||||
|
$this->cE->getDaysInWeek(
|
||||||
|
$this->calendar->thisYear(),
|
||||||
|
$this->calendar->thisMonth(),
|
||||||
|
$this->calendar->thisDay()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
for ($i=1; $i < $this->numWeeks; $i++) {
|
||||||
|
$this->daysOfMonth =
|
||||||
|
array_merge($this->daysOfMonth, $this->daysOfWeek);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the first day of the month
|
||||||
|
* @see Calendar_Engine_Interface::getFirstDayOfWeek()
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getFirstDay()
|
||||||
|
{
|
||||||
|
return $this->firstDay;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the order array of days in a week
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getDaysOfWeek()
|
||||||
|
{
|
||||||
|
return $this->daysOfWeek;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of tabular weeks in a month
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getNumWeeks()
|
||||||
|
{
|
||||||
|
return $this->numWeeks;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of real days + empty days
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getNumTableDaysInMonth()
|
||||||
|
{
|
||||||
|
return count($this->daysOfMonth);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of empty days before the real days begin
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getEmptyDaysBefore()
|
||||||
|
{
|
||||||
|
return $this->emptyBefore;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the index of the last real day in the month
|
||||||
|
* @todo Potential performance optimization with static
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getEmptyDaysAfter()
|
||||||
|
{
|
||||||
|
// Causes bug when displaying more than one month
|
||||||
|
// static $index;
|
||||||
|
// if (!isset($index)) {
|
||||||
|
$index = $this->getEmptyDaysBefore() + $this->cE->getDaysInMonth(
|
||||||
|
$this->calendar->thisYear(), $this->calendar->thisMonth());
|
||||||
|
// }
|
||||||
|
return $index;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the index of the last real day in the month, relative to the
|
||||||
|
* beginning of the tabular week it is part of
|
||||||
|
* @return int
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function getEmptyDaysAfterOffset()
|
||||||
|
{
|
||||||
|
$eAfter = $this->getEmptyDaysAfter();
|
||||||
|
return $eAfter - (
|
||||||
|
$this->cE->getDaysInWeek(
|
||||||
|
$this->calendar->thisYear(),
|
||||||
|
$this->calendar->thisMonth(),
|
||||||
|
$this->calendar->thisDay()
|
||||||
|
) * ($this->numWeeks-1) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the timestamp of the first day of the current week
|
||||||
|
*/
|
||||||
|
function getWeekStart($y, $m, $d, $firstDay=1)
|
||||||
|
{
|
||||||
|
$dow = $this->cE->getDayOfWeek($y, $m, $d);
|
||||||
|
if ($dow > $firstDay) {
|
||||||
|
$d -= ($dow - $firstDay);
|
||||||
|
}
|
||||||
|
if ($dow < $firstDay) {
|
||||||
|
$d -= (
|
||||||
|
$this->cE->getDaysInWeek(
|
||||||
|
$this->calendar->thisYear(),
|
||||||
|
$this->calendar->thisMonth(),
|
||||||
|
$this->calendar->thisDay()
|
||||||
|
) - $firstDay + $dow);
|
||||||
|
}
|
||||||
|
return $this->cE->dateToStamp($y, $m, $d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
239
campcaster/src/tools/pear/src/Calendar/Util/Textual.php
Normal file
239
campcaster/src/tools/pear/src/Calendar/Util/Textual.php
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Textual.php,v 1.2 2004/08/16 13:13:09 hfuecks Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Textual.php,v 1.2 2004/08/16 13:13:09 hfuecks Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows Calendar include path to be redefined
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_ROOT')) {
|
||||||
|
define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load Calendar decorator base class
|
||||||
|
*/
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static utlities to help with fetching textual representations of months and
|
||||||
|
* days of the week.
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Util_Textual
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of 12 month names (first index = 1)
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function monthNames($format='long')
|
||||||
|
{
|
||||||
|
$formats = array('one'=>'%b', 'two'=>'%b', 'short'=>'%b', 'long'=>'%B');
|
||||||
|
if (!array_key_exists($format,$formats)) {
|
||||||
|
$format = 'long';
|
||||||
|
}
|
||||||
|
$months = array();
|
||||||
|
for ($i=1; $i<=12; $i++) {
|
||||||
|
$stamp = mktime(0, 0, 0, $i, 1, 2003);
|
||||||
|
$month = strftime($formats[$format], $stamp);
|
||||||
|
switch($format) {
|
||||||
|
case 'one':
|
||||||
|
$month = substr($month, 0, 1);
|
||||||
|
break;
|
||||||
|
case 'two':
|
||||||
|
$month = substr($month, 0, 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$months[$i] = $month;
|
||||||
|
}
|
||||||
|
return $months;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of 7 week day names (first index = 0)
|
||||||
|
* @param string (optional) format of returned days (one,two,short or long)
|
||||||
|
* @return array
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function weekdayNames($format='long')
|
||||||
|
{
|
||||||
|
$formats = array('one'=>'%a', 'two'=>'%a', 'short'=>'%a', 'long'=>'%A');
|
||||||
|
if (!array_key_exists($format,$formats)) {
|
||||||
|
$format = 'long';
|
||||||
|
}
|
||||||
|
$days = array();
|
||||||
|
for ($i=0; $i<=6; $i++) {
|
||||||
|
$stamp = mktime(0, 0, 0, 11, $i+2, 2003);
|
||||||
|
$day = strftime($formats[$format], $stamp);
|
||||||
|
switch($format) {
|
||||||
|
case 'one':
|
||||||
|
$day = substr($day, 0, 1);
|
||||||
|
break;
|
||||||
|
case 'two':
|
||||||
|
$day = substr($day, 0, 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$days[$i] = $day;
|
||||||
|
}
|
||||||
|
return $days;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the previous month of the decorated calendar object
|
||||||
|
* @param object subclass of Calendar e.g. Calendar_Month
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function prevMonthName($Calendar, $format='long')
|
||||||
|
{
|
||||||
|
$months = Calendar_Util_Textual::monthNames($format);
|
||||||
|
return $months[$Calendar->prevMonth()];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the month of the decorated calendar object
|
||||||
|
* @param object subclass of Calendar e.g. Calendar_Month
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function thisMonthName($Calendar, $format='long')
|
||||||
|
{
|
||||||
|
$months = Calendar_Util_Textual::monthNames($format);
|
||||||
|
return $months[$Calendar->thisMonth()];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the next month of the decorated calendar object
|
||||||
|
* @param object subclass of Calendar e.g. Calendar_Month
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function nextMonthName($Calendar, $format='long')
|
||||||
|
{
|
||||||
|
$months = Calendar_Util_Textual::monthNames($format);
|
||||||
|
return $months[$Calendar->nextMonth()];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the previous day of week of the decorated calendar object
|
||||||
|
* <b>Note:</b> Requires PEAR::Date
|
||||||
|
* @param object subclass of Calendar e.g. Calendar_Month
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function prevDayName($Calendar, $format='long')
|
||||||
|
{
|
||||||
|
$days = Calendar_Util_Textual::weekdayNames($format);
|
||||||
|
$stamp = $Calendar->prevDay('timestamp');
|
||||||
|
$cE = $Calendar->getEngine();
|
||||||
|
require_once 'Date/Calc.php';
|
||||||
|
$day = Date_Calc::dayOfWeek($cE->stampToDay($stamp),
|
||||||
|
$cE->stampToMonth($stamp), $cE->stampToYear($stamp));
|
||||||
|
return $days[$day];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the day of week of the decorated calendar object
|
||||||
|
* <b>Note:</b> Requires PEAR::Date
|
||||||
|
* @param object subclass of Calendar e.g. Calendar_Month
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function thisDayName($Calendar, $format='long')
|
||||||
|
{
|
||||||
|
$days = Calendar_Util_Textual::weekdayNames($format);
|
||||||
|
require_once 'Date/Calc.php';
|
||||||
|
$day = Date_Calc::dayOfWeek($Calendar->thisDay(), $Calendar->thisMonth(), $Calendar->thisYear());
|
||||||
|
return $days[$day];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns textual representation of the next day of week of the decorated calendar object
|
||||||
|
* @param object subclass of Calendar e.g. Calendar_Month
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function nextDayName($Calendar, $format='long')
|
||||||
|
{
|
||||||
|
$days = Calendar_Util_Textual::weekdayNames($format);
|
||||||
|
$stamp = $Calendar->nextDay('timestamp');
|
||||||
|
$cE = $Calendar->getEngine();
|
||||||
|
require_once 'Date/Calc.php';
|
||||||
|
$day = Date_Calc::dayOfWeek($cE->stampToDay($stamp),
|
||||||
|
$cE->stampToMonth($stamp), $cE->stampToYear($stamp));
|
||||||
|
return $days[$day];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the days of the week using the order defined in the decorated
|
||||||
|
* calendar object. Only useful for Calendar_Month_Weekdays, Calendar_Month_Weeks
|
||||||
|
* and Calendar_Week. Otherwise the returned array will begin on Sunday
|
||||||
|
* @param object subclass of Calendar e.g. Calendar_Month
|
||||||
|
* @param string (optional) format of returned months (one,two,short or long)
|
||||||
|
* @return array ordered array of week day names
|
||||||
|
* @access public
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
function orderedWeekdays($Calendar, $format='long')
|
||||||
|
{
|
||||||
|
$days = Calendar_Util_Textual::weekdayNames($format);
|
||||||
|
|
||||||
|
// Not so good - need methods to access this information perhaps...
|
||||||
|
if (isset($Calendar->tableHelper)) {
|
||||||
|
$ordereddays = $Calendar->tableHelper->daysOfWeek;
|
||||||
|
} else {
|
||||||
|
$ordereddays = array(0, 1, 2, 3, 4, 5, 6);
|
||||||
|
}
|
||||||
|
|
||||||
|
$ordereddays = array_flip($ordereddays);
|
||||||
|
$i = 0;
|
||||||
|
$returndays = array();
|
||||||
|
foreach ($ordereddays as $key => $value) {
|
||||||
|
$returndays[$i] = $days[$key];
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
return $returndays;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
169
campcaster/src/tools/pear/src/Calendar/Util/Uri.php
Normal file
169
campcaster/src/tools/pear/src/Calendar/Util/Uri.php
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
<?php
|
||||||
|
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||||
|
//
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
// | PHP |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
// | 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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Uri.php,v 1.1 2004/08/16 09:03:55 hfuecks Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Uri.php,v 1.1 2004/08/16 09:03:55 hfuecks Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility to help building HTML links for navigating the calendar<br />
|
||||||
|
* <code>
|
||||||
|
* $Day = new Calendar_Day(2003, 10, 23);
|
||||||
|
* $Uri = & new Calendar_Util_Uri('year', 'month', 'day');
|
||||||
|
* echo $Uri->prev($Day,'month'); // Displays year=2003&month=10
|
||||||
|
* echo $Uri->prev($Day,'day'); // Displays year=2003&month=10&day=22
|
||||||
|
* $Uri->seperator = '/';
|
||||||
|
* $Uri->scalar = true;
|
||||||
|
* echo $Uri->prev($Day,'month'); // Displays 2003/10
|
||||||
|
* echo $Uri->prev($Day,'day'); // Displays 2003/10/22
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Util_Uri
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Uri fragments for year, month, day etc.
|
||||||
|
* @var array
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $uris = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* String to separate fragments with.
|
||||||
|
* Set to just & for HTML.
|
||||||
|
* For a scalar URL you might use / as the seperator
|
||||||
|
* @var string (default XHTML &)
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
var $separator = '&';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To output a "scalar" string - variable names omitted.
|
||||||
|
* Used for urls like index.php/2004/8/12
|
||||||
|
* @var boolean (default false)
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
var $scalar = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Decorator_Uri
|
||||||
|
* The term "fragment" means <i>name</i> of a calendar GET variables in the URL
|
||||||
|
* @param string URI fragment for year
|
||||||
|
* @param string (optional) URI fragment for month
|
||||||
|
* @param string (optional) URI fragment for day
|
||||||
|
* @param string (optional) URI fragment for hour
|
||||||
|
* @param string (optional) URI fragment for minute
|
||||||
|
* @param string (optional) URI fragment for second
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Util_Uri($y, $m=null, $d=null, $h=null, $i=null, $s=null)
|
||||||
|
{
|
||||||
|
$this->setFragments($y, $m, $d, $h, $i, $s);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the URI fragment names
|
||||||
|
* @param string URI fragment for year
|
||||||
|
* @param string (optional) URI fragment for month
|
||||||
|
* @param string (optional) URI fragment for day
|
||||||
|
* @param string (optional) URI fragment for hour
|
||||||
|
* @param string (optional) URI fragment for minute
|
||||||
|
* @param string (optional) URI fragment for second
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setFragments($y, $m=null, $d=null, $h=null, $i=null, $s=null) {
|
||||||
|
if (!is_null($y)) $this->uris['Year'] = $y;
|
||||||
|
if (!is_null($m)) $this->uris['Month'] = $m;
|
||||||
|
if (!is_null($d)) $this->uris['Day'] = $d;
|
||||||
|
if (!is_null($h)) $this->uris['Hour'] = $h;
|
||||||
|
if (!is_null($i)) $this->uris['Minute'] = $i;
|
||||||
|
if (!is_null($s)) $this->uris['Second'] = $s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the URI string for the previous calendar unit
|
||||||
|
* @param object subclassed from Calendar e.g. Calendar_Month
|
||||||
|
* @param string calendar unit ( must be year, month, week, day, hour, minute or second)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prev($Calendar, $unit)
|
||||||
|
{
|
||||||
|
$method = 'prev'.$unit;
|
||||||
|
$stamp = $Calendar->{$method}('timestamp');
|
||||||
|
return $this->buildUriString($Calendar, $method, $stamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the URI string for the current calendar unit
|
||||||
|
* @param object subclassed from Calendar e.g. Calendar_Month
|
||||||
|
* @param string calendar unit ( must be year, month, week, day, hour, minute or second)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function this($Calendar, $unit)
|
||||||
|
{
|
||||||
|
$method = 'this'.$unit;
|
||||||
|
$stamp = $Calendar->{$method}('timestamp');
|
||||||
|
return $this->buildUriString($Calendar, $method, $stamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the URI string for the next calendar unit
|
||||||
|
* @param object subclassed from Calendar e.g. Calendar_Month
|
||||||
|
* @param string calendar unit ( must be year, month, week, day, hour, minute or second)
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function next($Calendar, $unit)
|
||||||
|
{
|
||||||
|
$method = 'next'.$unit;
|
||||||
|
$stamp = $Calendar->{$method}('timestamp');
|
||||||
|
return $this->buildUriString($Calendar, $method, $stamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build the URI string
|
||||||
|
* @param string method substring
|
||||||
|
* @param int timestamp
|
||||||
|
* @return string build uri string
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function buildUriString($Calendar, $method, $stamp)
|
||||||
|
{
|
||||||
|
$uriString = '';
|
||||||
|
$cE = & $Calendar->getEngine();
|
||||||
|
$separator = '';
|
||||||
|
foreach ($this->uris as $unit => $uri) {
|
||||||
|
$call = 'stampTo'.$unit;
|
||||||
|
$uriString .= $separator;
|
||||||
|
if (!$this->scalar) $uriString .= $uri.'=';
|
||||||
|
$uriString .= $cE->{$call}($stamp);
|
||||||
|
$separator = $this->separator;
|
||||||
|
}
|
||||||
|
return $uriString;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
335
campcaster/src/tools/pear/src/Calendar/Validator.php
Normal file
335
campcaster/src/tools/pear/src/Calendar/Validator.php
Normal file
|
@ -0,0 +1,335 @@
|
||||||
|
<?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: Validator.php,v 1.1 2004/05/24 22:25:42 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Validator.php,v 1.1 2004/05/24 22:25:42 quipo Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validation Error Messages
|
||||||
|
*/
|
||||||
|
if (!defined('CALENDAR_VALUE_TOOSMALL')) {
|
||||||
|
define('CALENDAR_VALUE_TOOSMALL', 'Too small: min = ');
|
||||||
|
}
|
||||||
|
if (!defined('CALENDAR_VALUE_TOOLARGE')) {
|
||||||
|
define('CALENDAR_VALUE_TOOLARGE', 'Too large: max = ');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to validate any given Calendar date object. Instances of this class
|
||||||
|
* can be obtained from any data object using the getValidator method
|
||||||
|
* @see Calendar::getValidator()
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Validator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Instance of the Calendar date object to validate
|
||||||
|
* @var object
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $calendar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instance of the Calendar_Engine
|
||||||
|
* @var object
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $cE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Array of errors for validation failures
|
||||||
|
* @var array
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $errors = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Validator
|
||||||
|
* @param object subclass of Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Validator(& $calendar)
|
||||||
|
{
|
||||||
|
$this->calendar = & $calendar;
|
||||||
|
$this->cE = & $calendar->getEngine();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calls all the other isValidXXX() methods in the validator
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValid()
|
||||||
|
{
|
||||||
|
$checks = array('isValidYear', 'isValidMonth', 'isValidDay',
|
||||||
|
'isValidHour', 'isValidMinute', 'isValidSecond');
|
||||||
|
$valid = true;
|
||||||
|
foreach ($checks as $check) {
|
||||||
|
if (!$this->{$check}()) {
|
||||||
|
$valid = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether this is a valid year
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValidYear()
|
||||||
|
{
|
||||||
|
$y = $this->calendar->thisYear();
|
||||||
|
$min = $this->cE->getMinYears();
|
||||||
|
if ($min > $y) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Year', $y, CALENDAR_VALUE_TOOSMALL.$min);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$max = $this->cE->getMaxYears();
|
||||||
|
if ($y > $max) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Year', $y, CALENDAR_VALUE_TOOLARGE.$max);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether this is a valid month
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValidMonth()
|
||||||
|
{
|
||||||
|
$m = $this->calendar->thisMonth();
|
||||||
|
$min = 1;
|
||||||
|
if ($min > $m) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Month', $m, CALENDAR_VALUE_TOOSMALL.$min);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$max = $this->cE->getMonthsInYear($this->calendar->thisYear());
|
||||||
|
if ($m > $max) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Month', $m, CALENDAR_VALUE_TOOLARGE.$max);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether this is a valid day
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValidDay()
|
||||||
|
{
|
||||||
|
$d = $this->calendar->thisDay();
|
||||||
|
$min = 1;
|
||||||
|
if ($min > $d) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Day', $d, CALENDAR_VALUE_TOOSMALL.$min);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$max = $this->cE->getDaysInMonth(
|
||||||
|
$this->calendar->thisYear(), $this->calendar->thisMonth());
|
||||||
|
if ($d > $max) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Day', $d, CALENDAR_VALUE_TOOLARGE.$max);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether this is a valid hour
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValidHour()
|
||||||
|
{
|
||||||
|
$h = $this->calendar->thisHour();
|
||||||
|
$min = 0;
|
||||||
|
if ($min > $h) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Hour', $h, CALENDAR_VALUE_TOOSMALL.$min);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$max = ($this->cE->getHoursInDay($this->calendar->thisDay())-1);
|
||||||
|
if ($h > $max) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Hour', $h, CALENDAR_VALUE_TOOLARGE.$max);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether this is a valid minute
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValidMinute()
|
||||||
|
{
|
||||||
|
$i = $this->calendar->thisMinute();
|
||||||
|
$min = 0;
|
||||||
|
if ($min > $i) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Minute', $i, CALENDAR_VALUE_TOOSMALL.$min);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$max = ($this->cE->getMinutesInHour($this->calendar->thisHour())-1);
|
||||||
|
if ($i > $max) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Minute', $i, CALENDAR_VALUE_TOOLARGE.$max);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether this is a valid second
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function isValidSecond()
|
||||||
|
{
|
||||||
|
$s = $this->calendar->thisSecond();
|
||||||
|
$min = 0;
|
||||||
|
if ($min > $s) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Second', $s, CALENDAR_VALUE_TOOSMALL.$min);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$max = ($this->cE->getSecondsInMinute($this->calendar->thisMinute())-1);
|
||||||
|
if ($s > $max) {
|
||||||
|
$this->errors[] = new Calendar_Validation_Error(
|
||||||
|
'Second', $s, CALENDAR_VALUE_TOOLARGE.$max);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterates over any validation errors
|
||||||
|
* @return mixed either Calendar_Validation_Error or false
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function fetch()
|
||||||
|
{
|
||||||
|
$error = each ($this->errors);
|
||||||
|
if ($error) {
|
||||||
|
return $error['value'];
|
||||||
|
} else {
|
||||||
|
reset($this->errors);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For Validation Error messages
|
||||||
|
* @see Calendar::fetch()
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Validation_Error
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Date unit (e.g. month,hour,second) which failed test
|
||||||
|
* @var string
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Value of unit which failed test
|
||||||
|
* @var int
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validation error message
|
||||||
|
* @var string
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Validation_Error
|
||||||
|
* @param string Date unit (e.g. month,hour,second)
|
||||||
|
* @param int Value of unit which failed test
|
||||||
|
* @param string Validation error message
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function Calendar_Validation_Error($unit,$value,$message)
|
||||||
|
{
|
||||||
|
$this->unit = $unit;
|
||||||
|
$this->value = $value;
|
||||||
|
$this->message = $message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the Date unit
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function getUnit()
|
||||||
|
{
|
||||||
|
return $this->unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of the unit
|
||||||
|
* @return int
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function getValue()
|
||||||
|
{
|
||||||
|
return $this->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the validation error message
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function getMessage()
|
||||||
|
{
|
||||||
|
return $this->message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a string containing the unit, value and error message
|
||||||
|
* @return string
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function toString ()
|
||||||
|
{
|
||||||
|
return $this->unit.' = '.$this->value.' ['.$this->message.']';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
394
campcaster/src/tools/pear/src/Calendar/Week.php
Normal file
394
campcaster/src/tools/pear/src/Calendar/Week.php
Normal file
|
@ -0,0 +1,394 @@
|
||||||
|
<?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> |
|
||||||
|
// | Lorenzo Alberton <l dot alberton at quipo dot it> |
|
||||||
|
// +----------------------------------------------------------------------+
|
||||||
|
//
|
||||||
|
// $Id: Week.php,v 1.7 2005/10/22 10:26:49 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Week.php,v 1.7 2005/10/22 10:26:49 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 Week and builds Days in tabular format<br>
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar'.DIRECTORY_SEPARATOR.'Week.php';
|
||||||
|
* $Week = & new Calendar_Week(2003, 10, 1); Oct 2003, 1st tabular week
|
||||||
|
* echo '<tr>';
|
||||||
|
* while ($Day = & $Week->fetch()) {
|
||||||
|
* if ($Day->isEmpty()) {
|
||||||
|
* echo '<td> </td>';
|
||||||
|
* } else {
|
||||||
|
* echo '<td>'.$Day->thisDay().'</td>';
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* echo '</tr>';
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Week extends Calendar
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Instance of Calendar_Table_Helper
|
||||||
|
* @var Calendar_Table_Helper
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
var $tableHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores the timestamp of the first day of this week
|
||||||
|
* @access private
|
||||||
|
* @var object
|
||||||
|
*/
|
||||||
|
var $thisWeek;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores the timestamp of first day of previous week
|
||||||
|
* @access private
|
||||||
|
* @var object
|
||||||
|
*/
|
||||||
|
var $prevWeek;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores the timestamp of first day of next week
|
||||||
|
* @access private
|
||||||
|
* @var object
|
||||||
|
*/
|
||||||
|
var $nextWeek;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used by build() to set empty days
|
||||||
|
* @access private
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
var $firstWeek = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used by build() to set empty days
|
||||||
|
* @access private
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
var $lastWeek = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* First day of the week (0=sunday, 1=monday...)
|
||||||
|
* @access private
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
var $firstDay = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs Week
|
||||||
|
* @param int year e.g. 2003
|
||||||
|
* @param int month e.g. 5
|
||||||
|
* @param int a day of the desired week
|
||||||
|
* @param int (optional) first day of week (e.g. 0 for Sunday, 2 for Tuesday etc.)
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Week($y, $m, $d, $firstDay=null)
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT.'Table/Helper.php';
|
||||||
|
Calendar::Calendar($y, $m, $d);
|
||||||
|
$this->firstDay = $this->defineFirstDayOfWeek($firstDay);
|
||||||
|
$this->tableHelper = & new Calendar_Table_Helper($this, $this->firstDay);
|
||||||
|
$this->thisWeek = $this->tableHelper->getWeekStart($y, $m, $d, $this->firstDay);
|
||||||
|
$this->prevWeek = $this->tableHelper->getWeekStart($y, $m, $d - $this->cE->getDaysInWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()), $this->firstDay);
|
||||||
|
$this->nextWeek = $this->tableHelper->getWeekStart($y, $m, $d + $this->cE->getDaysInWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()), $this->firstDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the calendar by a timestamp (Unix or ISO-8601), replacing values
|
||||||
|
* passed to the constructor
|
||||||
|
* @param int|string Unix or ISO-8601 timestamp
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function setTimestamp($ts)
|
||||||
|
{
|
||||||
|
parent::setTimestamp($ts);
|
||||||
|
$this->thisWeek = $this->tableHelper->getWeekStart(
|
||||||
|
$this->year, $this->month, $this->day, $this->firstDay
|
||||||
|
);
|
||||||
|
$this->prevWeek = $this->tableHelper->getWeekStart(
|
||||||
|
$this->year, $this->month, $this->day - $this->cE->getDaysInWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()), $this->firstDay
|
||||||
|
);
|
||||||
|
$this->nextWeek = $this->tableHelper->getWeekStart(
|
||||||
|
$this->year, $this->month, $this->day + $this->cE->getDaysInWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()), $this->firstDay
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds Calendar_Day objects for this Week
|
||||||
|
* @param array (optional) Calendar_Day objects representing selected dates
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function build($sDates = array())
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
$year = $this->cE->stampToYear($this->thisWeek);
|
||||||
|
$month = $this->cE->stampToMonth($this->thisWeek);
|
||||||
|
$day = $this->cE->stampToDay($this->thisWeek);
|
||||||
|
$end = $this->cE->getDaysInWeek(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay()
|
||||||
|
);
|
||||||
|
|
||||||
|
for ($i=1; $i <= $end; $i++) {
|
||||||
|
$stamp = $this->cE->dateToStamp($year, $month, $day++);
|
||||||
|
$this->children[$i] = new Calendar_Day(
|
||||||
|
$this->cE->stampToYear($stamp),
|
||||||
|
$this->cE->stampToMonth($stamp),
|
||||||
|
$this->cE->stampToDay($stamp));
|
||||||
|
}
|
||||||
|
|
||||||
|
//set empty days (@see Calendar_Month_Weeks::build())
|
||||||
|
if ($this->firstWeek) {
|
||||||
|
$eBefore = $this->tableHelper->getEmptyDaysBefore();
|
||||||
|
for ($i=1; $i <= $eBefore; $i++) {
|
||||||
|
$this->children[$i]->setEmpty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($this->lastWeek) {
|
||||||
|
$eAfter = $this->tableHelper->getEmptyDaysAfterOffset();
|
||||||
|
for ($i = $eAfter+1; $i <= $end; $i++) {
|
||||||
|
$this->children[$i]->setEmpty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($sDates) > 0) {
|
||||||
|
$this->setSelection($sDates);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param boolean
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function setFirst($state=true)
|
||||||
|
{
|
||||||
|
$this->firstWeek = $state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param boolean
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function setLast($state=true)
|
||||||
|
{
|
||||||
|
$this->lastWeek = $state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called from build()
|
||||||
|
* @param array
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function setSelection($sDates)
|
||||||
|
{
|
||||||
|
foreach ($sDates as $sDate) {
|
||||||
|
foreach ($this->children as $key => $child) {
|
||||||
|
if ($child->thisDay() == $sDate->thisDay() &&
|
||||||
|
$child->thisMonth() == $sDate->thisMonth() &&
|
||||||
|
$child->thisYear() == $sDate->thisYear()
|
||||||
|
) {
|
||||||
|
$this->children[$key] = $sDate;
|
||||||
|
$this->children[$key]->setSelected();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reset($this->children);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the previous week, according to the requested format
|
||||||
|
*
|
||||||
|
* @param string $format ['timestamp' | 'n_in_month' | 'n_in_year' | 'array']
|
||||||
|
* @return mixed
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function prevWeek($format = 'n_in_month')
|
||||||
|
{
|
||||||
|
switch (strtolower($format)) {
|
||||||
|
case 'int':
|
||||||
|
case 'n_in_month':
|
||||||
|
return ($this->firstWeek) ? null : $this->thisWeek('n_in_month') -1;
|
||||||
|
break;
|
||||||
|
case 'n_in_year':
|
||||||
|
return $this->cE->getWeekNInYear(
|
||||||
|
$this->cE->stampToYear($this->prevWeek),
|
||||||
|
$this->cE->stampToMonth($this->prevWeek),
|
||||||
|
$this->cE->stampToDay($this->prevWeek));
|
||||||
|
break;
|
||||||
|
case 'array':
|
||||||
|
return $this->toArray($this->prevWeek);
|
||||||
|
break;
|
||||||
|
case 'object':
|
||||||
|
require_once CALENDAR_ROOT.'Factory.php';
|
||||||
|
return Calendar_Factory::createByTimestamp('Week', $this->prevWeek);
|
||||||
|
break;
|
||||||
|
case 'timestamp':
|
||||||
|
default:
|
||||||
|
return $this->prevWeek;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the current week, according to the requested format
|
||||||
|
*
|
||||||
|
* @param string $format ['timestamp' | 'n_in_month' | 'n_in_year' | 'array']
|
||||||
|
* @return mixed
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function thisWeek($format = 'n_in_month')
|
||||||
|
{
|
||||||
|
switch (strtolower($format)) {
|
||||||
|
case 'int':
|
||||||
|
case 'n_in_month':
|
||||||
|
if ($this->firstWeek) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if ($this->lastWeek) {
|
||||||
|
return $this->cE->getWeeksInMonth(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->firstDay);
|
||||||
|
}
|
||||||
|
return $this->cE->getWeekNInMonth(
|
||||||
|
$this->thisYear(),
|
||||||
|
$this->thisMonth(),
|
||||||
|
$this->thisDay(),
|
||||||
|
$this->firstDay);
|
||||||
|
break;
|
||||||
|
case 'n_in_year':
|
||||||
|
return $this->cE->getWeekNInYear(
|
||||||
|
$this->cE->stampToYear($this->thisWeek),
|
||||||
|
$this->cE->stampToMonth($this->thisWeek),
|
||||||
|
$this->cE->stampToDay($this->thisWeek));
|
||||||
|
break;
|
||||||
|
case 'array':
|
||||||
|
return $this->toArray($this->thisWeek);
|
||||||
|
break;
|
||||||
|
case 'object':
|
||||||
|
require_once CALENDAR_ROOT.'Factory.php';
|
||||||
|
return Calendar_Factory::createByTimestamp('Week', $this->thisWeek);
|
||||||
|
break;
|
||||||
|
case 'timestamp':
|
||||||
|
default:
|
||||||
|
return $this->thisWeek;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the following week, according to the requested format
|
||||||
|
*
|
||||||
|
* @param string $format ['timestamp' | 'n_in_month' | 'n_in_year' | 'array']
|
||||||
|
* @return mixed
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function nextWeek($format = 'n_in_month')
|
||||||
|
{
|
||||||
|
switch (strtolower($format)) {
|
||||||
|
case 'int':
|
||||||
|
case 'n_in_month':
|
||||||
|
return ($this->lastWeek) ? null : $this->thisWeek('n_in_month') +1;
|
||||||
|
break;
|
||||||
|
case 'n_in_year':
|
||||||
|
return $this->cE->getWeekNInYear(
|
||||||
|
$this->cE->stampToYear($this->nextWeek),
|
||||||
|
$this->cE->stampToMonth($this->nextWeek),
|
||||||
|
$this->cE->stampToDay($this->nextWeek));
|
||||||
|
break;
|
||||||
|
case 'array':
|
||||||
|
return $this->toArray($this->nextWeek);
|
||||||
|
break;
|
||||||
|
case 'object':
|
||||||
|
require_once CALENDAR_ROOT.'Factory.php';
|
||||||
|
return Calendar_Factory::createByTimestamp('Week', $this->nextWeek);
|
||||||
|
break;
|
||||||
|
case 'timestamp':
|
||||||
|
default:
|
||||||
|
return $this->nextWeek;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the instance of Calendar_Table_Helper.
|
||||||
|
* Called from Calendar_Validator::isValidWeek
|
||||||
|
* @return Calendar_Table_Helper
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
function & getHelper()
|
||||||
|
{
|
||||||
|
return $this->tableHelper;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Makes sure theres a value for $this->day
|
||||||
|
* @return void
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function findFirstDay()
|
||||||
|
{
|
||||||
|
if (!count($this->children) > 0) {
|
||||||
|
$this->build();
|
||||||
|
foreach ($this->children as $Day) {
|
||||||
|
if (!$Day->isEmpty()) {
|
||||||
|
$this->day = $Day->thisDay();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
113
campcaster/src/tools/pear/src/Calendar/Year.php
Normal file
113
campcaster/src/tools/pear/src/Calendar/Year.php
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
<?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: Year.php,v 1.4 2005/10/22 10:25:39 quipo Exp $
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @package Calendar
|
||||||
|
* @version $Id: Year.php,v 1.4 2005/10/22 10:25:39 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 Year and builds Months<br>
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar'.DIRECTORY_SEPARATOR.'Year.php';
|
||||||
|
* $Year = & new Calendar_Year(2003, 10, 21); // 21st Oct 2003
|
||||||
|
* $Year->build(); // Build Calendar_Month objects
|
||||||
|
* while ($Month = & $Year->fetch()) {
|
||||||
|
* echo $Month->thisMonth().'<br />';
|
||||||
|
* }
|
||||||
|
* </code>
|
||||||
|
* @package Calendar
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
class Calendar_Year extends Calendar
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructs Calendar_Year
|
||||||
|
* @param int year e.g. 2003
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function Calendar_Year($y)
|
||||||
|
{
|
||||||
|
Calendar::Calendar($y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the Months of the Year.<br>
|
||||||
|
* <b>Note:</b> by defining the constant CALENDAR_MONTH_STATE you can
|
||||||
|
* control what class of Calendar_Month is built e.g.;
|
||||||
|
* <code>
|
||||||
|
* require_once 'Calendar/Calendar_Year.php';
|
||||||
|
* define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKDAYS); // Use Calendar_Month_Weekdays
|
||||||
|
* // define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS); // Use Calendar_Month_Weeks
|
||||||
|
* // define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH); // Use Calendar_Month
|
||||||
|
* </code>
|
||||||
|
* It defaults to building Calendar_Month objects.
|
||||||
|
* @param array (optional) array of Calendar_Month objects representing selected dates
|
||||||
|
* @param int (optional) first day of week (e.g. 0 for Sunday, 2 for Tuesday etc.)
|
||||||
|
* @return boolean
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function build($sDates = array(), $firstDay = null)
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT.'Factory.php';
|
||||||
|
$this->firstDay = $this->defineFirstDayOfWeek($firstDay);
|
||||||
|
$monthsInYear = $this->cE->getMonthsInYear($this->thisYear());
|
||||||
|
for ($i=1; $i <= $monthsInYear; $i++) {
|
||||||
|
$this->children[$i] = Calendar_Factory::create('Month', $this->year, $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()) {
|
||||||
|
$key = $sDate->thisMonth();
|
||||||
|
if (isset($this->children[$key])) {
|
||||||
|
$sDate->setSelected();
|
||||||
|
$this->children[$key] = $sDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
3
campcaster/src/tools/pear/src/Calendar/docs/Readme
Normal file
3
campcaster/src/tools/pear/src/Calendar/docs/Readme
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Readme
|
||||||
|
|
||||||
|
See the PEAR manual at http://pear.php.net/manual/en/package.datetime.calendar.php for details.
|
92
campcaster/src/tools/pear/src/Calendar/docs/examples/1.php
Normal file
92
campcaster/src/tools/pear/src/Calendar/docs/examples/1.php
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: Passes through all main calendar classes, beginning with year
|
||||||
|
* and down to seconds, skipping weeks. Useful to test Calendar is (basically)
|
||||||
|
* working correctly
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = 2003;
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = 8;
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = 9;
|
||||||
|
if (!isset($_GET['h'])) $_GET['h'] = 12;
|
||||||
|
if (!isset($_GET['i'])) $_GET['i'] = 34;
|
||||||
|
if (!isset($_GET['s'])) $_GET['s'] = 46;
|
||||||
|
|
||||||
|
switch ( @$_GET['view'] ) {
|
||||||
|
default:
|
||||||
|
$_GET['view'] = 'calendar_year';
|
||||||
|
case 'calendar_year':
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
$c = new Calendar_Year($_GET['y']);
|
||||||
|
break;
|
||||||
|
case 'calendar_month':
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
$c = new Calendar_Month($_GET['y'],$_GET['m']);
|
||||||
|
break;
|
||||||
|
case 'calendar_day':
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
$c = new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']);
|
||||||
|
break;
|
||||||
|
case 'calendar_hour':
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
$c = new Calendar_Hour($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h']);
|
||||||
|
break;
|
||||||
|
case 'calendar_minute':
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
$c = new Calendar_Minute($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i']);
|
||||||
|
break;
|
||||||
|
case 'calendar_second':
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
$c = new Calendar_Second($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i'],$_GET['s']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ( 'Viewing: '.@$_GET['view'].'<br />' );
|
||||||
|
echo ( 'The time is now: '.date('Y M d H:i:s',$c->getTimestamp()).'<br >' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>First Iteration</h1>' );
|
||||||
|
echo ( '<p>The first iteration is more "expensive", the calendar data
|
||||||
|
structures having to be built.</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
$c->build();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>Second Iteration</h1>' );
|
||||||
|
echo ( '<p>This second iteration is faster, the data structures
|
||||||
|
being re-used</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
?>
|
92
campcaster/src/tools/pear/src/Calendar/docs/examples/1.phps
Normal file
92
campcaster/src/tools/pear/src/Calendar/docs/examples/1.phps
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: Passes through all main calendar classes, beginning with year
|
||||||
|
* and down to seconds, skipping weeks. Useful to test Calendar is (basically)
|
||||||
|
* working correctly
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = 2003;
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = 8;
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = 9;
|
||||||
|
if (!isset($_GET['h'])) $_GET['h'] = 12;
|
||||||
|
if (!isset($_GET['i'])) $_GET['i'] = 34;
|
||||||
|
if (!isset($_GET['s'])) $_GET['s'] = 46;
|
||||||
|
|
||||||
|
switch ( @$_GET['view'] ) {
|
||||||
|
default:
|
||||||
|
$_GET['view'] = 'calendar_year';
|
||||||
|
case 'calendar_year':
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
$c = new Calendar_Year($_GET['y']);
|
||||||
|
break;
|
||||||
|
case 'calendar_month':
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
$c = new Calendar_Month($_GET['y'],$_GET['m']);
|
||||||
|
break;
|
||||||
|
case 'calendar_day':
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
$c = new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']);
|
||||||
|
break;
|
||||||
|
case 'calendar_hour':
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
$c = new Calendar_Hour($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h']);
|
||||||
|
break;
|
||||||
|
case 'calendar_minute':
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
$c = new Calendar_Minute($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i']);
|
||||||
|
break;
|
||||||
|
case 'calendar_second':
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
$c = new Calendar_Second($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i'],$_GET['s']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ( 'Viewing: '.@$_GET['view'].'<br />' );
|
||||||
|
echo ( 'The time is now: '.date('Y M d H:i:s',$c->getTimestamp()).'<br >' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>First Iteration</h1>' );
|
||||||
|
echo ( '<p>The first iteration is more "expensive", the calendar data
|
||||||
|
structures having to be built.</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
$c->build();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>Second Iteration</h1>' );
|
||||||
|
echo ( '<p>This second iteration is faster, the data structures
|
||||||
|
being re-used</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
?>
|
93
campcaster/src/tools/pear/src/Calendar/docs/examples/10.php
Normal file
93
campcaster/src/tools/pear/src/Calendar/docs/examples/10.php
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates a decorator to provide simple output formatting
|
||||||
|
* on the month while still allowing the days to be accessed via the decorator
|
||||||
|
* In practice you _wouldn't_ do this - each decorator comes with a performance
|
||||||
|
* hit for extra method calls. For this example some simple functions could help
|
||||||
|
* format the month while the days are accessed via the normal Month object
|
||||||
|
*/
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
// Decorate a Month with methods to improve formatting
|
||||||
|
class MonthDecorator extends Calendar_Decorator {
|
||||||
|
/**
|
||||||
|
* @param Calendar_Month
|
||||||
|
*/
|
||||||
|
function MonthDecorator(& $Month) {
|
||||||
|
parent::Calendar_Decorator($Month);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Override the prevMonth method to format the output
|
||||||
|
*/
|
||||||
|
function prevMonth() {
|
||||||
|
$prevStamp = parent::prevMonth(TRUE);
|
||||||
|
// Build the URL for the previous month
|
||||||
|
return $_SERVER['PHP_SELF'].'?y='.date('Y',$prevStamp).
|
||||||
|
'&m='.date('n',$prevStamp).'&d='.date('j',$prevStamp);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Override the thisMonth method to format the output
|
||||||
|
*/
|
||||||
|
function thisMonth() {
|
||||||
|
$thisStamp = parent::thisMonth(TRUE);
|
||||||
|
// A human readable string from this month
|
||||||
|
return date('F Y',$thisStamp);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Override the nextMonth method to format the output
|
||||||
|
*/
|
||||||
|
function nextMonth() {
|
||||||
|
$nextStamp = parent::nextMonth(TRUE);
|
||||||
|
// Build the URL for next month
|
||||||
|
return $_SERVER['PHP_SELF'].'?y='.date('Y',$nextStamp).
|
||||||
|
'&m='.date('n',$nextStamp).'&d='.date('j',$nextStamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
|
||||||
|
// Creata a month as usual
|
||||||
|
$Month = new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
|
||||||
|
|
||||||
|
// Pass it to the decorator and use the decorator from now on...
|
||||||
|
$MonthDecorator = new MonthDecorator($Month);
|
||||||
|
$MonthDecorator->build();
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> A Simple Decorator </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>A Simple Decorator</h1>
|
||||||
|
<table>
|
||||||
|
<caption><?php echo ( $MonthDecorator->thisMonth() ); ?></caption>
|
||||||
|
<?php
|
||||||
|
while ( $Day = $MonthDecorator->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "\n<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td> </td>" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td>".$Day->thisDay()."</td>" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "\n</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><a href="<?php echo ($MonthDecorator->prevMonth()); ?>">Prev</a></td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td><a href="<?php echo ($MonthDecorator->nextMonth()); ?>">Next</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
93
campcaster/src/tools/pear/src/Calendar/docs/examples/10.phps
Normal file
93
campcaster/src/tools/pear/src/Calendar/docs/examples/10.phps
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates a decorator to provide simple output formatting
|
||||||
|
* on the month while still allowing the days to be accessed via the decorator
|
||||||
|
* In practice you _wouldn't_ do this - each decorator comes with a performance
|
||||||
|
* hit for extra method calls. For this example some simple functions could help
|
||||||
|
* format the month while the days are accessed via the normal Month object
|
||||||
|
*/
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
// Decorate a Month with methods to improve formatting
|
||||||
|
class MonthDecorator extends Calendar_Decorator {
|
||||||
|
/**
|
||||||
|
* @param Calendar_Month
|
||||||
|
*/
|
||||||
|
function MonthDecorator(& $Month) {
|
||||||
|
parent::Calendar_Decorator($Month);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Override the prevMonth method to format the output
|
||||||
|
*/
|
||||||
|
function prevMonth() {
|
||||||
|
$prevStamp = parent::prevMonth(TRUE);
|
||||||
|
// Build the URL for the previous month
|
||||||
|
return $_SERVER['PHP_SELF'].'?y='.date('Y',$prevStamp).
|
||||||
|
'&m='.date('n',$prevStamp).'&d='.date('j',$prevStamp);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Override the thisMonth method to format the output
|
||||||
|
*/
|
||||||
|
function thisMonth() {
|
||||||
|
$thisStamp = parent::thisMonth(TRUE);
|
||||||
|
// A human readable string from this month
|
||||||
|
return date('F Y',$thisStamp);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Override the nextMonth method to format the output
|
||||||
|
*/
|
||||||
|
function nextMonth() {
|
||||||
|
$nextStamp = parent::nextMonth(TRUE);
|
||||||
|
// Build the URL for next month
|
||||||
|
return $_SERVER['PHP_SELF'].'?y='.date('Y',$nextStamp).
|
||||||
|
'&m='.date('n',$nextStamp).'&d='.date('j',$nextStamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
|
||||||
|
// Creata a month as usual
|
||||||
|
$Month = new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
|
||||||
|
|
||||||
|
// Pass it to the decorator and use the decorator from now on...
|
||||||
|
$MonthDecorator = new MonthDecorator($Month);
|
||||||
|
$MonthDecorator->build();
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> A Simple Decorator </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>A Simple Decorator</h1>
|
||||||
|
<table>
|
||||||
|
<caption><?php echo ( $MonthDecorator->thisMonth() ); ?></caption>
|
||||||
|
<?php
|
||||||
|
while ( $Day = $MonthDecorator->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "\n<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td> </td>" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td>".$Day->thisDay()."</td>" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "\n</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><a href="<?php echo ($MonthDecorator->prevMonth()); ?>">Prev</a></td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td><a href="<?php echo ($MonthDecorator->nextMonth()); ?>">Next</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
109
campcaster/src/tools/pear/src/Calendar/docs/examples/11.php
Normal file
109
campcaster/src/tools/pear/src/Calendar/docs/examples/11.php
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates a decorator used to "attach a payload" to a selection
|
||||||
|
* to make it available when iterating over calendar children
|
||||||
|
*/
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
// Decorator to "attach" functionality to selected hours
|
||||||
|
class DiaryEvent extends Calendar_Decorator {
|
||||||
|
var $entry;
|
||||||
|
function DiaryEvent($calendar) {
|
||||||
|
Calendar_Decorator::Calendar_Decorator($calendar);
|
||||||
|
}
|
||||||
|
function setEntry($entry) {
|
||||||
|
$this->entry = $entry;
|
||||||
|
}
|
||||||
|
function getEntry() {
|
||||||
|
return $this->entry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a day to view the hours for
|
||||||
|
$Day = & new Calendar_Day(2003,10,24);
|
||||||
|
|
||||||
|
// A sample query to get the data for today (NOT ACTUALLY USED HERE)
|
||||||
|
$sql = "
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
diary
|
||||||
|
WHERE
|
||||||
|
eventtime >= '".$Day->thisDay(TRUE)."'
|
||||||
|
AND
|
||||||
|
eventtime < '".$Day->nextDay(TRUE)."';";
|
||||||
|
|
||||||
|
// An array simulating data from a database
|
||||||
|
$result = array (
|
||||||
|
array('eventtime'=>mktime(9,0,0,10,24,2003),'entry'=>'Meeting with sales team'),
|
||||||
|
array('eventtime'=>mktime(11,0,0,10,24,2003),'entry'=>'Conference call with Widget Inc.'),
|
||||||
|
array('eventtime'=>mktime(15,0,0,10,24,2003),'entry'=>'Presentation to board of directors')
|
||||||
|
);
|
||||||
|
|
||||||
|
// An array to place selected hours in
|
||||||
|
$selection = array();
|
||||||
|
|
||||||
|
// Loop through the "database result"
|
||||||
|
foreach ( $result as $row ) {
|
||||||
|
$Hour = new Calendar_Hour(2000,1,1,1); // Create Hour with dummy values
|
||||||
|
$Hour->setTimeStamp($row['eventtime']); // Set the real time with setTimeStamp
|
||||||
|
|
||||||
|
// Create the decorator, passing it the Hour
|
||||||
|
$DiaryEvent = new DiaryEvent($Hour);
|
||||||
|
|
||||||
|
// Attach the payload
|
||||||
|
$DiaryEvent->setEntry($row['entry']);
|
||||||
|
|
||||||
|
// Add the decorator to the selection
|
||||||
|
$selection[] = $DiaryEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the hours in that day, passing the selection
|
||||||
|
$Day->build($selection);
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Passing a Selection Payload with a Decorator </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Passing a Selection "Payload" using a Decorator</h1>
|
||||||
|
<table>
|
||||||
|
<caption><b>Your Schedule for <?php echo ( date('D nS F Y',$Day->thisDay(TRUE)) ); ?></b></caption>
|
||||||
|
<tr>
|
||||||
|
<th width="5%">Time</th>
|
||||||
|
<th>Entry</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ( $Hour = & $Day->fetch() ) {
|
||||||
|
|
||||||
|
$hour = $Hour->thisHour();
|
||||||
|
$minute = $Hour->thisMinute();
|
||||||
|
|
||||||
|
// Office hours only...
|
||||||
|
if ( $hour >= 8 && $hour <= 18 ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
echo ( "<td>$hour:$minute</td>\n" );
|
||||||
|
|
||||||
|
// If the hour is selected, call the decorator method...
|
||||||
|
if ( $Hour->isSelected() ) {
|
||||||
|
echo ( "<td bgcolor=\"silver\">".$Hour->getEntry()."</td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td> </td>\n" );
|
||||||
|
}
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<p>The query to fetch this data, with help from PEAR::Calendar, might be;</p>
|
||||||
|
<pre>
|
||||||
|
<?php echo ( $sql ); ?>
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
109
campcaster/src/tools/pear/src/Calendar/docs/examples/11.phps
Normal file
109
campcaster/src/tools/pear/src/Calendar/docs/examples/11.phps
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates a decorator used to "attach a payload" to a selection
|
||||||
|
* to make it available when iterating over calendar children
|
||||||
|
*/
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php';
|
||||||
|
|
||||||
|
// Decorator to "attach" functionality to selected hours
|
||||||
|
class DiaryEvent extends Calendar_Decorator {
|
||||||
|
var $entry;
|
||||||
|
function DiaryEvent($calendar) {
|
||||||
|
Calendar_Decorator::Calendar_Decorator($calendar);
|
||||||
|
}
|
||||||
|
function setEntry($entry) {
|
||||||
|
$this->entry = $entry;
|
||||||
|
}
|
||||||
|
function getEntry() {
|
||||||
|
return $this->entry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a day to view the hours for
|
||||||
|
$Day = & new Calendar_Day(2003,10,24);
|
||||||
|
|
||||||
|
// A sample query to get the data for today (NOT ACTUALLY USED HERE)
|
||||||
|
$sql = "
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
diary
|
||||||
|
WHERE
|
||||||
|
eventtime >= '".$Day->thisDay(TRUE)."'
|
||||||
|
AND
|
||||||
|
eventtime < '".$Day->nextDay(TRUE)."';";
|
||||||
|
|
||||||
|
// An array simulating data from a database
|
||||||
|
$result = array (
|
||||||
|
array('eventtime'=>mktime(9,0,0,10,24,2003),'entry'=>'Meeting with sales team'),
|
||||||
|
array('eventtime'=>mktime(11,0,0,10,24,2003),'entry'=>'Conference call with Widget Inc.'),
|
||||||
|
array('eventtime'=>mktime(15,0,0,10,24,2003),'entry'=>'Presentation to board of directors')
|
||||||
|
);
|
||||||
|
|
||||||
|
// An array to place selected hours in
|
||||||
|
$selection = array();
|
||||||
|
|
||||||
|
// Loop through the "database result"
|
||||||
|
foreach ( $result as $row ) {
|
||||||
|
$Hour = new Calendar_Hour(2000,1,1,1); // Create Hour with dummy values
|
||||||
|
$Hour->setTimeStamp($row['eventtime']); // Set the real time with setTimeStamp
|
||||||
|
|
||||||
|
// Create the decorator, passing it the Hour
|
||||||
|
$DiaryEvent = new DiaryEvent($Hour);
|
||||||
|
|
||||||
|
// Attach the payload
|
||||||
|
$DiaryEvent->setEntry($row['entry']);
|
||||||
|
|
||||||
|
// Add the decorator to the selection
|
||||||
|
$selection[] = $DiaryEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the hours in that day, passing the selection
|
||||||
|
$Day->build($selection);
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Passing a Selection Payload with a Decorator </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Passing a Selection "Payload" using a Decorator</h1>
|
||||||
|
<table>
|
||||||
|
<caption><b>Your Schedule for <?php echo ( date('D nS F Y',$Day->thisDay(TRUE)) ); ?></b></caption>
|
||||||
|
<tr>
|
||||||
|
<th width="5%">Time</th>
|
||||||
|
<th>Entry</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ( $Hour = & $Day->fetch() ) {
|
||||||
|
|
||||||
|
$hour = $Hour->thisHour();
|
||||||
|
$minute = $Hour->thisMinute();
|
||||||
|
|
||||||
|
// Office hours only...
|
||||||
|
if ( $hour >= 8 && $hour <= 18 ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
echo ( "<td>$hour:$minute</td>\n" );
|
||||||
|
|
||||||
|
// If the hour is selected, call the decorator method...
|
||||||
|
if ( $Hour->isSelected() ) {
|
||||||
|
echo ( "<td bgcolor=\"silver\">".$Hour->getEntry()."</td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td> </td>\n" );
|
||||||
|
}
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<p>The query to fetch this data, with help from PEAR::Calendar, might be;</p>
|
||||||
|
<pre>
|
||||||
|
<?php echo ( $sql ); ?>
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
116
campcaster/src/tools/pear/src/Calendar/docs/examples/12.php
Normal file
116
campcaster/src/tools/pear/src/Calendar/docs/examples/12.php
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: a complete year
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
|
||||||
|
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKDAYS);
|
||||||
|
|
||||||
|
if ( !isset($_GET['year']) ) $_GET['year'] = date('Y');
|
||||||
|
|
||||||
|
$Year = new Calendar_Year($_GET['year']);
|
||||||
|
|
||||||
|
$Year->build();
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> <?php echo ( $Year->thisYear() ); ?> </title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
font-family: Georgia, serif;
|
||||||
|
}
|
||||||
|
caption.year {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 120%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
caption.month {
|
||||||
|
font-size: 110%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
table.month {
|
||||||
|
border: thin groove #800080
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
text-align: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#prev {
|
||||||
|
float: left;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#next {
|
||||||
|
float: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table>
|
||||||
|
<caption class="year">
|
||||||
|
<?php echo ( $Year->thisYear() ); ?>
|
||||||
|
<div id="next">
|
||||||
|
<a href="?year=<?php echo ( $Year->nextYear() ); ?>">>></a>
|
||||||
|
</div>
|
||||||
|
<div id="prev">
|
||||||
|
<a href="?year=<?php echo ( $Year->prevYear() ); ?>"><<</a>
|
||||||
|
</div>
|
||||||
|
</caption>
|
||||||
|
<?php
|
||||||
|
$i = 0;
|
||||||
|
while ( $Month = $Year->fetch() ) {
|
||||||
|
|
||||||
|
switch ( $i ) {
|
||||||
|
case 0:
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
case 6:
|
||||||
|
case 9:
|
||||||
|
echo ( "</tr>\n<tr>\n" );
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ( "<td>\n<table class=\"month\">\n" );
|
||||||
|
echo ( "<caption class=\"month\">".date('F',$Month->thisMonth(TRUE))."</caption>" );
|
||||||
|
echo ( "<tr>\n<th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>\n</tr>" );
|
||||||
|
$Month->build();
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td> </td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td>".$Day->thisDay()."</td>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo ( "</table>\n</td>\n" );
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<p>Took: <?php echo ((getmicrotime()-$start)); ?></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
116
campcaster/src/tools/pear/src/Calendar/docs/examples/12.phps
Normal file
116
campcaster/src/tools/pear/src/Calendar/docs/examples/12.phps
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: a complete year
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
|
||||||
|
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKDAYS);
|
||||||
|
|
||||||
|
if ( !isset($_GET['year']) ) $_GET['year'] = date('Y');
|
||||||
|
|
||||||
|
$Year = new Calendar_Year($_GET['year']);
|
||||||
|
|
||||||
|
$Year->build();
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> <?php echo ( $Year->thisYear() ); ?> </title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
font-family: Georgia, serif;
|
||||||
|
}
|
||||||
|
caption.year {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 120%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
caption.month {
|
||||||
|
font-size: 110%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
table.month {
|
||||||
|
border: thin groove #800080
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
text-align: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#prev {
|
||||||
|
float: left;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#next {
|
||||||
|
float: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table>
|
||||||
|
<caption class="year">
|
||||||
|
<?php echo ( $Year->thisYear() ); ?>
|
||||||
|
<div id="next">
|
||||||
|
<a href="?year=<?php echo ( $Year->nextYear() ); ?>">>></a>
|
||||||
|
</div>
|
||||||
|
<div id="prev">
|
||||||
|
<a href="?year=<?php echo ( $Year->prevYear() ); ?>"><<</a>
|
||||||
|
</div>
|
||||||
|
</caption>
|
||||||
|
<?php
|
||||||
|
$i = 0;
|
||||||
|
while ( $Month = $Year->fetch() ) {
|
||||||
|
|
||||||
|
switch ( $i ) {
|
||||||
|
case 0:
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
case 6:
|
||||||
|
case 9:
|
||||||
|
echo ( "</tr>\n<tr>\n" );
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ( "<td>\n<table class=\"month\">\n" );
|
||||||
|
echo ( "<caption class=\"month\">".date('F',$Month->thisMonth(TRUE))."</caption>" );
|
||||||
|
echo ( "<tr>\n<th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>\n</tr>" );
|
||||||
|
$Month->build();
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td> </td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td>".$Day->thisDay()."</td>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo ( "</table>\n</td>\n" );
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<p>Took: <?php echo ((getmicrotime()-$start)); ?></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
99
campcaster/src/tools/pear/src/Calendar/docs/examples/13.php
Normal file
99
campcaster/src/tools/pear/src/Calendar/docs/examples/13.php
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: same as 1.php, but using the PEAR::Date engine
|
||||||
|
* Notice the use of the CALENDAR_ENGINE constant, which
|
||||||
|
* switches the calculation "engine"
|
||||||
|
* Note: make sure PEAR::Date is a stable release!!!
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Switch to PEAR::Date engine
|
||||||
|
define('CALENDAR_ENGINE','PearDate');
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = 2003;
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = 8;
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = 9;
|
||||||
|
if (!isset($_GET['h'])) $_GET['h'] = 12;
|
||||||
|
if (!isset($_GET['i'])) $_GET['i'] = 34;
|
||||||
|
if (!isset($_GET['s'])) $_GET['s'] = 46;
|
||||||
|
|
||||||
|
switch ( @$_GET['view'] ) {
|
||||||
|
default:
|
||||||
|
$_GET['view'] = 'calendar_year';
|
||||||
|
case 'calendar_year':
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
$c = new Calendar_Year($_GET['y']);
|
||||||
|
break;
|
||||||
|
case 'calendar_month':
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
$c = new Calendar_Month($_GET['y'],$_GET['m']);
|
||||||
|
break;
|
||||||
|
case 'calendar_day':
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
$c = new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']);
|
||||||
|
break;
|
||||||
|
case 'calendar_hour':
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
$c = new Calendar_Hour($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h']);
|
||||||
|
break;
|
||||||
|
case 'calendar_minute':
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
$c = new Calendar_Minute($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i']);
|
||||||
|
break;
|
||||||
|
case 'calendar_second':
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
$c = new Calendar_Second($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i'],$_GET['s']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert timestamp to human readable date
|
||||||
|
$date = new Date($c->getTimestamp());
|
||||||
|
|
||||||
|
echo ( '<h1>Using PEAR::Date engine</h1>' );
|
||||||
|
echo ( 'Viewing: '.@$_GET['view'].'<br />' );
|
||||||
|
echo ( 'The time is now: '.$date->format('%Y %a %e %T').'<br >' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>First Iteration</h1>' );
|
||||||
|
echo ( '<p>The first iteration is more "expensive", the calendar data
|
||||||
|
structures having to be built.</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
$c->build();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>Second Iteration</h1>' );
|
||||||
|
echo ( '<p>This second iteration is faster, the data structures
|
||||||
|
being re-used</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
?>
|
99
campcaster/src/tools/pear/src/Calendar/docs/examples/13.phps
Normal file
99
campcaster/src/tools/pear/src/Calendar/docs/examples/13.phps
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: same as 1.php, but using the PEAR::Date engine
|
||||||
|
* Notice the use of the CALENDAR_ENGINE constant, which
|
||||||
|
* switches the calculation "engine"
|
||||||
|
* Note: make sure PEAR::Date is a stable release!!!
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Switch to PEAR::Date engine
|
||||||
|
define('CALENDAR_ENGINE','PearDate');
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = 2003;
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = 8;
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = 9;
|
||||||
|
if (!isset($_GET['h'])) $_GET['h'] = 12;
|
||||||
|
if (!isset($_GET['i'])) $_GET['i'] = 34;
|
||||||
|
if (!isset($_GET['s'])) $_GET['s'] = 46;
|
||||||
|
|
||||||
|
switch ( @$_GET['view'] ) {
|
||||||
|
default:
|
||||||
|
$_GET['view'] = 'calendar_year';
|
||||||
|
case 'calendar_year':
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
$c = new Calendar_Year($_GET['y']);
|
||||||
|
break;
|
||||||
|
case 'calendar_month':
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
$c = new Calendar_Month($_GET['y'],$_GET['m']);
|
||||||
|
break;
|
||||||
|
case 'calendar_day':
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
$c = new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']);
|
||||||
|
break;
|
||||||
|
case 'calendar_hour':
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
$c = new Calendar_Hour($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h']);
|
||||||
|
break;
|
||||||
|
case 'calendar_minute':
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
$c = new Calendar_Minute($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i']);
|
||||||
|
break;
|
||||||
|
case 'calendar_second':
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
$c = new Calendar_Second($_GET['y'],$_GET['m'],$_GET['d'],$_GET['h'],$_GET['i'],$_GET['s']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert timestamp to human readable date
|
||||||
|
$date = new Date($c->getTimestamp());
|
||||||
|
|
||||||
|
echo ( '<h1>Using PEAR::Date engine</h1>' );
|
||||||
|
echo ( 'Viewing: '.@$_GET['view'].'<br />' );
|
||||||
|
echo ( 'The time is now: '.$date->format('%Y %a %e %T').'<br >' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>First Iteration</h1>' );
|
||||||
|
echo ( '<p>The first iteration is more "expensive", the calendar data
|
||||||
|
structures having to be built.</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
$c->build();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
echo ( '<h1>Second Iteration</h1>' );
|
||||||
|
echo ( '<p>This second iteration is faster, the data structures
|
||||||
|
being re-used</p>' );
|
||||||
|
$start = getmicrotime();
|
||||||
|
while ( $e = $c->fetch() ) {
|
||||||
|
$class = strtolower(get_class($e));
|
||||||
|
$link ="&y=".$e->thisYear()."&m=".$e->thisMonth()."&d=".$e->thisDay().
|
||||||
|
"&h=".$e->thisHour()."&i=".$e->thisMinute()."&s=".$e->thisSecond();
|
||||||
|
$method = 'this'.str_replace('calendar_','',$class);
|
||||||
|
echo ( "<a href=\"".$_SERVER['PHP_SELF']."?view=".$class.$link."\">".$e->{$method}()."</a> : " );
|
||||||
|
if ( ($i % 10) == 0 ) {
|
||||||
|
echo ( '<br>' );
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
?>
|
141
campcaster/src/tools/pear/src/Calendar/docs/examples/14.php
Normal file
141
campcaster/src/tools/pear/src/Calendar/docs/examples/14.php
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: same as 3.php, but using the PEAR::Date engine
|
||||||
|
* Note: make sure PEAR::Date is a stable release!!!
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
// Switch to PEAR::Date engine
|
||||||
|
define('CALENDAR_ENGINE', 'PearDate');
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
// Initialize GET variables if not set
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('d');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$month = new Calendar_Month_Weekdays($_GET['y'], $_GET['m']);
|
||||||
|
|
||||||
|
// Create an array of days which are "selected"
|
||||||
|
// Used for Week::build() below
|
||||||
|
$selectedDays = array (
|
||||||
|
new Calendar_Day($_GET['y'], $_GET['m'], $_GET['d']),
|
||||||
|
new Calendar_Day($_GET['y'], 12, 25),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Build the days in the month
|
||||||
|
$month->build($selectedDays);
|
||||||
|
|
||||||
|
// Construct strings for next/previous links
|
||||||
|
$PMonth = $month->prevMonth('object'); // Get previous month as object
|
||||||
|
$prev = $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay();
|
||||||
|
$NMonth = $month->nextMonth('object');
|
||||||
|
$next = $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay();
|
||||||
|
|
||||||
|
$thisDate = new Date($month->thisMonth('timestamp'));
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar using PEAR::Date Engine </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
background-color: silver;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 12px;
|
||||||
|
background-color: while;
|
||||||
|
}
|
||||||
|
.prevMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.nextMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
color: navy;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.selected {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h2>Calendar using PEAR::Date Engine</h2>
|
||||||
|
<table class="calendar">
|
||||||
|
<caption>
|
||||||
|
<?php echo $thisDate->format('%B %Y'); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>W</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>F</th>
|
||||||
|
<th>S</th>
|
||||||
|
<th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ($day = $month->fetch()) {
|
||||||
|
// Build a link string for each day
|
||||||
|
$link = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$day->thisYear().
|
||||||
|
'&m='.$day->thisMonth().
|
||||||
|
'&d='.$day->thisDay();
|
||||||
|
|
||||||
|
// isFirst() to find start of week
|
||||||
|
if ($day->isFirst())
|
||||||
|
echo "<tr>\n";
|
||||||
|
|
||||||
|
if ($day->isSelected()) {
|
||||||
|
echo '<td class="selected">'.$day->thisDay().'</td>'."\n";
|
||||||
|
} else if ($day->isEmpty()) {
|
||||||
|
echo '<td> </td>'."\n";
|
||||||
|
} else {
|
||||||
|
echo '<td><a href="'.$link.'">'.$day->thisDay().'</a></td>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// isLast() to find end of week
|
||||||
|
if ($day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $prev; ?>" class="prevMonth"><< </a>
|
||||||
|
</td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $next; ?>" class="nextMonth"> >></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>';
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
141
campcaster/src/tools/pear/src/Calendar/docs/examples/14.phps
Normal file
141
campcaster/src/tools/pear/src/Calendar/docs/examples/14.phps
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: same as 3.php, but using the PEAR::Date engine
|
||||||
|
* Note: make sure PEAR::Date is a stable release!!!
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
// Switch to PEAR::Date engine
|
||||||
|
define('CALENDAR_ENGINE', 'PearDate');
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
// Initialize GET variables if not set
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('d');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$month = new Calendar_Month_Weekdays($_GET['y'], $_GET['m']);
|
||||||
|
|
||||||
|
// Create an array of days which are "selected"
|
||||||
|
// Used for Week::build() below
|
||||||
|
$selectedDays = array (
|
||||||
|
new Calendar_Day($_GET['y'], $_GET['m'], $_GET['d']),
|
||||||
|
new Calendar_Day($_GET['y'], 12, 25),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Build the days in the month
|
||||||
|
$month->build($selectedDays);
|
||||||
|
|
||||||
|
// Construct strings for next/previous links
|
||||||
|
$PMonth = $month->prevMonth('object'); // Get previous month as object
|
||||||
|
$prev = $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay();
|
||||||
|
$NMonth = $month->nextMonth('object');
|
||||||
|
$next = $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay();
|
||||||
|
|
||||||
|
$thisDate = new Date($month->thisMonth('timestamp'));
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar using PEAR::Date Engine </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
background-color: silver;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 12px;
|
||||||
|
background-color: while;
|
||||||
|
}
|
||||||
|
.prevMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.nextMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
color: navy;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.selected {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h2>Calendar using PEAR::Date Engine</h2>
|
||||||
|
<table class="calendar">
|
||||||
|
<caption>
|
||||||
|
<?php echo $thisDate->format('%B %Y'); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>W</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>F</th>
|
||||||
|
<th>S</th>
|
||||||
|
<th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ($day = $month->fetch()) {
|
||||||
|
// Build a link string for each day
|
||||||
|
$link = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$day->thisYear().
|
||||||
|
'&m='.$day->thisMonth().
|
||||||
|
'&d='.$day->thisDay();
|
||||||
|
|
||||||
|
// isFirst() to find start of week
|
||||||
|
if ($day->isFirst())
|
||||||
|
echo "<tr>\n";
|
||||||
|
|
||||||
|
if ($day->isSelected()) {
|
||||||
|
echo '<td class="selected">'.$day->thisDay().'</td>'."\n";
|
||||||
|
} else if ($day->isEmpty()) {
|
||||||
|
echo '<td> </td>'."\n";
|
||||||
|
} else {
|
||||||
|
echo '<td><a href="'.$link.'">'.$day->thisDay().'</a></td>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// isLast() to find end of week
|
||||||
|
if ($day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $prev; ?>" class="prevMonth"><< </a>
|
||||||
|
</td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $next; ?>" class="nextMonth"> >></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>';
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
58
campcaster/src/tools/pear/src/Calendar/docs/examples/15.php
Normal file
58
campcaster/src/tools/pear/src/Calendar/docs/examples/15.php
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Shows more on how a week can be used
|
||||||
|
*/
|
||||||
|
function getmicrotime() {
|
||||||
|
list($usec, $sec) = explode(" ", microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Week.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = 1;
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Week = new Calendar_Week($_GET['y'], $_GET['m'], $_GET['d']);
|
||||||
|
/*
|
||||||
|
$Validator = $Week->getValidator();
|
||||||
|
if (!$Validator->isValidWeek()) {
|
||||||
|
die ('Please enter a valid week!');
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Paging Weeks </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Paging Weeks</h1>
|
||||||
|
<h2>Week: <?php echo $Week->thisWeek().' '.date('F Y',$Week->thisMonth(true)); ?></h2>
|
||||||
|
<?php
|
||||||
|
$Week->build();
|
||||||
|
while ($Day = $Week->fetch()) {
|
||||||
|
echo '<p>'.date('jS F',$Day->thisDay(true))."</p>\n";
|
||||||
|
}
|
||||||
|
$days = $Week->fetchAll();
|
||||||
|
|
||||||
|
$prevWeek = $Week->prevWeek('array');
|
||||||
|
$prevWeekLink = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$prevWeek['year'].
|
||||||
|
'&m='.$prevWeek['month'].
|
||||||
|
'&d='.$prevWeek['day'];
|
||||||
|
|
||||||
|
$nextWeek = $Week->nextWeek('array');
|
||||||
|
$nextWeekLink = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$nextWeek['year'].
|
||||||
|
'&m='.$nextWeek['month'].
|
||||||
|
'&d='.$nextWeek['day'];
|
||||||
|
?>
|
||||||
|
<p><a href="<?php echo $prevWeekLink; ?>"><<</a> | <a href="<?php echo $nextWeekLink; ?>">>></a></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
58
campcaster/src/tools/pear/src/Calendar/docs/examples/15.phps
Normal file
58
campcaster/src/tools/pear/src/Calendar/docs/examples/15.phps
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Shows more on how a week can be used
|
||||||
|
*/
|
||||||
|
function getmicrotime() {
|
||||||
|
list($usec, $sec) = explode(" ", microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Week.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = 1;
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Week = new Calendar_Week($_GET['y'], $_GET['m'], $_GET['d']);
|
||||||
|
/*
|
||||||
|
$Validator = $Week->getValidator();
|
||||||
|
if (!$Validator->isValidWeek()) {
|
||||||
|
die ('Please enter a valid week!');
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Paging Weeks </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Paging Weeks</h1>
|
||||||
|
<h2>Week: <?php echo $Week->thisWeek().' '.date('F Y',$Week->thisMonth(true)); ?></h2>
|
||||||
|
<?php
|
||||||
|
$Week->build();
|
||||||
|
while ($Day = $Week->fetch()) {
|
||||||
|
echo '<p>'.date('jS F',$Day->thisDay(true))."</p>\n";
|
||||||
|
}
|
||||||
|
$days = $Week->fetchAll();
|
||||||
|
|
||||||
|
$prevWeek = $Week->prevWeek('array');
|
||||||
|
$prevWeekLink = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$prevWeek['year'].
|
||||||
|
'&m='.$prevWeek['month'].
|
||||||
|
'&d='.$prevWeek['day'];
|
||||||
|
|
||||||
|
$nextWeek = $Week->nextWeek('array');
|
||||||
|
$nextWeekLink = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$nextWeek['year'].
|
||||||
|
'&m='.$nextWeek['month'].
|
||||||
|
'&d='.$nextWeek['day'];
|
||||||
|
?>
|
||||||
|
<p><a href="<?php echo $prevWeekLink; ?>"><<</a> | <a href="<?php echo $nextWeekLink; ?>">>></a></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
31
campcaster/src/tools/pear/src/Calendar/docs/examples/16.php
Normal file
31
campcaster/src/tools/pear/src/Calendar/docs/examples/16.php
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Uri decorator
|
||||||
|
*/
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator/Uri.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['jahr'])) $_GET['jahr'] = date('Y');
|
||||||
|
if (!isset($_GET['monat'])) $_GET['monat'] = date('m');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Calendar = new Calendar_Month_Weekdays($_GET['jahr'], $_GET['monat']);
|
||||||
|
|
||||||
|
echo ( '<p>The current month is '
|
||||||
|
.$Calendar->thisMonth().' of year '.$Calendar->thisYear().'</p>');
|
||||||
|
|
||||||
|
$Uri = & new Calendar_Decorator_Uri($Calendar);
|
||||||
|
$Uri->setFragments('jahr','monat');
|
||||||
|
// $Uri->setSeperator('/'); // Default is &
|
||||||
|
// $Uri->setScalar(); // Omit variable names
|
||||||
|
echo ( "<pre>Previous Uri:\t".$Uri->prev('month')."\n" );
|
||||||
|
echo ( "This Uri:\t".$Uri->this('month')."\n" );
|
||||||
|
echo ( "Next Uri:\t".$Uri->next('month')."\n</pre>" );
|
||||||
|
?>
|
||||||
|
<p>
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->prev('month'));?>">Prev</a> :
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->next('month'));?>">Next</a>
|
||||||
|
</p>
|
31
campcaster/src/tools/pear/src/Calendar/docs/examples/16.phps
Normal file
31
campcaster/src/tools/pear/src/Calendar/docs/examples/16.phps
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Uri decorator
|
||||||
|
*/
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator/Uri.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['jahr'])) $_GET['jahr'] = date('Y');
|
||||||
|
if (!isset($_GET['monat'])) $_GET['monat'] = date('m');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Calendar = new Calendar_Month_Weekdays($_GET['jahr'], $_GET['monat']);
|
||||||
|
|
||||||
|
echo ( '<p>The current month is '
|
||||||
|
.$Calendar->thisMonth().' of year '.$Calendar->thisYear().'</p>');
|
||||||
|
|
||||||
|
$Uri = & new Calendar_Decorator_Uri($Calendar);
|
||||||
|
$Uri->setFragments('jahr','monat');
|
||||||
|
// $Uri->setSeperator('/'); // Default is &
|
||||||
|
// $Uri->setScalar(); // Omit variable names
|
||||||
|
echo ( "<pre>Previous Uri:\t".$Uri->prev('month')."\n" );
|
||||||
|
echo ( "This Uri:\t".$Uri->this('month')."\n" );
|
||||||
|
echo ( "Next Uri:\t".$Uri->next('month')."\n</pre>" );
|
||||||
|
?>
|
||||||
|
<p>
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->prev('month'));?>">Prev</a> :
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->next('month'));?>">Next</a>
|
||||||
|
</p>
|
71
campcaster/src/tools/pear/src/Calendar/docs/examples/17.php
Normal file
71
campcaster/src/tools/pear/src/Calendar/docs/examples/17.php
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Textual decorator
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month'.DIRECTORY_SEPARATOR.'Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator'.DIRECTORY_SEPARATOR.'Textual.php';
|
||||||
|
|
||||||
|
// Could change language like this
|
||||||
|
// setlocale (LC_TIME, "de_DE"); // Unix based (probably)
|
||||||
|
// setlocale (LC_TIME, "ge"); // Windows
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Decorator_Textual::monthNames('long');<pre>";
|
||||||
|
print_r(Calendar_Decorator_Textual::monthNames('long'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Decorator_Textual::weekdayNames('two');<pre>";
|
||||||
|
print_r(Calendar_Decorator_Textual::weekdayNames('two'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Creating: new Calendar_Day(date('Y'), date('n'), date('d'));<br />";
|
||||||
|
$Calendar = new Calendar_Day(date('Y'), date('n'), date('d'));
|
||||||
|
|
||||||
|
// Decorate
|
||||||
|
$Textual = & new Calendar_Decorator_Textual($Calendar);
|
||||||
|
|
||||||
|
echo '<hr>Previous month is: '.$Textual->prevMonthName('two').'<br />';
|
||||||
|
echo 'This month is: '.$Textual->thisMonthName('short').'<br />';
|
||||||
|
echo 'Next month is: '.$Textual->nextMonthName().'<br /><hr />';
|
||||||
|
echo 'Previous day is: '.$Textual->prevDayName().'<br />';
|
||||||
|
echo 'This day is: '.$Textual->thisDayName('short').'<br />';
|
||||||
|
echo 'Next day is: '.$Textual->nextDayName('one').'<br /><hr />';
|
||||||
|
|
||||||
|
echo "Creating: new Calendar_Month_Weekdays(date('Y'), date('n'), 6); - Saturday is first day of week<br />";
|
||||||
|
$Calendar = new Calendar_Month_Weekdays(date('Y'), date('n'), 6);
|
||||||
|
|
||||||
|
// Decorate
|
||||||
|
$Textual = & new Calendar_Decorator_Textual($Calendar);
|
||||||
|
?>
|
||||||
|
<p>Rendering calendar....</p>
|
||||||
|
<table>
|
||||||
|
<caption><?php echo $Textual->thisMonthName().' '.$Textual->thisYear(); ?></caption>
|
||||||
|
<tr>
|
||||||
|
<?php
|
||||||
|
$dayheaders = $Textual->orderedWeekdays('short');
|
||||||
|
foreach ($dayheaders as $dayheader) {
|
||||||
|
echo '<th>'.$dayheader.'</th>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Calendar->build();
|
||||||
|
while ($Day = $Calendar->fetch()) {
|
||||||
|
if ($Day->isFirst()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
}
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo '<td> </td>';
|
||||||
|
} else {
|
||||||
|
echo '<td>'.$Day->thisDay().'</td>';
|
||||||
|
}
|
||||||
|
if ($Day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
71
campcaster/src/tools/pear/src/Calendar/docs/examples/17.phps
Normal file
71
campcaster/src/tools/pear/src/Calendar/docs/examples/17.phps
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Textual decorator
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month'.DIRECTORY_SEPARATOR.'Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator'.DIRECTORY_SEPARATOR.'Textual.php';
|
||||||
|
|
||||||
|
// Could change language like this
|
||||||
|
// setlocale (LC_TIME, "de_DE"); // Unix based (probably)
|
||||||
|
// setlocale (LC_TIME, "ge"); // Windows
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Decorator_Textual::monthNames('long');<pre>";
|
||||||
|
print_r(Calendar_Decorator_Textual::monthNames('long'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Decorator_Textual::weekdayNames('two');<pre>";
|
||||||
|
print_r(Calendar_Decorator_Textual::weekdayNames('two'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Creating: new Calendar_Day(date('Y'), date('n'), date('d'));<br />";
|
||||||
|
$Calendar = new Calendar_Day(date('Y'), date('n'), date('d'));
|
||||||
|
|
||||||
|
// Decorate
|
||||||
|
$Textual = & new Calendar_Decorator_Textual($Calendar);
|
||||||
|
|
||||||
|
echo '<hr>Previous month is: '.$Textual->prevMonthName('two').'<br />';
|
||||||
|
echo 'This month is: '.$Textual->thisMonthName('short').'<br />';
|
||||||
|
echo 'Next month is: '.$Textual->nextMonthName().'<br /><hr />';
|
||||||
|
echo 'Previous day is: '.$Textual->prevDayName().'<br />';
|
||||||
|
echo 'This day is: '.$Textual->thisDayName('short').'<br />';
|
||||||
|
echo 'Next day is: '.$Textual->nextDayName('one').'<br /><hr />';
|
||||||
|
|
||||||
|
echo "Creating: new Calendar_Month_Weekdays(date('Y'), date('n'), 6); - Saturday is first day of week<br />";
|
||||||
|
$Calendar = new Calendar_Month_Weekdays(date('Y'), date('n'), 6);
|
||||||
|
|
||||||
|
// Decorate
|
||||||
|
$Textual = & new Calendar_Decorator_Textual($Calendar);
|
||||||
|
?>
|
||||||
|
<p>Rendering calendar....</p>
|
||||||
|
<table>
|
||||||
|
<caption><?php echo $Textual->thisMonthName().' '.$Textual->thisYear(); ?></caption>
|
||||||
|
<tr>
|
||||||
|
<?php
|
||||||
|
$dayheaders = $Textual->orderedWeekdays('short');
|
||||||
|
foreach ($dayheaders as $dayheader) {
|
||||||
|
echo '<th>'.$dayheader.'</th>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Calendar->build();
|
||||||
|
while ($Day = $Calendar->fetch()) {
|
||||||
|
if ($Day->isFirst()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
}
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo '<td> </td>';
|
||||||
|
} else {
|
||||||
|
echo '<td>'.$Day->thisDay().'</td>';
|
||||||
|
}
|
||||||
|
if ($Day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
36
campcaster/src/tools/pear/src/Calendar/docs/examples/18.php
Normal file
36
campcaster/src/tools/pear/src/Calendar/docs/examples/18.php
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Wrapper decorator
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php'; // Not really needed but added to help this make sense
|
||||||
|
require_once CALENDAR_ROOT.'Decorator/Wrapper.php';
|
||||||
|
|
||||||
|
class MyBoldDecorator extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
function MyBoldDecorator(&$Calendar)
|
||||||
|
{
|
||||||
|
parent::Calendar_Decorator($Calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
function thisDay()
|
||||||
|
{
|
||||||
|
return '<b>'.parent::thisDay().'</b>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$Month = new Calendar_Month(date('Y'), date('n'));
|
||||||
|
|
||||||
|
$Wrapper = & new Calendar_Decorator_Wrapper($Month);
|
||||||
|
$Wrapper->build();
|
||||||
|
|
||||||
|
echo '<h2>The Wrapper decorator</h2>';
|
||||||
|
echo '<i>Day numbers are rendered in bold</i><br /> <br />';
|
||||||
|
while ($DecoratedDay = $Wrapper->fetch('MyBoldDecorator')) {
|
||||||
|
echo $DecoratedDay->thisDay().'<br />';
|
||||||
|
}
|
||||||
|
?>
|
36
campcaster/src/tools/pear/src/Calendar/docs/examples/18.phps
Normal file
36
campcaster/src/tools/pear/src/Calendar/docs/examples/18.phps
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Wrapper decorator
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator.php'; // Not really needed but added to help this make sense
|
||||||
|
require_once CALENDAR_ROOT.'Decorator/Wrapper.php';
|
||||||
|
|
||||||
|
class MyBoldDecorator extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
function MyBoldDecorator(&$Calendar)
|
||||||
|
{
|
||||||
|
parent::Calendar_Decorator($Calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
function thisDay()
|
||||||
|
{
|
||||||
|
return '<b>'.parent::thisDay().'</b>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$Month = new Calendar_Month(date('Y'), date('n'));
|
||||||
|
|
||||||
|
$Wrapper = & new Calendar_Decorator_Wrapper($Month);
|
||||||
|
$Wrapper->build();
|
||||||
|
|
||||||
|
echo '<h2>The Wrapper decorator</h2>';
|
||||||
|
echo '<i>Day numbers are rendered in bold</i><br /> <br />';
|
||||||
|
while ($DecoratedDay = $Wrapper->fetch('MyBoldDecorator')) {
|
||||||
|
echo $DecoratedDay->thisDay().'<br />';
|
||||||
|
}
|
||||||
|
?>
|
24
campcaster/src/tools/pear/src/Calendar/docs/examples/19.php
Normal file
24
campcaster/src/tools/pear/src/Calendar/docs/examples/19.php
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Weekday decorator
|
||||||
|
*/
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator/Weekday.php';
|
||||||
|
|
||||||
|
$Day = new Calendar_Day(date('Y'), date('n'),date('d'));
|
||||||
|
$WeekDay = & new Calendar_Decorator_Weekday($Day);
|
||||||
|
// $WeekDay->setFirstDay(0); // Make Sunday first Day
|
||||||
|
|
||||||
|
echo 'Yesterday: '.$WeekDay->prevWeekDay().'<br>';
|
||||||
|
echo 'Today: '.$WeekDay->thisWeekDay().'<br>';
|
||||||
|
echo 'Tomorrow: '.$WeekDay->nextWeekDay().'<br>';
|
||||||
|
|
||||||
|
$WeekDay->build();
|
||||||
|
echo 'Hours today:<br>';
|
||||||
|
while ( $Hour = $WeekDay->fetch() ) {
|
||||||
|
echo $Hour->thisHour().'<br>';
|
||||||
|
}
|
||||||
|
?>
|
24
campcaster/src/tools/pear/src/Calendar/docs/examples/19.phps
Normal file
24
campcaster/src/tools/pear/src/Calendar/docs/examples/19.phps
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Weekday decorator
|
||||||
|
*/
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Decorator/Weekday.php';
|
||||||
|
|
||||||
|
$Day = new Calendar_Day(date('Y'), date('n'),date('d'));
|
||||||
|
$WeekDay = & new Calendar_Decorator_Weekday($Day);
|
||||||
|
// $WeekDay->setFirstDay(0); // Make Sunday first Day
|
||||||
|
|
||||||
|
echo 'Yesterday: '.$WeekDay->prevWeekDay().'<br>';
|
||||||
|
echo 'Today: '.$WeekDay->thisWeekDay().'<br>';
|
||||||
|
echo 'Tomorrow: '.$WeekDay->nextWeekDay().'<br>';
|
||||||
|
|
||||||
|
$WeekDay->build();
|
||||||
|
echo 'Hours today:<br>';
|
||||||
|
while ( $Hour = $WeekDay->fetch() ) {
|
||||||
|
echo $Hour->thisHour().'<br>';
|
||||||
|
}
|
||||||
|
?>
|
142
campcaster/src/tools/pear/src/Calendar/docs/examples/2.php
Normal file
142
campcaster/src/tools/pear/src/Calendar/docs/examples/2.php
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: Demonstrates building a calendar for a month using the Week class
|
||||||
|
* Uses UnixTs engine
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
// Force UnixTs engine (default setting)
|
||||||
|
define('CALENDAR_ENGINE','UnixTS');
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weeks.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
// Initialize GET variables if not set
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('d');
|
||||||
|
|
||||||
|
// Build a month object
|
||||||
|
$Month = new Calendar_Month_Weeks($_GET['y'], $_GET['m']);
|
||||||
|
|
||||||
|
// Create an array of days which are "selected"
|
||||||
|
// Used for Week::build() below
|
||||||
|
$selectedDays = array (
|
||||||
|
new Calendar_Day($_GET['y'],$_GET['m'], $_GET['d']),
|
||||||
|
new Calendar_Day($_GET['y'], 12, 25),
|
||||||
|
new Calendar_Day(date('Y'), date('m'), date('d')),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Instruct month to build Week objects
|
||||||
|
$Month->build();
|
||||||
|
|
||||||
|
// Construct strings for next/previous links
|
||||||
|
$PMonth = $Month->prevMonth('object'); // Get previous month as object
|
||||||
|
$prev = $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay();
|
||||||
|
$NMonth = $Month->nextMonth('object');
|
||||||
|
$next = $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay();
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
background-color: silver;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 12px;
|
||||||
|
background-color: while;
|
||||||
|
}
|
||||||
|
.prevMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.nextMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
color: navy;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.selected {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
.empty {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h2>Build with Calendar_Month_Weeks::build() then Calendar_Week::build()</h2>
|
||||||
|
<table class="calendar">
|
||||||
|
<caption>
|
||||||
|
<?php echo date('F Y', $Month->getTimeStamp()); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>W</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>F</th>
|
||||||
|
<th>S</th>
|
||||||
|
<th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ($Week = $Month->fetch()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
// Build the days in the week, passing the selected days
|
||||||
|
$Week->build($selectedDays);
|
||||||
|
while ($Day = $Week->fetch()) {
|
||||||
|
|
||||||
|
// Build a link string for each day
|
||||||
|
$link = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$Day->thisYear().
|
||||||
|
'&m='.$Day->thisMonth().
|
||||||
|
'&d='.$Day->thisDay();
|
||||||
|
|
||||||
|
// Check to see if day is selected
|
||||||
|
if ($Day->isSelected()) {
|
||||||
|
echo '<td class="selected">'.$Day->thisDay().'</td>'."\n";
|
||||||
|
// Check to see if day is empty
|
||||||
|
} else if ($Day->isEmpty()) {
|
||||||
|
echo '<td class="empty">'.$Day->thisDay().'</td>'."\n";
|
||||||
|
} else {
|
||||||
|
echo '<td><a href="'.$link.'">'.$Day->thisDay().'</a></td>'."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '</tr>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $prev; ?>" class="prevMonth"><< </a>
|
||||||
|
</td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $next; ?>" class="nextMonth"> >></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>';
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
142
campcaster/src/tools/pear/src/Calendar/docs/examples/2.phps
Normal file
142
campcaster/src/tools/pear/src/Calendar/docs/examples/2.phps
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: Demonstrates building a calendar for a month using the Week class
|
||||||
|
* Uses UnixTs engine
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
// Force UnixTs engine (default setting)
|
||||||
|
define('CALENDAR_ENGINE','UnixTS');
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weeks.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
// Initialize GET variables if not set
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('d');
|
||||||
|
|
||||||
|
// Build a month object
|
||||||
|
$Month = new Calendar_Month_Weeks($_GET['y'], $_GET['m']);
|
||||||
|
|
||||||
|
// Create an array of days which are "selected"
|
||||||
|
// Used for Week::build() below
|
||||||
|
$selectedDays = array (
|
||||||
|
new Calendar_Day($_GET['y'],$_GET['m'], $_GET['d']),
|
||||||
|
new Calendar_Day($_GET['y'], 12, 25),
|
||||||
|
new Calendar_Day(date('Y'), date('m'), date('d')),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Instruct month to build Week objects
|
||||||
|
$Month->build();
|
||||||
|
|
||||||
|
// Construct strings for next/previous links
|
||||||
|
$PMonth = $Month->prevMonth('object'); // Get previous month as object
|
||||||
|
$prev = $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay();
|
||||||
|
$NMonth = $Month->nextMonth('object');
|
||||||
|
$next = $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay();
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
background-color: silver;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 12px;
|
||||||
|
background-color: while;
|
||||||
|
}
|
||||||
|
.prevMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.nextMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
color: navy;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.selected {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
.empty {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h2>Build with Calendar_Month_Weeks::build() then Calendar_Week::build()</h2>
|
||||||
|
<table class="calendar">
|
||||||
|
<caption>
|
||||||
|
<?php echo date('F Y', $Month->getTimeStamp()); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>W</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>F</th>
|
||||||
|
<th>S</th>
|
||||||
|
<th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ($Week = $Month->fetch()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
// Build the days in the week, passing the selected days
|
||||||
|
$Week->build($selectedDays);
|
||||||
|
while ($Day = $Week->fetch()) {
|
||||||
|
|
||||||
|
// Build a link string for each day
|
||||||
|
$link = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$Day->thisYear().
|
||||||
|
'&m='.$Day->thisMonth().
|
||||||
|
'&d='.$Day->thisDay();
|
||||||
|
|
||||||
|
// Check to see if day is selected
|
||||||
|
if ($Day->isSelected()) {
|
||||||
|
echo '<td class="selected">'.$Day->thisDay().'</td>'."\n";
|
||||||
|
// Check to see if day is empty
|
||||||
|
} else if ($Day->isEmpty()) {
|
||||||
|
echo '<td class="empty">'.$Day->thisDay().'</td>'."\n";
|
||||||
|
} else {
|
||||||
|
echo '<td><a href="'.$link.'">'.$Day->thisDay().'</a></td>'."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '</tr>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $prev; ?>" class="prevMonth"><< </a>
|
||||||
|
</td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo $next; ?>" class="nextMonth"> >></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>';
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
240
campcaster/src/tools/pear/src/Calendar/docs/examples/20.php
Normal file
240
campcaster/src/tools/pear/src/Calendar/docs/examples/20.php
Normal file
|
@ -0,0 +1,240 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates a decorator used to "attach a payload" to a selection
|
||||||
|
* to make it available when iterating over calendar children
|
||||||
|
*/
|
||||||
|
|
||||||
|
//if you use ISO-8601 dates, switch to PearDate engine
|
||||||
|
define('CALENDAR_ENGINE', 'PearDate');
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once CALENDAR_ROOT . 'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT . 'Day.php';
|
||||||
|
require_once CALENDAR_ROOT . 'Decorator.php';
|
||||||
|
|
||||||
|
// accepts multiple entries
|
||||||
|
class DiaryEvent extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
var $entries = array();
|
||||||
|
|
||||||
|
function DiaryEvent($calendar) {
|
||||||
|
Calendar_Decorator::Calendar_Decorator($calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addEntry($entry) {
|
||||||
|
$this->entries[] = $entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEntry() {
|
||||||
|
$entry = each($this->entries);
|
||||||
|
if ($entry) {
|
||||||
|
return $entry['value'];
|
||||||
|
} else {
|
||||||
|
reset($this->entries);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class MonthPayload_Decorator extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
//Calendar engine
|
||||||
|
var $cE;
|
||||||
|
var $tableHelper;
|
||||||
|
|
||||||
|
var $year;
|
||||||
|
var $month;
|
||||||
|
var $firstDay = false;
|
||||||
|
|
||||||
|
function build($events=array())
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT . 'Day.php';
|
||||||
|
require_once CALENDAR_ROOT . 'Table/Helper.php';
|
||||||
|
|
||||||
|
$this->tableHelper = & new Calendar_Table_Helper($this, $this->firstDay);
|
||||||
|
$this->cE = & $this->getEngine();
|
||||||
|
$this->year = $this->thisYear();
|
||||||
|
$this->month = $this->thisMonth();
|
||||||
|
|
||||||
|
$daysInMonth = $this->cE->getDaysInMonth($this->year, $this->month);
|
||||||
|
for ($i=1; $i<=$daysInMonth; $i++) {
|
||||||
|
$Day = new Calendar_Day(2000,1,1); // Create Day with dummy values
|
||||||
|
$Day->setTimeStamp($this->cE->dateToStamp($this->year, $this->month, $i));
|
||||||
|
$this->children[$i] = new DiaryEvent($Day);
|
||||||
|
}
|
||||||
|
if (count($events) > 0) {
|
||||||
|
$this->setSelection($events);
|
||||||
|
}
|
||||||
|
Calendar_Month_Weekdays::buildEmptyDaysBefore();
|
||||||
|
Calendar_Month_Weekdays::shiftDays();
|
||||||
|
Calendar_Month_Weekdays::buildEmptyDaysAfter();
|
||||||
|
Calendar_Month_Weekdays::setWeekMarkers();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setSelection($events)
|
||||||
|
{
|
||||||
|
$daysInMonth = $this->cE->getDaysInMonth($this->year, $this->month);
|
||||||
|
for ($i=1; $i<=$daysInMonth; $i++) {
|
||||||
|
$stamp1 = $this->cE->dateToStamp($this->year, $this->month, $i);
|
||||||
|
$stamp2 = $this->cE->dateToStamp($this->year, $this->month, $i+1);
|
||||||
|
foreach ($events as $event) {
|
||||||
|
if (($stamp1 >= $event['start'] && $stamp1 < $event['end']) ||
|
||||||
|
($stamp2 >= $event['start'] && $stamp2 < $event['end']) ||
|
||||||
|
($stamp1 <= $event['start'] && $stamp2 > $event['end'])
|
||||||
|
) {
|
||||||
|
$this->children[$i]->addEntry($event);
|
||||||
|
$this->children[$i]->setSelected();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetch()
|
||||||
|
{
|
||||||
|
$child = each($this->children);
|
||||||
|
if ($child) {
|
||||||
|
return $child['value'];
|
||||||
|
} else {
|
||||||
|
reset($this->children);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calendar instance used to get the dates in the preferred format:
|
||||||
|
// you can switch Calendar Engine and the example still works
|
||||||
|
$cal = new Calendar;
|
||||||
|
|
||||||
|
$events = array();
|
||||||
|
//add some events
|
||||||
|
$events[] = array(
|
||||||
|
'start' => $cal->cE->dateToStamp(2004, 6, 1, 10),
|
||||||
|
'end' => $cal->cE->dateToStamp(2004, 6, 1, 12),
|
||||||
|
'desc' => 'Important meeting'
|
||||||
|
);
|
||||||
|
$events[] = array(
|
||||||
|
'start' => $cal->cE->dateToStamp(2004, 6, 1, 21),
|
||||||
|
'end' => $cal->cE->dateToStamp(2004, 6, 1, 23, 59),
|
||||||
|
'desc' => 'Dinner with the boss'
|
||||||
|
);
|
||||||
|
$events[] = array(
|
||||||
|
'start' => $cal->cE->dateToStamp(2004, 6, 5),
|
||||||
|
'end' => $cal->cE->dateToStamp(2004, 6, 10, 23, 59),
|
||||||
|
'desc' => 'Holidays!'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$Month = & new Calendar_Month_Weekdays(2004, 6);
|
||||||
|
$MonthDecorator = new MonthPayload_Decorator($Month);
|
||||||
|
$MonthDecorator->build($events);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 14pt;
|
||||||
|
padding-bottom: 4pt;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #e7e3e7;
|
||||||
|
padding: 5pt;
|
||||||
|
line-height: 150%;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
td.calCell {
|
||||||
|
border: 1px solid #b5bece;
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
td.calCellEmpty {
|
||||||
|
background-color: #f3f3f7;
|
||||||
|
}
|
||||||
|
td.calCellBusy {
|
||||||
|
background-color: #efeffa;
|
||||||
|
}
|
||||||
|
div.dayNumber {
|
||||||
|
text-align: right;
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: 5pt;
|
||||||
|
padding: 0 10pt 0 12pt;
|
||||||
|
list-style-type: square;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h2>Sample Calendar Payload Decorator (using <?php echo CALENDAR_ENGINE; ?> engine)</h2>
|
||||||
|
<table class="calendar" width="98%" cellspacing="0" cellpadding="0">
|
||||||
|
<caption>
|
||||||
|
<?php echo $MonthDecorator->thisMonth().' / '.$MonthDecorator->thisYear(); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>Monday</th>
|
||||||
|
<th>Tuesday</th>
|
||||||
|
<th>Wednesday</th>
|
||||||
|
<th>Thursday</th>
|
||||||
|
<th>Friday</th>
|
||||||
|
<th>Saturday</th>
|
||||||
|
<th>Sunday</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ($Day = $MonthDecorator->fetch()) {
|
||||||
|
|
||||||
|
if ($Day->isFirst()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<td class="calCell';
|
||||||
|
if ($Day->isSelected()) {
|
||||||
|
echo ' calCellBusy';
|
||||||
|
} elseif ($Day->isEmpty()) {
|
||||||
|
echo ' calCellEmpty';
|
||||||
|
}
|
||||||
|
echo '">';
|
||||||
|
echo '<div class="dayNumber">'.$Day->thisDay().'</div>';
|
||||||
|
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo ' ';
|
||||||
|
} else {
|
||||||
|
echo '<div class="dayContents"><ul>';
|
||||||
|
while ($entry = $Day->getEntry()) {
|
||||||
|
echo '<li>'.$entry['desc'].'</li>';
|
||||||
|
//you can print the time range as well
|
||||||
|
}
|
||||||
|
echo '</ul></div>';
|
||||||
|
}
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
if ($Day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
240
campcaster/src/tools/pear/src/Calendar/docs/examples/20.phps
Normal file
240
campcaster/src/tools/pear/src/Calendar/docs/examples/20.phps
Normal file
|
@ -0,0 +1,240 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates a decorator used to "attach a payload" to a selection
|
||||||
|
* to make it available when iterating over calendar children
|
||||||
|
*/
|
||||||
|
|
||||||
|
//if you use ISO-8601 dates, switch to PearDate engine
|
||||||
|
define('CALENDAR_ENGINE', 'PearDate');
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once CALENDAR_ROOT . 'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT . 'Day.php';
|
||||||
|
require_once CALENDAR_ROOT . 'Decorator.php';
|
||||||
|
|
||||||
|
// accepts multiple entries
|
||||||
|
class DiaryEvent extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
var $entries = array();
|
||||||
|
|
||||||
|
function DiaryEvent($calendar) {
|
||||||
|
Calendar_Decorator::Calendar_Decorator($calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addEntry($entry) {
|
||||||
|
$this->entries[] = $entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEntry() {
|
||||||
|
$entry = each($this->entries);
|
||||||
|
if ($entry) {
|
||||||
|
return $entry['value'];
|
||||||
|
} else {
|
||||||
|
reset($this->entries);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class MonthPayload_Decorator extends Calendar_Decorator
|
||||||
|
{
|
||||||
|
//Calendar engine
|
||||||
|
var $cE;
|
||||||
|
var $tableHelper;
|
||||||
|
|
||||||
|
var $year;
|
||||||
|
var $month;
|
||||||
|
var $firstDay = false;
|
||||||
|
|
||||||
|
function build($events=array())
|
||||||
|
{
|
||||||
|
require_once CALENDAR_ROOT . 'Day.php';
|
||||||
|
require_once CALENDAR_ROOT . 'Table/Helper.php';
|
||||||
|
|
||||||
|
$this->tableHelper = & new Calendar_Table_Helper($this, $this->firstDay);
|
||||||
|
$this->cE = & $this->getEngine();
|
||||||
|
$this->year = $this->thisYear();
|
||||||
|
$this->month = $this->thisMonth();
|
||||||
|
|
||||||
|
$daysInMonth = $this->cE->getDaysInMonth($this->year, $this->month);
|
||||||
|
for ($i=1; $i<=$daysInMonth; $i++) {
|
||||||
|
$Day = new Calendar_Day(2000,1,1); // Create Day with dummy values
|
||||||
|
$Day->setTimeStamp($this->cE->dateToStamp($this->year, $this->month, $i));
|
||||||
|
$this->children[$i] = new DiaryEvent($Day);
|
||||||
|
}
|
||||||
|
if (count($events) > 0) {
|
||||||
|
$this->setSelection($events);
|
||||||
|
}
|
||||||
|
Calendar_Month_Weekdays::buildEmptyDaysBefore();
|
||||||
|
Calendar_Month_Weekdays::shiftDays();
|
||||||
|
Calendar_Month_Weekdays::buildEmptyDaysAfter();
|
||||||
|
Calendar_Month_Weekdays::setWeekMarkers();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setSelection($events)
|
||||||
|
{
|
||||||
|
$daysInMonth = $this->cE->getDaysInMonth($this->year, $this->month);
|
||||||
|
for ($i=1; $i<=$daysInMonth; $i++) {
|
||||||
|
$stamp1 = $this->cE->dateToStamp($this->year, $this->month, $i);
|
||||||
|
$stamp2 = $this->cE->dateToStamp($this->year, $this->month, $i+1);
|
||||||
|
foreach ($events as $event) {
|
||||||
|
if (($stamp1 >= $event['start'] && $stamp1 < $event['end']) ||
|
||||||
|
($stamp2 >= $event['start'] && $stamp2 < $event['end']) ||
|
||||||
|
($stamp1 <= $event['start'] && $stamp2 > $event['end'])
|
||||||
|
) {
|
||||||
|
$this->children[$i]->addEntry($event);
|
||||||
|
$this->children[$i]->setSelected();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetch()
|
||||||
|
{
|
||||||
|
$child = each($this->children);
|
||||||
|
if ($child) {
|
||||||
|
return $child['value'];
|
||||||
|
} else {
|
||||||
|
reset($this->children);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calendar instance used to get the dates in the preferred format:
|
||||||
|
// you can switch Calendar Engine and the example still works
|
||||||
|
$cal = new Calendar;
|
||||||
|
|
||||||
|
$events = array();
|
||||||
|
//add some events
|
||||||
|
$events[] = array(
|
||||||
|
'start' => $cal->cE->dateToStamp(2004, 6, 1, 10),
|
||||||
|
'end' => $cal->cE->dateToStamp(2004, 6, 1, 12),
|
||||||
|
'desc' => 'Important meeting'
|
||||||
|
);
|
||||||
|
$events[] = array(
|
||||||
|
'start' => $cal->cE->dateToStamp(2004, 6, 1, 21),
|
||||||
|
'end' => $cal->cE->dateToStamp(2004, 6, 1, 23, 59),
|
||||||
|
'desc' => 'Dinner with the boss'
|
||||||
|
);
|
||||||
|
$events[] = array(
|
||||||
|
'start' => $cal->cE->dateToStamp(2004, 6, 5),
|
||||||
|
'end' => $cal->cE->dateToStamp(2004, 6, 10, 23, 59),
|
||||||
|
'desc' => 'Holidays!'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$Month = & new Calendar_Month_Weekdays(2004, 6);
|
||||||
|
$MonthDecorator = new MonthPayload_Decorator($Month);
|
||||||
|
$MonthDecorator->build($events);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 14pt;
|
||||||
|
padding-bottom: 4pt;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #e7e3e7;
|
||||||
|
padding: 5pt;
|
||||||
|
line-height: 150%;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
td.calCell {
|
||||||
|
border: 1px solid #b5bece;
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
td.calCellEmpty {
|
||||||
|
background-color: #f3f3f7;
|
||||||
|
}
|
||||||
|
td.calCellBusy {
|
||||||
|
background-color: #efeffa;
|
||||||
|
}
|
||||||
|
div.dayNumber {
|
||||||
|
text-align: right;
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: 5pt;
|
||||||
|
padding: 0 10pt 0 12pt;
|
||||||
|
list-style-type: square;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h2>Sample Calendar Payload Decorator (using <?php echo CALENDAR_ENGINE; ?> engine)</h2>
|
||||||
|
<table class="calendar" width="98%" cellspacing="0" cellpadding="0">
|
||||||
|
<caption>
|
||||||
|
<?php echo $MonthDecorator->thisMonth().' / '.$MonthDecorator->thisYear(); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>Monday</th>
|
||||||
|
<th>Tuesday</th>
|
||||||
|
<th>Wednesday</th>
|
||||||
|
<th>Thursday</th>
|
||||||
|
<th>Friday</th>
|
||||||
|
<th>Saturday</th>
|
||||||
|
<th>Sunday</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ($Day = $MonthDecorator->fetch()) {
|
||||||
|
|
||||||
|
if ($Day->isFirst()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<td class="calCell';
|
||||||
|
if ($Day->isSelected()) {
|
||||||
|
echo ' calCellBusy';
|
||||||
|
} elseif ($Day->isEmpty()) {
|
||||||
|
echo ' calCellEmpty';
|
||||||
|
}
|
||||||
|
echo '">';
|
||||||
|
echo '<div class="dayNumber">'.$Day->thisDay().'</div>';
|
||||||
|
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo ' ';
|
||||||
|
} else {
|
||||||
|
echo '<div class="dayContents"><ul>';
|
||||||
|
while ($entry = $Day->getEntry()) {
|
||||||
|
echo '<li>'.$entry['desc'].'</li>';
|
||||||
|
//you can print the time range as well
|
||||||
|
}
|
||||||
|
echo '</ul></div>';
|
||||||
|
}
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
if ($Day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
139
campcaster/src/tools/pear/src/Calendar/docs/examples/21.php
Normal file
139
campcaster/src/tools/pear/src/Calendar/docs/examples/21.php
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: a complete year with numeric week numbers
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weeks.php';
|
||||||
|
|
||||||
|
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS);
|
||||||
|
|
||||||
|
if (!isset($_GET['year'])) $_GET['year'] = date('Y');
|
||||||
|
|
||||||
|
$week_types = array(
|
||||||
|
'n_in_year',
|
||||||
|
'n_in_month',
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isset($_GET['week_type']) || !in_array($_GET['week_type'],$week_types) ) {
|
||||||
|
$_GET['week_type'] = 'n_in_year';
|
||||||
|
}
|
||||||
|
|
||||||
|
$Year = new Calendar_Year($_GET['year']);
|
||||||
|
|
||||||
|
$Year->build();
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> <?php echo $Year->thisYear(); ?> </title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
font-family: Georgia, serif;
|
||||||
|
}
|
||||||
|
caption.year {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 120%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
caption.month {
|
||||||
|
font-size: 110%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
table.month {
|
||||||
|
border: thin groove #800080
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
text-align: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#prev {
|
||||||
|
float: left;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#next {
|
||||||
|
float: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#week_type {
|
||||||
|
float: none;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
.weekNumbers {
|
||||||
|
background-color: #e5e5f5;
|
||||||
|
padding-right: 3pt;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table>
|
||||||
|
<caption class="year">
|
||||||
|
<?php echo $Year->thisYear(); ?>
|
||||||
|
<div id="next">
|
||||||
|
<a href="?year=<?php echo $Year->nextYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>">>></a>
|
||||||
|
</div>
|
||||||
|
<div id="prev">
|
||||||
|
<a href="?year=<?php echo $Year->prevYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>"><<</a>
|
||||||
|
</div>
|
||||||
|
<div id="week_type">
|
||||||
|
<a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_year">Weeks by Year</a> :
|
||||||
|
<a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_month">Weeks by Month</a>
|
||||||
|
</div>
|
||||||
|
</caption>
|
||||||
|
<?php
|
||||||
|
$i = 0;
|
||||||
|
while ($Month = $Year->fetch()) {
|
||||||
|
|
||||||
|
switch ($i) {
|
||||||
|
case 0:
|
||||||
|
echo "<tr>\n";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
case 6:
|
||||||
|
case 9:
|
||||||
|
echo "</tr>\n<tr>\n";
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
echo "</tr>\n";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "<td>\n<table class=\"month\">\n";
|
||||||
|
echo '<caption class="month">'.date('F', $Month->thisMonth(TRUE)).'</caption>';
|
||||||
|
echo '<colgroup><col class="weekNumbers"><col span="7"></colgroup>'."\n";
|
||||||
|
echo "<tr>\n<th>Week</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>\n</tr>";
|
||||||
|
$Month->build();
|
||||||
|
while ($Week = $Month->fetch()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
echo '<td>'.$Week->thisWeek($_GET['week_type'])."</td>\n";
|
||||||
|
$Week->build();
|
||||||
|
|
||||||
|
while ($Day = $Week->fetch()) {
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo "<td> </td>\n";
|
||||||
|
} else {
|
||||||
|
echo "<td>".$Day->thisDay()."</td>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "</table>\n</td>\n";
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<p>Took: <?php echo ((getmicrotime()-$start)); ?></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
139
campcaster/src/tools/pear/src/Calendar/docs/examples/21.phps
Normal file
139
campcaster/src/tools/pear/src/Calendar/docs/examples/21.phps
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: a complete year with numeric week numbers
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weeks.php';
|
||||||
|
|
||||||
|
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS);
|
||||||
|
|
||||||
|
if (!isset($_GET['year'])) $_GET['year'] = date('Y');
|
||||||
|
|
||||||
|
$week_types = array(
|
||||||
|
'n_in_year',
|
||||||
|
'n_in_month',
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isset($_GET['week_type']) || !in_array($_GET['week_type'],$week_types) ) {
|
||||||
|
$_GET['week_type'] = 'n_in_year';
|
||||||
|
}
|
||||||
|
|
||||||
|
$Year = new Calendar_Year($_GET['year']);
|
||||||
|
|
||||||
|
$Year->build();
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> <?php echo $Year->thisYear(); ?> </title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
font-family: Georgia, serif;
|
||||||
|
}
|
||||||
|
caption.year {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 120%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
caption.month {
|
||||||
|
font-size: 110%;
|
||||||
|
font-color: navy;
|
||||||
|
}
|
||||||
|
table.month {
|
||||||
|
border: thin groove #800080
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
text-align: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#prev {
|
||||||
|
float: left;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#next {
|
||||||
|
float: right;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
#week_type {
|
||||||
|
float: none;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
.weekNumbers {
|
||||||
|
background-color: #e5e5f5;
|
||||||
|
padding-right: 3pt;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table>
|
||||||
|
<caption class="year">
|
||||||
|
<?php echo $Year->thisYear(); ?>
|
||||||
|
<div id="next">
|
||||||
|
<a href="?year=<?php echo $Year->nextYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>">>></a>
|
||||||
|
</div>
|
||||||
|
<div id="prev">
|
||||||
|
<a href="?year=<?php echo $Year->prevYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>"><<</a>
|
||||||
|
</div>
|
||||||
|
<div id="week_type">
|
||||||
|
<a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_year">Weeks by Year</a> :
|
||||||
|
<a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_month">Weeks by Month</a>
|
||||||
|
</div>
|
||||||
|
</caption>
|
||||||
|
<?php
|
||||||
|
$i = 0;
|
||||||
|
while ($Month = $Year->fetch()) {
|
||||||
|
|
||||||
|
switch ($i) {
|
||||||
|
case 0:
|
||||||
|
echo "<tr>\n";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
case 6:
|
||||||
|
case 9:
|
||||||
|
echo "</tr>\n<tr>\n";
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
echo "</tr>\n";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "<td>\n<table class=\"month\">\n";
|
||||||
|
echo '<caption class="month">'.date('F', $Month->thisMonth(TRUE)).'</caption>';
|
||||||
|
echo '<colgroup><col class="weekNumbers"><col span="7"></colgroup>'."\n";
|
||||||
|
echo "<tr>\n<th>Week</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>\n</tr>";
|
||||||
|
$Month->build();
|
||||||
|
while ($Week = $Month->fetch()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
echo '<td>'.$Week->thisWeek($_GET['week_type'])."</td>\n";
|
||||||
|
$Week->build();
|
||||||
|
|
||||||
|
while ($Day = $Week->fetch()) {
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo "<td> </td>\n";
|
||||||
|
} else {
|
||||||
|
echo "<td>".$Day->thisDay()."</td>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "</table>\n</td>\n";
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<p>Took: <?php echo ((getmicrotime()-$start)); ?></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
46
campcaster/src/tools/pear/src/Calendar/docs/examples/22.php
Normal file
46
campcaster/src/tools/pear/src/Calendar/docs/examples/22.php
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Uri util
|
||||||
|
*/
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Util/Uri.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['jahr'])) $_GET['jahr'] = date('Y');
|
||||||
|
if (!isset($_GET['monat'])) $_GET['monat'] = date('m');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Calendar = new Calendar_Month_Weekdays($_GET['jahr'], $_GET['monat']);
|
||||||
|
|
||||||
|
echo ( '<p>The current month is '
|
||||||
|
.$Calendar->thisMonth().' of year '.$Calendar->thisYear().'</p>');
|
||||||
|
|
||||||
|
$Uri = & new Calendar_Util_Uri('jahr','monat');
|
||||||
|
$Uri->setFragments('jahr','monat');
|
||||||
|
|
||||||
|
echo "\"Vector\" URIs<pre>";
|
||||||
|
echo ( "Previous Uri:\t".htmlentities($Uri->prev($Calendar, 'month'))."\n" );
|
||||||
|
echo ( "This Uri:\t".htmlentities($Uri->this($Calendar, 'month'))."\n" );
|
||||||
|
echo ( "Next Uri:\t".htmlentities($Uri->next($Calendar, 'month'))."\n" );
|
||||||
|
echo "</pre>";
|
||||||
|
|
||||||
|
// Switch to scalar URIs
|
||||||
|
$Uri->separator = '/'; // Default is &
|
||||||
|
$Uri->scalar = true; // Omit variable names
|
||||||
|
|
||||||
|
echo "\"Scalar\" URIs<pre>";
|
||||||
|
echo ( "Previous Uri:\t".$Uri->prev($Calendar, 'month')."\n" );
|
||||||
|
echo ( "This Uri:\t".$Uri->this($Calendar, 'month')."\n" );
|
||||||
|
echo ( "Next Uri:\t".$Uri->next($Calendar, 'month')."\n" );
|
||||||
|
echo "</pre>";
|
||||||
|
|
||||||
|
// Restore the vector URIs
|
||||||
|
$Uri->separator = '&';
|
||||||
|
$Uri->scalar = false;
|
||||||
|
?>
|
||||||
|
<p>
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->prev($Calendar, 'month'));?>">Prev</a> :
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->next($Calendar, 'month'));?>">Next</a>
|
||||||
|
</p>
|
46
campcaster/src/tools/pear/src/Calendar/docs/examples/22.phps
Normal file
46
campcaster/src/tools/pear/src/Calendar/docs/examples/22.phps
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Uri util
|
||||||
|
*/
|
||||||
|
if (!@include 'Calendar/Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Util/Uri.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['jahr'])) $_GET['jahr'] = date('Y');
|
||||||
|
if (!isset($_GET['monat'])) $_GET['monat'] = date('m');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Calendar = new Calendar_Month_Weekdays($_GET['jahr'], $_GET['monat']);
|
||||||
|
|
||||||
|
echo ( '<p>The current month is '
|
||||||
|
.$Calendar->thisMonth().' of year '.$Calendar->thisYear().'</p>');
|
||||||
|
|
||||||
|
$Uri = & new Calendar_Util_Uri('jahr','monat');
|
||||||
|
$Uri->setFragments('jahr','monat');
|
||||||
|
|
||||||
|
echo "\"Vector\" URIs<pre>";
|
||||||
|
echo ( "Previous Uri:\t".htmlentities($Uri->prev($Calendar, 'month'))."\n" );
|
||||||
|
echo ( "This Uri:\t".htmlentities($Uri->this($Calendar, 'month'))."\n" );
|
||||||
|
echo ( "Next Uri:\t".htmlentities($Uri->next($Calendar, 'month'))."\n" );
|
||||||
|
echo "</pre>";
|
||||||
|
|
||||||
|
// Switch to scalar URIs
|
||||||
|
$Uri->separator = '/'; // Default is &
|
||||||
|
$Uri->scalar = true; // Omit variable names
|
||||||
|
|
||||||
|
echo "\"Scalar\" URIs<pre>";
|
||||||
|
echo ( "Previous Uri:\t".$Uri->prev($Calendar, 'month')."\n" );
|
||||||
|
echo ( "This Uri:\t".$Uri->this($Calendar, 'month')."\n" );
|
||||||
|
echo ( "Next Uri:\t".$Uri->next($Calendar, 'month')."\n" );
|
||||||
|
echo "</pre>";
|
||||||
|
|
||||||
|
// Restore the vector URIs
|
||||||
|
$Uri->separator = '&';
|
||||||
|
$Uri->scalar = false;
|
||||||
|
?>
|
||||||
|
<p>
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->prev($Calendar, 'month'));?>">Prev</a> :
|
||||||
|
<a href="<?php echo($_SERVER['PHP_SELF'].'?'.$Uri->next($Calendar, 'month'));?>">Next</a>
|
||||||
|
</p>
|
66
campcaster/src/tools/pear/src/Calendar/docs/examples/23.php
Normal file
66
campcaster/src/tools/pear/src/Calendar/docs/examples/23.php
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Textual util
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month'.DIRECTORY_SEPARATOR.'Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Util'.DIRECTORY_SEPARATOR.'Textual.php';
|
||||||
|
|
||||||
|
// Could change language like this
|
||||||
|
// setlocale (LC_TIME, "de_DE"); // Unix based (probably)
|
||||||
|
// setlocale (LC_TIME, "ge"); // Windows
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Util_Textual::monthNames('long');<pre>";
|
||||||
|
print_r(Calendar_Util_Textual::monthNames('long'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Util_Textual::weekdayNames('two');<pre>";
|
||||||
|
print_r(Calendar_Util_Textual::weekdayNames('two'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Creating: new Calendar_Day(date('Y'), date('n'), date('d'));<br />";
|
||||||
|
$Calendar = new Calendar_Day(date('Y'), date('n'), date('d'));
|
||||||
|
|
||||||
|
echo '<hr>Previous month is: '.Calendar_Util_Textual::prevMonthName($Calendar,'two').'<br />';
|
||||||
|
echo 'This month is: '.Calendar_Util_Textual::thisMonthName($Calendar,'short').'<br />';
|
||||||
|
echo 'Next month is: '.Calendar_Util_Textual::nextMonthName($Calendar).'<br /><hr />';
|
||||||
|
echo 'Previous day is: '.Calendar_Util_Textual::prevDayName($Calendar).'<br />';
|
||||||
|
echo 'This day is: '.Calendar_Util_Textual::thisDayName($Calendar,'short').'<br />';
|
||||||
|
echo 'Next day is: '.Calendar_Util_Textual::nextDayName($Calendar,'one').'<br /><hr />';
|
||||||
|
|
||||||
|
echo "Creating: new Calendar_Month_Weekdays(date('Y'), date('n'), 6); - Saturday is first day of week<br />";
|
||||||
|
$Calendar = new Calendar_Month_Weekdays(date('Y'), date('n'), 6);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<p>Rendering calendar....</p>
|
||||||
|
<table>
|
||||||
|
<caption><?php echo Calendar_Util_Textual::thisMonthName($Calendar).' '.$Calendar->thisYear(); ?></caption>
|
||||||
|
<tr>
|
||||||
|
<?php
|
||||||
|
$dayheaders = Calendar_Util_Textual::orderedWeekdays($Calendar,'short');
|
||||||
|
foreach ($dayheaders as $dayheader) {
|
||||||
|
echo '<th>'.$dayheader.'</th>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Calendar->build();
|
||||||
|
while ($Day = $Calendar->fetch()) {
|
||||||
|
if ($Day->isFirst()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
}
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo '<td> </td>';
|
||||||
|
} else {
|
||||||
|
echo '<td>'.$Day->thisDay().'</td>';
|
||||||
|
}
|
||||||
|
if ($Day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
66
campcaster/src/tools/pear/src/Calendar/docs/examples/23.phps
Normal file
66
campcaster/src/tools/pear/src/Calendar/docs/examples/23.phps
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: demonstrates using the Textual util
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month'.DIRECTORY_SEPARATOR.'Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Util'.DIRECTORY_SEPARATOR.'Textual.php';
|
||||||
|
|
||||||
|
// Could change language like this
|
||||||
|
// setlocale (LC_TIME, "de_DE"); // Unix based (probably)
|
||||||
|
// setlocale (LC_TIME, "ge"); // Windows
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Util_Textual::monthNames('long');<pre>";
|
||||||
|
print_r(Calendar_Util_Textual::monthNames('long'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Calling: Calendar_Util_Textual::weekdayNames('two');<pre>";
|
||||||
|
print_r(Calendar_Util_Textual::weekdayNames('two'));
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo "<hr>Creating: new Calendar_Day(date('Y'), date('n'), date('d'));<br />";
|
||||||
|
$Calendar = new Calendar_Day(date('Y'), date('n'), date('d'));
|
||||||
|
|
||||||
|
echo '<hr>Previous month is: '.Calendar_Util_Textual::prevMonthName($Calendar,'two').'<br />';
|
||||||
|
echo 'This month is: '.Calendar_Util_Textual::thisMonthName($Calendar,'short').'<br />';
|
||||||
|
echo 'Next month is: '.Calendar_Util_Textual::nextMonthName($Calendar).'<br /><hr />';
|
||||||
|
echo 'Previous day is: '.Calendar_Util_Textual::prevDayName($Calendar).'<br />';
|
||||||
|
echo 'This day is: '.Calendar_Util_Textual::thisDayName($Calendar,'short').'<br />';
|
||||||
|
echo 'Next day is: '.Calendar_Util_Textual::nextDayName($Calendar,'one').'<br /><hr />';
|
||||||
|
|
||||||
|
echo "Creating: new Calendar_Month_Weekdays(date('Y'), date('n'), 6); - Saturday is first day of week<br />";
|
||||||
|
$Calendar = new Calendar_Month_Weekdays(date('Y'), date('n'), 6);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<p>Rendering calendar....</p>
|
||||||
|
<table>
|
||||||
|
<caption><?php echo Calendar_Util_Textual::thisMonthName($Calendar).' '.$Calendar->thisYear(); ?></caption>
|
||||||
|
<tr>
|
||||||
|
<?php
|
||||||
|
$dayheaders = Calendar_Util_Textual::orderedWeekdays($Calendar,'short');
|
||||||
|
foreach ($dayheaders as $dayheader) {
|
||||||
|
echo '<th>'.$dayheader.'</th>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Calendar->build();
|
||||||
|
while ($Day = $Calendar->fetch()) {
|
||||||
|
if ($Day->isFirst()) {
|
||||||
|
echo "<tr>\n";
|
||||||
|
}
|
||||||
|
if ($Day->isEmpty()) {
|
||||||
|
echo '<td> </td>';
|
||||||
|
} else {
|
||||||
|
echo '<td>'.$Day->thisDay().'</td>';
|
||||||
|
}
|
||||||
|
if ($Day->isLast()) {
|
||||||
|
echo "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
134
campcaster/src/tools/pear/src/Calendar/docs/examples/3.php
Normal file
134
campcaster/src/tools/pear/src/Calendar/docs/examples/3.php
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: Performs same behaviour as 2.php but uses Month::buildWeekDays()
|
||||||
|
* and is faster
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('d');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Month = new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
|
||||||
|
|
||||||
|
// Construct strings for next/previous links
|
||||||
|
$PMonth = $Month->prevMonth('object'); // Get previous month as object
|
||||||
|
$prev = $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay();
|
||||||
|
$NMonth = $Month->nextMonth('object');
|
||||||
|
$next = $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay();
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
background-color: silver;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 12px;
|
||||||
|
background-color: while;
|
||||||
|
}
|
||||||
|
.prevMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.nextMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
color: navy;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.selected {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$selectedDays = array (
|
||||||
|
new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']),
|
||||||
|
new Calendar_Day($_GET['y'],12,25),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Build the days in the month
|
||||||
|
$Month->build($selectedDays);
|
||||||
|
?>
|
||||||
|
<h2>Built with Calendar_Month_Weekday::build()</h2>
|
||||||
|
<table class="calendar">
|
||||||
|
<caption>
|
||||||
|
<?php echo ( date('F Y',$Month->getTimeStamp())); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>W</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>F</th>
|
||||||
|
<th>S</th>
|
||||||
|
<th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
|
||||||
|
// Build a link string for each day
|
||||||
|
$link = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$Day->thisYear().
|
||||||
|
'&m='.$Day->thisMonth().
|
||||||
|
'&d='.$Day->thisDay();
|
||||||
|
|
||||||
|
// isFirst() to find start of week
|
||||||
|
if ( $Day->isFirst() )
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
|
||||||
|
if ( $Day->isSelected() ) {
|
||||||
|
echo ( "<td class=\"selected\">".$Day->thisDay()."</td>\n" );
|
||||||
|
} else if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td> </td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td><a href=\"".$link."\">".$Day->thisDay()."</a></td>\n" );
|
||||||
|
}
|
||||||
|
|
||||||
|
// isLast() to find end of week
|
||||||
|
if ( $Day->isLast() )
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo ($prev);?>" class="prevMonth"><< </a>
|
||||||
|
</td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo ($next);?>" class="nextMonth"> >></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
134
campcaster/src/tools/pear/src/Calendar/docs/examples/3.phps
Normal file
134
campcaster/src/tools/pear/src/Calendar/docs/examples/3.phps
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: Performs same behaviour as 2.php but uses Month::buildWeekDays()
|
||||||
|
* and is faster
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('m');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('d');
|
||||||
|
|
||||||
|
// Build the month
|
||||||
|
$Month = new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
|
||||||
|
|
||||||
|
// Construct strings for next/previous links
|
||||||
|
$PMonth = $Month->prevMonth('object'); // Get previous month as object
|
||||||
|
$prev = $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay();
|
||||||
|
$NMonth = $Month->nextMonth('object');
|
||||||
|
$next = $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay();
|
||||||
|
?>
|
||||||
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar </title>
|
||||||
|
<style text="text/css">
|
||||||
|
table {
|
||||||
|
background-color: silver;
|
||||||
|
}
|
||||||
|
caption {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 12px;
|
||||||
|
background-color: while;
|
||||||
|
}
|
||||||
|
.prevMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.nextMonth {
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
color: navy;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
font-family: verdana;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.selected {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$selectedDays = array (
|
||||||
|
new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']),
|
||||||
|
new Calendar_Day($_GET['y'],12,25),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Build the days in the month
|
||||||
|
$Month->build($selectedDays);
|
||||||
|
?>
|
||||||
|
<h2>Built with Calendar_Month_Weekday::build()</h2>
|
||||||
|
<table class="calendar">
|
||||||
|
<caption>
|
||||||
|
<?php echo ( date('F Y',$Month->getTimeStamp())); ?>
|
||||||
|
</caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>W</th>
|
||||||
|
<th>T</th>
|
||||||
|
<th>F</th>
|
||||||
|
<th>S</th>
|
||||||
|
<th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
|
||||||
|
// Build a link string for each day
|
||||||
|
$link = $_SERVER['PHP_SELF'].
|
||||||
|
'?y='.$Day->thisYear().
|
||||||
|
'&m='.$Day->thisMonth().
|
||||||
|
'&d='.$Day->thisDay();
|
||||||
|
|
||||||
|
// isFirst() to find start of week
|
||||||
|
if ( $Day->isFirst() )
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
|
||||||
|
if ( $Day->isSelected() ) {
|
||||||
|
echo ( "<td class=\"selected\">".$Day->thisDay()."</td>\n" );
|
||||||
|
} else if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td> </td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td><a href=\"".$link."\">".$Day->thisDay()."</a></td>\n" );
|
||||||
|
}
|
||||||
|
|
||||||
|
// isLast() to find end of week
|
||||||
|
if ( $Day->isLast() )
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo ($prev);?>" class="prevMonth"><< </a>
|
||||||
|
</td>
|
||||||
|
<td colspan="5"> </td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php echo ($next);?>" class="nextMonth"> >></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' );
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
49
campcaster/src/tools/pear/src/Calendar/docs/examples/4.php
Normal file
49
campcaster/src/tools/pear/src/Calendar/docs/examples/4.php
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: shows how to perform validation with PEAR::Calendar
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(' ', microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('j');
|
||||||
|
if (!isset($_GET['h'])) $_GET['h'] = date('H');
|
||||||
|
if (!isset($_GET['i'])) $_GET['i'] = date('i');
|
||||||
|
if (!isset($_GET['s'])) $_GET['s'] = date('s');
|
||||||
|
|
||||||
|
$Unit = & new Calendar_Second($_GET['y'], $_GET['m'], $_GET['d'], $_GET['h'], $_GET['i'], $_GET['s']);
|
||||||
|
|
||||||
|
echo '<p><b>Result:</b> '.$Unit->thisYear().'-'.$Unit->thisMonth().'-'.$Unit->thisDay().
|
||||||
|
' '.$Unit->thisHour().':'.$Unit->thisMinute().':'.$Unit->thisSecond();
|
||||||
|
if ($Unit->isValid()) {
|
||||||
|
echo ' is valid!</p>';
|
||||||
|
} else {
|
||||||
|
$V= & $Unit->getValidator();
|
||||||
|
echo ' is invalid:</p>';
|
||||||
|
while ($error = $V->fetch()) {
|
||||||
|
echo $error->toString() .'<br />';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<p>Enter a date / time to validate:</p>
|
||||||
|
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
|
||||||
|
Year: <input type="text" name="y" value="2039"><br />
|
||||||
|
Month: <input type="text" name="m" value="13"><br />
|
||||||
|
Day: <input type="text" name="d" value="32"><br />
|
||||||
|
Hour: <input type="text" name="h" value="24"><br />
|
||||||
|
Minute: <input type="text" name="i" value="-1"><br />
|
||||||
|
Second: <input type="text" name="s" value="60"><br />
|
||||||
|
<input type="submit" value="Validate">
|
||||||
|
</form>
|
||||||
|
<p><b>Note:</b> Error messages can be controlled with the constants <code>CALENDAR_VALUE_TOOSMALL</code> and <code>CALENDAR_VALUE_TOOLARGE</code> - see <code>Calendar_Validator.php</code></p>
|
||||||
|
|
||||||
|
<?php echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>'; ?>
|
49
campcaster/src/tools/pear/src/Calendar/docs/examples/4.phps
Normal file
49
campcaster/src/tools/pear/src/Calendar/docs/examples/4.phps
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: shows how to perform validation with PEAR::Calendar
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(' ', microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('j');
|
||||||
|
if (!isset($_GET['h'])) $_GET['h'] = date('H');
|
||||||
|
if (!isset($_GET['i'])) $_GET['i'] = date('i');
|
||||||
|
if (!isset($_GET['s'])) $_GET['s'] = date('s');
|
||||||
|
|
||||||
|
$Unit = & new Calendar_Second($_GET['y'], $_GET['m'], $_GET['d'], $_GET['h'], $_GET['i'], $_GET['s']);
|
||||||
|
|
||||||
|
echo '<p><b>Result:</b> '.$Unit->thisYear().'-'.$Unit->thisMonth().'-'.$Unit->thisDay().
|
||||||
|
' '.$Unit->thisHour().':'.$Unit->thisMinute().':'.$Unit->thisSecond();
|
||||||
|
if ($Unit->isValid()) {
|
||||||
|
echo ' is valid!</p>';
|
||||||
|
} else {
|
||||||
|
$V= & $Unit->getValidator();
|
||||||
|
echo ' is invalid:</p>';
|
||||||
|
while ($error = $V->fetch()) {
|
||||||
|
echo $error->toString() .'<br />';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<p>Enter a date / time to validate:</p>
|
||||||
|
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
|
||||||
|
Year: <input type="text" name="y" value="2039"><br />
|
||||||
|
Month: <input type="text" name="m" value="13"><br />
|
||||||
|
Day: <input type="text" name="d" value="32"><br />
|
||||||
|
Hour: <input type="text" name="h" value="24"><br />
|
||||||
|
Minute: <input type="text" name="i" value="-1"><br />
|
||||||
|
Second: <input type="text" name="s" value="60"><br />
|
||||||
|
<input type="submit" value="Validate">
|
||||||
|
</form>
|
||||||
|
<p><b>Note:</b> Error messages can be controlled with the constants <code>CALENDAR_VALUE_TOOSMALL</code> and <code>CALENDAR_VALUE_TOOLARGE</code> - see <code>Calendar_Validator.php</code></p>
|
||||||
|
|
||||||
|
<?php echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>'; ?>
|
132
campcaster/src/tools/pear/src/Calendar/docs/examples/5.php
Normal file
132
campcaster/src/tools/pear/src/Calendar/docs/examples/5.php
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: generating elements of a form with PEAR::Calendar, using
|
||||||
|
* selections as well as validating the submission
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
|
||||||
|
// Initialize if not set
|
||||||
|
if (!isset($_POST['y'])) $_POST['y'] = date('Y');
|
||||||
|
if (!isset($_POST['m'])) $_POST['m'] = date('n');
|
||||||
|
if (!isset($_POST['d'])) $_POST['d'] = date('j');
|
||||||
|
if (!isset($_POST['h'])) $_POST['h'] = date('H');
|
||||||
|
if (!isset($_POST['i'])) $_POST['i'] = date('i');
|
||||||
|
if (!isset($_POST['s'])) $_POST['s'] = date('s');
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Select and Update </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Select and Update</h1>
|
||||||
|
<?php
|
||||||
|
if ( isset($_POST['update']) ) {
|
||||||
|
$Second = & new Calendar_Second($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h'],$_POST['i'],$_POST['s']);
|
||||||
|
if ( !$Second->isValid() ) {
|
||||||
|
$V= & $Second->getValidator();
|
||||||
|
echo ('<p>Validation failed:</p>' );
|
||||||
|
while ( $error = $V->fetch() ) {
|
||||||
|
echo ( $error->toString() .'<br>' );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo ('<p>Validation success.</p>' );
|
||||||
|
echo ( '<p>New timestamp is: '.$Second->getTimeStamp().' which could be used to update a database, for example');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$Year = new Calendar_Year($_POST['y']);
|
||||||
|
$Month = new Calendar_Month($_POST['y'],$_POST['m']);
|
||||||
|
$Day = new Calendar_Day($_POST['y'],$_POST['m'],$_POST['d']);
|
||||||
|
$Hour = new Calendar_Hour($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h']);
|
||||||
|
$Minute = new Calendar_Minute($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h'],$_POST['i']);
|
||||||
|
$Second = new Calendar_Second($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h'],$_POST['i'],$_POST['s']);
|
||||||
|
?>
|
||||||
|
<p><b>Set the alarm clock</p></p>
|
||||||
|
<form action="<?php echo ( $_SERVER['PHP_SELF'] ); ?>" method="post">
|
||||||
|
Year: <input type="text" name="y" value="<?php echo ( $_POST['y'] ); ?>" size="4">
|
||||||
|
Month:<select name="m">
|
||||||
|
<?php
|
||||||
|
$selection = array($Month);
|
||||||
|
$Year->build($selection);
|
||||||
|
while ( $Child = & $Year->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisMonth()."\" selected>".$Child->thisMonth()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisMonth()."\">".$Child->thisMonth()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Day:<select name="d">
|
||||||
|
<?php
|
||||||
|
$selection = array($Day);
|
||||||
|
$Month->build($selection);
|
||||||
|
while ( $Child = & $Month->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisDay()."\" selected>".$Child->thisDay()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisDay()."\">".$Child->thisDay()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Hour:<select name="h">
|
||||||
|
<?php
|
||||||
|
$selection = array($Hour);
|
||||||
|
$Day->build($selection);
|
||||||
|
while ( $Child = & $Day->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisHour()."\" selected>".$Child->thisHour()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisHour()."\">".$Child->thisHour()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Minute:<select name="i">
|
||||||
|
<?php
|
||||||
|
$selection = array($Minute);
|
||||||
|
$Hour->build($selection);
|
||||||
|
while ( $Child = & $Hour->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisMinute()."\" selected>".$Child->thisMinute()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisMinute()."\">".$Child->thisMinute()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Second:<select name="s">
|
||||||
|
<?php
|
||||||
|
$selection = array($Second);
|
||||||
|
$Minute->build($selection);
|
||||||
|
while ( $Child = & $Minute->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisSecond()."\" selected>".$Child->thisSecond()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisSecond()."\">".$Child->thisSecond()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
<input type="submit" name="update" value="Set Alarm"><br>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<?php echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' ); ?>
|
||||||
|
</body>
|
||||||
|
</html>
|
132
campcaster/src/tools/pear/src/Calendar/docs/examples/5.phps
Normal file
132
campcaster/src/tools/pear/src/Calendar/docs/examples/5.phps
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: generating elements of a form with PEAR::Calendar, using
|
||||||
|
* selections as well as validating the submission
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Year.php';
|
||||||
|
require_once CALENDAR_ROOT.'Month.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
require_once CALENDAR_ROOT.'Hour.php';
|
||||||
|
require_once CALENDAR_ROOT.'Minute.php';
|
||||||
|
require_once CALENDAR_ROOT.'Second.php';
|
||||||
|
|
||||||
|
// Initialize if not set
|
||||||
|
if (!isset($_POST['y'])) $_POST['y'] = date('Y');
|
||||||
|
if (!isset($_POST['m'])) $_POST['m'] = date('n');
|
||||||
|
if (!isset($_POST['d'])) $_POST['d'] = date('j');
|
||||||
|
if (!isset($_POST['h'])) $_POST['h'] = date('H');
|
||||||
|
if (!isset($_POST['i'])) $_POST['i'] = date('i');
|
||||||
|
if (!isset($_POST['s'])) $_POST['s'] = date('s');
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Select and Update </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Select and Update</h1>
|
||||||
|
<?php
|
||||||
|
if ( isset($_POST['update']) ) {
|
||||||
|
$Second = & new Calendar_Second($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h'],$_POST['i'],$_POST['s']);
|
||||||
|
if ( !$Second->isValid() ) {
|
||||||
|
$V= & $Second->getValidator();
|
||||||
|
echo ('<p>Validation failed:</p>' );
|
||||||
|
while ( $error = $V->fetch() ) {
|
||||||
|
echo ( $error->toString() .'<br>' );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo ('<p>Validation success.</p>' );
|
||||||
|
echo ( '<p>New timestamp is: '.$Second->getTimeStamp().' which could be used to update a database, for example');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$Year = new Calendar_Year($_POST['y']);
|
||||||
|
$Month = new Calendar_Month($_POST['y'],$_POST['m']);
|
||||||
|
$Day = new Calendar_Day($_POST['y'],$_POST['m'],$_POST['d']);
|
||||||
|
$Hour = new Calendar_Hour($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h']);
|
||||||
|
$Minute = new Calendar_Minute($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h'],$_POST['i']);
|
||||||
|
$Second = new Calendar_Second($_POST['y'],$_POST['m'],$_POST['d'],$_POST['h'],$_POST['i'],$_POST['s']);
|
||||||
|
?>
|
||||||
|
<p><b>Set the alarm clock</p></p>
|
||||||
|
<form action="<?php echo ( $_SERVER['PHP_SELF'] ); ?>" method="post">
|
||||||
|
Year: <input type="text" name="y" value="<?php echo ( $_POST['y'] ); ?>" size="4">
|
||||||
|
Month:<select name="m">
|
||||||
|
<?php
|
||||||
|
$selection = array($Month);
|
||||||
|
$Year->build($selection);
|
||||||
|
while ( $Child = & $Year->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisMonth()."\" selected>".$Child->thisMonth()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisMonth()."\">".$Child->thisMonth()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Day:<select name="d">
|
||||||
|
<?php
|
||||||
|
$selection = array($Day);
|
||||||
|
$Month->build($selection);
|
||||||
|
while ( $Child = & $Month->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisDay()."\" selected>".$Child->thisDay()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisDay()."\">".$Child->thisDay()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Hour:<select name="h">
|
||||||
|
<?php
|
||||||
|
$selection = array($Hour);
|
||||||
|
$Day->build($selection);
|
||||||
|
while ( $Child = & $Day->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisHour()."\" selected>".$Child->thisHour()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisHour()."\">".$Child->thisHour()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Minute:<select name="i">
|
||||||
|
<?php
|
||||||
|
$selection = array($Minute);
|
||||||
|
$Hour->build($selection);
|
||||||
|
while ( $Child = & $Hour->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisMinute()."\" selected>".$Child->thisMinute()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisMinute()."\">".$Child->thisMinute()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
Second:<select name="s">
|
||||||
|
<?php
|
||||||
|
$selection = array($Second);
|
||||||
|
$Minute->build($selection);
|
||||||
|
while ( $Child = & $Minute->fetch() ) {
|
||||||
|
if ( $Child->isSelected() ) {
|
||||||
|
echo ( "<option value=\"".$Child->thisSecond()."\" selected>".$Child->thisSecond()."\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<option value=\"".$Child->thisSecond()."\">".$Child->thisSecond()."\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
<input type="submit" name="update" value="Set Alarm"><br>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<?php echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' ); ?>
|
||||||
|
</body>
|
||||||
|
</html>
|
210
campcaster/src/tools/pear/src/Calendar/docs/examples/6.php
Normal file
210
campcaster/src/tools/pear/src/Calendar/docs/examples/6.php
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: A "personal planner" with some WML for fun
|
||||||
|
* Note this is done the stupid way - a giant if/else for WML or HTML
|
||||||
|
* could be greatly simplified with some HTML/WML rendering classes...
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('j');
|
||||||
|
|
||||||
|
$Month = & new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
|
||||||
|
$Day = & new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']);
|
||||||
|
$selection = array($Day);
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------#
|
||||||
|
if ( isset($_GET['mime']) && $_GET['mime']=='wml' ) {
|
||||||
|
header ('Content-Type: text/vnd.wap.wml');
|
||||||
|
echo ( '<?xml version="1.0"?>' );
|
||||||
|
?>
|
||||||
|
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
|
||||||
|
<wml>
|
||||||
|
<big><strong>Personal Planner Rendered with WML</strong></big>
|
||||||
|
<?php
|
||||||
|
if ( isset($_GET['viewday']) ) {
|
||||||
|
?>
|
||||||
|
<p><strong>Viewing <?php echo ( date('l, jS of F, Y',$Day->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<p>
|
||||||
|
<anchor>
|
||||||
|
Back to Month View
|
||||||
|
<go href="<?php
|
||||||
|
echo ( "?y=".$Day->thisYear()."&m=".
|
||||||
|
$Day->thisMonth()."&d=".$Day->thisDay()."&mime=wml" );
|
||||||
|
?>"/>
|
||||||
|
</anchor>
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<?php
|
||||||
|
$Day->build();
|
||||||
|
while ( $Hour = & $Day->fetch() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
echo ( "<td>".date('g a',$Hour->getTimeStamp())."</td><td>Free time!</td>\n" );
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<p><strong><?php echo ( date('F Y',$Month->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td><td>S</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Month->build($selection);
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td></td>\n" );
|
||||||
|
} else if ( $Day->isSelected() ) {
|
||||||
|
echo ( "<td><anchor><strong><u>".$Day->thisDay()."</u></strong>\n<go href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"&mime=wml\" />\n</anchor></td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td><anchor>".$Day->thisDay()."\n<go href=\"?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"&mime=wml\" /></anchor></td>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<anchor>
|
||||||
|
<<
|
||||||
|
<go href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->prevMonth()."&d=".$Month->thisDay()."&mime=wml" );
|
||||||
|
?>"/>
|
||||||
|
</anchor>
|
||||||
|
</td>
|
||||||
|
<td></td><td></td><td></td><td></td><td></td>
|
||||||
|
<td>
|
||||||
|
<anchor>
|
||||||
|
>>
|
||||||
|
<go href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->nextMonth()."&d=".$Month->thisDay()."&mime=wml" );
|
||||||
|
?>"/>
|
||||||
|
</anchor>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<p><a href="<?php echo ( $_SERVER['PHP_SELF'] ); ?>">Back to HTML</a></p>
|
||||||
|
<?php echo ( '<p>Took: '.(getmicrotime()-$start).' seconds</p>' ); ?>
|
||||||
|
</wml>
|
||||||
|
<?php
|
||||||
|
#-----------------------------------------------------------------------------#
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> HTML (+WML) Personal Planner </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Personal Planner Rendered with HTML</h1>
|
||||||
|
<p>To view in WML, click <a href="<?php echo ( $_SERVER['PHP_SELF'] ); ?>?mime=wml">here</a> or place a ?mime=wml at the end of any URL.
|
||||||
|
Note that <a href="http://www.opera.com/download">Opera</a> supports WML natively and Mozilla / Firefox has the WMLBrowser
|
||||||
|
plugin: <a href="http://wmlbrowser.mozdev.org">wmlbrowser.mozdev.org</a></p>
|
||||||
|
<?php
|
||||||
|
if ( isset($_GET['viewday']) ) {
|
||||||
|
?>
|
||||||
|
<p><strong>Viewing <?php echo ( date('l, jS of F, Y',$Day->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<p>
|
||||||
|
<anchor>
|
||||||
|
<a href="<?php
|
||||||
|
echo ( "?y=".$Day->thisYear()."&m=".
|
||||||
|
$Day->thisMonth()."&d=".$Day->thisDay());
|
||||||
|
?>">Back to Month View</a>
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<?php
|
||||||
|
$Day->build();
|
||||||
|
while ( $Hour = & $Day->fetch() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
echo ( "<td>".date('g a',$Hour->getTimeStamp())."</td><td>Free time!</td>\n" );
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<p><strong><?php echo ( date('F Y',$Month->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td><td>S</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Month->build($selection);
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td></td>\n" );
|
||||||
|
} else if ( $Day->isSelected() ) {
|
||||||
|
echo ( "<td><a href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"&wml\"><strong><u>".$Day->thisDay()."</u></strong></a></td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td><a href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"\">".$Day->thisDay()."</a></td>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->prevMonth()."&d=".$Month->thisDay() );
|
||||||
|
?>">
|
||||||
|
<<</a>
|
||||||
|
</td>
|
||||||
|
<td></td><td></td><td></td><td></td><td></td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->nextMonth()."&d=".$Month->thisDay() );
|
||||||
|
?>">>></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' ); ?>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
210
campcaster/src/tools/pear/src/Calendar/docs/examples/6.phps
Normal file
210
campcaster/src/tools/pear/src/Calendar/docs/examples/6.phps
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: A "personal planner" with some WML for fun
|
||||||
|
* Note this is done the stupid way - a giant if/else for WML or HTML
|
||||||
|
* could be greatly simplified with some HTML/WML rendering classes...
|
||||||
|
*/
|
||||||
|
function getmicrotime(){
|
||||||
|
list($usec, $sec) = explode(" ",microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
$start = getmicrotime();
|
||||||
|
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Month/Weekdays.php';
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
if (!isset($_GET['d'])) $_GET['d'] = date('j');
|
||||||
|
|
||||||
|
$Month = & new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
|
||||||
|
$Day = & new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']);
|
||||||
|
$selection = array($Day);
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------#
|
||||||
|
if ( isset($_GET['mime']) && $_GET['mime']=='wml' ) {
|
||||||
|
header ('Content-Type: text/vnd.wap.wml');
|
||||||
|
echo ( '<?xml version="1.0"?>' );
|
||||||
|
?>
|
||||||
|
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
|
||||||
|
<wml>
|
||||||
|
<big><strong>Personal Planner Rendered with WML</strong></big>
|
||||||
|
<?php
|
||||||
|
if ( isset($_GET['viewday']) ) {
|
||||||
|
?>
|
||||||
|
<p><strong>Viewing <?php echo ( date('l, jS of F, Y',$Day->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<p>
|
||||||
|
<anchor>
|
||||||
|
Back to Month View
|
||||||
|
<go href="<?php
|
||||||
|
echo ( "?y=".$Day->thisYear()."&m=".
|
||||||
|
$Day->thisMonth()."&d=".$Day->thisDay()."&mime=wml" );
|
||||||
|
?>"/>
|
||||||
|
</anchor>
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<?php
|
||||||
|
$Day->build();
|
||||||
|
while ( $Hour = & $Day->fetch() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
echo ( "<td>".date('g a',$Hour->getTimeStamp())."</td><td>Free time!</td>\n" );
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<p><strong><?php echo ( date('F Y',$Month->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td><td>S</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Month->build($selection);
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td></td>\n" );
|
||||||
|
} else if ( $Day->isSelected() ) {
|
||||||
|
echo ( "<td><anchor><strong><u>".$Day->thisDay()."</u></strong>\n<go href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"&mime=wml\" />\n</anchor></td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td><anchor>".$Day->thisDay()."\n<go href=\"?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"&mime=wml\" /></anchor></td>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<anchor>
|
||||||
|
<<
|
||||||
|
<go href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->prevMonth()."&d=".$Month->thisDay()."&mime=wml" );
|
||||||
|
?>"/>
|
||||||
|
</anchor>
|
||||||
|
</td>
|
||||||
|
<td></td><td></td><td></td><td></td><td></td>
|
||||||
|
<td>
|
||||||
|
<anchor>
|
||||||
|
>>
|
||||||
|
<go href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->nextMonth()."&d=".$Month->thisDay()."&mime=wml" );
|
||||||
|
?>"/>
|
||||||
|
</anchor>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<p><a href="<?php echo ( $_SERVER['PHP_SELF'] ); ?>">Back to HTML</a></p>
|
||||||
|
<?php echo ( '<p>Took: '.(getmicrotime()-$start).' seconds</p>' ); ?>
|
||||||
|
</wml>
|
||||||
|
<?php
|
||||||
|
#-----------------------------------------------------------------------------#
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> HTML (+WML) Personal Planner </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Personal Planner Rendered with HTML</h1>
|
||||||
|
<p>To view in WML, click <a href="<?php echo ( $_SERVER['PHP_SELF'] ); ?>?mime=wml">here</a> or place a ?mime=wml at the end of any URL.
|
||||||
|
Note that <a href="http://www.opera.com/download">Opera</a> supports WML natively and Mozilla / Firefox has the WMLBrowser
|
||||||
|
plugin: <a href="http://wmlbrowser.mozdev.org">wmlbrowser.mozdev.org</a></p>
|
||||||
|
<?php
|
||||||
|
if ( isset($_GET['viewday']) ) {
|
||||||
|
?>
|
||||||
|
<p><strong>Viewing <?php echo ( date('l, jS of F, Y',$Day->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<p>
|
||||||
|
<anchor>
|
||||||
|
<a href="<?php
|
||||||
|
echo ( "?y=".$Day->thisYear()."&m=".
|
||||||
|
$Day->thisMonth()."&d=".$Day->thisDay());
|
||||||
|
?>">Back to Month View</a>
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<?php
|
||||||
|
$Day->build();
|
||||||
|
while ( $Hour = & $Day->fetch() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
echo ( "<td>".date('g a',$Hour->getTimeStamp())."</td><td>Free time!</td>\n" );
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<p><strong><?php echo ( date('F Y',$Month->getTimeStamp()) ); ?></strong></p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td><td>S</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$Month->build($selection);
|
||||||
|
while ( $Day = $Month->fetch() ) {
|
||||||
|
if ( $Day->isFirst() ) {
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isEmpty() ) {
|
||||||
|
echo ( "<td></td>\n" );
|
||||||
|
} else if ( $Day->isSelected() ) {
|
||||||
|
echo ( "<td><a href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"&wml\"><strong><u>".$Day->thisDay()."</u></strong></a></td>\n" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td><a href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
|
||||||
|
$Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
|
||||||
|
"\">".$Day->thisDay()."</a></td>\n" );
|
||||||
|
}
|
||||||
|
if ( $Day->isLast() ) {
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->prevMonth()."&d=".$Month->thisDay() );
|
||||||
|
?>">
|
||||||
|
<<</a>
|
||||||
|
</td>
|
||||||
|
<td></td><td></td><td></td><td></td><td></td>
|
||||||
|
<td>
|
||||||
|
<a href="<?php
|
||||||
|
echo ( "?y=".$Month->thisYear()."&m=".
|
||||||
|
$Month->nextMonth()."&d=".$Month->thisDay() );
|
||||||
|
?>">>></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' ); ?>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
92
campcaster/src/tools/pear/src/Calendar/docs/examples/7.php
Normal file
92
campcaster/src/tools/pear/src/Calendar/docs/examples/7.php
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: a SOAP Calendar Server
|
||||||
|
*/
|
||||||
|
if (!@include('SOAP'.DIRECTORY_SEPARATOR.'Server.php')) {
|
||||||
|
die('You must have PEAR::SOAP installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
class Calendar_Server
|
||||||
|
{
|
||||||
|
var $__dispatch_map = array();
|
||||||
|
var $__typedef = array();
|
||||||
|
|
||||||
|
function Calendar_Server()
|
||||||
|
{
|
||||||
|
$this->__dispatch_map['getMonth'] =
|
||||||
|
array('in' => array('year' => 'int', 'month'=>'int'),
|
||||||
|
'out' => array('month' => '{urn:PEAR_SOAP_Calendar}Month'),
|
||||||
|
);
|
||||||
|
$this->__typedef['Month'] = array (
|
||||||
|
'monthname' => 'string',
|
||||||
|
'days' => '{urn:PEAR_SOAP_Calendar}MonthDays'
|
||||||
|
);
|
||||||
|
$this->__typedef['MonthDays'] = array (array ('{urn:PEAR_SOAP_Calendar}Day'));
|
||||||
|
$this->__typedef['Day'] = array (
|
||||||
|
'isFirst' => 'int',
|
||||||
|
'isLast' => 'int',
|
||||||
|
'isEmpty' => 'int',
|
||||||
|
'day' => 'int' );
|
||||||
|
}
|
||||||
|
|
||||||
|
function __dispatch($methodname)
|
||||||
|
{
|
||||||
|
if (isset($this->__dispatch_map[$methodname]))
|
||||||
|
return $this->__dispatch_map[$methodname];
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMonth($year, $month)
|
||||||
|
{
|
||||||
|
require_once(CALENDAR_ROOT.'Month'.DIRECTORY_SEPARATOR.'Weekdays.php');
|
||||||
|
$Month = & new Calendar_Month_Weekdays($year,$month);
|
||||||
|
if (!$Month->isValid()) {
|
||||||
|
$V = & $Month->getValidator();
|
||||||
|
$errorMsg = '';
|
||||||
|
while ($error = $V->fetch()) {
|
||||||
|
$errorMsg .= $error->toString()."\n";
|
||||||
|
}
|
||||||
|
return new SOAP_Fault($errorMsg, 'Client');
|
||||||
|
} else {
|
||||||
|
$monthname = date('F Y', $Month->getTimeStamp());
|
||||||
|
$days = array();
|
||||||
|
$Month->build();
|
||||||
|
while ($Day = & $Month->fetch()) {
|
||||||
|
$day = array(
|
||||||
|
'isFirst' => (int)$Day->isFirst(),
|
||||||
|
'isLast' => (int)$Day->isLast(),
|
||||||
|
'isEmpty' => (int)$Day->isEmpty(),
|
||||||
|
'day' => (int)$Day->thisDay(),
|
||||||
|
);
|
||||||
|
$days[] = $day;
|
||||||
|
}
|
||||||
|
return array('monthname' => $monthname, 'days' => $days);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$server = new SOAP_Server();
|
||||||
|
$server->_auto_translation = true;
|
||||||
|
$calendar = new Calendar_Server();
|
||||||
|
$server->addObjectMap($calendar, 'urn:PEAR_SOAP_Calendar');
|
||||||
|
|
||||||
|
if (strtoupper($_SERVER['REQUEST_METHOD'])=='POST') {
|
||||||
|
$server->service($GLOBALS['HTTP_RAW_POST_DATA']);
|
||||||
|
} else {
|
||||||
|
require_once 'SOAP'.DIRECTORY_SEPARATOR.'Disco.php';
|
||||||
|
$disco = new SOAP_DISCO_Server($server, "PEAR_SOAP_Calendar");
|
||||||
|
if (isset($_SERVER['QUERY_STRING']) &&
|
||||||
|
strcasecmp($_SERVER['QUERY_STRING'], 'wsdl')==0) {
|
||||||
|
header("Content-type: text/xml");
|
||||||
|
echo $disco->getWSDL();
|
||||||
|
} else {
|
||||||
|
echo 'This is a PEAR::SOAP Calendar Server. For client try <a href="8.php">here</a><br />';
|
||||||
|
echo 'For WSDL try <a href="?wsdl">here</a>';
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
?>
|
92
campcaster/src/tools/pear/src/Calendar/docs/examples/7.phps
Normal file
92
campcaster/src/tools/pear/src/Calendar/docs/examples/7.phps
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: a SOAP Calendar Server
|
||||||
|
*/
|
||||||
|
if (!@include('SOAP'.DIRECTORY_SEPARATOR.'Server.php')) {
|
||||||
|
die('You must have PEAR::SOAP installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php') {
|
||||||
|
define('CALENDAR_ROOT', '../../');
|
||||||
|
}
|
||||||
|
|
||||||
|
class Calendar_Server
|
||||||
|
{
|
||||||
|
var $__dispatch_map = array();
|
||||||
|
var $__typedef = array();
|
||||||
|
|
||||||
|
function Calendar_Server()
|
||||||
|
{
|
||||||
|
$this->__dispatch_map['getMonth'] =
|
||||||
|
array('in' => array('year' => 'int', 'month'=>'int'),
|
||||||
|
'out' => array('month' => '{urn:PEAR_SOAP_Calendar}Month'),
|
||||||
|
);
|
||||||
|
$this->__typedef['Month'] = array (
|
||||||
|
'monthname' => 'string',
|
||||||
|
'days' => '{urn:PEAR_SOAP_Calendar}MonthDays'
|
||||||
|
);
|
||||||
|
$this->__typedef['MonthDays'] = array (array ('{urn:PEAR_SOAP_Calendar}Day'));
|
||||||
|
$this->__typedef['Day'] = array (
|
||||||
|
'isFirst' => 'int',
|
||||||
|
'isLast' => 'int',
|
||||||
|
'isEmpty' => 'int',
|
||||||
|
'day' => 'int' );
|
||||||
|
}
|
||||||
|
|
||||||
|
function __dispatch($methodname)
|
||||||
|
{
|
||||||
|
if (isset($this->__dispatch_map[$methodname]))
|
||||||
|
return $this->__dispatch_map[$methodname];
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMonth($year, $month)
|
||||||
|
{
|
||||||
|
require_once(CALENDAR_ROOT.'Month'.DIRECTORY_SEPARATOR.'Weekdays.php');
|
||||||
|
$Month = & new Calendar_Month_Weekdays($year,$month);
|
||||||
|
if (!$Month->isValid()) {
|
||||||
|
$V = & $Month->getValidator();
|
||||||
|
$errorMsg = '';
|
||||||
|
while ($error = $V->fetch()) {
|
||||||
|
$errorMsg .= $error->toString()."\n";
|
||||||
|
}
|
||||||
|
return new SOAP_Fault($errorMsg, 'Client');
|
||||||
|
} else {
|
||||||
|
$monthname = date('F Y', $Month->getTimeStamp());
|
||||||
|
$days = array();
|
||||||
|
$Month->build();
|
||||||
|
while ($Day = & $Month->fetch()) {
|
||||||
|
$day = array(
|
||||||
|
'isFirst' => (int)$Day->isFirst(),
|
||||||
|
'isLast' => (int)$Day->isLast(),
|
||||||
|
'isEmpty' => (int)$Day->isEmpty(),
|
||||||
|
'day' => (int)$Day->thisDay(),
|
||||||
|
);
|
||||||
|
$days[] = $day;
|
||||||
|
}
|
||||||
|
return array('monthname' => $monthname, 'days' => $days);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$server = new SOAP_Server();
|
||||||
|
$server->_auto_translation = true;
|
||||||
|
$calendar = new Calendar_Server();
|
||||||
|
$server->addObjectMap($calendar, 'urn:PEAR_SOAP_Calendar');
|
||||||
|
|
||||||
|
if (strtoupper($_SERVER['REQUEST_METHOD'])=='POST') {
|
||||||
|
$server->service($GLOBALS['HTTP_RAW_POST_DATA']);
|
||||||
|
} else {
|
||||||
|
require_once 'SOAP'.DIRECTORY_SEPARATOR.'Disco.php';
|
||||||
|
$disco = new SOAP_DISCO_Server($server, "PEAR_SOAP_Calendar");
|
||||||
|
if (isset($_SERVER['QUERY_STRING']) &&
|
||||||
|
strcasecmp($_SERVER['QUERY_STRING'], 'wsdl')==0) {
|
||||||
|
header("Content-type: text/xml");
|
||||||
|
echo $disco->getWSDL();
|
||||||
|
} else {
|
||||||
|
echo 'This is a PEAR::SOAP Calendar Server. For client try <a href="8.php">here</a><br />';
|
||||||
|
echo 'For WSDL try <a href="?wsdl">here</a>';
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
?>
|
70
campcaster/src/tools/pear/src/Calendar/docs/examples/8.php
Normal file
70
campcaster/src/tools/pear/src/Calendar/docs/examples/8.php
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: client for the SOAP Calendar Server
|
||||||
|
*/
|
||||||
|
if ( version_compare(phpversion(), "5.0.0", ">") ) {
|
||||||
|
die('PHP 5 has problems with PEAR::SOAP Client (8.0RC3)
|
||||||
|
- remove @ before include below to see why');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!@include('SOAP'.DIRECTORY_SEPARATOR.'Client.php')) {
|
||||||
|
die('You must have PEAR::SOAP installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Just to save manaul modification...
|
||||||
|
$basePath = explode('/', $_SERVER['SCRIPT_NAME']);
|
||||||
|
array_pop($basePath);
|
||||||
|
$basePath = implode('/', $basePath);
|
||||||
|
$url = 'http://'.$_SERVER['SERVER_NAME'].$basePath.'/7.php?wsdl';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
|
||||||
|
$wsdl = new SOAP_WSDL ($url);
|
||||||
|
|
||||||
|
echo ( '<pre>'.$wsdl->generateProxyCode().'</pre>' );
|
||||||
|
|
||||||
|
$calendarClient = $wsdl->getProxy();
|
||||||
|
|
||||||
|
$month = $calendarClient->getMonth((int)$_GET['y'],(int)$_GET['m']);
|
||||||
|
|
||||||
|
if ( PEAR::isError($month) ) {
|
||||||
|
die ( $month->toString() );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar over the Wire </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Calendar Over the Wire (featuring PEAR::SOAP)</h1>
|
||||||
|
<table>
|
||||||
|
<caption><b><?php echo ( $month->monthname );?></b></caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
foreach ( $month->days as $day ) {
|
||||||
|
|
||||||
|
if ( $day->isFirst === 1 )
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
if ( $day->isEmpty === 1 ) {
|
||||||
|
echo ( "<td></td>" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td>".$day->day."</td>" );
|
||||||
|
}
|
||||||
|
if ( $day->isLast === 1 )
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
</table>
|
||||||
|
<p>Enter Year and Month to View:</p>
|
||||||
|
<form action="<?php echo ( $_SERVER['PHP_SELF'] ); ?>" method="get">
|
||||||
|
Year: <input type="text" size="4" name="y" value="<?php echo ( $_GET['y'] ); ?>">
|
||||||
|
Month: <input type="text" size="2" name="m" value="<?php echo ( $_GET['m'] ); ?>">
|
||||||
|
<input type="submit" value="Fetch Calendar">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
70
campcaster/src/tools/pear/src/Calendar/docs/examples/8.phps
Normal file
70
campcaster/src/tools/pear/src/Calendar/docs/examples/8.phps
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: client for the SOAP Calendar Server
|
||||||
|
*/
|
||||||
|
if ( version_compare(phpversion(), "5.0.0", ">") ) {
|
||||||
|
die('PHP 5 has problems with PEAR::SOAP Client (8.0RC3)
|
||||||
|
- remove @ before include below to see why');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!@include('SOAP'.DIRECTORY_SEPARATOR.'Client.php')) {
|
||||||
|
die('You must have PEAR::SOAP installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Just to save manaul modification...
|
||||||
|
$basePath = explode('/', $_SERVER['SCRIPT_NAME']);
|
||||||
|
array_pop($basePath);
|
||||||
|
$basePath = implode('/', $basePath);
|
||||||
|
$url = 'http://'.$_SERVER['SERVER_NAME'].$basePath.'/7.php?wsdl';
|
||||||
|
|
||||||
|
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
||||||
|
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
||||||
|
|
||||||
|
$wsdl = new SOAP_WSDL ($url);
|
||||||
|
|
||||||
|
echo ( '<pre>'.$wsdl->generateProxyCode().'</pre>' );
|
||||||
|
|
||||||
|
$calendarClient = $wsdl->getProxy();
|
||||||
|
|
||||||
|
$month = $calendarClient->getMonth((int)$_GET['y'],(int)$_GET['m']);
|
||||||
|
|
||||||
|
if ( PEAR::isError($month) ) {
|
||||||
|
die ( $month->toString() );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title> Calendar over the Wire </title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Calendar Over the Wire (featuring PEAR::SOAP)</h1>
|
||||||
|
<table>
|
||||||
|
<caption><b><?php echo ( $month->monthname );?></b></caption>
|
||||||
|
<tr>
|
||||||
|
<th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
foreach ( $month->days as $day ) {
|
||||||
|
|
||||||
|
if ( $day->isFirst === 1 )
|
||||||
|
echo ( "<tr>\n" );
|
||||||
|
if ( $day->isEmpty === 1 ) {
|
||||||
|
echo ( "<td></td>" );
|
||||||
|
} else {
|
||||||
|
echo ( "<td>".$day->day."</td>" );
|
||||||
|
}
|
||||||
|
if ( $day->isLast === 1 )
|
||||||
|
echo ( "</tr>\n" );
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
</table>
|
||||||
|
<p>Enter Year and Month to View:</p>
|
||||||
|
<form action="<?php echo ( $_SERVER['PHP_SELF'] ); ?>" method="get">
|
||||||
|
Year: <input type="text" size="4" name="y" value="<?php echo ( $_GET['y'] ); ?>">
|
||||||
|
Month: <input type="text" size="2" name="m" value="<?php echo ( $_GET['m'] ); ?>">
|
||||||
|
<input type="submit" value="Fetch Calendar">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
16
campcaster/src/tools/pear/src/Calendar/docs/examples/9.php
Normal file
16
campcaster/src/tools/pear/src/Calendar/docs/examples/9.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: simple example on i18N
|
||||||
|
*/
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
$Day = & new Calendar_Day(2003,10,23);
|
||||||
|
|
||||||
|
setlocale (LC_TIME, "de_DE"); // Unix based (probably)
|
||||||
|
// setlocale (LC_TIME, "ge"); // Windows
|
||||||
|
|
||||||
|
echo ( strftime('%A %d %B %Y',$Day->getTimeStamp()));
|
||||||
|
?>
|
16
campcaster/src/tools/pear/src/Calendar/docs/examples/9.phps
Normal file
16
campcaster/src/tools/pear/src/Calendar/docs/examples/9.phps
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description: simple example on i18N
|
||||||
|
*/
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
define('CALENDAR_ROOT','../../');
|
||||||
|
}
|
||||||
|
require_once CALENDAR_ROOT.'Day.php';
|
||||||
|
|
||||||
|
$Day = & new Calendar_Day(2003,10,23);
|
||||||
|
|
||||||
|
setlocale (LC_TIME, "de_DE"); // Unix based (probably)
|
||||||
|
// setlocale (LC_TIME, "ge"); // Windows
|
||||||
|
|
||||||
|
echo ( strftime('%A %d %B %Y',$Day->getTimeStamp()));
|
||||||
|
?>
|
|
@ -0,0 +1,50 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<title>PEAR::Calendar Examples</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
font-family: georgia, serif;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
background-color: silver;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
color: navy;
|
||||||
|
background-color: #e2e3e4;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1>PEAR::Calendar Examples</h1>
|
||||||
|
<p>$Id: index.html,v 1.6 2004/08/17 09:10:53 hfuecks Exp $</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="1.php">1.php</a> [<a href="1.phps">src</a>] - shows basic usage, passing all the way down from <code>Calendar_Year</code> to <code>Calendar_Second</code> - more of a quick test it's working</li>
|
||||||
|
<li><a href="2.php">2.php</a> [<a href="2.phps">src</a>] - shows how to build a tabular month using <code>Calendar_Month_Weeks</code>, <code>Calendar_Week</code>, <code>Calendar_Day</code> as well as selecting some dates.</li>
|
||||||
|
<li><a href="3.php">3.php</a> [<a href="3.phps">src</a>] - shows how to build a tabular month using <code>Calendar_Month_Weekdays</code> and <code>Calendar_Day</code>, as well as selecting some dates (this method is faster).</li>
|
||||||
|
<li><a href="4.php">4.php</a> [<a href="4.phps">src</a>] - shows how to use PEAR::Calendar for validation.</li>
|
||||||
|
<li><a href="5.php">5.php</a> [<a href="5.phps">src</a>] - shows PEAR::Calendar in use to help generate a form.</li>
|
||||||
|
<li><a href="6.php">6.php</a> [<a href="6.phps">src</a>] - a month and day "planner" calendar, which can be rendered both as HTML and WML.</li>
|
||||||
|
<li><a href="7.php">7.php</a> [<a href="7.phps">src</a>] - a simple SOAP Calendar Server, using PEAR::SOAP and PEAR::Calendar</li>
|
||||||
|
<li><a href="8.php">8.php</a> [<a href="8.phps">src</a>] - a WSDL SOAP client for the SOAP Calendar Server</li>
|
||||||
|
<li><a href="9.php">9.php</a> [<a href="9.phps">src</a>] - quick example of i18n with <code>setlocale</code> (not working on SF)</li>
|
||||||
|
<li><a href="10.php">10.php</a> [<a href="10.phps">src</a>] - an example of extending <code>Calendar_Decorator</code> to modify output</li>
|
||||||
|
<li><a href="11.php">11.php</a> [<a href="11.phps">src</a>] - attaching a "payload" (e.g. results of a DB query) to a calendar using <code>Calendar_Decorator</code> to allow the payload to be available inside the main loop.</li>
|
||||||
|
<li><a href="12.php">12.php</a> [<a href="12.phps">src</a>] - a complete year with months.</li>
|
||||||
|
<li><a href="13.php">13.php</a> [<a href="13.phps">src</a>] - same as 1.php but using <code>Calendar_Engine_PearDate</code>, (see <a href="http://pear.php.net/Date">PEAR::Date</a>).</li>
|
||||||
|
<li><a href="14.php">14.php</a> [<a href="14.phps">src</a>] - same as 3.php but using <code>Calendar_Engine_PearDate</code></li>
|
||||||
|
<li><a href="15.php">15.php</a> [<a href="15.phps">src</a>] - paging through weeks </li>
|
||||||
|
<li><a href="16.php">16.php</a> [<a href="16.phps">src</a>] - example of <code>Calendar_Decorator_Uri</code>. <i>Note</i> you should prefer <code>Calendar_Util_Uri</code> (see below) in most cases, for performance </li>
|
||||||
|
<li><a href="17.php">17.php</a> [<a href="17.phps">src</a>] - example of <code>Calendar_Decorator_Textual</code>. <i>Note</i> you should prefer <code>Calendar_Util_Textual</code> (see below) in most cases, for performance</li>
|
||||||
|
<li><a href="18.php">18.php</a> [<a href="18.phps">src</a>] - example of <code>Calendar_Decorator_Wrapper</code>.</li>
|
||||||
|
<li><a href="19.php">19.php</a> [<a href="19.phps">src</a>] - example of <code>Calendar_Decorator_Weekday</code>.</li>
|
||||||
|
<li><a href="20.php">20.php</a> [<a href="20.phps">src</a>] - shows how to attach a "payload" spanning multiple days, with more than one entry per day</li>
|
||||||
|
<li><a href="21.php">21.php</a> [<a href="21.phps">src</a>] - same as 12.php but using <code>Calendar_Month_Weeks</code> instead of <code>Calendar_Month_Weekdays</code> to allow the week in the year or week in the month to be displayed.</li>
|
||||||
|
<li><a href="22.php">22.php</a> [<a href="22.phps">src</a>] - demonstrates use of <code>Calendar_Util_Uri</code>.</li>
|
||||||
|
<li><a href="23.php">23.php</a> [<a href="23.phps">src</a>] - demonstrates use of <code>Calendar_Util_Textual</code>.</li>
|
||||||
|
<li><a href="24.php">24.php</a> [<a href="24.phps">src</a>] - <code>Calendar_Decorator_Weekday</code> combined with <code>Calendar_Decorator_Wrapper</code> to decorate days in the month.</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
campcaster/src/tools/pear/src/Calendar/tests/README
Normal file
7
campcaster/src/tools/pear/src/Calendar/tests/README
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
These tests require Simple Test: http://www.lastcraft.com/simple_test.php
|
||||||
|
|
||||||
|
Ideally they would use PEAR::PHPUnit but the current version has bugs and
|
||||||
|
lacks alot of the functionality (e.g. Mock Objects) which Simple Test
|
||||||
|
provides.
|
||||||
|
|
||||||
|
Modifying the simple_include.php script for your simple test install dir
|
34
campcaster/src/tools/pear/src/Calendar/tests/all_tests.php
Normal file
34
campcaster/src/tools/pear/src/Calendar/tests/all_tests.php
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?php
|
||||||
|
// $Id: all_tests.php,v 1.2 2004/08/16 08:55:24 hfuecks Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
define("TEST_RUNNING", true);
|
||||||
|
|
||||||
|
require_once('./calendar_tests.php');
|
||||||
|
require_once('./calendar_tabular_tests.php');
|
||||||
|
require_once('./validator_tests.php');
|
||||||
|
require_once('./calendar_engine_tests.php');
|
||||||
|
require_once('./calendar_engine_tests.php');
|
||||||
|
require_once('./table_helper_tests.php');
|
||||||
|
require_once('./decorator_tests.php');
|
||||||
|
require_once('./util_tests.php');
|
||||||
|
|
||||||
|
|
||||||
|
class AllTests extends GroupTest {
|
||||||
|
function AllTests() {
|
||||||
|
$this->GroupTest('All PEAR::Calendar Tests');
|
||||||
|
$this->AddTestCase(new CalendarTests());
|
||||||
|
$this->AddTestCase(new CalendarTabularTests());
|
||||||
|
$this->AddTestCase(new ValidatorTests());
|
||||||
|
$this->AddTestCase(new CalendarEngineTests());
|
||||||
|
$this->AddTestCase(new TableHelperTests());
|
||||||
|
$this->AddTestCase(new DecoratorTests());
|
||||||
|
$this->AddTestCase(new UtilTests());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$test = &new AllTests();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
?>
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
// $Id: calendar_engine_tests.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class CalendarEngineTests extends GroupTest {
|
||||||
|
function CalendarEngineTests() {
|
||||||
|
$this->GroupTest('Calendar Engine Tests');
|
||||||
|
$this->addTestFile('peardate_engine_test.php');
|
||||||
|
$this->addTestFile('unixts_engine_test.php');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new CalendarEngineTests();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
// $Id: calendar_include.php,v 1.4 2004/08/16 12:56:10 hfuecks Exp $
|
||||||
|
if ( !@include 'Calendar/Calendar.php' ) {
|
||||||
|
@define('CALENDAR_ROOT','../');
|
||||||
|
}
|
||||||
|
require_once(CALENDAR_ROOT . 'Year.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Month.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Day.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Week.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Hour.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Minute.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Second.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Month.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Decorator.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Month/Weekdays.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Month/Weeks.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Validator.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Engine/Interface.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Engine/UnixTs.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Engine/PearDate.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Table/Helper.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Decorator/Textual.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Decorator/Uri.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Decorator/Weekday.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Decorator/Wrapper.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Util/Uri.php');
|
||||||
|
require_once(CALENDAR_ROOT . 'Util/Textual.php');
|
||||||
|
?>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
// $Id: calendar_tabular_tests.php,v 1.2 2005/10/20 18:59:45 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class CalendarTabularTests extends GroupTest {
|
||||||
|
function CalendarTabularTests() {
|
||||||
|
$this->GroupTest('Calendar Tabular Tests');
|
||||||
|
$this->addTestFile('month_weekdays_test.php');
|
||||||
|
$this->addTestFile('month_weeks_test.php');
|
||||||
|
$this->addTestFile('week_test.php');
|
||||||
|
//$this->addTestFile('week_firstday_0_test.php'); //switch with the above
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new CalendarTabularTests();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
115
campcaster/src/tools/pear/src/Calendar/tests/calendar_test.php
Normal file
115
campcaster/src/tools/pear/src/Calendar/tests/calendar_test.php
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
<?php
|
||||||
|
// $Id: calendar_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class TestOfCalendar extends UnitTestCase {
|
||||||
|
var $cal;
|
||||||
|
function TestOfCalendar($name='Test of Calendar') {
|
||||||
|
$this->UnitTestCase($name);
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar(2003,10,25,13,32,43);
|
||||||
|
}
|
||||||
|
function tearDown() {
|
||||||
|
unset($this->cal);
|
||||||
|
}
|
||||||
|
function testPrevYear () {
|
||||||
|
$this->assertEqual(2002,$this->cal->prevYear());
|
||||||
|
}
|
||||||
|
function testPrevYear_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2002,
|
||||||
|
'month' => 1,
|
||||||
|
'day' => 1,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevYear('array'));
|
||||||
|
}
|
||||||
|
function testThisYear () {
|
||||||
|
$this->assertEqual(2003,$this->cal->thisYear());
|
||||||
|
}
|
||||||
|
function testNextYear () {
|
||||||
|
$this->assertEqual(2004,$this->cal->nextYear());
|
||||||
|
}
|
||||||
|
function testPrevMonth () {
|
||||||
|
$this->assertEqual(9,$this->cal->prevMonth());
|
||||||
|
}
|
||||||
|
function testPrevMonth_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 9,
|
||||||
|
'day' => 1,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevMonth('array'));
|
||||||
|
}
|
||||||
|
function testThisMonth () {
|
||||||
|
$this->assertEqual(10,$this->cal->thisMonth());
|
||||||
|
}
|
||||||
|
function testNextMonth () {
|
||||||
|
$this->assertEqual(11,$this->cal->nextMonth());
|
||||||
|
}
|
||||||
|
function testPrevDay () {
|
||||||
|
$this->assertEqual(24,$this->cal->prevDay());
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 10,
|
||||||
|
'day' => 24,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
function testThisDay () {
|
||||||
|
$this->assertEqual(25,$this->cal->thisDay());
|
||||||
|
}
|
||||||
|
function testNextDay () {
|
||||||
|
$this->assertEqual(26,$this->cal->nextDay());
|
||||||
|
}
|
||||||
|
function testPrevHour () {
|
||||||
|
$this->assertEqual(12,$this->cal->prevHour());
|
||||||
|
}
|
||||||
|
function testThisHour () {
|
||||||
|
$this->assertEqual(13,$this->cal->thisHour());
|
||||||
|
}
|
||||||
|
function testNextHour () {
|
||||||
|
$this->assertEqual(14,$this->cal->nextHour());
|
||||||
|
}
|
||||||
|
function testPrevMinute () {
|
||||||
|
$this->assertEqual(31,$this->cal->prevMinute());
|
||||||
|
}
|
||||||
|
function testThisMinute () {
|
||||||
|
$this->assertEqual(32,$this->cal->thisMinute());
|
||||||
|
}
|
||||||
|
function testNextMinute () {
|
||||||
|
$this->assertEqual(33,$this->cal->nextMinute());
|
||||||
|
}
|
||||||
|
function testPrevSecond () {
|
||||||
|
$this->assertEqual(42,$this->cal->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond () {
|
||||||
|
$this->assertEqual(43,$this->cal->thisSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond () {
|
||||||
|
$this->assertEqual(44,$this->cal->nextSecond());
|
||||||
|
}
|
||||||
|
function testSetTimeStamp() {
|
||||||
|
$stamp = mktime(13,32,43,10,25,2003);
|
||||||
|
$this->cal->setTimeStamp($stamp);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
function testGetTimeStamp() {
|
||||||
|
$stamp = mktime(13,32,43,10,25,2003);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
// $Id: calendar_tests.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class CalendarTests extends GroupTest {
|
||||||
|
function CalendarTests() {
|
||||||
|
$this->GroupTest('Calendar Tests');
|
||||||
|
$this->addTestFile('calendar_test.php');
|
||||||
|
$this->addTestFile('year_test.php');
|
||||||
|
$this->addTestFile('month_test.php');
|
||||||
|
$this->addTestFile('day_test.php');
|
||||||
|
$this->addTestFile('hour_test.php');
|
||||||
|
$this->addTestFile('minute_test.php');
|
||||||
|
$this->addTestFile('second_test.php');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new CalendarTests();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
107
campcaster/src/tools/pear/src/Calendar/tests/day_test.php
Normal file
107
campcaster/src/tools/pear/src/Calendar/tests/day_test.php
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<?php
|
||||||
|
// $Id: day_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./calendar_test.php');
|
||||||
|
|
||||||
|
class TestOfDay extends TestOfCalendar {
|
||||||
|
function TestOfDay() {
|
||||||
|
$this->UnitTestCase('Test of Day');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar_Day(2003,10,25);
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 10,
|
||||||
|
'day' => 24,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
function testPrevHour () {
|
||||||
|
$this->assertEqual(23,$this->cal->prevHour());
|
||||||
|
}
|
||||||
|
function testThisHour () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisHour());
|
||||||
|
}
|
||||||
|
function testNextHour () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextHour());
|
||||||
|
}
|
||||||
|
function testPrevMinute () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevMinute());
|
||||||
|
}
|
||||||
|
function testThisMinute () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisMinute());
|
||||||
|
}
|
||||||
|
function testNextMinute () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextMinute());
|
||||||
|
}
|
||||||
|
function testPrevSecond () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextSecond());
|
||||||
|
}
|
||||||
|
function testGetTimeStamp() {
|
||||||
|
$stamp = mktime(0,0,0,10,25,2003);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestOfDayBuild extends TestOfDay {
|
||||||
|
function TestOfDayBuild() {
|
||||||
|
$this->UnitTestCase('Test of Day::build()');
|
||||||
|
}
|
||||||
|
function testSize() {
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(24,$this->cal->size());
|
||||||
|
}
|
||||||
|
function testFetch() {
|
||||||
|
$this->cal->build();
|
||||||
|
$i=0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual(24,$i);
|
||||||
|
}
|
||||||
|
function testFetchAll() {
|
||||||
|
$this->cal->build();
|
||||||
|
$children = array();
|
||||||
|
$i = 0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$children[$i]=$Child;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual($children,$this->cal->fetchAll());
|
||||||
|
}
|
||||||
|
function testSelection() {
|
||||||
|
require_once(CALENDAR_ROOT . 'Hour.php');
|
||||||
|
$selection = array(new Calendar_Hour(2003,10,25,13));
|
||||||
|
$this->cal->build($selection);
|
||||||
|
$i = 0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
if ( $i == 13 )
|
||||||
|
break;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertTrue($Child->isSelected());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfDay();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
$test = &new TestOfDayBuild();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
268
campcaster/src/tools/pear/src/Calendar/tests/decorator_test.php
Normal file
268
campcaster/src/tools/pear/src/Calendar/tests/decorator_test.php
Normal file
|
@ -0,0 +1,268 @@
|
||||||
|
<?php
|
||||||
|
// $Id: decorator_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
Mock::generate('Calendar_Engine_Interface','Mock_Calendar_Engine');
|
||||||
|
Mock::generate('Calendar_Second','Mock_Calendar_Second');
|
||||||
|
Mock::generate('Calendar_Week','Mock_Calendar_Week');
|
||||||
|
Mock::generate('Calendar_Day','Mock_Calendar_Day');
|
||||||
|
|
||||||
|
class TestOfDecorator extends UnitTestCase {
|
||||||
|
var $mockengine;
|
||||||
|
var $mockcal;
|
||||||
|
var $decorator;
|
||||||
|
function TestOfDecorator() {
|
||||||
|
$this->UnitTestCase('Test of Calendar_Decorator');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->mockengine = new Mock_Calendar_Engine($this);
|
||||||
|
$this->mockcal = new Mock_Calendar_Second($this);
|
||||||
|
$this->mockcal->setReturnValue('prevYear',2002);
|
||||||
|
$this->mockcal->setReturnValue('thisYear',2003);
|
||||||
|
$this->mockcal->setReturnValue('nextYear',2004);
|
||||||
|
$this->mockcal->setReturnValue('prevMonth',9);
|
||||||
|
$this->mockcal->setReturnValue('thisMonth',10);
|
||||||
|
$this->mockcal->setReturnValue('nextMonth',11);
|
||||||
|
$this->mockcal->setReturnValue('prevDay',14);
|
||||||
|
$this->mockcal->setReturnValue('thisDay',15);
|
||||||
|
$this->mockcal->setReturnValue('nextDay',16);
|
||||||
|
$this->mockcal->setReturnValue('prevHour',12);
|
||||||
|
$this->mockcal->setReturnValue('thisHour',13);
|
||||||
|
$this->mockcal->setReturnValue('nextHour',14);
|
||||||
|
$this->mockcal->setReturnValue('prevMinute',29);
|
||||||
|
$this->mockcal->setReturnValue('thisMinute',30);
|
||||||
|
$this->mockcal->setReturnValue('nextMinute',31);
|
||||||
|
$this->mockcal->setReturnValue('prevSecond',44);
|
||||||
|
$this->mockcal->setReturnValue('thisSecond',45);
|
||||||
|
$this->mockcal->setReturnValue('nextSecond',46);
|
||||||
|
$this->mockcal->setReturnValue('getEngine',$this->mockengine);
|
||||||
|
$this->mockcal->setReturnValue('getTimestamp',12345);
|
||||||
|
|
||||||
|
}
|
||||||
|
function tearDown() {
|
||||||
|
unset ( $this->engine );
|
||||||
|
unset ( $this->mockcal );
|
||||||
|
}
|
||||||
|
function testPrevYear() {
|
||||||
|
$this->mockcal->expectOnce('prevYear',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(2002,$Decorator->prevYear());
|
||||||
|
}
|
||||||
|
function testThisYear() {
|
||||||
|
$this->mockcal->expectOnce('thisYear',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(2003,$Decorator->thisYear());
|
||||||
|
}
|
||||||
|
function testNextYear() {
|
||||||
|
$this->mockcal->expectOnce('nextYear',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(2004,$Decorator->nextYear());
|
||||||
|
}
|
||||||
|
function testPrevMonth() {
|
||||||
|
$this->mockcal->expectOnce('prevMonth',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(9,$Decorator->prevMonth());
|
||||||
|
}
|
||||||
|
function testThisMonth() {
|
||||||
|
$this->mockcal->expectOnce('thisMonth',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(10,$Decorator->thisMonth());
|
||||||
|
}
|
||||||
|
function testNextMonth() {
|
||||||
|
$this->mockcal->expectOnce('nextMonth',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(11,$Decorator->nextMonth());
|
||||||
|
}
|
||||||
|
function testPrevWeek() {
|
||||||
|
$mockweek = & new Mock_Calendar_Week($this);
|
||||||
|
$mockweek->setReturnValue('prevWeek',1);
|
||||||
|
$mockweek->expectOnce('prevWeek',array('n_in_month'));
|
||||||
|
$Decorator =& new Calendar_Decorator($mockweek);
|
||||||
|
$this->assertEqual(1,$Decorator->prevWeek());
|
||||||
|
}
|
||||||
|
function testThisWeek() {
|
||||||
|
$mockweek = & new Mock_Calendar_Week($this);
|
||||||
|
$mockweek->setReturnValue('thisWeek',2);
|
||||||
|
$mockweek->expectOnce('thisWeek',array('n_in_month'));
|
||||||
|
$Decorator =& new Calendar_Decorator($mockweek);
|
||||||
|
$this->assertEqual(2,$Decorator->thisWeek());
|
||||||
|
}
|
||||||
|
function testNextWeek() {
|
||||||
|
$mockweek = & new Mock_Calendar_Week($this);
|
||||||
|
$mockweek->setReturnValue('nextWeek',3);
|
||||||
|
$mockweek->expectOnce('nextWeek',array('n_in_month'));
|
||||||
|
$Decorator =& new Calendar_Decorator($mockweek);
|
||||||
|
$this->assertEqual(3,$Decorator->nextWeek());
|
||||||
|
}
|
||||||
|
function testPrevDay() {
|
||||||
|
$this->mockcal->expectOnce('prevDay',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(14,$Decorator->prevDay());
|
||||||
|
}
|
||||||
|
function testThisDay() {
|
||||||
|
$this->mockcal->expectOnce('thisDay',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(15,$Decorator->thisDay());
|
||||||
|
}
|
||||||
|
function testNextDay() {
|
||||||
|
$this->mockcal->expectOnce('nextDay',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(16,$Decorator->nextDay());
|
||||||
|
}
|
||||||
|
function testPrevHour() {
|
||||||
|
$this->mockcal->expectOnce('prevHour',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(12,$Decorator->prevHour());
|
||||||
|
}
|
||||||
|
function testThisHour() {
|
||||||
|
$this->mockcal->expectOnce('thisHour',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(13,$Decorator->thisHour());
|
||||||
|
}
|
||||||
|
function testNextHour() {
|
||||||
|
$this->mockcal->expectOnce('nextHour',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(14,$Decorator->nextHour());
|
||||||
|
}
|
||||||
|
function testPrevMinute() {
|
||||||
|
$this->mockcal->expectOnce('prevMinute',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(29,$Decorator->prevMinute());
|
||||||
|
}
|
||||||
|
function testThisMinute() {
|
||||||
|
$this->mockcal->expectOnce('thisMinute',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(30,$Decorator->thisMinute());
|
||||||
|
}
|
||||||
|
function testNextMinute() {
|
||||||
|
$this->mockcal->expectOnce('nextMinute',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(31,$Decorator->nextMinute());
|
||||||
|
}
|
||||||
|
function testPrevSecond() {
|
||||||
|
$this->mockcal->expectOnce('prevSecond',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(44,$Decorator->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond() {
|
||||||
|
$this->mockcal->expectOnce('thisSecond',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(45,$Decorator->thisSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond() {
|
||||||
|
$this->mockcal->expectOnce('nextSecond',array('int'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(46,$Decorator->nextSecond());
|
||||||
|
}
|
||||||
|
function testGetEngine() {
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertIsA($Decorator->getEngine(),'Mock_Calendar_Engine');
|
||||||
|
}
|
||||||
|
function testSetTimestamp() {
|
||||||
|
$this->mockcal->expectOnce('setTimestamp',array('12345'));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->setTimestamp('12345');
|
||||||
|
}
|
||||||
|
function testGetTimestamp() {
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual(12345,$Decorator->getTimestamp());
|
||||||
|
}
|
||||||
|
function testSetSelected() {
|
||||||
|
$this->mockcal->expectOnce('setSelected',array(true));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->setSelected();
|
||||||
|
}
|
||||||
|
function testIsSelected() {
|
||||||
|
$this->mockcal->setReturnValue('isSelected',true);
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertTrue($Decorator->isSelected());
|
||||||
|
}
|
||||||
|
function testAdjust() {
|
||||||
|
$this->mockcal->expectOnce('adjust',array());
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->adjust();
|
||||||
|
}
|
||||||
|
function testToArray() {
|
||||||
|
$this->mockcal->expectOnce('toArray',array(12345));
|
||||||
|
$testArray = array('foo'=>'bar');
|
||||||
|
$this->mockcal->setReturnValue('toArray',$testArray);
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual($testArray,$Decorator->toArray(12345));
|
||||||
|
}
|
||||||
|
function testReturnValue() {
|
||||||
|
$this->mockcal->expectOnce('returnValue',array('a','b','c','d'));
|
||||||
|
$this->mockcal->setReturnValue('returnValue','foo');
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$this->assertEqual('foo',$Decorator->returnValue('a','b','c','d'));
|
||||||
|
}
|
||||||
|
function testSetFirst() {
|
||||||
|
$mockday = & new Mock_Calendar_Day($this);
|
||||||
|
$mockday->expectOnce('setFirst',array(true));
|
||||||
|
$Decorator =& new Calendar_Decorator($mockday);
|
||||||
|
$Decorator->setFirst();
|
||||||
|
}
|
||||||
|
function testSetLast() {
|
||||||
|
$mockday = & new Mock_Calendar_Day($this);
|
||||||
|
$mockday->expectOnce('setLast',array(true));
|
||||||
|
$Decorator =& new Calendar_Decorator($mockday);
|
||||||
|
$Decorator->setLast();
|
||||||
|
}
|
||||||
|
function testIsFirst() {
|
||||||
|
$mockday = & new Mock_Calendar_Day($this);
|
||||||
|
$mockday->setReturnValue('isFirst',TRUE);
|
||||||
|
$Decorator =& new Calendar_Decorator($mockday);
|
||||||
|
$this->assertTrue($Decorator->isFirst());
|
||||||
|
}
|
||||||
|
function testIsLast() {
|
||||||
|
$mockday = & new Mock_Calendar_Day($this);
|
||||||
|
$mockday->setReturnValue('isLast',TRUE);
|
||||||
|
$Decorator =& new Calendar_Decorator($mockday);
|
||||||
|
$this->assertTrue($Decorator->isLast());
|
||||||
|
}
|
||||||
|
function testSetEmpty() {
|
||||||
|
$mockday = & new Mock_Calendar_Day($this);
|
||||||
|
$mockday->expectOnce('setEmpty',array(true));
|
||||||
|
$Decorator =& new Calendar_Decorator($mockday);
|
||||||
|
$Decorator->setEmpty();
|
||||||
|
}
|
||||||
|
function testIsEmpty() {
|
||||||
|
$mockday = & new Mock_Calendar_Day($this);
|
||||||
|
$mockday->setReturnValue('isEmpty',TRUE);
|
||||||
|
$Decorator =& new Calendar_Decorator($mockday);
|
||||||
|
$this->assertTrue($Decorator->isEmpty());
|
||||||
|
}
|
||||||
|
function testBuild() {
|
||||||
|
$testArray=array('foo'=>'bar');
|
||||||
|
$this->mockcal->expectOnce('build',array($testArray));
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->build($testArray);
|
||||||
|
}
|
||||||
|
function testFetch() {
|
||||||
|
$this->mockcal->expectOnce('fetch',array());
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->fetch();
|
||||||
|
}
|
||||||
|
function testFetchAll() {
|
||||||
|
$this->mockcal->expectOnce('fetchAll',array());
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->fetchAll();
|
||||||
|
}
|
||||||
|
function testSize() {
|
||||||
|
$this->mockcal->expectOnce('size',array());
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->size();
|
||||||
|
}
|
||||||
|
function testIsValid() {
|
||||||
|
$this->mockcal->expectOnce('isValid',array());
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->isValid();
|
||||||
|
}
|
||||||
|
function testGetValidator() {
|
||||||
|
$this->mockcal->expectOnce('getValidator',array());
|
||||||
|
$Decorator =& new Calendar_Decorator($this->mockcal);
|
||||||
|
$Decorator->getValidator();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
// $Id: decorator_tests.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class DecoratorTests extends GroupTest {
|
||||||
|
function DecoratorTests() {
|
||||||
|
$this->GroupTest('Decorator Tests');
|
||||||
|
$this->addTestFile('decorator_test.php');
|
||||||
|
$this->addTestFile('decorator_textual_test.php');
|
||||||
|
$this->addTestFile('decorator_uri_test.php');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new DecoratorTests();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,174 @@
|
||||||
|
<?php
|
||||||
|
// $Id: decorator_textual_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./decorator_test.php');
|
||||||
|
|
||||||
|
class TestOfDecoratorTextual extends TestOfDecorator {
|
||||||
|
function TestOfDecoratorTextual() {
|
||||||
|
$this->UnitTestCase('Test of Calendar_Decorator_Textual');
|
||||||
|
}
|
||||||
|
function testMonthNamesLong() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'January',
|
||||||
|
2=>'February',
|
||||||
|
3=>'March',
|
||||||
|
4=>'April',
|
||||||
|
5=>'May',
|
||||||
|
6=>'June',
|
||||||
|
7=>'July',
|
||||||
|
8=>'August',
|
||||||
|
9=>'September',
|
||||||
|
10=>'October',
|
||||||
|
11=>'November',
|
||||||
|
12=>'December',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,$Textual->monthNames());
|
||||||
|
}
|
||||||
|
function testMonthNamesShort() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'Jan',
|
||||||
|
2=>'Feb',
|
||||||
|
3=>'Mar',
|
||||||
|
4=>'Apr',
|
||||||
|
5=>'May',
|
||||||
|
6=>'Jun',
|
||||||
|
7=>'Jul',
|
||||||
|
8=>'Aug',
|
||||||
|
9=>'Sep',
|
||||||
|
10=>'Oct',
|
||||||
|
11=>'Nov',
|
||||||
|
12=>'Dec',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,$Textual->monthNames('short'));
|
||||||
|
}
|
||||||
|
function testMonthNamesTwo() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'Ja',
|
||||||
|
2=>'Fe',
|
||||||
|
3=>'Ma',
|
||||||
|
4=>'Ap',
|
||||||
|
5=>'Ma',
|
||||||
|
6=>'Ju',
|
||||||
|
7=>'Ju',
|
||||||
|
8=>'Au',
|
||||||
|
9=>'Se',
|
||||||
|
10=>'Oc',
|
||||||
|
11=>'No',
|
||||||
|
12=>'De',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,$Textual->monthNames('two'));
|
||||||
|
}
|
||||||
|
function testMonthNamesOne() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'J',
|
||||||
|
2=>'F',
|
||||||
|
3=>'M',
|
||||||
|
4=>'A',
|
||||||
|
5=>'M',
|
||||||
|
6=>'J',
|
||||||
|
7=>'J',
|
||||||
|
8=>'A',
|
||||||
|
9=>'S',
|
||||||
|
10=>'O',
|
||||||
|
11=>'N',
|
||||||
|
12=>'D',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,$Textual->monthNames('one'));
|
||||||
|
}
|
||||||
|
function testWeekdayNamesLong() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Sunday',
|
||||||
|
1=>'Monday',
|
||||||
|
2=>'Tuesday',
|
||||||
|
3=>'Wednesday',
|
||||||
|
4=>'Thursday',
|
||||||
|
5=>'Friday',
|
||||||
|
6=>'Saturday',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,$Textual->weekdayNames());
|
||||||
|
}
|
||||||
|
function testWeekdayNamesShort() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Sun',
|
||||||
|
1=>'Mon',
|
||||||
|
2=>'Tue',
|
||||||
|
3=>'Wed',
|
||||||
|
4=>'Thu',
|
||||||
|
5=>'Fri',
|
||||||
|
6=>'Sat',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,$Textual->weekdayNames('short'));
|
||||||
|
}
|
||||||
|
function testWeekdayNamesTwo() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Su',
|
||||||
|
1=>'Mo',
|
||||||
|
2=>'Tu',
|
||||||
|
3=>'We',
|
||||||
|
4=>'Th',
|
||||||
|
5=>'Fr',
|
||||||
|
6=>'Sa',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,$Textual->weekdayNames('two'));
|
||||||
|
}
|
||||||
|
function testWeekdayNamesOne() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'S',
|
||||||
|
1=>'M',
|
||||||
|
2=>'T',
|
||||||
|
3=>'W',
|
||||||
|
4=>'T',
|
||||||
|
5=>'F',
|
||||||
|
6=>'S',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,$Textual->weekdayNames('one'));
|
||||||
|
}
|
||||||
|
function testPrevMonthNameShort() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$this->assertEqual('Sep',$Textual->prevMonthName('short'));
|
||||||
|
}
|
||||||
|
function testThisMonthNameShort() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$this->assertEqual('Oct',$Textual->thisMonthName('short'));
|
||||||
|
}
|
||||||
|
function testNextMonthNameShort() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$this->assertEqual('Nov',$Textual->nextMonthName('short'));
|
||||||
|
}
|
||||||
|
function testThisDayNameShort() {
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$this->assertEqual('Wed',$Textual->thisDayName('short'));
|
||||||
|
}
|
||||||
|
function testOrderedWeekdaysShort() {
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Sun',
|
||||||
|
1=>'Mon',
|
||||||
|
2=>'Tue',
|
||||||
|
3=>'Wed',
|
||||||
|
4=>'Thu',
|
||||||
|
5=>'Fri',
|
||||||
|
6=>'Sat',
|
||||||
|
);
|
||||||
|
$Textual = new Calendar_Decorator_Textual($this->mockcal);
|
||||||
|
$this->assertEqual($weekdayNames,$Textual->orderedWeekdays('short'));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfDecoratorTextual();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
// $Id: decorator_uri_test.php,v 1.2 2004/07/08 10:18:48 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./decorator_test.php');
|
||||||
|
|
||||||
|
class TestOfDecoratorUri extends TestOfDecorator {
|
||||||
|
function TestOfDecoratorUri() {
|
||||||
|
$this->UnitTestCase('Test of Calendar_Decorator_Uri');
|
||||||
|
}
|
||||||
|
function testFragments() {
|
||||||
|
$Uri = new Calendar_Decorator_Uri($this->mockcal);
|
||||||
|
$Uri->setFragments('year','month','day','hour','minute','second');
|
||||||
|
$this->assertEqual('year=&month=&day=&hour=&minute=&second=',$Uri->this('second'));
|
||||||
|
}
|
||||||
|
function testScalarFragments() {
|
||||||
|
$Uri = new Calendar_Decorator_Uri($this->mockcal);
|
||||||
|
$Uri->setFragments('year','month','day','hour','minute','second');
|
||||||
|
$Uri->setScalar();
|
||||||
|
$this->assertEqual('&&&&&',$Uri->this('second'));
|
||||||
|
}
|
||||||
|
function testSetSeperator() {
|
||||||
|
$Uri = new Calendar_Decorator_Uri($this->mockcal);
|
||||||
|
$Uri->setFragments('year','month','day','hour','minute','second');
|
||||||
|
$Uri->setSeparator('/');
|
||||||
|
$this->assertEqual('year=/month=/day=/hour=/minute=/second=',$Uri->this('second'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfDecoratorUri();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
83
campcaster/src/tools/pear/src/Calendar/tests/helper_test.php
Normal file
83
campcaster/src/tools/pear/src/Calendar/tests/helper_test.php
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
<?php
|
||||||
|
// $Id: helper_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
Mock::generate('Calendar_Engine_Interface','Mock_Calendar_Engine');
|
||||||
|
Mock::generate('Calendar_Second','Mock_Calendar_Second');
|
||||||
|
|
||||||
|
class TestOfTableHelper extends UnitTestCase {
|
||||||
|
var $mockengine;
|
||||||
|
var $mockcal;
|
||||||
|
function TestOfTableHelper() {
|
||||||
|
$this->UnitTestCase('Test of Calendar_Table_Helper');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->mockengine = new Mock_Calendar_Engine($this);
|
||||||
|
$this->mockengine->setReturnValue('getMinYears',1970);
|
||||||
|
$this->mockengine->setReturnValue('getMaxYears',2037);
|
||||||
|
$this->mockengine->setReturnValue('getMonthsInYear',12);
|
||||||
|
$this->mockengine->setReturnValue('getDaysInMonth',31);
|
||||||
|
$this->mockengine->setReturnValue('getHoursInDay',24);
|
||||||
|
$this->mockengine->setReturnValue('getMinutesInHour',60);
|
||||||
|
$this->mockengine->setReturnValue('getSecondsInMinute',60);
|
||||||
|
$this->mockengine->setReturnValue('getWeekDays',array(0,1,2,3,4,5,6));
|
||||||
|
$this->mockengine->setReturnValue('getDaysInWeek',7);
|
||||||
|
$this->mockengine->setReturnValue('getFirstDayOfWeek',1);
|
||||||
|
$this->mockengine->setReturnValue('getFirstDayInMonth',3);
|
||||||
|
$this->mockcal = new Mock_Calendar_Second($this);
|
||||||
|
$this->mockcal->setReturnValue('thisYear',2003);
|
||||||
|
$this->mockcal->setReturnValue('thisMonth',10);
|
||||||
|
$this->mockcal->setReturnValue('thisDay',15);
|
||||||
|
$this->mockcal->setReturnValue('thisHour',13);
|
||||||
|
$this->mockcal->setReturnValue('thisMinute',30);
|
||||||
|
$this->mockcal->setReturnValue('thisSecond',45);
|
||||||
|
$this->mockcal->setReturnValue('getEngine',$this->mockengine);
|
||||||
|
}
|
||||||
|
function testGetFirstDay() {
|
||||||
|
for ( $i = 0; $i <= 7; $i++ ) {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal,$i);
|
||||||
|
$this->assertEqual($Helper->getFirstDay(),$i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function testGetDaysOfWeekMonday() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal);
|
||||||
|
$this->assertEqual($Helper->getDaysOfWeek(),array(1,2,3,4,5,6,0));
|
||||||
|
}
|
||||||
|
function testGetDaysOfWeekSunday() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal,0);
|
||||||
|
$this->assertEqual($Helper->getDaysOfWeek(),array(0,1,2,3,4,5,6));
|
||||||
|
}
|
||||||
|
function testGetDaysOfWeekThursday() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal,4);
|
||||||
|
$this->assertEqual($Helper->getDaysOfWeek(),array(4,5,6,0,1,2,3));
|
||||||
|
}
|
||||||
|
function testGetNumWeeks() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal);
|
||||||
|
$this->assertEqual($Helper->getNumWeeks(),5);
|
||||||
|
}
|
||||||
|
function testGetNumTableDaysInMonth() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal);
|
||||||
|
$this->assertEqual($Helper->getNumTableDaysInMonth(),35);
|
||||||
|
}
|
||||||
|
function testGetEmptyDaysBefore() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal);
|
||||||
|
$this->assertEqual($Helper->getEmptyDaysBefore(),2);
|
||||||
|
}
|
||||||
|
function testGetEmptyDaysAfter() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal);
|
||||||
|
$this->assertEqual($Helper->getEmptyDaysAfter(),33);
|
||||||
|
}
|
||||||
|
function testGetEmptyDaysAfterOffset() {
|
||||||
|
$Helper = & new Calendar_Table_Helper($this->mockcal);
|
||||||
|
$this->assertEqual($Helper->getEmptyDaysAfterOffset(),5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfTableHelper();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
98
campcaster/src/tools/pear/src/Calendar/tests/hour_test.php
Normal file
98
campcaster/src/tools/pear/src/Calendar/tests/hour_test.php
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
<?php
|
||||||
|
// $Id: hour_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./calendar_test.php');
|
||||||
|
|
||||||
|
class TestOfHour extends TestOfCalendar {
|
||||||
|
function TestOfHour() {
|
||||||
|
$this->UnitTestCase('Test of Hour');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar_Hour(2003,10,25,13);
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 10,
|
||||||
|
'day' => 24,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
function testPrevMinute () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevMinute());
|
||||||
|
}
|
||||||
|
function testThisMinute () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisMinute());
|
||||||
|
}
|
||||||
|
function testNextMinute () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextMinute());
|
||||||
|
}
|
||||||
|
function testPrevSecond () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextSecond());
|
||||||
|
}
|
||||||
|
function testGetTimeStamp() {
|
||||||
|
$stamp = mktime(13,0,0,10,25,2003);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestOfHourBuild extends TestOfHour {
|
||||||
|
function TestOfHourBuild() {
|
||||||
|
$this->UnitTestCase('Test of Hour::build()');
|
||||||
|
}
|
||||||
|
function testSize() {
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(60,$this->cal->size());
|
||||||
|
}
|
||||||
|
function testFetch() {
|
||||||
|
$this->cal->build();
|
||||||
|
$i=0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual(60,$i);
|
||||||
|
}
|
||||||
|
function testFetchAll() {
|
||||||
|
$this->cal->build();
|
||||||
|
$children = array();
|
||||||
|
$i = 0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$children[$i]=$Child;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual($children,$this->cal->fetchAll());
|
||||||
|
}
|
||||||
|
function testSelection() {
|
||||||
|
require_once(CALENDAR_ROOT . 'Minute.php');
|
||||||
|
$selection = array(new Calendar_Minute(2003,10,25,13,32));
|
||||||
|
$this->cal->build($selection);
|
||||||
|
$i = 0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
if ( $i == 32 )
|
||||||
|
break;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertTrue($Child->isSelected());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfHour();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
$test = &new TestOfHourBuild();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
99
campcaster/src/tools/pear/src/Calendar/tests/minute_test.php
Normal file
99
campcaster/src/tools/pear/src/Calendar/tests/minute_test.php
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
<?php
|
||||||
|
// $Id: minute_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./calendar_test.php');
|
||||||
|
|
||||||
|
class TestOfMinute extends TestOfCalendar {
|
||||||
|
function TestOfMinute() {
|
||||||
|
$this->UnitTestCase('Test of Minute');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar_Minute(2003,10,25,13,32);
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 10,
|
||||||
|
'day' => 24,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
function testPrevSecond () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond_Timestamp () {
|
||||||
|
$this->assertEqual($this->cal->cE->dateToStamp(
|
||||||
|
2003, 10, 25, 13, 32, 0),
|
||||||
|
$this->cal->thisSecond('timestamp'));
|
||||||
|
}
|
||||||
|
function testNextSecond () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond_Timestamp () {
|
||||||
|
$this->assertEqual($this->cal->cE->dateToStamp(
|
||||||
|
2003, 10, 25, 13, 32, 1),
|
||||||
|
$this->cal->nextSecond('timestamp'));
|
||||||
|
}
|
||||||
|
function testGetTimeStamp() {
|
||||||
|
$stamp = mktime(13,32,0,10,25,2003);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestOfMinuteBuild extends TestOfMinute {
|
||||||
|
function TestOfMinuteBuild() {
|
||||||
|
$this->UnitTestCase('Test of Minute::build()');
|
||||||
|
}
|
||||||
|
function testSize() {
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(60,$this->cal->size());
|
||||||
|
}
|
||||||
|
function testFetch() {
|
||||||
|
$this->cal->build();
|
||||||
|
$i=0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual(60,$i);
|
||||||
|
}
|
||||||
|
function testFetchAll() {
|
||||||
|
$this->cal->build();
|
||||||
|
$children = array();
|
||||||
|
$i = 0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$children[$i]=$Child;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual($children,$this->cal->fetchAll());
|
||||||
|
}
|
||||||
|
function testSelection() {
|
||||||
|
require_once(CALENDAR_ROOT . 'Second.php');
|
||||||
|
$selection = array(new Calendar_Second(2003,10,25,13,32,43));
|
||||||
|
$this->cal->build($selection);
|
||||||
|
$i = 0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
if ( $i == 43 )
|
||||||
|
break;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertTrue($Child->isSelected());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfMinute();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
$test = &new TestOfMinuteBuild();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
119
campcaster/src/tools/pear/src/Calendar/tests/month_test.php
Normal file
119
campcaster/src/tools/pear/src/Calendar/tests/month_test.php
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
<?php
|
||||||
|
// $Id: month_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./calendar_test.php');
|
||||||
|
|
||||||
|
class TestOfMonth extends TestOfCalendar {
|
||||||
|
function TestOfMonth() {
|
||||||
|
$this->UnitTestCase('Test of Month');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar_Month(2003,10);
|
||||||
|
}
|
||||||
|
function testPrevMonth_Object() {
|
||||||
|
$this->assertEqual(new Calendar_Month(2003, 9), $this->cal->prevMonth('object'));
|
||||||
|
}
|
||||||
|
function testPrevDay () {
|
||||||
|
$this->assertEqual(30,$this->cal->prevDay());
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 9,
|
||||||
|
'day' => 30,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
function testThisDay () {
|
||||||
|
$this->assertEqual(1,$this->cal->thisDay());
|
||||||
|
}
|
||||||
|
function testNextDay () {
|
||||||
|
$this->assertEqual(2,$this->cal->nextDay());
|
||||||
|
}
|
||||||
|
function testPrevHour () {
|
||||||
|
$this->assertEqual(23,$this->cal->prevHour());
|
||||||
|
}
|
||||||
|
function testThisHour () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisHour());
|
||||||
|
}
|
||||||
|
function testNextHour () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextHour());
|
||||||
|
}
|
||||||
|
function testPrevMinute () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevMinute());
|
||||||
|
}
|
||||||
|
function testThisMinute () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisMinute());
|
||||||
|
}
|
||||||
|
function testNextMinute () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextMinute());
|
||||||
|
}
|
||||||
|
function testPrevSecond () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextSecond());
|
||||||
|
}
|
||||||
|
function testGetTimeStamp() {
|
||||||
|
$stamp = mktime(0,0,0,10,1,2003);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestOfMonthBuild extends TestOfMonth {
|
||||||
|
function TestOfMonthBuild() {
|
||||||
|
$this->UnitTestCase('Test of Month::build()');
|
||||||
|
}
|
||||||
|
function testSize() {
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(31,$this->cal->size());
|
||||||
|
}
|
||||||
|
function testFetch() {
|
||||||
|
$this->cal->build();
|
||||||
|
$i=0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual(31,$i);
|
||||||
|
}
|
||||||
|
function testFetchAll() {
|
||||||
|
$this->cal->build();
|
||||||
|
$children = array();
|
||||||
|
$i = 1;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$children[$i]=$Child;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual($children,$this->cal->fetchAll());
|
||||||
|
}
|
||||||
|
function testSelection() {
|
||||||
|
require_once(CALENDAR_ROOT . 'Day.php');
|
||||||
|
$selection = array(new Calendar_Day(2003,10,25));
|
||||||
|
$this->cal->build($selection);
|
||||||
|
$i = 1;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
if ( $i == 25 )
|
||||||
|
break;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertTrue($Child->isSelected());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfMonth();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
$test = &new TestOfMonthBuild();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,130 @@
|
||||||
|
<?php
|
||||||
|
// $Id: month_weekdays_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./calendar_test.php');
|
||||||
|
|
||||||
|
class TestOfMonthWeekdays extends TestOfCalendar {
|
||||||
|
function TestOfMonthWeekdays() {
|
||||||
|
$this->UnitTestCase('Test of Month Weekdays');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar_Month_Weekdays(2003,10);
|
||||||
|
}
|
||||||
|
function testPrevDay () {
|
||||||
|
$this->assertEqual(30,$this->cal->prevDay());
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 9,
|
||||||
|
'day' => 30,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
function testThisDay () {
|
||||||
|
$this->assertEqual(1,$this->cal->thisDay());
|
||||||
|
}
|
||||||
|
function testNextDay () {
|
||||||
|
$this->assertEqual(2,$this->cal->nextDay());
|
||||||
|
}
|
||||||
|
function testPrevHour () {
|
||||||
|
$this->assertEqual(23,$this->cal->prevHour());
|
||||||
|
}
|
||||||
|
function testThisHour () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisHour());
|
||||||
|
}
|
||||||
|
function testNextHour () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextHour());
|
||||||
|
}
|
||||||
|
function testPrevMinute () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevMinute());
|
||||||
|
}
|
||||||
|
function testThisMinute () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisMinute());
|
||||||
|
}
|
||||||
|
function testNextMinute () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextMinute());
|
||||||
|
}
|
||||||
|
function testPrevSecond () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextSecond());
|
||||||
|
}
|
||||||
|
function testGetTimeStamp() {
|
||||||
|
$stamp = mktime(0,0,0,10,1,2003);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestOfMonthWeekdaysBuild extends TestOfMonthWeekdays {
|
||||||
|
function TestOfMonthWeekdaysBuild() {
|
||||||
|
$this->UnitTestCase('Test of Month_Weekdays::build()');
|
||||||
|
}
|
||||||
|
function testSize() {
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(35,$this->cal->size());
|
||||||
|
}
|
||||||
|
function testFetch() {
|
||||||
|
$this->cal->build();
|
||||||
|
$i=0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual(35,$i);
|
||||||
|
}
|
||||||
|
function testFetchAll() {
|
||||||
|
$this->cal->build();
|
||||||
|
$children = array();
|
||||||
|
$i = 1;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$children[$i]=$Child;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual($children,$this->cal->fetchAll());
|
||||||
|
}
|
||||||
|
function testSelection() {
|
||||||
|
require_once(CALENDAR_ROOT . 'Day.php');
|
||||||
|
$selection = array(new Calendar_Day(2003,10,25));
|
||||||
|
$this->cal->build($selection);
|
||||||
|
$i = 1;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
if ( $i == 27 )
|
||||||
|
break;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertTrue($Child->isSelected());
|
||||||
|
}
|
||||||
|
function testEmptyCount() {
|
||||||
|
$this->cal->build();
|
||||||
|
$empty = 0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
if ( $Child->isEmpty() )
|
||||||
|
$empty++;
|
||||||
|
}
|
||||||
|
$this->assertEqual(4,$empty);
|
||||||
|
}
|
||||||
|
function testEmptyDaysBefore_AfterAdjust() {
|
||||||
|
$this->cal = new Calendar_Month_Weekdays(2004,0);
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(0,$this->cal->tableHelper->getEmptyDaysBefore());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfMonthWeekdays();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
$test = &new TestOfMonthWeekdaysBuild();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,125 @@
|
||||||
|
<?php
|
||||||
|
// $Id: month_weeks_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./calendar_test.php');
|
||||||
|
|
||||||
|
class TestOfMonthWeeks extends TestOfCalendar {
|
||||||
|
function TestOfMonthWeeks() {
|
||||||
|
$this->UnitTestCase('Test of Month Weeks');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar_Month_Weeks(2003,10);
|
||||||
|
}
|
||||||
|
function testPrevDay () {
|
||||||
|
$this->assertEqual(30,$this->cal->prevDay());
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 9,
|
||||||
|
'day' => 30,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
function testThisDay () {
|
||||||
|
$this->assertEqual(1,$this->cal->thisDay());
|
||||||
|
}
|
||||||
|
function testNextDay () {
|
||||||
|
$this->assertEqual(2,$this->cal->nextDay());
|
||||||
|
}
|
||||||
|
function testPrevHour () {
|
||||||
|
$this->assertEqual(23,$this->cal->prevHour());
|
||||||
|
}
|
||||||
|
function testThisHour () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisHour());
|
||||||
|
}
|
||||||
|
function testNextHour () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextHour());
|
||||||
|
}
|
||||||
|
function testPrevMinute () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevMinute());
|
||||||
|
}
|
||||||
|
function testThisMinute () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisMinute());
|
||||||
|
}
|
||||||
|
function testNextMinute () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextMinute());
|
||||||
|
}
|
||||||
|
function testPrevSecond () {
|
||||||
|
$this->assertEqual(59,$this->cal->prevSecond());
|
||||||
|
}
|
||||||
|
function testThisSecond () {
|
||||||
|
$this->assertEqual(0,$this->cal->thisSecond());
|
||||||
|
}
|
||||||
|
function testNextSecond () {
|
||||||
|
$this->assertEqual(1,$this->cal->nextSecond());
|
||||||
|
}
|
||||||
|
function testGetTimeStamp() {
|
||||||
|
$stamp = mktime(0,0,0,10,1,2003);
|
||||||
|
$this->assertEqual($stamp,$this->cal->getTimeStamp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestOfMonthWeeksBuild extends TestOfMonthWeeks {
|
||||||
|
function TestOfMonthWeeksBuild() {
|
||||||
|
$this->UnitTestCase('Test of Month_Weeks::build()');
|
||||||
|
}
|
||||||
|
function testSize() {
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(5,$this->cal->size());
|
||||||
|
}
|
||||||
|
|
||||||
|
function testFetch() {
|
||||||
|
$this->cal->build();
|
||||||
|
$i=0;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual(5,$i);
|
||||||
|
}
|
||||||
|
/* Recusive dependency issue with SimpleTest
|
||||||
|
function testFetchAll() {
|
||||||
|
$this->cal->build();
|
||||||
|
$children = array();
|
||||||
|
$i = 1;
|
||||||
|
while ( $Child = $this->cal->fetch() ) {
|
||||||
|
$children[$i]=$Child;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertEqual($children,$this->cal->fetchAll());
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
function testSelection() {
|
||||||
|
require_once(CALENDAR_ROOT . 'Week.php');
|
||||||
|
$selection = array(new Calendar_Week(2003, 10, 12));
|
||||||
|
$this->cal->build($selection);
|
||||||
|
$i = 1;
|
||||||
|
while ($Child = $this->cal->fetch()) {
|
||||||
|
if ($i == 2) {
|
||||||
|
break; //12-10-2003 is the 2nd day of the week
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->assertTrue($Child->isSelected());
|
||||||
|
}
|
||||||
|
function testEmptyDaysBefore_AfterAdjust() {
|
||||||
|
$this->cal = new Calendar_Month_Weeks(2004,0);
|
||||||
|
$this->cal->build();
|
||||||
|
$this->assertEqual(0,$this->cal->tableHelper->getEmptyDaysBefore());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfMonthWeeks();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
$test = &new TestOfMonthWeeksBuild();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,124 @@
|
||||||
|
<?php
|
||||||
|
// $Id: peardate_engine_test.php,v 1.2 2004/08/16 11:36:51 hfuecks Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class TestOfPearDateEngine extends UnitTestCase {
|
||||||
|
var $engine;
|
||||||
|
function TestOfPearDateEngine() {
|
||||||
|
$this->UnitTestCase('Test of Calendar_Engine_PearDate');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->engine = new Calendar_Engine_PearDate();
|
||||||
|
}
|
||||||
|
function testGetSecondsInMinute() {
|
||||||
|
$this->assertEqual($this->engine->getSecondsInMinute(),60);
|
||||||
|
}
|
||||||
|
function testGetMinutesInHour() {
|
||||||
|
$this->assertEqual($this->engine->getMinutesInHour(),60);
|
||||||
|
}
|
||||||
|
function testGetHoursInDay() {
|
||||||
|
$this->assertEqual($this->engine->getHoursInDay(),24);
|
||||||
|
}
|
||||||
|
function testGetFirstDayOfWeek() {
|
||||||
|
$this->assertEqual($this->engine->getFirstDayOfWeek(),1);
|
||||||
|
}
|
||||||
|
function testGetWeekDays() {
|
||||||
|
$this->assertEqual($this->engine->getWeekDays(),array(0,1,2,3,4,5,6));
|
||||||
|
}
|
||||||
|
function testGetDaysInWeek() {
|
||||||
|
$this->assertEqual($this->engine->getDaysInWeek(),7);
|
||||||
|
}
|
||||||
|
function testGetWeekNInYear() {
|
||||||
|
$this->assertEqual($this->engine->getWeekNInYear(2003, 11, 3), 45);
|
||||||
|
}
|
||||||
|
function testGetWeekNInMonth() {
|
||||||
|
$this->assertEqual($this->engine->getWeekNInMonth(2003, 11, 3), 2);
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth0() {
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2003, 11, 0), 6); //week starts on sunday
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth1() {
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2003, 11, 1), 5); //week starts on monday
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth2() {
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2003, 2, 6), 4); //week starts on saturday
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth3() {
|
||||||
|
// Unusual cases that can cause fails (shows up with example 21.php)
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2004,2,1),5);
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2004,8,1),6);
|
||||||
|
}
|
||||||
|
function testGetDayOfWeek() {
|
||||||
|
$this->assertEqual($this->engine->getDayOfWeek(2003, 11, 18), 2);
|
||||||
|
}
|
||||||
|
function testGetFirstDayInMonth() {
|
||||||
|
$this->assertEqual($this->engine->getFirstDayInMonth(2003,10),3);
|
||||||
|
}
|
||||||
|
function testGetDaysInMonth() {
|
||||||
|
$this->assertEqual($this->engine->getDaysInMonth(2003,10),31);
|
||||||
|
}
|
||||||
|
function testGetMinYears() {
|
||||||
|
$this->assertEqual($this->engine->getMinYears(),0);
|
||||||
|
}
|
||||||
|
function testGetMaxYears() {
|
||||||
|
$this->assertEqual($this->engine->getMaxYears(),9999);
|
||||||
|
}
|
||||||
|
function testDateToStamp() {
|
||||||
|
$stamp = '2003-10-15 13:30:45';
|
||||||
|
$this->assertEqual($this->engine->dateToStamp(2003,10,15,13,30,45),$stamp);
|
||||||
|
}
|
||||||
|
function testStampToSecond() {
|
||||||
|
$stamp = '2003-10-15 13:30:45';
|
||||||
|
$this->assertEqual($this->engine->stampToSecond($stamp),45);
|
||||||
|
}
|
||||||
|
function testStampToMinute() {
|
||||||
|
$stamp = '2003-10-15 13:30:45';
|
||||||
|
$this->assertEqual($this->engine->stampToMinute($stamp),30);
|
||||||
|
}
|
||||||
|
function testStampToHour() {
|
||||||
|
$stamp = '2003-10-15 13:30:45';
|
||||||
|
$this->assertEqual($this->engine->stampToHour($stamp),13);
|
||||||
|
}
|
||||||
|
function testStampToDay() {
|
||||||
|
$stamp = '2003-10-15 13:30:45';
|
||||||
|
$this->assertEqual($this->engine->stampToDay($stamp),15);
|
||||||
|
}
|
||||||
|
function testStampToMonth() {
|
||||||
|
$stamp = '2003-10-15 13:30:45';
|
||||||
|
$this->assertEqual($this->engine->stampToMonth($stamp),10);
|
||||||
|
}
|
||||||
|
function testStampToYear() {
|
||||||
|
$stamp = '2003-10-15 13:30:45';
|
||||||
|
$this->assertEqual($this->engine->stampToYear($stamp),2003);
|
||||||
|
}
|
||||||
|
function testAdjustDate() {
|
||||||
|
$stamp = '2004-01-01 13:30:45';
|
||||||
|
$y = $this->engine->stampToYear($stamp);
|
||||||
|
$m = $this->engine->stampToMonth($stamp);
|
||||||
|
$d = $this->engine->stampToDay($stamp);
|
||||||
|
|
||||||
|
//the first day of the month should be thursday
|
||||||
|
$this->assertEqual($this->engine->getDayOfWeek($y, $m, $d), 4);
|
||||||
|
|
||||||
|
$m--; // 2004-00-01 => 2003-12-01
|
||||||
|
$this->engine->adjustDate($y, $m, $d, $dummy, $dummy, $dummy);
|
||||||
|
|
||||||
|
$this->assertEqual($y, 2003);
|
||||||
|
$this->assertEqual($m, 12);
|
||||||
|
$this->assertEqual($d, 1);
|
||||||
|
|
||||||
|
// get last day and check if it's wednesday
|
||||||
|
$d = $this->engine->getDaysInMonth($y, $m);
|
||||||
|
|
||||||
|
$this->assertEqual($this->engine->getDayOfWeek($y, $m, $d), 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfPearDateEngine();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
34
campcaster/src/tools/pear/src/Calendar/tests/second_test.php
Normal file
34
campcaster/src/tools/pear/src/Calendar/tests/second_test.php
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?php
|
||||||
|
// $Id: second_test.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./calendar_test.php');
|
||||||
|
|
||||||
|
class TestOfSecond extends TestOfCalendar {
|
||||||
|
function TestOfSecond() {
|
||||||
|
$this->UnitTestCase('Test of Second');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->cal = new Calendar_Second(2003,10,25,13,32,43);
|
||||||
|
}
|
||||||
|
function testPrevDay_Array () {
|
||||||
|
$this->assertEqual(
|
||||||
|
array(
|
||||||
|
'year' => 2003,
|
||||||
|
'month' => 10,
|
||||||
|
'day' => 24,
|
||||||
|
'hour' => 0,
|
||||||
|
'minute' => 0,
|
||||||
|
'second' => 0),
|
||||||
|
$this->cal->prevDay('array'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfSecond();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
// $Id: simple_include.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
if (!defined('SIMPLE_TEST')) {
|
||||||
|
define('SIMPLE_TEST', '../../../simpletest/');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once(SIMPLE_TEST . 'unit_tester.php');
|
||||||
|
require_once(SIMPLE_TEST . 'reporter.php');
|
||||||
|
require_once(SIMPLE_TEST . 'mock_objects.php');
|
||||||
|
?>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
// $Id: table_helper_tests.php,v 1.1 2004/05/24 22:25:43 quipo Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class TableHelperTests extends GroupTest {
|
||||||
|
function TableHelperTests() {
|
||||||
|
$this->GroupTest('Table Helper Tests');
|
||||||
|
$this->addTestFile('helper_test.php');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TableHelperTests();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,104 @@
|
||||||
|
<?php
|
||||||
|
// $Id: unixts_engine_test.php,v 1.2 2004/08/16 11:36:51 hfuecks Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class TestOfUnixTsEngine extends UnitTestCase {
|
||||||
|
var $engine;
|
||||||
|
function TestOfUnixTsEngine() {
|
||||||
|
$this->UnitTestCase('Test of Calendar_Engine_UnixTs');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->engine = new Calendar_Engine_UnixTs();
|
||||||
|
}
|
||||||
|
function testGetSecondsInMinute() {
|
||||||
|
$this->assertEqual($this->engine->getSecondsInMinute(),60);
|
||||||
|
}
|
||||||
|
function testGetMinutesInHour() {
|
||||||
|
$this->assertEqual($this->engine->getMinutesInHour(),60);
|
||||||
|
}
|
||||||
|
function testGetHoursInDay() {
|
||||||
|
$this->assertEqual($this->engine->getHoursInDay(),24);
|
||||||
|
}
|
||||||
|
function testGetFirstDayOfWeek() {
|
||||||
|
$this->assertEqual($this->engine->getFirstDayOfWeek(),1);
|
||||||
|
}
|
||||||
|
function testGetWeekDays() {
|
||||||
|
$this->assertEqual($this->engine->getWeekDays(),array(0,1,2,3,4,5,6));
|
||||||
|
}
|
||||||
|
function testGetDaysInWeek() {
|
||||||
|
$this->assertEqual($this->engine->getDaysInWeek(),7);
|
||||||
|
}
|
||||||
|
function testGetWeekNInYear() {
|
||||||
|
$this->assertEqual($this->engine->getWeekNInYear(2003, 11, 3), 45);
|
||||||
|
}
|
||||||
|
function testGetWeekNInMonth() {
|
||||||
|
$this->assertEqual($this->engine->getWeekNInMonth(2003, 11, 3), 2);
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth0() {
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2003, 11, 0), 6); //week starts on sunday
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth1() {
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2003, 11, 1), 5); //week starts on monday
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth2() {
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2003, 2, 6), 4); //week starts on saturday
|
||||||
|
}
|
||||||
|
function testGetWeeksInMonth3() {
|
||||||
|
// Unusual cases that can cause fails (shows up with example 21.php)
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2004,2,1),5);
|
||||||
|
$this->assertEqual($this->engine->getWeeksInMonth(2004,8,1),6);
|
||||||
|
}
|
||||||
|
function testGetDayOfWeek() {
|
||||||
|
$this->assertEqual($this->engine->getDayOfWeek(2003, 11, 18), 2);
|
||||||
|
}
|
||||||
|
function testGetFirstDayInMonth() {
|
||||||
|
$this->assertEqual($this->engine->getFirstDayInMonth(2003,10),3);
|
||||||
|
}
|
||||||
|
function testGetDaysInMonth() {
|
||||||
|
$this->assertEqual($this->engine->getDaysInMonth(2003,10),31);
|
||||||
|
}
|
||||||
|
function testGetMinYears() {
|
||||||
|
$test = strpos(PHP_OS, 'WIN') >= 0 ? 1970 : 1902;
|
||||||
|
$this->assertEqual($this->engine->getMinYears(),$test);
|
||||||
|
}
|
||||||
|
function testGetMaxYears() {
|
||||||
|
$this->assertEqual($this->engine->getMaxYears(),2037);
|
||||||
|
}
|
||||||
|
function testDateToStamp() {
|
||||||
|
$stamp = mktime(0,0,0,10,15,2003);
|
||||||
|
$this->assertEqual($this->engine->dateToStamp(2003,10,15,0,0,0),$stamp);
|
||||||
|
}
|
||||||
|
function testStampToSecond() {
|
||||||
|
$stamp = mktime(13,30,45,10,15,2003);
|
||||||
|
$this->assertEqual($this->engine->stampToSecond($stamp),45);
|
||||||
|
}
|
||||||
|
function testStampToMinute() {
|
||||||
|
$stamp = mktime(13,30,45,10,15,2003);
|
||||||
|
$this->assertEqual($this->engine->stampToMinute($stamp),30);
|
||||||
|
}
|
||||||
|
function testStampToHour() {
|
||||||
|
$stamp = mktime(13,30,45,10,15,2003);
|
||||||
|
$this->assertEqual($this->engine->stampToHour($stamp),13);
|
||||||
|
}
|
||||||
|
function testStampToDay() {
|
||||||
|
$stamp = mktime(13,30,45,10,15,2003);
|
||||||
|
$this->assertEqual($this->engine->stampToDay($stamp),15);
|
||||||
|
}
|
||||||
|
function testStampToMonth() {
|
||||||
|
$stamp = mktime(13,30,45,10,15,2003);
|
||||||
|
$this->assertEqual($this->engine->stampToMonth($stamp),10);
|
||||||
|
}
|
||||||
|
function testStampToYear() {
|
||||||
|
$stamp = mktime(13,30,45,10,15,2003);
|
||||||
|
$this->assertEqual($this->engine->stampToYear($stamp),2003);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfUnixTsEngine();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
20
campcaster/src/tools/pear/src/Calendar/tests/util_tests.php
Normal file
20
campcaster/src/tools/pear/src/Calendar/tests/util_tests.php
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
// $Id: util_tests.php,v 1.2 2004/08/16 12:56:10 hfuecks Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
class UtilTests extends GroupTest {
|
||||||
|
function UtilTests() {
|
||||||
|
$this->GroupTest('Util Tests');
|
||||||
|
$this->addTestFile('util_uri_test.php');
|
||||||
|
$this->addTestFile('util_textual_test.php');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new UtilTests();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,191 @@
|
||||||
|
<?php
|
||||||
|
// $Id: util_textual_test.php,v 1.1 2004/08/16 12:56:10 hfuecks Exp $
|
||||||
|
|
||||||
|
require_once('simple_include.php');
|
||||||
|
require_once('calendar_include.php');
|
||||||
|
|
||||||
|
require_once('./decorator_test.php');
|
||||||
|
|
||||||
|
class TestOfUtilTextual extends UnitTestCase {
|
||||||
|
var $mockengine;
|
||||||
|
var $mockcal;
|
||||||
|
function TestOfUtilTextual() {
|
||||||
|
$this->UnitTestCase('Test of Calendar_Util_Textual');
|
||||||
|
}
|
||||||
|
function setUp() {
|
||||||
|
$this->mockengine = new Mock_Calendar_Engine($this);
|
||||||
|
$this->mockcal = new Mock_Calendar_Second($this);
|
||||||
|
$this->mockcal->setReturnValue('prevYear',2002);
|
||||||
|
$this->mockcal->setReturnValue('thisYear',2003);
|
||||||
|
$this->mockcal->setReturnValue('nextYear',2004);
|
||||||
|
$this->mockcal->setReturnValue('prevMonth',9);
|
||||||
|
$this->mockcal->setReturnValue('thisMonth',10);
|
||||||
|
$this->mockcal->setReturnValue('nextMonth',11);
|
||||||
|
$this->mockcal->setReturnValue('prevDay',14);
|
||||||
|
$this->mockcal->setReturnValue('thisDay',15);
|
||||||
|
$this->mockcal->setReturnValue('nextDay',16);
|
||||||
|
$this->mockcal->setReturnValue('prevHour',12);
|
||||||
|
$this->mockcal->setReturnValue('thisHour',13);
|
||||||
|
$this->mockcal->setReturnValue('nextHour',14);
|
||||||
|
$this->mockcal->setReturnValue('prevMinute',29);
|
||||||
|
$this->mockcal->setReturnValue('thisMinute',30);
|
||||||
|
$this->mockcal->setReturnValue('nextMinute',31);
|
||||||
|
$this->mockcal->setReturnValue('prevSecond',44);
|
||||||
|
$this->mockcal->setReturnValue('thisSecond',45);
|
||||||
|
$this->mockcal->setReturnValue('nextSecond',46);
|
||||||
|
$this->mockcal->setReturnValue('getEngine',$this->mockengine);
|
||||||
|
$this->mockcal->setReturnValue('getTimestamp',12345);
|
||||||
|
}
|
||||||
|
function tearDown() {
|
||||||
|
unset ( $this->engine );
|
||||||
|
unset ( $this->mockcal );
|
||||||
|
}
|
||||||
|
function testMonthNamesLong() {
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'January',
|
||||||
|
2=>'February',
|
||||||
|
3=>'March',
|
||||||
|
4=>'April',
|
||||||
|
5=>'May',
|
||||||
|
6=>'June',
|
||||||
|
7=>'July',
|
||||||
|
8=>'August',
|
||||||
|
9=>'September',
|
||||||
|
10=>'October',
|
||||||
|
11=>'November',
|
||||||
|
12=>'December',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,Calendar_Util_Textual::monthNames());
|
||||||
|
}
|
||||||
|
function testMonthNamesShort() {
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'Jan',
|
||||||
|
2=>'Feb',
|
||||||
|
3=>'Mar',
|
||||||
|
4=>'Apr',
|
||||||
|
5=>'May',
|
||||||
|
6=>'Jun',
|
||||||
|
7=>'Jul',
|
||||||
|
8=>'Aug',
|
||||||
|
9=>'Sep',
|
||||||
|
10=>'Oct',
|
||||||
|
11=>'Nov',
|
||||||
|
12=>'Dec',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,Calendar_Util_Textual::monthNames('short'));
|
||||||
|
}
|
||||||
|
function testMonthNamesTwo() {
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'Ja',
|
||||||
|
2=>'Fe',
|
||||||
|
3=>'Ma',
|
||||||
|
4=>'Ap',
|
||||||
|
5=>'Ma',
|
||||||
|
6=>'Ju',
|
||||||
|
7=>'Ju',
|
||||||
|
8=>'Au',
|
||||||
|
9=>'Se',
|
||||||
|
10=>'Oc',
|
||||||
|
11=>'No',
|
||||||
|
12=>'De',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,Calendar_Util_Textual::monthNames('two'));
|
||||||
|
}
|
||||||
|
function testMonthNamesOne() {
|
||||||
|
$monthNames = array(
|
||||||
|
1=>'J',
|
||||||
|
2=>'F',
|
||||||
|
3=>'M',
|
||||||
|
4=>'A',
|
||||||
|
5=>'M',
|
||||||
|
6=>'J',
|
||||||
|
7=>'J',
|
||||||
|
8=>'A',
|
||||||
|
9=>'S',
|
||||||
|
10=>'O',
|
||||||
|
11=>'N',
|
||||||
|
12=>'D',
|
||||||
|
);
|
||||||
|
$this->assertEqual($monthNames,Calendar_Util_Textual::monthNames('one'));
|
||||||
|
}
|
||||||
|
function testWeekdayNamesLong() {
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Sunday',
|
||||||
|
1=>'Monday',
|
||||||
|
2=>'Tuesday',
|
||||||
|
3=>'Wednesday',
|
||||||
|
4=>'Thursday',
|
||||||
|
5=>'Friday',
|
||||||
|
6=>'Saturday',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,Calendar_Util_Textual::weekdayNames());
|
||||||
|
}
|
||||||
|
function testWeekdayNamesShort() {
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Sun',
|
||||||
|
1=>'Mon',
|
||||||
|
2=>'Tue',
|
||||||
|
3=>'Wed',
|
||||||
|
4=>'Thu',
|
||||||
|
5=>'Fri',
|
||||||
|
6=>'Sat',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,Calendar_Util_Textual::weekdayNames('short'));
|
||||||
|
}
|
||||||
|
function testWeekdayNamesTwo() {
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Su',
|
||||||
|
1=>'Mo',
|
||||||
|
2=>'Tu',
|
||||||
|
3=>'We',
|
||||||
|
4=>'Th',
|
||||||
|
5=>'Fr',
|
||||||
|
6=>'Sa',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,Calendar_Util_Textual::weekdayNames('two'));
|
||||||
|
}
|
||||||
|
function testWeekdayNamesOne() {
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'S',
|
||||||
|
1=>'M',
|
||||||
|
2=>'T',
|
||||||
|
3=>'W',
|
||||||
|
4=>'T',
|
||||||
|
5=>'F',
|
||||||
|
6=>'S',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,Calendar_Util_Textual::weekdayNames('one'));
|
||||||
|
}
|
||||||
|
function testPrevMonthNameShort() {
|
||||||
|
$this->assertEqual('Sep',Calendar_Util_Textual::prevMonthName($this->mockcal,'short'));
|
||||||
|
}
|
||||||
|
function testThisMonthNameShort() {
|
||||||
|
$this->assertEqual('Oct',Calendar_Util_Textual::thisMonthName($this->mockcal,'short'));
|
||||||
|
}
|
||||||
|
function testNextMonthNameShort() {
|
||||||
|
$this->assertEqual('Nov',Calendar_Util_Textual::nextMonthName($this->mockcal,'short'));
|
||||||
|
}
|
||||||
|
function testThisDayNameShort() {
|
||||||
|
$this->assertEqual('Wed',Calendar_Util_Textual::thisDayName($this->mockcal,'short'));
|
||||||
|
}
|
||||||
|
function testOrderedWeekdaysShort() {
|
||||||
|
$weekdayNames = array(
|
||||||
|
0=>'Sun',
|
||||||
|
1=>'Mon',
|
||||||
|
2=>'Tue',
|
||||||
|
3=>'Wed',
|
||||||
|
4=>'Thu',
|
||||||
|
5=>'Fri',
|
||||||
|
6=>'Sat',
|
||||||
|
);
|
||||||
|
$this->assertEqual($weekdayNames,Calendar_Util_Textual::orderedWeekdays($this->mockcal,'short'));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined('TEST_RUNNING')) {
|
||||||
|
define('TEST_RUNNING', true);
|
||||||
|
$test = &new TestOfUtilTextual();
|
||||||
|
$test->run(new HtmlReporter());
|
||||||
|
}
|
||||||
|
?>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue