Сразу оговорюсь, Друпал осваиваю меньше недели, поэтому прошу сразу не бить. У меня вот какая проблема. Я для админки назначил один стиль, а для сайта другой. при работе с админкой он в некоторых случаях (например при добавлении страницы) скидывает меня на стиль сайта. почему так происходит?
Комментарии
Потому что оформление админки относиться ко всем адресам, которые отвечают маске "admin/*", а страница добавления материала имеета адрес вида "node/add/......", аналогично страница редактирования имеет адрес вида "node/edit/...."
А как исправить?
можно попробовать создать свой модуль, в котором
global $theme;
if(arg(0) == 'node' && (arg(1)=='add' || (is_numeric(arg(1)) && arg(2) == 'edit'))) {
$theme == 'garland';
}
хм... я только неделю мучаю друпал, и уже своим модули?
пока рановато, буду изыскивать другие пути.
неужели эта недокументированная возможность только меня беспокоит? навернякак ее уже решал кто-то
подобная проблема, страница admin/build/modules . при сабмите админ дизайн слетает, показывается дизайн сайта, и при рефреше страницы - админ дизайн возвращается
Я упертый. gorr огромное спасибо. перелапатил кода немеренно (но зато поосвоился )
вот решение проблемы, которое я нашел. Думаю многим пригодится. (еще раз спасибо gorr)
Находим функцию function init_theme() в файле theme.inc
function init_theme() {
global $theme, $user, $custom_theme, $theme_engine, $theme_key;
// If $theme is already set, assume the others are set, too, and do nothing
if (isset($theme)) {
return;
}
drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);
$themes = list_themes();
// Only select the user selected theme if it is available in the
// list of enabled themes.
$theme = $user->theme && $themes[$user->theme]->status ? $user->theme : variable_get('theme_default', 'garland');
// И ВОТ СЮДА ВСТАВЛЯЕМ КОД, ПРЕДЛОЖЕННЫЙ GOORом
if(arg(0) == 'node' && (arg(1)=='add' || (is_numeric(arg(1)) && arg(2) == 'edit'))){
$theme = 'garland'; //имя вашей темы для админки.
}
Если я не правильно сделал (но так у меня работает), то готов выслушать критику.
Да не за что, я из кода этой функции и исходил, но лучше вынести код в отдельный модуль, а то потом забудете, что вносили изменения в ядро и при обновлении версии, весьма возможном- бац, сюрприз!:)
для меня пока слова создать модуль, вынести в отдельный модуль в новинку (в плане друпала). наберусь опыта - обязательно вынесу.
а в чем преемущества когда для админки и просто для пользователя разные темы стоят?
да хотя бы в том, что сайтадмину не впался дизайн, и в админ части сайта его можно поменее навороченным сделать.
хотя, кроме как заграничных аналогов, я нечасто вижу друпал-сайты с качественным, хоть как-то отличающимся от стандартного дизайном.
поменять лого, цвета и паддинги я за отличия не считаю
Удобство еще в том, что если за 10 сайтами следит один человек, то ему не нужно к каждому дизу привыкать. у него есть один, в котором он хорошо ориентируется и никаких проблем. ему плевать как выглядит сам сайт.