mediamosa_browse_asset_form($form, &$form_state, $asset_id)Add+Edit form
sites/all/modules/mediamosa/maintenance/browse/mediamosa_maintenance_browse_asset.inc, line 733
<?php
function mediamosa_browse_asset_form($form, &$form_state, $asset_id) {
// If we are set as Home page, the breadcrumb isnt set, lets do it here.
$breadcrumb = array();
$breadcrumb[] = l(t('Home'), NULL);
$breadcrumb[] = l(t('Administer'), 'admin');
$breadcrumb[] = l(t('MediaMosa'), 'admin/mediamosa');
$breadcrumb[] = l(t('Browse'), 'admin/mediamosa/browse');
$breadcrumb[] = l(t('Asset browser'), 'admin/mediamosa/browse/asset');
drupal_set_breadcrumb($breadcrumb);
// Get the asset REST call.
$url = strtr('asset/@asset_id', array('@asset_id' => $asset_id));
// Do REST call.
$result_asset = mediamosa_response_connector::static_do_restcall_drupal('asset/' . $asset_id, 'GET', array());
if (!mediamosa_response_connector::static_result_okay($result_asset)) {
drupal_set_message(t('Asset with ID @asset_id does not exists.', array('@asset_id' => $asset_id)), 'warning');
drupal_goto('admin/mediamosa/browse/asset');
}
$asset = reset($result_asset['items']);
// Get all metadata properties for this app.
$metadatas = mediamosa_asset_metadata_property::get_metadata_properties_full();
// Collect the metadata groups.
$metadata_groups = array();
foreach ($metadatas as $name => $metadata) {
$metadata_groups[$metadata['propgroup_name']] = $metadata['propgroup_id'];
}
// Empty form.
$form = array();
// Store asset_id.
$form['asset_id'] = array(
'#type' => 'hidden',
'#value' => $asset_id,
);
// Build form for editing the metdata.
foreach ($metadata_groups as $group_name => $group_id) {
if (empty($asset[$group_name])) {
continue;
}
// Add fieldset for metadata group.
$name_fixed = _mediamosa_browse_fix_metadata_name($group_name);
// Walk through the properties.
foreach ($asset[$group_name] as $metadata_name => $metadata_values) {
if (empty($metadata_values)) {
continue;
}
// Set fieldset if not already.
if (!isset($form[$group_name])) {
$form[$group_name] = array(
'#type' => 'fieldset',
'#title' => t($name_fixed),
'#collapsible' => TRUE,
'#description' => t('Clear an item to delete it from the asset\'s @name_fixed metadata.', array('@name_fixed' => $name_fixed))
);
}
foreach ($metadata_values as $metadata_value) {
// Make the edit box.
// rpl_/old_ in front of the name makes sure we dont conflict with other
// names in the form.
$form[$group_name]['rpl_' . $metadata_name] = array(
'#type' => drupal_strlen($metadata_value) > 80 ? 'textarea' : 'textfield',
'#default_value' => $metadata_value,
'#title' => t(_mediamosa_browse_fix_metadata_name($metadata_name)),
);
}
}
}
$options_metadata_groups = array('' => '');
ksort($metadata_groups);
ksort($metadatas);
foreach ($metadata_groups as $metadata_group_name => $metadata_group_id) {
foreach ($metadatas as $name => $metadata) {
if ($metadata['propgroup_id'] != $metadata_group_id) {
continue;
}
$options_metadata_groups[_mediamosa_browse_fix_metadata_name($metadata_group_name)][$metadata['propdef_name']] = _mediamosa_browse_fix_metadata_name($metadata['propdef_name']);
}
}
$form['add'] = array(
'#type' => 'fieldset',
'#title' => t('New metadata field'),
'#collapsible' => TRUE,
'#description' => t('Add a new metadata field to the asset\'s metadata.')
);
$form['add']['new_metadata_property'] = array(
'#type' => 'select',
'#title' => t('Metadata field'),
'#description' => t('Enter value for the selected metadata field.'),
'#options' => $options_metadata_groups,
);
$form['add']['new_metadata_value'] = array(
'#type' => 'textarea',
'#title' => t('Value'),
'#description' => t('Enter value for the selected metadata field.'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit changes'),
);
return $form;
}
?>