merci-8.x-2.x-dev/modules/merci_line_item/src/Form/MerciLineItemInlineForm.php
modules/merci_line_item/src/Form/MerciLineItemInlineForm.php
<?php namespace Drupal\merci_line_item\Form; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\inline_entity_form\Form\EntityInlineForm; /** * Node inline form handler. */ class MerciLineItemInlineForm extends EntityInlineForm { use StringTranslationTrait; /** * {@inheritdoc} */ public function getEntityTypeLabels() { $labels = [ 'singular' => $this->t('item'), 'plural' => $this->t('items'), ]; return $labels; } /** * {@inheritdoc} */ public function getTableFields($bundles) { $display = entity_get_display('merci_line_item', 'merci_reservation', 'inline_entity_form'); $fields = []; $bundle = reset($bundles); $definitions = $this->entityFieldManager->getFieldDefinitions($this->entityType->id(), $bundle); if ($display) { foreach ($display->getComponents() as $name => $component) { if (array_key_exists($name, $definitions) and ($field_config = $definitions[$name])) { $label = $definitions[$name]->getLabel(); $fields[$name] = [ 'type' => 'field', 'label' => $label, 'weight' => $component['weight'], ]; } } } else { return parent::getTableFields($bundles); } return $fields; } /** * {@inheritdoc} */ public function entityForm(array $entity_form, FormStateInterface $form_state) { if ($entity_form['#op'] == 'add') { // Set default date to first entity. $entities = $form_state->get(['inline_entity_form', $entity_form['#ief_id'], 'entities']); if (count($entities)) { $entity = reset($entities); $entity_form['#entity']->merci_reservation_date = $entity['entity']->merci_reservation_date; } } else { $entity_form['#form_mode'] = 'default'; } $entity_form = parent::entityForm($entity_form, $form_state); // Remove the "Revision log" textarea, it can't be disabled in the // form display and doesn't make sense in the inline form context. $entity_form['revision_log_message']['#access'] = FALSE; return $entity_form; } }