Dotclear

source: plugins/eventdata/class.dc.eventdata.rest.php @ 1005

Revision 1005, 2.8 KB checked in by JcDenis, 14 years ago (diff)

eventdata: fix conflict with icsFeed plugin

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ----------------------------------
3# This file is part of eventdata, a plugin for Dotclear 2.
4#
5# Copyright (c) 2009 JC Denis and contributors
6# jcdenis@gdwd.com
7#
8# Licensed under the GPL version 2.0 license.
9# A copy of this license is available in LICENSE file or at
10# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
11# -- END LICENSE BLOCK ------------------------------------
12
13class dcEventdataRest
14{
15     public static function getEventdata(&$core,$get)
16     {
17          $postId = !empty($get['postId']) ? $get['postId'] : null;
18          $eventdataType = !empty($get['eventdataType']) ? $get['eventdataType'] : null;
19          $eventdataStart = !empty($get['eventdataStart']) ? $get['eventdataStart'] : null;
20          $eventdataEnd = !empty($get['eventdataEnd']) ? $get['eventdataEnd'] : null;
21          $eventdataPeriod = !empty($get['eventdataPeriod']) ? $get['eventdataPeriod'] : null;
22
23          $limit = !empty($get['limit']) ? $get['limit'] : null;
24          $sortby = !empty($get['sortby']) ? $get['sortby'] : 'eventdata_start,desc';
25
26          $eventdata = new dcEventdata($core);
27          $rs = $eventdata->getEventdata($eventdataType,$limit,$eventdataStart,$eventdataEnd,$postId,$eventdataPeriod);
28
29          $sortby = explode(',',$sortby);
30          $sort = $sortby[0];
31          $order = isset($sortby[1]) ? $sortby[1] : 'desc';
32
33          switch ($sort) {
34               case 'eventdata_start':
35                    $sort = 'start_ts'; break;
36               case 'eventdata_end':
37                    $sort = 'end_ts'; break;
38               default:
39                    $sort = 'eventdata_start';
40          }
41
42          $rs->sort($sort,$order);
43         
44          $rsp = new xmlTag();
45         
46          while ($rs->fetch())
47          {
48               $xe = new xmlTag('eventdata');
49               $xe->post = $rs->post_id;
50               $xe->type = $rs->eventdata_type;
51               $xe->count = $rs->count;
52               $xe->start = $rs->eventdata_start;
53               $xe->end = $rs->eventdata_end;
54               $rsp->insertNode($xe);
55          }
56
57          return $rsp;
58     }
59     
60     public static function setEventdata(&$core,$get,$post)
61     {
62          if (empty($post['postId'])) throw new Exception('No post ID');
63          if (empty($post['eventdataType'])) throw new Exception('No event type');
64          if (empty($post['eventdataStart'])) throw new Exception('No event start date');
65          if (empty($post['eventdataEnd'])) throw new Exception('No event end date');
66
67          $eventdata = new dcEventdata($core);
68          $eventdata->setEventdata($post['eventdataType'],$post['postId'],$post['eventdataStart'],$post['eventdataEnd'],);
69
70          return true;
71     }
72     
73     public static function delEventdata(&$core,$get,$post)
74     {
75          if (empty($post['postId'])) throw new Exception('No post ID');
76          if (empty($post['eventdataType'])) throw new Exception('No event type');
77
78          $start = empty($post['eventdataStart']) ? null : $post['eventdataStart'];
79          $end = empty($post['eventdataEnd']) ? null : $post['eventdataEnd'];
80
81          $eventdata = new dcEventdata($core);
82          $eventdata->delEventdata($post['eventdataType'],$post['postId'],$start,$end);
83
84          return true;
85     }
86}
87?>
Note: See TracBrowser for help on using the repository browser.

Sites map