Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 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 300729 2010-06-24 12:05:53Z quipo $
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
?>