Esempio n. 1
0
 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);
 }