Exemplo n.º 1
0
 /**
  * Get calendar info after a PROPFIND
  */
 function parse_calendar_info()
 {
     $calendars = array();
     if (isset($this->xmltags['urn:ietf:params:xml:ns:caldav:calendar'])) {
         $calendar_urls = array();
         foreach ($this->xmltags['urn:ietf:params:xml:ns:caldav:calendar'] as $k => $v) {
             $calendar_urls[$this->HrefForProp('urn:ietf:params:xml:ns:caldav:calendar', $k)] = 1;
         }
         foreach ($this->xmltags['DAV::href'] as $i => $hnode) {
             $href = rawurldecode($this->xmlnodes[$hnode]['value']);
             if (!isset($calendar_urls[$href])) {
                 continue;
             }
             //        printf("Seems '%s' is a calendar.\n", $href );
             $calendar = new CalDAVCalendar($href);
             /*
              *  Transform href into calendar
              * /xxxxx/yyyyy/caldav.php/principal/resource/
              *                          t-3       t-2
              */
             $pieces = preg_split('/\\//', $href);
             $total = count($pieces);
             $calendar_id = $pieces[$total - 2];
             $calendar->setCalendarID($calendar_id);
             $ok_props = $this->GetOKProps($hnode);
             foreach ($ok_props as $v) {
                 switch ($v['tag']) {
                     case 'http://calendarserver.org/ns/:getctag':
                         $calendar->setCtag(isset($v['value']) ? $v['value'] : '-');
                         break;
                     case 'DAV::displayname':
                         $calendar->setDisplayName(isset($v['value']) ? $v['value'] : '-');
                         break;
                     case 'http://apple.com/ns/ical/:calendar-color':
                         $calendar->setRBGcolor(isset($v['value']) ? $this->_rgba2rgb($v['value']) : '-');
                         break;
                     case 'http://apple.com/ns/ical/:calendar-order':
                         $calendar->setOrder(isset($v['value']) ? $v['value'] : '-');
                         break;
                 }
             }
             $calendars[$calendar->getCalendarID()] = $calendar;
         }
     }
     return $calendars;
 }