TwitterButtonFormatter.php in Twitter Embed 8
File
src/Plugin/Field/FieldFormatter/TwitterButtonFormatter.php
View source
<?php
namespace Drupal\twitter_embed\Plugin\Field\FieldFormatter;
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\twitter_embed\TwitterButtonWidget;
class TwitterButtonFormatter extends TwitterFormatterBase {
public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, array $third_party_settings) {
$this->twitterWidget = \Drupal::service('twitter_embed.button_widget');
parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $view_mode, $third_party_settings);
}
public static function defaultSettings() {
return TwitterButtonWidget::getDefaultSettings() + parent::defaultSettings();
}
public function getSettings() {
if (!array_key_exists($this
->getSetting('type'), $this->twitterWidget
->getAvailableTypes())) {
$type = '';
$this
->setSetting('type', $type);
}
if (!array_key_exists($this
->getSetting('display_style'), $this->twitterWidget
->getAvailableDisplayStyles())) {
$displayStyle = TwitterButtonWidget::getDefaultSettings()['display_style'];
$this
->setSetting('display_style', $displayStyle);
}
return parent::getSettings();
}
}