function SystemBrandingBlock::blockForm

Same name and namespace in other branches
  1. 9 core/modules/system/src/Plugin/Block/SystemBrandingBlock.php \Drupal\system\Plugin\Block\SystemBrandingBlock::blockForm()
  2. 8.9.x 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()

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 permissions.
  $url_system_theme_settings = new Url('system.theme_settings');
  if ($url_system_theme_settings->access()) {
    // Provide links to the Appearance Settings page if the user has access to
    // administer themes.
    $site_logo_description = $this->t('Defined on the <a href="@appearance">Appearance Settings</a> page.', [
      '@appearance' => $url_system_theme_settings->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.