PluginProbe
Booking Calendar / 10.11.3
Booking Calendar v10.11.3
11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 10.11 10.11.2 All 203 releases
booking / includes / page-setup / setup_templates.php

setup_templates.php in Booking Calendar 10.11.3, at includes/page-setup/setup_templates.php

472 lines 18.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php /**
2 * @version 1.0
3 * @description Templates for Setup pages
4 * @category Setup Templates
5 * @author wpdevelop
6 *
7 * @web-site http://oplugins.com/
8 * @email info@oplugins.com
9 *
10 * @modified 2024-08-27
11 */
12
13 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
15
16 class WPBC_AJX__Setup_Wizard__Templates {
17
18 // <editor-fold defaultstate="collapsed" desc=" /// JS | CSS files | Tpl loading /// " >
19
20 /**
21 * Define HOOKs for loading CSS and JavaScript files
22 */
23 public function init_load_css_js_tpl() {
24
25 // Load only at specific Page
26 if ( wpbc_is_setup_wizard_page() ) {
27
28 add_action( 'wpbc_enqueue_js_files', array( $this, 'js_load_files' ), 50 );
29 add_action( 'wpbc_enqueue_css_files', array( $this, 'enqueue_css_files' ), 50 );
30
31 add_action( 'wpbc_hook_settings_page_footer', array( $this, 'hook__load_templates_at_footer' ) );
32 }
33 }
34
35
36 /** JS */
37 public function js_load_files( $where_to_load ) {
38
39 $in_footer = true;
40
41 if ( wpbc_is_setup_wizard_page() ){
42
43 wp_enqueue_script( 'wpbc_all', wpbc_plugin_url( '/_dist/all/_out/wpbc_all.js' ), array( 'jquery' ), WP_BK_VERSION_NUM, array( 'in_footer' => WPBC_JS_IN_FOOTER ) );
44 wp_enqueue_script( 'wpbc-main-client', wpbc_plugin_url( '/js/client.js' ), array( 'wpbc-datepick' ), WP_BK_VERSION_NUM, array( 'in_footer' => WPBC_JS_IN_FOOTER ) );
45 wp_enqueue_script( 'wpbc-times', wpbc_plugin_url( '/js/wpbc_times.js' ), array( 'wpbc-main-client' ), WP_BK_VERSION_NUM, array( 'in_footer' => WPBC_JS_IN_FOOTER ) );
46
47 wp_enqueue_script( 'wpbc-settings_obj', trailingslashit( plugins_url( '', __FILE__ ) ) . '_out/settings_obj.js', array( 'wpbc_all' ), WP_BK_VERSION_NUM, $in_footer );
48 wp_enqueue_script( 'wpbc-setup_wizard_obj', trailingslashit( plugins_url( '', __FILE__ ) ) . '_out/setup_obj.js', array( 'wpbc-settings_obj' ), WP_BK_VERSION_NUM, $in_footer );
49 wp_enqueue_script( 'wpbc-setup_wizard_show', trailingslashit( plugins_url( '', __FILE__ ) ) . '_out/setup_show.js', array( 'wpbc-setup_wizard_obj' ), WP_BK_VERSION_NUM, $in_footer );
50 wp_enqueue_script( 'wpbc-setup_wizard_ajax', trailingslashit( plugins_url( '', __FILE__ ) ) . '_out/setup_ajax.js', array( 'wpbc-setup_wizard_obj' ), WP_BK_VERSION_NUM, $in_footer );
51 }
52 }
53
54
55 /** CSS */
56 public function enqueue_css_files( $where_to_load ) {
57
58 if ( wpbc_is_setup_wizard_page() ){
59
60 wp_enqueue_style( 'wpbc-setup_wizard_page', trailingslashit( plugins_url( '', __FILE__ ) ) . '_out/setup_page.css', array(), WP_BK_VERSION_NUM );
61 }
62 }
63
64 // </editor-fold>
65
66
67 // <editor-fold defaultstate="collapsed" desc=" /// Templates /// " >
68
69
70 /**
71 * Load Templates at footer of page
72 *
73 * @param $page string
74 */
75 public function hook__load_templates_at_footer( $page ){
76
77 // Hook from ../includes/page-setup/setup__page.php
78 if ( 'wpbc-ajx_booking_setup_wizard' === $page ) {
79
80 $this->wpbc_template__stp_wiz__main_content();
81
82 wpbc_stp_wiz__template__welcome();
83 wpbc_stp_wiz__template__general_info();
84 wpbc_stp_wiz__template__date_time_formats();
85 wpbc_stp_wiz__template__bookings_types();
86 wpbc_stp_wiz__template__form_structure();
87 wpbc_stp_wiz__template__cal_availability();
88 wpbc_stp_wiz__template__color_theme();
89 wpbc_stp_wiz__template__optional_other_settings();
90 wpbc_stp_wiz__template__wizard_publish();
91 wpbc_stp_wiz__template__get_started();
92
93 $this->wpbc_template__stp_wiz__left_navigation();
94 $this->wpbc_template__stp_wiz__left_navigation_item();
95
96 $this->wpbc_template__timeline_steps();
97 $this->wpbc_template__timeline_steps_icons();
98
99 $this->wpbc_template__stp_wiz__footer_buttons();
100 }
101 }
102
103
104 // =============================================================================================================
105 // == Templates ==
106 // =============================================================================================================
107 /**
108 * Template - Page Container
109 *
110 * Help Tips:
111 *
112 * <script type="text/html" id="tmpl-template_name_a">
113 * Escaped: {{data.test_key}}
114 * HTML: {{{data.test_key}}}
115 * JS: <# if (true) { alert( 1 ); } #>
116 * </script>
117 *
118 * var template__var = wp.template( 'template_name_a' );
119 *
120 * jQuery( '.content' ).html( template__var( { 'test_key' => '<strong>Data</strong>' } ) );
121 *
122 * @return void
123 */
124 private function wpbc_template__stp_wiz__main_content() {
125 ?><script type="text/html" id="tmpl-wpbc_template__stp_wiz__main_content">
126 <#
127 var wpbc_template__timeline_steps = wp.template( 'wpbc_template__timeline_steps' );
128
129 jQuery( '.wpbc__container_place__steps_for_timeline' ).html( wpbc_template__timeline_steps( data.steps_is_done ) );
130 #>
131 <div class="wpbc__container_place__steps_for_timeline">{{{ wpbc_template__timeline_steps( data.steps_is_done ) }}}</div>
132 <div class="wpbc_setup_wizard_page__container wpbc_ajx_page__container">
133
134 <# if ( false !== data.steps[ data.current_step ][ 'show_section_left' ] ) { #>
135
136 <div class="wpbc_ajx_page__section wpbc_setup_wizard_page__section_left wpbc_ajx_page__section_left">
137 <# var wpbc_template__stp_wiz__left_navigation = wp.template( 'wpbc_template__stp_wiz__left_navigation' ); #>{{{
138
139 wpbc_template__stp_wiz__left_navigation({
140 'left_navigation' : data.left_navigation,
141 'ajx_cleaned_params': data.ajx_cleaned_params
142 })
143 }}}
144 </div>
145
146 <# } #>
147
148 <div class="wpbc_ajx_page__section wpbc_setup_wizard_page__section_main wpbc_ajx_page__section_main">
149 <?php if(0){ ?><script><?php } echo '<#'; ?>
150
151 var template__main_section;
152
153 switch ( data.current_step ) {
154
155 case 'welcome':
156 template__main_section = wp.template( 'wpbc_stp_wiz__template__welcome' );
157 break;
158
159 case 'general_info':
160 template__main_section = wp.template( 'wpbc_stp_wiz__template__general_info' );
161 break;
162
163 case 'date_time_formats':
164 template__main_section = wp.template( 'wpbc_stp_wiz__template__date_time_formats' );
165 break;
166
167 case 'bookings_types':
168 template__main_section = wp.template( 'wpbc_stp_wiz__template__bookings_types' );
169 break;
170
171 case 'form_structure':
172 template__main_section = wp.template( 'wpbc_stp_wiz__template__form_structure' );
173 break;
174
175 case 'cal_availability':
176 template__main_section = wp.template( 'wpbc_stp_wiz__template__cal_availability' );
177 break;
178
179 case 'color_theme':
180 template__main_section = wp.template( 'wpbc_stp_wiz__template__color_theme' );
181 break;
182
183 case 'optional_other_settings':
184
185 template__main_section = wp.template( 'wpbc_stp_wiz__template__optional_other_settings' );
186 break;
187
188 case 'wizard_publish':
189 template__main_section = wp.template( 'wpbc_stp_wiz__template__wizard_publish' );
190 break;
191
192 case 'get_started':
193 template__main_section = wp.template( 'wpbc_stp_wiz__template__get_started' );
194 break;
195
196 default:
197 // Default
198 template__main_section = wp.template( 'wpbc_stp_wiz__template__general_info' );
199 }
200
201 <?php if(0){ ?></script><?php } echo '#>'; ?>
202 {{{
203 template__main_section( data )
204 }}}
205 </div>
206
207 <# if ( false !== data.steps[ data.current_step ][ 'show_section_right' ] ) { #>
208
209 <div class="wpbc_ajx_page__section wpbc_setup_wizard_page__section_right wpbc_ajx_page__section_right">
210 <?php $this->test_right_widget(); ?>
211 </div>
212 <# } #>
213
214 <#
215 var wpbc_template__stp_wiz__footer_buttons = wp.template( 'wpbc_template__stp_wiz__footer_buttons' );
216 #>
217 <div class="wpbc_ajx_page__section wpbc_setup_wizard_page__section_footer wpbc_ajx_page__section_footer">
218 <div class="wpbc__container_place__footer_buttons wpbc_container wpbc_form wpbc_container_booking_form">{{{
219 wpbc_template__stp_wiz__footer_buttons( data )
220 }}}</div>
221 </div>
222 </div>
223 </script><?php
224 }
225
226
227 // -------------------------------------------------------------------------------------------------------------
228 // == Timeline Steps - Line with Checked Dots ==
229 // -------------------------------------------------------------------------------------------------------------
230 private function wpbc_template__timeline_steps(){
231
232 ?><script type="text/html" id="tmpl-wpbc_template__timeline_steps">
233 <# var wpbc_template__timeline_steps_icons = wp.template( 'wpbc_template__timeline_steps_icons' ); #>
234 <div class="wpbc_steps_for_timeline_container">
235 <div class="wpbc_steps_for_timeline">
236 <#
237
238 var steps_count = wpbc_setup_wizard_page__get_steps_count();
239 var actual_step_number = wpbc_setup_wizard_page__get_actual_step_number();
240
241 var css_class_for_step = '';
242 var css_class_for_line = '';
243 var is_line_exist = false;
244
245 for ( var i = 1; i <= steps_count ; i++ ) {
246
247 is_line_exist = ( i > 1 );
248
249 if ( actual_step_number > i ) {
250 css_class_for_step = ' wpbc_steps_for_timeline_step_completed';
251 css_class_for_line = 'wpbc_steps_for_timeline_line_active';
252 } else if ( actual_step_number == i ) {
253 css_class_for_step = ' wpbc_steps_for_timeline_step_active';
254 css_class_for_line = 'wpbc_steps_for_timeline_line_active';
255 } else {
256 css_class_for_step = '';
257 css_class_for_line = '';
258 }
259
260
261 if ( is_line_exist ) { #>
262 <div class="wpbc_steps_for_timeline_step_line {{css_class_for_line}}"></div>
263 <# } #>
264 <div class="wpbc_steps_for_timeline_step {{css_class_for_step}}">
265 {{{ wpbc_template__timeline_steps_icons({ }) }}}
266 </div>
267 <# } #>
268 </div>
269 </div>
270 </script><?php
271 }
272
273 /**
274 * Show template for steps timeline icons
275 *
276 * @return void
277 */
278 private function wpbc_template__timeline_steps_icons() {
279
280 ?>
281 <script type="text/html" id="tmpl-wpbc_template__timeline_steps_icons">
282 <?php
283 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
284 echo wpbc_ui__steps_timeline__get_icons();
285 ?>
286 </script>
287 <?php
288 }
289
290
291 // -------------------------------------------------------------------------------------------------------------
292 // == Footer Action Buttons ==
293 // -------------------------------------------------------------------------------------------------------------
294 private function wpbc_template__stp_wiz__footer_buttons(){
295
296 ?><script type="text/html" id="tmpl-wpbc_template__stp_wiz__footer_buttons">
297 <div class="wpbc__form__div">
298 <hr>
299 <div class="wpbc__row wpbc__row__btn_prior_next">
300 <?php /* ?>
301 <div class="wpbc__field">
302 <input type="button" value="<?php esc_attr_e('Reset Wizard and Start from Beginning','booking'); ?>"
303 class="wpbc_button_light wpbc_button_danger tooltip_top " style=""
304 onclick=" wpbc_ajx__setup_wizard_page__send_request_with_params( { 'do_action': 'make_reset' } ); ">
305 </div>
306 <?php */ ?>
307 <div class="wpbc__field">
308 <# if ( '' != data['steps'][ data['current_step'] ]['prior'] ) { #>
309 <a class="wpbc_button_light" style="margin-left:auto;margin-right:10px;" tabindex="0"
310 id="btn__toolbar__buttons_prior"
311 onclick=" wpbc_ajx__setup_wizard_page__send_request_with_params( {
312 'current_step': '{{data.steps[ data.current_step ].prior}}',
313 'do_action': 'none',
314 'ui_clicked_element_id': 'btn__toolbar__buttons_prior'
315 } );
316 wpbc_button_enable_loading_icon( this );
317 wpbc_admin_show_message_processing( '' );" ><i class="menu_icon icon-1x wpbc_icn_arrow_back_ios"></i><span>&nbsp;&nbsp;&nbsp;{{data.steps[ data.current_step ].prior_title}}</span></a>
318
319 <# } else { #>
320 <span style="margin-left:auto;"></span>
321 <# } #>
322 <a class="wpbc_button_light button-primary" tabindex="0"
323 id="btn__toolbar__buttons_next"
324 onclick=" wpbc_ajx__setup_wizard_page__send_request_with_params( {
325 'current_step': '{{data.steps[ data.current_step ].next}}',
326 'do_action': '{{data.steps[ data.current_step ].do_action}}',
327 'ui_clicked_element_id': 'btn__toolbar__buttons_next'
328 } );
329 wpbc_button_enable_loading_icon( this );
330 wpbc_admin_show_message_processing( '' );" ><span>{{data.steps[ data.current_step ].next_title}}&nbsp;&nbsp;&nbsp;</span><i class="menu_icon icon-1x wpbc_icn_arrow_forward_ios"></i></a>
331 </div>
332 </div>
333 <div class="wpbc__row wpbc__row__btn_skip_exist">
334 <div class="wpbc__field">
335 <p class="wpbc_exit_link_small">
336 <a href="javascript:void(0)" tabindex="-1"
337 onclick=" wpbc_ajx__setup_wizard_page__send_request_with_params( { 'do_action': 'skip_wizard' } ); "
338 title="<?php esc_attr_e('Exit and skip the setup wizard','booking'); ?>"
339 ><?php
340 esc_html_e('Exit and skip the setup wizard','booking');
341 ?></a>
342 <?php ?>
343 <a href="javascript:void(0)" class="wpbc_button_danger" style="margin: 25px 0 0; font-size: 12px;" tabindex="-1"
344 onclick=" wpbc_ajx__setup_wizard_page__send_request_with_params( { 'do_action': 'make_reset' } ); "
345 title="<?php esc_attr_e('Start Setup from Beginning','booking'); ?>"
346 ><?php
347 esc_html_e('Reset Wizard','booking');
348 ?></a>
349 <?php /**/ ?>
350 </p>
351 </div>
352 </div>
353 </div>
354 </script><?php
355 }
356
357
358
359 // -------------------------------------------------------------------------------------------------------------
360 // == Left Navigation ==
361 // -------------------------------------------------------------------------------------------------------------
362 /**
363 * Template - Left Navigation
364 *
365 * Help Tips:
366 *
367 * <script type="text/html" id="tmpl-template_name_a">
368 * Escaped: {{data.test_key}}
369 * HTML: {{{data.test_key}}}
370 * JS: <# if (true) { alert( 1 ); } #>
371 * </script>
372 *
373 * var template__var = wp.template( 'template_name_a' );
374 *
375 * jQuery( '.content' ).html( template__var( { 'test_key' => '<strong>Data</strong>' } ) );
376 *
377 * @return void
378 */
379 private function wpbc_template__stp_wiz__left_navigation() {
380 ?><script type="text/html" id="tmpl-wpbc_template__stp_wiz__left_navigation">
381 <div class="wpbc_navigation_menu_left">
382 <#
383 var wpbc_template__stp_wiz__left_navigation_item = wp.template( 'wpbc_template__stp_wiz__left_navigation_item' );
384 _.each( data.left_navigation, function ( p_val, p_id, p_data_arr ){
385 if ( undefined === p_val.a_style){ p_val.a_style = ''; }
386 if ( undefined === p_val.style){ p_val.style = ''; }
387 #>{{{
388 wpbc_template__stp_wiz__left_navigation_item({
389 'id' : p_id,
390 'data_arr': p_val
391 })
392 }}}
393 <# } ); #>
394 </div>
395 </script><?php
396 }
397
398
399 /**
400 * Template - Left Navigation Item
401 *
402 * Help Tips:
403 *
404 * <script type="text/html" id="tmpl-template_name_a">
405 * Escaped: {{data.test_key}}
406 * HTML: {{{data.test_key}}}
407 * JS: <# if (true) { alert( 1 ); } #>
408 * </script>
409 *
410 * var template__var = wp.template( 'template_name_a' );
411 *
412 * jQuery( '.content' ).html( template__var( { 'test_key' => '<strong>Data</strong>' } ) );
413 *
414 * @return void
415 */
416 private function wpbc_template__stp_wiz__left_navigation_item() {
417 ?><script type="text/html" id="tmpl-wpbc_template__stp_wiz__left_navigation_item">
418 <div id="{{data.id}}"
419 class="wpbc_navigation_menu_left_item {{data.data_arr.class}}" style="{{data.data_arr.style}}">
420 <div class="wpbc_navigation_menu_left_item_container">
421 <a class="wpbc_navigation_menu_left_item_a" style="{{data.data_arr.a_style}}" onclick="javascript:{{{data.data_arr.action}}}" href="javascript:void(0);">
422 <i class="wpbc_navigation_menu_left_item_icon menu_icon icon-1x {{data.data_arr.icon}}"></i>
423 <div class="wpbc_navigation_menu_left_item_text">{{{data.data_arr.title}}}</div>
424 </a>
425 <# if ( undefined != data.data_arr.right_icon ) { #>
426 <a class="wpbc_navigation_menu_left_item_icon_right" onclick="javascript:{{{data.data_arr.right_icon.action}}}" href="javascript:void(0);"
427 ><i class="menu_icon icon-1x {{data.data_arr.right_icon.icon}}"></i>
428 <# if ( undefined != data.data_arr.right_icon.text ) { #>
429 <div class="wpbc_navigation_menu_left_small_text_right">{{{data.data_arr.right_icon.text}}}</div>
430 <# } #>
431 </a>
432 <# } #>
433 </div>
434 </div>
435 </script><?php
436 }
437
438
439
440 // TODO: Update this
441 private function test_right_widget(){
442 ?>
443 <div class="wpbc_widgets">
444 <div class="wpbc_widget wpbc_widget_change_calendar_skin">
445 <div class="wpbc_widget_header">
446 <span class="wpbc_widget_header_text">Calendar Skin</span>
447 <a href="/" class="wpbc_widget_header_settings_link"><i class="menu_icon icon-1x wpbc_icn_settings"></i></a>
448 </div>
449 <div class="wpbc_widget_content wpbc_ajx_toolbar" style="margin:0 0 20px;">
450 <div class="ui_container">
451 <div class="ui_group ui_group__change_calendar_skin">
452 </div>
453 </div>
454 </div>
455 </div>
456 </div>
457 <?php
458 }
459
460 // </editor-fold>
461
462 }
463
464
465 /**
466 * Just for loading CSS and JavaScript files
467 */
468 if ( true ) {
469 $setup_wizard_page_loading = new WPBC_AJX__Setup_Wizard__Templates;
470 $setup_wizard_page_loading->init_load_css_js_tpl();
471 }
472