Index: modules/system/system.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v retrieving revision 1.155 diff -u -r1.155 system.admin.inc --- modules/system/system.admin.inc 8 Jun 2009 04:48:43 -0000 1.155 +++ modules/system/system.admin.inc 10 Jun 2009 02:59:46 -0000 @@ -468,15 +468,19 @@ if ($key) { // Include the theme's theme-settings.php file $filename = DRUPAL_ROOT . '/' . str_replace("/$key.info", '', $themes[$key]->filename) . '/theme-settings.php'; - if (!file_exists($filename) and !empty($themes[$key]->info['base theme'])) { - // If the theme doesn't have a theme-settings.php file, use the base theme's. - $base = $themes[$key]->info['base theme']; - $filename = DRUPAL_ROOT . '/' . str_replace("/$base.info", '', $themes[$base]->filename) . '/theme-settings.php'; - } if (file_exists($filename)) { require_once $filename; } + // Include the theme's base theme-settings.php file + $base = (!empty($themes[$key]->info['base theme'])) ? $themes[$key]->info['base theme'] : ''; + if ($base) { + $filename = DRUPAL_ROOT . '/' . str_replace("/$base.info", '', $themes[$base]->filename) . '/theme-settings.php'; + if (file_exists($filename)) { + require_once $filename; + } + } + // Call engine-specific settings. $function = $themes[$key]->prefix . '_engine_settings'; if (function_exists($function)) { @@ -486,6 +490,19 @@ $form['engine_specific'] = array_merge($form['engine_specific'], $group); } } + + // Call base theme-specific settings. + if ($base) { + $function = $base .'_settings'; + if (function_exists($function)) { + $group = $function($settings, $form); + if (!empty($group)) { + $form['base_theme_specific'] = array('#type' => 'fieldset', '#title' => t('Base theme-specific settings'), '#description' => t('These settings only exist for the %theme base theme and all the styles based on it.', array('%theme' => $themes[$base]->info['name']))); + $form['base_theme_specific'] = array_merge($form['base_theme_specific'], $group); + } + } + } + // Call theme-specific settings. $function = $key . '_settings'; if (!function_exists($function)) {