You are here

function contact_emails_form_contact_form_edit_form_alter in Contact Emails 8

Implements hook_form_FORM_ID_alter().

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

File

./contact_emails.module, line 77
Contains contact_emails.module..

Code

function contact_emails_form_contact_form_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  if (isset($form['id']['#default_value'])) {
    $contact_form_id = $form['id']['#default_value'];

    /** @var \Drupal\contact_emails\ContactEmailStorageInterface $storage */
    $storage = \Drupal::entityTypeManager()
      ->getStorage('contact_email');

    // Disable default contact email if we have at least one contact_emails
    // email added.
    if ($storage
      ->hasContactEmails($contact_form_id)) {
      if (isset($form['recipients'])) {
        $form['recipients']['#type'] = 'hidden';
      }
      if (isset($form['reply'])) {
        $form['reply']['#type'] = 'hidden';
      }
      $form['manage_emails'] = [
        '#type' => 'link',
        '#title' => t('Emails for this form are managed here.'),
        '#url' => Url::fromRoute("entity.contact_email.collection", [
          'contact_form' => $contact_form_id,
        ]),
        '#weight' => 100,
      ];
    }
    else {
      $form['manage_emails'] = [
        '#type' => 'link',
        '#title' => t('Set up multiple emails for this form.'),
        '#url' => Url::fromRoute("entity.contact_email.collection", [
          'contact_form' => $contact_form_id,
        ]),
        '#weight' => 100,
      ];
    }
  }
}