Скрывать боковые регионы в панели администратора

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

Аватар пользователя erikson erikson 7 февраля 2013 в 19:17

Бывает так, что в админке не нужны боковые регионы. Только занимают место. Способ исключения вывода блоков на страницах admin и admin/* - это многотыкание, что очень неудобно.

Реализация оказалась проста. В template.php добавляем в функцию [имя_темы]_page_alter(&$page):

if (path_is_admin(current_path())) {
unset($page['sidebar_first']);
unset($page['sidebar_second']);
}

Комментарии

Аватар пользователя erikson erikson 7 февраля 2013 в 19:33

Или как вариант сделать эти отключения опциональными в настройке темы.

Добавляем элемент формы в [имя_темы]_form_system_theme_settings_alter(&$form, $form_state, $form_id = NULL) файла theme-settings.php:

$form['regions_admin_hidden'] = array(
'#type' => 'checkboxes',
'#title' => t('Скрыть боковые регионы в панели администратора'),
'#description' => t('Полезно, когда боковые регионы занимают много места и контент панели администратора не помещается по горизонтали.'),
'#default_value' => theme_get_setting('regions_admin_hidden'),
'#options' => array(
'hide_sidebar_first' => t('Скрыть первую боковую панель.'),
'hide_sidebar_second' => t('Скрыть вторую боковую панель.'),
),
);

А в функции [имя_темы]_page_alter(&$page) файла template.php добавляем код:

if (path_is_admin(current_path())) {
$regions_admin_hidden = theme_get_setting('regions_admin_hidden');
if ($regions_admin_hidden['hide_sidebar_first']) unset($page['sidebar_first']);
if ($regions_admin_hidden['hide_sidebar_second']) unset($page['sidebar_second']);
}