2003-05-22 14:12:53 +02:00
< ? php
2004-10-19 05:03:06 +02:00
require_once ( 'admin.php' );
2004-12-18 21:56:26 +01:00
$title = __ ( 'Template & File Editing' );
2004-11-17 04:15:44 +01:00
$parent_file = 'edit.php' ;
2004-03-30 00:43:07 +02:00
2004-10-19 05:03:06 +02:00
$wpvarstoreset = array ( 'action' , 'redirect' , 'profile' , 'error' , 'warning' , 'a' , 'file' );
2003-12-18 10:36:13 +01:00
for ( $i = 0 ; $i < count ( $wpvarstoreset ); $i += 1 ) {
$wpvar = $wpvarstoreset [ $i ];
if ( ! isset ( $$wpvar )) {
2004-04-21 00:56:47 +02:00
if ( empty ( $_POST [ " $wpvar " ])) {
if ( empty ( $_GET [ " $wpvar " ])) {
2003-12-18 10:36:13 +01:00
$$wpvar = '' ;
2003-05-22 14:12:53 +02:00
} else {
2004-04-21 00:56:47 +02:00
$$wpvar = $_GET [ " $wpvar " ];
2003-05-22 14:12:53 +02:00
}
} else {
2004-04-21 00:56:47 +02:00
$$wpvar = $_POST [ " $wpvar " ];
2003-05-22 14:12:53 +02:00
}
}
}
2004-12-27 04:27:17 +01:00
$recents = get_option ( 'recently_edited' );
2004-11-17 04:15:44 +01:00
if ( empty ( $file )) {
2004-12-27 04:27:17 +01:00
if ( $recents ) {
$file = $recents [ 0 ];
} else {
$file = 'index.php' ;
}
2004-11-17 04:15:44 +01:00
}
$file = validate_file_to_edit ( $file );
$real_file = get_real_file_to_edit ( $file );
2003-05-22 14:12:53 +02:00
switch ( $action ) {
2003-05-23 02:12:22 +02:00
case 'update' :
2003-05-22 14:12:53 +02:00
2006-05-27 01:31:24 +02:00
check_admin_referer ( 'edit-file_' . $file );
2006-04-21 23:18:32 +02:00
2005-07-17 21:29:55 +02:00
if ( ! current_user_can ( 'edit_files' ) )
2005-12-12 23:48:30 +01:00
die ( '<p>' . __ ( 'You have do not have sufficient permissions to edit templates for this blog.' ) . '</p>' );
2003-05-22 14:12:53 +02:00
2004-04-21 00:56:47 +02:00
$newcontent = stripslashes ( $_POST [ 'newcontent' ]);
2004-11-17 04:15:44 +01:00
if ( is_writeable ( $real_file )) {
2005-12-21 17:56:11 +01:00
$f = @ fopen ( $real_file , 'w+' );
if ( $f ) {
fwrite ( $f , $newcontent );
fclose ( $f );
2006-06-28 01:10:02 +02:00
wp_redirect ( " templates.php?file= $file &a=te " );
2005-12-21 17:56:11 +01:00
} else {
2006-06-28 01:10:02 +02:00
wp_redirect ( " templates.php?file= $file &a=err " );
2005-12-21 17:56:11 +01:00
}
2004-11-17 04:15:44 +01:00
} else {
2006-06-28 01:10:02 +02:00
wp_redirect ( " templates.php?file= $file &a=err " );
2004-11-17 04:15:44 +01:00
}
2003-05-22 14:12:53 +02:00
exit ();
break ;
default :
2004-09-22 08:33:54 +02:00
require_once ( './admin-header.php' );
2005-07-17 21:29:55 +02:00
if ( ! current_user_can ( 'edit_files' ) )
2005-12-12 23:48:30 +01:00
die ( '<p>' . __ ( 'You have do not have sufficient permissions to edit templates for this blog.' ) . '</p>' );
2004-12-14 10:45:49 +01:00
if ( strstr ( $file , 'wp-config.php' ) )
2005-12-12 23:48:30 +01:00
die ( '<p>' . __ ( 'The config file cannot be edited or viewed through the web interface. Sorry!' ) . '</p>' );
2003-05-22 14:12:53 +02:00
2004-11-17 04:15:44 +01:00
update_recently_edited ( $file );
2003-05-22 14:12:53 +02:00
2006-10-04 09:34:55 +02:00
if ( ! is_file ( $real_file ) ) {
2005-12-21 17:56:11 +01:00
$error = true ;
2006-10-04 09:34:55 +02:00
} else {
2005-12-21 17:56:11 +01:00
$f = @ fopen ( $real_file , 'r' );
if ( $f ) {
2006-10-04 09:34:55 +02:00
if ( filesize ( $real_file ) > 0 ) {
$content = fread ( $f , filesize ( $real_file ));
$content = htmlspecialchars ( $content );
} else {
$content = '' ;
}
2005-12-21 17:56:11 +01:00
} else {
$error = true ;
}
2003-05-22 14:12:53 +02:00
}
?>
2004-05-08 01:56:33 +02:00
< ? php if ( isset ( $_GET [ 'a' ])) : ?>
2005-12-21 17:56:11 +01:00
< ? php if ( 'err' == $_GET [ 'a' ] ) : ?>
< div id = " message " class = " error " >< p >< ? php _e ( 'Could not save file.' ) ?> </p></div>
2005-12-28 01:10:23 +01:00
< ? php else : ?>
2005-08-08 03:13:22 +02:00
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'File edited successfully.' ) ?> </p></div>
2005-12-28 01:10:23 +01:00
< ? php endif ; ?>
2004-04-17 20:44:10 +02:00
< ? php endif ; ?>
2003-12-08 02:55:38 +01:00
< div class = " wrap " >
2004-09-22 08:33:54 +02:00
< ? php
if ( is_writeable ( $real_file )) {
2004-12-12 21:41:19 +01:00
echo '<h2>' . sprintf ( __ ( 'Editing <strong>%s</strong>' ), wp_specialchars ( $file ) ) . '</h2>' ;
2004-09-22 08:33:54 +02:00
} else {
2004-12-12 21:41:19 +01:00
echo '<h2>' . sprintf ( __ ( 'Browsing <strong>%s</strong>' ), wp_specialchars ( $file ) ) . '</h2>' ;
2004-09-22 08:33:54 +02:00
}
?>
< div id = " templateside " >
< ? php
2004-12-27 04:27:17 +01:00
if ( $recents ) :
2004-09-22 08:33:54 +02:00
?>
< h3 >< ? php _e ( 'Recent' ); ?> </h3>
< ? php
echo '<ol>' ;
foreach ( $recents as $recent ) :
2006-10-23 07:54:54 +02:00
echo " <li><a href='templates.php?file= " . wp_specialchars ( $recent , true ) . " '> " . get_file_description ( basename ( $recent )) . " </a></li> " ;
2004-09-22 08:33:54 +02:00
endforeach ;
echo '</ol>' ;
endif ;
?>
< h3 >< ? php _e ( 'Common' ); ?> </h3>
2005-01-19 16:23:38 +01:00
< ? php $common_files = array ( 'index.php' , '.htaccess' , 'my-hacks.php' );
$old_files = array ( 'wp-layout.css' , 'wp-comments.php' , 'wp-comments-popup.php' );
foreach ( $old_files as $old_file ) {
if ( file_exists ( ABSPATH . $old_file ))
$common_files [] = $old_file ;
} ?>
2004-09-22 08:33:54 +02:00
< ul >
2004-11-17 04:15:44 +01:00
< ? php foreach ( $common_files as $common_file ) : ?>
< li >< a href = " templates.php?file=<?php echo $common_file ?> " >< ? php echo get_file_description ( $common_file ); ?> </a></li>
2004-11-19 22:05:26 +01:00
< ? php endforeach ; ?>
2004-11-17 04:15:44 +01:00
</ ul >
2004-09-22 08:33:54 +02:00
</ div >
< ? php if ( ! $error ) { ?>
< form name = " template " id = " template " action = " templates.php " method = " post " >
2006-05-27 01:31:24 +02:00
< ? php wp_nonce_field ( 'edit-file_' . $file ) ?>
2004-09-22 08:33:54 +02:00
< div >< textarea cols = " 70 " rows = " 25 " name = " newcontent " id = 'newcontent' tabindex = " 1 " >< ? php echo $content ?> </textarea>
2003-12-08 02:55:38 +01:00
< input type = " hidden " name = " action " value = " update " />
< input type = " hidden " name = " file " value = " <?php echo $file ?> " />
2004-09-22 08:33:54 +02:00
</ div >
< ? php if ( is_writeable ( $real_file ) ) : ?>
2004-04-17 20:44:10 +02:00
< p class = " submit " >
2004-09-22 08:33:54 +02:00
< ? php
echo " <input type='submit' name='submit' value=' " . __ ( 'Update File' ) . " »' tabindex='2' /> " ;
?>
2004-04-17 20:44:10 +02:00
</ p >
2004-09-22 08:33:54 +02:00
< ? php else : ?>
2005-11-05 23:55:04 +01:00
< p >< em >< ? php _e ( 'If this file were writable you could edit it.' ); ?> </em></p>
2004-09-22 08:33:54 +02:00
< ? php endif ; ?>
2003-12-08 02:55:38 +01:00
</ form >
< ? php
2003-05-22 14:12:53 +02:00
} else {
2004-04-26 01:57:43 +02:00
echo '<div class="error"><p>' . __ ( 'Oops, no such file exists! Double check the name and try again, merci.' ) . '</p></div>' ;
2003-05-22 14:12:53 +02:00
}
2004-09-22 08:33:54 +02:00
?>
2005-11-14 11:19:22 +01:00
< div class = " clear " > & nbsp ; </ div >
2004-09-22 08:33:54 +02:00
</ div >
2004-02-05 15:48:55 +01:00
< div class = " wrap " >
2005-03-05 19:31:59 +01:00
< h2 >< ? php _e ( 'Other Files' ) ?> </h2>
2004-09-22 08:33:54 +02:00
2005-05-09 13:01:12 +02:00
< p >< ? php _e ( 'To edit a file, type its name here. You can edit any file <a href="http://codex.wordpress.org/Changing_File_Permissions" title="Read more about making files writable">writable by the server</a>, e.g. CHMOD 666.' ) ?> </p>
2003-12-08 02:55:38 +01:00
< form name = " file " action = " templates.php " method = " get " >
< input type = " text " name = " file " />
2004-04-26 01:57:43 +02:00
< input type = " submit " name = " submit " value = " <?php _e('Edit file »') ?> " />
2003-12-08 02:55:38 +01:00
</ form >
2004-09-22 08:33:54 +02:00
2004-04-26 01:57:43 +02:00
< p >< ? php _e ( 'Note: of course, you can also edit the files/templates in your text editor of choice and upload them. This online editor is only meant to be used when you don’t have access to a text editor or FTP client.' ) ?> </p>
2003-12-08 02:55:38 +01:00
</ div >
< ? php
2003-05-22 14:12:53 +02:00
break ;
}
2004-12-12 07:31:01 +01:00
include ( " admin-footer.php " );
2005-12-12 23:48:30 +01:00
?>