class ContentEntityDeleteForm

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Entity/ContentEntityDeleteForm.php \Drupal\Core\Entity\ContentEntityDeleteForm
  2. 9 core/lib/Drupal/Core/Entity/ContentEntityDeleteForm.php \Drupal\Core\Entity\ContentEntityDeleteForm
  3. 8.9.x core/lib/Drupal/Core/Entity/ContentEntityDeleteForm.php \Drupal\Core\Entity\ContentEntityDeleteForm

Provides a generic base class for a content entity deletion form.

@todo Re-evaluate and streamline the entity deletion form class hierarchy in https://www.drupal.org/node/2491057.

Hierarchy

Expanded class hierarchy of ContentEntityDeleteForm

10 files declare their use of ContentEntityDeleteForm
BlockContentDeleteForm.php in core/modules/block_content/src/Form/BlockContentDeleteForm.php
ContentTranslationDeleteForm.php in core/modules/content_translation/src/Form/ContentTranslationDeleteForm.php
DeleteForm.php in core/modules/comment/src/Form/DeleteForm.php
EntityTestDeleteForm.php in core/modules/system/tests/modules/entity_test/src/EntityTestDeleteForm.php
MenuLinkContentDeleteForm.php in core/modules/menu_link_content/src/Form/MenuLinkContentDeleteForm.php

... See full list

File

core/lib/Drupal/Core/Entity/ContentEntityDeleteForm.php, line 13

Namespace

Drupal\Core\Entity
View source
class ContentEntityDeleteForm extends ContentEntityConfirmFormBase {
  use EntityDeleteFormTrait {
    getQuestion as traitGetQuestion;
    logDeletionMessage as traitLogDeletionMessage;
    getDeletionMessage as traitGetDeletionMessage;
    getCancelUrl as traitGetCancelUrl;
  }
  
  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildForm($form, $form_state);
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity();
    if ($entity->isDefaultTranslation()) {
      if (count($entity->getTranslationLanguages()) > 1) {
        $languages = [];
        foreach ($entity->getTranslationLanguages() as $language) {
          $languages[] = $language->getName();
        }
        $form['deleted_translations'] = [
          '#theme' => 'item_list',
          '#title' => $this->t('The following @entity-type translations will be deleted:', [
            '@entity-type' => $entity->getEntityType()
              ->getSingularLabel(),
          ]),
          '#items' => $languages,
        ];
        $form['actions']['submit']['#value'] = $this->t('Delete all translations');
      }
    }
    else {
      $form['actions']['submit']['#value'] = $this->t('Delete @language translation', [
        '@language' => $entity->language()
          ->getName(),
      ]);
    }
    return $form;
  }
  
  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity();
    $message = $this->getDeletionMessage();
    // Make sure that deleting a translation does not delete the whole entity.
    if (!$entity->isDefaultTranslation()) {
      $untranslated_entity = $entity->getUntranslated();
      $untranslated_entity->removeTranslation($entity->language()
        ->getId());
      $untranslated_entity->save();
      $form_state->setRedirectUrl($untranslated_entity->toUrl('canonical'));
    }
    else {
      $entity->delete();
      $form_state->setRedirectUrl($this->getRedirectUrl());
    }
    $this->messenger()
      ->addStatus($message);
    $this->logDeletionMessage();
  }
  
  /**
   * {@inheritdoc}
   */
  public function getCancelUrl() {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity();
    return $entity->isDefaultTranslation() ? $this->traitGetCancelUrl() : $entity->toUrl('canonical');
  }
  
  /**
   * {@inheritdoc}
   */
  protected function getDeletionMessage() {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity();
    if (!$entity->isDefaultTranslation()) {
      return $this->t('The @entity-type %label @language translation has been deleted.', [
        '@entity-type' => $entity->getEntityType()
          ->getSingularLabel(),
        '%label' => $entity->label(),
        '@language' => $entity->language()
          ->getName(),
      ]);
    }
    return $this->traitGetDeletionMessage();
  }
  
  /**
   * {@inheritdoc}
   */
  protected function logDeletionMessage() {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity();
    if (!$entity->isDefaultTranslation()) {
      $this->logger($entity->getEntityType()
        ->getProvider())
        ->info('The @entity-type %label @language translation has been deleted.', [
        '@entity-type' => $entity->getEntityType()
          ->getSingularLabel(),
        '%label' => $entity->label(),
        '@language' => $entity->language()
          ->getName(),
      ]);
    }
    else {
      $this->traitLogDeletionMessage();
    }
  }
  
  /**
   * {@inheritdoc}
   */
  public function getQuestion() {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity();
    if (!$entity->isDefaultTranslation()) {
      return $this->t('Are you sure you want to delete the @language translation of the @entity-type %label?', [
        '@language' => $entity->language()
          ->getName(),
        '@entity-type' => $this->getEntity()
          ->getEntityType()
          ->getSingularLabel(),
        '%label' => $this->getEntity()
          ->label(),
      ]);
    }
    return $this->traitGetQuestion();
  }

}

