Подтвердить что ты не робот

Как мне получить путь к текущей теме drupal?

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

4b9b3361

Ответ 2

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

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

// there also a $theme_path global

global $theme_path;

Ответ 3

В D6 path_to_theme() может не вести себя так, как вы ожидаете, в зависимости от того, как вы его используете. Если вы используете его вне любых функций препроцесса темы, то он, вероятно, даст вам то, что вы хотите, но если он вызывается в контексте функции кулачка/препроцессора модуля... он будет указывать на путь к модулю, который объявила тему.

Ex. Если у меня есть тема "my_theme" и мой модуль "my_module", который переопределяет темы форума, используя перепроцессорные перехватчики, вызывая path_to_theme() в моем модуле: например. my_module_preprocess_forums()... вернет "форумы", а не "my_theme", как можно было бы ожидать.

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

Ответ 4

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

Ответ 5

В Drupal 5 вы можете просто использовать: path_to_theme()

Это даст вам полный путь от корня Drupal к определенному каталогу темы. Имейте в виду, что он не включает завершающую косую черту.

В Drupal 6 это ведет себя немного иначе. Если вы вызываете это из ваших страниц, он будет вызывать все, что в настоящее время делает тематику... независимо от того, является ли это вашей темой, модулем и т.д. Здесь ключевая цитата из документов API:

Он может указывать на активную тему или модуль, обрабатывающий тематические реализация. Например, когда вызывается в рамках тематики вызов будет зависеть от того, где обрабатывается функция theming. Если реализованный из модуля, он будет укажите модуль. Если выполнено из активной темы он укажет к активной теме. Когда вызывается за пределами тематического вызова, он всегда будет указывать на активный тема.

Источник: http://api.drupal.org/api/function/path_to_theme

Ответ 6

Для D8 папка темы доступна в препроцессорных функциях:

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

page.html.twig:

<img src="{{ logo_src }}">