문제

Drupal API가 있습니다 drupal_get_path($type, $name) 특정 테마 나 모듈의 경로를 제공합니다. 현재 테마의 경로를 원한다면 어떻게해야합니까?

도움이 되었습니까?

해결책

사용 path_to_theme 기능.

다른 팁

이것은 작동해야합니다 (문서):

global $theme;
$path = drupal_get_path('theme', $theme);

// there's also a $theme_path global

global $theme_path;

d6 path_to_theme ()은 사용 방법에 따라 기대하는 방식으로 작동하지 않을 수 있습니다. 테마 외부에서 사용하는 경우 전처리 기능을 사용하는 경우 아마도 원하는 것을 줄 것입니다. 그러나 모듈의 테마/사전 프로세스 후크 기능의 컨텍스트 내에서 호출되는 경우 모듈 경로를 지적합니다. 테마를 선언했습니다.

전. "my_theme"과 내 모듈 "my_module"이있는 경우, 전처리 후크를 사용하여 포럼 테마를 무시하고 내 모듈 내에서 path_to_theme ()을 호출하는 "my_module_preprocess_forums () ..."my_theme ","my_theme ","my_theme "을 반환합니다. "기대할 수있는대로.

당신이 나에게 물어 보면 아주 과일.

Drupal 7에서는 현재 테마의 경로를 얻으려면 다음을 사용할 수 있습니다.path_to_theme () 기능.

드 루팔 8에서

global $base_url;
$theme = \Drupal::theme()->getActiveTheme();
$image_url = $base_url.'/'. $theme->getPath() .'/images/image.jpg';

Drupal 5에서는 간단히 사용할 수 있습니다 : path_to_theme ()

이렇게하면 Drupal의 루트에서 특정 테마 디렉토리까지의 완전한 경로가 제공됩니다. 주의해서, 그것은 후행 슬래시가 포함되어 있지 않습니다.

Drupal 6에서 이것은 조금 다르게 행동합니다. 페이지 내에서 호출하면 현재 테마이든 모듈 등에 관계없이 현재 테마를하고있는 모든 것을 호출합니다. API 문서의 주요 인용문은 다음과 같습니다.

활성 테마 또는 테마 구현을 처리하는 모듈을 가리킬 수 있습니다. 예를 들어, 테마 호출 범위 내에서 호출되면 테마 기능이 처리되는 위치에 따라 다릅니다. 모듈에서 구현 된 경우 모듈을 가리 킵니다. 활성 테마에서 구현되면 활성 테마를 가리 킵니다. 테마 콜의 범위 밖에서 호출되면 항상 활성 테마를 가리 킵니다.

원천: http://api.drupal.org/api/function/path_to_theme

D8의 경우 테마 폴더는 전처리 함수로 제공됩니다.

function hook_preprocess_page(&$variables) {
  $variables['some_logo_file'] = "/{$variables['theme']['path']}/images/logo.png";
}

page.html.twig :

<img src="{{ logo_src }}">
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top