function media_acquiadam_browser_choose_asset_form_fill_assets in Media: Acquia DAM 7
Helper function to adjust the asset chooser form values.
Parameters
array $form: A form render array.
array $form_state: The current form state.
array $options: An array of options as passed from the Media Browser plugin.
1 call to media_acquiadam_browser_choose_asset_form_fill_assets()
- media_acquiadam_browser_choose_asset_form in modules/
media_acquiadam_browser/ includes/ media_acquiadam_browser.forms.inc - Acquia DAM browser form.
File
- modules/
media_acquiadam_browser/ includes/ media_acquiadam_browser.forms.inc, line 274 - Form related hooks and functions.
Code
function media_acquiadam_browser_choose_asset_form_fill_assets(array &$form, array &$form_state, array $options = []) {
$qp = drupal_get_query_parameters(NULL, [
'q',
'page',
'aa',
]);
$folderId = empty($qp['folderId']) ? AcquiaDAM_Assets_Folder::ROOT_FOLDER_ID : $qp['folderId'];
$per_page = variable_get('media_acquiadam_browser_per_page', 25);
$is_root = empty($folderId) || AcquiaDAM_Assets_Folder::ROOT_FOLDER_ID == $folderId;
$is_search = !empty($qp['search']);
// We're not under the root folder so show the breadcrumb trail.
// This allows users to navigate back up a level if they need to.
if (!$is_root) {
$trail_assets = media_acquiadam_browser_get_trail($folderId);
$form['results']['trail']['#access'] = TRUE;
$form['results']['trail']['#assets'] = $trail_assets;
}
$initial_assets = media_acquiadam_browser_get_initial_assets($folderId, $form_state, $per_page);
// Fake paging the results of the API for the root folder by splitting up
// its result and overwriting what we originally got.
if ($is_root && !$is_search && is_array($initial_assets)) {
$initial_assets = media_acquiadam_browser_fake_paged_root($initial_assets, $per_page);
}
if (!empty($initial_assets['assets'])) {
$result_assets =& $form['results']['assets'];
// Hide the 'no assets' message.
$form['results']['empty_message']['#access'] = FALSE;
foreach ($initial_assets['assets'] as $asset) {
$result_assets['#options'][$asset['id']] = $asset['name'];
$result_assets['#assets'][$asset['id']] = $asset;
}
// Store the fetched assets so we don't have to do another API lookup on
// submission. Make sure they are keyed by their asset ID first so we can
// easily look them up in the submit handler later.
$keys = array_map(function ($item) {
return $item['id'];
}, $result_assets['#assets']);
$form_state['storage']['assets'] = array_combine($keys, $result_assets['#assets']);
}
$form['actions']['back']['#access'] = !$is_root;
pager_default_initialize($initial_assets['total_count'], $per_page);
}