PluginProbe
WP Ultimate Post Grid / 2.8.2
WP Ultimate Post Grid v2.8.2
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
wp-ultimate-post-grid / vendor / vafpress / classes / option / parser.php

parser.php in WP Ultimate Post Grid 2.8.2, at vendor/vafpress/classes/option/parser.php

130 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class VP_Option_Parser
4 {
5
6 public function parse_array_options($arr, $auto_group_naming)
7 {
8
9 $set = new VP_Option_Control_Set();
10
11 if(empty($arr['title']))
12 $arr['title'] = 'Vafpress';
13 if(empty($arr['logo']))
14 $arr['logo'] = 'vp-logo.png';
15
16 $set->set_title(isset($arr['title']) ? $arr['title'] : '')
17 ->set_logo(isset($arr['logo']) ? $arr['logo'] : '');
18
19 $auto_menu_index = 0;
20 $auto_menu = "the_menu_";
21
22 // Loops trough all the menus
23 if (!empty($arr['menus'])) foreach ($arr['menus'] as $menu)
24 {
25 // Create menu object and add to set
26 $vp_menu = new VP_Option_Control_Group_Menu();
27
28 if($auto_group_naming)
29 {
30 if(isset($menu['name']) and !empty($menu['name']))
31 {
32 $vp_menu->set_name($menu['name']);
33 }
34 else
35 {
36 $vp_menu->set_name($auto_menu . $auto_menu_index);
37 $auto_menu_index++;
38 }
39 }
40
41 $vp_menu->set_title(isset($menu['title']) ? $menu['title'] : '')
42 ->set_icon(isset($menu['icon']) ? $menu['icon'] : '');
43
44 $set->add_menu($vp_menu);
45
46 // Loops through every submenu in each menu
47 if (!empty($menu['menus']) and is_array($menu['menus'])) foreach ($menu['menus'] as $submenu)
48 {
49 $vp_submenu = new VP_Option_Control_Group_Menu();
50
51 if($auto_group_naming)
52 {
53 if(isset($submenu['name']) and !empty($submenu['name']))
54 {
55 $vp_submenu->set_name($submenu['name']);
56 }
57 else
58 {
59 $vp_submenu->set_name($auto_menu . $auto_menu_index);
60 $auto_menu_index++;
61 }
62 }
63
64 $vp_submenu->set_title(isset($submenu['title']) ? $submenu['title'] : '')
65 ->set_icon(isset($submenu['icon']) ? $submenu['icon'] : '');
66
67 $vp_menu->add_menu($vp_submenu);
68
69 // Loops through every control in each submenu
70 if (!empty($submenu['controls'])) foreach ($submenu['controls'] as $control)
71 {
72 if($control['type'] === 'section')
73 $control = $this->parse_section($control);
74 else
75 $control = $this->parse_field($control);
76 $vp_submenu->add_control($control);
77 }
78 }
79 else
80 {
81 // Loops through every control in each submenu
82 if (!empty($menu['controls']) and is_array($menu['controls'])) foreach ($menu['controls'] as $control)
83 {
84 if($control['type'] === 'section')
85 $control = $this->parse_section($control);
86 else
87 $control = $this->parse_field($control);
88 $vp_menu->add_control($control);
89 }
90 }
91 }
92
93 return $set;
94 }
95
96 private function parse_section($section)
97 {
98 $vp_sec = new VP_Option_Control_Group_Section();
99 $vp_sec->set_name(isset($section['name']) ? $section['name'] : '')
100 ->set_title(isset($section['title']) ? $section['title'] : '')
101 ->set_description(isset($section['description']) ? $section['description'] : '');
102
103 if(isset($section['dependency']))
104 {
105 $func = $section['dependency']['function'];
106 $field = $section['dependency']['field'];
107 $vp_sec->set_dependency($func . '|' . $field);
108 }
109
110 // Loops through every field in each submenu
111 if (!empty($section['fields'])) foreach ($section['fields'] as $field)
112 {
113 $vp_field = $this->parse_field($field);
114 $vp_sec->add_field($vp_field);
115 }
116 return $vp_sec;
117 }
118
119 private function parse_field($field)
120 {
121 $class = VP_Util_Reflection::field_class_from_type($field['type']);
122 $vp_field = call_user_func("$class::withArray", $field);
123 return $vp_field;
124 }
125
126 }
127
128 /**
129 * EOF
130 */