Как получить путь к текущей теме drupal?
API Drupal имеет drupal_get_path($type, $name)
который даст путь к любой конкретной теме или модулю. Что делать, если я хочу путь текущей темы?
7 ответов
это должно работать (doc):
global $theme;
$path = drupal_get_path('theme', $theme);
// there's also a $theme_path global
global $theme_path;
в D6 path_to_theme () может вести себя не так, как вы ожидаете, в зависимости от того, как вы его используете. Если вы используете его вне каких-либо функций предварительного процесса темы, то он, вероятно, даст вам то, что вы хотите, но если он вызывается в контексте функции Theming/preprocess модуля... он будет указывать на путь модуля, который объявил тему.
Ex. Если у меня есть тема "my_theme" и мой модуль "my_module", который переопределяет темы форума, используя предпроцессорные крючки, вызывающие path_to_theme () в моем модуле: например, my_module_preprocess_forums ()... вернется "форумы", а не "my_theme" как можно было бы ожидать.
очень фруктовый, если вы спросите меня.
в Drupal 7, для получения пути текущей темы, мы можем использовать: path_to_theme()
В 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:
Он может укажите активную тему или модуль обработки тематический реализация. Например, когда вызывается в рамках тематики вызов будет зависеть от того, где функция тематизации обрабатывается. Если выполнены из модуля, он будет точки на модуль. Если реализовано из активной темы он будет указывать к активной теме. При вызове вне рамок тематического вызова, он всегда будет указывать на активный тема.
для D8 папка темы доступна в функциях предварительной обработки:
function hook_preprocess_page(&$variables) {
$variables['some_logo_file'] = "/{$variables['theme']['path']}/images/logo.png";
}
страница.формат html.веточка:
<img src="{{ logo_src }}">