-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathacf-field_separator-v5.php
134 lines (106 loc) · 3 KB
/
acf-field_separator-v5.php
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
/*
* ACF Field Separator Class
*
* All the logic for this field type
*
* @class acf_field_separator
* @extends acf_field
* @package ACF
* @subpackage Fields
*/
if( ! class_exists('acf_field_separator') ) :
class acf_field_separator extends acf_field {
/*
* __construct
*
* This function will setup the field type data
*
* @type function
* @date 5/03/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function __construct() {
$this->name = 'separator';
$this->label = __("Separator",'acf');
$this->category = 'layout';
add_filter("acf/get_field_types", array($this, 'get_field_types'), 10, 1);
// do not delete!
parent::__construct();
}
/*
* render_field()
*
* Create the HTML interface for your field
*
* @param $field - an array holding all the field's data
*
* @type action
* @since 3.6
* @date 23/01/13
*/
function render_field( $field ) {
echo '<h2 class="acf-heading"><span>' . $field['label'] . '</span></h2>';
}
/*
* render_field_settings()
*
* Create extra options for your field. This is rendered when editing a field.
* The value of $field['name'] can be used (like bellow) to save extra data to the $field
*
* @param $field - an array holding all the field's data
*
* @type action
* @since 3.6
* @date 23/01/13
*/
function render_field_settings( $field ) {
acf_render_field_setting( $field, array(
'label' => __('Instructions','acf'),
'instructions' => '',
'type' => 'message',
'message' => 'Use "Field Separators" to better organize your edit screen by grouping fields together. The separator field just adds a lined heading between groups of fields, with the field Label as the text',
));
}
function field_group_admin_head() {
?>
<style type="text/css">
.acf-field-list .acf-field-object-separator tr[data-name="name"],
.acf-field-list .acf-field-object-separator tr[data-name="instructions"],
.acf-field-list .acf-field-object-separator tr[data-name="required"],
.acf-field-list .acf-field-object-separator tr[data-name="wrapper"],
.acf-field-list .acf-field-object-separator tr[data-name="warning"] {
display: none !important;
}
</style>
<script type="text/javascript">
acf.add_action('change_field_type', function( $el ){
var type = $el.attr('data-type');
// Remove field name
if ( type == 'separator' ) {
$el.find('tr[data-name="name"] input').val('').trigger('keyup');
}
});
acf.add_action('change_field_label', function( $el ){
var $label = $el.find('tr[data-name="label"]:first input'),
$name = $el.find('tr[data-name="name"]:first input'),
type = $el.attr('data-type');
if ( type == 'separator' ) {
$name.val('').trigger('change');
$el.find('> .field-info .li-field_name').text('');
return;
}
});
</script>
<?php
}
function input_admin_head() {
wp_enqueue_style( "acf-separator-css", plugin_dir_url( __FILE__ ) . 'css/input.css');
}
}
new acf_field_separator();
endif;
?>