ConfirmRemovalForm.php in Simplenews 8
File
src/Form/ConfirmRemovalForm.php
View source
<?php
namespace Drupal\simplenews\Form;
use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\simplenews\NewsletterInterface;
class ConfirmRemovalForm extends ConfirmFormBase {
public function getQuestion() {
return t('Confirm remove subscription');
}
public function getConfirmText() {
return t('Unsubscribe');
}
public function getDescription() {
return t('This action will unsubscribe you from the newsletter mailing list.');
}
public function getFormId() {
return 'simplenews_confirm_removal';
}
public function getCancelUrl() {
return new Url('simplenews.newsletter_subscriptions');
}
public function buildForm(array $form, FormStateInterface $form_state, $mail = '', NewsletterInterface $newsletter = NULL) {
$form = parent::buildForm($form, $form_state);
$form['question'] = array(
'#markup' => '<p>' . t('Are you sure you want to remove %user from the %newsletter mailing list?', array(
'%user' => simplenews_mask_mail($mail),
'%newsletter' => $newsletter->name,
)) . "<p>\n",
);
$form['mail'] = array(
'#type' => 'value',
'#value' => $mail,
);
$form['newsletter'] = array(
'#type' => 'value',
'#value' => $newsletter,
);
return $form;
}
public function validateForm(array &$form, FormStateInterface $form_state) {
parent::validateForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
\Drupal::service('simplenews.subscription_manager')
->unsubscribe($form_state
->getValue('mail'), $form_state
->getValue('newsletter')
->id(), FALSE, 'website');
$config = \Drupal::config('simplenews.settings');
if ($path = $config
->get('subscription.confirm_subscribe_page')) {
$form_state
->setRedirectUrl(Url::fromUri("internal:{$path}"));
}
else {
$this
->messenger()
->addMessage(t('%user was unsubscribed from the %newsletter mailing list.', array(
'%user' => $form_state
->getValue('mail'),
'%newsletter' => $form_state
->getValue('newsletter')->name,
)));
$form_state
->setRedirect('<front>');
}
}
}