'.__('You do not have sufficient permissions to edit templates for this site.').'
'); $title = __("Edit Themes"); $parent_file = 'themes.php'; $help = '' . __('You can use the Theme Editor to edit the individual CSS and PHP files which make up your theme.') . '
'; $help .= '' . __('Begin by choosing a theme to edit from the dropdown menu and clicking Select. A list then appears of all the template files. Clicking once on any file name causes the file to appear in the large Editor box.') . '
'; $help .= '' . __('For PHP files, you can use the Documentation dropdown to select from functions recognized in that file. Lookup takes you to a web page with reference material about that particular function.') . '
'; $help .= '' . __('After typing in your edits, click Update File.') . '
'; $help .= '' . __('Advice: think very carefully about your site crashing if you are live-editing the theme currently in use.') . '
'; $help .= '' . __('Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a child theme instead.') . '
'; if ( is_network_admin() ) $help .= '' . __('Any edits to files from this screen will be reflected on all sites in the network.') . '
'; add_contextual_help($current_screen, $help); 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') . '
' ); wp_reset_vars(array('action', 'redirect', 'profile', 'error', 'warning', 'a', 'file', 'theme', 'dir')); $themes = get_themes(); if (empty($theme)) { $theme = get_current_theme(); } else { $theme = stripslashes($theme); } if ( ! isset($themes[$theme]) ) wp_die(__('The requested theme does not exist.')); $allowed_files = array_merge( $themes[$theme]['Stylesheet Files'], $themes[$theme]['Template Files'] ); if ( empty( $file ) ) { if ( false !== array_search( $themes[$theme]['Stylesheet Dir'] . '/style.css', $allowed_files ) ) $file = $themes[$theme]['Stylesheet Dir'] . '/style.css'; else $file = $allowed_files[0]; } else { $file = stripslashes($file); if ( 'theme' == $dir ) { $file = dirname(dirname($themes[$theme]['Template Dir'])) . $file ; } else if ( 'style' == $dir) { $file = dirname(dirname($themes[$theme]['Stylesheet Dir'])) . $file ; } } validate_file_to_edit($file, $allowed_files); $scrollto = isset($_REQUEST['scrollto']) ? (int) $_REQUEST['scrollto'] : 0; $file_show = basename( $file ); switch($action) { case 'update': check_admin_referer('edit-theme_' . $file . $theme); $newcontent = stripslashes($_POST['newcontent']); $theme = urlencode($theme); if (is_writeable($file)) { //is_writable() not always reliable, check return value. see comments @ http://uk.php.net/is_writable $f = fopen($file, 'w+'); if ($f !== FALSE) { fwrite($f, $newcontent); fclose($f); $location = "theme-editor.php?file=$file&theme=$theme&a=te&scrollto=$scrollto"; } else { $location = "theme-editor.php?file=$file&theme=$theme&scrollto=$scrollto"; } } else { $location = "theme-editor.php?file=$file&theme=$theme&scrollto=$scrollto"; } $location = wp_kses_no_null($location); $strip = array('%0d', '%0a', '%0D', '%0A'); $location = _deep_replace($strip, $location); header("Location: $location"); exit(); break; default: require_once(ABSPATH . 'wp-admin/admin-header.php'); update_recently_edited($file); if ( !is_file($file) ) $error = 1; $content = ''; if ( !$error && filesize($file) > 0 ) { $f = fopen($file, 'r'); $content = fread($f, filesize($file)); if ( '.php' == substr( $file, strrpos( $file, '.' ) ) ) { $functions = wp_doc_link_parse( $content ); $docs_select = ''; } $content = esc_textarea( $content ); } ?>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '