class ContentEntityDeleteForm
Same name and namespace in other branches
- 11.x core/lib/Drupal/Core/Entity/ContentEntityDeleteForm.php \Drupal\Core\Entity\ContentEntityDeleteForm
- 9 core/lib/Drupal/Core/Entity/ContentEntityDeleteForm.php \Drupal\Core\Entity\ContentEntityDeleteForm
- 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
- class \Drupal\Core\Form\FormBase implements \Drupal\Core\Form\FormInterface, \Drupal\Core\DependencyInjection\ContainerInjectionInterface uses \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Logger\LoggerChannelTrait, \Drupal\Core\Messenger\MessengerTrait, \Drupal\Core\Routing\RedirectDestinationTrait, \Drupal\Core\StringTranslation\StringTranslationTrait
- class \Drupal\Core\Entity\EntityForm implements \Drupal\Core\Entity\EntityFormInterface extends \Drupal\Core\Form\FormBase
- class \Drupal\Core\Entity\ContentEntityForm implements \Drupal\Core\Entity\ContentEntityFormInterface extends \Drupal\Core\Entity\EntityForm
- class \Drupal\Core\Entity\ContentEntityConfirmFormBase implements \Drupal\Core\Form\ConfirmFormInterface extends \Drupal\Core\Entity\ContentEntityForm
- class \Drupal\Core\Entity\ContentEntityDeleteForm uses \Drupal\Core\Entity\EntityDeleteFormTrait extends \Drupal\Core\Entity\ContentEntityConfirmFormBase
- class \Drupal\Core\Entity\ContentEntityConfirmFormBase implements \Drupal\Core\Form\ConfirmFormInterface extends \Drupal\Core\Entity\ContentEntityForm
- class \Drupal\Core\Entity\ContentEntityForm implements \Drupal\Core\Entity\ContentEntityFormInterface extends \Drupal\Core\Entity\EntityForm
- class \Drupal\Core\Entity\EntityForm implements \Drupal\Core\Entity\EntityFormInterface extends \Drupal\Core\Form\FormBase
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
File
-
core/
lib/ Drupal/ Core/ Entity/ ContentEntityDeleteForm.php, line 13
Namespace
Drupal\Core\EntityView 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.