source: spip-zone/_plugins_/icalendar/inc/ics_to_array.php @ 60555

Last change on this file since 60555 was 60555, checked in by cedric@…, 9 years ago

eviter de peupler des dates nulles

File size: 1.1 KB
Line 
1<?php
2
3
4# hors de la fonction, de facon a ce que la class soit chargee
5# meme si le resultat est deja dans le cache (sinon le cache est inexploitable).
6# cf. iterateur/data.php
7include_spip('lib/iCalcreator.class');
8
9function inc_ics_to_array($u) {
10
11        # on passe par un fichier temp car notre librairie fonctionne comme ca
12        $tmp = _DIR_TMP . 'ics-'.md5($u);
13        ecrire_fichier($tmp, str_replace("\r\n", "\n", $u));
14
15        $cal = new vcalendar();
16        $cal->setConfig( 'filename', $tmp );
17        $cal->parse();
18
19        supprimer_fichier($tmp);
20
21        $table_valeur = function_exists('Iterateurs_table_valeur')
22                ? 'Iterateurs_table_valeur' : 'table_valeur';
23
24        # noter les dates cles dans un format plus facile a recuperer
25        foreach($cal->components as $k => &$v) {
26
27                foreach(array('dtstart', 'dtend', 'dtstamp', 'lastmodified', 'created')
28                as $champ) {
29                        if (isset($v->$champ)
30                          AND $w = &$v->$champ
31                          AND $date = $table_valeur($w, "value")) {
32                                $w['str'] = sprintf('%04d-%02d-%02d %02d:%02d:%02d',
33                                        $date['year'],
34                                        $date['month'],
35                                        $date['day'],
36                                        $date['hour'],
37                                        $date['min'],
38                                        $date['sec']
39                                );
40                        }
41                }
42        }
43
44        return($cal->components);
45}
46
Note: See TracBrowser for help on using the repository browser.