DomainMenuAccessSettingsForm.php in Domain Menu Access 8
File
src/Form/DomainMenuAccessSettingsForm.php
View source
<?php
namespace Drupal\domain_menu_access\Form;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\system\Entity\Menu;
class DomainMenuAccessSettingsForm extends ConfigFormBase {
public function getFormId() {
return 'domain_menu_access_settings';
}
protected function getEditableConfigNames() {
return [
'domain_menu_access.settings',
];
}
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('domain_menu_access.settings')
->get('menu_enabled');
if (!$config) {
$config = [];
}
$menu = Menu::loadMultiple();
if (empty($menu)) {
$form['markup'] = [
'#markup' => $this
->t('Your menu list is empty. Please, try add the menu and return here.'),
];
}
else {
$form['description'] = [
'#markup' => $this
->t('Please, select menu for enable control by domain records.'),
];
foreach ($menu as $key => $item) {
$form[$key] = [
'#type' => 'checkbox',
'#title' => $item
->label(),
'#default_value' => in_array($key, $config) ? '1' : '',
'#description' => $item
->getDescription(),
];
}
}
return parent::buildForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $this
->config('domain_menu_access.settings');
$menu = array_keys(Menu::loadMultiple());
if (!empty($menu) && !empty($form_state
->getValues())) {
$menu_enabled = [];
$values = $form_state
->getValues();
foreach ($values as $key => $value) {
if ($value && in_array($key, $menu)) {
$menu_enabled[] = $key;
}
}
$config
->set('menu_enabled', $menu_enabled);
$config
->save();
}
parent::submitForm($form, $form_state);
}
}