From 88e32d34fce5900bcae0fdbea27ff1e69fcfac89 Mon Sep 17 00:00:00 2001 From: ryan Date: Mon, 9 Jan 2006 22:24:57 +0000 Subject: [PATCH] Add upload folder options. Props David House. fixes #2206 git-svn-id: http://svn.automattic.com/wordpress/trunk@3413 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/options-misc.php | 23 +++++++++++++++++++-- wp-admin/options.php | 37 +++++++++++++++++----------------- wp-admin/upgrade-schema.php | 6 +++++- wp-includes/functions-post.php | 17 ++++++++-------- wp-includes/functions.php | 9 +++++---- 5 files changed, 59 insertions(+), 33 deletions(-) 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) )