diff --git a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php index 98323fa..29dec18 100644 --- a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php +++ b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php @@ -8,8 +8,6 @@ namespace Drupal\image\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Link; use Drupal\Core\Url; use Drupal\Core\Cache\Cache; @@ -29,82 +27,6 @@ class ImageFormatter extends ImageFormatterBase { /** * {@inheritdoc} */ - public static function defaultSettings() { - return array( - 'image_style' => '', - 'image_link' => '', - ) + parent::defaultSettings(); - } - - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, FormStateInterface $form_state) { - $image_styles = image_style_options(FALSE); - $description_link = Link::fromTextAndUrl( - $this->t('Configure Image Styles'), - Url::fromRoute('entity.image_style.collection') - ); - $element['image_style'] = [ - '#title' => t('Image style'), - '#type' => 'select', - '#default_value' => $this->getSetting('image_style'), - '#empty_option' => t('None (original image)'), - '#options' => $image_styles, - '#description' => $description_link->toRenderable() + [ - '#access' => $this->currentUser->hasPermission('administer image styles') - ], - ]; - $link_types = array( - 'content' => t('Content'), - 'file' => t('File'), - ); - $element['image_link'] = array( - '#title' => t('Link image to'), - '#type' => 'select', - '#default_value' => $this->getSetting('image_link'), - '#empty_option' => t('Nothing'), - '#options' => $link_types, - ); - - return $element; - } - - /** - * {@inheritdoc} - */ - public function settingsSummary() { - $summary = array(); - - $image_styles = image_style_options(FALSE); - // Unset possible 'No defined styles' option. - unset($image_styles['']); - // Styles could be lost because of enabled/disabled modules that defines - // their styles in code. - $image_style_setting = $this->getSetting('image_style'); - if (isset($image_styles[$image_style_setting])) { - $summary[] = t('Image style: @style', array('@style' => $image_styles[$image_style_setting])); - } - else { - $summary[] = t('Original image'); - } - - $link_types = array( - 'content' => t('Linked to content'), - 'file' => t('Linked to file'), - ); - // Display this setting only if image is linked. - $image_link_setting = $this->getSetting('image_link'); - if (isset($link_types[$image_link_setting])) { - $summary[] = $link_types[$image_link_setting]; - } - - return $summary; - } - - /** - * {@inheritdoc} - */ public function viewElements(FieldItemListInterface $items, $langcode) { $elements = array(); /** @var \Drupal\file\Entity\File[] $files */ diff --git a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php index d11ff4d..72c7721 100644 --- a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php +++ b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php @@ -10,8 +10,11 @@ use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Field\EntityReferenceFieldItemListInterface; use Drupal\Core\Field\FieldDefinitionInterface; +use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Link; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Session\AccountInterface; +use Drupal\Core\Url; use Drupal\field\FieldConfigInterface; use Drupal\file\Plugin\Field\FieldFormatter\FileFormatterBase; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -78,6 +81,83 @@ public static function create(ContainerInterface $container, array $configuratio ); } + + /** + * {@inheritdoc} + */ + public static function defaultSettings() { + return array( + 'image_style' => '', + 'image_link' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public function settingsForm(array $form, FormStateInterface $form_state) { + $image_styles = image_style_options(FALSE); + $description_link = Link::fromTextAndUrl( + $this->t('Configure Image Styles'), + Url::fromRoute('entity.image_style.collection') + ); + $element['image_style'] = [ + '#title' => t('Image style'), + '#type' => 'select', + '#default_value' => $this->getSetting('image_style'), + '#empty_option' => t('None (original image)'), + '#options' => $image_styles, + '#description' => $description_link->toRenderable() + [ + '#access' => $this->currentUser->hasPermission('administer image styles') + ], + ]; + $link_types = array( + 'content' => t('Content'), + 'file' => t('File'), + ); + $element['image_link'] = array( + '#title' => t('Link image to'), + '#type' => 'select', + '#default_value' => $this->getSetting('image_link'), + '#empty_option' => t('Nothing'), + '#options' => $link_types, + ); + + return $element; + } + + /** + * {@inheritdoc} + */ + public function settingsSummary() { + $summary = array(); + + $image_styles = image_style_options(FALSE); + // Unset possible 'No defined styles' option. + unset($image_styles['']); + // Styles could be lost because of enabled/disabled modules that defines + // their styles in code. + $image_style_setting = $this->getSetting('image_style'); + if (isset($image_styles[$image_style_setting])) { + $summary[] = t('Image style: @style', array('@style' => $image_styles[$image_style_setting])); + } + else { + $summary[] = t('Original image'); + } + + $link_types = array( + 'content' => t('Linked to content'), + 'file' => t('Linked to file'), + ); + // Display this setting only if image is linked. + $image_link_setting = $this->getSetting('image_link'); + if (isset($link_types[$image_link_setting])) { + $summary[] = $link_types[$image_link_setting]; + } + + return $summary; + } + /** * {@inheritdoc} */ diff --git a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageUrlFormatter.php b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageUrlFormatter.php index c5b4560..06ab823 100644 --- a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageUrlFormatter.php +++ b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageUrlFormatter.php @@ -1,12 +1,11 @@