EntityReferenceRevisionsFieldDiffBuilder.php in Entity Reference Revisions 8
File
src/Plugin/diff/Field/EntityReferenceRevisionsFieldDiffBuilder.php
View source
<?php
namespace Drupal\entity_reference_revisions\Plugin\diff\Field;
use Drupal\diff\FieldDiffBuilderBase;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\diff\FieldReferenceInterface;
class EntityReferenceRevisionsFieldDiffBuilder extends FieldDiffBuilderBase implements FieldReferenceInterface {
public function build(FieldItemListInterface $field_items) {
$result_text = array();
$item_counter = 0;
foreach ($field_items as $field_key => $field_item) {
if (!$field_item
->isEmpty() && $field_item->entity) {
$parsed_text = $this->entityParser
->parseEntity($field_item->entity);
if (is_array($parsed_text)) {
foreach ($parsed_text as $field_id => $field) {
foreach ($field as $id => $text) {
$result_text[$item_counter + $id] = $text;
}
$item_counter = $item_counter + $id + 1;
}
}
}
}
return $result_text;
}
public function getEntitiesToDiff(FieldItemListInterface $field_items) {
$entities = [];
foreach ($field_items as $field_key => $field_item) {
if (!$field_item
->isEmpty() && $field_item->entity) {
$entities[$field_key] = $field_item->entity;
}
}
return $entities;
}
}