/** * Create an associative array of object properties from XML * @static * @param SimpleXMLElement $parsedResponse - XML of an event * @return array */ public static function createStruct($parsedResponse) { $event['link'] = (string) $parsedResponse->link->Attributes()->href; $event['updated'] = (string) $parsedResponse->updated; $event['id'] = (string) $parsedResponse->id; $eventNode = $parsedResponse->content->children(); $event['name'] = (string) $eventNode->Event->Name; $event['description'] = (string) $eventNode->Event->Description; $event['title'] = (string) $eventNode->Event->Title; $event['registered'] = (string) $eventNode->Event->Registered; $event['createdDate'] = (string) $eventNode->Event->CreatedDate; $event['status'] = (string) $eventNode->Event->Status; $event['eventType'] = (string) $eventNode->Event->EventType; $location['location'] = (string) $eventNode->Event->EventLocation->Location; $location['addr1'] = (string) $eventNode->Event->EventLocation->Address1; $location['addr2'] = (string) $eventNode->Event->EventLocation->Address2; $location['addr3'] = (string) $eventNode->Event->EventLocation->Address3; $location['city'] = (string) $eventNode->Event->EventLocation->City; $location['state'] = (string) $eventNode->Event->EventLocation->State; $location['country'] = (string) $eventNode->Event->EventLocation->Country; $location['postalCode'] = (string) $eventNode->Event->EventLocation->PostalCode; $event['eventLocation'] = new EventLocation($location); $event['registrationUrl'] = (string) $eventNode->Event->RegistrationURL; $event['startDate'] = (string) $eventNode->Event->StartDate; $event['endDate'] = (string) $eventNode->Event->EndDate; $event['publishDate'] = (string) $eventNode->Event->PublishDate; $event['attendedCount'] = (string) $eventNode->Event->AttendedCount; $event['cancelledCount'] = (string) $eventNode->Event->CancelledCount; $event['eventFeeRequired'] = (string) $eventNode->Event->EventFeeRequired; $event['currencyType'] = (string) $eventNode->Event->CurrencyType; $event['paymentOptions'] = array(); if (isset($eventNode->Event->PaymentOptions->PaymentOption)) { foreach ($eventNode->Event->PaymentOptions->PaymentOption as $options) { $payOption = ''; $type = (string) $options->Type; try { if ($type == "PAYPAL") { $paypalAddr = (string) $options->PayPalAccountEmail; $payOption = new PayPalPayment($paypalAddr); } elseif ($type == "chECK") { $payOption = new checkPayment(checkPayment::createStruct($options)); } elseif ($type == "DOOR") { $payOption = new DoorPayment(); } if (empty($payOption)) { throw new Exception('Payment Type ' . $type . ' is not a valid option'); } } catch (Exception $e) { die($e->getMessage()); } $event['paymentOptions'][] = $payOption; } foreach ($eventNode->Event->RegistrationTypes->RegistrationType as $regType) { $registration = new RegistrationType(RegistrationType::createStruct($regType)); } $event['registrationTypes'][] = $registration; } return $event; }