folders.php
2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
/**
* @Description : Create directory/folder
* @Package : Drag & Drop Multiple File Upload - Contact Form 7
* @Author : CodeDropz
*/
if ( ! defined( 'ABSPATH' ) || ! defined('dnd_upload_cf7') || ! defined('dnd_upload_cf7_PRO') ) {
exit;
}
class CodeDropz_Uploader_Folders {
private static $instance = null;
public $dir = null;
public static function get_instance() {
if( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
public function __construct(){
$helper = CodeDropz_Uploader_Helpers::get_instance();
// Set Upload Path
$_dir = '';
// Folder Option
if( get_option('drag_n_drop_folder_option') ) {
// Getting folder option name
$folder_option = get_option('drag_n_drop_folder_option');
// Get choosen folder type
if( $folder_option ){
// User
$user = $helper->get_user();
switch( $folder_option ) {
case 'dynamic_folder':
case 'cf7_fields':
$_dir = null;
break;
case 'date_n_time':
$date_format = apply_filters('dnd_cf7_dir_date_format', 'Y-m-d-h-i-s');
$_dir = $helper->get_date( $date_format );
break;
case 'user_login':
$user_prefix = apply_filters('dnd_cf7_user_prefix', 'user-');
$_dir = ( ( is_user_logged_in() && $user->exists() ) ? $user_prefix . sanitize_title( $user->display_name ) : 'user-file-'.time() );
break;
case 'generated':
$rand_max = mt_getrandmax();
$_dir = zeroise( mt_rand( 0, $rand_max ), strlen( $rand_max ) );
break;
default:
$_dir = ( get_option('drag_n_drop_custom_folder') ? get_option('drag_n_drop_custom_folder') : 'custom-' . $helper->get_date('m-d-y') );
break;
}
}
}
// Assign new dir
$this->dir = ( $_dir ? $_dir : wp_dndcf7_tmp_folder );
}
// Set folder/Dir
public function set_folder( $dir ) {
if( $dir ){
$this->dir = wp_basename( $dir );
}
}
// Get folder/dir (will display in hidden field)
public function get_folder(){
return $this->dir;
}
// Create directory
public function create_folder( $directory, $create = false ) {
// Create dir
if( $create ) {
if( ! is_dir( $directory ) ) {
wp_mkdir_p( $directory );
}
if( file_exists( $directory ) ) {
return wp_normalize_path( realpath( $directory ) );
}
}
// Get current IDR
return wp_normalize_path( realpath( $directory ) );
}
}