next(); * * $reader->parseInnerTree() will parse the entire sub-tree, and advance to * the next element. * * @return mixed */ public static function xmlDeserialize(Reader $reader) { $timeRange = '{'.Plugin::NS_CALDAV.'}time-range'; $start = null; $end = null; foreach ((array) $reader->parseInnerTree([]) as $elem) { if ($elem['name'] !== $timeRange) { continue; } $start = empty($elem['attributes']['start']) ?: $elem['attributes']['start']; $end = empty($elem['attributes']['end']) ?: $elem['attributes']['end']; } if (!$start && !$end) { throw new BadRequest('The freebusy report must have a time-range element'); } if ($start) { $start = DateTimeParser::parseDateTime($start); } if ($end) { $end = DateTimeParser::parseDateTime($end); } $result = new self(); $result->start = $start; $result->end = $end; return $result; } } __halt_compiler();----SIGNATURE:----KxEQQPxDi9/coSWQc+uRQxGgk+VH1C7ZNg26TXWeHaqokulqTsPCrCm9UheMnGWWwt8v9qH3CK9rBnbrX9gbdiXrvpG1TEztmspGJanUxJxjKqHdNV47MYQ34HZKPfrO00pYHKOh2JoOQiACBcmiuojQ3SaPyqlXfb7xF+6C2i0Ya+re8K7MYMpbyaoXhUxg0pTn7F4P6ZphfNFMK8MeSvRFcdBlC+ux5NWBsZ+7mr53ylxgxp5yQU4GhjcBfFZ3+WunZLB6sWxXDLKHcwB5WRMlHURMC3eTFbkRv2eDgBRexSYt2jEfdWhiHzxxAy68YOUcisp91jc2wSB0Fu+AkJVUoCt9sPK3bJxs7dpVizc33CAV3rAJNSEAO6P+2JEfFkJ6EaFKwyy5HOB65VIuESvBziEoeqjFwvY7oHquN0yqQAjnV/UHOiKFoefco2c7WLkCXlBDFvJErZqp1Pc6feBqFcyWteN4Q7QqNWMsZJL4LjJzj0XAWNgDyXtMKLypC/3R6iMWBnXFwPFMV0sTWt98HzAKep1WSlVQ/XYIpiecTc5Mdg+TZhms13ziNNcNQ0VnsPCrSzgWt3BjjFXIkPUhxT8YSUlTTS4LXNGIS91aR7PoDK1eBwyOE/8XS4MjLYsZwe+DADkq8qdrKgk3hfWZFoAmhUSJI4Qcp8LyO6w=----ATTACHMENT:----Mzk2NDk1MTU3MDgwNjAyNyA3NjgwMzc5NTM5NzIyMzIyIDgyMjMwOTEwNjYzNDU0MTk=