Смена темы оформления на лету

Главные вкладки

Аватар пользователя Химический Али Химический Али 29 июля 2009 в 21:52

Столкнулся с проблемой, когда для админки и фронтенда используются разные темы. В частности, при создании или редактировании контента подключается тема админки. А надо было, чтобы при создании определенного типа материала подключалась тема фронтенда, а для остальных использовалась тема админки.

Конкретно, нужно было, чтобы при создании темы форума не подключалась тема админки, т.к. топики создают и обычные пользователи, а резкое изменение оформления вводит их в диссонанс и не отвечает требованиям юзабилити.

После некоторых поисков было ясно, что дело нужно иметь с функцией 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...

Комментарии

Аватар пользователя goodboy goodboy 13 ноября 2009 в 17:01

А не подскажете, как на Друпал6 сделать смену темы оформления по нажатии на ссылку.
На каждой странице имеется блок, где есть переключатель темы, например: "Полная" / "Облегченная".

Я думаю сделать форму выбора, примерно так:

<?php
$form
['themes']['theme'] = array('#type' => 'radios''#options' => $options'#default_value' => $default_value $default_value '');
?>

Может, есть готовые решения или модули, подскажите.