You are here

public function FormAlter::formAlter in Entity Reference Integrity 8

Implements hook_form_alter().

File

modules/entity_reference_integrity_enforce/src/FormAlter.php, line 54

Class

FormAlter
Alter entity delete forms to provide some warning deletes will fail.

Namespace

Drupal\entity_reference_integrity_enforce

Code

public function formAlter(&$form, FormStateInterface $form_state, $form_id) {

  /** @var \Drupal\Core\Entity\EntityFormInterface $form_object */
  $form_object = $form_state
    ->getFormObject();
  if (!$this
    ->isDeleteForm($form_object)) {
    return;
  }
  $entity = $form_object
    ->getEntity();
  if (in_array($entity
    ->getEntityTypeId(), $this->enabledEntityTypeIds, TRUE) && $this->dependencyManager
    ->hasDependents($entity)) {
    $referencing_entities = $this->dependencyManager
      ->getDependentEntities($entity);
    unset($form['actions']['submit']);
    unset($form['description']);
    $form['referencing_entities_list'] = [
      '#weight' => -10,
      'explanation' => [
        '#prefix' => '<div  class="messages messages--error">',
        '#markup' => $this
          ->t('You can not delete this as it is being referenced by another entity.'),
        '#suffix' => '</div>',
      ],
      'entities' => $this
        ->buildReferencingEntitiesList($referencing_entities),
      '#suffix' => '<br/>',
    ];
  }
}