function inline_entity_form_reference_form in Inline Entity Form 7
Same name and namespace in other branches
- 8 inline_entity_form.module \inline_entity_form_reference_form()
Provides the form for adding existing entities through an autocomplete field.
Parameters
$entity_form: The form array that will receive the form.
$form_state: The form state of the parent form.
Return value
The form array containing the embedded form.
1 call to inline_entity_form_reference_form()
- inline_entity_form_field_widget_form in ./
inline_entity_form.module - Implements hook_field_widget_form().
File
- ./
inline_entity_form.module, line 1034 - Provides a widget for inline management (creation, modification, removal) of referenced entities. The primary use case is the parent -> children one (for example, order -> line items), where the child entities are never managed outside the…
Code
function inline_entity_form_reference_form($controller, $reference_form, &$form_state) {
$labels = $controller
->labels();
$ief_id = $reference_form['#ief_id'];
$instance = $form_state['inline_entity_form'][$ief_id]['instance'];
$autocomplete_path = 'inline_entity_form/autocomplete/' . $instance['entity_type'];
$autocomplete_path .= '/' . $instance['field_name'] . '/' . $instance['bundle'];
$reference_form['#title'] = t('Add existing @type_singular', array(
'@type_singular' => $labels['singular'],
));
$reference_form['entity_id'] = array(
'#type' => 'textfield',
'#title' => t('@label', array(
'@label' => ucwords($labels['singular']),
)),
'#autocomplete_path' => $autocomplete_path,
'#element_validate' => array(
'_inline_entity_form_autocomplete_validate',
),
'#required' => TRUE,
'#maxlength' => 255,
);
// Add the actions
$reference_form['actions'] = array(
'#type' => 'container',
'#weight' => 100,
);
$reference_form['actions']['ief_reference_save'] = array(
'#type' => 'submit',
'#value' => t('Add @type_singular', array(
'@type_singular' => $labels['singular'],
)),
'#name' => 'ief-reference-submit-' . $reference_form['#ief_id'],
'#limit_validation_errors' => array(
$reference_form['#parents'],
),
'#attributes' => array(
'class' => array(
'ief-entity-submit',
),
),
'#ajax' => array(
'callback' => 'inline_entity_form_get_element',
'wrapper' => 'inline-entity-form-' . $reference_form['#ief_id'],
),
'#submit' => array(
'inline_entity_form_trigger_submit',
'inline_entity_form_close_form',
),
);
$reference_form['actions']['ief_reference_cancel'] = array(
'#type' => 'submit',
'#value' => t('Cancel'),
'#name' => 'ief-reference-cancel-' . $reference_form['#ief_id'],
'#limit_validation_errors' => array(),
'#ajax' => array(
'callback' => 'inline_entity_form_get_element',
'wrapper' => 'inline-entity-form-' . $reference_form['#ief_id'],
),
'#submit' => array(
'inline_entity_form_close_form',
),
);
$reference_form['#element_validate'][] = 'inline_entity_form_reference_form_validate';
$reference_form['#ief_element_submit'][] = 'inline_entity_form_reference_form_submit';
// Allow other modules to alter the form.
drupal_alter('inline_entity_form_reference_form', $reference_form, $form_state);
return $reference_form;
}