Changeset 118427 in spip-zone


Ignore:
Timestamp:
Nov 5, 2019, 12:12:00 AM (4 months ago)
Author:
rastapopoulos@…
Message:

Quelques changements dans les fonctions mais presque rien

Location:
_plugins_/icalendar/trunk
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/icalendar/trunk/http/ical.php

    r115801 r118427  
    55
    66/*
    7  * Implémentation d'un serveur REST pour APP (AtomPub)
     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à)
    89 */
    910
    1011/**
    11  * Rien, car en Atom il n'y a malheureusement pas de gestion des erreurs pour l'instant
     12 * Gestion des erreurs (apparemment il n'y a rien de prévu pour iCal)
    1213 *
    1314 * @param int $code Le code HTTP de l'erreur à générer
    14  * @return string Retourne une chaîne vide
     15 * @return string Retourne le contenu de l'erreur à renvoyer dans la réponse
    1516 */
    16 function http_ical_erreur_dist($code, $requete, $reponse){
     17function http_ical_erreur_dist($code, $requete, $reponse) {
    1718        $reponse->setStatusCode($code);
    1819        $reponse->setContent('');
     20       
     21        return $reponse;
     22}
     23
     24/*
     25 * GET sur la racine du serveur iCal
     26 * http://site/http.api/ical
     27 */
     28function http_ical_get_index_dist($requete, $reponse) {
    1929        return $reponse;
    2030}
     
    2434 * http://site/http.api/ical/all
    2535 */
    26 function http_ical_get_collection_dist($requete, $reponse){
     36function http_ical_get_collection_dist($requete, $reponse) {
     37        $format = $requete->attributes->get('format');
    2738        $collection = $requete->attributes->get('collection');
    2839        $contexte = $requete->query->all();
     
    3041        // Pour l'instant on va simplement chercher un squelette du nom de la collection
    3142        // Le squelette prend en contexte les paramètres du GET uniquement
    32         if ($flux = recuperer_fond("http/ical/$collection", $contexte)){
     43        if ($ics = recuperer_fond("http/$format/$collection", $contexte)){
    3344                $reponse->setStatusCode(200);
    3445                $reponse->setCharset('utf-8');
    35                 $reponse->headers->set('Content-Type', 'application/atom+xml');
    36                 $reponse->setContent($flux);
     46                $reponse->headers->set('Content-Type', 'text/calendar');
     47                $reponse->setContent($ics);
    3748        }
    3849        // Si on ne trouve rien c'est que ça n'existe pas
    3950        else{
    40                 $reponse->setStatusCode(404);
     51                $fonction_erreur = charger_fonction('erreur', "http/$format/");
     52                $response = $fonction_erreur(404, $requete, $reponse);
    4153        }
    4254       
     
    4658/*
    4759 * GET sur une ressource
    48  * http://site/http.api/ical/event
     60 * http://site/http.api/ical/all/123
    4961 */
    50  
    51 function http_ical_get_ressource_dist($requete, $reponse){
    52 
    53         // Quelque soit la collection, tous les événements ont le même squelette
    54         // Le squelette prend en contexte les paramètres du GET + l'identifiant de l'évenement en essayant de faire au mieux
     62function http_ical_get_ressource_dist($requete, $reponse) {
     63        $format = $requete->attributes->get('format');
     64        $collection = $requete->attributes->get('collection');
    5565        $ressource = $requete->attributes->get('ressource');
    56 
     66       
    5767        // Quelque soit la collection, tous les événements ont le même squelette
    5868        // Le squelette prend en contexte les paramètres du GET + l'identifiant de l'évenement en essayant de faire au mieux
     
    6171                'ressource' => $ressource,
    6272        );
    63         $contexte = array_merge($requete->query->all(), $contexte);
     73        $contexte = array_merge($requete->query->all(), $requete->attributes->all(), $contexte);
    6474       
    65         if ($flux = recuperer_fond("http/ical/event", $contexte)){
     75        if ($ics = recuperer_fond("http/$format/event", $contexte)){
    6676                $reponse->setStatusCode(200);
    6777                $reponse->setCharset('utf-8');
    68                 $reponse->headers->set("Content-type: text/calendar; charset=utf-8");
    69                 $reponse->setContent($flux);
     78                $reponse->headers->set('Content-Type', 'text/calendar');
     79                $reponse->setContent($ics);
    7080        }
    7181        // Si on ne trouve rien c'est que ça n'existe pas
    7282        else{
    73                 $reponse->setStatusCode(404);
     83                $fonction_erreur = charger_fonction('erreur', "http/$format/");
     84                $response = $fonction_erreur(404, $requete, $reponse);
    7485        }
    7586       
    7687        return $reponse;
    7788}
    78 
  • _plugins_/icalendar/trunk/paquet.xml

    r115803 r118427  
    22        prefix="icalendar"
    33        categorie="date"
    4         version="0.5.0"
     4        version="0.5.1"
    55        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
     
    88        documentation="https://contrib.spip.net/Plugin-iCalendar"
    99>       
    10 
    1110        <nom>iCalendar</nom>
    1211        <!-- Faire des boucles iCalendar (format ics) -->
     
    1413        <auteur>Fil</auteur>
    1514
    16         <copyright>2010-2011</copyright>
    17 
    1815        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
    19         <utilise nom="http" compatibilite="[1.0.0;1.*.*]" />
     16        <utilise nom="http" compatibilite="[1.2.10;]" />
    2017</paquet>
Note: See TracChangeset for help on using the changeset viewer.