>

다양한 슬라이드에 대한 참조를 저장하기 위해 "슬라이드"라는 엔터티 참조 개정 필드를 사용하는 콘텐츠 유형 "슬라이더"가 있습니다.이 단락은 프론트 엔드에 영웅 슬라이더로 표시됩니다.

모든 것이 잘 작동하지만 이제 슬라이드 단락에서 부울 표시/숨기기 플래그로 슬라이드를 필터링하라는 요청을 받았습니다. 이러한 각 단락에 부울 필드를 추가하는 것은 간단하지만이를 기반으로 해당 단락을 어떻게 필터링합니까? 함수가 임의의 기준으로 참조 된 엔티티를 필터링 할 수있게 해주는 Drupal 후크를 가정하고 있지만 찾을 수 없었습니다.

이 질문은 타사 모듈과 관련이 있지만 핵심 Drupal 후크 가이 맥락에서 사용될 수 있음을 이해합니다.

어떤 도움이라도 대단히 감사하겠습니다.

감사.


  • 답변 # 1

    기본 EntityReferenceRevisionsEntityFormatter를 확장하거나 단락을 표시하는 데 사용하는 포맷터를 확장하여 새 필드 포맷터를 만들어이 작업을 수행하는 것이 좋습니다. 필드 포맷터를 작성하는 방법을 모르는 경우, d.o에서 사용자 정의 필드 포맷터 작성 문서를 검토하십시오.

    구체적으로, getEntitiesToView() 방법, 이런 식으로 :

    protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode) {
      $entities = parent::getEntitiesToView($items, $langcode);
      $allowed_entities = [];
      foreach($entities as $entity) {
        // Check if your show/hide checkbox is checked.
        // Note: I can't remember if this check is sufficient by itself.
        if (!$entity->my_show_hide_field->isEmpty()) {
          $allowed_entities[] = $entity;
        }
      }
      return $allowed_entities;
    }
    
    

    마지막으로,이 새로운 포맷터를 사용하기 위해 엔티티 참조 개정 필드를 구성해야합니다.

  • 이전 drupal - 다중 사이트에 사이트를 추가하는 방법
  • 다음 drupal - 왜 아무것도하지 않는 하위 테마가 부모 테마를 깨 뜨리나요?