You are here

public function SystemBrandingBlock::blockForm in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/system/src/Plugin/Block/SystemBrandingBlock.php \Drupal\system\Plugin\Block\SystemBrandingBlock::blockForm()

Overrides BlockPluginTrait::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;
}