2003-06-11 22:59:14 +00:00
<? php
2004-06-13 16:14:58 +00:00
require_once ( '../wp-includes/wp-l10n.php' );
$title = __ ( 'Options' );
2003-12-11 00:22:36 +00:00
$this_file = 'options.php' ;
2004-04-19 08:09:27 +00:00
$parent_file = 'options-general.php' ;
2003-06-11 22:59:14 +00:00
function add_magic_quotes ( $array ) {
foreach ( $array as $k => $v ) {
if ( is_array ( $v )) {
$array [ $k ] = add_magic_quotes ( $v );
} else {
$array [ $k ] = addslashes ( $v );
}
}
return $array ;
2003-06-12 22:48:52 +00:00
}
2003-06-11 22:59:14 +00:00
if ( ! get_magic_quotes_gpc ()) {
2004-04-20 22:56:47 +00:00
$_GET = add_magic_quotes ( $_GET );
$_POST = add_magic_quotes ( $_POST );
$_COOKIE = add_magic_quotes ( $_COOKIE );
2003-06-11 22:59:14 +00:00
}
2004-09-05 00:24:28 +00:00
$wpvarstoreset = array ( 'action' , 'standalone' );
2003-12-18 09:36:13 +00:00
for ( $i = 0 ; $i < count ( $wpvarstoreset ); $i += 1 ) {
$wpvar = $wpvarstoreset [ $i ];
if ( ! isset ( $$wpvar )) {
2004-04-20 22:56:47 +00:00
if ( empty ( $_POST [ " $wpvar " ])) {
if ( empty ( $_GET [ " $wpvar " ])) {
2003-12-18 09:36:13 +00:00
$$wpvar = '' ;
2003-06-11 22:59:14 +00:00
} else {
2004-04-20 22:56:47 +00:00
$$wpvar = $_GET [ " $wpvar " ];
2003-06-11 22:59:14 +00:00
}
} else {
2004-04-20 22:56:47 +00:00
$$wpvar = $_POST [ " $wpvar " ];
2003-06-11 22:59:14 +00:00
}
}
}
2003-06-12 22:48:52 +00:00
2003-06-11 22:59:14 +00:00
switch ( $action ) {
2004-02-26 14:37:15 +00:00
case 'update' :
2004-02-16 00:44:07 +00:00
$standalone = 1 ;
2004-04-14 21:23:52 +00:00
include_once ( './admin-header.php' );
2003-06-12 22:48:52 +00:00
$any_changed = 0 ;
2004-02-26 14:37:15 +00:00
if ( ! $_POST [ 'page_options' ]) {
foreach ( $_POST as $key => $value ) {
$option_names [] = "' $key '" ;
}
$option_names = implode ( ',' , $option_names );
} else {
$option_names = stripslashes ( $_POST [ 'page_options' ]);
2004-02-13 09:59:47 +00:00
}
2004-05-24 08:22:18 +00:00
$options = $wpdb -> get_results ( "SELECT $wpdb->options .option_id, option_name, option_type, option_value, option_admin_level FROM $wpdb->options WHERE option_name IN ( $option_names )" );
2004-03-11 08:51:50 +00:00
// HACK
// Options that if not there have 0 value but need to be something like "closed"
2004-09-17 13:05:06 +00:00
$nonbools = array ( 'default_ping_status' , 'default_comment_status' );
2003-06-12 22:48:52 +00:00
if ( $options ) {
foreach ( $options as $option ) {
// should we even bother checking?
if ( $user_level >= $option -> option_admin_level ) {
2004-06-18 00:22:09 +00:00
$old_val = $option -> option_value ;
2004-06-10 09:48:13 +00:00
$new_val = $_POST [ $option -> option_name ];
2004-09-17 13:05:06 +00:00
if ( ! $new_val ) {
if ( 3 == $option -> option_type )
$new_val = '' ;
else
$new_val = 0 ;
2003-06-11 22:59:14 +00:00
}
2004-09-17 13:05:06 +00:00
if ( in_array ( $option -> option_name , $nonbools ) && $new_val == '0' ) $new_val = 'closed' ;
if ( $new_val !== $old_val )
$result = $wpdb -> query ( "UPDATE $wpdb->options SET option_value = ' $new_val ' WHERE option_name = ' $option->option_name '" );
2003-06-11 22:59:14 +00:00
}
2004-09-17 13:05:06 +00:00
}
2003-06-12 22:48:52 +00:00
unset ( $cache_settings ); // so they will be re-read
get_settings ( 'siteurl' ); // make it happen now
} // end if options
if ( $any_changed ) {
2004-04-25 20:04:40 +00:00
$message = sprintf ( __ ( '%d setting(s) saved... ' ), $any_changed );
2003-06-11 22:59:14 +00:00
}
2003-06-12 22:48:52 +00:00
2004-09-05 00:24:28 +00:00
$referred = str_replace ( '?updated=true' , '' , $_SERVER [ 'HTTP_REFERER' ]);
$goback = str_replace ( '?updated=true' , '' , $_SERVER [ 'HTTP_REFERER' ]) . '?updated=true' ;
2004-10-05 16:22:31 +00:00
$goback = preg_replace ( '|[^a-z0-9-~+_.?#=&;,/:]|i' , '' , $goback );
2004-04-11 08:15:10 +00:00
header ( 'Location: ' . $goback );
2004-02-13 09:59:47 +00:00
break ;
2003-06-11 22:59:14 +00:00
default :
2003-06-12 22:48:52 +00:00
$standalone = 0 ;
2004-09-05 00:24:28 +00:00
include_once ( './admin-header.php' );
2004-04-11 08:15:10 +00:00
if ( $user_level <= 6 ) {
2004-04-25 20:04:40 +00:00
die ( __ ( "You have do not have sufficient permissions to edit the options for this blog." ));
2003-06-11 22:59:14 +00:00
}
?>
2003-12-17 01:07:40 +00:00
2004-09-04 22:09:21 +00:00
<?php include('options-head.php'); ?>
2004-04-11 08:15:10 +00:00
2003-06-11 22:59:14 +00:00
<div class="wrap">
2004-09-05 00:24:28 +00:00
<h2>All options</h2>
<form name="form" action="options.php" method="post">
2003-12-17 01:07:40 +00:00
<input type="hidden" name="action" value="update" />
2004-09-05 00:24:28 +00:00
<table width="98%">
2003-06-11 22:59:14 +00:00
<?php
2004-09-04 22:15:46 +00:00
$options = $wpdb->get_results("SELECT * FROM $wpdb->options ORDER BY option_name");
2004-04-24 21:21:19 +00:00
foreach ($options as $option) :
2004-09-05 00:24:28 +00:00
$value = htmlspecialchars($option->option_value);
echo "
<tr>
<th scope='row'><label for='$option->option_name'>$option->option_name</label></th>
<td><input type='text' name='$option->option_name' id='$option->option_name' size='30' value='$value' /></td>
<td>$option->option_description</td>
</tr>";
2004-04-24 21:21:19 +00:00
endforeach;
2003-06-11 22:59:14 +00:00
?>
</table>
2004-04-28 04:56:29 +00:00
<p class="submit"><input type="submit" name="Update" value="<?php _e('Update Settings »') ?>" /></p>
2003-12-17 01:07:40 +00:00
</form>
2003-06-11 22:59:14 +00:00
</div>
2004-09-05 00:24:28 +00:00
2003-06-11 22:59:14 +00:00
<?php
break;
2003-12-17 01:07:40 +00:00
} // end switch
2003-06-11 22:59:14 +00:00
2004-04-11 08:15:10 +00:00
include('admin-footer.php');
2004-09-17 13:05:06 +00:00
?>