-
-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathslider.class.php
More file actions
111 lines (94 loc) · 2.7 KB
/
slider.class.php
File metadata and controls
111 lines (94 loc) · 2.7 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
103
104
105
106
107
108
109
110
<?php
abstract class WPPress_ACF_Field extends acf_field
{
var $label = "WPPress Slider";
function __construct() {
$this->name = $this->_create_name();
$this->category = __("Sliders", 'acf');
parent::__construct();
}
abstract protected function slider_output($data = false);
abstract protected function slider_data();
private function _create_name() {
return strtolower(trim(preg_replace('/[^a-zA-Z0-9]+/', '_', "wpp_acf_" . $this->label) , '_'));
}
function format_value($value, $field) {
if (!$value || $value == 'null') {
return false;
}
if (is_array($value)) {
foreach ($value as $k => $v) {
$f = $this->slider_output($v);
$value[$k] = array();
$value[$k] = $f;
}
} else {
$value = $this->slider_output($value);
}
return $value;
}
function render_field($field) {
$field['multiple'] = isset($field['multiple']) ? $field['multiple'] : false;
$field['disabled'] = isset($field['disabled']) ? $field['disabled'] : [];
$multiple = '';
if ($field['multiple']) {
$multiple = ' multiple="multiple" size="5" ';
$field['name'].= '[]';
}
echo '<select id="' . $field['name'] . '" class="' . $field['class'] . '" name="' . $field['name'] . '" ' . $multiple . ' >';
if ($field['allow_null']) {
echo '<option value="null"> - Select - </option>';
}
$sliders = $this->slider_data();
$disabled_slides=array_values($field['disabled']);
if (!empty($sliders)) {
foreach ($sliders as $key => $value) {
if(!in_array($key,$disabled_slides)){
$selected = '';
if (is_array($field['value'])) {
if (in_array($key, $field['value'])) {
$selected = 'selected="selected"';
}
} else {
if ($key == $field['value']) {
$selected = 'selected="selected"';
}
}
echo '<option value="' . $key . '" ' . $selected . '>' . $value . '</option>';
}
}
}
echo '</select>';
}
function render_field_settings($field) {
print_r($field);
$key = $field['name'];
$choices = $this->slider_data();
acf_render_field_setting($field, array(
'label' => __('Disabled Slides:'.json_encode($field['disabled']), 'acf') ,
'type' => 'select',
'name' => 'disabled',
'multiple' => 1,
'ui' => 1,
'allow_null' => 1,
'choices' => $choices,
'layout' => 'horizontal',
));
// allow_null
acf_render_field_setting( $field, array(
'label' => __('Allow Null?','acf'),
'instructions' => '',
'name' => 'allow_null',
'type' => 'true_false',
'ui' => 1,
));
// multiple
acf_render_field_setting( $field, array(
'label' => __('Select multiple values?','acf'),
'instructions' => '',
'name' => 'multiple',
'type' => 'true_false',
'ui' => 1,
));
}
}