You are here

public function PollRecentBlock::build in Poll 8

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 BlockPluginInterface::build

See also

\Drupal\block\BlockViewBuilder

File

src/Plugin/Block/PollRecentBlock.php, line 79

Class

PollRecentBlock
Provides a 'Most recent poll' block.

Namespace

Drupal\poll\Plugin\Block

Code

public function build() {
  $build = [];
  $polls = $this->entityTypeManager
    ->getStorage('poll')
    ->getMostRecentPoll();
  if ($polls) {
    $poll = reset($polls);

    // If we're viewing this poll, don't show this block.
    //      $page = \Drupal::request()->attributes->get('poll');
    //      if ($page instanceof PollInterface && $page->id() == $poll->id()) {
    //        return;
    //      }
    // @todo: new view mode using ajax
    $build = $this->entityTypeManager
      ->getViewBuilder('poll')
      ->view($poll, 'block');
    $build['#title'] = $poll
      ->label();
  }
  return $build;
}