/**
  * Handle GET request without ID.
  */
 public function indexAction()
 {
     $apiResources = $this->getFrontController()->getParam('api_resources');
     // Add the site-specific URL to each API resource.
     foreach ($apiResources as $resource => &$resourceInfo) {
         $resourceInfo['url'] = Omeka_Record_Api_AbstractRecordAdapter::getResourceUrl("/{$resource}");
     }
     $this->_helper->jsonApi($apiResources);
 }
Example #2
0
 public function indexAction()
 {
     if (is_admin_theme()) {
         // There is no API endpoint on the admin theme.
         $this->_helper->redirector('index', 'index');
     }
     $this->view->title = get_option('site_title');
     $this->view->site_url = Omeka_Record_Api_AbstractRecordAdapter::getResourceUrl('/site');
     $this->view->resource_url = Omeka_Record_Api_AbstractRecordAdapter::getResourceUrl('/resources');
 }
function exhibit_builder_api_extend_items($extend, $args)
{
    $item = $args['record'];
    $pages = get_db()->getTable('ExhibitPage')->findBy(array('item' => $item->id));
    if (count($pages) == 1) {
        $page = $pages[0];
        $extend['exhibit_pages'] = array('id' => $page->id, 'url' => Omeka_Record_Api_AbstractRecordAdapter::getResourceUrl("/exhibit_pages/{$page->id}"), 'resource' => 'exhibit_pages');
    } else {
        $extend['exhibit_pages'] = array('count' => count($pages), 'url' => Omeka_Record_Api_AbstractRecordAdapter::getResourceUrl("/exhibit_pages?item={$item->id}"), 'resource' => 'exhibit_pages');
    }
    return $extend;
}
 private function _filterApiExtendRecords($extend, $args)
 {
     $record = $args['record'];
     $recordClass = get_class($record);
     $extend['comments'] = array('count' => $this->_countComments($record), 'resource' => 'comments', 'url' => Omeka_Record_Api_AbstractRecordAdapter::getResourceUrl("/comments?record_type={$recordClass}&record_id={$record->id}"));
     return $extend;
 }
 /**
  * Add geolocations to item API representations.
  *
  * @param array $extend
  * @param array $args
  * @return array
  */
 public function filterApiExtendItems($extend, $args)
 {
     $item = $args['record'];
     $location = $this->_db->getTable('Location')->findBy(array('item_id' => $item->id));
     if (!$location) {
         return $extend;
     }
     $locationId = $location[0]['id'];
     $extend['geolocations'] = array('id' => $locationId, 'url' => Omeka_Record_Api_AbstractRecordAdapter::getResourceUrl("/geolocations/{$locationId}"), 'resource' => 'geolocations');
     return $extend;
 }