Make WordPress Core

Ticket #10559: 10559.001.2.diff

File 10559.001.2.diff, 2.3 KB (added by aaroncampbell, 15 years ago)
  • trunk/wp-includes/functions.php

     
    20232023 * @uses apply_filters() Calls 'upload_dir' on returned array.
    20242024 *
    20252025 * @param string $time Optional. Time formatted in 'yyyy/mm'.
     2026 * @param string $time Optional. Sub-directory to put files in.
    20262027 * @return array See above for description.
    20272028 */
    2028 function wp_upload_dir( $time = null ) {
     2029function wp_upload_dir( $time = null, $subdir = '' ) {
    20292030        $siteurl = get_option( 'siteurl' );
    20302031        $upload_path = get_option( 'upload_path' );
    20312032        $upload_path = trim($upload_path);
     
    20522053        $bdir = $dir;
    20532054        $burl = $url;
    20542055
    2055         $subdir = '';
     2056        if ( empty($subdir) || strpos($subdir, '..') !== false ) {
     2057                $subdir = '';
     2058        } else {
     2059                $subdir = '/' . trim( $subdir, '/' );
     2060        }
    20562061        if ( get_option( 'uploads_use_yearmonth_folders' ) ) {
    20572062                // Generate the yearly and monthly dirs
    20582063                if ( !$time )
    20592064                        $time = current_time( 'mysql' );
    20602065                $y = substr( $time, 0, 4 );
    20612066                $m = substr( $time, 5, 2 );
    2062                 $subdir = "/$y/$m";
     2067                $subdir .= "/$y/$m";
    20632068        }
    20642069
    20652070        $dir .= $subdir;
     
    32843289                        $display = $zone['t_continent'];
    32853290                } else {
    32863291                        // It's inside a continent group
    3287                        
     3292
    32883293                        // Continent optgroup
    32893294                        if ( !isset( $zonen[$key - 1] ) || $zonen[$key - 1]['continent'] !== $zone['continent'] ) {
    32903295                                $label = ( 'Etc' === $zone['continent'] ) ? __( 'Manual offsets' ) : $zone['t_continent'];
    32913296                                $structure[] = '<optgroup label="'. esc_attr( $label ) .'">';
    32923297                        }
    3293                        
     3298
    32943299                        // Add the city to the value
    32953300                        $value[] = $zone['city'];
    32963301                        if ( 'Etc' === $zone['continent'] ) {
     
    33183323                        $selected = 'selected="selected" ';
    33193324                }
    33203325                $structure[] = '<option ' . $selected . 'value="' . esc_attr( $value ) . '">' . esc_html( $display ) . "</option>";
    3321                
     3326
    33223327                // Close continent optgroup
    33233328                if ( !empty( $zone['city'] ) && ( !isset($zonen[$key + 1]) || (isset( $zonen[$key + 1] ) && $zonen[$key + 1]['continent'] !== $zone['continent']) ) ) {
    33243329                        $structure[] = '</optgroup>';
     
    33403345
    33413346/**
    33423347 * Permanently deletes posts, pages, attachments, and comments which have been in the trash for EMPTY_TRASH_DAYS.
    3343  * 
     3348 *
    33443349 * @since 2.9.0
    33453350 *
    33463351 * @return void