source: spip-zone/_plugins_/icalendar/branches/0/inc/ics_to_array.php @ 115802

Last change on this file since 115802 was 115802, checked in by gouz@…, 16 months ago

on conserve la veille version de icalendar dans branches/0 (compatible avec le plugin http < 1 et spip 2)

  • Property svn:executable set to *
File size: 1.2 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'] = date('Y-m-d H:i:s', strtotime(sprintf("%04d-%02d-%02dT%02d:%02d:%02d%s",
33                                        $date['year'],
34                                        $date['month'],
35                                        $date['day'],
36                                        $date['hour'],
37                                        $date['min'],
38                                        $date['sec'],
39                                        $date['tz']))
40                                );
41                        }
42                }
43        }
44
45        return($cal->components);
46}
47
Note: See TracBrowser for help on using the repository browser.