답변:
테마 .info 파일에서 영역을 정의합니다. 참조 : .info 파일의 구조
그런 다음 관련 템플릿 태그를 page.tpl.php 파일에 넣어야합니다.
예를 들어 sidebar
테마 .info 파일에서 영역을 정의한 경우 <?php print render($page['sidebar']); ?>
page.tpl.php의 관련 위치에 다음을 추가 합니다.
다른 요점 : 필요한 지역을 놓치지 마십시오!
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
이에 대한 자세한 내용은 http://drupal.org/update/themes/6/7#closure 에서 찾을 수 있습니다 .
이 시점에서 명확히하려면 : 자신의 지역을 정의하는 경우 필요한 지역을 포함하여 사용중인 모든 지역을 정의해야합니다. 다시 말해, 추가 영역을 정의 할 수는 없습니다. 정의한 영역을 모두 정의해야합니다.
Drupal 7 테마에 대한 영역을 작성하는 것은 Drupal 6 영역에 대한 영역을 작성하는 것과 다르지 않습니다. Drupal 7과 이전 버전의 차이점은 본질적으로 다음과 같습니다.
mytheme_regions()
Drupal 5에서와 같이 함수를 사용하여 정의되지 않지만 regions[]
지시문을 사용하여 mytheme.info에 정의되어 있으며 Drupal 6 테마에서도 수행됩니다.render()
변수의 내용을 인쇄하는 대신 Drupal 함수를 사용하여 렌더링됩니다 .기본 Drupal 7 지역은 다음과 같습니다.
regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer
Drupal 7 핵심 테마에는 이제 Drupal 6의 사명 선언문 영역과 동일한 디스플레이를 사용하는 '강조 표시됨'이라는 영역이 포함됩니다. 또한 기본적 $help
으로 Drupal 6에서 사용 하는 변수 와 동일한 내용을 갖는 'help'라는 영역이 포함됩니다 .
테마 영역은 테마 .info 파일에 정의되어 있습니다 ( 문서 참조) . regions[corner] = Corner
코너 영역을 얻기 위해 라인을 추가하십시오 .
그런 다음 page.tpl.php 파일을 편집 <php print render($corner); ?>
하고 영역을 표시 할 위치를 추가 해야합니다. 테마에 page.tpl.php가없는 경우 기본 테마 또는 시스템 모듈에서 복사하십시오.
일반적인 함정 :
theme.info 파일에 선언 된 영역이없는 경우 Drupal 기본 영역을 사용하고있었습니다. 추가하려면 기본 지역을 다시 선언해야합니다. 물론 모든 지역을 제거 할 수 있지만 필요한 지역을 지원하십시오. 문서를 다시 참조 하십시오.
.info 파일 변경 또는 테마에 새 파일 추가 (예 : page.tpl.php)는 캐시를 지운 후에 만 나타납니다.
매우 인기있는 기본 테마 인 Omega는 .info 파일 만 page.tpl.php를 변경할 필요가 없습니다. 그러나 UI의 테마 설정을 방문하여 지역을 영역에 할당해야합니다.
regions[content] = Content
D7에서 유일하게 필요한 지역은? drupal.org/node/171205#regions는 이를 암시하는 것 같다,하지만 drupal.org/node/171224 필요한 지역은 말한다 content
, help
, page_top
와page_bottom
content
매우 중요합니다. help
은 (도움말 메시지를 출력하기 위해) 코어에서 지원되며 page_bottom
아마도 하단 js가 인쇄되는 곳이며 page_top
코어 툴바와 같은 탐색 막대에 사용되는 것으로 보입니다.
다음 단계에 따라 테마에서 사용자 정의 영역을 작성하십시오.
theme.info 파일로 이동하여이 행을 추가하십시오.
regions[machine_name_of_your_region] = Name of your region
노드 템플릿에서도 영역 블록을 호출 할 수도 있지만 일반적으로 테마의 페이지 템플릿에 영역을 추가합니다. 일반적으로 page.tpl.php이거나 다른 페이지에 대한 사용자 정의 템플릿 파일이있는 경우 해당 파일도 편집하십시오. 새 영역은 새 영역을 추가 한 템플릿 주위에 구축 된 페이지에만 나타납니다. 새 지역을 표시 할 위치에 붙여 넣습니다.
<?php if ($page['machine_name_of_your_region']): ?>
<div id="sidebar-first" class="column sidebar"><div class="section">
<?php print render($page['machine_name_of_your_region']); ?>
</div></div> <!-- /.section, /#sidebar-first -->
<?php endif; ?>
구성-성능-모든 캐시 지우기
두 파일로 정의하면됩니다.
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
이제이 지역을 렌더링
<?php if ($page['new_region']): ?>
<div class="new_region_class">
<?php print render($page['new_region']); ?>
</div>
<?php endif; ?>
이제 모든 캐시를 지 웁니다. 이제 테마에 새로운 지역이 있습니다. 블록 구성 페이지에서 볼 수 있습니다.
자세한 내용은 http://drupal.org/node/171205를 방문 하십시오.