/** * @see CultureFeed_Cdb_IElement::parseFromCdbXml(SimpleXMLElement $xmlElement) * @return CultureFeed_Cdb_Data_Organiser */ public static function parseFromCdbXml(SimpleXMLElement $xmlElement) { $organiser = new CultureFeed_Cdb_Data_Organiser(); if (empty($xmlElement->label) && empty($xmlElement->actor)) { //throw new CultureFeed_Cdb_ParseException("One of the required fields (actor or label) is missing for organiser element"); } if (!empty($xmlElement->label)) { $organiser->setLabel((string) $xmlElement->label); $attributes = $xmlElement->label->attributes(); if (!empty($attributes->cdbid)) { $organiser->setCdbid((string) $attributes->cdbid); } } elseif (!empty($xmlElement->actor)) { $actor = CultureFeed_Cdb_Item_Actor::parseFromCdbXml($xmlElement->actor); $organiser->setActor($actor); } return $organiser; }
/** * @param \CultureFeed_Cdb_Data_Organiser|\CultureFeed_Cdb_Data_Location $item * @throws \EgoCore\Error\Exception */ private function completeActor($item) { if ($item && !$item->getActor() && ($actorCdbId = $item->getCdbid())) { if (isset($actorCache[$actorCdbId])) { $actor = $actorCache[$actorCdbId]; } else { if ($actor = $this->getActor($actorCdbId)) { $actorCache[$actorCdbId] = $actor; } } if ($actor) { $item->setActor($actor); } } }