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