DepCalcExcludeLingotekContentMetadataSubscriber.php in Lingotek Translation 3.6.x        
                          
                  
                        
  
  
  
  
File
  src/EventSubscriber/DepCalcExcludeLingotekContentMetadataSubscriber.php
  
    View source  
  <?php
namespace Drupal\lingotek\EventSubscriber;
use Drupal\Core\Field\FieldItemListInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Drupal\depcalc\Event\FilterDependencyCalculationFieldsEvent;
class DepCalcExcludeLingotekContentMetadataSubscriber implements EventSubscriberInterface {
  
  public static function getSubscribedEvents() {
    
    $events['depcalc_filter_fields'][] = [
      'onFilterFields',
      1002,
    ];
    return $events;
  }
  
  public function onFilterFields(FilterDependencyCalculationFieldsEvent $event) {
    $fields = array_filter($event
      ->getFields(), function ($field) {
      return $this
        ->includeField($field);
    }, ARRAY_FILTER_USE_BOTH);
    $event
      ->setFields(...$fields);
  }
  
  protected function includeField(FieldItemListInterface $field) {
    $definition = $field
      ->getFieldDefinition();
    if ($definition
      ->getType() === 'entity_reference' && $field
      ->getSetting('target_type') === 'lingotek_content_metadata') {
      return FALSE;
    }
    return TRUE;
  }
}