Plugin Directory

Changeset 2780533


Ignore:
Timestamp:
09/06/2022 08:37:26 AM (3 years ago)
Author:
motekar
Message:

Update to version 1.1 from GitHub

Location:
custom-upload-folder
Files:
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • custom-upload-folder/assets/screenshot-1.png

    • Property svn:mime-type changed from application/octet-stream to image/png
  • custom-upload-folder/assets/screenshot-2.png

    • Property svn:mime-type changed from application/octet-stream to image/png
  • custom-upload-folder/tags/1.1/custom-upload-folder.php

    r2320834 r2780533  
    33Plugin Name: Custom Upload Folder
    44Description: Upload files to custom directory in WP Media Library.
    5 Version: 1.0
     5Version: 1.1
    66Author: Motekar
    77Author URI: https://motekar.com/
     
    1111class CustomUploadFolder
    1212{
    13     private $default_folders = "assets\r\nassets/img\r\nassets/css\r\nassets/js";
     13    private $default_folders = "assets\r\nassets/img\r\nassets/css\r\nassets/js";
    1414
    15     public function __construct() {
    16         add_action( 'pre-upload-ui', [$this, 'custom_upload_folder_select'] );
     15    public function __construct()
     16    {
     17        add_action('pre-upload-ui', [$this, 'custom_upload_folder_select']);
    1718
    18         // Media table
    19         add_filter( 'manage_media_columns', function( $columns ) {
    20             $columns['folder'] = 'Folder';
    21             return $columns;
    22         } );
     19        // Media table
     20        add_filter('manage_media_columns', function ($columns) {
     21            $columns['folder'] = 'Folder';
    2322
    24         add_action( 'manage_media_custom_column', function( $column_name, $post_ID ) {
    25             if( 'folder' == $column_name ) {
    26                 $file = pathinfo( get_post_meta( $post_ID, '_wp_attached_file', true ) );
    27                 echo $file['dirname'];
    28             }
    29         }, 10, 2 );
     23            return $columns;
     24        });
    3025
    31         add_action( 'admin_init', [$this, 'admin_init'] );
     26        add_action('manage_media_custom_column', function ($column_name, $post_ID) {
     27            if ('folder' == $column_name) {
     28                $file = pathinfo(get_post_meta($post_ID, '_wp_attached_file', true));
     29                echo $file['dirname'];
     30            }
     31        }, 10, 2);
    3232
    33         // Check if from media uploader.
    34         if ( preg_match( '/(async-upload|media-new)\.php/', $_SERVER['REQUEST_URI'] ) ) {
    35             // before upload
    36             add_filter( 'wp_handle_upload_prefilter', function( $file ) {
    37                 add_filter( 'upload_dir', [$this, 'upload_dir'] );
     33        add_action('admin_init', [$this, 'admin_init']);
    3834
    39                 return $file;
    40             } );
     35        // Check if from media uploader.
     36        if (preg_match('/(async-upload|media-new)\.php/', $_SERVER['REQUEST_URI'])) {
     37            // before upload
     38            add_filter('wp_handle_upload_prefilter', function ($file) {
     39                add_filter('upload_dir', [$this, 'upload_dir']);
    4140
    42             // after
    43             add_filter( 'wp_handle_upload', function( $file ) {
    44                 remove_filter( 'upload_dir', [$this, 'upload_dir'] );
     41                return $file;
     42            });
    4543
    46                 return $file;
    47             } );
    48         }
    49     }
     44            // after
     45            add_filter('wp_handle_upload', function ($file) {
     46                remove_filter('upload_dir', [$this, 'upload_dir']);
    5047
    51     public function upload_dir( $dirs ) {
    52         $folder_in_cookie = sanitize_text_field( filter_input( INPUT_COOKIE, 'custom_upload_folder' ) );
     48                return $file;
     49            });
     50        }
     51    }
    5352
    54         if ( empty( $folder_in_cookie ) ) {
    55             return $dirs;
    56         }
     53    public function upload_dir($dirs)
     54    {
     55        $folder_in_cookie = sanitize_text_field(filter_input(INPUT_COOKIE, 'custom_upload_folder'));
    5756
    58         $folders = explode( "\r\n", esc_attr( get_option( 'custom_upload_folders' ) ) );
     57        if (empty($folder_in_cookie)) {
     58            return $dirs;
     59        }
    5960
    60         if ( in_array( $folder_in_cookie, $folders ) ) {
    61             $dirs['subdir'] = '/' . $folder_in_cookie;
    62             $dirs['path'] = $dirs['basedir'] . '/' . $folder_in_cookie;
    63             $dirs['url'] = $dirs['baseurl'] . '/' . $folder_in_cookie;
    64         }
     61        $folders = explode("\r\n", esc_attr(get_option('custom_upload_folders')));
    6562
    66         return $dirs;
    67     }
     63        if (in_array($folder_in_cookie, $folders)) {
     64            $dirs['subdir'] = '/'.$folder_in_cookie;
     65            $dirs['path'] = $dirs['basedir'].'/'.$folder_in_cookie;
     66            $dirs['url'] = $dirs['baseurl'].'/'.$folder_in_cookie;
     67        }
    6868
    69     function admin_init() {
    70         register_setting(
    71             'media',
    72             'custom_upload_folders',
    73             [
    74                 'type' => 'string',
    75                 'default' => $this->default_folders,
    76             ]
    77         );
     69        return $dirs;
     70    }
    7871
    79         add_settings_section(
    80             'custom_upload_folders_section',
    81             __( 'Custom Upload Folder', __FILE__ ),
    82             '',
    83             'media'
    84         );
     72    public function admin_init()
     73    {
     74        register_setting(
     75            'media',
     76            'custom_upload_folders',
     77            [
     78                'type' => 'string',
     79                'default' => $this->default_folders,
     80            ]
     81        );
    8582
    86         add_settings_field(
    87             'folders',
    88             __( 'Custom Upload Folders', __FILE__ ),
    89             array( $this, 'folders_input_callback' ),
    90             'media',
    91             'custom_upload_folders_section'
    92         );
    93     }
    94    
    95     function folders_input_callback() {
    96         ?>
    97         <textarea id="custom_upload_folders" name="custom_upload_folders" class="regular-text ltr" rows="7"><?php echo esc_attr( get_option( 'custom_upload_folders' ) ); ?></textarea>
     83        add_settings_section(
     84            'custom_upload_folders_section',
     85            __('Custom Upload Folder', __FILE__),
     86            '',
     87            'media'
     88        );
     89
     90        add_settings_field(
     91            'folders',
     92            __('Custom Upload Folders', __FILE__),
     93            [$this, 'folders_input_callback'],
     94            'media',
     95            'custom_upload_folders_section'
     96        );
     97    }
     98
     99    public function folders_input_callback()
     100    {
     101        ?>
     102        <textarea id="custom_upload_folders" name="custom_upload_folders" class="regular-text ltr" rows="7"><?php echo esc_attr(get_option('custom_upload_folders')); ?></textarea>
    98103        <?php
    99     }
     104    }
    100105
    101     function custom_upload_folder_select() {
    102         $folders  = explode( "\r\n", get_option( 'custom_upload_folders', $this->default_folders ) ); ?>
    103         <?php _e( 'Select Upload Folder', __FILE__ ); ?>
     106    public function custom_upload_folder_select()
     107    {
     108        $folders = explode("\r\n", get_option('custom_upload_folders', $this->default_folders)); ?>
     109        <?php _e('Select Upload Folder', __FILE__); ?>
    104110        <select class="js-custom-upload-folder" onchange="document.cookie='custom_upload_folder=' + event.target.value + ';path=<?php echo COOKIEPATH; ?>'">
    105             <option value=""><?php _e( 'Default', __FILE__ ); ?></option>
    106             <?php foreach ( $folders as $folder ) {
    107                 $folder = trim( $folder );
    108                 echo "<option value=\"{$folder}\">{$folder}</option>";
    109             } ?>
     111            <option value=""><?php _e('Default', __FILE__); ?></option>
     112            <?php foreach ($folders as $folder) {
     113            $folder = trim($folder);
     114            echo "<option value=\"{$folder}\">{$folder}</option>";
     115        } ?>
    110116        </select>
    111117        <img onload="
    112118                 var match = document.cookie.match( new RegExp( '(^| )custom_upload_folder=([^;]+)' ) );
    113119                 document.getElementsByClassName('js-custom-upload-folder')[0].value = match ? match[2] : '';
    114                  " 
     120                 "
    115121             src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" />
    116     <?php }
     122    <?php
     123    }
    117124}
    118125
  • custom-upload-folder/tags/1.1/readme.txt

    r2320834 r2780533  
    44Tags: media, upload, assets
    55Requires at least: 4.6
    6 Tested up to: 5.4
    7 Stable tag: 1.0
     6Tested up to: 6.0.2
     7Stable tag: 1.1
    88Requires PHP: 5.3
    99License: GPLv2 or later
     
    2929== Changelog ==
    3030
     31= 1.1 =
     32* WordPress 6.x support.
     33
    3134= 1.0 =
    3235* Add pre-select dropdown option.
  • custom-upload-folder/trunk/custom-upload-folder.php

    r2320834 r2780533  
    33Plugin Name: Custom Upload Folder
    44Description: Upload files to custom directory in WP Media Library.
    5 Version: 1.0
     5Version: 1.1
    66Author: Motekar
    77Author URI: https://motekar.com/
     
    1111class CustomUploadFolder
    1212{
    13     private $default_folders = "assets\r\nassets/img\r\nassets/css\r\nassets/js";
     13    private $default_folders = "assets\r\nassets/img\r\nassets/css\r\nassets/js";
    1414
    15     public function __construct() {
    16         add_action( 'pre-upload-ui', [$this, 'custom_upload_folder_select'] );
     15    public function __construct()
     16    {
     17        add_action('pre-upload-ui', [$this, 'custom_upload_folder_select']);
    1718
    18         // Media table
    19         add_filter( 'manage_media_columns', function( $columns ) {
    20             $columns['folder'] = 'Folder';
    21             return $columns;
    22         } );
     19        // Media table
     20        add_filter('manage_media_columns', function ($columns) {
     21            $columns['folder'] = 'Folder';
    2322
    24         add_action( 'manage_media_custom_column', function( $column_name, $post_ID ) {
    25             if( 'folder' == $column_name ) {
    26                 $file = pathinfo( get_post_meta( $post_ID, '_wp_attached_file', true ) );
    27                 echo $file['dirname'];
    28             }
    29         }, 10, 2 );
     23            return $columns;
     24        });
    3025
    31         add_action( 'admin_init', [$this, 'admin_init'] );
     26        add_action('manage_media_custom_column', function ($column_name, $post_ID) {
     27            if ('folder' == $column_name) {
     28                $file = pathinfo(get_post_meta($post_ID, '_wp_attached_file', true));
     29                echo $file['dirname'];
     30            }
     31        }, 10, 2);
    3232
    33         // Check if from media uploader.
    34         if ( preg_match( '/(async-upload|media-new)\.php/', $_SERVER['REQUEST_URI'] ) ) {
    35             // before upload
    36             add_filter( 'wp_handle_upload_prefilter', function( $file ) {
    37                 add_filter( 'upload_dir', [$this, 'upload_dir'] );
     33        add_action('admin_init', [$this, 'admin_init']);
    3834
    39                 return $file;
    40             } );
     35        // Check if from media uploader.
     36        if (preg_match('/(async-upload|media-new)\.php/', $_SERVER['REQUEST_URI'])) {
     37            // before upload
     38            add_filter('wp_handle_upload_prefilter', function ($file) {
     39                add_filter('upload_dir', [$this, 'upload_dir']);
    4140
    42             // after
    43             add_filter( 'wp_handle_upload', function( $file ) {
    44                 remove_filter( 'upload_dir', [$this, 'upload_dir'] );
     41                return $file;
     42            });
    4543
    46                 return $file;
    47             } );
    48         }
    49     }
     44            // after
     45            add_filter('wp_handle_upload', function ($file) {
     46                remove_filter('upload_dir', [$this, 'upload_dir']);
    5047
    51     public function upload_dir( $dirs ) {
    52         $folder_in_cookie = sanitize_text_field( filter_input( INPUT_COOKIE, 'custom_upload_folder' ) );
     48                return $file;
     49            });
     50        }
     51    }
    5352
    54         if ( empty( $folder_in_cookie ) ) {
    55             return $dirs;
    56         }
     53    public function upload_dir($dirs)
     54    {
     55        $folder_in_cookie = sanitize_text_field(filter_input(INPUT_COOKIE, 'custom_upload_folder'));
    5756
    58         $folders = explode( "\r\n", esc_attr( get_option( 'custom_upload_folders' ) ) );
     57        if (empty($folder_in_cookie)) {
     58            return $dirs;
     59        }
    5960
    60         if ( in_array( $folder_in_cookie, $folders ) ) {
    61             $dirs['subdir'] = '/' . $folder_in_cookie;
    62             $dirs['path'] = $dirs['basedir'] . '/' . $folder_in_cookie;
    63             $dirs['url'] = $dirs['baseurl'] . '/' . $folder_in_cookie;
    64         }
     61        $folders = explode("\r\n", esc_attr(get_option('custom_upload_folders')));
    6562
    66         return $dirs;
    67     }
     63        if (in_array($folder_in_cookie, $folders)) {
     64            $dirs['subdir'] = '/'.$folder_in_cookie;
     65            $dirs['path'] = $dirs['basedir'].'/'.$folder_in_cookie;
     66            $dirs['url'] = $dirs['baseurl'].'/'.$folder_in_cookie;
     67        }
    6868
    69     function admin_init() {
    70         register_setting(
    71             'media',
    72             'custom_upload_folders',
    73             [
    74                 'type' => 'string',
    75                 'default' => $this->default_folders,
    76             ]
    77         );
     69        return $dirs;
     70    }
    7871
    79         add_settings_section(
    80             'custom_upload_folders_section',
    81             __( 'Custom Upload Folder', __FILE__ ),
    82             '',
    83             'media'
    84         );
     72    public function admin_init()
     73    {
     74        register_setting(
     75            'media',
     76            'custom_upload_folders',
     77            [
     78                'type' => 'string',
     79                'default' => $this->default_folders,
     80            ]
     81        );
    8582
    86         add_settings_field(
    87             'folders',
    88             __( 'Custom Upload Folders', __FILE__ ),
    89             array( $this, 'folders_input_callback' ),
    90             'media',
    91             'custom_upload_folders_section'
    92         );
    93     }
    94    
    95     function folders_input_callback() {
    96         ?>
    97         <textarea id="custom_upload_folders" name="custom_upload_folders" class="regular-text ltr" rows="7"><?php echo esc_attr( get_option( 'custom_upload_folders' ) ); ?></textarea>
     83        add_settings_section(
     84            'custom_upload_folders_section',
     85            __('Custom Upload Folder', __FILE__),
     86            '',
     87            'media'
     88        );
     89
     90        add_settings_field(
     91            'folders',
     92            __('Custom Upload Folders', __FILE__),
     93            [$this, 'folders_input_callback'],
     94            'media',
     95            'custom_upload_folders_section'
     96        );
     97    }
     98
     99    public function folders_input_callback()
     100    {
     101        ?>
     102        <textarea id="custom_upload_folders" name="custom_upload_folders" class="regular-text ltr" rows="7"><?php echo esc_attr(get_option('custom_upload_folders')); ?></textarea>
    98103        <?php
    99     }
     104    }
    100105
    101     function custom_upload_folder_select() {
    102         $folders  = explode( "\r\n", get_option( 'custom_upload_folders', $this->default_folders ) ); ?>
    103         <?php _e( 'Select Upload Folder', __FILE__ ); ?>
     106    public function custom_upload_folder_select()
     107    {
     108        $folders = explode("\r\n", get_option('custom_upload_folders', $this->default_folders)); ?>
     109        <?php _e('Select Upload Folder', __FILE__); ?>
    104110        <select class="js-custom-upload-folder" onchange="document.cookie='custom_upload_folder=' + event.target.value + ';path=<?php echo COOKIEPATH; ?>'">
    105             <option value=""><?php _e( 'Default', __FILE__ ); ?></option>
    106             <?php foreach ( $folders as $folder ) {
    107                 $folder = trim( $folder );
    108                 echo "<option value=\"{$folder}\">{$folder}</option>";
    109             } ?>
     111            <option value=""><?php _e('Default', __FILE__); ?></option>
     112            <?php foreach ($folders as $folder) {
     113            $folder = trim($folder);
     114            echo "<option value=\"{$folder}\">{$folder}</option>";
     115        } ?>
    110116        </select>
    111117        <img onload="
    112118                 var match = document.cookie.match( new RegExp( '(^| )custom_upload_folder=([^;]+)' ) );
    113119                 document.getElementsByClassName('js-custom-upload-folder')[0].value = match ? match[2] : '';
    114                  " 
     120                 "
    115121             src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" />
    116     <?php }
     122    <?php
     123    }
    117124}
    118125
  • custom-upload-folder/trunk/readme.txt

    r2320834 r2780533  
    44Tags: media, upload, assets
    55Requires at least: 4.6
    6 Tested up to: 5.4
    7 Stable tag: 1.0
     6Tested up to: 6.0.2
     7Stable tag: 1.1
    88Requires PHP: 5.3
    99License: GPLv2 or later
     
    2929== Changelog ==
    3030
     31= 1.1 =
     32* WordPress 6.x support.
     33
    3134= 1.0 =
    3235* Add pre-select dropdown option.
Note: See TracChangeset for help on using the changeset viewer.