You are here

public function TwitterSettingsForm::buildForm in Twitter 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/TwitterSettingsForm.php, line 31

Class

TwitterSettingsForm
Configure twitter settings for this site.

Namespace

Drupal\twitter\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $twitter_config = $this->configFactory
    ->get('twitter.settings');
  $form['import'] = [
    '#type' => 'checkbox',
    '#title' => t('Import and display the Twitter statuses of site users who have entered their Twitter account information.'),
    '#default_value' => $twitter_config
      ->get('import'),
  ];
  $intervals = [
    604800,
    2592000,
    7776000,
    31536000,
  ];
  $form['expire'] = [
    '#type' => 'select',
    '#title' => t('Delete old statuses'),
    '#default_value' => $twitter_config
      ->get('expire'),
    '#options' => [
      0 => t('Never'),
    ] + array_map([
      \Drupal::service('date.formatter'),
      'formatInterval',
    ], array_combine($intervals, $intervals)),
    '#states' => [
      'visible' => [
        ':input[name=twitter_import]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  $form['oauth'] = [
    '#type' => 'fieldset',
    '#title' => t('OAuth Settings'),
    '#description' => t('To enable OAuth based access for twitter, you must <a href="@url">register your application</a> with Twitter and add the provided keys here.', [
      '@url' => 'https://dev.twitter.com/apps/new',
    ]),
  ];
  $form['oauth']['callback_url'] = [
    '#type' => 'item',
    '#title' => t('Callback URL'),
    '#markup' => Url::fromUri('base:twitter/oauth', [
      'absolute' => TRUE,
    ])
      ->toString(),
  ];
  $form['oauth']['consumer_key'] = [
    '#type' => 'textfield',
    '#title' => t('OAuth Consumer key'),
    '#default_value' => $twitter_config
      ->get('consumer_key'),
  ];
  $form['oauth']['consumer_secret'] = [
    '#type' => 'textfield',
    '#title' => t('OAuth Consumer secret'),
    '#default_value' => $twitter_config
      ->get('consumer_secret'),
  ];

  // Twitter external APIs settings.
  $form['twitter'] = [
    '#type' => 'fieldset',
    '#title' => t('Twitter Settings'),
    '#description' => t("The following settings connect Twitter module with external APIs. ' .\n        'Change them if, for example, you want to use Identi.ca."),
  ];
  $form['twitter']['host'] = [
    '#type' => 'textfield',
    '#title' => t('Twitter host'),
    '#default_value' => $twitter_config
      ->get('host'),
  ];
  $form['twitter']['api'] = [
    '#type' => 'textfield',
    '#title' => t('Twitter API'),
    '#default_value' => $twitter_config
      ->get('api'),
  ];
  $form['twitter']['search'] = [
    '#type' => 'textfield',
    '#title' => t('Twitter search'),
    '#default_value' => $twitter_config
      ->get('search'),
  ];
  $form['twitter']['tinyurl'] = [
    '#type' => 'textfield',
    '#title' => t('TinyURL'),
    '#default_value' => $twitter_config
      ->get('tinyurl'),
  ];
  return parent::buildForm($form, $form_state);
}