View source
<?php
namespace Drupal\merci_line_item\Plugin\Field\FieldWidget;
use Drupal\Component\Utility\NestedArray;
use Drupal\Core\Entity\EntityDisplayRepositoryInterface;
use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Render\Element;
use Drupal\inline_entity_form\TranslationHelper;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\inline_entity_form\Plugin\Field\FieldWidget\InlineEntityFormComplex;
class MerciLineItemWidget extends InlineEntityFormComplex {
public static function defaultSettings() {
$defaults = parent::defaultSettings();
return $defaults;
}
public function settingsForm(array $form, FormStateInterface $form_state) {
$element = parent::settingsForm($form, $form_state);
return $element;
}
public function settingsSummary() {
$summary = parent::settingsSummary();
return $summary;
}
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
$parents = array_merge($element['#field_parents'], [
$items
->getName(),
'form',
]);
$this
->setIefId(sha1(implode('-', $parents)));
$this
->prepareFormState($form_state, $items, $this
->isTranslating($form_state));
$form_state
->set([
'inline_entity_form',
$this
->getIefId(),
'form',
], 'add');
$open_form = $form_state
->get([
'inline_entity_form',
$this
->getIefId(),
'form',
]);
$target_bundles = $this
->getTargetBundles();
$bundle = reset($target_bundles);
$form_state
->set([
'inline_entity_form',
$this
->getIefId(),
'form settings',
], [
'bundle' => $bundle,
]);
$element = parent::formElement($items, $delta, $element, $form, $form_state);
$element['form']['#weight'] = -1;
return $element;
}
}