2009-10-30 3 views
2

우리는 Drupal에 매우 풍부한 콘텐츠 사이트를 구축하고 있습니다. 그것으로 일하는 것은 처음입니다. 이 사이트에는 다양한 레이아웃이있는 다양한 섹션이 있습니다. phptemplate_preprocess_page() 메소드를 통해 page.tpl.php를 결정할 계획입니다.Drupal 지역 및보기를 올바르게 이해하고 있습니까?

제 질문은 지정된 페이지에서 보조 콘텐츠의 다른 청크를 두는 위치를 지정하는 가장 좋은 방법입니다. 우리는 여러 개의 작은 목록이나 이미지 그룹을 가진 많은 사이드 바형 구성 요소를 가지고 있습니다. 가장 좋은 방법은 필요에 따라 여러 영역을 정의하고 뷰 모듈을 사용하여 이러한 영역에 사용자 정의보기를 놓는 것입니다. 그것은 합리적으로 보입니까?

업데이트 :

쿼리로 조회 치료에 대해서 - 저를보기도 모양을 수정할 수있는 옵션을 가지고있다 혼란 무엇인지. View에서 노드 배열을 다시 얻을 수 있다면 형식화 된 태그 대신 PHP로 데이터를 조작 할 수 있으면 좋을 것 같습니다. 그게 가능하니?

+0

템플릿에 블록 영역을 출력하지 않더라도 블록 영역이 계속 생성되어 성능이 저하 될 수 있습니다. 표시 규칙을 사용하여 블록이 페이지에서 실제로 사용되는 경우에만 처리되도록하십시오. – gapple

+0

@ D.Pfeffer : 결과를 렌더링하지 않고 뷰를 실행하는 방법은 http://drupal.org/node/342132 –

+2

을 참조하십시오. 많은 사람들이 그것을 알아 채지 않을 것이므로 이미 대답 한 질문입니다. 이와 같은 경우에 새로운 질문을해야합니다. –

답변

3

Rishavs (정답) 답변을 약간 확장하기 위해 블록은 영역을 채우기위한 '표준'요소입니다. page.tpl.php의 영역은 광범위하고 일반적인 레이아웃 (예 : 머리글, 일부 열/옆면 및 바닥 글 - 필요한 것)을 정의합니다. 한 지역 내에서 한 가지 (예 :보기)를 배치 할 수 있지만 일반적으로 여러 블록의 형태로 배치합니다. 영역에 나타나는 순서는 블록 가중치에 의해 결정됩니다.

블록을 '기본'뷰 정의에 추가하여 뷰 모듈에서 직접 블록을 생성 할 수 있습니다. 또한 정의한 모든 메뉴를 블록으로 사용할 수 있습니다. 커스텀 모듈 내에서 자신 만의 블록을 생성하는 것도 꽤나 간단합니다. 그 내용을 완전히 제어 할 수 있습니다 (hook_block() 참조). 그런 식으로, 예를 들어, 폼을 블록에 넣을 수 있습니다 (표준 Drupal 설치의 로그인 블록이 이에 대한 예입니다).

3

예, 사용자 정의 영역을 사용하고 사용자 정의보기를 해당 영역에 드롭 할 수 있습니다.

사용자 정의 블록 작성 및보기를 사용할 수도 있습니다.

레이아웃의 구조에 따라 다릅니다.

1

보기 (내용 목록)는 데이터베이스 쿼리입니다. 지역은 페이지의 영역입니다 (왼쪽 사이드 바, 꼬리말 등). 지역은 페이지 템플리트 (tpl.php)에 지정되며 사용중인 테마에 따라 달라집니다. 일반적으로 보조 콘텐츠 (보기를 포함하되 이에 국한되지는 않음)는 블록을 통해 배치됩니다. 블록이 영역에 할당되면 블록이 표시됩니다 ("오른쪽 사이드 바"의 "새 사용자"). 또한보기를 페이지 템플리트에 임베드 할 수도 있습니다 (영역 외부에 있음).

+0

NonProfit, 귀하의 설명과 관련하여 제 질문이 업데이트되었습니다. 감사. –

+0

안녕 D. 페이퍼 (D D. Pfeffer), http://drupal.org/project/devel 인트로 비디오 (http://drupal.org/files/videocasts/moshe-theme-developer.mov)를 살펴 보시기 바랍니다. 드루팔 (Drupal의 방화범처럼.페이지의 요소 위로 마우스를 가져 가면이 모듈은 템플릿을 전달한 함수뿐만 아니라 전달 된 템플릿 (재정의 할 가능성이있는 템플릿)을 제공합니다. 또한 전달 된 함수 인수와 그 값을 제공합니다. – NonProfit