OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / include / lib / Calendar-0.5.5 / Decorator / Uri.php
1 <?php
2 /* vim: set expandtab tabstop=4 shiftwidth=4: */
3
4 /**
5  * Contains the Calendar_Decorator_Uri class
6  *
7  * PHP versions 4 and 5
8  *
9  * LICENSE: Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. The name of the author may not be used to endorse or promote products
17  *    derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
20  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22  * IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY
23  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  *
30  * @category  Date and Time
31  * @package   Calendar
32  * @author    Harry Fuecks <hfuecks@phppatterns.com>
33  * @author    Lorenzo Alberton <l.alberton@quipo.it>
34  * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton
35  * @license   http://www.debian.org/misc/bsd.license  BSD License (3 Clause)
36  * @version   CVS: $Id: Uri.php 4940 2012-06-06 02:20:28Z fishbone $
37  * @link      http://pear.php.net/package/Calendar
38  */
39
40 /**
41  * Allows Calendar include path to be redefined
42  * @ignore
43  */
44 if (!defined('CALENDAR_ROOT')) {
45     define('CALENDAR_ROOT', 'Calendar'.DIRECTORY_SEPARATOR);
46 }
47
48 /**
49  * Load Calendar decorator base class
50  */
51 require_once CALENDAR_ROOT.'Decorator.php';
52
53 /**
54  * Load the Uri utility
55  */
56 require_once CALENDAR_ROOT.'Util'.DIRECTORY_SEPARATOR.'Uri.php';
57
58 /**
59  * Decorator to help with building HTML links for navigating the calendar<br />
60  * <b>Note:</b> for performance you should prefer Calendar_Util_Uri unless you
61  * have a specific need to use a decorator
62  * <code>
63  * $Day = new Calendar_Day(2003, 10, 23);
64  * $Uri = new Calendar_Decorator_Uri($Day);
65  * $Uri->setFragments('year', 'month', 'day');
66  * echo $Uri->getPrev(); // Displays year=2003&month=10&day=22
67  * </code>
68  *
69  * @category  Date and Time
70  * @package   Calendar
71  * @author    Harry Fuecks <hfuecks@phppatterns.com>
72  * @author    Lorenzo Alberton <l.alberton@quipo.it>
73  * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton
74  * @license   http://www.debian.org/misc/bsd.license  BSD License (3 Clause)
75  * @link      http://pear.php.net/package/Calendar
76  * @see       Calendar_Util_Uri
77  * @access    public
78  */
79 class Calendar_Decorator_Uri extends Calendar_Decorator
80 {
81
82     /**
83      * @var Calendar_Util_Uri
84      * @access private
85      */
86     var $Uri;
87
88     /**
89      * Constructs Calendar_Decorator_Uri
90      *
91      * @param object &$Calendar subclass of Calendar
92      *
93      * @access public
94      */
95     function Calendar_Decorator_Uri(&$Calendar)
96     {
97         parent::Calendar_Decorator($Calendar);
98     }
99
100     /**
101      * Sets the URI fragment names
102      *
103      * @param string $y URI fragment for year
104      * @param string $m (optional) URI fragment for month
105      * @param string $d (optional) URI fragment for day
106      * @param string $h (optional) URI fragment for hour
107      * @param string $i (optional) URI fragment for minute
108      * @param string $s (optional) URI fragment for second
109      *
110      * @return void
111      * @access public
112      */
113     function setFragments($y, $m = null, $d = null, $h = null, $i = null, $s = null)
114     {
115         $this->Uri = new Calendar_Util_Uri($y, $m, $d, $h, $i, $s);
116     }
117
118     /**
119      * Sets the separator string between fragments
120      *
121      * @param string $separator url fragment separator e.g. /
122      *
123      * @return void
124      * @access public
125      */
126     function setSeparator($separator)
127     {
128         $this->Uri->separator = $separator;
129     }
130
131     /**
132      * Puts Uri decorator into "scalar mode" - URI variable names are not returned
133      *
134      * @param boolean $state (optional)
135      *
136      * @return void
137      * @access public
138      */
139     function setScalar($state = true)
140     {
141         $this->Uri->scalar = $state;
142     }
143
144     /**
145      * Gets the URI string for the previous calendar unit
146      *
147      * @param string $method calendar unit to fetch uri for (year, month, week or day etc)
148      *
149      * @return string
150      * @access public
151      */
152     function prev($method)
153     {
154         return $this->Uri->prev($this, $method);
155     }
156
157     /**
158      * Gets the URI string for the current calendar unit
159      *
160      * @param string $method calendar unit to fetch uri for (year,month,week or day etc)
161      *
162      * @return string
163      * @access public
164      */
165     function this($method)
166     {
167         return $this->Uri->this($this, $method);
168     }
169
170     /**
171      * Gets the URI string for the next calendar unit
172      *
173      * @param string $method calendar unit to fetch uri for (year,month,week or day etc)
174      *
175      * @return string
176      * @access public
177      */
178     function next($method)
179     {
180         return $this->Uri->next($this, $method);
181     }
182 }
183 ?>