pino-8.x-1.2-no-core/modules/member/src/Form/MemberRevisionDeleteForm.php
modules/member/src/Form/MemberRevisionDeleteForm.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | <?php namespace Drupal\member\Form; use Drupal\Core\Database\Connection; use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Form\ConfirmFormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Url; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Provides a form for deleting a Member revision. * * @ingroup member */ class MemberRevisionDeleteForm extends ConfirmFormBase { /** * The Member revision. * * @var \Drupal\member\Entity\MemberInterface */ protected $revision ; /** * The Member storage. * * @var \Drupal\Core\Entity\EntityStorageInterface */ protected $MemberStorage ; /** * The database connection. * * @var \Drupal\Core\Database\Connection */ protected $connection ; /** * Constructs a new MemberRevisionDeleteForm. * * @param \Drupal\Core\Entity\EntityStorageInterface $entity_storage * The entity storage. * @param \Drupal\Core\Database\Connection $connection * The database connection. */ public function __construct(EntityStorageInterface $entity_storage , Connection $connection ) { $this ->MemberStorage = $entity_storage ; $this ->connection = $connection ; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container ) { $entity_manager = $container ->get( 'entity.manager' ); return new static ( $entity_manager ->getStorage( 'member' ), $container ->get( 'database' ) ); } /** * {@inheritdoc} */ public function getFormId() { return 'member_revision_delete_confirm' ; } /** * {@inheritdoc} */ public function getQuestion() { return t( 'Are you sure you want to delete the revision from %revision-date?' , [ '%revision-date' => format_date( $this ->revision->getRevisionCreationTime())]); } /** * {@inheritdoc} */ public function getCancelUrl() { return new Url( 'entity.member.version_history' , [ 'member' => $this ->revision->id()]); } /** * {@inheritdoc} */ public function getConfirmText() { return t( 'Delete' ); } /** * {@inheritdoc} */ public function buildForm( array $form , FormStateInterface $form_state , $member_revision = NULL) { $this ->revision = $this ->MemberStorage->loadRevision( $member_revision ); $form = parent::buildForm( $form , $form_state ); return $form ; } /** * {@inheritdoc} */ public function submitForm( array & $form , FormStateInterface $form_state ) { $this ->MemberStorage->deleteRevision( $this ->revision->getRevisionId()); $this ->logger( 'content' )->notice( 'Member: deleted %title revision %revision.' , [ '%title' => $this ->revision->label(), '%revision' => $this ->revision->getRevisionId()]); drupal_set_message(t( 'Revision from %revision-date of Member %title has been deleted.' , [ '%revision-date' => format_date( $this ->revision->getRevisionCreationTime()), '%title' => $this ->revision->label()])); $form_state ->setRedirect( 'entity.member.canonical' , [ 'member' => $this ->revision->id()] ); if ( $this ->connection->query( 'SELECT COUNT(DISTINCT vid) FROM {member_field_revision} WHERE id = :id' , [ ':id' => $this ->revision->id()])->fetchField() > 1) { $form_state ->setRedirect( 'entity.member.version_history' , [ 'member' => $this ->revision->id()] ); } } } |