2011-02-06 3 views
1

나는 사용자 정의 컨텐츠 유형을 사용하여 드루팔 (Drupal)에서 간단한 갤러리를 만들었습니다. 정말 무제한의 항목을 가질 수있는 이미지 필드가있는 기사 일뿐입니다. 이 컨텐츠 유형 (node ​​- gallery.tpl.php)에 대한 사용자 정의 템플리트를 작성했으며 전체 페이지에서 모양과 느낌에 만족합니다.드루팔 (Drupal 7 갤러리 티저

내가 붙어있는 한 가지는 티저에 처음 몇 개의 이미지 만 표시하는 것입니다. 티저에 이미지의 첫 번째 행만 표시하려고합니다 (처음 3 개의 이미지). 템플릿 파일에서 $content['field_images']에는 갤러리의 모든 이미지가 포함되어 있지만 print render($content['field_images']은 모든 이미지를 출력합니다 (예상했던대로).

그래서 Drupal에서 $content['field_images']의 처음 세 항목을 출력하는 방법은 무엇입니까? 개선 된 부분은 렌더링 된 이미지의 수를 줄이는 방법을 알고 있다면 스스로 해결할 수 있다고 확신하지만 Drupal에서 3 개의 임의 이미지를 출력하게하는 방법입니다.

+0

글쎄, 그 변수 내용은 무엇입니까? 연결된 HTML 문자열에 '' 태그가 있습니까? 아니면 배열입니까? – mario

+0

@mario 당신이 묻는다면 당신이 드루팔 (Drupal)을 모르는 것 같아요. $ content [ 'field_images']의 전체 출력으로 질문을 업데이트했습니다. 다소 오랜 시간이 걸립니다. – Endophage

+0

글쎄, 그렇지 않습니다. 제한된 정보를 쉽게 추측 할 수 있지만 가변 덤프는 설명을 명확하게합니다. – mario

답변

1

템플릿에서 이미지 파일 이름이있는 적절한 배열 구조를 찾습니다. $content에서 찾을 수 없으면 $node의 var_dump 출력을보십시오. for 루프를 작성하여 처음 세 항목을 반복하고 각각의 항목에 대해 theme_image()을 호출하거나 사용하려는 이미지 스타일이있는 경우 theme_image_style()을 호출하십시오. 적절한 구성 배열을 배열에서 검색 한 파일 이름을 사용하여 전달하십시오.

+0

그것은 그보다 약간 쉬웠습니다. $ content [ 'field_images'] 안에는 모든 메타 정보 ('#'로 시작하는 요소)와 함께 번호가 매겨진 요소가 있습니다. 번호가 매겨진 요소는 각 이미지와 관련된 전체 노드로 보였으므로 인쇄 렌더링 ($ content [ 'field_images'] [$ i])을 수행하고 원하는 것을 얻을 수있었습니다. 조금 푹신 푹신하다면 거의 당신에게 달려 있습니다. – Endophage

2

var_dump를 반복하거나 배열을 반복하는 대신 devel 모듈을 설치하고 좋은 출력을주는 dpm() 함수를 사용하십시오.

+0

나는 할 수 있었다. 내가 devel 모듈이 D7에 존재하지 않았을 때 나는 D7 alpha 4 이후로 프로젝트 작업을 해왔다. – Endophage