PluginProbe
Responsive Menu – Create Mobile-Friendly Menu / 3.1.2
Responsive Menu – Create Mobile-Friendly Menu v3.1.2
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.2, at app/Validation/Validator.php

127 lines 4.5 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" 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 ],
62
63 // Positive Digits
64 'Positive' => [
65 'breakpoint',
66 ],
67
68 // Colour Validators
69 'Colour' => [
70 'button_background_colour',
71 'button_background_colour_hover',
72 'button_line_colour',
73 'button_text_colour',
74 'menu_background_colour',
75 'menu_item_background_colour',
76 'menu_item_background_hover_colour',
77 'menu_item_border_colour',
78 'menu_item_border_colour_hover',
79 'menu_title_background_colour',
80 'menu_title_background_hover_colour',
81 'menu_current_item_background_colour',
82 'menu_current_item_background_hover_colour',
83 'menu_current_item_border_colour',
84 'menu_current_item_border_hover_colour',
85 'menu_title_colour',
86 'menu_title_hover_colour',
87 'menu_link_colour',
88 'menu_link_hover_colour',
89 'menu_current_link_colour',
90 'menu_current_link_hover_colour',
91 'menu_sub_arrow_border_colour',
92 'menu_sub_arrow_border_hover_colour',
93 'menu_sub_arrow_border_colour_active',
94 'menu_sub_arrow_border_hover_colour_active',
95 'menu_sub_arrow_background_colour',
96 'menu_sub_arrow_background_hover_colour',
97 'menu_sub_arrow_background_colour_active',
98 'menu_sub_arrow_background_hover_colour_active',
99 'menu_sub_arrow_shape_colour',
100 'menu_sub_arrow_shape_hover_colour',
101 'menu_sub_arrow_shape_colour_active',
102 'menu_sub_arrow_shape_hover_colour_active',
103 'menu_additional_content_colour',
104 'menu_overlay_colour',
105 'menu_search_box_text_colour',
106 'menu_search_box_border_colour',
107 'menu_search_box_background_colour',
108 'menu_search_box_placeholder_colour',
109 'single_menu_item_link_colour',
110 'single_menu_item_link_colour_hover',
111 'single_menu_item_background_colour',
112 'single_menu_item_background_colour_hover',
113 'single_menu_item_submenu_link_colour',
114 'single_menu_item_submenu_link_colour_hover',
115 'single_menu_item_submenu_background_colour',
116 'single_menu_item_submenu_background_colour_hover',
117 'header_bar_background_color',
118 'header_bar_text_color',
119 'button_background_colour_active',
120 'button_line_colour_hover',
121 'button_line_colour_active',
122 'menu_container_background_colour'
123 ]
124
125 ];
126
127 }