드루팔 7 강좌 | Content Type 별로 다르게 디자인하는 방법

드루팔(Drupal)에는 Content Type 기능이 있어서, 입출력되는 내용이 다른 여러 글형식을 만들 수 있습니다. 하지만 어떤 글 형식이어도 같은 모양을 나옵니다.

글 형식에 따라 다른 모양으로 나오게 하려면 템플릿 파일을 만들어야 하는데, 방법은 두가지입니다.

node--[type].tpl.php

[type]에는 Content Type의 Machine Name을 입력합니다. 예를 들어 Machine Name이 xyz라면

node--xyz.tpl.php

와 같이 만들면 됩니다.

이 파일은 node.tpl.php의 변형이므로 본문 출력과 관련된 내용만 들어가고, 본문 영역만 디자인 할 수 있습니다. 즉, 전체적인 레이아웃을 변형할 수는 없습니다.

page--[type].tpl.php

전체적인 레이아웃도 바꾸기 위해서는 page--[type].tpl.php를 만듭니다. 예를 들어 Machine Name이 xyz라면

page--xyz.tpl.php

를 만들면 됩니다.

단, 이 템플릿 파일이 적용되게 하려면 template.php에 다음의 코드를 넣어야 합니다.

function THEME_preprocess_page(&$vars, $hook) {
  if (isset($vars['node']->type)) {
    // If the content type's machine name is "my_machine_name" the file
    // name will be "page--my-machine-name.tpl.php".
    $vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
  }
}

THEME은 사용하는 테마의 이름으로 바꿉니다.

Category

Created on 2014-07-15 10:18 | Updated on 2018-10-06 12:05

Book