예제 #1
0
 /**
  * Get Cdb XML string
  *
  * @param CultureFeed_Cdb_Item_Base $item
  *
  * @return string
  * @throws \Exception
  */
 private function getCdbXml(\CultureFeed_Cdb_Item_Base $item)
 {
     $cdb = new \CultureFeed_Cdb_Default($this->cdb_schema_version);
     $cdb->addItem($item);
     return (string) $cdb;
 }
예제 #2
0
 /**
  * Update an actor.
  *
  * @param CultureFeed_Cdb_Item_Actor $actor
  *   The actor to update.
  */
 public function updateActor(CultureFeed_Cdb_Item_Actor $actor)
 {
     $cdb = new CultureFeed_Cdb_Default($this->cdbXmlVersion);
     $cdb->addItem($actor);
     $result = $this->oauth_client->authenticatedPostAsXml('actor/' . $actor->getCdbId(), array('raw_data' => $cdb->__toString()), TRUE);
     $xml = $this->validateResult($result, self::CODE_ITEM_MODIFIED);
 }
예제 #3
0
파일: Results.php 프로젝트: cultuurnet/cdb
 /**
  * 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;
 }
 /**
  * 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;
 }
예제 #5
0
 public function testConstructorWithoutSpecificVersion()
 {
     $cdbXml = new CultureFeed_Cdb_Default();
     $this->assertEquals(CultureFeed_Cdb_Xml::namespaceUriForVersion('3.2'), $cdbXml->getSchemaUrl());
     $this->assertEquals('3.2', $cdbXml->getSchemaVersion());
 }
예제 #6
0
파일: Results.php 프로젝트: RustiSub/Cdb
 /**
  * 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;
 }