class MandrillAdminTestForm in Mandrill 8
Form controller for the Mandrill send test email form.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfirmFormBase implements ConfirmFormInterface
- class \Drupal\mandrill\Form\MandrillAdminTestForm
- class \Drupal\Core\Form\ConfirmFormBase implements ConfirmFormInterface
Expanded class hierarchy of MandrillAdminTestForm
1 string reference to 'MandrillAdminTestForm'
File
- src/
Form/ MandrillAdminTestForm.php, line 17
Namespace
Drupal\mandrill\FormView source
class MandrillAdminTestForm extends ConfirmFormBase {
/**
* {@inheritdoc}
*/
function getFormID() {
return 'mandrill_test_email';
}
/**
* {@inheritdoc}
*/
public function getQuestion() {
return $this
->t('Send Test Email');
}
/**
* {@inheritdoc}
*/
public function getDescription() {
return $this
->t('This action will send a test email through Mandrill.');
}
/**
* {@inheritdoc}
*/
public function getCancelUrl() {
return new Url('mandrill.test');
}
/**
* {@inheritdoc}
*/
public function getConfirmText() {
return $this
->t('Send test email');
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
$click_tracking_url = Url::fromUri('http://www.drupal.org/project/mandrill');
// If sending using the mandrill_test_mail service, attachments and bcc are
// not supported.
$mandrill_test_mail = \Drupal::config('mailsystem.settings')
->get('defaults')['sender'] == 'mandrill_test_mail';
$form['mandrill_test_address'] = array(
'#type' => 'textfield',
'#title' => $this
->t('Email address to send a test email to'),
'#default_value' => \Drupal::config('system.site')
->get('mail'),
'#description' => $this
->t('Type in an address to have a test email sent there.'),
'#required' => TRUE,
);
// If sending using the mandrill_test_mail service, bcc is not
// supported so we hide the "Email address to BCC on this test email" text
// input field.
if (!$mandrill_test_mail) {
$form['mandrill_test_bcc_address'] = array(
'#type' => 'textfield',
'#title' => $this
->t('Email address to BCC on this test email'),
'#description' => $this
->t('Type in an address to have a test email sent there.'),
);
}
$form['mandrill_test_body'] = array(
'#type' => 'textarea',
'#title' => $this
->t('Test body contents'),
'#default_value' => $this
->t('If you receive this message it means your site is capable of using Mandrill to send email. This url is here to test click tracking: %link', array(
'%link' => Link::fromTextAndUrl($this
->t('link'), $click_tracking_url)
->toString(),
)),
);
// If sending using the mandrill_test_mail service, attachments are not
// supported so we hide the "Include attachment" checkbox.
if (!$mandrill_test_mail) {
$form['include_attachment'] = array(
'#title' => $this
->t('Include attachment'),
'#type' => 'checkbox',
'#description' => $this
->t('If checked, the Drupal icon will be included as an attachment with the test email.'),
'#default_value' => TRUE,
);
}
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$message = array(
'id' => 'mandrill_test_email',
'module' => 'mandrill',
'to' => $form_state
->getValue('mandrill_test_address'),
'body' => $form_state
->getValue('mandrill_test_body'),
'subject' => $this
->t('Drupal Mandrill test email'),
);
$bcc_email = $form_state
->getValue('mandrill_test_bcc_address');
if (!empty($bcc_email)) {
$message['bcc_email'] = $bcc_email;
}
if ($form_state
->getValue('include_attachment')) {
$message['attachments'][] = \Drupal::service('file_system')
->realpath('core/themes/bartik/logo.svg');
$message['body'] .= ' ' . $this
->t('The Drupal icon is included as an attachment to test the attachment functionality.');
}
// Get Mandrill mailer service specified in Mailsystem settings.
// This service will either be mandrill_mail or mandrill_test_mail or the
// route that exposes this form won't even show up - see
// MandrillMailerAccessCheck.php.
$sender = \Drupal::config('mailsystem.settings')
->get('defaults')['sender'];
if ($sender == 'mandrill_mail') {
/* @var $mandrill \Drupal\mandrill\Plugin\Mail\MandrillMail */
$mailer = new MandrillMail();
}
elseif ($sender == 'mandrill_test_mail') {
/* @var $mandrill \Drupal\mandrill\Plugin\Mail\MandrillTestMail */
$mailer = new MandrillTestMail();
}
// Ensure we have a mailer and send the message.
if (isset($mailer) && $mailer
->mail($message)) {
$this
->messenger()
->addStatus($this
->t('Test email has been sent.'));
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfirmFormBase:: |
public | function |
Returns a caption for the link which cancels the action. Overrides ConfirmFormInterface:: |
1 |
ConfirmFormBase:: |
public | function |
Returns the internal name used to refer to the confirmation item. Overrides ConfirmFormInterface:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Retrieves a configuration object. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
87 |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
62 |
FormInterface:: |
public | function | Returns a unique string identifying the form. | 236 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MandrillAdminTestForm:: |
public | function |
Form constructor. Overrides ConfirmFormBase:: |
|
MandrillAdminTestForm:: |
public | function |
Returns the route to go to if the user cancels the action. Overrides ConfirmFormInterface:: |
|
MandrillAdminTestForm:: |
public | function |
Returns a caption for the button that confirms the action. Overrides ConfirmFormBase:: |
|
MandrillAdminTestForm:: |
public | function |
Returns additional text to display as a description. Overrides ConfirmFormBase:: |
|
MandrillAdminTestForm:: |
function | |||
MandrillAdminTestForm:: |
public | function |
Returns the question to ask the user. Overrides ConfirmFormInterface:: |
|
MandrillAdminTestForm:: |
public | function |
Form submission handler. Overrides FormInterface:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |