You are here

public function TweetbuttonSettingsForm::buildForm in Tweet Button 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

lib/Drupal/tweetbutton/Form/TweetbuttonSettingsForm.php, line 55
Contains \Drupal\tweetbutton\Form\TweetbuttonSettingsForm.

Class

TweetbuttonSettingsForm
Provides a configuration form for tweetbutton.

Namespace

Drupal\tweetbutton\Form

Code

public function buildForm(array $form, array &$form_state) {
  $config = $this
    ->config('tweetbutton.settings');
  $form['button'] = array(
    '#type' => 'fieldset',
    '#title' => t('Tweet button settings'),
  );
  $form['button']['tweetbutton_tweet_text'] = array(
    '#type' => 'textfield',
    '#title' => t('Tweet Text'),
    '#default_value' => $config
      ->get('tweetbutton_tweet_text'),
    '#description' => t('Tweet text to use as a default text, if no values are passed, leave this to blank to use page title as tweet text.'),
  );
  $form['button']['tokens'] = array(
    '#token_types' => array(
      'node',
    ),
    '#theme' => 'token_tree',
  );
  $form['button']['tweetbutton_size'] = array(
    '#title' => t('Tweetbutton size'),
    '#type' => 'select',
    '#options' => array(
      'medium' => t('Medium'),
      'large' => t('Large'),
    ),
    '#default_value' => $config
      ->get('tweetbutton_size'),
  );
  $form['button']['tweetbutton_hashtags'] = array(
    '#title' => t('Hashtags'),
    '#type' => 'textfield',
    '#default_value' => $config
      ->get('tweetbutton_hashtags'),
    '#description' => t('Comma separated hashtags to be used in every tweet'),
  );
  $form['button']['tweetbutton_language'] = array(
    '#title' => t('Language'),
    '#description' => t('This is the language that the button will render in on your website. People will see the Tweet dialog in their selected language for Twitter.com.'),
    '#type' => 'select',
    '#options' => array(
      'en' => t('English'),
      'fr' => t('French'),
      'de' => t('German'),
      'es' => t('Spanish'),
      'ja' => t('Japanese'),
      'auto' => t('Automatic'),
    ),
    '#default_value' => $config
      ->get('tweetbutton_language'),
  );
  if ($this->moduleHandler
    ->moduleExists('shorten')) {
    $services = array();
    $services[0] = t('Use t.co twitter default url shortener');
    $all_services = module_invoke_all('shorten_service');
    foreach (array_keys($all_services) as $value) {
      $services[$value] = $value;
    }
    $form['button']['tweetbutton_shorten_service'] = array(
      '#title' => t('Shorten service to use to add custom url'),
      '#type' => 'select',
      '#options' => $services,
      '#default_value' => $config
        ->get('tweetbutton_shorten_service'),
    );
  }
  $form['button']['follow'] = array(
    '#type' => 'fieldset',
    '#title' => t('Recommend people to follow'),
  );
  $form['button']['follow']['tweetbutton_account'] = array(
    '#type' => 'textfield',
    '#title' => t('Twitter account to follow'),
    '#description' => t('This user will be @mentioned in the suggested. Will be used as default if tweetbutton fields author twitter account is not set'),
    '#default_value' => $config
      ->get('tweetbutton_account'),
    '#id' => 'tweetbutton-account',
  );
  $form['button']['follow']['tweetbutton_rel_account_name'] = array(
    '#type' => 'textfield',
    '#title' => t('Related Account'),
    '#default_value' => $config
      ->get('tweetbutton_rel_account_name'),
    '#description' => t('This should be site default twitter account'),
  );
  $form['button']['follow']['tweetbutton_rel_account_description'] = array(
    '#type' => 'textfield',
    '#title' => t('Related Account Description'),
    '#default_value' => $config
      ->get('tweetbutton_rel_account_description'),
  );

  // Follow button settings.
  $form['follow_button'] = array(
    '#type' => 'fieldset',
    '#title' => t('Follow button settings'),
  );
  $form['follow_button']['tweetbutton_follow_screen_name'] = array(
    '#type' => 'textfield',
    '#title' => t('Screen name to follow'),
    '#default_value' => $config
      ->get('tweetbutton_follow_screen_name'),
    '#required' => TRUE,
  );
  return parent::buildForm($form, $form_state);
}