it-swarm-ko.tech

필드의 첫 번째 값만 표시하도록 티저 제한

이미지 필드가있는 콘텐츠 유형이 있습니다. 이 필드는 일반적으로 0에서 4까지의 값으로 채워집니다. 기본적으로이 콘텐츠 유형의 티저는 0-4 개의 이미지를 모두 출력합니다. 티저를 조정하여 첫 번째 이미지 만 표시하려면 어떻게해야합니까?

14
Greg

MODULENAME를 모듈 이름으로 바꾸고 field_image 입력란 이름 :

/**
 * Implements hook_entity_view().
 */
function MODULENAME_entity_view($entity, $type, $view_mode, $langcode) {
  if ($view_mode == 'teaser') {
    $entity->content['field_image']['#items'] = array_slice($entity->content['field_image']['#items'], 0, 1);
  }
}

자세한 내용은 hook_entity_view () 설명서를 참조하십시오.

12
tim.plunkett

사용자 정의 코드를 작성할 필요가 없습니다.

Field multiple limit 모듈을 사용해보십시오.

콘텐츠 유형의 디스플레이 설정으로 이동하여 티저 설정이 특정 양의 값만 표시하도록 구성 할 수 있습니다. 예를 들어 값 2 ~ 5를 표시하려는 경우 골짜기를 건너 뛰도록 할 수도 있습니다.

.

12
rooby

티저 템플릿을 사용하는 경우 (예 : node--CONTENT-TYPE--teaser.tpl.php) 다음과 같이 작동합니다.

  <?php print render($content['IMAGE-FIELD'][0]); ?>
4
nelslynn

Hook_field_extra_fields () 및 hook_node_view ()를 사용하여 원래 이미지 필드를 변경하지 않도록 첫 번째 이미지를 표시하는 새 필드를 작성했습니다.

hook_field_extra_fields ()는 노드 유형의 관리 디스플레이 탭에 나타날 새 필드를 초기화합니다.

function HOOK_field_extra_fields() {
  $extra['node']['NODE_TYPE'] = array(
    'display' => array(
      'primary_image' => array(
        'label' => t('Primary Image'),
        'weight' => 0,
      )
    ),
  );
  return $extra;
}

그런 다음 hook_node_view ()는 새 필드의 내용이 될 첫 번째 이미지를 추가하는 데 사용됩니다.

function HOOK_node_view($node, $view_mode, $langcode) {
  if($node->type == 'NODE_TYPE' && $view_mode == 'teaser') {

    //make sure there are images
    if(!empty($node->field_images)) {
      $node->content['primary_image'] = $node->content['field_images'][0];

      //hide the original field with multiple images
      hide($node->content['field_images']);
    }
  }
}

참고 : 디스플레이 제품군을 활성화 한 경우 디스플레이 관리 탭에서이 작업을 수행 할 수 있습니다.

1
Teegan