abstract class Field in Display Suite 8.4
Same name and namespace in other branches
- 8.2 src/Plugin/DsField/Field.php \Drupal\ds\Plugin\DsField\Field
- 8.3 src/Plugin/DsField/Field.php \Drupal\ds\Plugin\DsField\Field
The base plugin to create DS fields.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\ds\Plugin\DsField\DsFieldBase implements ConfigurableInterface, DependentPluginInterface, DsFieldInterface
- class \Drupal\ds\Plugin\DsField\Field
- class \Drupal\ds\Plugin\DsField\DsFieldBase implements ConfigurableInterface, DependentPluginInterface, DsFieldInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Field
3 files declare their use of Field
- CommentAuthor.php in src/
Plugin/ DsField/ Comment/ CommentAuthor.php - CommentTitle.php in src/
Plugin/ DsField/ Comment/ CommentTitle.php - UserMail.php in src/
Plugin/ DsField/ User/ UserMail.php
2 string references to 'Field'
- ds_field_ui_regions in includes/
field_ui.inc - Add Regions to 'Manage fields' or 'Manage display' screen.
- _ds_field_ui_fields in includes/
field_ui.inc - Add the fields to the Field UI form.
File
- src/
Plugin/ DsField/ Field.php, line 11
Namespace
Drupal\ds\Plugin\DsFieldView source
abstract class Field extends DsFieldBase {
/**
* {@inheritdoc}
*/
public function build() {
$config = $this
->getConfiguration();
// Initialize output.
$output = '';
// Basic string.
$entity_render_key = $this
->entityRenderKey();
if (isset($config['link text'])) {
$output = $this
->t($config['link text']);
}
elseif (!empty($entity_render_key) && isset($this
->entity()->{$entity_render_key})) {
if ($this
->getEntityTypeId() == 'user' && $entity_render_key == 'name') {
$output = $this
->entity()
->getAccountName();
}
else {
$output = $this
->entity()->{$entity_render_key}->value;
}
}
if (empty($output)) {
return [];
}
$template = <<<TWIG
{% if wrapper %}
<{{ wrapper }}{{ attributes }}>
{% endif %}
{% if is_link %}
{{ link(output, entity_url, link_attributes) }}
{% else %}
{{ output }}
{% endif %}
{% if wrapper %}
</{{ wrapper }}>
{% endif %}
TWIG;
// Sometimes it can be impossible to make a link to the entity, because it
// has no id as it has not yet been saved, e.g. when previewing an unsaved
// inline entity form.
$is_link = FALSE;
$entity_url = NULL;
if (!empty($this
->entity()
->id())) {
$is_link = !empty($config['link']) || !empty($config['mail_link']);
if (!empty($config['mail_link'])) {
$entity_url = Url::fromUri('mailto:' . $output);
}
else {
$entity_url = $this
->entity()
->toUrl();
}
if (!empty($config['link class'])) {
$entity_url
->setOption('attributes', [
'class' => explode(' ', $config['link class']),
]);
}
}
// Build the attributes.
$attributes = new Attribute();
if (!empty($config['class'])) {
$attributes
->addClass($config['class']);
}
// Build the link attributes.
$link_attributes = new Attribute();
if (!empty($config['link']) && !empty($config['link class'])) {
$link_attributes
->addClass($config['link class']);
}
return [
'#type' => 'inline_template',
'#template' => $template,
'#context' => [
'is_link' => $is_link,
'wrapper' => !empty($config['wrapper']) ? $config['wrapper'] : '',
'attributes' => $attributes,
'link_attributes' => $link_attributes,
'entity_url' => $entity_url,
'output' => $output,
],
];
}
/**
* Returns the entity render key for this field.
*/
protected function entityRenderKey() {
return '';
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DsFieldBase:: |
public | function |
Gets the current bundle. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
DsFieldBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
7 |
DsFieldBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
5 |
DsFieldBase:: |
public | function |
Gets the current entity. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Returns a list of possible formatters for this field. Overrides DsFieldInterface:: |
3 |
DsFieldBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
1 |
DsFieldBase:: |
public | function |
Gets the current entity type. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Gets the field configuration. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Gets the field name. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Returns the title of the field. Overrides DsFieldInterface:: |
1 |
DsFieldBase:: |
public | function |
Returns if the field is allowed on the field UI screen. Overrides DsFieldInterface:: |
3 |
DsFieldBase:: |
public | function |
Defines if we are dealing with a multivalue field. Overrides DsFieldInterface:: |
1 |
DsFieldBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
1 |
DsFieldBase:: |
public | function |
The form that holds the settings for this plugin. Overrides DsFieldInterface:: |
7 |
DsFieldBase:: |
public | function |
Returns the summary of the chosen settings. Overrides DsFieldInterface:: |
7 |
DsFieldBase:: |
public | function |
Gets the view mode. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
8 |
Field:: |
public | function |
Renders a field. Overrides DsFieldBase:: |
|
Field:: |
protected | function | Returns the entity render key for this field. | 4 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |