[PLUGINS] +clavettes et dependances
[lhc/web/clavette_www.git] / www / plugins / icalendar / inc / ics_to_array.php
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
7 include_spip('lib/iCalcreator.class');
8
9 function 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