public function __construct(array $configuration, $plugin_id, $plugin_definition) { parent::__construct($configuration, $plugin_id, $plugin_definition); // FontAwesome is always available, because we can integrate it as a external library. $iconsetFinderService = \Drupal::service('social_media_links.finder'); $this->path = $iconsetFinderService->getPath($plugin_id) ? $iconsetFinderService->getPath($plugin_id) : 'library'; }
/** * {@inheritdoc} */ public function build() { $config = $this->getConfiguration(); $platforms = $this->platformManager->getPlatformsWithValue($config['platforms']); if (count($platforms) < 1) { return array(); } $iconset = IconsetBase::explodeStyle($config['iconset']['style']); try { $iconsetInstance = $this->iconsetManager->createInstance($iconset['iconset']); } catch (PluginException $exception) { \Drupal::logger('social_media_links')->error('The selected "@iconset" iconset plugin does not exist.', array('@iconset' => $iconset['iconset'])); return array(); } foreach ($config['link_attributes'] as $key => $value) { if ($value === '<none>') { unset($config['link_attributes'][$key]); } } foreach ($platforms as $platform_id => $platform) { $platforms[$platform_id]['element'] = (array) $iconsetInstance->getIconElement($platform['instance'], $iconset['style']); } $output = array('#theme' => 'social_media_links_platforms', '#platforms' => $platforms, '#appearance' => $config['appearance'], '#link_attributes' => new Attribute($config['link_attributes']), '#attached' => array('library' => array('social_media_links/social_media_links.theme'))); if ($iconsetInstance->getPath() === 'library' && (array) ($library = $iconsetInstance->getLibrary())) { $output['#attached']['library'] = array_merge_recursive($output['#attached']['library'], $library); } return array($output); }