| // | Lorenzo Alberton | // +----------------------------------------------------------------------+ // // $Id$ // /** * @package Calendar * @version $Id$ */ /** * 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 * * @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); } } ?>