You are here

public function EmailHeaderForm::buildForm in Mass Contact 8

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/EmailHeaderForm.php, line 37

Class

EmailHeaderForm
Email header settings form.

Namespace

Drupal\mass_contact\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $form = parent::buildForm($form, $form_state);
  $config = $this
    ->config('mass_contact.settings');

  // The default character set.
  $form['character_set'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Character set'),
    '#default_value' => $config
      ->get('character_set'),
    '#description' => $this
      ->t('You may specify an alternate character set to use when sending emails. If left blank, the default of UTF-8 will be used. If you are unsure of what to put here, then leave it blank. Caution: setting this may not get you the results you desire. Other modules may come along and change that value after it has been set by this module.'),
  ];

  // The sender's name and email address.
  $form['mass_contact_default_sender'] = [
    '#type' => 'details',
    '#open' => TRUE,
    '#title' => $this
      ->t('Default sender information'),
    '#description' => $this
      ->t('If anything is specified in here, it is used in place of the "Your name" and "Your email address" fields when sending the mass email. Otherwise, the sender\'s name and email address will be the default values. You must fill in both values, if you want to specify a default.'),
  ];
  $form['mass_contact_default_sender']['default_sender_name'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Default sender name'),
    '#default_value' => $config
      ->get('default_sender_name'),
    '#maxlength' => 128,
    '#description' => $this
      ->t('The optional user name to send email as. Replaces the "Your name" value when sending mass emails.'),
  ];
  $form['mass_contact_default_sender']['default_sender_email'] = [
    '#type' => 'email',
    '#title' => $this
      ->t('Default sender email address'),
    '#default_value' => $config
      ->get('default_sender_email'),
    '#description' => $this
      ->t('The optional user email address to send email as. Replaces the "Your email address" value when sending mass emails.'),
  ];

  // Sender name options.
  $form['mass_contact_include_name'] = [
    '#type' => 'details',
    '#open' => TRUE,
    '#title' => $this
      ->t('Include names with email addresses'),
    '#description' => $this
      ->t("Checking either of the boxes below will include the name along with the email address, in the form of '%address'. If you have problems with sending mail, especially when your site is on a Windows server, try unchecking both checkboxes.", [
      '%address' => 'User name <email.address@example.com>',
    ]),
  ];
  $form['mass_contact_include_name']['include_from_name'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Include the name for the sender'),
    '#default_value' => $config
      ->get('include_from_name'),
  ];
  $form['mass_contact_include_name']['include_to_name'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Include the names for the recipients'),
    '#default_value' => $config
      ->get('include_to_name'),
    '#description' => $this
      ->t("The name used for the recipients will be their site login ID."),
  ];

  // BCC options.
  $form['use_bcc'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Send as BCC (hide recipients) by default'),
    '#default_value' => $config
      ->get('use_bcc'),
  ];

  // More category options.
  $form['category_override'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Include category in subject line'),
    '#default_value' => \Drupal::config('mass_contact.settings')
      ->get('category_override'),
    '#description' => $this
      ->t("If you choose this option, the category name will be printed in square brackets preceeding the message sender's subject.\n                        If the message sender has multiple categories selected with this option choosen, each category will be processed separately.\n                        If you do not choose this option and the message sender has multiple categories selected, all users will be grouped together and the message will be sent to everyone as one group, thus reducing the likelihood of sending duplicates."),
  ];
  return $form;
}