X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/9e77185fafaf4e60e2b73821e0e4b9b1a11fb85f..7f1521bf193b382565eb753043c161f4cb3fcda7:/wp-admin/themes.php
diff --git a/wp-admin/themes.php b/wp-admin/themes.php
index 9457fe36..45776cc9 100644
--- a/wp-admin/themes.php
+++ b/wp-admin/themes.php
@@ -10,14 +10,14 @@
require_once( dirname( __FILE__ ) . '/admin.php' );
if ( !current_user_can('switch_themes') && !current_user_can('edit_theme_options') )
- wp_die( __( 'Cheatin’ uh?' ) );
+ wp_die( __( 'Cheatin’ uh?' ), 403 );
if ( current_user_can( 'switch_themes' ) && isset($_GET['action'] ) ) {
if ( 'activate' == $_GET['action'] ) {
check_admin_referer('switch-theme_' . $_GET['stylesheet']);
$theme = wp_get_theme( $_GET['stylesheet'] );
if ( ! $theme->exists() || ! $theme->is_allowed() )
- wp_die( __( 'Cheatin’ uh?' ) );
+ wp_die( __( 'Cheatin’ uh?' ), 403 );
switch_theme( $theme->get_stylesheet() );
wp_redirect( admin_url('themes.php?activated=true') );
exit;
@@ -25,9 +25,14 @@ if ( current_user_can( 'switch_themes' ) && isset($_GET['action'] ) ) {
check_admin_referer('delete-theme_' . $_GET['stylesheet']);
$theme = wp_get_theme( $_GET['stylesheet'] );
if ( !current_user_can('delete_themes') || ! $theme->exists() )
- wp_die( __( 'Cheatin’ uh?' ) );
- delete_theme($_GET['stylesheet']);
- wp_redirect( admin_url('themes.php?deleted=true') );
+ wp_die( __( 'Cheatin’ uh?' ), 403 );
+ $active = wp_get_theme();
+ if ( $active->get( 'Template' ) == $_GET['stylesheet'] ) {
+ wp_redirect( admin_url( 'themes.php?delete-active-child=true' ) );
+ } else {
+ delete_theme( $_GET['stylesheet'] );
+ wp_redirect( admin_url( 'themes.php?deleted=true' ) );
+ }
exit;
}
}
@@ -42,7 +47,8 @@ if ( current_user_can( 'switch_themes' ) ) {
'
- ' . __( 'Hover or tap to see Activate and Live Preview buttons' ) . '
' .
'- ' . __( 'Click on the theme to see the theme name, version, author, description, tags, and the Delete link' ) . '
' .
'- ' . __( 'Click Customize for the current theme or Live Preview for any other theme to see a live preview' ) . '
' .
- '' . __( 'The current theme is displayed highlighted as the first theme.' ) . '
';
+ '' . __( 'The current theme is displayed highlighted as the first theme.' ) . '
' .
+ '' . __( 'The search for installed themes will search for terms in their name, description, author, or tag.' ) . ' ' . __( 'The search results will be updated as you type.' ) . '
';
get_current_screen()->add_help_tab( array(
'id' => 'overview',
@@ -82,7 +88,7 @@ if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' )
get_current_screen()->set_help_sidebar(
'' . __( 'For more information:' ) . '
' .
- '' . __( 'Documentation on Using Themes' ) . '
' .
+ '' . __( 'Documentation on Using Themes' ) . '
' .
'' . __( 'Support Forums' ) . '
'
);
@@ -102,9 +108,11 @@ wp_localize_script( 'theme', '_wpThemeSettings', array(
'adminUrl' => parse_url( admin_url(), PHP_URL_PATH ),
),
'l10n' => array(
- 'addNew' => __( 'Add New Theme' ),
- 'search' => __( 'Search Installed Themes' ),
+ 'addNew' => __( 'Add New Theme' ),
+ 'search' => __( 'Search Installed Themes' ),
'searchPlaceholder' => __( 'Search installed themes...' ), // placeholder (no ellipsis)
+ 'themesFound' => __( 'Number of Themes found: %d' ),
+ 'noThemesFound' => __( 'No themes found. Try a different search.' ),
),
) );
@@ -119,20 +127,22 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
-
+
-
+
- Visit site' ), home_url( '/' ) ); ?>
+ Visit site' ), home_url( '/' ) ); ?>
-Visit site' ), home_url( '/' ) ); ?>
Visit site' ), home_url( '/' ) ); ?>
-
+
+
+
errors() || ( 1 == count( $ct->errors()->get_error_codes() )
continue;
// 0 = name, 1 = capability, 2 = file
if ( ( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file)) )
- $class = ' class="current"';
+ $class = ' current';
if ( !empty($submenu[$item[2]]) ) {
$submenu[$item[2]] = array_values($submenu[$item[2]]); // Re-index.
$menu_hook = get_plugin_page_hook($submenu[$item[2]][0][2], $item[2]);
if ( file_exists(WP_PLUGIN_DIR . "/{$submenu[$item[2]][0][2]}") || !empty($menu_hook))
- $current_theme_actions[] = "{$item[0]}";
+ $current_theme_actions[] = "{$item[0]}";
else
- $current_theme_actions[] = "{$item[0]}";
- } else if ( current_user_can($item[1]) ) {
+ $current_theme_actions[] = "{$item[0]}";
+ } elseif ( ! empty( $item[2] ) && current_user_can( $item[1] ) ) {
$menu_file = $item[2];
- if ( false !== ( $pos = strpos( $menu_file, '?' ) ) )
+
+ if ( current_user_can( 'customize' ) ) {
+ if ( 'custom-header' === $menu_file ) {
+ $current_theme_actions[] = "{$item[0]}";
+ } elseif ( 'custom-background' === $menu_file ) {
+ $current_theme_actions[] = "{$item[0]}";
+ }
+ }
+
+ if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) {
$menu_file = substr( $menu_file, 0, $pos );
+ }
+
if ( file_exists( ABSPATH . "wp-admin/$menu_file" ) ) {
- $current_theme_actions[] = "{$item[0]}";
+ $current_theme_actions[] = "{$item[0]}";
} else {
- $current_theme_actions[] = "{$item[0]}";
+ $current_theme_actions[] = "{$item[0]}";
}
}
}
@@ -204,7 +225,12 @@ foreach ( $themes as $theme ) :
-
+
+ Active: %s' ), $theme['name'] );
+ ?>
+
@@ -216,9 +242,9 @@ foreach ( $themes as $theme ) :
-
+
-
+
@@ -246,20 +272,37 @@ if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_
+
|
|
+
+ |
+
+
-
- " . ( $broken_theme->get( 'Name' ) ? $broken_theme->get( 'Name' ) : $broken_theme->get_stylesheet() ) . " |
- " . $broken_theme->errors()->get_error_message() . " |
-
";
- }
-?>
+ get( 'Name' ) ? $broken_theme->display( 'Name' ) : $broken_theme->get_stylesheet(); ?> |
+ errors()->get_error_message(); ?> |
+ get_stylesheet();
+ $delete_url = add_query_arg( array(
+ 'action' => 'delete',
+ 'stylesheet' => urlencode( $stylesheet ),
+ ), admin_url( 'themes.php' ) );
+ $delete_url = wp_nonce_url( $delete_url, 'delete-theme_' . $stylesheet );
+ ?>
+ |
+
+
+
@@ -285,7 +328,12 @@ if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_
<# if ( data.active ) { #>
- {{{ data.name }}}
+
+ Active: %s' ), '{{ data.name }}' );
+ ?>
+
<# } else { #>
{{{ data.name }}}
<# } #>
@@ -297,8 +345,8 @@ if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_
<# } #>
<# } else { #>
-
-
+
+
<# } #>
@@ -330,7 +378,7 @@ if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_
<# if ( data.active ) { #>
<# } #>
- {{{ data.name }}}
+ {{{ data.name }}}
<# if ( data.hasUpdate ) { #>
@@ -358,9 +406,9 @@ if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_
<# if ( data.actions.activate ) { #>
-
+
<# } #>
-
+