Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 7 |
CRAP | |
0.00% |
0 / 45 |
| FormatterBase | |
0.00% |
0 / 1 |
|
12.50% |
1 / 8 |
110 | |
0.00% |
0 / 45 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 7 |
|||
| view | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 28 |
|||
| settingsForm | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| settingsSummary | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| prepareView | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| getFieldSettings | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getFieldSetting | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| isApplicable | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Field\FormatterBase. | |
| */ | |
| namespace Drupal\Core\Field; | |
| use Drupal\Core\Form\FormStateInterface; | |
| use Drupal\Core\Language\LanguageInterface; | |
| use Drupal\Core\Render\Element; | |
| /** | |
| * Base class for 'Field formatter' plugin implementations. | |
| * | |
| * @ingroup field_formatter | |
| */ | |
| abstract class FormatterBase extends PluginSettingsBase implements FormatterInterface { | |
| /** | |
| * The field definition. | |
| * | |
| * @var \Drupal\Core\Field\FieldDefinitionInterface | |
| */ | |
| protected $fieldDefinition; | |
| /** | |
| * The formatter settings. | |
| * | |
| * @var array | |
| */ | |
| protected $settings; | |
| /** | |
| * The label display setting. | |
| * | |
| * @var string | |
| */ | |
| protected $label; | |
| /** | |
| * The view mode. | |
| * | |
| * @var string | |
| */ | |
| protected $viewMode; | |
| /** | |
| * Constructs a FormatterBase object. | |
| * | |
| * @param string $plugin_id | |
| * The plugin_id for the formatter. | |
| * @param mixed $plugin_definition | |
| * The plugin implementation definition. | |
| * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition | |
| * The definition of the field to which the formatter is associated. | |
| * @param array $settings | |
| * The formatter settings. | |
| * @param string $label | |
| * The formatter label display setting. | |
| * @param string $view_mode | |
| * The view mode. | |
| * @param array $third_party_settings | |
| * Any third party settings. | |
| */ | |
| public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, array $third_party_settings) { | |
| parent::__construct(array(), $plugin_id, $plugin_definition); | |
| $this->fieldDefinition = $field_definition; | |
| $this->settings = $settings; | |
| $this->label = $label; | |
| $this->viewMode = $view_mode; | |
| $this->thirdPartySettings = $third_party_settings; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function view(FieldItemListInterface $items, $langcode = NULL) { | |
| // Default the language to the current content language. | |
| if (empty($langcode)) { | |
| $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); | |
| } | |
| $elements = $this->viewElements($items, $langcode); | |
| // If there are actual renderable children, use #theme => field, otherwise, | |
| // let access cacheability metadata pass through for correct bubbling. | |
| if (Element::children($elements)) { | |
| $entity = $items->getEntity(); | |
| $entity_type = $entity->getEntityTypeId(); | |
| $field_name = $this->fieldDefinition->getName(); | |
| $info = array( | |
| '#theme' => 'field', | |
| '#title' => $this->fieldDefinition->getLabel(), | |
| '#label_display' => $this->label, | |
| '#view_mode' => $this->viewMode, | |
| '#language' => $items->getLangcode(), | |
| '#field_name' => $field_name, | |
| '#field_type' => $this->fieldDefinition->getType(), | |
| '#field_translatable' => $this->fieldDefinition->isTranslatable(), | |
| '#entity_type' => $entity_type, | |
| '#bundle' => $entity->bundle(), | |
| '#object' => $entity, | |
| '#items' => $items, | |
| '#formatter' => $this->getPluginId(), | |
| '#is_multiple' => $this->fieldDefinition->getFieldStorageDefinition()->isMultiple(), | |
| ); | |
| $elements = array_merge($info, $elements); | |
| } | |
| return $elements; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function settingsForm(array $form, FormStateInterface $form_state) { | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function settingsSummary() { | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function prepareView(array $entities_items) { } | |
| /** | |
| * Returns the array of field settings. | |
| * | |
| * @return array | |
| * The array of settings. | |
| */ | |
| protected function getFieldSettings() { | |
| return $this->fieldDefinition->getSettings(); | |
| } | |
| /** | |
| * Returns the value of a field setting. | |
| * | |
| * @param string $setting_name | |
| * The setting name. | |
| * | |
| * @return mixed | |
| * The setting value. | |
| */ | |
| protected function getFieldSetting($setting_name) { | |
| return $this->fieldDefinition->getSetting($setting_name); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function isApplicable(FieldDefinitionInterface $field_definition) { | |
| // By default, formatters are available for all fields. | |
| return TRUE; | |
| } | |
| } |