PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.10.0
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.10.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
ablocks / includes / blocks / academy-login-form / block.php

block.php in aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder 2.10.0, at includes/blocks/academy-login-form/block.php

237 lines 11.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ABlocks\Blocks\AcademyLoginForm;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 use ABlocks\Classes\BlockBaseAbstract;
9 use ABlocks\Classes\CssGeneratorV2;
10 use ABlocks\Helper;
11 use ABlocks\Controls\Typography;
12 use ABlocks\Controls\Background;
13 use ABlocks\Controls\Border;
14 use ABlocks\Controls\Dimensions;
15 use ABlocks\Controls\Color;
16
17
18 class Block extends BlockBaseAbstract {
19 protected $block_name = 'academy-login-form';
20
21 public function __construct() {
22 parent::__construct();
23
24 add_filter( 'academy/shortcode/login_form_is_user_logged_in', [ $this, 'force_showing_login_form_in_editor' ] );
25
26 }
27
28 public function force_showing_login_form_in_editor( $flag ) {
29 if ( Helper::is_gutenberg_editor() ) {
30 return false;
31 }
32 return $flag;
33 }
34
35 public function build_css( $attributes ) {
36 $css_generator = new CssGeneratorV2( $attributes, $this->block_name );
37 $css_generator->add_class_styles(
38 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form .academy-form-group button',
39 $this->get_login_form_button_css( $attributes ),
40 $this->get_login_form_button_css( $attributes, 'Tablet' ),
41 $this->get_login_form_button_css( $attributes, 'Mobile' )
42 );
43
44 $css_generator->add_class_styles(
45 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form .academy-form-group button:hover',
46 $this->get_login_btn_hover_css( $attributes ),
47 $this->get_login_btn_hover_css( $attributes, 'Tablet' ),
48 $this->get_login_btn_hover_css( $attributes, 'Mobile' )
49 );
50 $css_generator->add_class_styles(
51 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form-info,
52 {{WRAPPER}} .academy-login-form-wrapper .academy-login-form-info a ',
53 $this->get_login_form_footer_css( $attributes ),
54 $this->get_login_form_footer_css( $attributes, 'Tablet' ),
55 $this->get_login_form_footer_css( $attributes, 'Mobile' )
56 );
57
58 $form_title_desktop_css = $this->get_form_title_css( $attributes );
59 if ( ! empty( $attributes['title_color'] ) ) {
60 $form_title_desktop_css['color'] = $attributes['title_color'];
61 }
62 $css_generator->add_class_styles(
63 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form-heading',
64 $this->get_form_title_css( $attributes ),
65 $this->get_form_title_css( $attributes, 'Tablet' ),
66 $this->get_form_title_css( $attributes, 'Mobile' )
67 );
68 $css_generator->add_class_styles(
69 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form-heading:hover',
70 $this->form_title_desktop_hover_css( $attributes )
71 );
72 $css_generator->add_class_styles(
73 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form label,
74 {{WRAPPER}} .academy-login-form-wrapper .academy-login-form a',
75 $this->get_input_field_label_css( $attributes ),
76 $this->get_input_field_label_css( $attributes, 'Tablet' ),
77 $this->get_input_field_label_css( $attributes, 'Mobile' )
78 );
79
80 $css_generator->add_class_styles(
81 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form label:hover,
82 {{WRAPPER}} .academy-login-form-wrapper .academy-login-form a:hover',
83 $this->get_input_field_label_hover_css( $attributes ),
84 $this->get_input_field_label_hover_css( $attributes, 'Tablet' ),
85 $this->get_input_field_label_hover_css( $attributes, 'Mobile' )
86 );
87
88 $css_generator->add_class_styles(
89 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form .academy-form-group input',
90 $this->get_input_field_css( $attributes ),
91 $this->get_input_field_css( $attributes, 'Tablet' ),
92 $this->get_input_field_css( $attributes, 'Mobile' )
93 );
94
95 $css_generator->add_class_styles(
96 '{{WRAPPER}} .academy-login-form-wrapper .academy-login-form .academy-form-group input::placeholder',
97 $this->get_input_field_placeholder_css( $attributes ),
98 $this->get_input_field_placeholder_css( $attributes, 'Tablet' ),
99 $this->get_input_field_placeholder_css( $attributes, 'Mobile' )
100 );
101
102 $css_generator->add_class_styles(
103 '{{WRAPPER}} .academy-login-form-wrapper',
104 $this->get_form_card_css( $attributes ),
105 $this->get_form_card_css( $attributes, 'Tablet' ),
106 $this->get_form_card_css( $attributes, 'Mobile' )
107 );
108
109 $css_generator->add_class_styles(
110 '{{WRAPPER}} .academy-login-form-wrapper:hover',
111 $this->get_form_card_hover_css( $attributes ),
112 $this->get_form_card_hover_css( $attributes, 'Tablet' ),
113 $this->get_form_card_hover_css( $attributes, 'Mobile' )
114 );
115
116 return $css_generator->generate_css();
117 }
118
119 public function get_login_form_button_css( $attributes, $device = '' ) {
120 $typographyValueGlobal = ! empty( $attributes['login_btn_typographyGlobal'] ) ? $attributes['login_btn_typographyGlobal'] : '';
121 $login_form_button_typography_css = isset( $attributes['login_btn_typography'] ) ? $attributes['login_btn_typography'] : [];
122 return array_merge(
123 Typography::get_css( $login_form_button_typography_css, '', $device, $typographyValueGlobal ),
124 [ 'color' => Color::get_css( isset( $attributes['login_btn_color'] ) ? $attributes['login_btn_color'] : '' ) ],
125 [ 'background' => Color::get_css( isset( $attributes['login_btn_bg_color'] ) ? $attributes['login_btn_bg_color'] : '' ) ]
126 );
127 }
128
129 public function get_login_form_footer_css( $attributes, $device = '' ) {
130 $typographyValueGlobal = ! empty( $attributes['form_footer_title_typographyGlobal'] ) ? $attributes['form_footer_title_typographyGlobal'] : '';
131 $login_form_footer_typography_css = isset( $attributes['form_footer_title_typography'] ) ? $attributes['form_footer_title_typography'] : [];
132 return array_merge(
133 [ 'color' => Color::get_css( isset( $attributes['form_footer_title_color'] ) ? $attributes['form_footer_title_color'] : '' ) ],
134 Typography::get_css( $login_form_footer_typography_css, '', $device, $typographyValueGlobal ),
135 );
136 }
137
138 public function get_form_title_css( $attributes, $device = '' ) {
139 $typographyValueGlobal = ! empty( $attributes['title_typographyGlobal'] ) ? $attributes['title_typographyGlobal'] : '';
140 $form_title_typography_css = isset( $attributes['title_typography'] ) ? $attributes['title_typography'] : [];
141 return array_merge(
142 [ 'color' => Color::get_css( isset( $attributes['title_color'] ) ? $attributes['title_color'] : '' ) ],
143 Typography::get_css( $form_title_typography_css, '', $device, $typographyValueGlobal ),
144 );
145 }
146 public function form_title_desktop_hover_css( $attributes ) {
147 return [ 'color' => Color::get_css( isset( $attributes['title_hover_color'] ) ? $attributes['title_hover_color'] : '' ) ];
148
149 }
150
151 public function get_course_card_title_css( $attributes, $device = '' ) {
152 $typographyValueGlobal = ! empty( $attributes['title_typographyGlobal'] ) ? $attributes['title_typographyGlobal'] : '';
153 $course_title_typography_css = isset( $attributes['title_typography'] ) ? $attributes['title_typography'] : [];
154 return array_merge(
155 Typography::get_css( $course_title_typography_css, '', $device, $typographyValueGlobal ),
156 );
157 }
158
159 public function get_input_field_label_css( $attributes, $device = '' ) {
160 $typographyValueGlobal = ! empty( $attributes['input_field_label_typographyGlobal'] ) ? $attributes['input_field_label_typographyGlobal'] : '';
161 $input_field_label_typography_css = isset( $attributes['input_field_label_typography'] ) ? $attributes['input_field_label_typography'] : [];
162 return array_merge(
163 [ 'color' => Color::get_css( isset( $attributes['input_field_label_color'] ) ? $attributes['input_field_label_color'] : '' ) ],
164 Typography::get_css( $input_field_label_typography_css, '', $device, $typographyValueGlobal ),
165 );
166 }
167
168 public function get_input_field_label_hover_css( $attributes, $device = '' ) {
169 return [ 'color' => Color::get_css( isset( $attributes['input_field_label_hover_color'] ) ? $attributes['input_field_label_hover_color'] : '' ) ];
170 }
171
172 public function get_input_field_css( $attributes, $device = '' ) {
173 $input_border_css = ! empty( $attributes['input_field_border'] ) ? Border::get_css( $attributes['input_field_border'], '', $device ) : array();
174 $input_field_padding = ! empty( $attributes['input_field_padding'] ) ? Dimensions::get_css( $attributes['input_field_padding'], 'padding', $device ) : array();
175 return array_merge(
176 [ 'color' => Color::get_css( isset( $attributes['inputFieldColor'] ) ? $attributes['inputFieldColor'] : '' ) ],
177 [ 'background' => Color::get_css( isset( $attributes['input_field_bg_color'] ) ? $attributes['input_field_bg_color'] : '' ) ],
178 $input_border_css,
179 $input_field_padding
180 );
181 }
182 public function get_input_field_placeholder_css( $attributes, $device = '' ) {
183 return [ 'color' => Color::get_css( isset( $attributes['inputFieldColor'] ) ? $attributes['inputFieldColor'] : '' ) ];
184 }
185
186 public function get_login_btn_hover_css( $attributes, $device = '' ) {
187 return array_merge(
188 [ 'color' => Color::get_css( isset( $attributes['login_btn_hover_color'] ) ? $attributes['login_btn_hover_color'] : '' ) ],
189 [ 'background' => Color::get_css( isset( $attributes['login_btn_bg_hover_color'] ) ? $attributes['login_btn_bg_hover_color'] : '' ) ]
190 );
191 }
192
193 public function get_form_card_css( $attributes, $device = '' ) {
194 $form_background_css = ! empty( $attributes['form_bg_color'] ) ? Background::get_css( $attributes['form_bg_color'], 'background', $device ) : array();
195 $form_border = ! empty( $attributes['form_border'] ) ? Border::get_css( $attributes['form_border'], '', $device ) : array();
196 $form_padding = ! empty( $attributes['form_padding'] ) ? Dimensions::get_css( $attributes['form_padding'], 'padding', $device ) : array();
197
198 return array_merge(
199 $form_background_css,
200 $form_border,
201 $form_padding
202 );
203 }
204
205 public function get_form_card_hover_css( $attributes, $device = '' ) {
206 $form_background_hover_css = ! empty( $attributes['form_bg_color'] ) ? Background::get_hover_css( $attributes['form_bg_color'], 'background', $device ) : array();
207 $form_border = ! empty( $attributes['form_border'] ) ? Border::get_hover_css( $attributes['form_border'], '', $device ) : array();
208 return array_merge(
209 $form_background_hover_css,
210 $form_border
211 );
212 }
213
214
215 public function render_block_content( $attributes, $content, $block_instance ) {
216 $attr_array = [
217 'form_title' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'form_title' ) ),
218 'username_label' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'username_label' ) ),
219 'username_placeholder' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'username_placeholder' ) ),
220 'password_label' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'password_label' ) ),
221 'password_placeholder' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'password_placeholder' ) ),
222 'remember_label' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'remember_label' ) ),
223 'login_button_label' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'login_button_label' ) ),
224 'reset_password_label' => sanitize_text_field( Helper::get_attribute_value( $attributes, 'reset_password_label' ) ),
225 'show_logged_in_message' => filter_var( Helper::get_attribute_value( $attributes, 'show_logged_in_message' ), FILTER_VALIDATE_BOOLEAN ),
226 'student_register_url' => esc_url_raw( Helper::get_attribute_value( $attributes, 'student_register_url' ) ),
227 'login_redirect_url' => esc_url_raw( Helper::get_attribute_value( $attributes, 'login_redirect_url' ) ),
228 'logout_redirect_url' => esc_url_raw( Helper::get_attribute_value( $attributes, 'logout_redirect_url' ) ),
229 ];
230
231 $shortcode = '[academy_login_form ' . Helper::attr_shortcode( $attr_array ) . ']';
232 echo do_shortcode( $shortcode );
233 }
234
235
236 }
237