You are here

public function MessagesForm::buildForm in Swift Mailer 8

Same name and namespace in other branches
  1. 8.2 src/Form/MessagesForm.php \Drupal\swiftmailer\Form\MessagesForm::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides ConfigFormBase::buildForm

File

src/Form/MessagesForm.php, line 34

Class

MessagesForm
Configuration form for SwiftMailer message settings.

Namespace

Drupal\swiftmailer\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $form = parent::buildForm($form, $form_state);
  $config = $this
    ->config('swiftmailer.message');
  $form['#tree'] = TRUE;
  $form['description'] = [
    '#markup' => '<p>' . $this
      ->t('This page allows you to configure settings which determines how e-mail messages are created.') . '</p>',
  ];
  $form['format'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Message format'),
    '#description' => $this
      ->t('You can set the default message format which should be applied to e-mail
        messages.'),
  ];
  $form['format']['type'] = [
    '#type' => 'radios',
    '#options' => [
      SWIFTMAILER_FORMAT_PLAIN => $this
        ->t('Plain Text'),
      SWIFTMAILER_FORMAT_HTML => $this
        ->t('HTML'),
    ],
    '#default_value' => $config
      ->get('format'),
  ];
  $form['format']['respect'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Respect provided e-mail format.'),
    '#default_value' => $config
      ->get('respect_format'),
    '#description' => $this
      ->t('The header "Content-Type", if available, will be respected if you enable this setting.
        Settings such as e-mail format ("text/plain" or "text/html") and character set may be provided through this
        header. Unless your site somehow alters e-mails, enabling this setting will result in all e-mails to be sent
        as plain text as this is the content type Drupal by default will apply to all e-mails.'),
  ];
  $form['convert'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Plain Text Version'),
    '#description' => $this
      ->t('An alternative plain text version can be generated based on the HTML version if no plain text version
        has been explicitly set. The plain text version will be used by e-mail clients not capable of displaying HTML content.'),
    '#states' => [
      'visible' => [
        'input[type=radio][name=format[type]]' => [
          'value' => SWIFTMAILER_FORMAT_HTML,
        ],
      ],
    ],
  ];
  $form['convert']['mode'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Generate alternative plain text version.'),
    '#default_value' => $config
      ->get('convert_mode'),
    '#description' => $this
      ->t('Please refer to @link for more details about how the alternative plain text version will be generated.', [
      '@link' => Link::fromTextAndUrl('html2text', Url::fromUri('http://www.chuggnutt.com/html2text'))
        ->toString(),
    ]),
  ];
  $form['character_set'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Character Set'),
    '#description' => '<p>' . $this
      ->t('E-mails need to carry details about the character set which the
        receiving client should use to understand the content of the e-mail.
        The default character set is UTF-8.') . '</p>',
  ];
  $form['character_set']['type'] = [
    '#type' => 'select',
    '#options' => swiftmailer_get_character_set_options(),
    '#default_value' => $config
      ->get('character_set'),
  ];
  return $form;
}