mutual_credit-5.0.x-dev/modules/bursers/src/Plugin/Field/FieldType/BurserReferenceFieldItemList.php

modules/bursers/src/Plugin/Field/FieldType/BurserReferenceFieldItemList.php
<?php

namespace Drupal\mcapi_bursers\Plugin\Field\FieldType;

use Drupal\Core\Field\EntityReferenceFieldItemList;

/**
 * Represents a Burser reference field list
 */
class BurserReferenceFieldItemList extends EntityReferenceFieldItemList {

  /**
   * {@inheritdoc}
   * Ensure the list excludes wallet owner and duplicates.
   */
  public function setValue($values, $notify = TRUE) {
    parent::setValue($values, $notify);
    $holder = $this->getEntity()->getHolder();
    $owner_id = ($holder->getEntityTypeId() == 'user') ? $holder->id() : $holder->getOwnerId();
    $already[] = $owner_id;
    foreach ($this->list as $delta => $item) {
      if (in_array($item->target_id, $already)) {
        unset($this->list[$delta]);
        $this->list = array_values($this->list);
      }
      $already[] = $item->target_id;
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc