diff -r c7c34916027a -r 177826044cd9 wp/wp-admin/theme-editor.php --- a/wp/wp-admin/theme-editor.php Mon Oct 14 18:06:33 2019 +0200 +++ b/wp/wp-admin/theme-editor.php Mon Oct 14 18:28:13 2019 +0200 @@ -14,39 +14,45 @@ exit(); } -if ( !current_user_can('edit_themes') ) - wp_die('
'.__('Sorry, you are not allowed to edit templates for this site.').'
'); +if ( ! current_user_can( 'edit_themes' ) ) { + wp_die( '' . __( 'Sorry, you are not allowed to edit templates for this site.' ) . '
' ); +} -$title = __("Edit Themes"); +$title = __( 'Edit Themes' ); $parent_file = 'themes.php'; -get_current_screen()->add_help_tab( array( -'id' => 'overview', -'title' => __('Overview'), -'content' => - '' . __( 'You can use the Theme Editor to edit the individual CSS and PHP files which make up your theme.' ) . '
' . - '' . __( 'Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme’s template files. Clicking once on any file name causes the file to appear in the large Editor box.' ) . '
' . - '' . __( 'For PHP files, you can use the Documentation dropdown to select from functions recognized in that file. Look Up takes you to a web page with reference material about that particular function.' ) . '
' . - '' . __( 'When using a keyboard to navigate:' ) . '
' . - '' . __( 'After typing in your edits, click Update File.' ) . '
' . - '' . __( 'Advice: think very carefully about your site crashing if you are live-editing the theme currently in use.' ) . '
' . - /* translators: %s: link to codex article about child themes */ - '' . sprintf( __( 'Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a child theme instead.' ), __( 'https://codex.wordpress.org/Child_Themes' ) ) . '
' . - ( is_network_admin() ? '' . __( 'Any edits to files from this screen will be reflected on all sites in the network.' ) . '
' : '' ), -) ); +get_current_screen()->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' ), + 'content' => + '' . __( 'You can use the theme editor to edit the individual CSS and PHP files which make up your theme.' ) . '
' . + '' . __( 'Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme’s template files. Clicking once on any file name causes the file to appear in the large Editor box.' ) . '
' . + '' . __( 'For PHP files, you can use the Documentation dropdown to select from functions recognized in that file. Look Up takes you to a web page with reference material about that particular function.' ) . '
' . + '' . __( 'When using a keyboard to navigate:' ) . '
' . + '' . __( 'After typing in your edits, click Update File.' ) . '
' . + '' . __( 'Advice: Think very carefully about your site crashing if you are live-editing the theme currently in use.' ) . '
' . + '' . sprintf( + /* translators: %s: link to documentation on child themes */ + __( 'Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a child theme instead.' ), + __( 'https://developer.wordpress.org/themes/advanced-topics/child-themes/' ) + ) . '
' . + ( is_network_admin() ? '' . __( 'Any edits to files from this screen will be reflected on all sites in the network.' ) . '
' : '' ), + ) +); get_current_screen()->set_help_sidebar( - '' . __('For more information:') . '
' . - '' . __('Documentation on Theme Development') . '
' . - '' . __('Documentation on Using Themes') . '
' . - '' . __('Documentation on Editing Files') . '
' . - '' . __('Documentation on Template Tags') . '
' . - '' . __('Support Forums') . '
' + '' . __( 'For more information:' ) . '
' . + '' . __( 'Documentation on Theme Development' ) . '
' . + '' . __( 'Documentation on Using Themes' ) . '
' . + '' . __( 'Documentation on Editing Files' ) . '
' . + '' . __( 'Documentation on Template Tags' ) . '
' . + '' . __( 'Support' ) . '
' ); wp_reset_vars( array( 'action', 'error', 'file', 'theme' ) ); @@ -76,12 +82,12 @@ switch ( $type ) { case 'php': $allowed_files += $theme->get_files( 'php', -1 ); - $has_templates = ! empty( $allowed_files ); + $has_templates = ! empty( $allowed_files ); break; case 'css': - $style_files = $theme->get_files( 'css', -1 ); + $style_files = $theme->get_files( 'css', -1 ); $allowed_files['style.css'] = $style_files['style.css']; - $allowed_files += $style_files; + $allowed_files += $style_files; break; default: $allowed_files += $theme->get_files( $type, -1 ); @@ -99,33 +105,35 @@ if ( empty( $file ) ) { $relative_file = 'style.css'; - $file = $allowed_files['style.css']; + $file = $allowed_files['style.css']; } else { $relative_file = wp_unslash( $file ); - $file = $theme->get_stylesheet_directory() . '/' . $relative_file; + $file = $theme->get_stylesheet_directory() . '/' . $relative_file; } validate_file_to_edit( $file, $allowed_files ); // Handle fallback editing of file when JavaScript is not available. -$edit_error = null; +$edit_error = null; $posted_content = null; if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) { $r = wp_edit_theme_plugin_file( wp_unslash( $_POST ) ); if ( is_wp_error( $r ) ) { $edit_error = $r; - if ( check_ajax_referer( 'edit-theme_' . $file . $stylesheet, 'nonce', false ) && isset( $_POST['newcontent'] ) ) { + if ( check_ajax_referer( 'edit-theme_' . $stylesheet . '_' . $relative_file, 'nonce', false ) && isset( $_POST['newcontent'] ) ) { $posted_content = wp_unslash( $_POST['newcontent'] ); } } else { - wp_redirect( add_query_arg( - array( - 'a' => 1, // This means "success" for some reason. - 'theme' => $stylesheet, - 'file' => $relative_file, - ), - admin_url( 'theme-editor.php' ) - ) ); + wp_redirect( + add_query_arg( + array( + 'a' => 1, // This means "success" for some reason. + 'theme' => $stylesheet, + 'file' => $relative_file, + ), + admin_url( 'theme-editor.php' ) + ) + ); exit; } } @@ -141,20 +149,21 @@ update_recently_edited( $file ); - if ( ! is_file( $file ) ) + if ( ! is_file( $file ) ) { $error = true; + } $content = ''; if ( ! empty( $posted_content ) ) { $content = $posted_content; } elseif ( ! $error && filesize( $file ) > 0 ) { - $f = fopen($file, 'r'); - $content = fread($f, filesize($file)); + $f = fopen( $file, 'r' ); + $content = fread( $f, filesize( $file ) ); if ( '.php' == substr( $file, strrpos( $file, '.' ) ) ) { $functions = wp_doc_link_parse( $content ); - $docs_select = '