custom_elements-8.x-2.x-dev/src/CustomElementsEntityViewDisplayTrait.php

src/CustomElementsEntityViewDisplayTrait.php
<?php

namespace Drupal\custom_elements;

/**
 * Trait for custom elements view displays.
 */
trait CustomElementsEntityViewDisplayTrait {

  use CustomElementGeneratorTrait;

  /**
   * Builds entities using custom elements.
   *
   * @param array[] $build_list
   *   The build list.
   * @param \Drupal\Core\Entity\EntityInterface[] $entities
   *   The entities.
   */
  public function buildMultipleViaCustomElements(array &$build_list, array $entities) {
    $custom_elements = $this->getCustomElementGenerator()->generateMultiple($entities, $this->originalMode);
    foreach ($entities as $id => $entity) {
      if (!isset($custom_elements[$id])) {
        continue;
      }
      // We cannot take over #theme, since we cannot override existing build
      // defaults. Thus it'S done via custom_elements_entity_view_alter() later
      // on.
      $build = &$build_list[$id];
      $build['#custom_elements_enabled'] = TRUE;
      $build['#entity_type_id'] = $entity->getEntityTypeId();
      // This is already there by default, but write again to enforce it.
      $build['#' . $entity->getEntityTypeId()] = $entity;
      $build['#view_mode'] = $this->originalMode;
      $build['#custom_element'] = $custom_elements[$id];
    }
  }

}

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

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