function multifield_form_field_ui_field_edit_form_alter in Multifield 7.2
Same name and namespace in other branches
- 7 multifield.module \multifield_form_field_ui_field_edit_form_alter()
Implements hook_form_FORM_ID_alter() for field_ui_field_edit_form().
File
- ./
multifield.module, line 539
Code
function multifield_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
_multifield_warn_no_subfields($form['#field']);
if ($form['#instance']['entity_type'] != 'multifield') {
return;
}
// Show a notice that multifield subfields have a cardinality of one value
// enforced in the widget.
$form['field']['cardinality']['#disabled'] = TRUE;
$form['field']['cardinality']['#field_prefix'] = '<div class="messages warning">' . t('Field cardinality in multifields is limited to one value despite this setting.') . '</div>';
// Hide the default value widget since we want the user to set the default
// value for this entire multifield instead.
if (isset($form['instance']['default_value_widget'])) {
$form['instance']['default_value_widget']['#access'] = FALSE;
}
// If this multifield has instances, make sure that no field settings that
// could change the field schema can be edited by re-invoking
// hook_field_settings_form() with $has_data forced to be TRUE.
if (multifield_type_has_data($form['#instance']['bundle'])) {
$field = $form['#field'];
$instance = $form['#instance'];
$has_data = field_has_data($field);
if (!$has_data) {
$additions = module_invoke($field['module'], 'field_settings_form', $field, $instance, TRUE);
if (is_array($additions)) {
$form['field']['settings'] = $additions;
$form['field']['#description'] = '<p>' . t('These settings apply to the %field field everywhere it is used.', array(
'%field' => $instance['label'],
)) . ' ' . t('Because the multifield already has data, some settings can no longer be changed.') . '</p>';
}
}
}
}