function _assets_in_editor_form_remove_non_overridable_fields in Asset 7
Remove unsupported for override field types.
Parameters
$form:
1 call to _assets_in_editor_form_remove_non_overridable_fields()
- assets_override_form in includes/
asset.admin.inc - Page callback for asset override form in wysiwyg.
File
- includes/
asset.admin.inc, line 468 - Asset admin page callbacks.
Code
function _assets_in_editor_form_remove_non_overridable_fields(&$form) {
$types = _assets_get_overridable_field_types();
foreach (element_children($form) as $key) {
// Skip broken form elements.
if (empty($form[$key])) {
continue;
}
$info = field_info_field($key);
// If info is missed or unsupported, remove field.
if (empty($info) || !isset($types[$info['type']])) {
unset($form[$key]);
continue;
}
$columns = $types[$info['type']];
// For now we are using first col name to check if field required.
// Later, we need to finda flexible way.
$column = reset($columns);
$lang_key = $form[$key]['#language'];
$elements = $form[$key][$lang_key];
foreach (element_children($elements) as $delta_key) {
if (!empty($elements[$delta_key])) {
// @TODO: Why we override only non-required?
if (empty($form[$key][$lang_key][$delta_key][$column]['#required'])) {
continue;
}
unset($form[$key]);
}
}
}
}