@@ -57,7 +57,7 @@ |
||
57 | 57 | 'That\'s it for the tour! At any time you can restart a tour by clicking on this help dropdown and then clicking one of the Tour buttons. There are help tours available on all Event Espresso Admin pages. If you want to turn off help tours for all pages, %sgo here%s. All the best with your events!', |
58 | 58 | 'event_espresso' |
59 | 59 | ), |
60 | - '<a href="' . EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')) . '">', |
|
60 | + '<a href="'.EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')).'">', |
|
61 | 61 | '</a>' |
62 | 62 | ) |
63 | 63 | . '</p>'; |
@@ -14,51 +14,51 @@ |
||
14 | 14 | */ |
15 | 15 | class EE_Help_Tour_final_stop extends EE_Help_Tour |
16 | 16 | { |
17 | - protected function _set_tour_properties() |
|
18 | - { |
|
19 | - $this->_label = esc_html__('Final Stop Tour', 'event_espresso'); |
|
20 | - $this->_slug = 'final-stop-tour'; |
|
21 | - } |
|
17 | + protected function _set_tour_properties() |
|
18 | + { |
|
19 | + $this->_label = esc_html__('Final Stop Tour', 'event_espresso'); |
|
20 | + $this->_slug = 'final-stop-tour'; |
|
21 | + } |
|
22 | 22 | |
23 | 23 | |
24 | - protected function _set_tour_stops() |
|
25 | - { |
|
26 | - $this->_stops = array( |
|
27 | - 10 => array( |
|
28 | - 'id' => 'contextual-help-link', |
|
29 | - 'content' => $this->_end(), |
|
30 | - 'button_text' => esc_html__('Quit', 'event_espresso'), |
|
31 | - 'options' => array( |
|
32 | - 'tipLocation' => 'left', |
|
33 | - 'tipAdjustmentY' => -20, |
|
34 | - 'tipAdjustmentX' => 10, |
|
35 | - ), |
|
36 | - ), |
|
37 | - ); |
|
38 | - } |
|
24 | + protected function _set_tour_stops() |
|
25 | + { |
|
26 | + $this->_stops = array( |
|
27 | + 10 => array( |
|
28 | + 'id' => 'contextual-help-link', |
|
29 | + 'content' => $this->_end(), |
|
30 | + 'button_text' => esc_html__('Quit', 'event_espresso'), |
|
31 | + 'options' => array( |
|
32 | + 'tipLocation' => 'left', |
|
33 | + 'tipAdjustmentY' => -20, |
|
34 | + 'tipAdjustmentX' => 10, |
|
35 | + ), |
|
36 | + ), |
|
37 | + ); |
|
38 | + } |
|
39 | 39 | |
40 | 40 | |
41 | - /** |
|
42 | - * This is the default last stop for all tours that is displayed at the end of a tour OR when a tour is exited for |
|
43 | - * the first time. |
|
44 | - * |
|
45 | - * @return string |
|
46 | - */ |
|
47 | - protected function _end() |
|
48 | - { |
|
49 | - $query_args = array( |
|
50 | - 'action' => 'admin_option_settings', |
|
51 | - 'page' => 'espresso_general_settings', |
|
52 | - ); |
|
53 | - return '<p>' |
|
54 | - . sprintf( |
|
55 | - esc_html__( |
|
56 | - 'That\'s it for the tour! At any time you can restart a tour by clicking on this help dropdown and then clicking one of the Tour buttons. There are help tours available on all Event Espresso Admin pages. If you want to turn off help tours for all pages, %sgo here%s. All the best with your events!', |
|
57 | - 'event_espresso' |
|
58 | - ), |
|
59 | - '<a href="' . EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')) . '">', |
|
60 | - '</a>' |
|
61 | - ) |
|
62 | - . '</p>'; |
|
63 | - } |
|
41 | + /** |
|
42 | + * This is the default last stop for all tours that is displayed at the end of a tour OR when a tour is exited for |
|
43 | + * the first time. |
|
44 | + * |
|
45 | + * @return string |
|
46 | + */ |
|
47 | + protected function _end() |
|
48 | + { |
|
49 | + $query_args = array( |
|
50 | + 'action' => 'admin_option_settings', |
|
51 | + 'page' => 'espresso_general_settings', |
|
52 | + ); |
|
53 | + return '<p>' |
|
54 | + . sprintf( |
|
55 | + esc_html__( |
|
56 | + 'That\'s it for the tour! At any time you can restart a tour by clicking on this help dropdown and then clicking one of the Tour buttons. There are help tours available on all Event Espresso Admin pages. If you want to turn off help tours for all pages, %sgo here%s. All the best with your events!', |
|
57 | + 'event_espresso' |
|
58 | + ), |
|
59 | + '<a href="' . EE_Admin_Page::add_query_args_and_nonce($query_args, admin_url('admin.php')) . '">', |
|
60 | + '</a>' |
|
61 | + ) |
|
62 | + . '</p>'; |
|
63 | + } |
|
64 | 64 | } |
@@ -19,8 +19,8 @@ discard block |
||
19 | 19 | { |
20 | 20 | $this->_qtipsa = array( |
21 | 21 | 0 => array( |
22 | - 'content_id' => 'message_status-' . EEM_Message::status_sent, |
|
23 | - 'target' => '.msg-status-' . EEM_Message::status_sent, |
|
22 | + 'content_id' => 'message_status-'.EEM_Message::status_sent, |
|
23 | + 'target' => '.msg-status-'.EEM_Message::status_sent, |
|
24 | 24 | 'content' => $this->_message_status_legend(EEM_Message::status_sent), |
25 | 25 | 'options' => array( |
26 | 26 | 'position' => array( |
@@ -29,8 +29,8 @@ discard block |
||
29 | 29 | ), |
30 | 30 | ), |
31 | 31 | 1 => array( |
32 | - 'content_id' => 'message_status-' . EEM_Message::status_idle, |
|
33 | - 'target' => '.msg-status-' . EEM_Message::status_idle, |
|
32 | + 'content_id' => 'message_status-'.EEM_Message::status_idle, |
|
33 | + 'target' => '.msg-status-'.EEM_Message::status_idle, |
|
34 | 34 | 'content' => $this->_message_status_legend(EEM_Message::status_idle), |
35 | 35 | 'options' => array( |
36 | 36 | 'position' => array( |
@@ -39,8 +39,8 @@ discard block |
||
39 | 39 | ), |
40 | 40 | ), |
41 | 41 | 2 => array( |
42 | - 'content_id' => 'message_status-' . EEM_Message::status_failed, |
|
43 | - 'target' => '.msg-status-' . EEM_Message::status_failed, |
|
42 | + 'content_id' => 'message_status-'.EEM_Message::status_failed, |
|
43 | + 'target' => '.msg-status-'.EEM_Message::status_failed, |
|
44 | 44 | 'content' => $this->_message_status_legend(EEM_Message::status_failed), |
45 | 45 | 'options' => array( |
46 | 46 | 'position' => array( |
@@ -49,8 +49,8 @@ discard block |
||
49 | 49 | ), |
50 | 50 | ), |
51 | 51 | 3 => array( |
52 | - 'content_id' => 'message_status-' . EEM_Message::status_resend, |
|
53 | - 'target' => '.msg-status-' . EEM_Message::status_resend, |
|
52 | + 'content_id' => 'message_status-'.EEM_Message::status_resend, |
|
53 | + 'target' => '.msg-status-'.EEM_Message::status_resend, |
|
54 | 54 | 'content' => $this->_message_status_legend(EEM_Message::status_resend), |
55 | 55 | 'options' => array( |
56 | 56 | 'position' => array( |
@@ -59,8 +59,8 @@ discard block |
||
59 | 59 | ), |
60 | 60 | ), |
61 | 61 | 4 => array( |
62 | - 'content_id' => 'message_status-' . EEM_Message::status_incomplete, |
|
63 | - 'target' => '.msg-status-' . EEM_Message::status_incomplete, |
|
62 | + 'content_id' => 'message_status-'.EEM_Message::status_incomplete, |
|
63 | + 'target' => '.msg-status-'.EEM_Message::status_incomplete, |
|
64 | 64 | 'content' => $this->_message_status_legend(EEM_Message::status_incomplete), |
65 | 65 | 'options' => array( |
66 | 66 | 'position' => array( |
@@ -69,8 +69,8 @@ discard block |
||
69 | 69 | ), |
70 | 70 | ), |
71 | 71 | 5 => array( |
72 | - 'content_id' => 'message_status-' . EEM_Message::status_retry, |
|
73 | - 'target' => '.msg-status-' . EEM_Message::status_retry, |
|
72 | + 'content_id' => 'message_status-'.EEM_Message::status_retry, |
|
73 | + 'target' => '.msg-status-'.EEM_Message::status_retry, |
|
74 | 74 | 'content' => $this->_message_status_legend(EEM_Message::status_retry), |
75 | 75 | 'options' => array( |
76 | 76 | 'position' => array( |
@@ -79,8 +79,8 @@ discard block |
||
79 | 79 | ), |
80 | 80 | ), |
81 | 81 | 6 => array( |
82 | - 'content_id' => 'message_status-' . EEM_Message::status_debug_only, |
|
83 | - 'target' => '.msg-status-' . EEM_Message::status_debug_only, |
|
82 | + 'content_id' => 'message_status-'.EEM_Message::status_debug_only, |
|
83 | + 'target' => '.msg-status-'.EEM_Message::status_debug_only, |
|
84 | 84 | 'content' => $this->_message_status_legend(EEM_Message::status_debug_only), |
85 | 85 | 'options' => array( |
86 | 86 | 'position' => array( |
@@ -13,105 +13,105 @@ |
||
13 | 13 | */ |
14 | 14 | class EE_Message_List_Table_Tips extends EE_Qtip_Config |
15 | 15 | { |
16 | - protected function _set_tips_array() |
|
17 | - { |
|
18 | - $this->_qtipsa = array( |
|
19 | - 0 => array( |
|
20 | - 'content_id' => 'message_status-' . EEM_Message::status_sent, |
|
21 | - 'target' => '.msg-status-' . EEM_Message::status_sent, |
|
22 | - 'content' => $this->_message_status_legend(EEM_Message::status_sent), |
|
23 | - 'options' => array( |
|
24 | - 'position' => array( |
|
25 | - 'target' => 'mouse', |
|
26 | - ), |
|
27 | - ), |
|
28 | - ), |
|
29 | - 1 => array( |
|
30 | - 'content_id' => 'message_status-' . EEM_Message::status_idle, |
|
31 | - 'target' => '.msg-status-' . EEM_Message::status_idle, |
|
32 | - 'content' => $this->_message_status_legend(EEM_Message::status_idle), |
|
33 | - 'options' => array( |
|
34 | - 'position' => array( |
|
35 | - 'target' => 'mouse', |
|
36 | - ), |
|
37 | - ), |
|
38 | - ), |
|
39 | - 2 => array( |
|
40 | - 'content_id' => 'message_status-' . EEM_Message::status_failed, |
|
41 | - 'target' => '.msg-status-' . EEM_Message::status_failed, |
|
42 | - 'content' => $this->_message_status_legend(EEM_Message::status_failed), |
|
43 | - 'options' => array( |
|
44 | - 'position' => array( |
|
45 | - 'target' => 'mouse', |
|
46 | - ), |
|
47 | - ), |
|
48 | - ), |
|
49 | - 3 => array( |
|
50 | - 'content_id' => 'message_status-' . EEM_Message::status_resend, |
|
51 | - 'target' => '.msg-status-' . EEM_Message::status_resend, |
|
52 | - 'content' => $this->_message_status_legend(EEM_Message::status_resend), |
|
53 | - 'options' => array( |
|
54 | - 'position' => array( |
|
55 | - 'target' => 'mouse', |
|
56 | - ), |
|
57 | - ), |
|
58 | - ), |
|
59 | - 4 => array( |
|
60 | - 'content_id' => 'message_status-' . EEM_Message::status_incomplete, |
|
61 | - 'target' => '.msg-status-' . EEM_Message::status_incomplete, |
|
62 | - 'content' => $this->_message_status_legend(EEM_Message::status_incomplete), |
|
63 | - 'options' => array( |
|
64 | - 'position' => array( |
|
65 | - 'target' => 'mouse', |
|
66 | - ), |
|
67 | - ), |
|
68 | - ), |
|
69 | - 5 => array( |
|
70 | - 'content_id' => 'message_status-' . EEM_Message::status_retry, |
|
71 | - 'target' => '.msg-status-' . EEM_Message::status_retry, |
|
72 | - 'content' => $this->_message_status_legend(EEM_Message::status_retry), |
|
73 | - 'options' => array( |
|
74 | - 'position' => array( |
|
75 | - 'target' => 'mouse', |
|
76 | - ), |
|
77 | - ), |
|
78 | - ), |
|
79 | - 6 => array( |
|
80 | - 'content_id' => 'message_status-' . EEM_Message::status_debug_only, |
|
81 | - 'target' => '.msg-status-' . EEM_Message::status_debug_only, |
|
82 | - 'content' => $this->_message_status_legend(EEM_Message::status_debug_only), |
|
83 | - 'options' => array( |
|
84 | - 'position' => array( |
|
85 | - 'target' => 'mouse', |
|
86 | - ), |
|
87 | - ), |
|
88 | - ), |
|
89 | - ); |
|
90 | - } |
|
16 | + protected function _set_tips_array() |
|
17 | + { |
|
18 | + $this->_qtipsa = array( |
|
19 | + 0 => array( |
|
20 | + 'content_id' => 'message_status-' . EEM_Message::status_sent, |
|
21 | + 'target' => '.msg-status-' . EEM_Message::status_sent, |
|
22 | + 'content' => $this->_message_status_legend(EEM_Message::status_sent), |
|
23 | + 'options' => array( |
|
24 | + 'position' => array( |
|
25 | + 'target' => 'mouse', |
|
26 | + ), |
|
27 | + ), |
|
28 | + ), |
|
29 | + 1 => array( |
|
30 | + 'content_id' => 'message_status-' . EEM_Message::status_idle, |
|
31 | + 'target' => '.msg-status-' . EEM_Message::status_idle, |
|
32 | + 'content' => $this->_message_status_legend(EEM_Message::status_idle), |
|
33 | + 'options' => array( |
|
34 | + 'position' => array( |
|
35 | + 'target' => 'mouse', |
|
36 | + ), |
|
37 | + ), |
|
38 | + ), |
|
39 | + 2 => array( |
|
40 | + 'content_id' => 'message_status-' . EEM_Message::status_failed, |
|
41 | + 'target' => '.msg-status-' . EEM_Message::status_failed, |
|
42 | + 'content' => $this->_message_status_legend(EEM_Message::status_failed), |
|
43 | + 'options' => array( |
|
44 | + 'position' => array( |
|
45 | + 'target' => 'mouse', |
|
46 | + ), |
|
47 | + ), |
|
48 | + ), |
|
49 | + 3 => array( |
|
50 | + 'content_id' => 'message_status-' . EEM_Message::status_resend, |
|
51 | + 'target' => '.msg-status-' . EEM_Message::status_resend, |
|
52 | + 'content' => $this->_message_status_legend(EEM_Message::status_resend), |
|
53 | + 'options' => array( |
|
54 | + 'position' => array( |
|
55 | + 'target' => 'mouse', |
|
56 | + ), |
|
57 | + ), |
|
58 | + ), |
|
59 | + 4 => array( |
|
60 | + 'content_id' => 'message_status-' . EEM_Message::status_incomplete, |
|
61 | + 'target' => '.msg-status-' . EEM_Message::status_incomplete, |
|
62 | + 'content' => $this->_message_status_legend(EEM_Message::status_incomplete), |
|
63 | + 'options' => array( |
|
64 | + 'position' => array( |
|
65 | + 'target' => 'mouse', |
|
66 | + ), |
|
67 | + ), |
|
68 | + ), |
|
69 | + 5 => array( |
|
70 | + 'content_id' => 'message_status-' . EEM_Message::status_retry, |
|
71 | + 'target' => '.msg-status-' . EEM_Message::status_retry, |
|
72 | + 'content' => $this->_message_status_legend(EEM_Message::status_retry), |
|
73 | + 'options' => array( |
|
74 | + 'position' => array( |
|
75 | + 'target' => 'mouse', |
|
76 | + ), |
|
77 | + ), |
|
78 | + ), |
|
79 | + 6 => array( |
|
80 | + 'content_id' => 'message_status-' . EEM_Message::status_debug_only, |
|
81 | + 'target' => '.msg-status-' . EEM_Message::status_debug_only, |
|
82 | + 'content' => $this->_message_status_legend(EEM_Message::status_debug_only), |
|
83 | + 'options' => array( |
|
84 | + 'position' => array( |
|
85 | + 'target' => 'mouse', |
|
86 | + ), |
|
87 | + ), |
|
88 | + ), |
|
89 | + ); |
|
90 | + } |
|
91 | 91 | |
92 | 92 | |
93 | - /** |
|
94 | - * output the relevant ee-status-legend with the designated status highlighted. |
|
95 | - * |
|
96 | - * @param EEM_Message constant $status What status is set (by class) |
|
97 | - * @return string The status legend with the related status highlighted |
|
98 | - */ |
|
99 | - private function _message_status_legend($status) |
|
100 | - { |
|
93 | + /** |
|
94 | + * output the relevant ee-status-legend with the designated status highlighted. |
|
95 | + * |
|
96 | + * @param EEM_Message constant $status What status is set (by class) |
|
97 | + * @return string The status legend with the related status highlighted |
|
98 | + */ |
|
99 | + private function _message_status_legend($status) |
|
100 | + { |
|
101 | 101 | |
102 | - $status_array = array( |
|
103 | - 'sent_status' => EEM_Message::status_sent, |
|
104 | - 'idle_status' => EEM_Message::status_idle, |
|
105 | - 'failed_status' => EEM_Message::status_failed, |
|
106 | - 'resend_status' => EEM_Message::status_resend, |
|
107 | - 'incomplete_status' => EEM_Message::status_incomplete, |
|
108 | - 'retry_status' => EEM_Message::status_retry, |
|
109 | - ); |
|
102 | + $status_array = array( |
|
103 | + 'sent_status' => EEM_Message::status_sent, |
|
104 | + 'idle_status' => EEM_Message::status_idle, |
|
105 | + 'failed_status' => EEM_Message::status_failed, |
|
106 | + 'resend_status' => EEM_Message::status_resend, |
|
107 | + 'incomplete_status' => EEM_Message::status_incomplete, |
|
108 | + 'retry_status' => EEM_Message::status_retry, |
|
109 | + ); |
|
110 | 110 | |
111 | - if (defined('WP_DEBUG') && WP_DEBUG) { |
|
112 | - $status_array['debug_only_status'] = EEM_Message::status_debug_only; |
|
113 | - } |
|
111 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
112 | + $status_array['debug_only_status'] = EEM_Message::status_debug_only; |
|
113 | + } |
|
114 | 114 | |
115 | - return EEH_Template::status_legend($status_array, $status); |
|
116 | - } |
|
115 | + return EEH_Template::status_legend($status_array, $status); |
|
116 | + } |
|
117 | 117 | } |
@@ -4,15 +4,15 @@ |
||
4 | 4 | <h1><?php esc_html_e("You must upgrade your Event Espresso Add-ons before Migrating", "event_espresso"); ?></h1> |
5 | 5 | <p> |
6 | 6 | <?php printf( |
7 | - esc_html__( |
|
8 | - "Please %s visit the plugins page%s and update all Event Espresso addon plugins before updating your database.", |
|
9 | - "event_espresso" |
|
10 | - ), |
|
11 | - "<a href='" . admin_url('/plugins.php') . "'>", |
|
12 | - "</a>" |
|
13 | - ); ?></p> |
|
7 | + esc_html__( |
|
8 | + "Please %s visit the plugins page%s and update all Event Espresso addon plugins before updating your database.", |
|
9 | + "event_espresso" |
|
10 | + ), |
|
11 | + "<a href='" . admin_url('/plugins.php') . "'>", |
|
12 | + "</a>" |
|
13 | + ); ?></p> |
|
14 | 14 | <p> |
15 | 15 | <?php esc_html_e( |
16 | - "You can also deactivate the addons, but all of their data will be lost when your database is migrated", |
|
17 | - "event_espresso" |
|
18 | - ); ?></p> |
|
19 | 16 | \ No newline at end of file |
17 | + "You can also deactivate the addons, but all of their data will be lost when your database is migrated", |
|
18 | + "event_espresso" |
|
19 | + ); ?></p> |
|
20 | 20 | \ No newline at end of file |
@@ -8,7 +8,7 @@ |
||
8 | 8 | "Please %s visit the plugins page%s and update all Event Espresso addon plugins before updating your database.", |
9 | 9 | "event_espresso" |
10 | 10 | ), |
11 | - "<a href='" . admin_url('/plugins.php') . "'>", |
|
11 | + "<a href='".admin_url('/plugins.php')."'>", |
|
12 | 12 | "</a>" |
13 | 13 | ); ?></p> |
14 | 14 | <p> |
@@ -19,8 +19,8 @@ discard block |
||
19 | 19 | { |
20 | 20 | $this->_qtipsa = array( |
21 | 21 | 0 => array( |
22 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_approved, |
|
23 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_approved, |
|
22 | + 'content_id' => 'payment-status-'.EEM_Payment::status_id_approved, |
|
23 | + 'target' => '.pymt-status-'.EEM_Payment::status_id_approved, |
|
24 | 24 | 'content' => $this->_payment_status_legend(EEM_Payment::status_id_approved), |
25 | 25 | 'options' => array( |
26 | 26 | 'position' => array( |
@@ -29,8 +29,8 @@ discard block |
||
29 | 29 | ), |
30 | 30 | ), |
31 | 31 | 1 => array( |
32 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_pending, |
|
33 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_pending, |
|
32 | + 'content_id' => 'payment-status-'.EEM_Payment::status_id_pending, |
|
33 | + 'target' => '.pymt-status-'.EEM_Payment::status_id_pending, |
|
34 | 34 | 'content' => $this->_payment_status_legend(EEM_Payment::status_id_pending), |
35 | 35 | 'options' => array( |
36 | 36 | 'position' => array( |
@@ -39,8 +39,8 @@ discard block |
||
39 | 39 | ), |
40 | 40 | ), |
41 | 41 | 2 => array( |
42 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_cancelled, |
|
43 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_cancelled, |
|
42 | + 'content_id' => 'payment-status-'.EEM_Payment::status_id_cancelled, |
|
43 | + 'target' => '.pymt-status-'.EEM_Payment::status_id_cancelled, |
|
44 | 44 | 'content' => $this->_payment_status_legend(EEM_Payment::status_id_cancelled), |
45 | 45 | 'options' => array( |
46 | 46 | 'position' => array( |
@@ -49,8 +49,8 @@ discard block |
||
49 | 49 | ), |
50 | 50 | ), |
51 | 51 | 3 => array( |
52 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_declined, |
|
53 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_declined, |
|
52 | + 'content_id' => 'payment-status-'.EEM_Payment::status_id_declined, |
|
53 | + 'target' => '.pymt-status-'.EEM_Payment::status_id_declined, |
|
54 | 54 | 'content' => $this->_payment_status_legend(EEM_Payment::status_id_declined), |
55 | 55 | 'options' => array( |
56 | 56 | 'position' => array( |
@@ -59,8 +59,8 @@ discard block |
||
59 | 59 | ), |
60 | 60 | ), |
61 | 61 | 4 => array( |
62 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_failed, |
|
63 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_failed, |
|
62 | + 'content_id' => 'payment-status-'.EEM_Payment::status_id_failed, |
|
63 | + 'target' => '.pymt-status-'.EEM_Payment::status_id_failed, |
|
64 | 64 | 'content' => $this->_payment_status_legend(EEM_Payment::status_id_failed), |
65 | 65 | 'options' => array( |
66 | 66 | 'position' => array( |
@@ -13,80 +13,80 @@ |
||
13 | 13 | */ |
14 | 14 | class Transaction_Details_Tips extends EE_Qtip_Config |
15 | 15 | { |
16 | - protected function _set_tips_array() |
|
17 | - { |
|
18 | - $this->_qtipsa = array( |
|
19 | - 0 => array( |
|
20 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_approved, |
|
21 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_approved, |
|
22 | - 'content' => $this->_payment_status_legend(EEM_Payment::status_id_approved), |
|
23 | - 'options' => array( |
|
24 | - 'position' => array( |
|
25 | - 'target' => 'mouse', |
|
26 | - ), |
|
27 | - ), |
|
28 | - ), |
|
29 | - 1 => array( |
|
30 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_pending, |
|
31 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_pending, |
|
32 | - 'content' => $this->_payment_status_legend(EEM_Payment::status_id_pending), |
|
33 | - 'options' => array( |
|
34 | - 'position' => array( |
|
35 | - 'target' => 'mouse', |
|
36 | - ), |
|
37 | - ), |
|
38 | - ), |
|
39 | - 2 => array( |
|
40 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_cancelled, |
|
41 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_cancelled, |
|
42 | - 'content' => $this->_payment_status_legend(EEM_Payment::status_id_cancelled), |
|
43 | - 'options' => array( |
|
44 | - 'position' => array( |
|
45 | - 'target' => 'mouse', |
|
46 | - ), |
|
47 | - ), |
|
48 | - ), |
|
49 | - 3 => array( |
|
50 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_declined, |
|
51 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_declined, |
|
52 | - 'content' => $this->_payment_status_legend(EEM_Payment::status_id_declined), |
|
53 | - 'options' => array( |
|
54 | - 'position' => array( |
|
55 | - 'target' => 'mouse', |
|
56 | - ), |
|
57 | - ), |
|
58 | - ), |
|
59 | - 4 => array( |
|
60 | - 'content_id' => 'payment-status-' . EEM_Payment::status_id_failed, |
|
61 | - 'target' => '.pymt-status-' . EEM_Payment::status_id_failed, |
|
62 | - 'content' => $this->_payment_status_legend(EEM_Payment::status_id_failed), |
|
63 | - 'options' => array( |
|
64 | - 'position' => array( |
|
65 | - 'target' => 'mouse', |
|
66 | - ), |
|
67 | - ), |
|
68 | - ), |
|
69 | - ); |
|
70 | - } |
|
16 | + protected function _set_tips_array() |
|
17 | + { |
|
18 | + $this->_qtipsa = array( |
|
19 | + 0 => array( |
|
20 | + 'content_id' => 'payment-status-' . EEM_Payment::status_id_approved, |
|
21 | + 'target' => '.pymt-status-' . EEM_Payment::status_id_approved, |
|
22 | + 'content' => $this->_payment_status_legend(EEM_Payment::status_id_approved), |
|
23 | + 'options' => array( |
|
24 | + 'position' => array( |
|
25 | + 'target' => 'mouse', |
|
26 | + ), |
|
27 | + ), |
|
28 | + ), |
|
29 | + 1 => array( |
|
30 | + 'content_id' => 'payment-status-' . EEM_Payment::status_id_pending, |
|
31 | + 'target' => '.pymt-status-' . EEM_Payment::status_id_pending, |
|
32 | + 'content' => $this->_payment_status_legend(EEM_Payment::status_id_pending), |
|
33 | + 'options' => array( |
|
34 | + 'position' => array( |
|
35 | + 'target' => 'mouse', |
|
36 | + ), |
|
37 | + ), |
|
38 | + ), |
|
39 | + 2 => array( |
|
40 | + 'content_id' => 'payment-status-' . EEM_Payment::status_id_cancelled, |
|
41 | + 'target' => '.pymt-status-' . EEM_Payment::status_id_cancelled, |
|
42 | + 'content' => $this->_payment_status_legend(EEM_Payment::status_id_cancelled), |
|
43 | + 'options' => array( |
|
44 | + 'position' => array( |
|
45 | + 'target' => 'mouse', |
|
46 | + ), |
|
47 | + ), |
|
48 | + ), |
|
49 | + 3 => array( |
|
50 | + 'content_id' => 'payment-status-' . EEM_Payment::status_id_declined, |
|
51 | + 'target' => '.pymt-status-' . EEM_Payment::status_id_declined, |
|
52 | + 'content' => $this->_payment_status_legend(EEM_Payment::status_id_declined), |
|
53 | + 'options' => array( |
|
54 | + 'position' => array( |
|
55 | + 'target' => 'mouse', |
|
56 | + ), |
|
57 | + ), |
|
58 | + ), |
|
59 | + 4 => array( |
|
60 | + 'content_id' => 'payment-status-' . EEM_Payment::status_id_failed, |
|
61 | + 'target' => '.pymt-status-' . EEM_Payment::status_id_failed, |
|
62 | + 'content' => $this->_payment_status_legend(EEM_Payment::status_id_failed), |
|
63 | + 'options' => array( |
|
64 | + 'position' => array( |
|
65 | + 'target' => 'mouse', |
|
66 | + ), |
|
67 | + ), |
|
68 | + ), |
|
69 | + ); |
|
70 | + } |
|
71 | 71 | |
72 | 72 | |
73 | - /** |
|
74 | - * output the relevant ee-status-legend with the designated status highlighted. |
|
75 | - * |
|
76 | - * @param EEM_Payment constant $status What status is set (by class) |
|
77 | - * @return string The status legend with the related status highlighted |
|
78 | - */ |
|
79 | - private function _payment_status_legend($status) |
|
80 | - { |
|
73 | + /** |
|
74 | + * output the relevant ee-status-legend with the designated status highlighted. |
|
75 | + * |
|
76 | + * @param EEM_Payment constant $status What status is set (by class) |
|
77 | + * @return string The status legend with the related status highlighted |
|
78 | + */ |
|
79 | + private function _payment_status_legend($status) |
|
80 | + { |
|
81 | 81 | |
82 | - $status_array = array( |
|
83 | - 'approved' => EEM_Payment::status_id_approved, |
|
84 | - 'pending' => EEM_Payment::status_id_pending, |
|
85 | - 'cancelled' => EEM_Payment::status_id_cancelled, |
|
86 | - 'declined' => EEM_Payment::status_id_declined, |
|
87 | - 'failed' => EEM_Payment::status_id_failed, |
|
88 | - ); |
|
82 | + $status_array = array( |
|
83 | + 'approved' => EEM_Payment::status_id_approved, |
|
84 | + 'pending' => EEM_Payment::status_id_pending, |
|
85 | + 'cancelled' => EEM_Payment::status_id_cancelled, |
|
86 | + 'declined' => EEM_Payment::status_id_declined, |
|
87 | + 'failed' => EEM_Payment::status_id_failed, |
|
88 | + ); |
|
89 | 89 | |
90 | - return EEH_Template::status_legend($status_array, $status); |
|
91 | - } |
|
90 | + return EEH_Template::status_legend($status_array, $status); |
|
91 | + } |
|
92 | 92 | } |
@@ -90,7 +90,7 @@ discard block |
||
90 | 90 | { |
91 | 91 | wp_register_style( |
92 | 92 | 'ee-other-services-css', |
93 | - EE_OTHER_SERVICES_ASSETS_URL . 'other-services.css', |
|
93 | + EE_OTHER_SERVICES_ASSETS_URL.'other-services.css', |
|
94 | 94 | array('ee-admin-css'), |
95 | 95 | EVENT_ESPRESSO_VERSION |
96 | 96 | ); |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | protected function _other_services() |
102 | 102 | { |
103 | 103 | $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
104 | - EE_OTHER_SERVICES_ADMIN_TEMPLATE_PATH . 'other_services_content.template.php', |
|
104 | + EE_OTHER_SERVICES_ADMIN_TEMPLATE_PATH.'other_services_content.template.php', |
|
105 | 105 | array(), |
106 | 106 | true |
107 | 107 | ); |
@@ -15,94 +15,94 @@ |
||
15 | 15 | */ |
16 | 16 | class Other_Services_Admin_Page extends EE_Admin_Page |
17 | 17 | { |
18 | - protected function _init_page_props() |
|
19 | - { |
|
20 | - $this->page_slug = EE_OTHER_SERVICES_PG_SLUG; |
|
21 | - $this->page_label = esc_html__('Extensions & Services', 'event_espresso'); |
|
22 | - $this->_admin_base_url = EE_OTHER_SERVICES_ADMIN_URL; |
|
23 | - $this->_admin_base_path = EE_OTHER_SERVICES_ADMIN; |
|
24 | - } |
|
25 | - |
|
26 | - |
|
27 | - protected function _ajax_hooks() |
|
28 | - { |
|
29 | - // todo: all hooks for ajax goes here. |
|
30 | - } |
|
31 | - |
|
32 | - |
|
33 | - protected function _define_page_props() |
|
34 | - { |
|
35 | - $this->_labels = array(); |
|
36 | - $this->_admin_page_title = $this->page_label; |
|
37 | - } |
|
38 | - |
|
39 | - |
|
40 | - protected function _set_page_routes() |
|
41 | - { |
|
42 | - $this->_page_routes = array( |
|
43 | - 'default' => array( |
|
44 | - 'func' => '_other_services', |
|
45 | - 'capability' => 'ee_read_ee', |
|
46 | - ), |
|
47 | - ); |
|
48 | - } |
|
49 | - |
|
50 | - |
|
51 | - protected function _set_page_config() |
|
52 | - { |
|
53 | - $this->_page_config = array( |
|
54 | - 'default' => array( |
|
55 | - 'nav' => array( |
|
56 | - 'label' => esc_html__('Other Available Services', 'event_espresso'), |
|
57 | - 'order' => 10, |
|
58 | - ), |
|
59 | - 'require_nonce' => false, |
|
60 | - ), |
|
61 | - ); |
|
62 | - } |
|
63 | - |
|
64 | - |
|
65 | - // none of the below group are currently used for Support pages |
|
66 | - protected function _add_screen_options() |
|
67 | - { |
|
68 | - } |
|
69 | - |
|
70 | - protected function _add_feature_pointers() |
|
71 | - { |
|
72 | - } |
|
73 | - |
|
74 | - public function admin_init() |
|
75 | - { |
|
76 | - } |
|
77 | - |
|
78 | - public function admin_notices() |
|
79 | - { |
|
80 | - } |
|
81 | - |
|
82 | - public function admin_footer_scripts() |
|
83 | - { |
|
84 | - } |
|
85 | - |
|
86 | - |
|
87 | - public function load_scripts_styles() |
|
88 | - { |
|
89 | - wp_register_style( |
|
90 | - 'ee-other-services-css', |
|
91 | - EE_OTHER_SERVICES_ASSETS_URL . 'other-services.css', |
|
92 | - array('ee-admin-css'), |
|
93 | - EVENT_ESPRESSO_VERSION |
|
94 | - ); |
|
95 | - wp_enqueue_style('ee-other-services-css'); |
|
96 | - } |
|
97 | - |
|
98 | - |
|
99 | - protected function _other_services() |
|
100 | - { |
|
101 | - $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
|
102 | - EE_OTHER_SERVICES_ADMIN_TEMPLATE_PATH . 'other_services_content.template.php', |
|
103 | - array(), |
|
104 | - true |
|
105 | - ); |
|
106 | - $this->display_admin_page_with_no_sidebar(); |
|
107 | - } |
|
18 | + protected function _init_page_props() |
|
19 | + { |
|
20 | + $this->page_slug = EE_OTHER_SERVICES_PG_SLUG; |
|
21 | + $this->page_label = esc_html__('Extensions & Services', 'event_espresso'); |
|
22 | + $this->_admin_base_url = EE_OTHER_SERVICES_ADMIN_URL; |
|
23 | + $this->_admin_base_path = EE_OTHER_SERVICES_ADMIN; |
|
24 | + } |
|
25 | + |
|
26 | + |
|
27 | + protected function _ajax_hooks() |
|
28 | + { |
|
29 | + // todo: all hooks for ajax goes here. |
|
30 | + } |
|
31 | + |
|
32 | + |
|
33 | + protected function _define_page_props() |
|
34 | + { |
|
35 | + $this->_labels = array(); |
|
36 | + $this->_admin_page_title = $this->page_label; |
|
37 | + } |
|
38 | + |
|
39 | + |
|
40 | + protected function _set_page_routes() |
|
41 | + { |
|
42 | + $this->_page_routes = array( |
|
43 | + 'default' => array( |
|
44 | + 'func' => '_other_services', |
|
45 | + 'capability' => 'ee_read_ee', |
|
46 | + ), |
|
47 | + ); |
|
48 | + } |
|
49 | + |
|
50 | + |
|
51 | + protected function _set_page_config() |
|
52 | + { |
|
53 | + $this->_page_config = array( |
|
54 | + 'default' => array( |
|
55 | + 'nav' => array( |
|
56 | + 'label' => esc_html__('Other Available Services', 'event_espresso'), |
|
57 | + 'order' => 10, |
|
58 | + ), |
|
59 | + 'require_nonce' => false, |
|
60 | + ), |
|
61 | + ); |
|
62 | + } |
|
63 | + |
|
64 | + |
|
65 | + // none of the below group are currently used for Support pages |
|
66 | + protected function _add_screen_options() |
|
67 | + { |
|
68 | + } |
|
69 | + |
|
70 | + protected function _add_feature_pointers() |
|
71 | + { |
|
72 | + } |
|
73 | + |
|
74 | + public function admin_init() |
|
75 | + { |
|
76 | + } |
|
77 | + |
|
78 | + public function admin_notices() |
|
79 | + { |
|
80 | + } |
|
81 | + |
|
82 | + public function admin_footer_scripts() |
|
83 | + { |
|
84 | + } |
|
85 | + |
|
86 | + |
|
87 | + public function load_scripts_styles() |
|
88 | + { |
|
89 | + wp_register_style( |
|
90 | + 'ee-other-services-css', |
|
91 | + EE_OTHER_SERVICES_ASSETS_URL . 'other-services.css', |
|
92 | + array('ee-admin-css'), |
|
93 | + EVENT_ESPRESSO_VERSION |
|
94 | + ); |
|
95 | + wp_enqueue_style('ee-other-services-css'); |
|
96 | + } |
|
97 | + |
|
98 | + |
|
99 | + protected function _other_services() |
|
100 | + { |
|
101 | + $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
|
102 | + EE_OTHER_SERVICES_ADMIN_TEMPLATE_PATH . 'other_services_content.template.php', |
|
103 | + array(), |
|
104 | + true |
|
105 | + ); |
|
106 | + $this->display_admin_page_with_no_sidebar(); |
|
107 | + } |
|
108 | 108 | } |
@@ -9,13 +9,13 @@ |
||
9 | 9 | interface CommandFactoryInterface |
10 | 10 | { |
11 | 11 | |
12 | - /** |
|
13 | - * @param string $command_fqcn |
|
14 | - * @param array $arguments |
|
15 | - * @return mixed |
|
16 | - * @throws InvalidArgumentException |
|
17 | - * @throws InvalidDataTypeException |
|
18 | - * @throws InvalidInterfaceException |
|
19 | - */ |
|
20 | - public function getNew($command_fqcn, $arguments = array()); |
|
12 | + /** |
|
13 | + * @param string $command_fqcn |
|
14 | + * @param array $arguments |
|
15 | + * @return mixed |
|
16 | + * @throws InvalidArgumentException |
|
17 | + * @throws InvalidDataTypeException |
|
18 | + * @throws InvalidInterfaceException |
|
19 | + */ |
|
20 | + public function getNew($command_fqcn, $arguments = array()); |
|
21 | 21 | } |
@@ -5,18 +5,18 @@ |
||
5 | 5 | interface LoaderDecoratorInterface |
6 | 6 | { |
7 | 7 | |
8 | - /** |
|
9 | - * @param string $fqcn |
|
10 | - * @param array $arguments |
|
11 | - * @param bool $shared |
|
12 | - * @return mixed |
|
13 | - */ |
|
14 | - public function load($fqcn, $arguments = array(), $shared = true); |
|
8 | + /** |
|
9 | + * @param string $fqcn |
|
10 | + * @param array $arguments |
|
11 | + * @param bool $shared |
|
12 | + * @return mixed |
|
13 | + */ |
|
14 | + public function load($fqcn, $arguments = array(), $shared = true); |
|
15 | 15 | |
16 | 16 | |
17 | 17 | |
18 | - /** |
|
19 | - * calls reset() on loader if method exists |
|
20 | - */ |
|
21 | - public function reset(); |
|
18 | + /** |
|
19 | + * calls reset() on loader if method exists |
|
20 | + */ |
|
21 | + public function reset(); |
|
22 | 22 | } |
@@ -59,7 +59,7 @@ |
||
59 | 59 | // although we don't know the TZ abbreviation, we know the UTC offset |
60 | 60 | $timezone_string = timezone_name_from_abbr(null, $gmt_offset); |
61 | 61 | // only use this timezone_string IF it's current offset matches the given offset |
62 | - if (! empty($timezone_string)) { |
|
62 | + if ( ! empty($timezone_string)) { |
|
63 | 63 | $offset = null; |
64 | 64 | try { |
65 | 65 | $offset = $this->getTimezoneOffset(new DateTimeZone($timezone_string)); |
@@ -18,221 +18,221 @@ |
||
18 | 18 | */ |
19 | 19 | class PhpCompatLessFiveSixHelper extends AbstractHelper |
20 | 20 | { |
21 | - /** |
|
22 | - * PhpCompatLessFiveSixHelper constructor. |
|
23 | - * |
|
24 | - * @throws DomainException |
|
25 | - */ |
|
26 | - public function __construct() |
|
27 | - { |
|
28 | - if (PHP_VERSION_ID >= 50600) { |
|
29 | - throw new DomainException( |
|
30 | - sprintf( |
|
31 | - esc_html__( |
|
32 | - 'The %1$s is only usable on php versions less than 5.6. You\'ll want to use %2$s instead.', |
|
33 | - 'event_espresso' |
|
34 | - ), |
|
35 | - __CLASS__, |
|
36 | - 'EventEspresso\core\services\helpers\datetime\PhpCompatGreaterFiveSixHelper' |
|
37 | - ) |
|
38 | - ); |
|
39 | - } |
|
40 | - } |
|
21 | + /** |
|
22 | + * PhpCompatLessFiveSixHelper constructor. |
|
23 | + * |
|
24 | + * @throws DomainException |
|
25 | + */ |
|
26 | + public function __construct() |
|
27 | + { |
|
28 | + if (PHP_VERSION_ID >= 50600) { |
|
29 | + throw new DomainException( |
|
30 | + sprintf( |
|
31 | + esc_html__( |
|
32 | + 'The %1$s is only usable on php versions less than 5.6. You\'ll want to use %2$s instead.', |
|
33 | + 'event_espresso' |
|
34 | + ), |
|
35 | + __CLASS__, |
|
36 | + 'EventEspresso\core\services\helpers\datetime\PhpCompatGreaterFiveSixHelper' |
|
37 | + ) |
|
38 | + ); |
|
39 | + } |
|
40 | + } |
|
41 | 41 | |
42 | - /** |
|
43 | - * Returns a timezone string for the provided gmt_offset. |
|
44 | - * |
|
45 | - * @param float|string $gmt_offset |
|
46 | - * @return string |
|
47 | - * @throws EE_Error |
|
48 | - */ |
|
49 | - public function getTimezoneStringFromGmtOffset($gmt_offset = '') |
|
50 | - { |
|
51 | - $gmt_offset_or_timezone_string = $this->sanitizeInitialIncomingGmtOffsetForGettingTimezoneString($gmt_offset); |
|
52 | - if (is_string($gmt_offset_or_timezone_string)) { |
|
53 | - return $gmt_offset_or_timezone_string; |
|
54 | - } |
|
55 | - // well we know its a float, so let's roll with it. |
|
56 | - $gmt_offset = $gmt_offset_or_timezone_string; |
|
57 | - // convert GMT offset to seconds |
|
58 | - $gmt_offset *= HOUR_IN_SECONDS; |
|
59 | - // although we don't know the TZ abbreviation, we know the UTC offset |
|
60 | - $timezone_string = timezone_name_from_abbr(null, $gmt_offset); |
|
61 | - // only use this timezone_string IF it's current offset matches the given offset |
|
62 | - if (! empty($timezone_string)) { |
|
63 | - $offset = null; |
|
64 | - try { |
|
65 | - $offset = $this->getTimezoneOffset(new DateTimeZone($timezone_string)); |
|
66 | - if ($offset !== $gmt_offset) { |
|
67 | - $timezone_string = false; |
|
68 | - } |
|
69 | - } catch (Exception $e) { |
|
70 | - $timezone_string = false; |
|
71 | - } |
|
72 | - } |
|
73 | - // better have a valid timezone string by now, but if not, sigh... loop thru the timezone_abbreviations_list() |
|
74 | - // ... |
|
75 | - $timezone_string = $timezone_string !== false |
|
76 | - ? $timezone_string |
|
77 | - : $this->getTimezoneStringFromAbbreviationsList($gmt_offset); |
|
78 | - return $timezone_string; |
|
79 | - } |
|
42 | + /** |
|
43 | + * Returns a timezone string for the provided gmt_offset. |
|
44 | + * |
|
45 | + * @param float|string $gmt_offset |
|
46 | + * @return string |
|
47 | + * @throws EE_Error |
|
48 | + */ |
|
49 | + public function getTimezoneStringFromGmtOffset($gmt_offset = '') |
|
50 | + { |
|
51 | + $gmt_offset_or_timezone_string = $this->sanitizeInitialIncomingGmtOffsetForGettingTimezoneString($gmt_offset); |
|
52 | + if (is_string($gmt_offset_or_timezone_string)) { |
|
53 | + return $gmt_offset_or_timezone_string; |
|
54 | + } |
|
55 | + // well we know its a float, so let's roll with it. |
|
56 | + $gmt_offset = $gmt_offset_or_timezone_string; |
|
57 | + // convert GMT offset to seconds |
|
58 | + $gmt_offset *= HOUR_IN_SECONDS; |
|
59 | + // although we don't know the TZ abbreviation, we know the UTC offset |
|
60 | + $timezone_string = timezone_name_from_abbr(null, $gmt_offset); |
|
61 | + // only use this timezone_string IF it's current offset matches the given offset |
|
62 | + if (! empty($timezone_string)) { |
|
63 | + $offset = null; |
|
64 | + try { |
|
65 | + $offset = $this->getTimezoneOffset(new DateTimeZone($timezone_string)); |
|
66 | + if ($offset !== $gmt_offset) { |
|
67 | + $timezone_string = false; |
|
68 | + } |
|
69 | + } catch (Exception $e) { |
|
70 | + $timezone_string = false; |
|
71 | + } |
|
72 | + } |
|
73 | + // better have a valid timezone string by now, but if not, sigh... loop thru the timezone_abbreviations_list() |
|
74 | + // ... |
|
75 | + $timezone_string = $timezone_string !== false |
|
76 | + ? $timezone_string |
|
77 | + : $this->getTimezoneStringFromAbbreviationsList($gmt_offset); |
|
78 | + return $timezone_string; |
|
79 | + } |
|
80 | 80 | |
81 | 81 | |
82 | - /** |
|
83 | - * @param int $gmt_offset |
|
84 | - * @param bool $coerce If true, we attempt to coerce with our adjustment table |
|
85 | - * @see self::adjustInvalidGmtOffset |
|
86 | - * @return string |
|
87 | - * @throws EE_Error |
|
88 | - */ |
|
89 | - protected function getTimezoneStringFromAbbreviationsList($gmt_offset = 0, $coerce = true) |
|
90 | - { |
|
91 | - $gmt_offset = (int) $gmt_offset; |
|
92 | - /** @var array[] $abbreviations */ |
|
93 | - $abbreviations = DateTimeZone::listAbbreviations(); |
|
94 | - foreach ($abbreviations as $abbreviation) { |
|
95 | - foreach ($abbreviation as $timezone) { |
|
96 | - if ((int) $timezone['offset'] === $gmt_offset && (bool) $timezone['dst'] === false) { |
|
97 | - try { |
|
98 | - $offset = $this->getTimezoneOffset(new DateTimeZone($timezone['timezone_id'])); |
|
99 | - if ($offset !== $gmt_offset) { |
|
100 | - continue; |
|
101 | - } |
|
102 | - return $timezone['timezone_id']; |
|
103 | - } catch (Exception $e) { |
|
104 | - continue; |
|
105 | - } |
|
106 | - } |
|
107 | - } |
|
108 | - } |
|
109 | - // if $coerce is true, let's see if we can get a timezone string after the offset is adjusted |
|
110 | - if ($coerce === true) { |
|
111 | - $timezone_string = $this->getTimezoneStringFromAbbreviationsList( |
|
112 | - $this->adjustInvalidGmtOffsets($gmt_offset), |
|
113 | - false |
|
114 | - ); |
|
115 | - if ($timezone_string) { |
|
116 | - return $timezone_string; |
|
117 | - } |
|
118 | - } |
|
119 | - throw new EE_Error( |
|
120 | - sprintf( |
|
121 | - esc_html__( |
|
122 | - 'The provided GMT offset (%1$s), is invalid, please check with %2$sthis list%3$s for what valid timezones can be used', |
|
123 | - 'event_espresso' |
|
124 | - ), |
|
125 | - $gmt_offset / HOUR_IN_SECONDS, |
|
126 | - '<a href="http://www.php.net/manual/en/timezones.php">', |
|
127 | - '</a>' |
|
128 | - ) |
|
129 | - ); |
|
130 | - } |
|
82 | + /** |
|
83 | + * @param int $gmt_offset |
|
84 | + * @param bool $coerce If true, we attempt to coerce with our adjustment table |
|
85 | + * @see self::adjustInvalidGmtOffset |
|
86 | + * @return string |
|
87 | + * @throws EE_Error |
|
88 | + */ |
|
89 | + protected function getTimezoneStringFromAbbreviationsList($gmt_offset = 0, $coerce = true) |
|
90 | + { |
|
91 | + $gmt_offset = (int) $gmt_offset; |
|
92 | + /** @var array[] $abbreviations */ |
|
93 | + $abbreviations = DateTimeZone::listAbbreviations(); |
|
94 | + foreach ($abbreviations as $abbreviation) { |
|
95 | + foreach ($abbreviation as $timezone) { |
|
96 | + if ((int) $timezone['offset'] === $gmt_offset && (bool) $timezone['dst'] === false) { |
|
97 | + try { |
|
98 | + $offset = $this->getTimezoneOffset(new DateTimeZone($timezone['timezone_id'])); |
|
99 | + if ($offset !== $gmt_offset) { |
|
100 | + continue; |
|
101 | + } |
|
102 | + return $timezone['timezone_id']; |
|
103 | + } catch (Exception $e) { |
|
104 | + continue; |
|
105 | + } |
|
106 | + } |
|
107 | + } |
|
108 | + } |
|
109 | + // if $coerce is true, let's see if we can get a timezone string after the offset is adjusted |
|
110 | + if ($coerce === true) { |
|
111 | + $timezone_string = $this->getTimezoneStringFromAbbreviationsList( |
|
112 | + $this->adjustInvalidGmtOffsets($gmt_offset), |
|
113 | + false |
|
114 | + ); |
|
115 | + if ($timezone_string) { |
|
116 | + return $timezone_string; |
|
117 | + } |
|
118 | + } |
|
119 | + throw new EE_Error( |
|
120 | + sprintf( |
|
121 | + esc_html__( |
|
122 | + 'The provided GMT offset (%1$s), is invalid, please check with %2$sthis list%3$s for what valid timezones can be used', |
|
123 | + 'event_espresso' |
|
124 | + ), |
|
125 | + $gmt_offset / HOUR_IN_SECONDS, |
|
126 | + '<a href="http://www.php.net/manual/en/timezones.php">', |
|
127 | + '</a>' |
|
128 | + ) |
|
129 | + ); |
|
130 | + } |
|
131 | 131 | |
132 | 132 | |
133 | - /** |
|
134 | - * Depending on PHP version, |
|
135 | - * there might not be valid current timezone strings to match these gmt_offsets in its timezone tables. |
|
136 | - * To get around that, for these fringe timezones we bump them to a known valid offset. |
|
137 | - * This method should ONLY be called after first verifying an timezone_string cannot be retrieved for the offset. |
|
138 | - * |
|
139 | - * @param int $gmt_offset |
|
140 | - * @return int |
|
141 | - */ |
|
142 | - public function adjustInvalidGmtOffsets($gmt_offset = 0) |
|
143 | - { |
|
144 | - // make sure $gmt_offset is int |
|
145 | - $gmt_offset = (int) $gmt_offset; |
|
146 | - switch ($gmt_offset) { |
|
147 | - // -12 |
|
148 | - case -43200: |
|
149 | - $gmt_offset = -39600; |
|
150 | - break; |
|
151 | - // -11.5 |
|
152 | - case -41400: |
|
153 | - $gmt_offset = -39600; |
|
154 | - break; |
|
155 | - // -10.5 |
|
156 | - case -37800: |
|
157 | - $gmt_offset = -39600; |
|
158 | - break; |
|
159 | - // -8.5 |
|
160 | - case -30600: |
|
161 | - $gmt_offset = -28800; |
|
162 | - break; |
|
163 | - // -7.5 |
|
164 | - case -27000: |
|
165 | - $gmt_offset = -25200; |
|
166 | - break; |
|
167 | - // -6.5 |
|
168 | - case -23400: |
|
169 | - $gmt_offset = -21600; |
|
170 | - break; |
|
171 | - // -5.5 |
|
172 | - case -19800: |
|
173 | - $gmt_offset = -18000; |
|
174 | - break; |
|
175 | - // -4.5 |
|
176 | - case -16200: |
|
177 | - $gmt_offset = -14400; |
|
178 | - break; |
|
179 | - // -3.5 |
|
180 | - case -12600: |
|
181 | - $gmt_offset = -10800; |
|
182 | - break; |
|
183 | - // -2.5 |
|
184 | - case -9000: |
|
185 | - $gmt_offset = -7200; |
|
186 | - break; |
|
187 | - // -1.5 |
|
188 | - case -5400: |
|
189 | - $gmt_offset = -3600; |
|
190 | - break; |
|
191 | - // -0.5 |
|
192 | - case -1800: |
|
193 | - $gmt_offset = 0; |
|
194 | - break; |
|
195 | - // .5 |
|
196 | - case 1800: |
|
197 | - $gmt_offset = 3600; |
|
198 | - break; |
|
199 | - // 1.5 |
|
200 | - case 5400: |
|
201 | - $gmt_offset = 7200; |
|
202 | - break; |
|
203 | - // 2.5 |
|
204 | - case 9000: |
|
205 | - $gmt_offset = 10800; |
|
206 | - break; |
|
207 | - // 3.5 |
|
208 | - case 12600: |
|
209 | - $gmt_offset = 14400; |
|
210 | - break; |
|
211 | - // 7.5 |
|
212 | - case 27000: |
|
213 | - $gmt_offset = 28800; |
|
214 | - break; |
|
215 | - // 8.5 |
|
216 | - case 30600: |
|
217 | - $gmt_offset = 31500; |
|
218 | - break; |
|
219 | - // 10.5 |
|
220 | - case 37800: |
|
221 | - $gmt_offset = 39600; |
|
222 | - break; |
|
223 | - // 11.5 |
|
224 | - case 41400: |
|
225 | - $gmt_offset = 43200; |
|
226 | - break; |
|
227 | - // 12.75 |
|
228 | - case 45900: |
|
229 | - $gmt_offset = 46800; |
|
230 | - break; |
|
231 | - // 13.75 |
|
232 | - case 49500: |
|
233 | - $gmt_offset = 50400; |
|
234 | - break; |
|
235 | - } |
|
236 | - return $gmt_offset; |
|
237 | - } |
|
133 | + /** |
|
134 | + * Depending on PHP version, |
|
135 | + * there might not be valid current timezone strings to match these gmt_offsets in its timezone tables. |
|
136 | + * To get around that, for these fringe timezones we bump them to a known valid offset. |
|
137 | + * This method should ONLY be called after first verifying an timezone_string cannot be retrieved for the offset. |
|
138 | + * |
|
139 | + * @param int $gmt_offset |
|
140 | + * @return int |
|
141 | + */ |
|
142 | + public function adjustInvalidGmtOffsets($gmt_offset = 0) |
|
143 | + { |
|
144 | + // make sure $gmt_offset is int |
|
145 | + $gmt_offset = (int) $gmt_offset; |
|
146 | + switch ($gmt_offset) { |
|
147 | + // -12 |
|
148 | + case -43200: |
|
149 | + $gmt_offset = -39600; |
|
150 | + break; |
|
151 | + // -11.5 |
|
152 | + case -41400: |
|
153 | + $gmt_offset = -39600; |
|
154 | + break; |
|
155 | + // -10.5 |
|
156 | + case -37800: |
|
157 | + $gmt_offset = -39600; |
|
158 | + break; |
|
159 | + // -8.5 |
|
160 | + case -30600: |
|
161 | + $gmt_offset = -28800; |
|
162 | + break; |
|
163 | + // -7.5 |
|
164 | + case -27000: |
|
165 | + $gmt_offset = -25200; |
|
166 | + break; |
|
167 | + // -6.5 |
|
168 | + case -23400: |
|
169 | + $gmt_offset = -21600; |
|
170 | + break; |
|
171 | + // -5.5 |
|
172 | + case -19800: |
|
173 | + $gmt_offset = -18000; |
|
174 | + break; |
|
175 | + // -4.5 |
|
176 | + case -16200: |
|
177 | + $gmt_offset = -14400; |
|
178 | + break; |
|
179 | + // -3.5 |
|
180 | + case -12600: |
|
181 | + $gmt_offset = -10800; |
|
182 | + break; |
|
183 | + // -2.5 |
|
184 | + case -9000: |
|
185 | + $gmt_offset = -7200; |
|
186 | + break; |
|
187 | + // -1.5 |
|
188 | + case -5400: |
|
189 | + $gmt_offset = -3600; |
|
190 | + break; |
|
191 | + // -0.5 |
|
192 | + case -1800: |
|
193 | + $gmt_offset = 0; |
|
194 | + break; |
|
195 | + // .5 |
|
196 | + case 1800: |
|
197 | + $gmt_offset = 3600; |
|
198 | + break; |
|
199 | + // 1.5 |
|
200 | + case 5400: |
|
201 | + $gmt_offset = 7200; |
|
202 | + break; |
|
203 | + // 2.5 |
|
204 | + case 9000: |
|
205 | + $gmt_offset = 10800; |
|
206 | + break; |
|
207 | + // 3.5 |
|
208 | + case 12600: |
|
209 | + $gmt_offset = 14400; |
|
210 | + break; |
|
211 | + // 7.5 |
|
212 | + case 27000: |
|
213 | + $gmt_offset = 28800; |
|
214 | + break; |
|
215 | + // 8.5 |
|
216 | + case 30600: |
|
217 | + $gmt_offset = 31500; |
|
218 | + break; |
|
219 | + // 10.5 |
|
220 | + case 37800: |
|
221 | + $gmt_offset = 39600; |
|
222 | + break; |
|
223 | + // 11.5 |
|
224 | + case 41400: |
|
225 | + $gmt_offset = 43200; |
|
226 | + break; |
|
227 | + // 12.75 |
|
228 | + case 45900: |
|
229 | + $gmt_offset = 46800; |
|
230 | + break; |
|
231 | + // 13.75 |
|
232 | + case 49500: |
|
233 | + $gmt_offset = 50400; |
|
234 | + break; |
|
235 | + } |
|
236 | + return $gmt_offset; |
|
237 | + } |
|
238 | 238 | } |
@@ -256,8 +256,8 @@ discard block |
||
256 | 256 | public function get_stops() |
257 | 257 | { |
258 | 258 | foreach ($this->_stops as $ind => $stop) { |
259 | - if (! isset($stop['button_text'])) { |
|
260 | - $this->_stops[ $ind ]['button_text'] = $this->_options['button_text']; |
|
259 | + if ( ! isset($stop['button_text'])) { |
|
260 | + $this->_stops[$ind]['button_text'] = $this->_options['button_text']; |
|
261 | 261 | } |
262 | 262 | } |
263 | 263 | return $this->_stops; |
@@ -277,6 +277,6 @@ discard block |
||
277 | 277 | $this->_options['pauseAfter'][] = $ind; |
278 | 278 | } |
279 | 279 | } |
280 | - return apply_filters('FHEE__' . get_class($this) . '__get_options', $this->_options, $this); |
|
280 | + return apply_filters('FHEE__'.get_class($this).'__get_options', $this->_options, $this); |
|
281 | 281 | } |
282 | 282 | } |
@@ -17,271 +17,271 @@ |
||
17 | 17 | */ |
18 | 18 | abstract class EE_Help_Tour extends EE_Base |
19 | 19 | { |
20 | - /** |
|
21 | - * This is the label for the tour. It is used when regenerating restart buttons for the tour. Set this in the |
|
22 | - * constructor of the child class. |
|
23 | - * |
|
24 | - * @access protected |
|
25 | - * @var string |
|
26 | - */ |
|
27 | - protected $_label = ''; |
|
28 | - |
|
29 | - |
|
30 | - /** |
|
31 | - * This is the slug for the tour. It should be unique from all tours and is used for starting a tour and setting |
|
32 | - * cookies for the tour. Set this in the constructor of the child class. |
|
33 | - * |
|
34 | - * @access protected |
|
35 | - * @var string |
|
36 | - */ |
|
37 | - protected $_slug = ''; |
|
38 | - |
|
39 | - |
|
40 | - /** |
|
41 | - * This will contain the formatted array for the stops that gets used by EE_Admin_Page->_add_help_tour() for |
|
42 | - * setting up a tour on a given page. format for array is: array( |
|
43 | - * 0 => array( |
|
44 | - * 'id' => 'id_element', //if attached to an css id for an element then use this param. id's will take |
|
45 | - * precendence even if you also set class. |
|
46 | - * 'class' => 'class_element', //if attached to a css class for an element anchoring the stop then use |
|
47 | - * this param. The first element for that class is the anchor. If the class or the id are empty then the |
|
48 | - * stop will be a modal on the page anchored to the main body. |
|
49 | - * 'custom_class' => 'some_custom_class', //optional custom class to add for this stop. |
|
50 | - * 'button_text' => 'custom text for button', //optional |
|
51 | - * 'content' => 'The content for the stop', //required |
|
52 | - * 'pause_after' => false, //indicate if you want the tour to pause after this stop and it will get |
|
53 | - * added to the pauseAfter global option array setup for the joyride instance. This is only applicable |
|
54 | - * when this tour has been set to run on timer. |
|
55 | - * 'options' => array( |
|
56 | - * //override any of the global options set via the help_tour "option_callback" for the joyride |
|
57 | - * instance on this specific stop. |
|
58 | - * ) |
|
59 | - * ) |
|
60 | - * ); |
|
61 | - * |
|
62 | - * @access protected |
|
63 | - * @var array |
|
64 | - */ |
|
65 | - protected $_stops = array(); |
|
66 | - |
|
67 | - |
|
68 | - /** |
|
69 | - * This contains any stop specific options for the tour. |
|
70 | - * defaults are set but child classes can override. |
|
71 | - * |
|
72 | - * @access protected |
|
73 | - * @var array |
|
74 | - */ |
|
75 | - protected $_options = array(); |
|
76 | - |
|
77 | - |
|
78 | - /** |
|
79 | - * holds anything found in the request object (however we override any _gets with _post data). |
|
80 | - * |
|
81 | - * @access protected |
|
82 | - * @var array |
|
83 | - */ |
|
84 | - protected $_req_data = array(); |
|
85 | - |
|
86 | - |
|
87 | - /** |
|
88 | - * a flag that is set on init for whether this help_tour is happening on a caf install or not. |
|
89 | - * |
|
90 | - * @var boolean |
|
91 | - */ |
|
92 | - protected $_is_caf = false; |
|
93 | - |
|
94 | - |
|
95 | - /** |
|
96 | - * _constructor |
|
97 | - * initialized the tour object and sets up important properties required to setup the tour. |
|
98 | - * |
|
99 | - * @access public |
|
100 | - * @param boolean $caf used to indicate if this tour is happening on caf install or not. |
|
101 | - * @return void |
|
102 | - */ |
|
103 | - public function __construct($caf = false) |
|
104 | - { |
|
105 | - $this->_is_caf = $caf; |
|
106 | - /** @var RequestInterface $request */ |
|
107 | - $request = LoaderFactory::getLoader()->getShared(RequestInterface::class); |
|
108 | - $this->_req_data = $request->requestParams(); |
|
109 | - $this->_set_tour_properties(); |
|
110 | - $this->_set_tour_stops(); |
|
111 | - $this->_set_tour_options(); |
|
112 | - |
|
113 | - // make sure the last tour stop has "end tour" for its button |
|
114 | - $end = array_pop($this->_stops); |
|
115 | - $end['button_text'] = esc_html__('End Tour', 'event_espresso'); |
|
116 | - // add back to stops |
|
117 | - $this->_stops[] = $end; |
|
118 | - } |
|
119 | - |
|
120 | - |
|
121 | - /** |
|
122 | - * required method that has the sole purpose of setting up the tour $_label and $_slug properties |
|
123 | - * |
|
124 | - * @abstract |
|
125 | - * @access protected |
|
126 | - * @return void |
|
127 | - */ |
|
128 | - abstract protected function _set_tour_properties(); |
|
129 | - |
|
130 | - |
|
131 | - /** |
|
132 | - * required method that's sole purpose is to setup the $_stops property |
|
133 | - * |
|
134 | - * @abstract |
|
135 | - * @access protected |
|
136 | - * @return void |
|
137 | - */ |
|
138 | - abstract protected function _set_tour_stops(); |
|
139 | - |
|
140 | - |
|
141 | - /** |
|
142 | - * The method can optionally be overridden by child classes to set the _options array if there are any default |
|
143 | - * options the child wishes to override for a this tour. See property definition for more info |
|
144 | - * |
|
145 | - * @access protected |
|
146 | - * @return void |
|
147 | - */ |
|
148 | - protected function _set_tour_options($options = array()) |
|
149 | - { |
|
150 | - $defaults = array( |
|
151 | - 'tipLocation' => 'bottom', |
|
152 | - // 'top', 'bottom', 'right', 'left' in relation to parent |
|
153 | - 'nubPosition' => 'auto', |
|
154 | - // override on a per tooltip bases. can be "auto", "right", "top", "bottom", "left" |
|
155 | - 'tipAdjustmentY' => 0, |
|
156 | - // allow for adjustment of tip |
|
157 | - 'tipAdjustmentX' => 0, |
|
158 | - // allow for adjustment of tip |
|
159 | - 'scroll' => true, |
|
160 | - // whether to scrollTo the next step or not |
|
161 | - 'scrollSpeed' => 300, |
|
162 | - // Page scrolling speed in ms |
|
163 | - 'timer' => 0, |
|
164 | - // 0 = off, all other numbers = time(ms) |
|
165 | - 'autoStart' => true, |
|
166 | - // true or false - false tour starts when restart called |
|
167 | - 'startTimerOnClick' => true, |
|
168 | - // true/false to start timer on first click |
|
169 | - 'nextButton' => true, |
|
170 | - // true/false for next button visibility |
|
171 | - 'button_text' => esc_html__('Next', 'event_espresso'), |
|
172 | - 'tipAnimation' => 'fade', |
|
173 | - // 'pop' or 'fade' in each tip |
|
174 | - 'pauseAfter' => array(), |
|
175 | - // array of indexes where to pause the tour after |
|
176 | - 'tipAnimationFadeSpeed' => 300, |
|
177 | - // if 'fade'- speed in ms of transition |
|
178 | - 'cookieMonster' => true, |
|
179 | - // true/false for whether cookies are used |
|
180 | - 'cookieName' => $this->get_slug(), |
|
181 | - // choose your own cookie name (setup will add the prefix for the specific page joyride) |
|
182 | - // set to false or yoursite.com |
|
183 | - 'cookieDomain' => false, |
|
184 | - // Where the tip be attached if not inline |
|
185 | - // 'tipContainer' => 'body', |
|
186 | - 'modal' => false, |
|
187 | - // Whether to cover page with modal during the tour |
|
188 | - 'expose' => false, |
|
189 | - // Whether to expose the elements at each step in the tour (requires modal:true), |
|
190 | - 'postExposeCallback' => 'EEHelpTour.postExposeCallback', |
|
191 | - // A method to call after an element has been exposed |
|
192 | - 'preRideCallback' => 'EEHelpTour_preRideCallback', |
|
193 | - // A method to call before the tour starts (passed index, tip, and cloned exposed element) |
|
194 | - 'postRideCallback' => 'EEHelpTour_postRideCallback', |
|
195 | - // a method to call once the tour closes. This will correspond to the name of a js method that will have to be defined in loaded js. |
|
196 | - 'preStepCallback' => 'EEHelpTour_preStepCallback', |
|
197 | - // A method to call before each step |
|
198 | - 'postStepCallback' => 'EEHelpTour_postStepCallback', |
|
199 | - // A method to call after each step (remember this will correspond with a js method that you will have to define in a js file BEFORE ee-help-tour.js loads, if the default methods do not exist, then ee-help-tour.js just substitues empty functions $.noop)/**/ |
|
200 | - ); |
|
201 | - |
|
202 | - $options = ! empty($options) && is_array($options) ? array_merge($defaults, $options) : $defaults; |
|
203 | - $this->_options = $options; |
|
204 | - } |
|
205 | - |
|
206 | - |
|
207 | - /** |
|
208 | - * getter functions to return all the properties for the tour. |
|
209 | - */ |
|
210 | - |
|
211 | - |
|
212 | - /** |
|
213 | - * get_slug |
|
214 | - * |
|
215 | - * @return string slug for the tour |
|
216 | - */ |
|
217 | - public function get_slug() |
|
218 | - { |
|
219 | - if (empty($this->_slug)) { |
|
220 | - throw new EE_Error( |
|
221 | - sprintf( |
|
222 | - esc_html__( |
|
223 | - 'There is no slug set for the help tour class (%s). Make sure that the $_slug property is set in the class constructor', |
|
224 | - 'event_espresso' |
|
225 | - ), |
|
226 | - get_class($this) |
|
227 | - ) |
|
228 | - ); |
|
229 | - } |
|
230 | - return $this->_slug; |
|
231 | - } |
|
232 | - |
|
233 | - |
|
234 | - /** |
|
235 | - * get_label |
|
236 | - * |
|
237 | - * @return string |
|
238 | - */ |
|
239 | - public function get_label() |
|
240 | - { |
|
241 | - if (empty($this->_label)) { |
|
242 | - throw new EE_Error( |
|
243 | - sprintf( |
|
244 | - esc_html__( |
|
245 | - 'There is no label set for the help tour class (%s). Make sure that the $_label property is set in the class constructor', |
|
246 | - 'event_espresso' |
|
247 | - ), |
|
248 | - get_class($this) |
|
249 | - ) |
|
250 | - ); |
|
251 | - } |
|
252 | - return $this->_label; |
|
253 | - } |
|
254 | - |
|
255 | - |
|
256 | - /** |
|
257 | - * get_stops |
|
258 | - * |
|
259 | - * @return array |
|
260 | - */ |
|
261 | - public function get_stops() |
|
262 | - { |
|
263 | - foreach ($this->_stops as $ind => $stop) { |
|
264 | - if (! isset($stop['button_text'])) { |
|
265 | - $this->_stops[ $ind ]['button_text'] = $this->_options['button_text']; |
|
266 | - } |
|
267 | - } |
|
268 | - return $this->_stops; |
|
269 | - } |
|
270 | - |
|
271 | - |
|
272 | - /** |
|
273 | - * get options |
|
274 | - * |
|
275 | - * @return array |
|
276 | - */ |
|
277 | - public function get_options() |
|
278 | - { |
|
279 | - // let's make sure there are not pauses set |
|
280 | - foreach ($this->_stops as $ind => $stop) { |
|
281 | - if (isset($stop['pause_after']) && $stop['pause_after']) { |
|
282 | - $this->_options['pauseAfter'][] = $ind; |
|
283 | - } |
|
284 | - } |
|
285 | - return apply_filters('FHEE__' . get_class($this) . '__get_options', $this->_options, $this); |
|
286 | - } |
|
20 | + /** |
|
21 | + * This is the label for the tour. It is used when regenerating restart buttons for the tour. Set this in the |
|
22 | + * constructor of the child class. |
|
23 | + * |
|
24 | + * @access protected |
|
25 | + * @var string |
|
26 | + */ |
|
27 | + protected $_label = ''; |
|
28 | + |
|
29 | + |
|
30 | + /** |
|
31 | + * This is the slug for the tour. It should be unique from all tours and is used for starting a tour and setting |
|
32 | + * cookies for the tour. Set this in the constructor of the child class. |
|
33 | + * |
|
34 | + * @access protected |
|
35 | + * @var string |
|
36 | + */ |
|
37 | + protected $_slug = ''; |
|
38 | + |
|
39 | + |
|
40 | + /** |
|
41 | + * This will contain the formatted array for the stops that gets used by EE_Admin_Page->_add_help_tour() for |
|
42 | + * setting up a tour on a given page. format for array is: array( |
|
43 | + * 0 => array( |
|
44 | + * 'id' => 'id_element', //if attached to an css id for an element then use this param. id's will take |
|
45 | + * precendence even if you also set class. |
|
46 | + * 'class' => 'class_element', //if attached to a css class for an element anchoring the stop then use |
|
47 | + * this param. The first element for that class is the anchor. If the class or the id are empty then the |
|
48 | + * stop will be a modal on the page anchored to the main body. |
|
49 | + * 'custom_class' => 'some_custom_class', //optional custom class to add for this stop. |
|
50 | + * 'button_text' => 'custom text for button', //optional |
|
51 | + * 'content' => 'The content for the stop', //required |
|
52 | + * 'pause_after' => false, //indicate if you want the tour to pause after this stop and it will get |
|
53 | + * added to the pauseAfter global option array setup for the joyride instance. This is only applicable |
|
54 | + * when this tour has been set to run on timer. |
|
55 | + * 'options' => array( |
|
56 | + * //override any of the global options set via the help_tour "option_callback" for the joyride |
|
57 | + * instance on this specific stop. |
|
58 | + * ) |
|
59 | + * ) |
|
60 | + * ); |
|
61 | + * |
|
62 | + * @access protected |
|
63 | + * @var array |
|
64 | + */ |
|
65 | + protected $_stops = array(); |
|
66 | + |
|
67 | + |
|
68 | + /** |
|
69 | + * This contains any stop specific options for the tour. |
|
70 | + * defaults are set but child classes can override. |
|
71 | + * |
|
72 | + * @access protected |
|
73 | + * @var array |
|
74 | + */ |
|
75 | + protected $_options = array(); |
|
76 | + |
|
77 | + |
|
78 | + /** |
|
79 | + * holds anything found in the request object (however we override any _gets with _post data). |
|
80 | + * |
|
81 | + * @access protected |
|
82 | + * @var array |
|
83 | + */ |
|
84 | + protected $_req_data = array(); |
|
85 | + |
|
86 | + |
|
87 | + /** |
|
88 | + * a flag that is set on init for whether this help_tour is happening on a caf install or not. |
|
89 | + * |
|
90 | + * @var boolean |
|
91 | + */ |
|
92 | + protected $_is_caf = false; |
|
93 | + |
|
94 | + |
|
95 | + /** |
|
96 | + * _constructor |
|
97 | + * initialized the tour object and sets up important properties required to setup the tour. |
|
98 | + * |
|
99 | + * @access public |
|
100 | + * @param boolean $caf used to indicate if this tour is happening on caf install or not. |
|
101 | + * @return void |
|
102 | + */ |
|
103 | + public function __construct($caf = false) |
|
104 | + { |
|
105 | + $this->_is_caf = $caf; |
|
106 | + /** @var RequestInterface $request */ |
|
107 | + $request = LoaderFactory::getLoader()->getShared(RequestInterface::class); |
|
108 | + $this->_req_data = $request->requestParams(); |
|
109 | + $this->_set_tour_properties(); |
|
110 | + $this->_set_tour_stops(); |
|
111 | + $this->_set_tour_options(); |
|
112 | + |
|
113 | + // make sure the last tour stop has "end tour" for its button |
|
114 | + $end = array_pop($this->_stops); |
|
115 | + $end['button_text'] = esc_html__('End Tour', 'event_espresso'); |
|
116 | + // add back to stops |
|
117 | + $this->_stops[] = $end; |
|
118 | + } |
|
119 | + |
|
120 | + |
|
121 | + /** |
|
122 | + * required method that has the sole purpose of setting up the tour $_label and $_slug properties |
|
123 | + * |
|
124 | + * @abstract |
|
125 | + * @access protected |
|
126 | + * @return void |
|
127 | + */ |
|
128 | + abstract protected function _set_tour_properties(); |
|
129 | + |
|
130 | + |
|
131 | + /** |
|
132 | + * required method that's sole purpose is to setup the $_stops property |
|
133 | + * |
|
134 | + * @abstract |
|
135 | + * @access protected |
|
136 | + * @return void |
|
137 | + */ |
|
138 | + abstract protected function _set_tour_stops(); |
|
139 | + |
|
140 | + |
|
141 | + /** |
|
142 | + * The method can optionally be overridden by child classes to set the _options array if there are any default |
|
143 | + * options the child wishes to override for a this tour. See property definition for more info |
|
144 | + * |
|
145 | + * @access protected |
|
146 | + * @return void |
|
147 | + */ |
|
148 | + protected function _set_tour_options($options = array()) |
|
149 | + { |
|
150 | + $defaults = array( |
|
151 | + 'tipLocation' => 'bottom', |
|
152 | + // 'top', 'bottom', 'right', 'left' in relation to parent |
|
153 | + 'nubPosition' => 'auto', |
|
154 | + // override on a per tooltip bases. can be "auto", "right", "top", "bottom", "left" |
|
155 | + 'tipAdjustmentY' => 0, |
|
156 | + // allow for adjustment of tip |
|
157 | + 'tipAdjustmentX' => 0, |
|
158 | + // allow for adjustment of tip |
|
159 | + 'scroll' => true, |
|
160 | + // whether to scrollTo the next step or not |
|
161 | + 'scrollSpeed' => 300, |
|
162 | + // Page scrolling speed in ms |
|
163 | + 'timer' => 0, |
|
164 | + // 0 = off, all other numbers = time(ms) |
|
165 | + 'autoStart' => true, |
|
166 | + // true or false - false tour starts when restart called |
|
167 | + 'startTimerOnClick' => true, |
|
168 | + // true/false to start timer on first click |
|
169 | + 'nextButton' => true, |
|
170 | + // true/false for next button visibility |
|
171 | + 'button_text' => esc_html__('Next', 'event_espresso'), |
|
172 | + 'tipAnimation' => 'fade', |
|
173 | + // 'pop' or 'fade' in each tip |
|
174 | + 'pauseAfter' => array(), |
|
175 | + // array of indexes where to pause the tour after |
|
176 | + 'tipAnimationFadeSpeed' => 300, |
|
177 | + // if 'fade'- speed in ms of transition |
|
178 | + 'cookieMonster' => true, |
|
179 | + // true/false for whether cookies are used |
|
180 | + 'cookieName' => $this->get_slug(), |
|
181 | + // choose your own cookie name (setup will add the prefix for the specific page joyride) |
|
182 | + // set to false or yoursite.com |
|
183 | + 'cookieDomain' => false, |
|
184 | + // Where the tip be attached if not inline |
|
185 | + // 'tipContainer' => 'body', |
|
186 | + 'modal' => false, |
|
187 | + // Whether to cover page with modal during the tour |
|
188 | + 'expose' => false, |
|
189 | + // Whether to expose the elements at each step in the tour (requires modal:true), |
|
190 | + 'postExposeCallback' => 'EEHelpTour.postExposeCallback', |
|
191 | + // A method to call after an element has been exposed |
|
192 | + 'preRideCallback' => 'EEHelpTour_preRideCallback', |
|
193 | + // A method to call before the tour starts (passed index, tip, and cloned exposed element) |
|
194 | + 'postRideCallback' => 'EEHelpTour_postRideCallback', |
|
195 | + // a method to call once the tour closes. This will correspond to the name of a js method that will have to be defined in loaded js. |
|
196 | + 'preStepCallback' => 'EEHelpTour_preStepCallback', |
|
197 | + // A method to call before each step |
|
198 | + 'postStepCallback' => 'EEHelpTour_postStepCallback', |
|
199 | + // A method to call after each step (remember this will correspond with a js method that you will have to define in a js file BEFORE ee-help-tour.js loads, if the default methods do not exist, then ee-help-tour.js just substitues empty functions $.noop)/**/ |
|
200 | + ); |
|
201 | + |
|
202 | + $options = ! empty($options) && is_array($options) ? array_merge($defaults, $options) : $defaults; |
|
203 | + $this->_options = $options; |
|
204 | + } |
|
205 | + |
|
206 | + |
|
207 | + /** |
|
208 | + * getter functions to return all the properties for the tour. |
|
209 | + */ |
|
210 | + |
|
211 | + |
|
212 | + /** |
|
213 | + * get_slug |
|
214 | + * |
|
215 | + * @return string slug for the tour |
|
216 | + */ |
|
217 | + public function get_slug() |
|
218 | + { |
|
219 | + if (empty($this->_slug)) { |
|
220 | + throw new EE_Error( |
|
221 | + sprintf( |
|
222 | + esc_html__( |
|
223 | + 'There is no slug set for the help tour class (%s). Make sure that the $_slug property is set in the class constructor', |
|
224 | + 'event_espresso' |
|
225 | + ), |
|
226 | + get_class($this) |
|
227 | + ) |
|
228 | + ); |
|
229 | + } |
|
230 | + return $this->_slug; |
|
231 | + } |
|
232 | + |
|
233 | + |
|
234 | + /** |
|
235 | + * get_label |
|
236 | + * |
|
237 | + * @return string |
|
238 | + */ |
|
239 | + public function get_label() |
|
240 | + { |
|
241 | + if (empty($this->_label)) { |
|
242 | + throw new EE_Error( |
|
243 | + sprintf( |
|
244 | + esc_html__( |
|
245 | + 'There is no label set for the help tour class (%s). Make sure that the $_label property is set in the class constructor', |
|
246 | + 'event_espresso' |
|
247 | + ), |
|
248 | + get_class($this) |
|
249 | + ) |
|
250 | + ); |
|
251 | + } |
|
252 | + return $this->_label; |
|
253 | + } |
|
254 | + |
|
255 | + |
|
256 | + /** |
|
257 | + * get_stops |
|
258 | + * |
|
259 | + * @return array |
|
260 | + */ |
|
261 | + public function get_stops() |
|
262 | + { |
|
263 | + foreach ($this->_stops as $ind => $stop) { |
|
264 | + if (! isset($stop['button_text'])) { |
|
265 | + $this->_stops[ $ind ]['button_text'] = $this->_options['button_text']; |
|
266 | + } |
|
267 | + } |
|
268 | + return $this->_stops; |
|
269 | + } |
|
270 | + |
|
271 | + |
|
272 | + /** |
|
273 | + * get options |
|
274 | + * |
|
275 | + * @return array |
|
276 | + */ |
|
277 | + public function get_options() |
|
278 | + { |
|
279 | + // let's make sure there are not pauses set |
|
280 | + foreach ($this->_stops as $ind => $stop) { |
|
281 | + if (isset($stop['pause_after']) && $stop['pause_after']) { |
|
282 | + $this->_options['pauseAfter'][] = $ind; |
|
283 | + } |
|
284 | + } |
|
285 | + return apply_filters('FHEE__' . get_class($this) . '__get_options', $this->_options, $this); |
|
286 | + } |
|
287 | 287 | } |