123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace Drupal\Core\Entity;
- use Drupal\Core\Form\ConfirmFormHelper;
- use Drupal\Core\Form\ConfirmFormInterface;
- use Drupal\Core\Form\FormStateInterface;
- /**
- * Provides a generic base class for an entity-based confirmation form.
- *
- * @ingroup entity_api
- */
- abstract class EntityConfirmFormBase extends EntityForm implements ConfirmFormInterface {
- /**
- * {@inheritdoc}
- */
- public function getBaseFormId() {
- return $this->entity->getEntityTypeId() . '_confirm_form';
- }
- /**
- * {@inheritdoc}
- */
- public function getDescription() {
- return $this->t('This action cannot be undone.');
- }
- /**
- * {@inheritdoc}
- */
- public function getConfirmText() {
- return $this->t('Confirm');
- }
- /**
- * {@inheritdoc}
- */
- public function getCancelText() {
- return $this->t('Cancel');
- }
- /**
- * {@inheritdoc}
- */
- public function getFormName() {
- return 'confirm';
- }
- /**
- * {@inheritdoc}
- */
- public function buildForm(array $form, FormStateInterface $form_state) {
- $form = parent::buildForm($form, $form_state);
- $form['#title'] = $this->getQuestion();
- $form['#attributes']['class'][] = 'confirmation';
- $form['description'] = ['#markup' => $this->getDescription()];
- $form[$this->getFormName()] = ['#type' => 'hidden', '#value' => 1];
- // By default, render the form using theme_confirm_form().
- if (!isset($form['#theme'])) {
- $form['#theme'] = 'confirm_form';
- }
- return $form;
- }
- /**
- * {@inheritdoc}
- */
- protected function actions(array $form, FormStateInterface $form_state) {
- return [
- 'submit' => [
- '#type' => 'submit',
- '#value' => $this->getConfirmText(),
- '#submit' => [
- [$this, 'submitForm'],
- ],
- ],
- 'cancel' => ConfirmFormHelper::buildCancelLink($this, $this->getRequest()),
- ];
- }
- /**
- * {@inheritdoc}
- *
- * The save() method is not used in EntityConfirmFormBase. This overrides the
- * default implementation that saves the entity.
- *
- * Confirmation forms should override submitForm() instead for their logic.
- */
- public function save(array $form, FormStateInterface $form_state) {}
- /**
- * {@inheritdoc}
- *
- * The delete() method is not used in EntityConfirmFormBase. This overrides
- * the default implementation that redirects to the delete-form confirmation
- * form.
- *
- * Confirmation forms should override submitForm() instead for their logic.
- */
- public function delete(array $form, FormStateInterface $form_state) {}
- }
|