]> git.mxchange.org Git - friendica-addons.git/blob - dav/common/wdcal_configuration.php
8d53edee9e218611d95b790806e32f72bf0a8ffd
[friendica-addons.git] / dav / common / wdcal_configuration.php
1 <?php
2
3 abstract class wdcal_local
4 {
5
6         const LOCAL_US = 0;
7         const LOCAL_DE = 1;
8
9         /**
10          * @static
11          * @return array|wdcal_local[]
12          */
13         static function getInstanceClasses() {
14                 return array(
15                         self::LOCAL_US => "wdcal_local_us",
16                         self::LOCAL_DE => "wdcal_local_de",
17                 );
18         }
19
20         /**
21          * @static
22          * @param int $config
23          * @return null|wdcal_local
24          */
25         static function getInstance($config = 0) {
26                 $classes = self::getInstanceClasses();
27                 if (isset($classes[$config])) return new $classes[$config];
28                 return null;
29         }
30
31         /**
32          * @static
33          * @param int $uid
34          * @return wdcal_local
35          */
36         static function getInstanceByUser($uid = 0) {
37                 $dateformat = get_pconfig($uid, "dav", "dateformat");
38                 $format = self::getInstance($dateformat);
39                 if ($format == null) $format = self::getInstance(self::LOCAL_US);
40                 return $format;
41         }
42
43         /**
44          * @abstract
45          * @static
46          * @return string
47          */
48         abstract static function getName();
49
50         /**
51          * @static
52          * @abstract
53          * @return int
54          */
55         abstract static function getID();
56
57         /**
58          * @param string $str
59          * @return int
60          */
61         function date_local2timestamp($str) {
62                 $x = $this->date_parseLocal($str);
63                 return mktime($x["hour"], $x["minute"], $x["second"], $x["month"], $x["day"], $x["year"]);
64         }
65
66         /**
67          * @abstract
68          * @param string $str
69          * @return array
70          */
71         abstract function date_parseLocal($str);
72
73         /**
74          * @abstract
75          * @param int $ts
76          * @return string
77          */
78         abstract function date_timestamp2local($ts);
79
80         /**
81          * @abstract
82          * @return int
83          */
84         abstract function getFirstDayOfWeek();
85
86         /**
87          * @abstract
88          * @return string
89          */
90         abstract function dateformat_js_dm1();
91         /**
92          * @abstract
93          * @return string
94          */
95         abstract function dateformat_js_dm2();
96
97         /**
98          * @abstract
99          * @return string
100          */
101         abstract function dateformat_js_dm3();
102
103         /**
104          * @abstract
105          * @return string
106          */
107         abstract function dateformat_datepicker_js();
108
109         /**
110          * @abstract
111          * @param int $ts
112          * @return string
113          */
114         abstract function dateformat_datepicker_php($ts = 0);
115
116 }
117
118
119
120 class wdcal_local_us extends wdcal_local {
121
122         /**
123          * @return string
124          */
125         static function getName() {
126                 return t("U.S. Time Format (mm/dd/YYYY)");
127         }
128
129         /**
130          * @static
131          * @return int
132          */
133         static function getID() {
134                 return wdcal_local::LOCAL_US;
135         }
136
137         /**
138          * @param string $str
139          * @return array
140          */
141         function date_parseLocal($str) {
142                 return date_parse_from_format("m/d/Y H:i", $str);
143         }
144
145
146         /**
147          * @param int $ts
148          * @return string
149          */
150         function date_timestamp2local($ts)
151         {
152                 return date("m/d/Y H:i", $ts);
153         }
154
155         /**
156          * @return int
157          */
158         function getFirstDayOfWeek() {
159                 return 0;
160         }
161
162         /**
163          * @return string
164          */
165         function dateformat_js_dm1() {
166                 return "W, M/d";
167         }
168
169         /**
170          * @return string
171          */
172         function dateformat_js_dm2() {
173                 return "d. L";
174         }
175
176         /**
177          * @return string
178          */
179         function dateformat_js_dm3() {
180                 return "d L yyyy";
181         }
182
183         /**
184          * @return string
185          */
186         function dateformat_datepicker_js() {
187                 return "mm/dd/yy";
188         }
189
190         /**
191          * @param int $ts
192          * @return string
193          */
194         function dateformat_datepicker_php($ts = 0) {
195                 return date("m/d/Y", $ts);
196         }
197 }
198
199 class wdcal_local_de extends  wdcal_local {
200
201         /**
202          * @return string
203          */
204         static function getName() {
205                 return t("German Time Format (dd.mm.YYYY)");
206         }
207
208         /**
209          * @static
210          * @return int
211          */
212         static function getID() {
213                 return wdcal_local::LOCAL_DE;
214         }
215
216         /**
217          * @param string $str
218          * @return array
219          */
220         function date_parseLocal($str)
221         {
222                 return date_parse_from_format("d.m.Y H:i", $str);
223         }
224
225         /**
226          * @param int $ts
227          * @return string
228          */
229         function date_timestamp2local($ts)
230         {
231                 return date("d.m.Y H:i", $ts);
232         }
233
234         /**
235          * @return int
236          */
237         function getFirstDayOfWeek() {
238                 return 1;
239         }
240
241         /**
242          * @return string
243          */
244         function dateformat_js_dm1() {
245                 return "W, d.M";
246         }
247
248         /**
249          * @return string
250          */
251         function dateformat_js_dm2() {
252                 return "d. L";
253         }
254
255         /**
256          * @return string
257          */
258         function dateformat_js_dm3() {
259                 return "d L yyyy";
260         }
261
262         /**
263          * @return string
264          */
265         function dateformat_datepicker_js() {
266                 return "dd.mm.yy";
267         }
268
269         /**
270          * @param int $ts
271          * @return string
272          */
273         function dateformat_datepicker_php($ts = 0) {
274                 return date("d.m.Y", $ts);
275         }
276 }
277