DefaultMenuLinkContentReferenceHandler.php in CMS Content Sync 8
File
src/Plugin/cms_content_sync/field_handler/DefaultMenuLinkContentReferenceHandler.php
View source
<?php
namespace Drupal\cms_content_sync\Plugin\cms_content_sync\field_handler;
use Drupal\Core\Field\FieldDefinitionInterface;
class DefaultMenuLinkContentReferenceHandler extends DefaultEntityReferenceHandler {
public static function supports($entity_type, $bundle, $field_name, FieldDefinitionInterface $field) {
return 'menu_link_content' == $entity_type && 'parent' == $field_name;
}
protected function forcePushingReferencedEntities() {
return true;
}
protected function loadReferencedEntityFromFieldValue($value) {
if (empty($value) || empty($value['value'])) {
return null;
}
list($entity_type, $uuid) = explode(':', $value['value']);
if ('menu_link_content' != $entity_type || empty($uuid)) {
return null;
}
return \Drupal::service('entity.repository')
->loadEntityByUuid('menu_link_content', $uuid);
}
protected function getFieldValuesForReference($reference, $intent) {
return 'menu_link_content:' . $reference
->uuid();
}
protected function getReferencedEntityTypes() {
return [
'menu_link_content',
];
}
}