easy_social-8.x-3.x-dev/src/Form/LinkedInSettingsForm.php
src/Form/LinkedInSettingsForm.php
<?php
namespace Drupal\easy_social\Form;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
/**
* Configure user settings for this site.
*/
final class LinkedInSettingsForm extends ConfigFormBase {
/**
* Config settings.
*
* @var string
*/
private const SETTINGS = 'easy_social.linkedin';
/**
* {@inheritdoc}
*/
public function getFormId(): string {
return 'easy_social_linkedin';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [self::SETTINGS];
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state, $type = 'new'): array {
$config = $this->config(self::SETTINGS);
$form['help'] = [
'#markup' => t('For more information, please check out the official @linkedin share widget <a href="@url" target="_blank">documentation</a>', [
'@linkedin' => t('LinkedIn'),
'@url' => 'http://developer.linkedin.com/plugins/share-plugin-generator',
]),
'#weight' => -99,
];
$form['counter'] = [
'#type' => 'select',
'#title' => t('Counter'),
'#default_value' => $config->get('counter'),
'#options' => [
'top' => t('Vertical'),
'right' => t('Horizontal'),
'none' => t('No Count'),
],
];
$form['lang'] = [
'#type' => 'select',
'#title' => t('Language'),
'#description' => t('Content Default will use either the current content\'s or Drupal\'s language'),
'#default_value' => $config->get('lang'),
'#options' => [
// @todo Map linkedin's language codes to Drupal's.
'' => t('Content Default'),
'en_US' => t('English'),
'fr_FR' => t('French'),
'es_ES' => t('Spanish'),
'ru_RU' => t('Russian'),
'de_DE' => t('German'),
'it_IT' => t('Italian'),
'pt_BR' => t('Portuguese'),
'ro_RO' => t('Romanian'),
'tr_TR' => t('Turkish'),
'ja_JP' => t('Japanese'),
'in_ID' => t('Indonesian'),
'ms_MY' => t('Malay'),
'ko_KR' => t('Korean'),
'sv_SE' => t('Swedish'),
'cs_CZ' => t('Czech'),
'nl_NL' => t('Dutch'),
'pl_PL' => t('Polish'),
'no_NO' => t('Norwegian'),
'da_DK' => t('Danish'),
],
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state): void {
parent::submitForm($form, $form_state);
$config = $this->config(self::SETTINGS);
$config
->set('counter', $form_state->getValue('counter'))
->set('lang', $form_state->getValue('lang'))
->save();
}
}
