public function MerciLineItemInlineEntityFormController::entityForm in MERCI (Manage Equipment Reservations, Checkout and Inventory) 7.3
Overrides EntityInlineEntityFormController::entityForm().
Overrides EntityInlineEntityFormController::entityForm
File
- merci_line_item_ief/
includes/ merci_line_item.inline_entity_form.inc, line 82 - Defines the inline entity form controller for Commerce Line Items.
Class
- MerciLineItemInlineEntityFormController
- @file Defines the inline entity form controller for Commerce Line Items.
Code
public function entityForm($entity_form, &$form_state) {
drupal_add_css(drupal_get_path('module', 'merci_line_item') . '/merci_line_item.css');
$line_item = $entity_form['#entity'];
$extra_fields = field_info_extra_fields('merci_line_item', $line_item->type, 'form');
$entity_form['line_item_details'] = array(
'#type' => 'fieldset',
'#title' => t('Line item details'),
'#attributes' => array(
'class' => array(
'ief-line_item-details',
'ief-entity-fieldset',
),
),
);
$entity_form['quantity'] = array(
'#type' => 'textfield',
'#datatype' => 'integer',
'#title' => t('Quantity'),
'#description' => t('The quantity of line items.'),
'#default_value' => (int) $line_item->quantity,
'#size' => 4,
'#maxlength' => max(4, strlen($line_item->quantity)),
'#required' => TRUE,
'#weight' => $extra_fields['quantity']['weight'],
'#fieldset' => 'line_item_details',
);
field_attach_form('merci_line_item', $line_item, $entity_form, $form_state);
$line_item_wrapper = entity_metadata_wrapper('merci_line_item', $line_item);
unset($entity_form[MERCI_RESOURCE_REFERENCE]);
unset($entity_form[MERCI_RESOURCE_DISPLAY]);
$parents = $entity_form[MERCI_CHECKOUT_STATUS]['und']['#field_parents'];
$head = array_shift($parents);
$parents = implode('][', $parents);
$field_path = $head . '[' . $parents . '][' . MERCI_CHECKOUT_STATUS . '][und]';
$entity_form[MERCI_RETURN_DATE]['#states'] = array(
'visible' => array(
':input[name="' . $field_path . '"]' => array(
'value' => 'returned',
),
),
);
// Add all fields to the main fieldset.
foreach (field_info_instances('merci_line_item', $line_item->type) as $a => $instance) {
$entity_form[$instance['field_name']]['#fieldset'] = 'line_item_details';
// TODO Move elsewhere.
if ($instance['field_name'] == MERCI_RETURNED_ACCESSORIES or $instance['field_name'] == MERCI_CHECKED_OUT_ACCESSORIES) {
try {
$product_wrapper = entity_metadata_wrapper('merci_line_item', $line_item)->{MERCI_RESOURCE_DISPLAY};
$terms = array();
foreach ($product_wrapper->merci_resource_accessories
->value() as $index => $term) {
$terms[$term->tid] = $term;
}
if (count($terms) == 1 and reset($terms)->name == 'None') {
unset($entity_form[$instance['field_name']]);
}
else {
$entity_form[$instance['field_name']]['und']['#options'] = array_intersect_key($entity_form[$instance['field_name']]['und']['#options'], $terms);
}
} catch (EntityMetadataWrapperException $exc) {
$entity_form[$instance['field_name']]['und']['#options'] = array();
$entity_form[$instance['field_name']]['und'] = array();
}
}
}
// Add a css class to widget form elements for all fields of type mytype.
//
return $entity_form;
}