public function SharethisWidgetBlock::build in ShareThis 8.2
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/ SharethisWidgetBlock.php, line 174
Class
- SharethisWidgetBlock
- Provides an 'Share this Widget' block.
Namespace
Drupal\sharethis\Plugin\BlockCode
public function build() {
if ($this->sharethisSettings
->get('location') === 'block') {
$st_js = $this->sharethisManager
->sharethisIncludeJs();
if ($this->configuration['sharethis_path'] == 'external') {
$mpath = $this->configuration['sharethis_path_external'];
}
else {
$current_path = Url::fromRoute('<current>')
->toString();
$path = $this->configuration['sharethis_path'] == 'global' ? '<front>' : $current_path;
global $base_url;
$path_obj = Url::fromUri($base_url . $path, [
'absolute' => TRUE,
]);
$mpath = $path_obj
->toString();
}
$request = $this->requestStack
->getCurrentRequest();
$title = $this->titleResolver
->getTitle($request, $this->routeMatch
->getRouteObject());
$title = is_object($title) ? $title
->getUntranslatedString() : $title;
$mtitle = $this->configuration['sharethis_path'] == 'current' ? $title : $this->configFactory
->get('system.site')
->get('name');
$markup = $this->sharethisManager
->widgetContents([
'm_path' => $mpath,
'm_title' => $mtitle,
]);
return [
'#theme' => 'sharethis_block',
'#content' => $markup,
'#attached' => [
'library' => [
'sharethis/sharethispickerexternalbuttonsws',
'sharethis/sharethispickerexternalbuttons',
'sharethis/sharethis',
],
'drupalSettings' => [
'sharethis' => $st_js,
],
],
];
}
}