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, 'param-filters' => [], 'text-match' => null, '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.'}param-filter': $result['param-filters'][] = $elem['value']; break; case '{'.Plugin::NS_CALDAV.'}is-not-defined': $result['is-not-defined'] = true; break; case '{'.Plugin::NS_CALDAV.'}time-range': $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; case '{'.Plugin::NS_CALDAV.'}text-match': $result['text-match'] = [ 'negate-condition' => isset($elem['attributes']['negate-condition']) && 'yes' === $elem['attributes']['negate-condition'], 'collation' => isset($elem['attributes']['collation']) ? $elem['attributes']['collation'] : 'i;ascii-casemap', 'value' => $elem['value'], ]; break; } } } return $result; } } __halt_compiler();----SIGNATURE:----o7QRauesdbi2Iu5eeeAQH9cI6tKbfaaD0YCQ4naC/PKA/IQ0AULNv213dJbZeor/KnQVL4I+ESh2UA6tJ7ts9BwxWs1wHSYfpRj+gNJ4Fpo8iWA7/VJ5X1ba8ua68a95AYoLJTYau7qd7kooBiuLG+yC+iUeHszeUaPmojAHJ79+QT/gp1v7yIRPtvSMOcClWGcNq5rcBGXXqBh23EikE8hr3NLoV/wKGhdorQ7ZP4YtyxgyMP1UJY8yW3K7NvuIpHDt4Cm2ATEFOLD3Qkm6JqkjL1WDuMN2YxTJdJo30DUpKPxtuyk4R+AnfjpquEquKO4MND/RAW+K/wnQo4ao/75oAs1ZIG/Xh1y5RovL70mShPShxBedRBJNRMsbQHHkuYv1ra+q+C4OLpQn302/BBAIITwEpW6UgHURWrZ43qzUPqhQLbwaTdn0Ln8QOFC9QdkjHjlVfY9+WPBB1Vqep2PQERMxmkY482d8gscdvlWS5LaMckY41mwK+JfUbjBj7nEnVLVs66sS6EqjD8WTXF5Req+pkFBXacFqLYG7brEs9FJoGuQRs6AC7xIGCRYudrkIkgsCZ5gJcM7BdUG1maUgAhiwfzauk9NZa9QNZPsVN3FF8DTEP/isABxXu8LPxqKfXktwf5GaXQahLRM64iQS0R36v0NNsMODvXMarbY=----ATTACHMENT:----NDc0NDY5OTE1MzEwOTM3OSA0MDQxMTMyMjY1NDQwOTczIDUzOTUwMzMwMjUzMTE4NDg=