드루팔 7 강좌 | 테마 제작과 관련된 정보들

드루팔(Drupal) 7 테마를 만들 때 유용한 정보를 메모합니다.

테마 폴더 이름과 info 파일 이름은 달라도 된다.

보통 테마 폴더 이름과 info 파일 이름은 같습니다. 하지만 꼭 같아야 하는 것은 아닙니다. 폴더 이름은 abc, info 파일 이름은 xyz여도 상관없습니다.

info 파일 이름은 고유해야 한다.

드루팔이 인식하는 테마 이름은 info 파일 이름입니다. 예를 들어 abc.info라면 abc가 테마 이름입니다. 이 이름은 고유해야 합니다. 다른 테마에서 abc.info를 사용한다면 이상한 일이 발생합니다.

info 파일 이름에 '-'를 사용하면 안된다.

'-'를 사용하면 테마를 인식하지 못합니다. 대신 '_'는 사용해도 됩니다.

원인을 알 수 없는 오류가 생긴다면 info 파일의 이름을 바꿔보자.

테마를 만들고 나니 특정 조건에 따라 Block을 출력하는 기능이 제대로 작동하지 않았습니다. 그런데 info 파일의 이름을 변경하니 해결되었습니다.

region을 만들 때 공백이 없어야 한다.

region의 이름은 대괄호 안에 넣습니다. 이 때 공백이 있으면 인식하지 못합니다. 예를 들어

regions[ jb-menu ] = Menu

는 인식하지 못하고

regions[jb-menu] = Menu

는 인식합니다.

CSS 제거하는 방법

드루팔 시스템이나 모듈에서 사용하는 CSS를 제거하려면 template.php 파일에 코드를 추가하면 됩니다. 예를 들어 메뉴와 관련된 CSS를 제거하려면 다음과 같은 코드를 추가합니다.

function themename_css_alter( &$css ) {
  unset( $css[ drupal_get_path('module', 'system') . '/system.menus.css' ] );
}

테마 옵션 만드는 방법

테마 옵션은 theme-settings.php로 만듭니다. 다음은 간단한 예입니다.

<?php
  function themename_form_system_theme_settings_alter( &$form, $form_state ) {
    $form[ 'jb_settings' ] = array(
      '#type'           => 'fieldset',
      '#title'          => t( 'SNS Settings' ),
      '#collapsible'    => false,
      '#collapsed'      => false,
    );
    $form[ 'jb_settings' ][ 'jb_facebook_url' ] = array(
      '#type'           => 'textfield',
      '#title'          => t( 'Facebook URL' ),
      '#default_value'  => theme_get_setting( 'jb_facebook_url' ),
    );
    $form[ 'jb_settings' ][ 'jb_google_plus_url' ] = array(
      '#type'           => 'textfield',
      '#title'          => t( 'Google Plus URL' ),
      '#default_value'  => theme_get_setting( 'jb_google_plus_url' ),
    );
    $form[ 'jb_settings' ][ 'jb_color' ] = array(
      '#type'           => 'select',
      '#title'          => t( 'Choose Color' ),
      '#options'        => array( 0 => t( 'Black' ), 1 => t( 'Blue' ), 2 => t( 'Red' ) ),
      '#default_value'  => theme_get_setting( 'jb_color' ),
    );
  }
?>

기본값은 info 파일에 만듭니다. 예를 들어 jb_color의 기본값을 0으로 하려면

settings[jb_color] = 0

를 추가합니다.

Category

Created on 2015-05-24 21:22 | Updated on 2018-10-06 11:32

Book

워드프레스 인기 테마