/** * Load the items * * @return bool */ protected function loadItems() { try { //TODO use guzzle $xml = simplexml_load_file($this->buildUrl()); $this->result = \CultureFeed_Cdb_List_Results::parseFromCdbXml($xml); } catch (\Exception $e) { } return (bool) $this->result->getTotalResultsfound(); }
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()); }
/** * @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; }
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()); }
/** * 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); }