source: spip-zone/_plugins_/icalendar/branches/0/http/ical.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.6 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6/*
7 * Implémentation d'un serveur REST pour iCal
8 * (le vrai truc bien serait d'implémenter au moins une partie de CalDAV, mais on en est pas là)
9 */ 
10
11
12/*
13 * GET sur la racine du serveur iCal
14 * http://site/rest.api/ical
15 */
16function http_ical_get_index_dist(){
17       
18}
19
20/*
21 * GET sur une collection
22 * http://site/rest.api/ical/all
23 */
24function http_ical_get_collection_dist($collection){
25        // Pour l'instant on va simplement chercher un squelette du nom de la collection
26        // Le squelette prend en contexte les paramètres du GET uniquement
27        if ($flux = recuperer_fond("http/ical/$collection", $_GET)){
28                header('Status: 200 OK');
29                header("Content-type: text/calendar; charset=utf-8");
30                echo $flux;
31                exit;
32        }
33        // Si on ne trouve rien c'est que ça n'existe pas
34        else{
35                header('Status: 404 Not Found');
36                exit;
37        }
38}
39
40/*
41 * GET sur une ressource
42 * http://site/rest.api/ical/patates
43 */
44function http_ical_get_ressource_dist($collection, $ressource){
45        // Quelque soit la collection, tous les événements ont le même squelette
46        // Le squelette prend en contexte les paramètres du GET + l'identifiant de l'évenement en essayant de faire au mieux
47        $contexte = array(
48                'id_evenement' => $ressource,
49                'ressource' => $ressource,
50        );
51        $contexte = array_merge($_GET, $contexte);
52       
53        if ($flux = recuperer_fond("http/ical/event", $contexte)){
54                header('Status: 200 OK');
55                header("Content-type: text/calendar; charset=utf-8");
56                echo $flux;
57                exit;
58        }
59        // Si on ne trouve rien c'est que ça n'existe pas
60        else{
61                header('Status: 404 Not Found');
62                exit;
63        }
64}
65
66?>
Note: See TracBrowser for help on using the repository browser.