openlucius-2.0.0-alpha3/modules/core/ol_main/src/Plugin/Block/MainHeaderBlock.php

modules/core/ol_main/src/Plugin/Block/MainHeaderBlock.php
<?php

namespace Drupal\ol_main\Plugin\Block;

use Drupal\Core\Block\BlockBase;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Url;
use Drupal\ol_main\Services\OlFiles;
use Drupal\ol_main\Services\OlGroups;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Provides a 'MainHeader' block.
 *
 * @Block(
 *  id = "main_header_block",
 *  admin_label = @Translation("Main header block"),
 * )
 */
class MainHeaderBlock extends BlockBase  implements ContainerFactoryPluginInterface{

  /**
   * @var $groups
   */
  protected $groups;

  /**
   * @var $files
   */
  protected $files;

  /**
   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
   * @param array $configuration
   * @param string $plugin_id
   * @param mixed $plugin_definition
   *
   * @return static
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static(
      $configuration,
      $plugin_id,
      $plugin_definition,
      $container->get('olmain.groups'),
      $container->get('olmain.files')

    );
  }

  /**
   * @param array $configuration
   * @param string $plugin_id
   * @param mixed $plugin_definition
   * @param \Drupal\ol_main\Services\OlGroups $groups
   * @param \Drupal\ol_main\Services\OlFiles $files
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, OlGroups $groups, OlFiles $files) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->groups = $groups;
    $this->files = $files;
  }

  /**
   * {@inheritdoc}
   */
  public function build() {

    // Set global message.
    $global_message = \Drupal::config('ol_main.admin_settings')->get('global_message');
    // Handle header image.
    $header_image_url = '';
    $header_fid = $this->groups->getHeaderImage();
    if(!empty($header_fid)) {
      $header_uri = $this->files->getFileUri($header_fid);
      $header_image_url = Url::fromUri(file_create_url($header_uri));
    }
    // Build.
    $theme_vars = [
      'global_message' => $global_message,
      'header_image_url' => $header_image_url,
    ];
    $build = [
      '#theme' => 'main_header_block',
      '#cache' => ['max-age' => 0],
      '#vars' => $theme_vars,
    ];
    return $build;
  }



}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc