/**
  * 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;
 }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * 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;
 }