class EloquaSettingsForm in Eloqua 8
Configure Eloqua settings for this site.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\Eloqua\Form\EloquaSettingsForm
 
 
 - class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
 
Expanded class hierarchy of EloquaSettingsForm
File
- src/
Form/ EloquaSettingsForm.php, line 22  - Contains \Drupal\eloqua\Form\EloquaSettingsForm.
 
Namespace
Drupal\Eloqua\FormView source
class EloquaSettingsForm extends ConfigFormBase {
  /**
   * The condition plugin manager.
   *
   * @var \Drupal\Core\Condition\ConditionManager
   */
  protected $manager;
  /**
   * The request_path condition.
   *
   * @var \Drupal\system\Plugin\Condition\RequestPath $requestPath
   */
  protected $requestPath;
  /**
   * The user_role condition.
   *
   * @var \Drupal\user\Plugin\Condition\UserRole $userRole
   */
  protected $userRole;
  /**
   * Creates a new EloquaSettingsForm.
   *
   * @param ConfigFactoryInterface $config_factory
   *   The config factory.
   * @param \Drupal\Core\Executable\ExecutableManagerInterface $manager
   *   The ConditionManager for building the tracking scope UI.
   * @param \Drupal\Component\Plugin\Factory\FactoryInterface $plugin_factory
   *   The condition plugin factory.
   */
  public function __construct(ConfigFactoryInterface $config_factory, ExecutableManagerInterface $manager, FactoryInterface $plugin_factory) {
    parent::__construct($config_factory);
    $this->manager = $manager;
    $this->requestPath = $plugin_factory
      ->createInstance('request_path');
    $this->userRole = $plugin_factory
      ->createInstance('user_role');
  }
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container
      ->get('config.factory'), $container
      ->get('plugin.manager.condition'), $container
      ->get('plugin.manager.condition'));
  }
  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'eloqua_settings_form';
  }
  /**
   * {@inheritdoc}
   */
  protected function getEditableConfigNames() {
    return [
      'eloqua.settings',
    ];
  }
  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildForm($form, $form_state);
    // Load our default configuration settings.
    $config = $this
      ->config('eloqua.settings');
    $form['eloqua_settings'] = array(
      '#type' => 'details',
      '#title' => $this
        ->t('General Settings'),
      '#description' => $this
        ->t('General settings applicable to all Eloqua functionality.'),
      '#open' => TRUE,
    );
    $form['eloqua_settings']['site_identifier'] = array(
      '#type' => 'textfield',
      '#title' => $this
        ->t('Site Identifier'),
      '#description' => $this
        ->t('The Eloqua Site ID for this web site. Required to include the Eloqua tracking code.'),
      '#required' => TRUE,
      '#size' => 20,
      '#maxlength' => 64,
      '#default_value' => $config
        ->get('site_identifier'),
    );
    $form['tracking_scope'] = $this
      ->buildTrackignScopeInterface([], $form_state);
    return parent::buildForm($form, $form_state);
  }
  /**
   * Helper function for building the tracking scope UI form.
   *
   * @param array $form
   *   An associative array containing the structure of the form.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form.
   *
   * @return array
   *   The form array with the tracking scope UI added in.
   */
  protected function buildTrackignScopeInterface(array $form, FormStateInterface $form_state) {
    $config = $this
      ->config('eloqua.settings');
    $form['tracking_scope'] = array(
      '#type' => 'item',
      '#title' => $this
        ->t('Tracking scope'),
      '#description' => $this
        ->t('Configuration to include/exclude the Eloqua tracking code.'),
    );
    $form['tracking_scope_tabs'] = [
      '#type' => 'vertical_tabs',
      '#title' => $this
        ->t('Tracking Scope Conditions'),
      '#title_display' => 'invisible',
      '#parents' => [
        'tracking_scope_tabs',
      ],
      '#attached' => [
        'library' => [
          'eloqua/eloqua.admin',
        ],
      ],
    ];
    // Set the condition configuration.
    $this->requestPath
      ->setConfiguration($config
      ->get('request_path'));
    $this->userRole
      ->setConfiguration($config
      ->get('user_role'));
    // Build the request_path condition configuration form elements.
    $form += $this->requestPath
      ->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'] = [
        $this
          ->t('Show for the listed pages'),
        $this
          ->t('Hide for the listed pages'),
      ];
      // Switch negate default value form boolean to integer.
      // Solves issue related to https://www.drupal.org/node/2450637.
      $form['pages']['negate']['#default_value'] = $form['pages']['negate']['#default_value'] === FALSE ? 0 : 1;
    }
    // Build the user_role condition configuration form elements.
    $form += $this->userRole
      ->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 $form;
  }
  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    parent::submitForm($form, $form_state);
    $this->requestPath
      ->submitConfigurationForm($form, $form_state);
    $this->userRole
      ->submitConfigurationForm($form, $form_state);
    $this
      ->config('eloqua.settings')
      ->set('site_identifier', Html::escape($form_state
      ->getValue('site_identifier')))
      ->set('request_path', $this->requestPath
      ->getConfiguration())
      ->set('user_role', $this->userRole
      ->getConfiguration())
      ->save();
    parent::submitForm($form, $form_state);
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            ConfigFormBaseTrait:: | 
                  protected | function | Retrieves a configuration object. | |
| 
            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 | |
| 
            EloquaSettingsForm:: | 
                  protected | property | The condition plugin manager. | |
| 
            EloquaSettingsForm:: | 
                  protected | property | The request_path condition. | |
| 
            EloquaSettingsForm:: | 
                  protected | property | The user_role condition. | |
| 
            EloquaSettingsForm:: | 
                  public | function | 
            Form constructor. Overrides ConfigFormBase:: | 
                  |
| 
            EloquaSettingsForm:: | 
                  protected | function | Helper function for building the tracking scope UI form. | |
| 
            EloquaSettingsForm:: | 
                  public static | function | 
            Instantiates a new instance of this class. Overrides ConfigFormBase:: | 
                  |
| 
            EloquaSettingsForm:: | 
                  protected | function | 
            Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: | 
                  |
| 
            EloquaSettingsForm:: | 
                  public | function | 
            Returns a unique string identifying the form. Overrides FormInterface:: | 
                  |
| 
            EloquaSettingsForm:: | 
                  public | function | 
            Form submission handler. Overrides ConfigFormBase:: | 
                  |
| 
            EloquaSettingsForm:: | 
                  public | function | 
            Creates a new EloquaSettingsForm. Overrides ConfigFormBase:: | 
                  |
| 
            FormBase:: | 
                  protected | property | The config factory. | 1 | 
| 
            FormBase:: | 
                  protected | property | The request stack. | 1 | 
| 
            FormBase:: | 
                  protected | property | The route match. | |
| 
            FormBase:: | 
                  protected | function | Gets the config factory for this form. | 1 | 
| 
            FormBase:: | 
                  private | function | Returns the service container. | |
| 
            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 | 
| 
            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. | |
| 
            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. |