* @author Lorenzo Alberton * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) * @version CVS: $Id: Uri.php 300729 2010-06-24 12:05:53Z quipo $ * @link http://pear.php.net/package/Calendar */ /** * 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
* Note: for performance you should prefer Calendar_Util_Uri unless you * have a specific need to use a decorator * * $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 * * * @category Date and Time * @package Calendar * @author Harry Fuecks * @author Lorenzo Alberton * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) * @link http://pear.php.net/package/Calendar * @see Calendar_Util_Uri * @access public */ class Calendar_Decorator_Uri extends Calendar_Decorator { /** * @var Calendar_Util_Uri * @access private */ var $Uri; /** * Constructs Calendar_Decorator_Uri * * @param object &$Calendar subclass of Calendar * * @access public */ function Calendar_Decorator_Uri(&$Calendar) { parent::Calendar_Decorator($Calendar); } /** * Sets the URI fragment names * * @param string $y URI fragment for year * @param string $m (optional) URI fragment for month * @param string $d (optional) URI fragment for day * @param string $h (optional) URI fragment for hour * @param string $i (optional) URI fragment for minute * @param string $s (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 url fragment 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 $state (optional) * * @return void * @access public */ function setScalar($state = true) { $this->Uri->scalar = $state; } /** * Gets the URI string for the previous calendar unit * * @param string $method 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 $method 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 $method 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); } } ?>