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/academy-courses/block.php +103 -103 2.9.1 → 2.14.0 View file →
@@ -6,130 +6,89 @@
6 6 }
7 7
8 8 use ABlocks\Classes\BlockBaseAbstract;
9 9 use ABlocks\Classes\CssGenerator;
10 +use ABlocks\Classes\CssGeneratorV2;
10 11 use ABlocks\Helper;
11 12 use ABlocks\Controls\Typography;
12 13 use ABlocks\Controls\Background;
13 14 use ABlocks\Controls\Border;
14 15 use ABlocks\Controls\Dimensions;
16 +use ABlocks\Controls\Color;
15 17
16 18 class Block extends BlockBaseAbstract {
17 19 protected $block_name = 'academy-courses';
18 20
19 21 public function build_css( $attributes ) {
20 - $css_generator = new CssGenerator( $attributes, $this->block_name );
22 + $css_generator = new CssGeneratorV2( $attributes, $this->block_name );
21 23
22 - $course_category_desktop_css = $this->get_course_card_category_css( $attributes );
23 - if ( ! empty( $attributes['category_color'] ) ) {
24 - $course_category_desktop_css['color'] = $attributes['category_color'];
25 - }
26 24 $css_generator->add_class_styles(
27 25 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__meta--categroy a',
28 - $course_category_desktop_css,
26 + $this->get_course_card_category_css( $attributes ),
29 27 $this->get_course_card_category_css( $attributes, 'Tablet' ),
30 - $this->get_course_card_category_css( $attributes, 'Mobile' )
28 + $this->get_course_card_category_css( $attributes, 'Mobile' ),
29 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_course_card_category_css( $attributes, $device ); } )
31 30 );
32 31
33 - $course_category_desktop_hover_css = [];
34 - if ( ! empty( $attributes['category_hover_color'] ) ) {
35 - $course_category_desktop_hover_css['color'] = $attributes['category_hover_color'];
36 - }
37 32 $css_generator->add_class_styles(
38 33 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__meta--categroy:hover a',
39 - $course_category_desktop_hover_css,
34 + $this->course_category_desktop_hover_css( $attributes )
40 35 );
41 -
42 - $course_title_desktop_css = $this->get_course_card_title_css( $attributes );
43 - if ( ! empty( $attributes['title_color'] ) ) {
44 - $course_title_desktop_css['color'] = $attributes['title_color'];
45 - }
46 36 $css_generator->add_class_styles(
47 37 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__title,
48 38 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__title a',
49 - $course_title_desktop_css,
39 + $this->get_course_card_title_css( $attributes ),
50 40 $this->get_course_card_title_css( $attributes, 'Tablet' ),
51 - $this->get_course_card_title_css( $attributes, 'Mobile' )
41 + $this->get_course_card_title_css( $attributes, 'Mobile' ),
42 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_course_card_title_css( $attributes, $device ); } )
52 43 );
53 -
54 - $course_title_desktop_hover_css = [];
55 - if ( ! empty( $attributes['title_hover_color'] ) ) {
56 - $course_title_desktop_hover_css['color'] = $attributes['title_hover_color'];
57 - }
58 44 $css_generator->add_class_styles(
59 45 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__title:hover,
60 46 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__title:hover a',
61 - $course_title_desktop_hover_css,
47 + $this->get_course_title__hover_css( $attributes )
62 48 );
63 -
64 - $course_author_desktop_css = $this->get_course_card_title_css( $attributes );
65 - if ( ! empty( $attributes['author_color'] ) ) {
66 - $course_author_desktop_css['color'] = $attributes['author_color'];
67 - }
68 49 $css_generator->add_class_styles(
69 50 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__author,
70 51 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__author .author,
71 52 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__author .author a',
72 - $course_author_desktop_css,
53 + $this->get_course_card_author_css( $attributes ),
73 54 $this->get_course_card_author_css( $attributes, 'Tablet' ),
74 - $this->get_course_card_author_css( $attributes, 'Mobile' )
55 + $this->get_course_card_author_css( $attributes, 'Mobile' ),
56 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_course_card_author_css( $attributes, $device ); } )
75 57 );
76 -
77 - $course_author_desktop_hover_css = [];
78 - if ( ! empty( $attributes['author_hover_color'] ) ) {
79 - $course_author_desktop_hover_css['color'] = $attributes['author_hover_color'];
80 - }
81 58 $css_generator->add_class_styles(
82 59 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__author:hover,
83 60 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__author:hover .author,
84 61 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__author:hover .author a',
85 - $course_author_desktop_hover_css,
62 + $this->course_author_desktop_hover_css( $attributes )
86 63 );
87 -
88 - $course_rating_desktop_css = $this->get_course_card_rating_css( $attributes );
89 - if ( ! empty( $attributes['rating_color'] ) ) {
90 - $course_rating_desktop_css['color'] = $attributes['rating_color'];
91 - }
92 64 $css_generator->add_class_styles(
93 65 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating,
94 66 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating .academy-group-star,
95 67 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating .academy-group-star .academy-icon::before,
96 68 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating .academy-course__rating-count',
97 - $course_rating_desktop_css,
69 + $this->get_course_card_rating_css( $attributes ),
98 70 $this->get_course_card_rating_css( $attributes, 'Tablet' ),
99 - $this->get_course_card_rating_css( $attributes, 'Mobile' )
71 + $this->get_course_card_rating_css( $attributes, 'Mobile' ),
72 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_course_card_rating_css( $attributes, $device ); } )
100 73 );
101 -
102 - $course_rating_desktop_hover_css = [];
103 - if ( ! empty( $attributes['rating_hover_color'] ) ) {
104 - $course_rating_desktop_hover_css['color'] = $attributes['rating_hover_color'];
105 - }
106 74 $css_generator->add_class_styles(
107 75 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating:hover,
108 76 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating:hover .academy-group-star,
109 77 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating:hover .academy-group-star .academy-icon::before,
110 78 {{WRAPPER}} .academy-courses--grid .academy-course .academy-course__rating:hover .academy-course__rating-count',
111 - $course_rating_desktop_hover_css,
79 + $this->course_rating_desktop_hover_css( $attributes )
112 80 );
113 -
114 - $course_price_css = $this->get_course_card_price_css( $attributes );
115 - if ( ! empty( $attributes['price_color'] ) ) {
116 - $course_price_css['color'] = $attributes['price_color'];
117 - }
118 81 $css_generator->add_class_styles(
119 82 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__price',
120 - $course_price_css,
83 + $this->get_course_card_price_css( $attributes ),
121 84 $this->get_course_card_price_css( $attributes, 'Tablet' ),
122 - $this->get_course_card_price_css( $attributes, 'Mobile' )
85 + $this->get_course_card_price_css( $attributes, 'Mobile' ),
86 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_course_card_price_css( $attributes, $device ); } )
123 87 );
124 -
125 - $course_price_hover_css = [];
126 - if ( ! empty( $attributes['price_hover_color'] ) ) {
127 - $course_price_hover_css['color'] = $attributes['price_hover_color'];
128 - }
129 88 $css_generator->add_class_styles(
130 89 '{{WRAPPER}} .academy-courses--grid .academy-course .academy-course__price:hover',
131 - $course_price_hover_css,
90 + $this->course_price_hover_css( $attributes )
132 91 );
133 92
134 93 $css_generator->add_class_styles(
135 94 '{{WRAPPER}} .academy-courses--grid .academy-row .academy-course,
@@ -137,9 +96,10 @@
137 96 {{WRAPPER}} .academy-courses--grid .academy-row .academy-course,
138 97 {{WRAPPER}} .academy-courses--grid .academy-row .academy-course',
139 98 $this->get_course_card_css( $attributes ),
140 99 $this->get_course_card_css( $attributes, 'Tablet' ),
141 - $this->get_course_card_css( $attributes, 'Mobile' )
100 + $this->get_course_card_css( $attributes, 'Mobile' ),
101 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_course_card_css( $attributes, $device ); } )
142 102 );
143 103
144 104 $css_generator->add_class_styles(
145 105 '{{WRAPPER}} .academy-courses--grid .academy-row .academy-course:hover,
@@ -147,23 +107,26 @@
147 107 {{WRAPPER}} .academy-courses--grid .academy-row .academy-course:hover,
148 108 {{WRAPPER}} .academy-courses--grid .academy-row .academy-course:hover',
149 109 $this->get_course_card_hover_css( $attributes ),
150 110 $this->get_course_card_hover_css( $attributes, 'Tablet' ),
151 - $this->get_course_card_hover_css( $attributes, 'Mobile' )
111 + $this->get_course_card_hover_css( $attributes, 'Mobile' ),
112 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_course_card_hover_css( $attributes, $device ); } )
152 113 );
153 114
154 115 $css_generator->add_class_styles(
155 - '{{WRAPPER}} .academy-courses--grid .academy-row .academy-course .academy-add-to-wishlist-btn',
116 + '{{WRAPPER}} .academy-courses .academy-course__header .academy-course-header-meta .academy-course__wishlist',
156 117 $this->get_wish_icon_css( $attributes ),
157 118 $this->get_wish_icon_css( $attributes, 'Tablet' ),
158 - $this->get_wish_icon_css( $attributes, 'Mobile' )
119 + $this->get_wish_icon_css( $attributes, 'Mobile' ),
120 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_wish_icon_css( $attributes, $device ); } )
159 121 );
160 122
161 123 $css_generator->add_class_styles(
162 - '{{WRAPPER}} .academy-courses--grid .academy-row .academy-course .academy-add-to-wishlist-btn:hover',
124 + '{{WRAPPER}} .academy-courses .academy-course__header .academy-course-header-meta .academy-course__wishlist:hover',
163 125 $this->get_wish_icon_hover_css( $attributes ),
164 126 $this->get_wish_icon_hover_css( $attributes, 'Tablet' ),
165 - $this->get_wish_icon_hover_css( $attributes, 'Mobile' )
127 + $this->get_wish_icon_hover_css( $attributes, 'Mobile' ),
128 + $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_wish_icon_hover_css( $attributes, $device ); } )
166 129 );
167 130
168 131 return $css_generator->generate_css();
169 132 }
@@ -168,46 +131,85 @@
168 131 return $css_generator->generate_css();
169 132 }
170 133
171 134 public function get_course_card_category_css( $attributes, $device = '' ) {
172 - $course_category_typography_css = ! empty( $attributes['cat_typography'] ) ? Typography::get_css( $attributes['cat_typography'], '', $device ) : array();
173 - return $course_category_typography_css;
135 + $typographyValueGlobal = ! empty( $attributes['cat_typographyGlobal'] ) ? $attributes['cat_typographyGlobal'] : '';
136 + $typography_value = isset( $attributes['typography'] ) ? $attributes['typography'] : [];
137 + return array_merge(
138 + [ 'color' => Color::get_css( isset( $attributes['category_color'] ) ? $attributes['category_color'] : '' ) ],
139 + Typography::get_css( $typography_value, '', $device, $typographyValueGlobal )
140 + );
174 141 }
142 + public function course_category_desktop_hover_css( $attributes ) {
175 143
144 + return [ 'color' => Color::get_css( isset( $attributes['category_hover_color'] ) ? $attributes['category_hover_color'] : '' ) ];
145 + }
146 + public function course_author_desktop_hover_css( $attributes ) {
147 +
148 + return [ 'color' => Color::get_css( isset( $attributes['author_hover_color'] ) ? $attributes['author_hover_color'] : '' ) ];
149 + }
150 + public function course_rating_desktop_hover_css( $attributes ) {
151 +
152 + return [ 'color' => Color::get_css( isset( $attributes['rating_hover_color'] ) ? $attributes['rating_hover_color'] : '' ) ];
153 + }
154 + public function course_price_hover_css( $attributes ) {
155 + return [ 'color' => Color::get_css( isset( $attributes['price_hover_color'] ) ? $attributes['price_hover_color'] : '' ) ];
156 + }
157 + public function get_course_title__hover_css( $attributes ) {
158 + return [ 'color' => Color::get_css( isset( $attributes['title_hover_color'] ) ? $attributes['title_hover_color'] : '' ) ];
159 + }
160 +
176 161 public function get_course_card_title_css( $attributes, $device = '' ) {
177 - $course_title_typography_css = ! empty( $attributes['title_typography'] ) ? Typography::get_css( $attributes['title_typography'], '', $device ) : array();
178 - return $course_title_typography_css;
162 + $typographyValueGlobal = ! empty( $attributes['title_typographyGlobal'] ) ? $attributes['title_typographyGlobal'] : '';
163 + $course_title_typography_css = isset( $attributes['title_typography'] ) ? $attributes['title_typography'] : [];
164 + return array_merge(
165 + [ 'color' => Color::get_css( isset( $attributes['title_color'] ) ? $attributes['title_color'] : '' ) ],
166 + Typography::get_css( $course_title_typography_css, '', $device, $typographyValueGlobal ),
167 + );
179 168 }
180 169
181 170 public function get_course_card_author_css( $attributes, $device = '' ) {
182 - $course_author_typography_css = ! empty( $attributes['author_typography'] ) ? Typography::get_css( $attributes['author_typography'], '', $device ) : array();
183 - return $course_author_typography_css;
171 + $typographyValueGlobal = ! empty( $attributes['author_typographyGlobal'] ) ? $attributes['author_typographyGlobal'] : '';
172 + $course_author_typography_css = isset( $attributes['author_typography'] ) ? $attributes['author_typography'] : [];
173 + return array_merge(
174 + [ 'color' => Color::get_css( isset( $attributes['author_color'] ) ? $attributes['author_color'] : '' ) ],
175 + Typography::get_css( $course_author_typography_css, '', $device, $typographyValueGlobal ),
176 + );
184 177 }
185 178
186 179 public function get_course_card_rating_css( $attributes, $device = '' ) {
187 - $course_rating_typography_css = ! empty( $attributes['rating_typography'] ) ? Typography::get_css( $attributes['rating_typography'], '', $device ) : array();
188 - return $course_rating_typography_css;
180 + $typographyValueGlobal = ! empty( $attributes['rating_typographyGlobal'] ) ? $attributes['rating_typographyGlobal'] : '';
181 + $typography_value = isset( $attributes['rating_typography'] ) ? $attributes['rating_typography'] : [];
182 + return array_merge(
183 + [ 'color' => Color::get_css( isset( $attributes['rating_color'] ) ? $attributes['rating_color'] : '' ) ],
184 + Typography::get_css( $typography_value, '', $device, $typographyValueGlobal ),
185 + );
189 186 }
190 187
191 188 public function get_course_card_price_css( $attributes, $device = '' ) {
192 - $course_price_typography_css = ! empty( $attributes['price_typography'] ) ? Typography::get_css( $attributes['price_typography'], '', $device ) : array();
193 - return $course_price_typography_css;
189 + $typographyValueGlobal = ! empty( $attributes['price_typographyGlobal'] ) ? $attributes['price_typographyGlobal'] : '';
190 +
191 + $course_price_typography_css = ! empty( $attributes['price_typography'] ) ? $attributes['price_typography'] : [];
192 + return array_merge(
193 + [ 'color' => Color::get_css( isset( $attributes['price_color'] ) ? $attributes['price_color'] : '' ) ],
194 + Typography::get_css( $course_price_typography_css, '', $device, $typographyValueGlobal ),
195 + );
194 196 }
195 197
196 198 public function get_wish_icon_css( $attributes, $device = '' ) {
197 199 $wish_icon_background_css = ! empty( $attributes['wish_icon_background'] ) ? Background::get_css( $attributes['wish_icon_background'], 'background', $device ) : array();
198 - if ( ! empty( $attributes['wish_icon_color'] ) ) {
199 - $wish_icon_background_css['color'] = $attributes['wish_icon_color'];
200 - }
201 - return $wish_icon_background_css;
200 + return array_merge(
201 + [ 'color' => Color::get_css( isset( $attributes['wish_icon_color'] ) ? $attributes['wish_icon_color'] : '' ) ],
202 + $wish_icon_background_css
203 + );
202 204 }
203 205
204 206 public function get_wish_icon_hover_css( $attributes, $device = '' ) {
205 207 $wish_icon_background_css = ! empty( $attributes['wish_icon_background'] ) ? Background::get_hover_css( $attributes['wish_icon_background'], 'background', $device ) : array();
206 - if ( ! empty( $attributes['wish_icon_hover_color'] ) ) {
207 - $wish_icon_background_css['color'] = $attributes['wish_icon_hover_color'];
208 - }
209 - return $wish_icon_background_css;
208 + return array_merge(
209 + [ 'color' => Color::get_css( isset( $attributes['wish_icon_hover_color'] ) ? $attributes['wish_icon_hover_color'] : '' ) ],
210 + $wish_icon_background_css
211 + );
210 212 }
211 213
212 214 public function get_course_card_css( $attributes, $device = '' ) {
213 215 $course_background_css = ! empty( $attributes['card_background'] ) ? Background::get_css( $attributes['card_background'], 'background', $device ) : array();
@@ -238,25 +240,23 @@
238 240 }
239 241
240 242
241 243
242 -
243 -
244 244 public function render_block_content( $attributes, $content, $block_instance ) {
245 245 $attr_array = [
246 - 'count' => Helper::get_attribute_value( $attributes, 'course_count' ),
247 - 'column_per_row' => Helper::get_attribute_value( $attributes, 'course_columns' ),
248 - 'has_pagination' => Helper::get_attribute_value( $attributes, 'show_pagination' ),
249 - 'course_level' => Helper::get_attribute_value( $attributes, 'difficulty_levels' ),
250 - 'price_type' => Helper::get_attribute_value( $attributes, 'price_types' ),
251 - 'orderby' => Helper::get_attribute_value( $attributes, 'order_by' ),
252 - 'order' => Helper::get_attribute_value( $attributes, 'course_order' ),
253 - 'ids' => Helper::get_attribute_value( $attributes, 'course_ids' ),
254 - 'exclude_ids' => Helper::get_attribute_value( $attributes, 'course_exclude_ids' ),
255 - 'category' => Helper::get_attribute_value( $attributes, 'course_categories' ),
256 - 'cat_not_in' => Helper::get_attribute_value( $attributes, 'course_exclude_categories' ),
257 - 'tag' => Helper::get_attribute_value( $attributes, 'course_tags' ),
258 - 'tag_not_in' => Helper::get_attribute_value( $attributes, 'course_exclude_tags' ),
246 + 'count' => absint( Helper::get_attribute_value( $attributes, 'course_count' ) ),
247 + 'column_per_row' => absint( Helper::get_attribute_value( $attributes, 'course_columns' ) ),
248 + 'has_pagination' => filter_var( Helper::get_attribute_value( $attributes, 'show_pagination' ), FILTER_VALIDATE_BOOLEAN ),
249 + 'course_level' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'difficulty_levels' ) ),
250 + 'price_type' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'price_types' ) ),
251 + 'orderby' => sanitize_key( Helper::get_attribute_value( $attributes, 'order_by' ) ),
252 + 'order' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'course_order' ) ),
253 + 'ids' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'course_ids' ) ),
254 + 'exclude_ids' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'course_exclude_ids' ) ),
255 + 'category' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'course_categories' ) ),
256 + 'cat_not_in' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'course_exclude_categories' ) ),
257 + 'tag' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'course_tags' ) ),
258 + 'tag_not_in' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'course_exclude_tags' ) ),
259 259 ];
260 260 $shortcode = '[academy_courses ' . Helper::attr_shortcode( $attr_array ) . ']';
261 261 echo do_shortcode( $shortcode );
262 262 }