Members

Title Sort descending Modifiers Object type Summary Member alias Overriden Title Overrides
ConfigDependencyDeleteFormTrait::addDependencyListsToForm protected function Adds form elements to list affected configuration entities.
ConfigDependencyDeleteFormTrait::t abstract protected function Translates a string to the current language or to a given language.
ContentEntityConfirmFormBase::actions protected function Overrides EntityForm::actions
ContentEntityConfirmFormBase::delete public function The delete() method is not used in ContentEntityConfirmFormBase. This
overrides the default implementation that redirects to the delete-form
confirmation form.
ContentEntityConfirmFormBase::form public function Overrides ContentEntityForm::form
ContentEntityConfirmFormBase::getBaseFormId public function Overrides EntityForm::getBaseFormId
ContentEntityConfirmFormBase::getCancelText public function Overrides ConfirmFormInterface::getCancelText
ContentEntityConfirmFormBase::getDescription public function Overrides ConfirmFormInterface::getDescription 5
ContentEntityConfirmFormBase::getFormName public function Overrides ConfirmFormInterface::getFormName
ContentEntityConfirmFormBase::save public function The save() method is not used in ContentEntityConfirmFormBase. This
overrides the default implementation that saves the entity.
Overrides EntityForm::save
ContentEntityConfirmFormBase::validateForm public function Overrides ContentEntityForm::validateForm
ContentEntityDeleteForm::buildForm public function Overrides ContentEntityConfirmFormBase::buildForm 2
ContentEntityDeleteForm::getCancelUrl public function Overrides ConfirmFormInterface::getCancelUrl 5
ContentEntityDeleteForm::getDeletionMessage protected function 4
ContentEntityDeleteForm::getQuestion public function Overrides ConfirmFormInterface::getQuestion
ContentEntityDeleteForm::logDeletionMessage protected function 2
ContentEntityDeleteForm::submitForm public function Overrides EntityDeleteFormTrait::submitForm
ContentEntityForm::$entity protected property The entity being used by this form. Overrides EntityForm::$entity 9
ContentEntityForm::$entityRepository protected property The entity repository service.
ContentEntityForm::$entityTypeBundleInfo protected property The entity type bundle info service.
ContentEntityForm::$time protected property The time service.
ContentEntityForm::addRevisionableFormFields protected function Add revision form fields if the entity enabled the UI.
ContentEntityForm::buildEntity public function Overrides EntityForm::buildEntity 4
ContentEntityForm::copyFormValuesToEntity protected function Overrides EntityForm::copyFormValuesToEntity
ContentEntityForm::create public static function Overrides FormBase::create 9
ContentEntityForm::flagViolations protected function Flags violations for the current form. 4
ContentEntityForm::getBundleEntity protected function Returns the bundle entity of the entity, or NULL if there is none.
ContentEntityForm::getEditedFieldNames protected function Gets the names of all fields edited in the form. 4
ContentEntityForm::getFormDisplay public function Overrides ContentEntityFormInterface::getFormDisplay
ContentEntityForm::getFormLangcode public function Overrides ContentEntityFormInterface::getFormLangcode
ContentEntityForm::getNewRevisionDefault protected function Should new revisions created on default.
ContentEntityForm::init protected function Initializes the form state and the entity before the first form build. Overrides EntityForm::init 1
ContentEntityForm::initFormLangcodes protected function Initializes form language code values.
ContentEntityForm::isDefaultFormLangcode public function Overrides ContentEntityFormInterface::isDefaultFormLangcode
ContentEntityForm::prepareEntity protected function Overrides EntityForm::prepareEntity 1
ContentEntityForm::setFormDisplay public function Overrides ContentEntityFormInterface::setFormDisplay
ContentEntityForm::showRevisionUi protected function Checks whether the revision form fields should be added to the form.
ContentEntityForm::updateChangedTime public function Updates the changed time of the entity.
ContentEntityForm::updateFormLangcode public function Updates the form language to reflect any change to the entity language.
ContentEntityForm::__construct public function Constructs a ContentEntityForm object. 8
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 2
DependencySerializationTrait::__wakeup public function #[\ReturnTypeWillChange] 2
EntityDeleteFormTrait::getCancelUrl public function Aliased as: traitGetCancelUrl 3
EntityDeleteFormTrait::getConfirmText public function 1
EntityDeleteFormTrait::getDeletionMessage protected function Gets the message to display to the user after deleting the entity. Aliased as: traitGetDeletionMessage 3
EntityDeleteFormTrait::getEntity abstract public function Gets the entity of this form.
EntityDeleteFormTrait::getQuestion public function Aliased as: traitGetQuestion 4
EntityDeleteFormTrait::getRedirectUrl protected function Returns the URL where the user should be redirected after deletion. 4
EntityDeleteFormTrait::logDeletionMessage protected function Logs a message about the deleted entity. Aliased as: traitLogDeletionMessage 2
EntityDeleteFormTrait::logger abstract protected function Gets the logger for a specific channel.
EntityForm::$entityTypeManager protected property The entity type manager. 3
EntityForm::$moduleHandler protected property The module handler service. 2
EntityForm::$operation protected property The name of the current operation.
EntityForm::actionsElement protected function Returns the action form element for the current entity form.
EntityForm::afterBuild public function Form element #after_build callback: Updates the entity with submitted data. 1
EntityForm::getEntityFromRouteMatch public function Overrides EntityFormInterface::getEntityFromRouteMatch 3
EntityForm::getFormId public function Overrides FormInterface::getFormId 13
EntityForm::getOperation public function Overrides EntityFormInterface::getOperation
EntityForm::prepareInvokeAll protected function Invokes the specified prepare hook variant.
EntityForm::processForm public function Process callback: assigns weights and hides extra fields.
EntityForm::setEntity public function Overrides EntityFormInterface::setEntity
EntityForm::setEntityTypeManager public function Overrides EntityFormInterface::setEntityTypeManager
EntityForm::setModuleHandler public function Overrides EntityFormInterface::setModuleHandler
EntityForm::setOperation public function Overrides EntityFormInterface::setOperation
FormBase::$configFactory protected property The config factory. 3
FormBase::$requestStack protected property The request stack. 1
FormBase::$routeMatch protected property The route match.
FormBase::config protected function Retrieves a configuration object.
FormBase::configFactory protected function Gets the config factory for this form. 3
FormBase::container private function Returns the service container.
FormBase::currentUser protected function Gets the current user. 2
FormBase::getRequest protected function Gets the request object.
FormBase::getRouteMatch protected function Gets the route match.
FormBase::redirect protected function Returns a redirect response object for the specified route.
FormBase::resetConfigFactory public function Resets the configuration factory.
FormBase::setConfigFactory public function Sets the config factory for this form.
FormBase::setRequestStack public function Sets the request stack object to use.
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 25
MessengerTrait::messenger public function Gets the messenger. 25
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 2
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 3
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.