public function ExtraFieldFormManager::entityFormAlter in Extra Field 8.2
Appends the renderable data from ExtraFieldForm plugins to hook_form_alter.
Parameters
array $form: The entity form array.
\Drupal\Core\Form\FormStateInterface $form_state: The form state object.
Overrides ExtraFieldFormManagerInterface::entityFormAlter
File
- src/
Plugin/ ExtraFieldFormManager.php, line 103
Class
- ExtraFieldFormManager
- Manages Extra Field form plugins.
Namespace
Drupal\extra_field\PluginCode
public function entityFormAlter(array &$form, FormStateInterface $formState) {
$formObject = $formState
->getFormObject();
if (!$formObject instanceof ContentEntityFormInterface || $formObject instanceof ConfirmFormInterface) {
return;
}
$display = $formObject
->getFormDisplay($formState);
if (!$display) {
return;
}
$entityType = $display
->getTargetEntityTypeId();
$entityBundleKey = $this
->entityBundleKey($entityType, $display
->get('bundle'));
foreach ($this
->getDefinitions() as $pluginId => $definition) {
if (!$this
->matchEntityBundleKey($definition['bundles'], $entityBundleKey)) {
continue;
}
$factory = $this
->getFactory();
if (empty($display
->getComponent($this
->fieldName($pluginId)))) {
continue;
}
/** @var ExtraFieldFormInterface $plugin */
$plugin = $factory
->createInstance($pluginId);
$fieldName = $this
->fieldName($pluginId);
$plugin
->setEntity($formObject
->getEntity());
$plugin
->setEntityFormDisplay($display);
$plugin
->setFormMode($display
->get('mode'));
$form[$fieldName] = $plugin
->formElement($form, $formState);
}
}