2010-10-21 3 views
2

Каков правильный способ изменения активной темы Drupal программно?Каков правильный способ изменения активной темы Drupal программно?

+0

Что вы имеете в виду под «изменением темы программно». Настроить загружаемую тему для сайта? Измените тему, не изменяя ее файлы или что-то еще? – googletorp

+0

Отредактированный вопрос для уточнения. Я имел в виду, как изменить активную тему. – markdorison

ответ

7

Редактировать: здесь более простой пример.

Он использует Garland независимо от настройки темы. Обратите внимание, что это также отменяет настройку темы администратора.

function MODULENAME_init(){ 
    global $custom_theme; 
    $custom_theme = 'garland'; 
} 

Edit: изменение в глобальном масштабе.

А если вы имели в виду изменения настройки темы в базе данных, а не только на текущей странице, вот как:

// Changes the theme to Garland 
variable_set('theme_default', 'garland'); 

// Changes only the administration theme to Garland 
variable_set('admin_theme', 'garland'); 
+0

На текущей странице. – markdorison

+1

Глобальная переменная $ custom_theme, вероятно, именно то, что вы ищете, но ее необходимо изменить достаточно рано, чтобы вся страница использовала только одну тему, а hook_init - хорошее место для этого. – wildpeaks

+0

Что делать, если вы просто хотите активировать тему администратора? – markdorison

Смежные вопросы