2010-07-19 5 views
3

모듈 컨텍스트 내에서 현재 사용자가로드 할 테마를 어떻게 결정할 수 있습니까?현재 Drupal 테마를 검색 하시겠습니까?

drupal_get_path 
path_to_theme 

테마의 template.php에서만 작동하는 것으로 보이지 않으므로이 두 가지가 좋지 않습니다.

답변

3

사용자가 테마를 스스로 선택할 수있는 경우 선택한 테마는 $user->theme에 저장되며 여기에서 $user은 사용자 개체입니다. 모듈이 사용자 지정 테마를 설정 한 경우 전역 변수 $custom_theme에 현재 설정된 테마의 이름이 포함됩니다. -가에 따라 달라

global $custom_theme, $theme, $user; 

if (!empty($user->theme)) { 
    $current_theme = $user->theme; 
} 
elseif (!empty($custom_theme)) { 
    $current_theme = $custom_theme; 
} 
else { 
    $current_theme = $theme ? $theme : variable_get('theme_default', 'garland'); 
} 
1

path_to_theme은 정상적으로 작동하며 두 번의 Drupal 설치에서 테스트를 수행했으며 두 가지 모두 작동했습니다. 테마가 아직 초기화되지 않은 경우, path_to_theme이 수행합니다. Drupal이 내부적으로 찾고있는 변수 인 $theme_path과 같은 다른 글로벌 테마 변수를 설정하는 데 사용됩니다.

+0

흠, 내가 아니, 며칠 전 – Kevin

+0

@googletorp을 시도 할 때 나에게 모듈 경로를 주었다

다음 코드는 $current_theme에서 현재 사용중인 테마의 이름을 저장 path_to_theme()가 호출 될 때 범위. 문서 호출 :> 테마 호출 범위 내에서 호출 된 경우 theming 함수가 처리되는 >에 따라 달라집니다. 모듈에서 구현 된 경우 > 모듈을 가리 킵니다. 활성 테마에서 구현 된 경우 >이 활성 테마를 가리 킵니다.> 출처 : [Drupal API] (http://api.drupal.org/api/drupal/includes!theme.inc/function/path_to_theme/6) –

관련 문제