You are here

public function FacebookFeedBlock::build in Facebook Feed Block 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/FacebookFeedBlock.php, line 115

Class

FacebookFeedBlock
Provides a 'FacebookFeedBlock' block.

Namespace

Drupal\facebook_feed\Plugin\Block

Code

public function build() {
  $posts = [];
  try {
    $posts = $this
      ->getPosts();
  } catch (\Exception $e) {
    \Drupal::messenger()
      ->addMessage(t('Facebook error.'), 'error');
  }
  $build = [
    '#prefix' => '<div class="facebook_feed">',
    '#suffix' => '</div>',
  ];
  $build['#attached']['library'][] = 'facebook_feed/display';
  $build['#attached']['library'][] = 'facebook_feed/font_awesome';
  if (!$posts) {
    return $build;
  }
  foreach ($posts['data'] as $post) {
    $build[$post['id']] = $this
      ->themePost($post);
  }
  return $build;
}