DescriptionAwareFileFormatterBase.php

Same filename and directory in other branches
  1. 8.9.x core/modules/file/src/Plugin/Field/FieldFormatter/DescriptionAwareFileFormatterBase.php
  2. 10 core/modules/file/src/Plugin/Field/FieldFormatter/DescriptionAwareFileFormatterBase.php
  3. 11.x core/modules/file/src/Plugin/Field/FieldFormatter/DescriptionAwareFileFormatterBase.php

Namespace

Drupal\file\Plugin\Field\FieldFormatter

File

core/modules/file/src/Plugin/Field/FieldFormatter/DescriptionAwareFileFormatterBase.php

View source
<?php

namespace Drupal\file\Plugin\Field\FieldFormatter;

use Drupal\Core\Form\FormStateInterface;

/**
 * Base class for file formatters that have to deal with file descriptions.
 */
abstract class DescriptionAwareFileFormatterBase extends FileFormatterBase {
    
    /**
     * {@inheritdoc}
     */
    public static function defaultSettings() {
        $settings = parent::defaultSettings();
        $settings['use_description_as_link_text'] = TRUE;
        return $settings;
    }
    
    /**
     * {@inheritdoc}
     */
    public function settingsForm(array $form, FormStateInterface $form_state) {
        $form = parent::settingsForm($form, $form_state);
        $form['use_description_as_link_text'] = [
            '#title' => $this->t('Use description as link text'),
            '#description' => $this->t('Replace the file name by its description when available'),
            '#type' => 'checkbox',
            '#default_value' => $this->getSetting('use_description_as_link_text'),
        ];
        return $form;
    }
    
    /**
     * {@inheritdoc}
     */
    public function settingsSummary() {
        $summary = parent::settingsSummary();
        if ($this->getSetting('use_description_as_link_text')) {
            $summary[] = $this->t('Use description as link text');
        }
        return $summary;
    }

}

Classes

Title Deprecated Summary
DescriptionAwareFileFormatterBase Base class for file formatters that have to deal with file descriptions.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.