function eck__manage_extra_field_form_submit in Entity Construction Kit (ECK) 7.3
Submit callback.
For editing a property field's settings from a bundle's field management form.
File
- ./
eck.bundle.inc, line 622
Code
function eck__manage_extra_field_form_submit($form, &$form_state) {
// Load entity_type and bundle in case they have changed since the form was
// first built.
$entity_type = entity_type_load($form['#entity_type']->name);
$bundle = bundle_load($entity_type->name, $form['#bundle']->name);
// Update the property field settings.
if (isset($bundle->config['extra_fields'][$form['#property_name']]['form'])) {
$property_settings = $bundle->config['extra_fields'][$form['#property_name']];
$widget_info = eck_property_info_widget_types($property_settings['form']['widget']['type']);
$property_settings['form']['required'] = !empty($form_state['values']['required']);
$property_settings['form']['label'] = $form_state['values']['label'];
$property_settings['form']['description'] = $form_state['values']['description'];
// Update the widget settings if there are any.
if (isset($form['widget']['settings'])) {
$property_settings['form']['widget']['settings'] = $form_state['values']['widget']['settings'];
}
// Handle the default value.
if (isset($form['default_value_widget'])) {
$property_settings['form']['default_value'] = eck_property_widget_extract_value($entity_type, $bundle, $form['#property_name'], $widget_info, $form, $form_state);
}
// Now update the bundle config.
$config = $bundle->config;
$config['extra_fields'][$form['#property_name']] = $property_settings;
$bundle->config = $config;
// Save the bundle.
$bundle
->save();
Bundle::loadAll(NULL, TRUE);
}
else {
// The extra field form setting was not found in the config so it must no
// longer be managed. Don't do anything except notify the user.
drupal_set_message(t('Could not edit the property field settings. The property %name on the %bundle bundle is no selected for management.', array(
'%name' => $form['#property_name'],
'%bundle' => $bundle->label,
)), 'error');
}
$form_state['redirect'] = 'admin/structure/entity-type/' . $entity_type->name . '/' . $bundle->name . '/fields';
}