public function Addthis::build in Share Message 8
Creates the AddThis toolbar.
Parameters
array $context: The form structure.
$plugin_attributes: Custom plugin attributes.
Return value
array $build Returns the modified configuration form structure.
Overrides SharePluginInterface::build
File
- src/Plugin/ sharemessage/ Addthis.php, line 25 
Class
- Addthis
- AddThis plugin.
Namespace
Drupal\sharemessage\Plugin\sharemessageCode
public function build($context, $plugin_attributes) {
  $attributes = new Attribute([
    'class' => [
      'addthis_toolbox',
      'addthis_default_style',
      $this->shareMessage
        ->getSetting('icon_style') ?: \Drupal::config('sharemessage.addthis')
        ->get('icon_style'),
    ],
  ]);
  if ($plugin_attributes) {
    $attributes['addthis:url'] = $this->shareMessage
      ->getUrl($context);
    $attributes['addthis:title'] = $this->shareMessage
      ->getTokenizedField($this->shareMessage->title, $context);
    $attributes['addthis:description'] = $this->shareMessage
      ->getTokenizedField($this->shareMessage->message_long, $context);
  }
  // Add AddThis buttons.
  $build = [
    '#theme' => 'sharemessage_addthis',
    '#attributes' => $attributes,
    '#services' => $this->shareMessage
      ->getSetting('services') ?: \Drupal::config('sharemessage.addthis')
      ->get('services'),
    '#additional_services' => $this
      ->getSetting('additional_services') ?: \Drupal::config('sharemessage.addthis')
      ->get('additional_services'),
    '#counter' => $this
      ->getSetting('counter') ?: \Drupal::config('sharemessage.addthis')
      ->get('counter'),
    '#twitter_template' => $this->shareMessage
      ->getTokenizedField($this->shareMessage->message_short, $context),
    '#attached' => [
      'library' => [
        'sharemessage/addthis',
      ],
      'drupalSettings' => [
        'addthis_config' => [
          'data_track_addressbar' => TRUE,
        ],
      ],
    ],
  ];
  $cacheability_metadata = CacheableMetadata::createFromObject(\Drupal::config('sharemessage.addthis'));
  $cacheability_metadata
    ->applyTo($build);
  return $build;
}