function SystemBrandingBlock::blockForm

Same name in other branches
  1. 9 core/modules/system/src/Plugin/Block/SystemBrandingBlock.php \Drupal\system\Plugin\Block\SystemBrandingBlock::blockForm()
  2. 10 core/modules/system/src/Plugin/Block/SystemBrandingBlock.php \Drupal\system\Plugin\Block\SystemBrandingBlock::blockForm()
  3. 11.x core/modules/system/src/Plugin/Block/SystemBrandingBlock.php \Drupal\system\Plugin\Block\SystemBrandingBlock::blockForm()

File

core/modules/system/src/Plugin/Block/SystemBrandingBlock.php, line 77

Class

SystemBrandingBlock
Provides a block to display 'Site branding' elements.

Namespace

Drupal\system\Plugin\Block

Code

public function blockForm($form, FormStateInterface $form_state) {
    // Get the theme.
    $theme = $form_state->get('block_theme');
    // Get permissions.
    $url_system_theme_settings = new Url('system.theme_settings');
    $url_system_theme_settings_theme = new Url('system.theme_settings_theme', [
        'theme' => $theme,
    ]);
    if ($url_system_theme_settings->access() && $url_system_theme_settings_theme->access()) {
        // Provide links to the Appearance Settings and Theme Settings pages
        // if the user has access to administer themes.
        $site_logo_description = $this->t('Defined on the <a href=":appearance">Appearance Settings</a> or <a href=":theme">Theme Settings</a> page.', [
            ':appearance' => $url_system_theme_settings->toString(),
            ':theme' => $url_system_theme_settings_theme->toString(),
        ]);
    }
    else {
        // Explain that the user does not have access to the Appearance and Theme
        // Settings pages.
        $site_logo_description = $this->t('Defined on the Appearance or Theme Settings page. You do not have the appropriate permissions to change the site logo.');
    }
    $url_system_site_information_settings = new Url('system.site_information_settings');
    if ($url_system_site_information_settings->access()) {
        // Get paths to settings pages.
        $site_information_url = $url_system_site_information_settings->toString();
        // Provide link to Site Information page if the user has access to
        // administer site configuration.
        $site_name_description = $this->t('Defined on the <a href=":information">Site Information</a> page.', [
            ':information' => $site_information_url,
        ]);
        $site_slogan_description = $this->t('Defined on the <a href=":information">Site Information</a> page.', [
            ':information' => $site_information_url,
        ]);
    }
    else {
        // Explain that the user does not have access to the Site Information
        // page.
        $site_name_description = $this->t('Defined on the Site Information page. You do not have the appropriate permissions to change the site logo.');
        $site_slogan_description = $this->t('Defined on the Site Information page. You do not have the appropriate permissions to change the site logo.');
    }
    $form['block_branding'] = [
        '#type' => 'fieldset',
        '#title' => $this->t('Toggle branding elements'),
        '#description' => $this->t('Choose which branding elements you want to show in this block instance.'),
    ];
    $form['block_branding']['use_site_logo'] = [
        '#type' => 'checkbox',
        '#title' => $this->t('Site logo'),
        '#description' => $site_logo_description,
        '#default_value' => $this->configuration['use_site_logo'],
    ];
    $form['block_branding']['use_site_name'] = [
        '#type' => 'checkbox',
        '#title' => $this->t('Site name'),
        '#description' => $site_name_description,
        '#default_value' => $this->configuration['use_site_name'],
    ];
    $form['block_branding']['use_site_slogan'] = [
        '#type' => 'checkbox',
        '#title' => $this->t('Site slogan'),
        '#description' => $site_slogan_description,
        '#default_value' => $this->configuration['use_site_slogan'],
    ];
    return $form;
}

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