/**
  * @inheritdoc
  */
 public function isSatisfiedBy(\CultureFeed_Cdb_Item_Actor $actor)
 {
     $categories = $actor->getCategories();
     return $categories instanceof \CultureFeed_Cdb_Data_CategoryList && $categories->hasCategory('8.11.0.0.0');
 }
Ejemplo n.º 2
0
 /**
  * Withdraw link for an actor.
  *
  * @param CultureFeed_Cdb_Item_Actor $actor
  *   Actor where the link will be removed for.
  * @param string $link
  *   Link to remove.
  */
 public function removeLinkFromActor(CultureFeed_Cdb_Item_Actor $actor, $link)
 {
     $this->removeLink('actor', $actor->getCdbId(), $link);
 }
Ejemplo n.º 3
0
 /**
  * @expectedException CultureFeed_Cdb_ParseException
  * @expectedExceptionMessage Actordetails missing for actor element
  */
 public function testParseCdbXmlWithoutActorDetails()
 {
     $xml = $this->loadSample('actor-no-actordetails.xml');
     CultureFeed_Cdb_Item_Actor::parseFromCdbXml($xml);
 }
Ejemplo n.º 4
0
 /**
  * @see CultureFeed_Cdb_IElement::parseFromCdbXml(SimpleXMLElement
  *     $xmlElement)
  * @return CultureFeed_Cdb_Data_Category
  */
 public static function parseFromCdbXml(SimpleXMLElement $xmlElement)
 {
     $performer = new CultureFeed_Cdb_Data_Performer();
     if (!empty($xmlElement->label)) {
         $performer->setLabel((string) $xmlElement->label);
     }
     if (!empty($xmlElement->role)) {
         $performer->setRole((string) $xmlElement->role);
     }
     if (!empty($xmlElement->actor)) {
         $performer->setActor(CultureFeed_Cdb_Item_Actor::parseFromCdbXml($xmlElement->actor));
     }
     return $performer;
 }
Ejemplo n.º 5
0
 /**
  * @see CultureFeed_Cdb_IElement::parseFromCdbXml(SimpleXMLElement
  *     $xmlElement)
  * @return CultureFeed_Cdb_Data_Location
  */
 public static function parseFromCdbXml(SimpleXMLElement $xmlElement)
 {
     if (empty($xmlElement->address)) {
         throw new CultureFeed_Cdb_ParseException("Address missing for location element");
     }
     $address = CultureFeed_Cdb_Data_Address::parseFromCdbXml($xmlElement->address);
     $location = new CultureFeed_Cdb_Data_Location($address);
     if (!empty($xmlElement->label)) {
         $attributes = $xmlElement->label->attributes();
         $location->setLabel((string) $xmlElement->label);
         if (isset($attributes['cdbid'])) {
             $location->setCdbid((string) $attributes['cdbid']);
         }
     }
     if (!empty($xmlElement->actor)) {
         $actor = CultureFeed_Cdb_Item_Actor::parseFromCdbXml($xmlElement->actor);
         $location->setActor($actor);
     }
     return $location;
 }
Ejemplo n.º 6
0
 /**
  * @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;
 }
Ejemplo n.º 7
0
 /**
  * Parse a given xml element to an CultureFeed_Cdb_Item_Base.
  * @param SimpleXMLElement $xmlElement
  *   XML element from the item to parse.
  */
 public static function parseItem(SimpleXMLElement $xmlElement)
 {
     // Return the correct cdb item.
     switch ($xmlElement->getName()) {
         case 'event':
             return CultureFeed_Cdb_Item_Event::parseFromCdbXml($xmlElement);
         case 'production':
             return CultureFeed_Cdb_Item_Production::parseFromCdbXml($xmlElement);
         case 'actor':
             return CultureFeed_Cdb_Item_Actor::parseFromCdbXml($xmlElement);
         default:
             return NULL;
     }
 }
Ejemplo n.º 8
0
 /**
  * @param string $cdbId
  * @return \CultureFeed_Cdb_Item_Actor|false
  * @throws \CultureFeed_Cdb_ParseException
  */
 public function getActor($cdbId)
 {
     $request = $this->getCnetRequest();
     $request->getQuery()->set('q', 'cdbid:' . $cdbId);
     $request->getQuery()->set('group', 'actor');
     try {
         $response = $request->send();
         $responseBody = $response->getBody(true);
         $xml = simplexml_load_string($responseBody, 'SimpleXMLElement', 0, $this->config->getNameSpace());
         $actors = array();
         foreach ($xml->actor as $actorXml) {
             if ($actor = \CultureFeed_Cdb_Item_Actor::parseFromCdbXml($actorXml)) {
                 $actors[] = $actor;
             }
         }
         if (count($actors) != 1) {
             $this->logger->warning(t('More than one or no Actor found for @cdbid, count: @count', array('@cdbid' => $cdbId, '@count' => count($actors))));
             return false;
         }
         return $actors[0];
     } catch (ClientErrorResponseException $e) {
         throw $e;
     }
 }