You are here

public function SocialSharingButtonsBlock::build in Better Social Sharing Buttons 8

Same name and namespace in other branches
  1. 8.3 src/Plugin/Block/SocialSharingButtonsBlock.php \Drupal\better_social_sharing_buttons\Plugin\Block\SocialSharingButtonsBlock::build()

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/SocialSharingButtonsBlock.php, line 23

Class

SocialSharingButtonsBlock
Provides a social sharing buttons block.

Namespace

Drupal\better_social_sharing_buttons\Plugin\Block

Code

public function build() {
  $items = [];
  global $base_url;
  $request = \Drupal::request();
  if ($route = $request->attributes
    ->get(RouteObjectInterface::ROUTE_OBJECT)) {
    $title = \Drupal::service('title_resolver')
      ->getTitle($request, $route);
  }
  $config = \Drupal::config('better_social_sharing_buttons.settings');
  $items['page_url'] = Url::fromRoute('<current>', [], [
    'absolute' => TRUE,
  ]);
  $items['description'] = '';
  $items['title'] = $title;
  $items['width'] = $config
    ->get('width') ?: '20px';
  $items['height'] = $config
    ->get('height') ?: '20px';
  $items['radius'] = $config
    ->get('radius') ?: '3px';
  $items['facebook_app_id'] = $config
    ->get('facebook_app_id') ?: '';
  $items['iconset'] = $config
    ->get('iconset') ?: 'social-icons--square';
  $items['services'] = $config
    ->get('services') ?: [
    'facebook' => 'facebook',
    'twitter' => 'twitter',
    'linkedin' => 'linkedin',
    'googleplus' => 'googleplus',
    'email' => 'email',
  ];
  $items['base_url'] = $base_url;
  return [
    '#theme' => 'better_social_sharing_buttons',
    '#items' => $items,
  ];
}