From bca913100a67029a67f4ff86721fe0290db88fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Hojtsy?= Date: Thu, 20 Dec 2007 21:37:42 +0000 Subject: #201577 by Pasqualle: let the admin theme be configured even if it is disabled (mirror blocks admin behavior) --- modules/system/system.module | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'modules/system/system.module') diff --git a/modules/system/system.module b/modules/system/system.module index 198d61206..573562c11 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -293,13 +293,13 @@ function system_menu() { ); foreach (list_themes() as $theme) { - if ($theme->status) { - $items['admin/build/themes/settings/'. $theme->name] = array( - 'title' => $theme->info['name'], - 'page arguments' => array('system_theme_settings', $theme->name), - 'type' => MENU_LOCAL_TASK, - ); - } + $items['admin/build/themes/settings/'. $theme->name] = array( + 'title' => $theme->info['name'], + 'page arguments' => array('system_theme_settings', $theme->name), + 'type' => MENU_LOCAL_TASK, + 'access callback' => '_system_themes_access', + 'access arguments' => array($theme), + ); } // Modules: @@ -500,6 +500,13 @@ function system_menu() { return $items; } +/** + * Menu item access callback - only admin or enabled themes can be accessed. + */ +function _system_themes_access($theme) { + return $theme->status || $theme->name == variable_get('admin_theme', '0'); +} + /** * Implementation of hook_init(). */ -- cgit v1.2.3