function panopoly_magic_form_ctools_entity_field_content_type_formatter_options_alter in Panopoly Magic 7
Implementation of hook_form_FORM_ID_alter()
Provides customization to entity formatter option form
File
- ./
panopoly_magic.module, line 1237
Code
function panopoly_magic_form_ctools_entity_field_content_type_formatter_options_alter(&$form, &$form_state, $form_id) {
// Get the configuration
$conf = $form_state['conf'];
// Move the title for the label and formatter to be the field prefix
foreach (array(
'label',
'formatter',
) as $field) {
if (!empty($form['general_settings'][$field]) && !empty($form['general_settings'][$field]['#title'])) {
$form['general_settings'][$field]['#field_prefix'] = $form['general_settings'][$field]['#title'];
$form['general_settings'][$field]['#title'] = '';
}
}
// Add in the field edit fields with FAPE if we are not editing a default
if (empty($form_state['entity']) && !empty($form_state['display']->context['panelizer']->data)) {
// Determine what entity type and field name we are editing based on the form subtype and URL args.
$arg_parts = explode(':', arg(4));
list($entity_type, $field_name) = explode(':', $form_state['subtype_name']);
$entities = entity_load($entity_type, array(
$arg_parts[2],
));
$entity = reset($entities);
// Unfortunately the above code is not as reliable as we'd like. There are cases where the field we're editing
// doesn't have an corrosponding entity (say, comments). Let's make sure we have an entity before adding FAPE specific
// data into the form.
if (!empty($entity)) {
$form_state['entity'] = $entity;
$form_state['entity_type'] = $entity_type;
$form_state['field_name'] = $field_name;
$form_state['bundle'] = empty($entity->bundle) ? $entity->type : $entity->bundle;
$form_state['field_instance'] = field_info_instance($entity_type, $field_name, $form_state['bundle']);
$form_state['langcode'] = LANGUAGE_NONE;
$form_state['subform_id'] = 'fape_field_edit_field_form';
}
}
if (!empty($form_state['entity'])) {
// Add the field edit form.
fape_field_edit_field_form($form, $form_state);
// Remove the default submitter in favor of our own custom submit callback.
array_pop($form['#submit']);
$form['#submit'][] = 'panopoly_magic_fape_submit';
}
// Pre-rende fields into a fieldset.
$form['#pre_render'][] = 'panopoly_magic_panelizer_pre_render';
// When moving backwards through form steps, ensure image widgets properly retain their value.
if (!empty($form_state['field_instance']) && isset($form_state['triggering_element']['#value']) && $form_state['triggering_element']['#value'] == 'Back') {
$field_name = $form_state['field_instance']['field_name'];
$field_type = $form_state['field_instance']['widget']['module'];
$entity = $form_state['entity'];
// Reset the #default_value to the (currently) unsaved entity value.
if ($field_type == 'image' && !empty($form[$field_name])) {
$field = $entity->{$field_name};
foreach ($field[LANGUAGE_NONE] as $delta => $value) {
$form[$field_name][LANGUAGE_NONE][$delta]['#default_value'] = $value;
}
}
}
// Enable auto submit functionality
if (variable_get('panopoly_magic_live_preview', 1)) {
panopoly_magic_autosubmit_configure($form);
}
// Add a custom submit handler to our preview and submit option
$form['#submit'][] = 'panopoly_magic_views_content_type_modal_submit';
$form['buttons']['preview']['#submit'][] = 'panopoly_magic_views_content_type_modal_submit';
}