PluginProbe
Responsive Menu – Create Mobile-Friendly Menu / 3.1.5
Responsive Menu – Create Mobile-Friendly Menu v3.1.5
4.7.3 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 All 90 releases
responsive-menu / app / Validation / Validator.php

Validator.php in Responsive Menu – Create Mobile-Friendly Menu 3.1.5, at app/Validation/Validator.php

133 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ResponsiveMenu\Validation;
4
5 class Validator {
6
7 private $errors;
8
9 public function validate($options) {
10 foreach($this->validation_map as $validator_name => $options_list):
11 foreach($options_list as $option):
12 if(isset($options[$option])):
13 $validator_obj = 'ResponsiveMenu\Validation\Validators\\' . $validator_name;
14 $validator = new $validator_obj($options[$option]);
15 if(!$validator->validate()):
16 $nice_name = str_replace('_', ' ', ucwords($option));
17 $this->errors[$option][] = 'Validation failed on <a class="validation-error scroll-to-option" href="#responsive-menu-' . str_replace('_', '-', $option) . '">' . $nice_name . '</a>: ' . $validator->getErrorMessage();
18 endif;
19 endif;
20 endforeach;
21 endforeach;
22
23 if(!empty($this->errors))
24 return false;
25
26 return true;
27 }
28
29 public function getErrors() {
30 return $this->errors;
31 }
32
33 private $validation_map = [
34
35 // Numeric Validators
36 'Number' => [
37 'breakpoint',
38 'button_line_width',
39 'button_line_height',
40 'button_line_margin',
41 'button_width',
42 'button_height',
43 'button_top',
44 'animation_speed',
45 'transition_speed',
46 'button_font_size',
47 'button_title_line_height',
48 'menu_width',
49 'menu_title_font_size',
50 'menu_border_width',
51 'menu_font_size',
52 'menu_links_height',
53 'submenu_arrow_height',
54 'submenu_arrow_width',
55 'header_bar_height',
56 'header_bar_font_size',
57 'single_menu_height',
58 'single_menu_font_size',
59 'single_menu_submenu_font_size',
60 'single_menu_submenu_height',
61 'menu_depth_0',
62 'menu_depth_1',
63 'menu_depth_2',
64 'menu_depth_3',
65 'menu_depth_4',
66 'menu_depth_5',
67 ],
68
69 // Positive Digits
70 'Positive' => [
71 'breakpoint',
72 ],
73
74 // Colour Validators
75 'Colour' => [
76 'button_background_colour',
77 'button_background_colour_hover',
78 'button_line_colour',
79 'button_text_colour',
80 'menu_background_colour',
81 'menu_item_background_colour',
82 'menu_item_background_hover_colour',
83 'menu_item_border_colour',
84 'menu_item_border_colour_hover',
85 'menu_title_background_colour',
86 'menu_title_background_hover_colour',
87 'menu_current_item_background_colour',
88 'menu_current_item_background_hover_colour',
89 'menu_current_item_border_colour',
90 'menu_current_item_border_hover_colour',
91 'menu_title_colour',
92 'menu_title_hover_colour',
93 'menu_link_colour',
94 'menu_link_hover_colour',
95 'menu_current_link_colour',
96 'menu_current_link_hover_colour',
97 'menu_sub_arrow_border_colour',
98 'menu_sub_arrow_border_hover_colour',
99 'menu_sub_arrow_border_colour_active',
100 'menu_sub_arrow_border_hover_colour_active',
101 'menu_sub_arrow_background_colour',
102 'menu_sub_arrow_background_hover_colour',
103 'menu_sub_arrow_background_colour_active',
104 'menu_sub_arrow_background_hover_colour_active',
105 'menu_sub_arrow_shape_colour',
106 'menu_sub_arrow_shape_hover_colour',
107 'menu_sub_arrow_shape_colour_active',
108 'menu_sub_arrow_shape_hover_colour_active',
109 'menu_additional_content_colour',
110 'menu_overlay_colour',
111 'menu_search_box_text_colour',
112 'menu_search_box_border_colour',
113 'menu_search_box_background_colour',
114 'menu_search_box_placeholder_colour',
115 'single_menu_item_link_colour',
116 'single_menu_item_link_colour_hover',
117 'single_menu_item_background_colour',
118 'single_menu_item_background_colour_hover',
119 'single_menu_item_submenu_link_colour',
120 'single_menu_item_submenu_link_colour_hover',
121 'single_menu_item_submenu_background_colour',
122 'single_menu_item_submenu_background_colour_hover',
123 'header_bar_background_color',
124 'header_bar_text_color',
125 'button_background_colour_active',
126 'button_line_colour_hover',
127 'button_line_colour_active',
128 'menu_container_background_colour'
129 ]
130
131 ];
132
133 }