Example #1
0
 /**
  * Rewind the Iterator to the first element
  *
  * @return void Any returned value is ignored.
  */
 public function rewind()
 {
     if (!$this->result) {
         $this->loadItems();
     }
     $this->result->rewind();
 }
Example #2
0
 public function testParseFromCdbXmlWithoutListNameAndItemNameWithSource()
 {
     $xml = $this->loadSample('eventlist_v2.xml');
     $eventsXml = $xml->xpath('event');
     $eventXmlSource = $eventsXml[0];
     $list = CultureFeed_Cdb_List_Results::parseFromCdbXml($xml);
     /** @var CultureFeed_Cdb_Item_Event $item */
     $item = $list->current();
     $this->assertNotNull($item->getSource());
     $this->assertInstanceOf('SimpleXMLElement', $item->getSource());
     $this->assertEquals($eventXmlSource, $item->getSource());
 }
Example #3
0
 /**
  * @param int $page
  * @param int $pageSize
  * @return \CultureFeed_Cdb_List_Results
  */
 public function getEventList($page = 0, $pageSize = 100)
 {
     $request = $this->getCnetRequest();
     $this->applyPaging($page, $pageSize, $request);
     $request->getQuery()->set('q', $this->config->getParam('q', '*.*'));
     $request->getQuery()->set('fq', $this->config->getParam('fq', 'type:event'));
     $request->getQuery()->set('group', $this->config->getParam('group', 'event'));
     //TODO: sort causes a 401 Unauthorized
     //$request->getQuery()->set('sort', 'score+desc');
     try {
         $response = $request->send();
         $responseBody = $response->getBody(true);
         $xml = simplexml_load_string($responseBody, 'SimpleXMLElement', 0, $this->config->getNameSpace());
         $xml->registerXPathNamespace('cdb', $this->config->getNameSpace());
         $result = \CultureFeed_Cdb_List_Results::parseFromCdbXml($xml);
         $result = $this->completeEventList($result);
         $result->setTotalResultsFound((int) count($xml->xpath('/cdb:cdbxml/cdb:event')));
     } catch (ClientErrorResponseException $e) {
         throw $e;
     }
     return $result;
 }
Example #4
0
 public function testParseFromCdbXml()
 {
     $xml = $this->loadSample('eventlist.xml');
     $list = CultureFeed_Cdb_List_Results::parseFromCdbXml($xml);
     $this->assertInstanceOf('CultureFeed_Cdb_List_Results', $list);
     // This should be checked, it does not seem work as expected currently.
     //$this->assertEquals(50, $list->getTotalResultsfound());
     $this->assertCount(50, $list);
     $this->assertContainsOnly('CultureFeed_Cdb_List_Item', $list);
     $list->rewind();
     /* @var CultureFeed_Cdb_List_Item $item */
     $item = $list->current();
     $this->assertEquals('f00539b9-bace-44ac-8a55-9688f4155c1f', $item->getCdbId());
     $this->assertEquals('test_images_1', $item->getExternalId());
     $this->assertEquals('Event met meerdere afbeeldingen', $item->getTitle());
     $this->assertEquals('short description', $item->getShortDescription());
     $list->next();
     $item = $list->current();
     $this->assertEquals('c4948d7f-ed24-4b3d-b872-17277cd83a9d', $item->getCdbId());
     $this->assertEquals('lve_eng_test2', $item->getExternalId());
     $this->assertEquals('Event title', $item->getTitle());
     $this->assertEquals('English short description', $item->getShortDescription());
 }
Example #5
0
 /**
  * Search items on the entry api.
  *
  * @param string $type
  * @param string $query
  *   Query to search.
  * @param int $page
  *   Page number to get.
  * @param int $page_length
  *   Items requested for current page.
  * @param string $sort
  *   Sort type.
  * @param string $updated_since
  *   Correct ISO date format (yyyy-m-dTH): example 2012-12-20T12:21
  *
  * @return CultureFeed_Cdb_List_Results
  *
  * @throws CultureFeed_ParseException
  */
 private function search($type, $query, $page, $page_length, $sort, $updated_since)
 {
     $args = array('q' => $query);
     if ($updated_since) {
         $args['updatedsince'] = $updated_since;
     }
     if ($page) {
         $args['page'] = $page;
     }
     if ($page_length) {
         $args['pagelength'] = $page_length;
     }
     if ($sort) {
         $args['sort'] = $sort;
     }
     $result = $this->oauth_client->authenticatedGetAsXml($type, $args);
     try {
         $xml = new CultureFeed_SimpleXMLElement($result);
     } catch (Exception $e) {
         throw new CultureFeed_ParseException($result);
     }
     return CultureFeed_Cdb_List_Results::parseFromCdbXml($xml);
 }