You are here

public function PardotSettingsForm::buildForm in Pardot Integration 8

Build Pardot Settings form.

Overrides ConfigFormBase::buildForm

File

src/Form/PardotSettingsForm.php, line 78

Class

PardotSettingsForm
Configure Pardot settings for this site.

Namespace

Drupal\Pardot\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $form['pardot_settings'] = array(
    '#type' => 'details',
    '#title' => $this
      ->t('General Settings'),
    '#description' => $this
      ->t('General settings applicable to all Pardot functionality.'),
    '#open' => TRUE,
  );
  $form['pardot_settings']['account_id'] = array(
    '#type' => 'textfield',
    '#title' => $this
      ->t('Pardot Account ID'),
    '#description' => $this
      ->t('The value shown in the Pardot demo script for piAId. eg. if the script has piAId = "1001"; this field should be 1001.'),
    '#required' => TRUE,
    '#size' => 20,
    '#maxlength' => 64,
    '#default_value' => $this->settings
      ->get('account_id'),
  );
  $form['pardot_settings']['default_campaign_id'] = array(
    '#type' => 'textfield',
    '#title' => $this
      ->t('Default Pardot Campaign ID'),
    '#description' => $this
      ->t('The value shown in the Pardot demo script for piCId. eg. if the script has piCId = "1001"; this field should be 1001.'),
    '#required' => TRUE,
    '#size' => 20,
    '#maxlength' => 64,
    '#default_value' => $this->settings
      ->get('default_campaign_id'),
  );

  // Add tracking scope vertical tabs.
  $form['tracking_scope'] = array(
    '#type' => 'item',
    '#title' => $this
      ->t('Tracking scope'),
    '#description' => $this
      ->t('Configuration to include/exclude the Pardot tracking code. The tracking code, with default Campaign ID, will be added to the site paths according to this configuration. Additional campaigns can be added to override the default campaign on specific paths included within this configuration.'),
  );
  $form['tracking_scope_tabs'] = array(
    '#type' => 'vertical_tabs',
    '#title' => $this
      ->t('Tracking Scope Conditions'),
    '#title_display' => 'invisible',
    '#default_tab' => 'pages',
  );

  // Set and build the request_path condition configuration form elements.
  $this->path_condition
    ->setConfiguration($this->settings
    ->get('path_condition'));
  $form += $this->path_condition
    ->buildConfigurationForm($form, $form_state);
  if (isset($form['pages'])) {
    $form['pages']['pages'] = $form['pages'];
    $form['pages']['negate'] = $form['negate'];
    unset($form['pages']['#description']);
    unset($form['negate']);
    $form['pages']['#type'] = 'details';
    $form['pages']['#group'] = 'tracking_scope_tabs';
    $form['pages']['#title'] = $this
      ->t('Pages');
    $form['pages']['negate']['#type'] = 'radios';
    $form['pages']['negate']['#title_display'] = 'invisible';
    $form['pages']['negate']['#options'] = array(
      $this
        ->t('Show for the listed pages'),
      $this
        ->t('Hide for the listed pages'),
    );
    $form['pages']['negate']['#default_value'] = (int) $form['pages']['negate']['#default_value'];
  }

  // Set and build the user_role condition configuration form elements.
  $this->user_role_condition
    ->setConfiguration($this->settings
    ->get('user_role_condition'));
  $form += $this->user_role_condition
    ->buildConfigurationForm($form, $form_state);
  if (isset($form['roles'])) {
    $form['roles']['roles'] = $form['roles'];
    $form['roles']['negate'] = $form['negate'];
    unset($form['roles']['#description']);
    unset($form['negate']);
    $form['roles']['#type'] = 'details';
    $form['roles']['#group'] = 'tracking_scope_tabs';
    $form['roles']['#title'] = $this
      ->t('Roles');
    $form['roles']['negate']['#type'] = 'value';
    $form['roles']['negate']['#default_value'] = FALSE;
  }
  return parent::buildForm($form, $form_state);
}