PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.14.0
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.14.0
2.14.0 2.13.0 2.13.1 2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 All 81 releases
← All changes | includes/blocks/menu-child-sub/block.php +27 -52 2.9.1 → 2.14.0 View file →
@@ -1,7 +1,11 @@
1 1 <?php
2 2 namespace ABlocks\Blocks\MenuChildSub;
3 3
4 +if ( ! defined( 'ABSPATH' ) ) {
5 + exit;
6 +}
7 +
4 8 use ABlocks\Controls\Typography;
5 9 use ABlocks\Controls\Dimensions;
6 10 use ABlocks\Controls\Border;
7 11 use ABlocks\Controls\BoxShadow;
@@ -7,9 +11,9 @@
7 11 use ABlocks\Controls\BoxShadow;
8 12 use ABlocks\Controls\Range;
9 13 use ABlocks\Classes\BlockBaseAbstract;
10 14 use ABlocks\Classes\CssGenerator;
11 -
15 +use ABlocks\Controls\Color;
12 16 class Block extends BlockBaseAbstract {
13 17 protected $parent_block_name = 'menu';
14 18 protected $block_name = 'menu-child-sub';
15 19
@@ -20,27 +24,31 @@
20 24 $css_generator->add_class_styles(
21 25 '{{WRAPPER}}.ablocks-block--menu-child-sub',
22 26 $this->get_wrapper_css( $attributes, '' ),
23 27 $this->get_wrapper_css( $attributes, 'Tablet' ),
24 - $this->get_wrapper_css( $attributes, 'Mobile' )
28 + $this->get_wrapper_css( $attributes, 'Mobile' ),
29 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_wrapper_css( $attributes, $device ); } )
25 30 );
26 31 $css_generator->add_class_styles(
27 32 '{{WRAPPER}}.ablocks-block--menu-child-sub:hover',
28 33 $this->get_wrapper_hover_css( $attributes, '' ),
29 34 $this->get_wrapper_hover_css( $attributes, 'Tablet' ),
30 - $this->get_wrapper_hover_css( $attributes, 'Mobile' )
35 + $this->get_wrapper_hover_css( $attributes, 'Mobile' ),
36 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_wrapper_hover_css( $attributes, $device ); } )
31 37 );
32 38 $css_generator->add_class_styles(
33 39 '{{WRAPPER}}.ablocks-block--menu-child-sub .ablocks-block--menu-item',
34 40 $this->get_menu_item_css( $attributes, '' ),
35 41 $this->get_menu_item_css( $attributes, 'Tablet' ),
36 - $this->get_menu_item_css( $attributes, 'Mobile' )
42 + $this->get_menu_item_css( $attributes, 'Mobile' ),
43 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_menu_item_css( $attributes, $device ); } )
37 44 );
38 45 $css_generator->add_class_styles(
39 46 '{{WRAPPER}}.ablocks-block--menu-child-sub .ablocks-block--menu-item:hover',
40 47 $this->get_menu_item_hover_css( $attributes, '' ),
41 48 $this->get_menu_item_hover_css( $attributes, 'Tablet' ),
42 - $this->get_menu_item_hover_css( $attributes, 'Mobile' )
49 + $this->get_menu_item_hover_css( $attributes, 'Mobile' ),
50 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_menu_item_hover_css( $attributes, $device ); } )
43 51 );
44 52 $css_generator->add_class_styles(
45 53 '{{WRAPPER}} > .ablocks-menu-item > .ablocks-menu-item__link',
46 54 $this->get_menu_item_link_css( $attributes, '' ),
@@ -54,15 +62,10 @@
54 62 return $css_generator->generate_css();
55 63 }
56 64
57 65 private function get_wrapper_css( $attributes, $device = '' ) {
58 - $css = [];
59 -
60 - if ( ! empty( $attributes['background'] ) ) {
61 - $css['background'] = $attributes['background'];
62 - }
63 -
64 66 return array_merge(
67 + [ 'background' => Color::get_css( isset( $attributes['background'] ) ? $attributes['background'] : '' ) ],
65 68 Range::get_css([
66 69 'attributeValue' => $attributes['width'],
67 70 'attribute_object_key' => 'value',
68 71 'isResponsive' => true,
@@ -73,9 +76,8 @@
73 76 ]),
74 77 BoxShadow::get_css( ! empty( $attributes['boxShadow'] ) ? $attributes['boxShadow'] : '', $device ),
75 78 Dimensions::get_css( $attributes['padding'], 'padding', $device ),
76 79 Border::get_css( $attributes['border'], '', $device ),
77 - $css
78 80 );
79 81 }
80 82 private function get_wrapper_hover_css( $attributes, $device = '' ) {
81 83 return array_merge(
@@ -84,11 +86,14 @@
84 86 );
85 87
86 88 }
87 89 private function get_menu_item_css( $attributes, $device = '' ) {
90 + $typographyglobal = isset( $attributes['menuItemTypographyGlobal'] ) ? $attributes['menuItemTypographyGlobal'] : '';
88 91 $css = array_merge(
92 + [ 'color' => Color::get_css( isset( $attributes['menuItemTextColor'] ) ? $attributes['menuItemTextColor'] : '' ) ],
93 + [ 'background' => Color::get_css( isset( $attributes['menuItemBackground'] ) ? $attributes['menuItemBackground'] : '' ) ],
89 94 Border::get_css( isset( $attributes['menuItemBorder'] ) ? $attributes['menuItemBorder'] : [], '', $device ),
90 - Typography::get_css( isset( $attributes['menuItemTypography'] ) ? $attributes['menuItemTypography'] : [], '', $device ),
95 + Typography::get_css( isset( $attributes['menuItemTypography'] ) ? $attributes['menuItemTypography'] : [], '', $device, $typographyglobal ),
91 96 Dimensions::get_css( isset( $attributes['menuItemPadding'] ) ? $attributes['menuItemPadding'] : [], 'padding', $device ),
92 97 Dimensions::get_css( isset( $attributes['menuItemMargin'] ) ? $attributes['menuItemMargin'] : [], 'margin', $device )
93 98 );
94 99
@@ -96,10 +101,10 @@
96 101 $css['flex-direction'] = $attributes[ 'menuItemDirection' . $device ];
97 102 }
98 103
99 104 // Justify content
100 - if ( isset( $attributes[ 'menuItemJustify' . $device ] ) && ! empty( $attributes[ 'menuItemJustify' . $device ] ) ) {
101 - $css['justify-content'] = $attributes[ 'menuItemJustify' . $device ];
105 + if ( isset( $attributes['menuItemJustification'][ 'value' . $device ] ) && ! empty( $attributes['menuItemJustification'][ 'value' . $device ] ) ) {
106 + $css['justify-content'] = $attributes['menuItemJustification'][ 'value' . $device ];
102 107 }
103 108
104 109 // Align items
105 110 if ( isset( $attributes[ 'menuItemAlign' . $device ] ) && ! empty( $attributes[ 'menuItemAlign' . $device ] ) ) {
@@ -104,15 +109,8 @@
104 109 // Align items
105 110 if ( isset( $attributes[ 'menuItemAlign' . $device ] ) && ! empty( $attributes[ 'menuItemAlign' . $device ] ) ) {
106 111 $css['align-items'] = $attributes[ 'menuItemAlign' . $device ];
107 112 }
108 - // Text color
109 - if ( ! empty( $attributes['menuItemTextColor'] ) ) {
110 - $css['color'] = $attributes['menuItemTextColor'];
111 - }
112 - if ( ! empty( $attributes['menuItemBackground'] ) ) {
113 - $css['background'] = $attributes['menuItemBackground'];
114 - }
115 113 if ( ! empty( $attributes['menuItemTransition'] ) ) {
116 114 $css['transition-duration'] = $attributes['menuItemTransition'] . 's';
117 115 }
118 116 return $css;
@@ -117,48 +115,25 @@
117 115 }
118 116 return $css;
119 117 }
120 118 private function get_menu_item_link_css( $attributes ) {
121 - $css = [];
122 - if ( ! empty( $attributes['menuItemTextColor'] ) ) {
123 - $css['color'] = $attributes['menuItemTextColor'] . '!important';
124 - }
125 - return $css;
119 + return [ 'color' => Color::get_css( isset( $attributes['menuItemTextColor'] ) ? $attributes['menuItemTextColor'] : '' ) . '!important' ];
126 120 }
127 121 private function get_menu_item_hover_css( $attributes, $device = '' ) {
128 - $css = array_merge(
122 + return array_merge(
123 + [ 'background' => Color::get_css( isset( $attributes['menuItemBackgroundH'] ) ? $attributes['menuItemBackgroundH'] : '' ) ],
129 124 Border::get_hover_css( isset( $attributes['menuItemBorder'] ) ? $attributes['menuItemBorder'] : [], '', $device )
130 125 );
131 -
132 - // Text color on hover
133 - if ( ! empty( $attributes['menuItemTextColorH'] ) ) {
134 - $css['color'] = $attributes['menuItemTextColorH'];
135 - }
136 - if ( ! empty( $attributes['menuItemBackgroundH'] ) ) {
137 - $css['background'] = $attributes['menuItemBackgroundH'];
138 - }
139 - return $css;
140 126 }
141 127 private function get_menu_item_link_hover_css( $attributes ) {
142 - $css = [];
143 - if ( ! empty( $attributes['menuItemTextColorH'] ) ) {
144 - $css['color'] = $attributes['menuItemTextColorH'];
145 - }
146 - return $css;
128 + return [ 'color' => Color::get_css( isset( $attributes['menuItemTextColorH'] ) ? $attributes['menuItemTextColorH'] : '' ) . '!important' ];
147 129 }
148 130 private function get_menu_item_dropdown_icon_css( $attributes ) {
149 - $css = [];
150 - if ( ! empty( $attributes['menuItemTextColor'] ) ) {
151 - $css['fill'] = $attributes['menuItemTextColor'];
152 - }
153 - return $css;
131 +
132 + return [ 'fill' => Color::get_css( isset( $attributes['menuItemTextColor'] ) ? $attributes['menuItemTextColor'] : '' ) ];
154 133 }
155 134 private function get_menu_item_dropdown_icon_hover_css( $attributes ) {
156 - $css = [];
157 - if ( ! empty( $attributes['menuItemTextColorH'] ) ) {
158 - $css['fill'] = $attributes['menuItemTextColorH'];
159 - }
160 - return $css;
135 + return [ 'fill' => Color::get_css( isset( $attributes['menuItemTextColorH'] ) ? $attributes['menuItemTextColorH'] : '' ) ];
161 136 }
162 137 private function get_hamburger_menu_css( $attributes ) {
163 138 $css = [];
164 139 if ( isset( $attributes['hamburgerAlignment'] ) ) {