class FieldFormatter in Twig Extender 4.x
Same name and namespace in other branches
- 8.4 modules/twig_extender_extras/src/Plugin/TwigPlugin/FieldFormatter.php \Drupal\twig_extender_extras\Plugin\TwigPlugin\FieldFormatter
- 8.2 modules/twig_extender_extras/src/Plugin/TwigPlugin/FieldFormatter.php \Drupal\twig_extender_extras\Plugin\TwigPlugin\FieldFormatter
- 8.3 modules/twig_extender_extras/src/Plugin/TwigPlugin/FieldFormatter.php \Drupal\twig_extender_extras\Plugin\TwigPlugin\FieldFormatter
The plugin to render a field with a specific formatter.
Plugin annotation
@TwigPlugin(
id = "twig_extender_field_formatter",
label = @Translation("Get a formatted field"),
type = "filter",
name = "view",
function = "getField"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\twig_extender\Plugin\Twig\TwigPluginBase implements TwigExtensionInterface
- class \Drupal\twig_extender_extras\Plugin\TwigPlugin\FieldFormatter
- class \Drupal\twig_extender\Plugin\Twig\TwigPluginBase implements TwigExtensionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of FieldFormatter
File
- modules/
twig_extender_extras/ src/ Plugin/ TwigPlugin/ FieldFormatter.php, line 20
Namespace
Drupal\twig_extender_extras\Plugin\TwigPluginView source
class FieldFormatter extends TwigPluginBase {
/**
* Implementation for render field formatter.
*
* @param \Drupal\Core\Field\FieldItemList $field
* FieldItemList to display with formatter.
* @param string $formatter
* Formatter plugin id to use.
* @param string $label
* Label option for formatter, could be hidden|above|inside.
* @param array $settings
* Settings for formatter plugin.
* @param int $maxItems
* How many items to display.
* @param int $offset
* Offset to start from.
*
* @return array
* Array for rendering.
*/
public function getField(FieldItemList $field, $formatter, $label = 'hidden', array $settings = [], $maxItems = -1, $offset = 0) {
$formatterService = \Drupal::service('plugin.manager.field.formatter');
try {
$plugin = $formatterService
->getDefinition($formatter);
$field_type = $field
->getFieldDefinition()
->getType();
$field_options = $formatterService
->getOptions();
$default_settings = $formatterService
->getDefaultsettings($formatter);
$settings = NestedArray::mergeDeep($default_settings, $settings);
$renderer = \Drupal::service('renderer');
if ($offset > 0) {
if (!$field
->offsetExists($offset)) {
$build = [];
$renderer
->addCacheableDependency($build, $field
->getEntity());
return $build;
}
for ($i = 0; $i < $offset; $i++) {
$field
->removeItem(0);
}
}
if ($maxItems > 0 && $maxItems != $field
->count()) {
$remove = $field
->count() - $maxItems;
for ($i = 0; $i < $remove; $i++) {
$field
->removeItem(1);
}
}
$field_to_view = $field
->view([
'type' => $formatter,
'settings' => $settings,
'label' => $label,
]);
return $field_to_view;
} catch (\Exception $e) {
\Drupal::logger('twig_extender_extras')
->error($e
->getMessage());
throw $e;
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
FieldFormatter:: |
public | function | Implementation for render field formatter. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
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:: |
2 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 98 |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
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. | |
TwigPluginBase:: |
public | function |
Get type of the twig extension. Overrides TwigExtensionInterface:: |
|
TwigPluginBase:: |
public | function |
Get type of the twig extension. Overrides TwigExtensionInterface:: |
|
TwigPluginBase:: |
public | function |
Get type of the twig extension. Overrides TwigExtensionInterface:: |
|
TwigPluginBase:: |
public | function |
Get type of the twig extension. Overrides TwigExtensionInterface:: |