Получить текущую тему Drupal? - PullRequest
3 голосов
/ 19 июля 2010

Как определить, какая тема загружена для текущего пользователя в контексте модуля?

drupal_get_path
path_to_theme

Ничто из этого не является хорошим, поскольку они, похоже, работают только в template.php темы.

Ответы [ 2 ]

3 голосов
/ 20 июля 2010

Если пользователям разрешено выбирать тему для себя, выбранная ими тема сохраняется в $user->theme, где $user - объект пользователя.Глобальная переменная $custom_theme содержит имя темы, установленной в данный момент, если модуль установил пользовательскую тему.

Следующий фрагмент сохраняет в $current_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 голос
/ 19 июля 2010

path_to_theme должно работать просто отлично, я протестировал его на двух установках Drupal, и обе работали.Если тема еще не была инициализирована, path_to_theme сделает это, что Drupal использует для внутренней установки различных глобальных переменных темы, таких как $theme_path, которая является переменной, которую вы ищете.

...