AllowIframedSiteConfigForm.php in Allow site iframing 8
File
src/Form/AllowIframedSiteConfigForm.php
View source
<?php
namespace Drupal\allow_iframed_site\Form;
use Drupal\Component\Plugin\Factory\FactoryInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Form\ConfigFormBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
class AllowIframedSiteConfigForm extends ConfigFormBase {
protected $conditionManager;
protected $conditions;
public function __construct(ConfigFactoryInterface $config_factory, FactoryInterface $plugin_factory) {
parent::__construct($config_factory);
$this->conditions['request_path'] = $plugin_factory
->createInstance('request_path');
}
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('plugin.manager.condition'));
}
public function getFormId() {
return 'allow_iframed_site_config_form';
}
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('allow_iframed_site.settings');
foreach ($this->conditions as $key => $condition) {
$condition
->setConfiguration($config
->get($key) ?? []);
$form += $condition
->buildConfigurationForm($form, $form_state);
}
return parent::buildForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $this
->config('allow_iframed_site.settings');
foreach ($this->conditions as $key => $condition) {
$condition
->submitConfigurationForm($form, $form_state);
$config
->set($key, $condition
->getConfiguration());
}
$config
->save();
parent::submitForm($form, $form_state);
drupal_flush_all_caches();
}
protected function getEditableConfigNames() {
return [
'allow_iframed_site.settings',
];
}
}