Вопрос

API Drupal имеет drupal_get_path($type, $name) который укажет путь к любой конкретной теме или модулю.Что, если мне нужен путь текущей темы?

Это было полезно?

Решение

Используйте path_to_theme . р>

Другие советы

это должно работать ( doc ):

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», как можно было бы ожидать.

Очень фруктовый, если вы спросите меня.

В Drupal 7 для получения пути к текущей теме мы можем использовать: path_to_theme () function.

В Drupal 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 }}">
scroll top