class SystemBrandingOffCanvasForm

Same name in other branches
  1. 9 core/modules/system/src/Form/SystemBrandingOffCanvasForm.php \Drupal\system\Form\SystemBrandingOffCanvasForm
  2. 10 core/modules/system/src/Form/SystemBrandingOffCanvasForm.php \Drupal\system\Form\SystemBrandingOffCanvasForm
  3. 11.x core/modules/system/src/Form/SystemBrandingOffCanvasForm.php \Drupal\system\Form\SystemBrandingOffCanvasForm

The settings_tray form handler for the SystemBrandingBlock.

@internal

Hierarchy

Expanded class hierarchy of SystemBrandingOffCanvasForm

File

core/modules/system/src/Form/SystemBrandingOffCanvasForm.php, line 18

Namespace

Drupal\system\Form
View source
class SystemBrandingOffCanvasForm extends PluginFormBase implements ContainerInjectionInterface {
    
    /**
     * The block plugin.
     *
     * @var \Drupal\Core\Block\BlockPluginInterface
     */
    protected $plugin;
    
    /**
     * The config factory.
     *
     * @var \Drupal\Core\Config\ConfigFactoryInterface
     */
    protected $configFactory;
    
    /**
     * The current user.
     *
     * @var \Drupal\Core\Session\AccountInterface
     */
    protected $currentUser;
    
    /**
     * SystemBrandingOffCanvasForm constructor.
     *
     * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
     *   The config factory.
     * @param \Drupal\Core\Session\AccountInterface $current_user
     *   The current user.
     */
    public function __construct(ConfigFactoryInterface $config_factory, AccountInterface $current_user) {
        $this->configFactory = $config_factory;
        $this->currentUser = $current_user;
    }
    
    /**
     * {@inheritdoc}
     */
    public static function create(ContainerInterface $container) {
        return new static($container->get('config.factory'), $container->get('current_user'));
    }
    
    /**
     * {@inheritdoc}
     */
    public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
        $form = $this->plugin
            ->buildConfigurationForm($form, $form_state);
        $form['block_branding']['#type'] = 'details';
        $form['block_branding']['#weight'] = 10;
        // Unset links to Site Information form, we can make these changes here.
        unset($form['block_branding']['use_site_name']['#description'], $form['block_branding']['use_site_slogan']['#description']);
        $site_config = $this->configFactory
            ->getEditable('system.site');
        // Load the immutable config to load the overrides.
        $site_config_immutable = $this->configFactory
            ->get('system.site');
        $form['site_information'] = [
            '#type' => 'details',
            '#title' => t('Site details'),
            '#open' => TRUE,
            '#access' => $this->currentUser
                ->hasPermission('administer site configuration') && !$site_config_immutable->hasOverrides('name') && !$site_config_immutable->hasOverrides('slogan'),
        ];
        $form['site_information']['site_name'] = [
            '#type' => 'textfield',
            '#title' => t('Site name'),
            '#default_value' => $site_config->get('name'),
            '#required' => TRUE,
        ];
        $form['site_information']['site_slogan'] = [
            '#type' => 'textfield',
            '#title' => t('Slogan'),
            '#default_value' => $site_config->get('slogan'),
            '#description' => t("How this is used depends on your site's theme."),
        ];
        return $form;
    }
    
    /**
     * {@inheritdoc}
     */
    public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
        $this->plugin
            ->validateConfigurationForm($form, $form_state);
    }
    
    /**
     * {@inheritdoc}
     */
    public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
        $site_config = $this->configFactory
            ->get('system.site');
        if (AccessResult::allowedIf(!$site_config->hasOverrides('name') && !$site_config->hasOverrides('slogan'))
            ->isAllowed()) {
            $site_info = $form_state->getValue('site_information');
            $this->configFactory
                ->getEditable('system.site')
                ->set('name', $site_info['site_name'])
                ->set('slogan', $site_info['site_slogan'])
                ->save();
        }
        $this->plugin
            ->submitConfigurationForm($form, $form_state);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
PluginFormBase::setPlugin public function Sets the plugin for this object. Overrides PluginAwareInterface::setPlugin 1
SystemBrandingOffCanvasForm::$configFactory protected property The config factory.
SystemBrandingOffCanvasForm::$currentUser protected property The current user.
SystemBrandingOffCanvasForm::$plugin protected property The block plugin. Overrides PluginFormBase::$plugin
SystemBrandingOffCanvasForm::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm
SystemBrandingOffCanvasForm::create public static function Instantiates a new instance of this class. Overrides ContainerInjectionInterface::create
SystemBrandingOffCanvasForm::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm
SystemBrandingOffCanvasForm::validateConfigurationForm public function Form validation handler. Overrides PluginFormBase::validateConfigurationForm
SystemBrandingOffCanvasForm::__construct public function SystemBrandingOffCanvasForm constructor.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.