/** * Create an extended entity based on a given xmlElement. * @param SimpleXMLElement $xmlElement */ public static function fromXml(SimpleXMLElement $xmlElement) { $cdbItem = \CultureFeed_Cdb_Default::parseItem($xmlElement); if (!$cdbItem) { return NULL; } $extendedEntity = new static(); $extendedEntity->type = $xmlElement->getName(); $extendedEntity->id = $cdbItem->getCdbId(); // Add the different activity counts. if (!empty($xmlElement->activities)) { foreach ($xmlElement->activities->activity as $activity) { $activityType = (string) $activity->attributes()->type; $extendedEntity->activityCounts[$activityType] = (int) $activity->attributes()->count; } } $extendedEntity->entity = $cdbItem; return $extendedEntity; }
/** * Get the xmlview items * * @param SimpleXMLElement $xmlElement * * @return array */ protected static function parseFromCdbXmlXmlview(SimpleXMLElement $xmlElement) { $items = array(); if ($xmlElement->events) { $listName = 'events'; $itemName = 'event'; } elseif ($xmlElement->actors) { $listName = 'actors'; $itemName = 'actor'; } elseif ($xmlElement->productions) { $listName = 'productions'; $itemName = 'production'; } foreach ($xmlElement->{$listName}->{$itemName} as $item) { $items[] = CultureFeed_Cdb_Default::parseItem($item); } return $items; }
/** * Get the xmlview items * @param SimpleXMLElement $xmlElement * @return array */ protected static function parseFromCdbXmlXmlview(SimpleXMLElement $xmlElement) { $items = array(); if ($xmlElement->events) { $listName = 'events'; $itemName = 'event'; } elseif ($xmlElement->actors) { $listName = 'actors'; $itemName = 'actor'; } elseif ($xmlElement->productions) { $listName = 'productions'; $itemName = 'production'; } if (isset($listName) && isset($itemName)) { foreach ($xmlElement->{$listName}->{$itemName} as $item) { $listItem = CultureFeed_Cdb_Default::parseItem($item); $listItem->setSource($item); $items[] = $listItem; } } else { foreach ($xmlElement as $item) { if ($listItem = CultureFeed_Cdb_Default::parseItem($item)) { $listItem->setSource($item); $items[] = $listItem; } } } return $items; }