You are here

public function BackLinkBlock::build in Opigno Learning path 3.x

Builds and returns the renderable array for this block plugin.

If a block should not be rendered because it has no content, then this method must also ensure to return no content: it must then only return an empty array, or an empty array with #cache set (with cacheability metadata indicating the circumstances for it being empty).

Return value

array A renderable array representing the content of the block.

Overrides SystemBreadcrumbBlock::build

See also

\Drupal\block\BlockViewBuilder

File

src/Plugin/Block/BackLinkBlock.php, line 82

Class

BackLinkBlock
Provides a backlinkblock block.

Namespace

Drupal\opigno_learning_path\Plugin\Block

Code

public function build() {
  $config = $this->configuration;

  /** @var \Drupal\Core\Link[] $links */
  $links = $this
    ->getLinks();

  /** @var \Drupal\Core\Link $last_link */
  $last_link = array_pop($links);
  if ($last_link instanceof Link) {
    return [
      '#type' => 'inline_template',
      '#template' => '<div class="back-btn d-none d-lg-block {{js_button}}"><a href="{{context}}"><i class="fi fi-rr-angle-small-left d-lg-none"></i><i class="fi fi-rr-arrow-left d-none d-lg-block"></i>{{context_title}}</a></div>',
      '#context' => [
        'context_title' => $this
          ->t('Back'),
        'context' => $last_link
          ->getUrl()
          ->toString(),
      ],
      '#attached' => [
        'library' => [
          'opigno_learning_path/back_button',
        ],
        'drupalSettings' => [
          'learning_path_back_link' => [
            'js_button' => $this
              ->isOverrideJS(),
          ],
        ],
      ],
    ];
  }
  return [];
}