Столкнулся с проблемой, когда для админки и фронтенда используются разные темы. В частности, при создании или редактировании контента подключается тема админки. А надо было, чтобы при создании определенного типа материала подключалась тема фронтенда, а для остальных использовалась тема админки.
Конкретно, нужно было, чтобы при создании темы форума не подключалась тема админки, т.к. топики создают и обычные пользователи, а резкое изменение оформления вводит их в диссонанс и не отвечает требованиям юзабилити.
После некоторых поисков было ясно, что дело нужно иметь с функцией hooks_init(). Мы должны создать свой модуль для перекрытия этой функции.
В итоге выйдет нечто вроде этого:
<?phpfunction TVOYMODULE_hooks_init() {
// Если создаем или правим топик форума
if(arg(0) == 'node' && (arg(1) == 'add' || arg(1) == 'edit') && arg(2) == 'forum') {
// то подключаем тему «nasha»
global $custom_theme; $custom_theme = "nasha";
}
}?>
Источник: http://www.bytesite.co.uk/drupal-changing-theme-on-theflydrupal-programm...
Комментарии
баян
Да, но мне надо было
я на 5ке подобное делал - галереи надо было показывать в другой теме.
вообще вроде модули для такого были
А не подскажете, как на Друпал6 сделать смену темы оформления по нажатии на ссылку.
На каждой странице имеется блок, где есть переключатель темы, например: "Полная" / "Облегченная".
Я думаю сделать форму выбора, примерно так:
<?php
$form['themes']['theme'] = array('#type' => 'radios', '#options' => $options, '#default_value' => $default_value ? $default_value : '');
?>
Может, есть готовые решения или модули, подскажите.