You are here

function media_acquiadam_browser_get_search_results in Media: Acquia DAM 7

Perform a search against the API.

Parameters

int $folderId: The DAM folder ID to limit searching to. Will include subfolders.

array $search: An array of search properties: keywords, type.

array $form_state: The current form state array.

int $perPage: The number of results to limit the search to.

Return value

array An keyed array featuring assets and total_count.

1 call to media_acquiadam_browser_get_search_results()
media_acquiadam_browser_get_initial_assets in modules/media_acquiadam_browser/includes/media_acquiadam_browser.helpers.inc
Get the initial set of assets to display on the media browser form.

File

modules/media_acquiadam_browser/includes/media_acquiadam_browser.helpers.inc, line 162
Helper functions for the Acquia DAM browser.

Code

function media_acquiadam_browser_get_search_results($folderId, array $search, array $form_state, $perPage = 25) {
  $child_assets = [
    'assets' => [],
    'total_count' => 0,
  ];
  $keywords = !empty($search['keywords']) ? $search['keywords'] : '';
  try {
    $options = [
      'folderid' => $folderId,
      'limit' => $perPage,
      'offset' => pager_find_page() * $perPage,
    ];
    if (!empty($search['type'])) {
      $options['types'] = $search['type'];
    }
    if (!empty($search['sort'])) {
      list($options['sortby'], $options['sortdir']) = explode('_', $search['sort'], 2);
    }
    $searcher = new AcquiaDAM_Search();
    $results = $searcher
      ->search($keywords, $options);
  } catch (Exception $x) {
    drupal_set_message($x
      ->getMessage(), 'error');
    watchdog_exception('media_acquiadam_browser', $x);
  }
  if (!empty($results['items'])) {
    foreach ($results['items'] as $asset) {
      $child_assets['assets'][] = media_acquiadam_get_asset($asset);
    }
    $child_assets['total_count'] = $results['total_count'];
  }
  return $child_assets;
}