You are here

public function SystemBrandingBlock::blockForm in Zircon Profile 8

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

Returns the configuration form elements specific to this block plugin.

Blocks that need to add form elements to the normal block configuration form should implement this method.

Parameters

array $form: The form definition array for the block configuration form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array $form The renderable form array representing the entire configuration form.

Overrides BlockBase::blockForm

File

core/modules/system/src/Plugin/Block/SystemBrandingBlock.php, line 79
Contains \Drupal\system\Plugin\Block\SystemBrandingBlock.

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', array(
    '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.', array(
      ':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.', array(
      ':information' => $site_information_url,
    ));
    $site_slogan_description = $this
      ->t('Defined on the <a href=":information">Site Information</a> page.', array(
      ':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'] = array(
    '#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'] = array(
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Site logo'),
    '#description' => $site_logo_description,
    '#default_value' => $this->configuration['use_site_logo'],
  );
  $form['block_branding']['use_site_name'] = array(
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Site name'),
    '#description' => $site_name_description,
    '#default_value' => $this->configuration['use_site_name'],
  );
  $form['block_branding']['use_site_slogan'] = array(
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Site slogan'),
    '#description' => $site_slogan_description,
    '#default_value' => $this->configuration['use_site_slogan'],
  );
  return $form;
}