From f73524c272f8b3ae08d9698bd90dd2a3b0300bb2 Mon Sep 17 00:00:00 2001 From: nacin Date: Sat, 21 Apr 2012 20:57:54 +0000 Subject: [PATCH] Don't allow themes without a style.css editor to be edited. These themes are too broken to be salvaged by the theme editor. see #20103. git-svn-id: http://svn.automattic.com/wordpress/trunk@20557 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/theme-editor.php | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/wp-admin/theme-editor.php b/wp-admin/theme-editor.php index 8660f6041..5aad0968c 100644 --- a/wp-admin/theme-editor.php +++ b/wp-admin/theme-editor.php @@ -54,26 +54,18 @@ $theme = wp_get_theme( $stylesheet ); if ( ! $theme->exists() ) wp_die( __( 'The requested theme does not exist.' ) ); +if ( $theme->errors() && 'theme_no_stylesheet' == $theme->errors()->get_error_code() ) + wp_die( __( 'The requested theme does not exist.' ) . ' ' . $theme->errors()->get_error_message() ); + $allowed_files = $theme->get_files( 'php', 1 ); $has_templates = ! empty( $allowed_files ); - $style_files = $theme->get_files( 'css' ); -if ( isset( $style_files['style.css'] ) ) { - $allowed_files['style.css'] = $style_files['style.css']; - unset( $style_files['style.css'] ); -} else { - $style_files['style.css'] = false; -} +$allowed_files['style.css'] = $style_files['style.css']; $allowed_files += $style_files; if ( empty( $file ) ) { - if ( ! empty( $allowed_files['style.css'] ) ) { - $relative_file = 'style.css'; - $file = $allowed_files['style.css']; - } else { - $relative_file = key( $allowed_files ); - $file = current( $allowed_files ); - } + $relative_file = 'style.css'; + $file = $allowed_files['style.css']; } else { $relative_file = urldecode( stripslashes( $file ) ); $file = $theme->get_stylesheet_directory() . '/' . $relative_file; @@ -153,6 +145,9 @@ if ( $description != $file_show )