improvements-2.x-dev/modules/improvements_views/src/Plugin/Field/FieldFormatter/ViewsFormatter.php
modules/improvements_views/src/Plugin/Field/FieldFormatter/ViewsFormatter.php
<?php
namespace Drupal\improvements_views\Plugin\Field\FieldFormatter;
use Drupal\Core\Field\Attribute\FieldFormatter;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\FormatterBase;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\improvements_views\Plugin\Field\FieldType\ViewsItem;
#[FieldFormatter(
id: 'views_formatter',
label: new TranslatableMarkup('Views'),
field_types: ['views'],
)]
class ViewsFormatter extends FormatterBase {
/**
* {@inheritDoc}
*/
public function viewElements(FieldItemListInterface $items, $langcode): array {
$build = [];
/** @var ViewsItem $item */
foreach ($items as $delta => $item) {
[$view_id, $view_display_name] = explode(':', $item->value);
$build[$delta] = views_embed_view($view_id, $view_display_name);
}
return $build;
}
}
