
| Current Path : /var/www/html/rocksensor/web/modules/contrib/metatag/src/Plugin/diff/Field/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/rocksensor/web/modules/contrib/metatag/src/Plugin/diff/Field/MetatagFieldBuilder.php |
<?php
namespace Drupal\metatag\Plugin\diff\Field;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\diff\FieldDiffBuilderBase;
/**
* Plugin to diff metatag fields.
*
* @FieldDiffBuilder(
* id = "metatag_field_diff_builder",
* label = @Translation("Metatag Field Diff"),
* field_types = {
* "metatag"
* },
* )
*/
class MetatagFieldBuilder extends FieldDiffBuilderBase {
/**
* {@inheritdoc}
*/
public function build(FieldItemListInterface $field_items): mixed {
$result = [];
// Every item from $field_items is of type FieldItemInterface.
foreach ($field_items as $field_key => $field_item) {
if (!$field_item->isEmpty()) {
$values = $field_item->getValue();
if (isset($values['value'])) {
// Metatag data store as serialize string.
$metatag_data = metatag_data_decode($values['value']);
foreach ($metatag_data as $value) {
$result[$field_key][] = (string) $value;
}
}
}
}
return $result;
}
}