varbase_auth.formbit.php in Varbase: The Ultimate Drupal CMS Starter Kit (Bootstrap Ready) 8.6
FormBit file for varbase_auth feature mdoule.
File
src/FormBit/varbase_auth.formbit.phpView source
<?php
/**
* @file
* FormBit file for varbase_auth feature mdoule.
*/
use Drupal\Core\Form\FormStateInterface;
/**
* Get editable config names.
*
* @return array
* Array of config names, and list of values.
*/
function varbase_auth_get_editable_config_names() {
$editable_cofnigs = [
'simple.settings' => [
'social_auth_type' => [
'social_auth_google',
],
],
];
return $editable_cofnigs;
}
/**
* Build form bit.
*
* @param array $formbit
* FormBit for the form.
* @param Drupal\Core\Form\FormStateInterface $form_state
* Form status.
* @param array $install_state
* Install state.
*/
function varbase_auth_build_formbit(array &$formbit, FormStateInterface &$form_state, array &$install_state = NULL) {
$formbit['social_auth_type'] = [
'#type' => 'checkboxes',
'#title' => t('Social authentications to enable'),
'#default_value' => [
'social_auth_google',
],
'#options' => [
'social_auth_google' => t('Google'),
'social_auth_facebook' => t('Facebook'),
'social_auth_linkedin' => t('Linkedin'),
'social_auth_twitter' => t('Twitter'),
],
];
}
/**
* Submit form bit with editable config values.
*
* To update the editable config in drupal active config.
*
* @param array $editable_config_values
* Editable cofnig values.
*/
function varbase_auth_submit_formbit(array $editable_config_values) {
$configFactory = \Drupal::configFactory()
->getEditable('simple.settings');
$configFactory
->set('social_auth_type', $editable_config_values['simple.settings']['social_auth_type']);
$configFactory
->save(TRUE);
// From the Config and enable the modules.
$auth_modules = $configFactory
->get('social_auth_type');
if (isset($auth_modules) && is_array($auth_modules) && count($auth_modules) > 0) {
$modules_to_install = [];
foreach ($auth_modules as $auth_module_index => $auth_module) {
if (is_string($auth_module)) {
array_push($modules_to_install, $auth_module);
}
}
if (isset($modules_to_install) && is_array($modules_to_install) && count($modules_to_install) > 0) {
\Drupal::service('module_installer')
->install($modules_to_install);
}
}
}
Functions
Name | Description |
---|---|
varbase_auth_build_formbit | Build form bit. |
varbase_auth_get_editable_config_names | Get editable config names. |
varbase_auth_submit_formbit | Submit form bit with editable config values. |