View source
<?php
namespace Drupal\sendinblue\Form;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\sendinblue\SendinblueManager;
use Symfony\Component\DependencyInjection\ContainerInterface;
class RegisteringUserForm extends ConfigFormBase {
private $sendinblueManager;
public function __construct(ConfigFactoryInterface $config_factory, SendinblueManager $sendinblueManager) {
parent::__construct($config_factory);
$this->sendinblueManager = $sendinblueManager;
}
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('sendinblue.manager'));
}
public function getFormId() {
return SendinblueManager::CONFIG_SETTINGS_REGISTERING_USER;
}
public function buildForm(array $form, FormStateInterface $form_state) {
$sendinblue_lists = $this->sendinblueManager
->getLists();
$options = [];
foreach ($sendinblue_lists as $mc_list) {
$options[$mc_list['id']] = $mc_list['name'];
}
$form['sendinblue_put_registered_user'] = [
'#tree' => TRUE,
];
$form['sendinblue_put_registered_user']['active'] = [
'#type' => 'radios',
'#title' => $this
->t('Save SendInBlue User ?'),
'#default_value' => $this
->configFactory()
->get(SendinblueManager::CONFIG_SETTINGS_REGISTERING_USER)
->get('sendinblue_put_registered_user')['active'],
'#description' => $this
->t('Register the user in SendInBlue list during registration'),
'#options' => [
1 => $this
->t('Yes'),
0 => $this
->t('No'),
],
];
$form['sendinblue_put_registered_user']['list'] = [
'#type' => 'select',
'#title' => $this
->t('List where subscribers are saved'),
'#options' => $options,
'#default_value' => $this
->configFactory()
->get(SendinblueManager::CONFIG_SETTINGS_REGISTERING_USER)
->get('sendinblue_put_registered_user')['list'],
'#description' => $this
->t('Select the list where you want to add your new subscribers'),
'#states' => [
'visible' => [
':input[name="sendinblue_put_registered_user[active]"]' => [
'value' => 1,
],
],
],
];
$form['submit'] = [
'#type' => 'submit',
'#value' => $this
->t('Save Settings'),
];
return $form;
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$sendinblue_put_registered_user = $form_state
->getValue('sendinblue_put_registered_user');
$config = $this
->configFactory()
->getEditable(SendinblueManager::CONFIG_SETTINGS_REGISTERING_USER);
$config
->set('sendinblue_put_registered_user', $sendinblue_put_registered_user)
->save();
parent::submitForm($form, $form_state);
}
protected function getEditableConfigNames() {
return [
SendinblueManager::CONFIG_SETTINGS_REGISTERING_USER,
];
}
}