You are here

public function AdsenseOldCodeSettings::buildForm in Google AdSense integration 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

oldcode/src/Form/AdsenseOldCodeSettings.php, line 31

Class

AdsenseOldCodeSettings
Form for the older adsense content ads settings.

Namespace

Drupal\adsense_oldcode\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('adsense_oldcode.settings');
  $form['ad_styles'] = [
    '#type' => 'details',
    '#open' => TRUE,
    '#title' => $this
      ->t('Ad styles'),
  ];
  for ($style = 1; $style <= ADSENSE_OLDCODE_MAX_GROUPS; $style++) {
    $title = $config
      ->get('adsense_group_title_' . $style);
    $form['ad_styles'][$style] = [
      '#type' => 'details',
      '#open' => FALSE,
      '#title' => $this
        ->t('Style @style attributes', [
        '@style' => $style . (!empty($title) ? " ({$title})" : ''),
      ]),
    ];
    $form['ad_styles'][$style]['adsense_group_title_' . $style] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Title'),
      '#default_value' => $title,
      '#size' => 100,
      '#maxlength' => 100,
      '#description' => $this
        ->t('Title of the style.'),
    ];
    $form['ad_styles'][$style]['adsense_ad_type_' . $style] = [
      '#type' => 'radios',
      '#title' => $this
        ->t('Ad type'),
      '#default_value' => $config
        ->get('adsense_ad_type_' . $style),
      '#options' => [
        $this
          ->t('Text'),
        $this
          ->t('Image'),
        $this
          ->t('Both'),
      ],
    ];

    // Add Farbtastic color picker.
    $form['ad_styles'][$style]['colorpicker'] = [
      '#type' => 'markup',
      '#markup' => "<div id='colorpicker-{$style}' style='float: right;'></div>",
    ];
    $form['ad_styles'][$style]['adsense_color_text_' . $style] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Text color'),
      '#default_value' => $config
        ->get('adsense_color_text_' . $style),
      '#size' => 7,
      '#maxlength' => 7,
      '#pattern' => '#[a-fA-F0-9]{6}',
    ];
    $form['ad_styles'][$style]['adsense_color_border_' . $style] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Border color'),
      '#default_value' => $config
        ->get('adsense_color_border_' . $style),
      '#size' => 7,
      '#maxlength' => 7,
      '#pattern' => '#[a-fA-F0-9]{6}',
    ];
    $form['ad_styles'][$style]['adsense_color_bg_' . $style] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Background color'),
      '#default_value' => $config
        ->get('adsense_color_bg_' . $style),
      '#size' => 7,
      '#maxlength' => 7,
      '#pattern' => '#[a-fA-F0-9]{6}',
    ];
    $form['ad_styles'][$style]['adsense_color_link_' . $style] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Title color'),
      '#default_value' => $config
        ->get('adsense_color_link_' . $style),
      '#size' => 7,
      '#maxlength' => 7,
      '#pattern' => '#[a-fA-F0-9]{6}',
    ];
    $form['ad_styles'][$style]['adsense_color_url_' . $style] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('URL color'),
      '#default_value' => $config
        ->get('adsense_color_url_' . $style),
      '#size' => 7,
      '#maxlength' => 7,
      '#pattern' => '#[a-fA-F0-9]{6}',
    ];
    $form['ad_styles'][$style]['adsense_alt_' . $style] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Alternate URL color'),
      '#default_value' => $config
        ->get('adsense_alt_' . $style),
      '#options' => [
        $this
          ->t('None'),
        $this
          ->t('Alternate URL'),
        $this
          ->t('Alternate color'),
      ],
    ];
    $form['ad_styles'][$style]['adsense_alt_info_' . $style] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Alternate info'),
      '#default_value' => $config
        ->get('adsense_alt_info_' . $style),
      '#size' => 100,
      '#maxlength' => 100,
      '#description' => $this
        ->t('Enter either 6 letter alternate color code, or alternate URL to use'),
      '#states' => [
        'invisible' => [
          ":input[name='adsense_alt_{$style}']" => [
            'value' => 0,
          ],
        ],
      ],
    ];
    $form['ad_styles'][$style]['adsense_ui_features_' . $style] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Rounded corners'),
      '#default_value' => $config
        ->get('adsense_ui_features_' . $style),
      '#options' => [
        'rc:0' => $this
          ->t('Square'),
        'rc:6' => $this
          ->t('Slightly rounded'),
        'rc:10' => $this
          ->t('Very rounded'),
      ],
      '#description' => $this
        ->t('Choose type of round corners'),
    ];
  }
  $form['channels'] = [
    '#type' => 'details',
    '#open' => FALSE,
    '#title' => $this
      ->t('Custom channels'),
    '#description' => $this
      ->t('Enter up to !channels custom channels that you have configured in Google AdSense. If you are not using custom channels, or you are only using URL channels, then leave this empty.', [
      '!channels' => ADSENSE_OLDCODE_MAX_CHANNELS,
    ]),
  ];
  for ($channel = 1; $channel <= ADSENSE_OLDCODE_MAX_CHANNELS; $channel++) {
    $form['channels']['adsense_ad_channel_' . $channel] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Custom channel ID @channel', [
        '@channel' => $channel,
      ]),
      '#default_value' => $config
        ->get('adsense_ad_channel_' . $channel),
      '#size' => 30,
      '#maxlength' => 30,
    ];
  }
  $form['#attached']['library'] = [
    'adsense_oldcode/adsense_oldcode.colorpicker',
  ];
  return parent::buildForm($form, $form_state);
}