You are here

private function DefaultFieldComparator::getComparableProperties in Changed Fields API 8.2

Same name and namespace in other branches
  1. 8.3 src/Plugin/FieldComparator/DefaultFieldComparator.php \Drupal\changed_fields\Plugin\FieldComparator\DefaultFieldComparator::getComparableProperties()
  2. 8 src/Plugin/FieldComparator/DefaultFieldComparator.php \Drupal\changed_fields\Plugin\FieldComparator\DefaultFieldComparator::getComparableProperties()

Method that returns comparable properties for existing field type.

Parameters

FieldDefinitionInterface $fieldDefinition:

Return value

array

1 call to DefaultFieldComparator::getComparableProperties()
DefaultFieldComparator::compareFieldValues in src/Plugin/FieldComparator/DefaultFieldComparator.php
Method that compares old and new field values.

File

src/Plugin/FieldComparator/DefaultFieldComparator.php, line 27
Contains DefaultFieldComparator.php.

Class

DefaultFieldComparator
Plugin annotation @Plugin( id = "default_field_comparator" )

Namespace

Drupal\changed_fields\Plugin\FieldComparator

Code

private function getComparableProperties(FieldDefinitionInterface $fieldDefinition) {
  switch ($fieldDefinition
    ->getType()) {
    case 'string':
    case 'string_long':
    case 'text':
    case 'text_long':
    case 'boolean':
    case 'integer':
    case 'float':
    case 'decimal':
    case 'datetime':
    case 'email':
    case 'list_integer':
    case 'list_float':
    case 'list_string':
    case 'telephone':
      $properties = [
        'value',
      ];
      break;
    case 'text_with_summary':
      $properties = [
        'value',
        'summary',
      ];
      break;
    case 'entity_reference':
      $properties = [
        'target_id',
      ];
      break;
    case 'file':
      $properties = [
        'target_id',
      ];
      if ($fieldDefinition
        ->getSetting('description_field')) {
        $properties[] = 'description';
      }
      break;
    case 'image':
      $properties = [
        'fid',
        'width',
        'height',
        'target_id',
      ];
      if ($fieldDefinition
        ->getSetting('alt_field')) {
        $properties[] = 'alt';
      }
      if ($fieldDefinition
        ->getSetting('title_field')) {
        $properties[] = 'title';
      }
      break;
    case 'link':
      $properties = [
        'uri',
        'title',
      ];
      break;
    default:
      $properties = $this
        ->getDefaultComparableProperties($fieldDefinition);
      break;
  }
  return $this
    ->extendComparableProperties($fieldDefinition, $properties);
}