directory.php
2.83 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
<?php
/**
* @Description : Process directory
* @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_Directory {
private static $instance = null;
public $wp_dir = array();
public static function get_instance() {
if( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
public function __construct(){
$this->wp_dir = apply_filters( 'dnd_cf7_upload_dir', wp_upload_dir() );
// Base upload URL
$base_url = $this->wp_dir['baseurl'];
// Create upload folder where files being stored.
if( defined('wp_dndcf7_upload_folder') ) {
// concat path and defined folder dir
$wp_dndcf7_folder = trailingslashit( wp_normalize_path( $this->wp_dir['basedir'] ) ) . wp_dndcf7_upload_folder;
// Upload Path override in WP admin Settings
if( $custom_dir = get_option('drag_n_drop_upload_dir') ) {
$wp_dndcf7_folder = trailingslashit( wp_normalize_path( $custom_dir ) ) . wp_dndcf7_upload_folder;
$base_url = str_replace(
wp_normalize_path( ABSPATH ),
trailingslashit( site_url() ),
empty( wp_dndcf7_upload_folder ) ? $wp_dndcf7_folder : trailingslashit( dirname( $wp_dndcf7_folder ) )
);
}
// Format correct slashes
$base_url = preg_replace( '/\\\\/', '/', $base_url );
// Create dir
if( ! is_dir( $wp_dndcf7_folder ) ) {
wp_mkdir_p( $wp_dndcf7_folder );
// Generate .htaccess file`
$htaccess_file = path_join( $wp_dndcf7_folder, '.htaccess' );
if ( ! file_exists( $htaccess_file ) ) {
if ( $handle = fopen( $htaccess_file, 'w' ) ) {
fwrite( $handle, "Options -Indexes \n <Files *.php> \n deny from all \n </Files>" );
fclose( $handle );
}
}
}
// override default wordpress basedir and baseurl
$this->wp_dir['basedir'] = apply_filters( 'dnd_cf7_base_dir', untrailingslashit( $wp_dndcf7_folder ) );
$this->wp_dir['baseurl'] = apply_filters( 'dnd_cf7_base_url', untrailingslashit( path_join( $base_url , wp_dndcf7_upload_folder ) ) );
}
}
// Get base dir and url
public function get_dir(){
return $this->wp_dir;
}
}