Changeset 11503 for trunk/wp-includes/functions.php
- Timestamp:
- 06/01/2009 11:31:34 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/wp-includes/functions.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/functions.php
r11493 r11503 784 784 setcookie( 'wp-settings-' . $user->ID, $settings, time() + 31536000, SITECOOKIEPATH ); 785 785 setcookie( 'wp-settings-time-' . $user->ID, time(), time() + 31536000, SITECOOKIEPATH ); 786 $_COOKIE['wp-settings-' . $user->ID] = $settings; 786 787 } 787 788 … … 799 800 function get_user_setting( $name, $default = false ) { 800 801 801 $arr = get_all_user_settings(); 802 803 return isset($arr[$name]) ? $arr[$name] : $default; 802 $all = get_all_user_settings(); 803 804 return isset($all[$name]) ? $all[$name] : $default; 805 } 806 807 /** 808 * Add or update user interface setting. 809 * 810 * Both $name and $value can contain only ASCII letters, numbers and underscores. 811 * This function has to be used before any output has started as it calls setcookie(). 812 * 813 * @package WordPress 814 * @subpackage Option 815 * @since 2.8.0 816 * 817 * @param string $name The name of the setting. 818 * @param string $value The value for the setting. 819 * @return bool true if set successfully/false if not. 820 */ 821 function set_user_setting( $name, $value ) { 822 823 if ( headers_sent() ) 824 return false; 825 826 $all = get_all_user_settings(); 827 $name = preg_replace( '/[^A-Za-z0-9_]+/', '', $name ); 828 829 if ( empty($name) ) 830 return false; 831 832 $all[$name] = $value; 833 834 return wp_set_all_user_settings($all); 804 835 } 805 836 … … 808 839 * 809 840 * Deleting settings would reset them to the defaults. 841 * This function has to be used before any output has started as it calls setcookie(). 810 842 * 811 843 * @package WordPress … … 814 846 * 815 847 * @param mixed $names The name or array of names of the setting to be deleted. 848 * @return bool true if deleted successfully/false if not. 816 849 */ 817 850 function delete_user_setting( $names ) { 818 global $current_user; 819 820 $arr = get_all_user_settings(); 851 852 if ( headers_sent() ) 853 return false; 854 855 $all = get_all_user_settings(); 821 856 $names = (array) $names; 822 857 823 858 foreach ( $names as $name ) { 824 if ( isset($a rr[$name]) ) {825 unset($a rr[$name]);826 $ settings = '';859 if ( isset($all[$name]) ) { 860 unset($all[$name]); 861 $deleted = true; 827 862 } 828 863 } 829 864 830 if ( isset($settings) ) { 831 foreach ( $arr as $k => $v ) 832 $settings .= $k . '=' . $v . '&'; 833 834 $settings = rtrim($settings, '&'); 835 836 update_user_option( $current_user->ID, 'user-settings', $settings ); 837 setcookie('wp-settings-' . $current_user->ID, $settings, time() + 31536000, SITECOOKIEPATH); 838 } 865 if ( isset($deleted) ) 866 return wp_set_all_user_settings($all); 867 868 return false; 839 869 } 840 870 … … 849 879 */ 850 880 function get_all_user_settings() { 881 global $_updated_user_settings; 882 851 883 if ( ! $user = wp_get_current_user() ) 852 884 return array(); 853 885 854 $arr = array(); 886 if ( isset($_updated_user_settings) && is_array($_updated_user_settings) ) 887 return $_updated_user_settings; 888 889 $all = array(); 855 890 if ( isset($_COOKIE['wp-settings-' . $user->ID]) ) { 856 891 $cookie = preg_replace( '/[^A-Za-z0-9=&_]/', '', $_COOKIE['wp-settings-' . $user->ID] ); 857 892 858 893 if ( $cookie && strpos($cookie, '=') ) // the '=' cannot be 1st char 859 parse_str($cookie, $arr); 860 861 } elseif ( isset($user->wp_usersettings) && is_string($user->wp_usersettings) ) { 862 parse_str( $user->wp_usersettings, $arr ); 863 } 864 865 return $arr; 894 parse_str($cookie, $all); 895 896 } else { 897 $option = get_user_option('user-settings', $user->ID); 898 if ( $option && is_string($option) ) 899 parse_str( $option, $all ); 900 } 901 902 return $all; 903 } 904 905 /** 906 * Private. Set all user interface settings. 907 * 908 * @package WordPress 909 * @subpackage Option 910 * @since 2.8.0 911 * 912 */ 913 function wp_set_all_user_settings($all) { 914 global $_updated_user_settings; 915 916 if ( ! $user = wp_get_current_user() ) 917 return false; 918 919 $_updated_user_settings = $all; 920 $settings = ''; 921 foreach ( $all as $k => $v ) { 922 $v = preg_replace( '/[^A-Za-z0-9_]+/', '', $v ); 923 $settings .= $k . '=' . $v . '&'; 924 } 925 926 $settings = rtrim($settings, '&'); 927 928 update_user_option( $user->ID, 'user-settings', $settings, false ); 929 update_user_option( $user->ID, 'user-settings-time', time(), false ); 930 931 return true; 866 932 } 867 933 … … 877 943 return; 878 944 879 delete_usermeta( $user->ID, 'user-settings');880 setcookie('wp-settings-' .$user->ID, ' ', time() - 31536000, SITECOOKIEPATH);945 update_user_option( $user->ID, 'user-settings', '', false ); 946 setcookie('wp-settings-' . $user->ID, ' ', time() - 31536000, SITECOOKIEPATH); 881 947 } 882 948
Note: See TracChangeset
for help on using the changeset viewer.