PluginProbe
Advanced Custom Fields: Extended / 0.8.8.1
Advanced Custom Fields: Extended v0.8.8.1
0.9.2.7 0.9.2.6 0.9.2.5 0.8.6 0.8.6.1 0.8.6.3 0.8.6.5 0.8.6.6 0.8.6.7 0.8.6.8 0.8.6.9 0.8.7 0.8.7.1 0.8.7.2 0.8.7.3 0.8.7.4 0.8.7.5 0.8.7.6 0.8.8 0.8.8.1 0.8.8.10 0.8.8.11 0.8.8.2 0.8.8.3 0.8.8.4 All 92 releases
acf-extended / includes / fields / field-file.php
field-file.php
137 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if(!defined('ABSPATH'))
4 exit;
5
6 if(!class_exists('acfe_field_file')):
7
8 class acfe_field_file{
9
10 function __construct(){
11
12 add_filter('gettext', array($this, 'gettext'), 99, 3);
13 add_action('acf/include_admin_tools', array($this, 'acf_admin_tools'));
14 add_filter('acf/validate_field/type=file', array($this, 'validate_field'), 20);
15 add_action('acf/render_field_settings/type=file', array($this, 'render_field_settings'), 0);
16 add_filter('acf/prepare_field/type=file', array($this, 'prepare_field'));
17
18 add_filter('acf/prepare_field/name=min_size', array($this, 'prepare_min_max_size'));
19 add_filter('acf/prepare_field/name=max_size', array($this, 'prepare_min_max_size'));
20 add_filter('acf/prepare_field/name=library', array($this, 'prepare_library'));
21
22 }
23
24 function prepare_min_max_size($field){
25
26 if(acf_maybe_get($field['wrapper'], 'data-setting') !== 'file')
27 return $field;
28
29 if($field['_name'] === 'min_size'){
30
31 $field['label'] = __('File size', 'acf');
32 $field['prepend'] = 'Min size';
33
34 }elseif($field['_name'] === 'max_size'){
35
36 $field['prepend'] = 'Max size';
37 $field['wrapper']['data-append'] = 'min_size';
38
39 }
40
41 return $field;
42
43 }
44
45 function prepare_library($field){
46
47 if(acf_maybe_get($field['wrapper'], 'data-setting') !== 'file')
48 return $field;
49
50 $field['conditional_logic'] = array(
51 array(
52 array(
53 'field' => 'uploader',
54 'operator' => '==',
55 'value' => 'wp',
56 )
57 )
58 );
59
60 return $field;
61
62 }
63
64 function acf_admin_tools(){
65
66 // Do not remove "No file selected" in the ACF Admin Tool
67 remove_filter('gettext', array($this, 'gettext'), 99);
68
69 }
70
71 function gettext($translated_text, $text, $domain){
72
73 if($domain !== 'acf')
74 return $translated_text;
75
76 if($text === 'No file selected')
77 return '';
78
79 return $translated_text;
80
81 }
82
83 function validate_field($field){
84
85 if(!acf_maybe_get($field, 'acfe_uploader'))
86 return $field;
87
88 $field['uploader'] = $field['acfe_uploader'];
89 unset($field['acfe_uploader']);
90
91 return $field;
92
93 }
94
95 function render_field_settings($field){
96
97 acf_render_field_setting($field, array(
98 'label' => __('Uploader type'),
99 'name' => 'uploader',
100 'key' => 'uploader',
101 'instructions' => __('Choose the uploader type'),
102 'type' => 'radio',
103 'choices' => array(
104 '' => 'Default',
105 'wp' => 'WordPress',
106 'basic' => 'Browser',
107 ),
108 'default_value' => '',
109 'layout' => 'horizontal',
110 'return_format' => 'value',
111 ));
112
113 }
114
115 function prepare_field($field){
116
117 // ACFE Form force uploader type
118 if(acf_is_filter_enabled('acfe/form/uploader'))
119 acfe_unset($field, 'uploader');
120
121 if(!acf_maybe_get($field, 'uploader'))
122 $field['uploader'] = acf_get_setting('uploader');
123
124 if(!current_user_can('upload_files'))
125 $field['uploader'] = 'basic';
126
127 acf_update_setting('uploader', $field['uploader']);
128
129 return $field;
130
131 }
132
133 }
134
135 new acfe_field_file();
136
137 endif;