ParagraphsSummaryFormatter.php in Paragraphs 8
File
src/Plugin/Field/FieldFormatter/ParagraphsSummaryFormatter.php
View source
<?php
namespace Drupal\paragraphs\Plugin\Field\FieldFormatter;
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\Plugin\Field\FieldFormatter\EntityReferenceFormatterBase;
use Drupal\paragraphs\ParagraphInterface;
class ParagraphsSummaryFormatter extends EntityReferenceFormatterBase {
public function viewElements(FieldItemListInterface $items, $langcode) {
$elements = [];
foreach ($this
->getEntitiesToView($items, $langcode) as $delta => $entity) {
if ($entity
->id()) {
$elements[$delta] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'paragraph-formatter',
],
],
];
$elements[$delta]['info'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'paragraph-info',
],
],
];
$elements[$delta]['info'] += $entity
->getIcons();
$elements[$delta]['summary'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'paragraph-summary',
],
],
];
$elements[$delta]['summary']['description'] = [
'#theme' => 'paragraphs_summary',
'#summary' => $entity
->getSummaryItems(),
];
}
}
$elements['#attached']['library'][] = 'paragraphs/drupal.paragraphs.formatter';
return $elements;
}
public static function isApplicable(FieldDefinitionInterface $field_definition) {
$target_type = $field_definition
->getSetting('target_type');
$paragraph_type = \Drupal::entityTypeManager()
->getDefinition($target_type);
if ($paragraph_type) {
return $paragraph_type
->entityClassImplements(ParagraphInterface::class);
}
return FALSE;
}
}