diff --git a/wp-admin/options-misc.php b/wp-admin/options-misc.php
index 994b5ebc3..149734103 100644
--- a/wp-admin/options-misc.php
+++ b/wp-admin/options-misc.php
@@ -10,15 +10,34 @@ include('admin-header.php');
-
diff --git a/wp-admin/options.php b/wp-admin/options.php
index 106d87d7f..de5999c65 100644
--- a/wp-admin/options.php
+++ b/wp-admin/options.php
@@ -47,20 +47,21 @@ case 'update':
// Options that if not there have 0 value but need to be something like "closed"
$nonbools = array('default_ping_status', 'default_comment_status');
if ($options) {
- foreach ($options as $option) {
- $option = trim($option);
- $value = trim(stripslashes($_POST[$option]));
- if( in_array($option, $nonbools) && ( $value == '0' || $value == '') )
- $value = 'closed';
-
- if( $option == 'blogdescription' || $option == 'blogname' )
- if (current_user_can('unfiltered_html') == false)
- $value = wp_filter_post_kses( $value );
-
- if ( update_option($option, $value) )
- $any_changed++;
- }
- }
+ foreach ($options as $option) {
+ $option = trim($option);
+ $value = trim(stripslashes($_POST[$option]));
+ if( in_array($option, $nonbools) && ( $value == '0' || $value == '') )
+ $value = 'closed';
+
+ if( $option == 'blogdescription' || $option == 'blogname' )
+ if (current_user_can('unfiltered_html') == false)
+ $value = wp_filter_post_kses( $value );
+
+ if (update_option($option, $value) ) {
+ $any_changed++;
+ }
+ }
+ }
if ($any_changed) {
// If siteurl or home changed, reset cookies.
@@ -78,10 +79,10 @@ case 'update':
//$message = sprintf(__('%d setting(s) saved... '), $any_changed);
}
- $referred = remove_query_arg('updated' , $_SERVER['HTTP_REFERER']);
- $goback = add_query_arg('updated', 'true', $_SERVER['HTTP_REFERER']);
- $goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);
- wp_redirect($goback);
+ $referred = remove_query_arg('updated' , $_SERVER['HTTP_REFERER']);
+ $goback = add_query_arg('updated', 'true', $_SERVER['HTTP_REFERER']);
+ $goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);
+ wp_redirect($goback);
break;
default:
diff --git a/wp-admin/upgrade-schema.php b/wp-admin/upgrade-schema.php
index 570030e1d..d7835986f 100644
--- a/wp-admin/upgrade-schema.php
+++ b/wp-admin/upgrade-schema.php
@@ -216,10 +216,14 @@ function populate_options() {
add_option('html_type', 'text/html');
// 1.5.1
add_option('use_trackback', 0);
- // 1.6
+ // 2.0
add_option('default_role', 'subscriber');
add_option('rich_editing', 'true');
add_option('db_version', $wp_db_version);
+ // 2.1
+ add_option('uploads_use_yearmonth_folders', 1);
+ add_option('fileupload_realpath', ABSPATH . 'wp-content/uploads');
+ add_option('fileupload_url', ''); //if this is empty it will be obtained from fileupload_realpath
// Delete unused options
$unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog');
diff --git a/wp-includes/functions-post.php b/wp-includes/functions-post.php
index cadc2b750..afe6666b1 100644
--- a/wp-includes/functions-post.php
+++ b/wp-includes/functions-post.php
@@ -876,23 +876,24 @@ function wp_mkdir_p($target) {
// Returns an array containing the current upload directory's path and url, or an error message.
function wp_upload_dir() {
- $dir = trim(get_settings('fileupload_realpath'));
- $url = trim(get_settings('fileupload_url'));
+ $siteurl = get_settings('siteurl');
+ //prepend ABSPATH to $dir and $siteurl to $url if they're not already there
+ $dir = ABSPATH . str_replace(ABSPATH, '', trim(get_settings('fileupload_realpath')));
+ $url = $siteurl . str_replace($siteurl, '', trim(get_settings('fileupload_url')));
- $custom = true;
- if ( empty($dir) || empty($url) ) {
+ if ( $dir == ABSPATH ) { //the option was empty
$dir = ABSPATH . 'wp-content/uploads';
- $url = get_option('siteurl') . '/wp-content/uploads';
- $custom = false;
+ }
+ if ( $url == $siteurl ) { //the option was empty
+ $url = get_option('siteurl') . '/' . str_replace(ABSPATH, '', $dir);
}
if ( defined('UPLOADS') ) {
$dir = ABSPATH . UPLOADS;
$url = get_option('siteurl') . '/' . UPLOADS;
- $custom = false;
}
- if ( ! $custom) {
+ if ( get_settings('uploads_yearmonth_folders')) {
// Generate the yearly and monthly dirs
$time = current_time( 'mysql' );
$y = substr( $time, 0, 4 );
diff --git a/wp-includes/functions.php b/wp-includes/functions.php
index a310a302b..3f5bd0f67 100644
--- a/wp-includes/functions.php
+++ b/wp-includes/functions.php
@@ -355,12 +355,13 @@ function update_option($option_name, $newvalue) {
// If the new and old values are the same, no need to update.
$oldvalue = get_option($option_name);
- if ( $newvalue == $oldvalue )
+ if ( $newvalue == $oldvalue ) {
return false;
+ }
- if ( false === $oldvalue ) {
- add_option($option_name, $newvalue);
- return true;
+ if ( false === $oldvalue ) {
+ add_option($option_name, $newvalue);
+ return true;
}
if ( is_array($newvalue) || is_object($newvalue) )