diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc index 0d3a8d7..687e6c6 100644 --- a/modules/system/system.admin.inc +++ b/modules/system/system.admin.inc @@ -168,11 +168,12 @@ function system_themes_page() { // Require the 'content' region to make sure the main page // content has a common place in all themes. $theme->incompatible_core = !isset($theme->info['core']) || ($theme->info['core'] != DRUPAL_CORE_COMPATIBILITY) || (!isset($theme->info['regions']['content'])); + $theme->incompatible_info = ($theme->info['name'] == 'Name not specified'); $theme->incompatible_php = version_compare(phpversion(), $theme->info['php']) < 0; } $query['token'] = drupal_get_token('system-theme-operation-link'); $theme->operations = array(); - if (!empty($theme->status) || !$theme->incompatible_core && !$theme->incompatible_php) { + if (!empty($theme->status) || !$theme->incompatible_core && !$theme->incompatible_php && !$theme->incompatible_info) { // Create the operations links. $query['theme'] = $theme->name; if (drupal_theme_access($theme)) { @@ -2668,6 +2669,9 @@ function theme_system_themes_page($variables) { } $output .= '
' . t('This theme requires PHP version @php_required and is incompatible with PHP version !php_version.', array('@php_required' => $theme->info['php'], '!php_version' => phpversion())) . '
'; } + elseif (!empty($theme->incompatible_info)) { + $output .= '
' . t('The theme info file has errors or omissions.') . '
'; + } else { $output .= theme('links', array('links' => $theme->operations, 'attributes' => array('class' => array('operations', 'clearfix')))); } diff --git a/modules/system/system.module b/modules/system/system.module index 4136ecd..e651b04 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -2470,6 +2470,7 @@ function _system_rebuild_theme_data() { // Set defaults for theme info. $defaults = array( + 'name' => 'Name not specified', 'engine' => 'phptemplate', 'regions' => array( 'sidebar_first' => 'Left sidebar',