next(); * * $reader->parseInnerTree() will parse the entire sub-tree, and advance to * the next element. * * @return mixed */ public static function xmlDeserialize(Reader $reader) { $result = [ 'name' => null, 'is-not-defined' => false, 'comp-filters' => [], 'prop-filters' => [], 'time-range' => false, ]; $att = $reader->parseAttributes(); $result['name'] = $att['name']; $elems = $reader->parseInnerTree(); if (is_array($elems)) { foreach ($elems as $elem) { switch ($elem['name']) { case '{'.Plugin::NS_CALDAV.'}comp-filter': $result['comp-filters'][] = $elem['value']; break; case '{'.Plugin::NS_CALDAV.'}prop-filter': $result['prop-filters'][] = $elem['value']; break; case '{'.Plugin::NS_CALDAV.'}is-not-defined': $result['is-not-defined'] = true; break; case '{'.Plugin::NS_CALDAV.'}time-range': if ('VCALENDAR' === $result['name']) { throw new BadRequest('You cannot add time-range filters on the VCALENDAR component'); } $result['time-range'] = [ 'start' => isset($elem['attributes']['start']) ? DateTimeParser::parseDateTime($elem['attributes']['start']) : null, 'end' => isset($elem['attributes']['end']) ? DateTimeParser::parseDateTime($elem['attributes']['end']) : null, ]; if ($result['time-range']['start'] && $result['time-range']['end'] && $result['time-range']['end'] <= $result['time-range']['start']) { throw new BadRequest('The end-date must be larger than the start-date'); } break; } } } return $result; } } __halt_compiler();----SIGNATURE:----copkjWpsq41i5iskushyfhdBw9tjIq4qhlP1XmM1QjsIRcvUmdb1eNefTw4AcsvpRnWS7LC+3nu9Piumv85SfWj/K/cMEmRcOO1AvDlBOHpeAaL/lc89Gl+P8OIoRmIoqtU/rTVLLNN9fRXRsL+luYfCE93WeSD2Kfv//L4mHB4NrkOoE3+gluMuv6MH55C/corQnmNuQs6ml/iNaNvULLxqv9D8QJ2xTqbWK9x+R6YAAqWX7RpNmaKU0SRy5w/8fcdpIQZzV7mczgLwfzKFcm6eFwDMWgwSp/UHaKxz6q+Q/Ca3bYBP4x55UBQarEZh+7lDPpBwaAo58TDWCyH4TYP9q1JEgM4EadZw1YRQr779XDxFoJAvDSKDvn78lPd1h+MxoymS0clmbzqINzEprm825iGfFrr5B2pTl3gAOrNjThieI6KUQlLRzXF6TmOq+8ZcSI2gUbAz9fg+YVCzZvroHvq3OX5YToaonXSQMMz+itkhPHozbQlhP8jpLD5SiKVJwmt6zxqnAuqqUD61ctbAWJkG3TjCe3MZTYnOTMpv2VkjPzKkrCeK9CikMmJIsea67SG/c0PaP5s2cTHjjqChIopKj4T10/3SbBa7ef6xlZwHZIJhZ1G/FUu3nf5myxcW3zlGzpoMdXd4CYKKZJXG81fv/hJFHr6Kia4K8ug=----ATTACHMENT:----ODk1Mjc0NzQxMTQ0Mjk3MiA1MDczNTkwMTA3NTkyMzA3IDM3ODkxMTIxNzM0Njg3NTY=