Смешивается дизайн

Прислано: speedsoft

пн, 02/06/2008 - 21:44

Другие статьи по теме:

Сразу оговорюсь, Друпал осваиваю меньше недели, поэтому прошу сразу не бить. У меня вот какая проблема. Я для админки назначил один стиль, а для сайта другой. при работе с админкой он в некоторых случаях (например при добавлении страницы) скидывает меня на стиль сайта. почему так происходит?

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано mityok в пн, 02/06/2008 - 21:55.

Потому что оформление админки относиться ко всем адресам, которые отвечают маске "admin/*", а страница добавления материала имеета адрес вида "node/add/......", аналогично страница редактирования имеет адрес вида "node/edit/...."


Опубликовано speedsoft в пн, 02/06/2008 - 22:01.

А как исправить?


Опубликовано gorr в вт, 03/06/2008 - 08:05.

можно попробовать создать свой модуль, в котором
global $theme;
if(arg(0) == 'node' && (arg(1)=='add' || (is_numeric(arg(1)) && arg(2) == 'edit'))) {
$theme == 'garland';
}


Опубликовано speedsoft в вт, 03/06/2008 - 09:28.

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

неужели эта недокументированная возможность только меня беспокоит? навернякак ее уже решал кто-то


Опубликовано wanders.32 в вт, 03/06/2008 - 09:43.

подобная проблема, страница admin/build/modules . при сабмите админ дизайн слетает, показывается дизайн сайта, и при рефреше страницы - админ дизайн возвращается


Опубликовано speedsoft в чт, 05/06/2008 - 11:31.

Я упертый. 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'; //имя вашей темы для админки.
}

Если я не правильно сделал (но так у меня работает), то готов выслушать критику.


Опубликовано gorr в чт, 05/06/2008 - 12:29.

Да не за что, я из кода этой функции и исходил, но лучше вынести код в отдельный модуль, а то потом забудете, что вносили изменения в ядро и при обновлении версии, весьма возможном- бац, сюрприз!:)


Опубликовано speedsoft в чт, 05/06/2008 - 17:52.

для меня пока слова создать модуль, вынести в отдельный модуль в новинку (в плане друпала). наберусь опыта - обязательно вынесу.


Опубликовано Splinter в пт, 06/06/2008 - 03:30.

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


Опубликовано wanders.32 в пн, 09/06/2008 - 13:21.

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


Опубликовано speedsoft в пн, 09/06/2008 - 20:00.

Удобство еще в том, что если за 10 сайтами следит один человек, то ему не нужно к каждому дизу привыкать. у него есть один, в котором он хорошо ориентируется и никаких проблем. ему плевать как выглядит сам сайт.


Новое на сайте