@@ -83,7 +83,7 @@ discard block |
||
83 | 83 | $reindexed_answers = array(); |
84 | 84 | foreach ($answers as $answer) { |
85 | 85 | if ($answer instanceof EE_Answer) { |
86 | - $reindexed_answers[ $answer->question_ID() ] = $answer->value(); |
|
86 | + $reindexed_answers[$answer->question_ID()] = $answer->value(); |
|
87 | 87 | } |
88 | 88 | } |
89 | 89 | return $reindexed_answers; |
@@ -103,8 +103,8 @@ discard block |
||
103 | 103 | EE_Registration $registration, |
104 | 104 | $previous_answers |
105 | 105 | ) { |
106 | - $old_answer_value = isset($previous_answers[ $question->ID() ]) |
|
107 | - ? $previous_answers[ $question->ID() ] |
|
106 | + $old_answer_value = isset($previous_answers[$question->ID()]) |
|
107 | + ? $previous_answers[$question->ID()] |
|
108 | 108 | : ''; |
109 | 109 | $new_answer = EE_Answer::new_instance( |
110 | 110 | array( |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | 'ANS_value' => $old_answer_value, |
114 | 114 | ) |
115 | 115 | ); |
116 | - if (! $new_answer instanceof EE_Answer) { |
|
116 | + if ( ! $new_answer instanceof EE_Answer) { |
|
117 | 117 | throw new UnexpectedEntityException($new_answer, 'EE_Answer'); |
118 | 118 | } |
119 | 119 | $new_answer->save(); |
@@ -150,7 +150,7 @@ discard block |
||
150 | 150 | 'RPY_amount' => $payment_amount, |
151 | 151 | ) |
152 | 152 | ); |
153 | - if (! $new_registration_payment instanceof EE_Registration_Payment) { |
|
153 | + if ( ! $new_registration_payment instanceof EE_Registration_Payment) { |
|
154 | 154 | throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment'); |
155 | 155 | } |
156 | 156 | $new_registration_payment->save(); |
@@ -25,152 +25,152 @@ |
||
25 | 25 | */ |
26 | 26 | class CopyRegistrationService extends DomainService |
27 | 27 | { |
28 | - /** |
|
29 | - * @param EE_Registration $target_registration |
|
30 | - * @param EE_Registration $registration_to_copy |
|
31 | - * @return bool |
|
32 | - * @throws UnexpectedEntityException |
|
33 | - * @throws EntityNotFoundException |
|
34 | - * @throws RuntimeException |
|
35 | - * @throws EE_Error |
|
36 | - */ |
|
37 | - public function copyRegistrationDetails( |
|
38 | - EE_Registration $target_registration, |
|
39 | - EE_Registration $registration_to_copy |
|
40 | - ) { |
|
41 | - // copy attendee |
|
42 | - $target_registration->set_attendee_id($registration_to_copy->attendee_ID()); |
|
43 | - $target_registration->updateStatusBasedOnTotalPaid(false); |
|
44 | - $target_registration->save(); |
|
45 | - // get answers to previous reg questions |
|
46 | - $answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers()); |
|
47 | - // get questions to new event reg form |
|
48 | - $new_event = $target_registration->event(); |
|
49 | - $field_name = 'Event_Question_Group.' |
|
50 | - . EEM_Event_Question_Group::instance()->fieldNameForContext( |
|
51 | - $registration_to_copy->is_primary_registrant() |
|
52 | - ); |
|
53 | - $question_groups = $new_event->question_groups([ |
|
54 | - [ |
|
55 | - 'Event.EVT_ID' => $new_event->ID(), |
|
56 | - $field_name => true, |
|
57 | - ], |
|
58 | - 'order_by' => ['QSG_order' => 'ASC'], |
|
59 | - ]); |
|
60 | - foreach ($question_groups as $question_group) { |
|
61 | - if ($question_group instanceof \EE_Question_Group) { |
|
62 | - foreach ($question_group->questions() as $question) { |
|
63 | - if ($question instanceof EE_Question) { |
|
64 | - $this->generateNewAnswer( |
|
65 | - $question, |
|
66 | - $target_registration, |
|
67 | - $answers |
|
68 | - ); |
|
69 | - } |
|
70 | - } |
|
71 | - } |
|
72 | - } |
|
73 | - return true; |
|
74 | - } |
|
28 | + /** |
|
29 | + * @param EE_Registration $target_registration |
|
30 | + * @param EE_Registration $registration_to_copy |
|
31 | + * @return bool |
|
32 | + * @throws UnexpectedEntityException |
|
33 | + * @throws EntityNotFoundException |
|
34 | + * @throws RuntimeException |
|
35 | + * @throws EE_Error |
|
36 | + */ |
|
37 | + public function copyRegistrationDetails( |
|
38 | + EE_Registration $target_registration, |
|
39 | + EE_Registration $registration_to_copy |
|
40 | + ) { |
|
41 | + // copy attendee |
|
42 | + $target_registration->set_attendee_id($registration_to_copy->attendee_ID()); |
|
43 | + $target_registration->updateStatusBasedOnTotalPaid(false); |
|
44 | + $target_registration->save(); |
|
45 | + // get answers to previous reg questions |
|
46 | + $answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers()); |
|
47 | + // get questions to new event reg form |
|
48 | + $new_event = $target_registration->event(); |
|
49 | + $field_name = 'Event_Question_Group.' |
|
50 | + . EEM_Event_Question_Group::instance()->fieldNameForContext( |
|
51 | + $registration_to_copy->is_primary_registrant() |
|
52 | + ); |
|
53 | + $question_groups = $new_event->question_groups([ |
|
54 | + [ |
|
55 | + 'Event.EVT_ID' => $new_event->ID(), |
|
56 | + $field_name => true, |
|
57 | + ], |
|
58 | + 'order_by' => ['QSG_order' => 'ASC'], |
|
59 | + ]); |
|
60 | + foreach ($question_groups as $question_group) { |
|
61 | + if ($question_group instanceof \EE_Question_Group) { |
|
62 | + foreach ($question_group->questions() as $question) { |
|
63 | + if ($question instanceof EE_Question) { |
|
64 | + $this->generateNewAnswer( |
|
65 | + $question, |
|
66 | + $target_registration, |
|
67 | + $answers |
|
68 | + ); |
|
69 | + } |
|
70 | + } |
|
71 | + } |
|
72 | + } |
|
73 | + return true; |
|
74 | + } |
|
75 | 75 | |
76 | 76 | |
77 | - /** |
|
78 | - * @param EE_Answer[] $answers |
|
79 | - * @return array |
|
80 | - * @throws EE_Error |
|
81 | - */ |
|
82 | - protected function reindexAnswersByQuestionId(array $answers) |
|
83 | - { |
|
84 | - $reindexed_answers = array(); |
|
85 | - foreach ($answers as $answer) { |
|
86 | - if ($answer instanceof EE_Answer) { |
|
87 | - $reindexed_answers[ $answer->question_ID() ] = $answer->value(); |
|
88 | - } |
|
89 | - } |
|
90 | - return $reindexed_answers; |
|
91 | - } |
|
77 | + /** |
|
78 | + * @param EE_Answer[] $answers |
|
79 | + * @return array |
|
80 | + * @throws EE_Error |
|
81 | + */ |
|
82 | + protected function reindexAnswersByQuestionId(array $answers) |
|
83 | + { |
|
84 | + $reindexed_answers = array(); |
|
85 | + foreach ($answers as $answer) { |
|
86 | + if ($answer instanceof EE_Answer) { |
|
87 | + $reindexed_answers[ $answer->question_ID() ] = $answer->value(); |
|
88 | + } |
|
89 | + } |
|
90 | + return $reindexed_answers; |
|
91 | + } |
|
92 | 92 | |
93 | 93 | |
94 | - /** |
|
95 | - * @param EE_Question $question |
|
96 | - * @param EE_Registration $registration |
|
97 | - * @param $previous_answers |
|
98 | - * @return EE_Answer |
|
99 | - * @throws UnexpectedEntityException |
|
100 | - * @throws EE_Error |
|
101 | - */ |
|
102 | - protected function generateNewAnswer( |
|
103 | - EE_Question $question, |
|
104 | - EE_Registration $registration, |
|
105 | - $previous_answers |
|
106 | - ) { |
|
107 | - $old_answer_value = isset($previous_answers[ $question->ID() ]) |
|
108 | - ? $previous_answers[ $question->ID() ] |
|
109 | - : ''; |
|
110 | - $new_answer = EE_Answer::new_instance( |
|
111 | - array( |
|
112 | - 'QST_ID' => $question->ID(), |
|
113 | - 'REG_ID' => $registration->ID(), |
|
114 | - 'ANS_value' => $old_answer_value, |
|
115 | - ) |
|
116 | - ); |
|
117 | - if (! $new_answer instanceof EE_Answer) { |
|
118 | - throw new UnexpectedEntityException($new_answer, 'EE_Answer'); |
|
119 | - } |
|
120 | - $new_answer->save(); |
|
121 | - return $new_answer; |
|
122 | - } |
|
94 | + /** |
|
95 | + * @param EE_Question $question |
|
96 | + * @param EE_Registration $registration |
|
97 | + * @param $previous_answers |
|
98 | + * @return EE_Answer |
|
99 | + * @throws UnexpectedEntityException |
|
100 | + * @throws EE_Error |
|
101 | + */ |
|
102 | + protected function generateNewAnswer( |
|
103 | + EE_Question $question, |
|
104 | + EE_Registration $registration, |
|
105 | + $previous_answers |
|
106 | + ) { |
|
107 | + $old_answer_value = isset($previous_answers[ $question->ID() ]) |
|
108 | + ? $previous_answers[ $question->ID() ] |
|
109 | + : ''; |
|
110 | + $new_answer = EE_Answer::new_instance( |
|
111 | + array( |
|
112 | + 'QST_ID' => $question->ID(), |
|
113 | + 'REG_ID' => $registration->ID(), |
|
114 | + 'ANS_value' => $old_answer_value, |
|
115 | + ) |
|
116 | + ); |
|
117 | + if (! $new_answer instanceof EE_Answer) { |
|
118 | + throw new UnexpectedEntityException($new_answer, 'EE_Answer'); |
|
119 | + } |
|
120 | + $new_answer->save(); |
|
121 | + return $new_answer; |
|
122 | + } |
|
123 | 123 | |
124 | 124 | |
125 | - /** |
|
126 | - * @param EE_Registration $target_registration |
|
127 | - * @param EE_Registration $registration_to_copy |
|
128 | - * @return bool |
|
129 | - * @throws RuntimeException |
|
130 | - * @throws UnexpectedEntityException |
|
131 | - * @throws EE_Error |
|
132 | - */ |
|
133 | - public function copyPaymentDetails( |
|
134 | - EE_Registration $target_registration, |
|
135 | - EE_Registration $registration_to_copy |
|
136 | - ) { |
|
137 | - $save = false; |
|
138 | - $previous_registration_payments = $registration_to_copy->registration_payments(); |
|
139 | - $new_registration_payment_total = 0; |
|
140 | - $registration_to_copy_total = $registration_to_copy->paid(); |
|
141 | - foreach ($previous_registration_payments as $previous_registration_payment) { |
|
142 | - if ( |
|
143 | - $previous_registration_payment instanceof EE_Registration_Payment |
|
144 | - && $previous_registration_payment->payment() instanceof EE_Payment |
|
145 | - && $previous_registration_payment->payment()->is_approved() |
|
146 | - ) { |
|
147 | - $payment_amount = $previous_registration_payment->amount(); |
|
148 | - $new_registration_payment = EE_Registration_Payment::new_instance( |
|
149 | - array( |
|
150 | - 'REG_ID' => $target_registration->ID(), |
|
151 | - 'PAY_ID' => $previous_registration_payment->payment()->ID(), |
|
152 | - 'RPY_amount' => $payment_amount, |
|
153 | - ) |
|
154 | - ); |
|
155 | - if (! $new_registration_payment instanceof EE_Registration_Payment) { |
|
156 | - throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment'); |
|
157 | - } |
|
158 | - $new_registration_payment->save(); |
|
159 | - // if new reg payment is good, then set old reg payment amount to zero |
|
160 | - $previous_registration_payment->set_amount(0); |
|
161 | - $previous_registration_payment->save(); |
|
162 | - // now increment/decrement payment amounts |
|
163 | - $new_registration_payment_total += $payment_amount; |
|
164 | - $registration_to_copy_total -= $payment_amount; |
|
165 | - $save = true; |
|
166 | - } |
|
167 | - } |
|
168 | - if ($save) { |
|
169 | - $target_registration->set_paid($new_registration_payment_total); |
|
170 | - $target_registration->save(); |
|
171 | - $registration_to_copy->set_paid($registration_to_copy_total); |
|
172 | - $registration_to_copy->save(); |
|
173 | - } |
|
174 | - return true; |
|
175 | - } |
|
125 | + /** |
|
126 | + * @param EE_Registration $target_registration |
|
127 | + * @param EE_Registration $registration_to_copy |
|
128 | + * @return bool |
|
129 | + * @throws RuntimeException |
|
130 | + * @throws UnexpectedEntityException |
|
131 | + * @throws EE_Error |
|
132 | + */ |
|
133 | + public function copyPaymentDetails( |
|
134 | + EE_Registration $target_registration, |
|
135 | + EE_Registration $registration_to_copy |
|
136 | + ) { |
|
137 | + $save = false; |
|
138 | + $previous_registration_payments = $registration_to_copy->registration_payments(); |
|
139 | + $new_registration_payment_total = 0; |
|
140 | + $registration_to_copy_total = $registration_to_copy->paid(); |
|
141 | + foreach ($previous_registration_payments as $previous_registration_payment) { |
|
142 | + if ( |
|
143 | + $previous_registration_payment instanceof EE_Registration_Payment |
|
144 | + && $previous_registration_payment->payment() instanceof EE_Payment |
|
145 | + && $previous_registration_payment->payment()->is_approved() |
|
146 | + ) { |
|
147 | + $payment_amount = $previous_registration_payment->amount(); |
|
148 | + $new_registration_payment = EE_Registration_Payment::new_instance( |
|
149 | + array( |
|
150 | + 'REG_ID' => $target_registration->ID(), |
|
151 | + 'PAY_ID' => $previous_registration_payment->payment()->ID(), |
|
152 | + 'RPY_amount' => $payment_amount, |
|
153 | + ) |
|
154 | + ); |
|
155 | + if (! $new_registration_payment instanceof EE_Registration_Payment) { |
|
156 | + throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment'); |
|
157 | + } |
|
158 | + $new_registration_payment->save(); |
|
159 | + // if new reg payment is good, then set old reg payment amount to zero |
|
160 | + $previous_registration_payment->set_amount(0); |
|
161 | + $previous_registration_payment->save(); |
|
162 | + // now increment/decrement payment amounts |
|
163 | + $new_registration_payment_total += $payment_amount; |
|
164 | + $registration_to_copy_total -= $payment_amount; |
|
165 | + $save = true; |
|
166 | + } |
|
167 | + } |
|
168 | + if ($save) { |
|
169 | + $target_registration->set_paid($new_registration_payment_total); |
|
170 | + $target_registration->save(); |
|
171 | + $registration_to_copy->set_paid($registration_to_copy_total); |
|
172 | + $registration_to_copy->save(); |
|
173 | + } |
|
174 | + return true; |
|
175 | + } |
|
176 | 176 | } |
@@ -16,24 +16,24 @@ |
||
16 | 16 | */ |
17 | 17 | class AssetRegistrationException extends RuntimeException |
18 | 18 | { |
19 | - /** |
|
20 | - * @param $script_handle |
|
21 | - * @param string $message |
|
22 | - * @param int $code |
|
23 | - * @param Exception|null $previous |
|
24 | - */ |
|
25 | - public function __construct($script_handle, $message = '', $code = 0, Exception $previous = null) |
|
26 | - { |
|
27 | - if (empty($message)) { |
|
28 | - $message = sprintf( |
|
29 | - esc_html_x( |
|
30 | - 'The "%1$s" script could not be registered with WordPress core.', |
|
31 | - 'The "script-handle" script could not be registered with WordPress core.', |
|
32 | - 'event_espresso' |
|
33 | - ), |
|
34 | - $script_handle |
|
35 | - ); |
|
36 | - } |
|
37 | - parent::__construct($message, $code, $previous); |
|
38 | - } |
|
19 | + /** |
|
20 | + * @param $script_handle |
|
21 | + * @param string $message |
|
22 | + * @param int $code |
|
23 | + * @param Exception|null $previous |
|
24 | + */ |
|
25 | + public function __construct($script_handle, $message = '', $code = 0, Exception $previous = null) |
|
26 | + { |
|
27 | + if (empty($message)) { |
|
28 | + $message = sprintf( |
|
29 | + esc_html_x( |
|
30 | + 'The "%1$s" script could not be registered with WordPress core.', |
|
31 | + 'The "script-handle" script could not be registered with WordPress core.', |
|
32 | + 'event_espresso' |
|
33 | + ), |
|
34 | + $script_handle |
|
35 | + ); |
|
36 | + } |
|
37 | + parent::__construct($message, $code, $previous); |
|
38 | + } |
|
39 | 39 | } |
40 | 40 | \ No newline at end of file |
@@ -15,106 +15,106 @@ |
||
15 | 15 | */ |
16 | 16 | class ExportTransaction implements PersonalDataExporterInterface |
17 | 17 | { |
18 | - /** |
|
19 | - * @var EEM_Transaction $transaction_model |
|
20 | - */ |
|
21 | - protected $transaction_model; |
|
18 | + /** |
|
19 | + * @var EEM_Transaction $transaction_model |
|
20 | + */ |
|
21 | + protected $transaction_model; |
|
22 | 22 | |
23 | - /** |
|
24 | - * ExportTransaction constructor. |
|
25 | - * |
|
26 | - * @param $transaction_model |
|
27 | - */ |
|
28 | - public function __construct(EEM_Transaction $transaction_model) |
|
29 | - { |
|
30 | - $this->transaction_model = $transaction_model; |
|
31 | - } |
|
23 | + /** |
|
24 | + * ExportTransaction constructor. |
|
25 | + * |
|
26 | + * @param $transaction_model |
|
27 | + */ |
|
28 | + public function __construct(EEM_Transaction $transaction_model) |
|
29 | + { |
|
30 | + $this->transaction_model = $transaction_model; |
|
31 | + } |
|
32 | 32 | |
33 | 33 | |
34 | - /** |
|
35 | - * Returns data for export. |
|
36 | - * |
|
37 | - * @param string $email_address , |
|
38 | - * @param int $page starts at 1, not 0 |
|
39 | - * @return array { |
|
40 | - * @type array $data { |
|
41 | - * @type array { |
|
42 | - * @type string $group_id (not translated, same for all exports) |
|
43 | - * @type string $group_label (translated string) |
|
44 | - * @type string|int $item_id |
|
45 | - * @type array $data { |
|
46 | - * @type array { |
|
47 | - * @type string $name what's shown in the left-column of the export row |
|
48 | - * @type string $value what's showin the right-column of the export row |
|
49 | - * } |
|
50 | - * } |
|
51 | - * } |
|
52 | - * } |
|
53 | - * } |
|
54 | - */ |
|
55 | - public function export($email_address, $page = 1) |
|
56 | - { |
|
57 | - $page_size = 10; |
|
58 | - $transactions = $this->transaction_model->get_all( |
|
59 | - array( |
|
60 | - array( |
|
61 | - 'Registration.Attendee.ATT_email' => $email_address, |
|
62 | - ), |
|
63 | - 'limit' => array( |
|
64 | - ($page - 1) * $page_size, |
|
65 | - $page_size, |
|
66 | - ), |
|
67 | - ) |
|
68 | - ); |
|
69 | - $export_fields = array_intersect_key( |
|
70 | - EEM_Transaction::instance()->field_settings(), |
|
71 | - array_flip( |
|
72 | - array( |
|
73 | - 'TXN_timestamp', |
|
74 | - 'TXN_total', |
|
75 | - 'TXN_paid', |
|
76 | - 'TXN_session_data', |
|
77 | - ) |
|
78 | - ) |
|
79 | - ); |
|
80 | - $export_items = array(); |
|
81 | - $found_something = false; |
|
82 | - foreach ($transactions as $transaction) { |
|
83 | - $found_something = true; |
|
84 | - $data = array(); |
|
85 | - foreach ($export_fields as $field_name => $field_obj) { |
|
86 | - if ($field_name === 'TXN_session_data') { |
|
87 | - $value = $transaction->get_pretty($field_name, 'print_r'); |
|
88 | - } else { |
|
89 | - $value = $transaction->get_pretty($field_name); |
|
90 | - } |
|
91 | - $data[] = array( |
|
92 | - 'name' => $field_obj->get_nicename(), |
|
93 | - 'value' => $value, |
|
94 | - ); |
|
95 | - } |
|
96 | - $export_items[] = array( |
|
97 | - 'group_id' => 'transactions', |
|
98 | - 'group_label' => esc_html__('Transactions', 'event_espresso'), |
|
99 | - 'item_id' => $transaction->ID(), |
|
100 | - 'data' => $data, |
|
101 | - ); |
|
102 | - } |
|
103 | - return array( |
|
104 | - 'data' => $export_items, |
|
105 | - 'done' => ! $found_something, |
|
106 | - ); |
|
107 | - } |
|
34 | + /** |
|
35 | + * Returns data for export. |
|
36 | + * |
|
37 | + * @param string $email_address , |
|
38 | + * @param int $page starts at 1, not 0 |
|
39 | + * @return array { |
|
40 | + * @type array $data { |
|
41 | + * @type array { |
|
42 | + * @type string $group_id (not translated, same for all exports) |
|
43 | + * @type string $group_label (translated string) |
|
44 | + * @type string|int $item_id |
|
45 | + * @type array $data { |
|
46 | + * @type array { |
|
47 | + * @type string $name what's shown in the left-column of the export row |
|
48 | + * @type string $value what's showin the right-column of the export row |
|
49 | + * } |
|
50 | + * } |
|
51 | + * } |
|
52 | + * } |
|
53 | + * } |
|
54 | + */ |
|
55 | + public function export($email_address, $page = 1) |
|
56 | + { |
|
57 | + $page_size = 10; |
|
58 | + $transactions = $this->transaction_model->get_all( |
|
59 | + array( |
|
60 | + array( |
|
61 | + 'Registration.Attendee.ATT_email' => $email_address, |
|
62 | + ), |
|
63 | + 'limit' => array( |
|
64 | + ($page - 1) * $page_size, |
|
65 | + $page_size, |
|
66 | + ), |
|
67 | + ) |
|
68 | + ); |
|
69 | + $export_fields = array_intersect_key( |
|
70 | + EEM_Transaction::instance()->field_settings(), |
|
71 | + array_flip( |
|
72 | + array( |
|
73 | + 'TXN_timestamp', |
|
74 | + 'TXN_total', |
|
75 | + 'TXN_paid', |
|
76 | + 'TXN_session_data', |
|
77 | + ) |
|
78 | + ) |
|
79 | + ); |
|
80 | + $export_items = array(); |
|
81 | + $found_something = false; |
|
82 | + foreach ($transactions as $transaction) { |
|
83 | + $found_something = true; |
|
84 | + $data = array(); |
|
85 | + foreach ($export_fields as $field_name => $field_obj) { |
|
86 | + if ($field_name === 'TXN_session_data') { |
|
87 | + $value = $transaction->get_pretty($field_name, 'print_r'); |
|
88 | + } else { |
|
89 | + $value = $transaction->get_pretty($field_name); |
|
90 | + } |
|
91 | + $data[] = array( |
|
92 | + 'name' => $field_obj->get_nicename(), |
|
93 | + 'value' => $value, |
|
94 | + ); |
|
95 | + } |
|
96 | + $export_items[] = array( |
|
97 | + 'group_id' => 'transactions', |
|
98 | + 'group_label' => esc_html__('Transactions', 'event_espresso'), |
|
99 | + 'item_id' => $transaction->ID(), |
|
100 | + 'data' => $data, |
|
101 | + ); |
|
102 | + } |
|
103 | + return array( |
|
104 | + 'data' => $export_items, |
|
105 | + 'done' => ! $found_something, |
|
106 | + ); |
|
107 | + } |
|
108 | 108 | |
109 | - /** |
|
110 | - * Gets the Translated name of this exporter |
|
111 | - * |
|
112 | - * @return string |
|
113 | - */ |
|
114 | - public function name() |
|
115 | - { |
|
116 | - return esc_html__('Event Espresso Transaction Exporter', 'event_espresso'); |
|
117 | - } |
|
109 | + /** |
|
110 | + * Gets the Translated name of this exporter |
|
111 | + * |
|
112 | + * @return string |
|
113 | + */ |
|
114 | + public function name() |
|
115 | + { |
|
116 | + return esc_html__('Event Espresso Transaction Exporter', 'event_espresso'); |
|
117 | + } |
|
118 | 118 | } |
119 | 119 | // End of file ExportTransaction.php |
120 | 120 | // Location: EventEspresso\core\domain\services\admin\privacy\export/ExportTransaction.php |
@@ -15,116 +15,116 @@ |
||
15 | 15 | */ |
16 | 16 | class ExportAttendee implements PersonalDataExporterInterface |
17 | 17 | { |
18 | - /** |
|
19 | - * @var EEM_Attendee |
|
20 | - */ |
|
21 | - protected $attendee_model; |
|
18 | + /** |
|
19 | + * @var EEM_Attendee |
|
20 | + */ |
|
21 | + protected $attendee_model; |
|
22 | 22 | |
23 | - /** |
|
24 | - * ExportAttendee constructor. |
|
25 | - * |
|
26 | - * @param EEM_Attendee $attendee_model |
|
27 | - */ |
|
28 | - public function __construct(EEM_Attendee $attendee_model) |
|
29 | - { |
|
30 | - $this->attendee_model = $attendee_model; |
|
31 | - } |
|
23 | + /** |
|
24 | + * ExportAttendee constructor. |
|
25 | + * |
|
26 | + * @param EEM_Attendee $attendee_model |
|
27 | + */ |
|
28 | + public function __construct(EEM_Attendee $attendee_model) |
|
29 | + { |
|
30 | + $this->attendee_model = $attendee_model; |
|
31 | + } |
|
32 | 32 | |
33 | 33 | |
34 | - /** |
|
35 | - * Returns data for export. |
|
36 | - * |
|
37 | - * @param string $email_address , |
|
38 | - * @param int $page starts at 1, not 0 |
|
39 | - * @return array { |
|
40 | - * @type array $data { |
|
41 | - * @type array { |
|
42 | - * @type string $group_id (not translated, same for all exports) |
|
43 | - * @type string $group_label (translated string) |
|
44 | - * @type string|int $item_id |
|
45 | - * @type array $data { |
|
46 | - * @type array { |
|
47 | - * @type string $name what's shown in the left-column of the export row |
|
48 | - * @type string $value what's showin the right-column of the export row |
|
49 | - * } |
|
50 | - * } |
|
51 | - * } |
|
52 | - * } |
|
53 | - * } |
|
54 | - */ |
|
55 | - public function export($email_address, $page = 1) |
|
56 | - { |
|
57 | - $attendees = $this->attendee_model->get_all( |
|
58 | - array( |
|
59 | - array( |
|
60 | - 'ATT_email' => $email_address, |
|
61 | - ), |
|
62 | - ) |
|
63 | - ); |
|
34 | + /** |
|
35 | + * Returns data for export. |
|
36 | + * |
|
37 | + * @param string $email_address , |
|
38 | + * @param int $page starts at 1, not 0 |
|
39 | + * @return array { |
|
40 | + * @type array $data { |
|
41 | + * @type array { |
|
42 | + * @type string $group_id (not translated, same for all exports) |
|
43 | + * @type string $group_label (translated string) |
|
44 | + * @type string|int $item_id |
|
45 | + * @type array $data { |
|
46 | + * @type array { |
|
47 | + * @type string $name what's shown in the left-column of the export row |
|
48 | + * @type string $value what's showin the right-column of the export row |
|
49 | + * } |
|
50 | + * } |
|
51 | + * } |
|
52 | + * } |
|
53 | + * } |
|
54 | + */ |
|
55 | + public function export($email_address, $page = 1) |
|
56 | + { |
|
57 | + $attendees = $this->attendee_model->get_all( |
|
58 | + array( |
|
59 | + array( |
|
60 | + 'ATT_email' => $email_address, |
|
61 | + ), |
|
62 | + ) |
|
63 | + ); |
|
64 | 64 | |
65 | - if (empty($attendees)) { |
|
66 | - return array( |
|
67 | - 'data' => array(), |
|
68 | - 'done' => true, |
|
69 | - ); |
|
70 | - } |
|
65 | + if (empty($attendees)) { |
|
66 | + return array( |
|
67 | + 'data' => array(), |
|
68 | + 'done' => true, |
|
69 | + ); |
|
70 | + } |
|
71 | 71 | |
72 | - $export_items = array(); |
|
73 | - foreach ($attendees as $attendee) { |
|
74 | - $export_fields = array_intersect_key( |
|
75 | - $this->attendee_model->field_settings(), |
|
76 | - array_flip( |
|
77 | - array( |
|
78 | - 'ATT_fname', |
|
79 | - 'ATT_lname', |
|
80 | - 'ATT_email', |
|
81 | - 'ATT_address1', |
|
82 | - 'ATT_address2', |
|
83 | - 'ATT_city', |
|
84 | - 'STA_ID', |
|
85 | - 'CNT_ISO', |
|
86 | - 'ATT_zip', |
|
87 | - 'ATT_phone', |
|
88 | - ) |
|
89 | - ) |
|
90 | - ); |
|
91 | - $data = array(); |
|
92 | - foreach ($export_fields as $field_name => $field_obj) { |
|
93 | - if ($field_name === 'STA_ID') { |
|
94 | - $value = $attendee->state_name(); |
|
95 | - } elseif ($field_name == 'CNT_ISO') { |
|
96 | - $value = $attendee->country_name(); |
|
97 | - } else { |
|
98 | - $value = $attendee->get_pretty($field_name); |
|
99 | - } |
|
100 | - $data[] = array( |
|
101 | - 'name' => $field_obj->get_nicename(), |
|
102 | - 'value' => $value, |
|
103 | - ); |
|
104 | - } |
|
105 | - $export_items[] = |
|
106 | - array( |
|
107 | - 'group_id' => 'att-' . $attendee->ID(), |
|
108 | - 'group_label' => esc_html__('Contact Profiles', 'event_espresso'), |
|
109 | - 'item_id' => $attendee->ID(), |
|
110 | - 'data' => $data, |
|
111 | - ); |
|
112 | - } |
|
113 | - return array( |
|
114 | - 'data' => $export_items, |
|
115 | - 'done' => true, |
|
116 | - ); |
|
117 | - } |
|
72 | + $export_items = array(); |
|
73 | + foreach ($attendees as $attendee) { |
|
74 | + $export_fields = array_intersect_key( |
|
75 | + $this->attendee_model->field_settings(), |
|
76 | + array_flip( |
|
77 | + array( |
|
78 | + 'ATT_fname', |
|
79 | + 'ATT_lname', |
|
80 | + 'ATT_email', |
|
81 | + 'ATT_address1', |
|
82 | + 'ATT_address2', |
|
83 | + 'ATT_city', |
|
84 | + 'STA_ID', |
|
85 | + 'CNT_ISO', |
|
86 | + 'ATT_zip', |
|
87 | + 'ATT_phone', |
|
88 | + ) |
|
89 | + ) |
|
90 | + ); |
|
91 | + $data = array(); |
|
92 | + foreach ($export_fields as $field_name => $field_obj) { |
|
93 | + if ($field_name === 'STA_ID') { |
|
94 | + $value = $attendee->state_name(); |
|
95 | + } elseif ($field_name == 'CNT_ISO') { |
|
96 | + $value = $attendee->country_name(); |
|
97 | + } else { |
|
98 | + $value = $attendee->get_pretty($field_name); |
|
99 | + } |
|
100 | + $data[] = array( |
|
101 | + 'name' => $field_obj->get_nicename(), |
|
102 | + 'value' => $value, |
|
103 | + ); |
|
104 | + } |
|
105 | + $export_items[] = |
|
106 | + array( |
|
107 | + 'group_id' => 'att-' . $attendee->ID(), |
|
108 | + 'group_label' => esc_html__('Contact Profiles', 'event_espresso'), |
|
109 | + 'item_id' => $attendee->ID(), |
|
110 | + 'data' => $data, |
|
111 | + ); |
|
112 | + } |
|
113 | + return array( |
|
114 | + 'data' => $export_items, |
|
115 | + 'done' => true, |
|
116 | + ); |
|
117 | + } |
|
118 | 118 | |
119 | - /** |
|
120 | - * Gets the Translated name of this exporter |
|
121 | - * |
|
122 | - * @return string |
|
123 | - */ |
|
124 | - public function name() |
|
125 | - { |
|
126 | - return esc_html__('Event Espresso Attendee Data Exporter', 'event_espresso'); |
|
127 | - } |
|
119 | + /** |
|
120 | + * Gets the Translated name of this exporter |
|
121 | + * |
|
122 | + * @return string |
|
123 | + */ |
|
124 | + public function name() |
|
125 | + { |
|
126 | + return esc_html__('Event Espresso Attendee Data Exporter', 'event_espresso'); |
|
127 | + } |
|
128 | 128 | } |
129 | 129 | // End of file ExportAttendee.php |
130 | 130 | // Location: EventEspresso\core\domain\services\admin\privacy\export/ExportAttendee.php |
@@ -104,7 +104,7 @@ |
||
104 | 104 | } |
105 | 105 | $export_items[] = |
106 | 106 | array( |
107 | - 'group_id' => 'att-' . $attendee->ID(), |
|
107 | + 'group_id' => 'att-'.$attendee->ID(), |
|
108 | 108 | 'group_label' => esc_html__('Contact Profiles', 'event_espresso'), |
109 | 109 | 'item_id' => $attendee->ID(), |
110 | 110 | 'data' => $data, |
@@ -18,133 +18,133 @@ |
||
18 | 18 | */ |
19 | 19 | class ExportRegistration implements PersonalDataExporterInterface |
20 | 20 | { |
21 | - /** |
|
22 | - * @var EEM_Registration |
|
23 | - */ |
|
24 | - protected $registration_model; |
|
21 | + /** |
|
22 | + * @var EEM_Registration |
|
23 | + */ |
|
24 | + protected $registration_model; |
|
25 | 25 | |
26 | - /** |
|
27 | - * ExportRegistration constructor. |
|
28 | - * |
|
29 | - * @param EEM_Registration $registration_model |
|
30 | - */ |
|
31 | - public function __construct(EEM_Registration $registration_model) |
|
32 | - { |
|
33 | - $this->registration_model = $registration_model; |
|
34 | - } |
|
26 | + /** |
|
27 | + * ExportRegistration constructor. |
|
28 | + * |
|
29 | + * @param EEM_Registration $registration_model |
|
30 | + */ |
|
31 | + public function __construct(EEM_Registration $registration_model) |
|
32 | + { |
|
33 | + $this->registration_model = $registration_model; |
|
34 | + } |
|
35 | 35 | |
36 | 36 | |
37 | - /** |
|
38 | - * Returns data for export. |
|
39 | - * |
|
40 | - * @param string $email_address , |
|
41 | - * @param int $page starts at 1, not 0 |
|
42 | - * @return array { |
|
43 | - * @type array $data { |
|
44 | - * @type array { |
|
45 | - * @type string $group_id (not translated, same for all exports) |
|
46 | - * @type string $group_label (translated string) |
|
47 | - * @type string|int $item_id |
|
48 | - * @type array $data { |
|
49 | - * @type array { |
|
50 | - * @type string $name what's shown in the left-column of the export row |
|
51 | - * @type string $value what's showin the right-column of the export row |
|
52 | - * } |
|
53 | - * } |
|
54 | - * } |
|
55 | - * } |
|
56 | - * } |
|
57 | - */ |
|
58 | - public function export($email_address, $page = 1) |
|
59 | - { |
|
60 | - $page_size = 10; |
|
61 | - $registrations = $this->registration_model->get_all( |
|
62 | - array( |
|
63 | - array( |
|
64 | - 'Attendee.ATT_email' => $email_address, |
|
65 | - ), |
|
66 | - 'limit' => array( |
|
67 | - ($page - 1) * $page_size, |
|
68 | - $page_size, |
|
69 | - ), |
|
70 | - ) |
|
71 | - ); |
|
72 | - $export_fields = array_intersect_key( |
|
73 | - $this->registration_model->field_settings(), |
|
74 | - array_flip( |
|
75 | - array( |
|
76 | - 'REG_code', |
|
77 | - 'REG_date', |
|
78 | - 'REG_final_price', |
|
79 | - 'REG_paid', |
|
80 | - 'REG_url_link', |
|
81 | - 'REG_count', |
|
82 | - 'REG_group_size', |
|
83 | - 'REG_att_is_going', |
|
84 | - ) |
|
85 | - ) |
|
86 | - ); |
|
87 | - $export_items = array(); |
|
88 | - $found_something = false; |
|
89 | - foreach ($registrations as $registration) { |
|
90 | - /** |
|
91 | - * @var $registration EE_Registration |
|
92 | - */ |
|
93 | - $found_something = true; |
|
94 | - $data = array(); |
|
95 | - foreach ($export_fields as $field_name => $field_obj) { |
|
96 | - $data[] = array( |
|
97 | - 'name' => $field_obj->get_nicename(), |
|
98 | - 'value' => $registration->get_pretty($field_name), |
|
99 | - ); |
|
100 | - } |
|
101 | - $answers = $registration->answers( |
|
102 | - array( |
|
103 | - 'force_join' => array( |
|
104 | - 'Question', |
|
105 | - ), |
|
106 | - ) |
|
107 | - ); |
|
108 | - foreach ($answers as $answer) { |
|
109 | - $data[] = array( |
|
110 | - 'name' => $answer->question()->display_text(), |
|
111 | - 'value' => $answer->pretty_value(), |
|
112 | - ); |
|
113 | - } |
|
114 | - $ticket = $registration->ticket(); |
|
115 | - if ($ticket instanceof EE_Ticket) { |
|
116 | - $data[] = array( |
|
117 | - 'name' => esc_html__('Ticket', 'event_espresso'), |
|
118 | - 'value' => $ticket->name_and_info(), |
|
119 | - ); |
|
120 | - $data[] = array( |
|
121 | - 'name' => esc_html__('Event', 'event_espresso'), |
|
122 | - 'value' => $ticket->get_event_name(), |
|
123 | - ); |
|
124 | - } |
|
37 | + /** |
|
38 | + * Returns data for export. |
|
39 | + * |
|
40 | + * @param string $email_address , |
|
41 | + * @param int $page starts at 1, not 0 |
|
42 | + * @return array { |
|
43 | + * @type array $data { |
|
44 | + * @type array { |
|
45 | + * @type string $group_id (not translated, same for all exports) |
|
46 | + * @type string $group_label (translated string) |
|
47 | + * @type string|int $item_id |
|
48 | + * @type array $data { |
|
49 | + * @type array { |
|
50 | + * @type string $name what's shown in the left-column of the export row |
|
51 | + * @type string $value what's showin the right-column of the export row |
|
52 | + * } |
|
53 | + * } |
|
54 | + * } |
|
55 | + * } |
|
56 | + * } |
|
57 | + */ |
|
58 | + public function export($email_address, $page = 1) |
|
59 | + { |
|
60 | + $page_size = 10; |
|
61 | + $registrations = $this->registration_model->get_all( |
|
62 | + array( |
|
63 | + array( |
|
64 | + 'Attendee.ATT_email' => $email_address, |
|
65 | + ), |
|
66 | + 'limit' => array( |
|
67 | + ($page - 1) * $page_size, |
|
68 | + $page_size, |
|
69 | + ), |
|
70 | + ) |
|
71 | + ); |
|
72 | + $export_fields = array_intersect_key( |
|
73 | + $this->registration_model->field_settings(), |
|
74 | + array_flip( |
|
75 | + array( |
|
76 | + 'REG_code', |
|
77 | + 'REG_date', |
|
78 | + 'REG_final_price', |
|
79 | + 'REG_paid', |
|
80 | + 'REG_url_link', |
|
81 | + 'REG_count', |
|
82 | + 'REG_group_size', |
|
83 | + 'REG_att_is_going', |
|
84 | + ) |
|
85 | + ) |
|
86 | + ); |
|
87 | + $export_items = array(); |
|
88 | + $found_something = false; |
|
89 | + foreach ($registrations as $registration) { |
|
90 | + /** |
|
91 | + * @var $registration EE_Registration |
|
92 | + */ |
|
93 | + $found_something = true; |
|
94 | + $data = array(); |
|
95 | + foreach ($export_fields as $field_name => $field_obj) { |
|
96 | + $data[] = array( |
|
97 | + 'name' => $field_obj->get_nicename(), |
|
98 | + 'value' => $registration->get_pretty($field_name), |
|
99 | + ); |
|
100 | + } |
|
101 | + $answers = $registration->answers( |
|
102 | + array( |
|
103 | + 'force_join' => array( |
|
104 | + 'Question', |
|
105 | + ), |
|
106 | + ) |
|
107 | + ); |
|
108 | + foreach ($answers as $answer) { |
|
109 | + $data[] = array( |
|
110 | + 'name' => $answer->question()->display_text(), |
|
111 | + 'value' => $answer->pretty_value(), |
|
112 | + ); |
|
113 | + } |
|
114 | + $ticket = $registration->ticket(); |
|
115 | + if ($ticket instanceof EE_Ticket) { |
|
116 | + $data[] = array( |
|
117 | + 'name' => esc_html__('Ticket', 'event_espresso'), |
|
118 | + 'value' => $ticket->name_and_info(), |
|
119 | + ); |
|
120 | + $data[] = array( |
|
121 | + 'name' => esc_html__('Event', 'event_espresso'), |
|
122 | + 'value' => $ticket->get_event_name(), |
|
123 | + ); |
|
124 | + } |
|
125 | 125 | |
126 | - $export_items[] = array( |
|
127 | - 'group_id' => 'registration', |
|
128 | - 'group_label' => esc_html__('Event Registrations', 'event_espresso'), |
|
129 | - 'item_id' => $registration->ID(), |
|
130 | - 'data' => $data, |
|
131 | - ); |
|
132 | - } |
|
133 | - return array( |
|
134 | - 'data' => $export_items, |
|
135 | - 'done' => ! $found_something, |
|
136 | - ); |
|
137 | - } |
|
126 | + $export_items[] = array( |
|
127 | + 'group_id' => 'registration', |
|
128 | + 'group_label' => esc_html__('Event Registrations', 'event_espresso'), |
|
129 | + 'item_id' => $registration->ID(), |
|
130 | + 'data' => $data, |
|
131 | + ); |
|
132 | + } |
|
133 | + return array( |
|
134 | + 'data' => $export_items, |
|
135 | + 'done' => ! $found_something, |
|
136 | + ); |
|
137 | + } |
|
138 | 138 | |
139 | - /** |
|
140 | - * Gets the Translated name of this exporter |
|
141 | - * |
|
142 | - * @return string |
|
143 | - */ |
|
144 | - public function name() |
|
145 | - { |
|
146 | - return esc_html__('Event Espresso Registration Data Exporter', 'event_espresso'); |
|
147 | - } |
|
139 | + /** |
|
140 | + * Gets the Translated name of this exporter |
|
141 | + * |
|
142 | + * @return string |
|
143 | + */ |
|
144 | + public function name() |
|
145 | + { |
|
146 | + return esc_html__('Event Espresso Registration Data Exporter', 'event_espresso'); |
|
147 | + } |
|
148 | 148 | } |
149 | 149 | // End of file ExportRegistration.php |
150 | 150 | // Location: EventEspresso\core\domain\services\admin\privacy\export/ExportRegistration.php |
@@ -48,7 +48,7 @@ discard block |
||
48 | 48 | */ |
49 | 49 | public function set_message_type($message_type = false) |
50 | 50 | { |
51 | - if (! $message_type) { |
|
51 | + if ( ! $message_type) { |
|
52 | 52 | throw new EE_Error(esc_html__('Missing required value for the message_type parameter', 'event_espresso')); |
53 | 53 | } |
54 | 54 | $this->set('MTP_message_type', $message_type); |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | */ |
62 | 62 | public function set_messenger($messenger = false) |
63 | 63 | { |
64 | - if (! $messenger) { |
|
64 | + if ( ! $messenger) { |
|
65 | 65 | throw new EE_Error(esc_html__('Missing required value for the messenger parameter', 'event_espresso')); |
66 | 66 | } |
67 | 67 | $this->set('MTP_messenger', $messenger); |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | */ |
75 | 75 | public function set_group_template_id($GRP_ID = false) |
76 | 76 | { |
77 | - if (! $GRP_ID) { |
|
77 | + if ( ! $GRP_ID) { |
|
78 | 78 | throw new EE_Error( |
79 | 79 | esc_html__( |
80 | 80 | 'Missing required value for the message template group id', |
@@ -290,7 +290,7 @@ discard block |
||
290 | 290 | } |
291 | 291 | // note contexts could have CHECKBOX fields per context. So we return the objects indexed by context AND field. |
292 | 292 | foreach ($mtps as $mtp) { |
293 | - $mtps_arr[ $mtp->get('MTP_context') ][ $mtp->get('MTP_template_field') ] = $mtp; |
|
293 | + $mtps_arr[$mtp->get('MTP_context')][$mtp->get('MTP_template_field')] = $mtp; |
|
294 | 294 | } |
295 | 295 | return $mtps_arr; |
296 | 296 | } |
@@ -430,7 +430,7 @@ discard block |
||
430 | 430 | public function deactivate_context($context) |
431 | 431 | { |
432 | 432 | $this->validate_context($context); |
433 | - return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, false); |
|
433 | + return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX.$context, false); |
|
434 | 434 | } |
435 | 435 | |
436 | 436 | |
@@ -445,7 +445,7 @@ discard block |
||
445 | 445 | public function activate_context($context) |
446 | 446 | { |
447 | 447 | $this->validate_context($context); |
448 | - return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true); |
|
448 | + return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX.$context, true); |
|
449 | 449 | } |
450 | 450 | |
451 | 451 | |
@@ -465,7 +465,7 @@ discard block |
||
465 | 465 | { |
466 | 466 | $this->validate_context($context); |
467 | 467 | return filter_var( |
468 | - $this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true, true), |
|
468 | + $this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX.$context, true, true), |
|
469 | 469 | FILTER_VALIDATE_BOOLEAN |
470 | 470 | ); |
471 | 471 | } |
@@ -481,7 +481,7 @@ discard block |
||
481 | 481 | public function validate_context($context) |
482 | 482 | { |
483 | 483 | $contexts = $this->contexts_config(); |
484 | - if (! isset($contexts[ $context ])) { |
|
484 | + if ( ! isset($contexts[$context])) { |
|
485 | 485 | throw new InvalidIdentifierException( |
486 | 486 | '', |
487 | 487 | '', |
@@ -12,487 +12,487 @@ |
||
12 | 12 | */ |
13 | 13 | class EE_Message_Template_Group extends EE_Soft_Delete_Base_Class |
14 | 14 | { |
15 | - /** |
|
16 | - * Extra Meta key prefix for whether a given context for this message tmeplate group is active or not. |
|
17 | - */ |
|
18 | - const ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX = 'active_context_'; |
|
19 | - |
|
20 | - /** |
|
21 | - * @param array $props_n_values |
|
22 | - * @param string $timezone |
|
23 | - * @return EE_Message_Template_Group|mixed |
|
24 | - * @throws EE_Error |
|
25 | - */ |
|
26 | - public static function new_instance($props_n_values = array(), $timezone = '') |
|
27 | - { |
|
28 | - $has_object = parent::_check_for_object($props_n_values, __CLASS__, $timezone); |
|
29 | - return $has_object ? $has_object : new self($props_n_values, false, $timezone); |
|
30 | - } |
|
31 | - |
|
32 | - |
|
33 | - /** |
|
34 | - * @param array $props_n_values |
|
35 | - * @param string $timezone |
|
36 | - * @return EE_Message_Template_Group |
|
37 | - */ |
|
38 | - public static function new_instance_from_db($props_n_values = array(), $timezone = '') |
|
39 | - { |
|
40 | - return new self($props_n_values, true, $timezone); |
|
41 | - } |
|
42 | - |
|
43 | - |
|
44 | - /** |
|
45 | - * @param bool $message_type |
|
46 | - * @throws EE_Error |
|
47 | - */ |
|
48 | - public function set_message_type($message_type = false) |
|
49 | - { |
|
50 | - if (! $message_type) { |
|
51 | - throw new EE_Error(esc_html__('Missing required value for the message_type parameter', 'event_espresso')); |
|
52 | - } |
|
53 | - $this->set('MTP_message_type', $message_type); |
|
54 | - } |
|
55 | - |
|
56 | - |
|
57 | - /** |
|
58 | - * @param bool $messenger |
|
59 | - * @throws EE_Error |
|
60 | - */ |
|
61 | - public function set_messenger($messenger = false) |
|
62 | - { |
|
63 | - if (! $messenger) { |
|
64 | - throw new EE_Error(esc_html__('Missing required value for the messenger parameter', 'event_espresso')); |
|
65 | - } |
|
66 | - $this->set('MTP_messenger', $messenger); |
|
67 | - } |
|
68 | - |
|
69 | - |
|
70 | - /** |
|
71 | - * @param bool $GRP_ID |
|
72 | - * @throws EE_Error |
|
73 | - */ |
|
74 | - public function set_group_template_id($GRP_ID = false) |
|
75 | - { |
|
76 | - if (! $GRP_ID) { |
|
77 | - throw new EE_Error( |
|
78 | - esc_html__( |
|
79 | - 'Missing required value for the message template group id', |
|
80 | - 'event_espresso' |
|
81 | - ) |
|
82 | - ); |
|
83 | - } |
|
84 | - $this->set('GRP_ID', $GRP_ID); |
|
85 | - } |
|
86 | - |
|
87 | - |
|
88 | - /** |
|
89 | - * get Group ID |
|
90 | - * |
|
91 | - * @access public |
|
92 | - * @return int |
|
93 | - * @throws EE_Error |
|
94 | - */ |
|
95 | - public function GRP_ID() |
|
96 | - { |
|
97 | - return $this->get('GRP_ID'); |
|
98 | - } |
|
99 | - |
|
100 | - |
|
101 | - /** |
|
102 | - * get User ID |
|
103 | - * |
|
104 | - * @access public |
|
105 | - * @return int |
|
106 | - * @throws EE_Error |
|
107 | - */ |
|
108 | - public function user() |
|
109 | - { |
|
110 | - $user_id = $this->get('MTP_user_id'); |
|
111 | - return empty($user_id) ? get_current_user_id() : $user_id; |
|
112 | - } |
|
113 | - |
|
114 | - |
|
115 | - /** |
|
116 | - * Wrapper for the user function() (preserve backward compat) |
|
117 | - * |
|
118 | - * @since 4.5.0 |
|
119 | - * @return int |
|
120 | - * @throws EE_Error |
|
121 | - */ |
|
122 | - public function wp_user() |
|
123 | - { |
|
124 | - return $this->user(); |
|
125 | - } |
|
126 | - |
|
127 | - |
|
128 | - /** |
|
129 | - * This simply returns a count of all related events to this message template group |
|
130 | - * |
|
131 | - * @return int |
|
132 | - */ |
|
133 | - public function count_events() |
|
134 | - { |
|
135 | - return $this->count_related('Event'); |
|
136 | - } |
|
137 | - |
|
138 | - |
|
139 | - /** |
|
140 | - * returns the name saved in the db for this template |
|
141 | - * |
|
142 | - * @return string |
|
143 | - * @throws EE_Error |
|
144 | - */ |
|
145 | - public function name() |
|
146 | - { |
|
147 | - return $this->get('MTP_name'); |
|
148 | - } |
|
149 | - |
|
150 | - |
|
151 | - /** |
|
152 | - * Returns the description saved in the db for this template group |
|
153 | - * |
|
154 | - * @return string |
|
155 | - * @throws EE_Error |
|
156 | - */ |
|
157 | - public function description() |
|
158 | - { |
|
159 | - return $this->get('MTP_description'); |
|
160 | - } |
|
161 | - |
|
162 | - |
|
163 | - /** |
|
164 | - * returns all related EE_Message_Template objects |
|
165 | - * |
|
166 | - * @param array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md |
|
167 | - * @return EE_Message_Template[] |
|
168 | - * @throws EE_Error |
|
169 | - */ |
|
170 | - public function message_templates($query_params = array()) |
|
171 | - { |
|
172 | - return $this->get_many_related('Message_Template', $query_params); |
|
173 | - } |
|
174 | - |
|
175 | - |
|
176 | - /** |
|
177 | - * get Message Messenger |
|
178 | - * |
|
179 | - * @access public |
|
180 | - * @return string |
|
181 | - * @throws EE_Error |
|
182 | - */ |
|
183 | - public function messenger() |
|
184 | - { |
|
185 | - return $this->get('MTP_messenger'); |
|
186 | - } |
|
187 | - |
|
188 | - |
|
189 | - /** |
|
190 | - * get Message Messenger OBJECT |
|
191 | - * If an attempt to get the corresponding messenger object fails, then we set this message |
|
192 | - * template group to inactive, and save to db. Then return null so client code can handle |
|
193 | - * appropriately. |
|
194 | - * |
|
195 | - * @return EE_messenger |
|
196 | - * @throws EE_Error |
|
197 | - */ |
|
198 | - public function messenger_obj() |
|
199 | - { |
|
200 | - $messenger = $this->messenger(); |
|
201 | - try { |
|
202 | - $messenger = EEH_MSG_Template::messenger_obj($messenger); |
|
203 | - } catch (EE_Error $e) { |
|
204 | - // if an exception was thrown then let's deactivate this message template group because it means there is no |
|
205 | - // class for this messenger in this group. |
|
206 | - $this->set('MTP_is_active', false); |
|
207 | - $this->save(); |
|
208 | - return null; |
|
209 | - } |
|
210 | - return $messenger; |
|
211 | - } |
|
212 | - |
|
213 | - |
|
214 | - /** |
|
215 | - * get Message Type |
|
216 | - * |
|
217 | - * @access public |
|
218 | - * @return string |
|
219 | - * @throws EE_Error |
|
220 | - */ |
|
221 | - public function message_type() |
|
222 | - { |
|
223 | - return $this->get('MTP_message_type'); |
|
224 | - } |
|
225 | - |
|
226 | - |
|
227 | - /** |
|
228 | - * get Message type OBJECT |
|
229 | - * If an attempt to get the corresponding message type object fails, then we set this message |
|
230 | - * template group to inactive, and save to db. Then return null so client code can handle |
|
231 | - * appropriately. |
|
232 | - * |
|
233 | - * @throws EE_Error |
|
234 | - * @return EE_message_type|false if exception thrown. |
|
235 | - */ |
|
236 | - public function message_type_obj() |
|
237 | - { |
|
238 | - $message_type = $this->message_type(); |
|
239 | - try { |
|
240 | - $message_type = EEH_MSG_Template::message_type_obj($message_type); |
|
241 | - } catch (EE_Error $e) { |
|
242 | - // if an exception was thrown then let's deactivate this message template group because it means there is no |
|
243 | - // class for the message type in this group. |
|
244 | - $this->set('MTP_is_active', false); |
|
245 | - $this->save(); |
|
246 | - return null; |
|
247 | - } |
|
248 | - return $message_type; |
|
249 | - } |
|
250 | - |
|
251 | - |
|
252 | - /** |
|
253 | - * @return array |
|
254 | - * @throws EE_Error |
|
255 | - */ |
|
256 | - public function contexts_config() |
|
257 | - { |
|
258 | - return $this->message_type_obj()->get_contexts(); |
|
259 | - } |
|
260 | - |
|
261 | - |
|
262 | - /** |
|
263 | - * This returns the context_label for contexts as set in the message type object |
|
264 | - * Note this is an array with singular and plural keys |
|
265 | - * |
|
266 | - * @access public |
|
267 | - * @return array labels for "context" |
|
268 | - * @throws EE_Error |
|
269 | - */ |
|
270 | - public function context_label() |
|
271 | - { |
|
272 | - $obj = $this->message_type_obj(); |
|
273 | - return $obj->get_context_label(); |
|
274 | - } |
|
275 | - |
|
276 | - |
|
277 | - /** |
|
278 | - * This returns an array of EE_Message_Template objects indexed by context and field. |
|
279 | - * |
|
280 | - * @return array () |
|
281 | - * @throws EE_Error |
|
282 | - */ |
|
283 | - public function context_templates() |
|
284 | - { |
|
285 | - $mtps_arr = array(); |
|
286 | - $mtps = $this->get_many_related('Message_Template'); |
|
287 | - if (empty($mtps)) { |
|
288 | - return array(); |
|
289 | - } |
|
290 | - // note contexts could have CHECKBOX fields per context. So we return the objects indexed by context AND field. |
|
291 | - foreach ($mtps as $mtp) { |
|
292 | - $mtps_arr[ $mtp->get('MTP_context') ][ $mtp->get('MTP_template_field') ] = $mtp; |
|
293 | - } |
|
294 | - return $mtps_arr; |
|
295 | - } |
|
296 | - |
|
297 | - |
|
298 | - /** |
|
299 | - * this returns if the template group this template belongs to is global |
|
300 | - * |
|
301 | - * @return bool true if it is, false if it isn't |
|
302 | - * @throws EE_Error |
|
303 | - */ |
|
304 | - public function is_global() |
|
305 | - { |
|
306 | - return $this->get('MTP_is_global'); |
|
307 | - } |
|
308 | - |
|
309 | - |
|
310 | - /** |
|
311 | - * this returns if the template group this template belongs to is active (i.e. turned "on" or not) |
|
312 | - * |
|
313 | - * @return bool true if it is, false if it isn't |
|
314 | - * @throws EE_Error |
|
315 | - */ |
|
316 | - public function is_active() |
|
317 | - { |
|
318 | - return $this->get('MTP_is_active'); |
|
319 | - } |
|
320 | - |
|
321 | - |
|
322 | - /** |
|
323 | - * This will return an array of shortcodes => labels from the messenger and message_type objects associated with |
|
324 | - * this template. |
|
325 | - * |
|
326 | - * @since 4.3.0 |
|
327 | - * @uses EEH_MSG_Template::get_shortcodes() |
|
328 | - * @param string $context what context we're going to return shortcodes for |
|
329 | - * @param array $fields what fields we're returning valid shortcodes for. If empty then we assume all fields are |
|
330 | - * to be returned. |
|
331 | - * @param bool $merged If TRUE then we don't return shortcodes indexed by field but instead an array of the |
|
332 | - * unique shortcodes for all the given (or all) fields. |
|
333 | - * @return mixed (array|bool) an array of shortcodes in the format array( '[shortcode] => 'label') OR FALSE if no |
|
334 | - * shortcodes found. |
|
335 | - * @throws EE_Error |
|
336 | - */ |
|
337 | - public function get_shortcodes($context, $fields = array(), $merged = false) |
|
338 | - { |
|
339 | - $messenger = $this->messenger(); |
|
340 | - $message_type = $this->message_type(); |
|
341 | - return EEH_MSG_Template::get_shortcodes($message_type, $messenger, $fields, $context, $merged); |
|
342 | - } |
|
343 | - |
|
344 | - |
|
345 | - /** |
|
346 | - * This just gets the template pack name assigned to this message template group. If it's not set, then we just |
|
347 | - * use the default template pack. |
|
348 | - * |
|
349 | - * @since 4.5.0 |
|
350 | - * @return string |
|
351 | - * @throws EE_Error |
|
352 | - */ |
|
353 | - public function get_template_pack_name() |
|
354 | - { |
|
355 | - return $this->get_extra_meta('MTP_template_pack', true, 'default'); |
|
356 | - } |
|
357 | - |
|
358 | - |
|
359 | - /** |
|
360 | - * This returns the specific template pack object referenced by the template pack name attached to this message |
|
361 | - * template group. If no template pack is assigned then the default template pack is retrieved. |
|
362 | - * |
|
363 | - * @since 4.5.0 |
|
364 | - * @return EE_Messages_Template_Pack |
|
365 | - * @throws EE_Error |
|
366 | - * @throws InvalidArgumentException |
|
367 | - * @throws ReflectionException |
|
368 | - * @throws \EventEspresso\core\exceptions\InvalidDataTypeException |
|
369 | - * @throws \EventEspresso\core\exceptions\InvalidInterfaceException |
|
370 | - */ |
|
371 | - public function get_template_pack() |
|
372 | - { |
|
373 | - $pack_name = $this->get_template_pack_name(); |
|
374 | - EE_Registry::instance()->load_helper('MSG_Template'); |
|
375 | - return EEH_MSG_Template::get_template_pack($pack_name); |
|
376 | - } |
|
377 | - |
|
378 | - |
|
379 | - /** |
|
380 | - * This retrieves the template variation assigned to this message template group. If it's not set, then we just |
|
381 | - * use the default template variation. |
|
382 | - * |
|
383 | - * @since 4.5.0 |
|
384 | - * @return string |
|
385 | - * @throws EE_Error |
|
386 | - */ |
|
387 | - public function get_template_pack_variation() |
|
388 | - { |
|
389 | - return $this->get_extra_meta('MTP_variation', true, 'default'); |
|
390 | - } |
|
391 | - |
|
392 | - |
|
393 | - /** |
|
394 | - * This just sets the template pack name attached to this message template group. |
|
395 | - * |
|
396 | - * @since 4.5.0 |
|
397 | - * @param string $template_pack_name What message template pack is assigned. |
|
398 | - * @return int |
|
399 | - * @throws EE_Error |
|
400 | - */ |
|
401 | - public function set_template_pack_name($template_pack_name) |
|
402 | - { |
|
403 | - return $this->update_extra_meta('MTP_template_pack', $template_pack_name); |
|
404 | - } |
|
405 | - |
|
406 | - |
|
407 | - /** |
|
408 | - * This just sets the template pack variation attached to this message template group. |
|
409 | - * |
|
410 | - * @since 4.5.0 |
|
411 | - * @param string $variation What variation is being set on the message template group. |
|
412 | - * @return int |
|
413 | - * @throws EE_Error |
|
414 | - */ |
|
415 | - public function set_template_pack_variation($variation) |
|
416 | - { |
|
417 | - return $this->update_extra_meta('MTP_variation', $variation); |
|
418 | - } |
|
419 | - |
|
420 | - |
|
421 | - /** |
|
422 | - * Deactivates the given context. |
|
423 | - * |
|
424 | - * @param $context |
|
425 | - * @return bool|int |
|
426 | - * @throws EE_Error |
|
427 | - * @throws InvalidIdentifierException |
|
428 | - */ |
|
429 | - public function deactivate_context($context) |
|
430 | - { |
|
431 | - $this->validate_context($context); |
|
432 | - return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, false); |
|
433 | - } |
|
434 | - |
|
435 | - |
|
436 | - /** |
|
437 | - * Activates the given context. |
|
438 | - * |
|
439 | - * @param $context |
|
440 | - * @return bool|int |
|
441 | - * @throws EE_Error |
|
442 | - * @throws InvalidIdentifierException |
|
443 | - */ |
|
444 | - public function activate_context($context) |
|
445 | - { |
|
446 | - $this->validate_context($context); |
|
447 | - return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true); |
|
448 | - } |
|
449 | - |
|
450 | - |
|
451 | - /** |
|
452 | - * Returns whether the context is active or not. |
|
453 | - * Note, this will default to true if the extra meta record doesn't exist. |
|
454 | - * Also, this does NOT account for whether the "To" field is empty or not. Some messengers may allow the "To" field |
|
455 | - * to be empty (@see EE_Messenger::allow_empty_to_field()) so an empty "To" field is not always an indicator of |
|
456 | - * whether a context is "active" or not. |
|
457 | - * |
|
458 | - * @param $context |
|
459 | - * @return bool |
|
460 | - * @throws EE_Error |
|
461 | - * @throws InvalidIdentifierException |
|
462 | - */ |
|
463 | - public function is_context_active($context) |
|
464 | - { |
|
465 | - $this->validate_context($context); |
|
466 | - return filter_var( |
|
467 | - $this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true, true), |
|
468 | - FILTER_VALIDATE_BOOLEAN |
|
469 | - ); |
|
470 | - } |
|
471 | - |
|
472 | - |
|
473 | - /** |
|
474 | - * Validates the incoming context to verify it matches a registered context for the related message type. |
|
475 | - * |
|
476 | - * @param string $context |
|
477 | - * @throws EE_Error |
|
478 | - * @throws InvalidIdentifierException |
|
479 | - */ |
|
480 | - public function validate_context($context) |
|
481 | - { |
|
482 | - $contexts = $this->contexts_config(); |
|
483 | - if (! isset($contexts[ $context ])) { |
|
484 | - throw new InvalidIdentifierException( |
|
485 | - '', |
|
486 | - '', |
|
487 | - sprintf( |
|
488 | - esc_html__( |
|
489 | - 'An invalid string identifying a context was provided. "%1$s" was received, and one of "%2$s" was expected.', |
|
490 | - 'event_espresso' |
|
491 | - ), |
|
492 | - $context, |
|
493 | - implode(',', array_keys($contexts)) |
|
494 | - ) |
|
495 | - ); |
|
496 | - } |
|
497 | - } |
|
15 | + /** |
|
16 | + * Extra Meta key prefix for whether a given context for this message tmeplate group is active or not. |
|
17 | + */ |
|
18 | + const ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX = 'active_context_'; |
|
19 | + |
|
20 | + /** |
|
21 | + * @param array $props_n_values |
|
22 | + * @param string $timezone |
|
23 | + * @return EE_Message_Template_Group|mixed |
|
24 | + * @throws EE_Error |
|
25 | + */ |
|
26 | + public static function new_instance($props_n_values = array(), $timezone = '') |
|
27 | + { |
|
28 | + $has_object = parent::_check_for_object($props_n_values, __CLASS__, $timezone); |
|
29 | + return $has_object ? $has_object : new self($props_n_values, false, $timezone); |
|
30 | + } |
|
31 | + |
|
32 | + |
|
33 | + /** |
|
34 | + * @param array $props_n_values |
|
35 | + * @param string $timezone |
|
36 | + * @return EE_Message_Template_Group |
|
37 | + */ |
|
38 | + public static function new_instance_from_db($props_n_values = array(), $timezone = '') |
|
39 | + { |
|
40 | + return new self($props_n_values, true, $timezone); |
|
41 | + } |
|
42 | + |
|
43 | + |
|
44 | + /** |
|
45 | + * @param bool $message_type |
|
46 | + * @throws EE_Error |
|
47 | + */ |
|
48 | + public function set_message_type($message_type = false) |
|
49 | + { |
|
50 | + if (! $message_type) { |
|
51 | + throw new EE_Error(esc_html__('Missing required value for the message_type parameter', 'event_espresso')); |
|
52 | + } |
|
53 | + $this->set('MTP_message_type', $message_type); |
|
54 | + } |
|
55 | + |
|
56 | + |
|
57 | + /** |
|
58 | + * @param bool $messenger |
|
59 | + * @throws EE_Error |
|
60 | + */ |
|
61 | + public function set_messenger($messenger = false) |
|
62 | + { |
|
63 | + if (! $messenger) { |
|
64 | + throw new EE_Error(esc_html__('Missing required value for the messenger parameter', 'event_espresso')); |
|
65 | + } |
|
66 | + $this->set('MTP_messenger', $messenger); |
|
67 | + } |
|
68 | + |
|
69 | + |
|
70 | + /** |
|
71 | + * @param bool $GRP_ID |
|
72 | + * @throws EE_Error |
|
73 | + */ |
|
74 | + public function set_group_template_id($GRP_ID = false) |
|
75 | + { |
|
76 | + if (! $GRP_ID) { |
|
77 | + throw new EE_Error( |
|
78 | + esc_html__( |
|
79 | + 'Missing required value for the message template group id', |
|
80 | + 'event_espresso' |
|
81 | + ) |
|
82 | + ); |
|
83 | + } |
|
84 | + $this->set('GRP_ID', $GRP_ID); |
|
85 | + } |
|
86 | + |
|
87 | + |
|
88 | + /** |
|
89 | + * get Group ID |
|
90 | + * |
|
91 | + * @access public |
|
92 | + * @return int |
|
93 | + * @throws EE_Error |
|
94 | + */ |
|
95 | + public function GRP_ID() |
|
96 | + { |
|
97 | + return $this->get('GRP_ID'); |
|
98 | + } |
|
99 | + |
|
100 | + |
|
101 | + /** |
|
102 | + * get User ID |
|
103 | + * |
|
104 | + * @access public |
|
105 | + * @return int |
|
106 | + * @throws EE_Error |
|
107 | + */ |
|
108 | + public function user() |
|
109 | + { |
|
110 | + $user_id = $this->get('MTP_user_id'); |
|
111 | + return empty($user_id) ? get_current_user_id() : $user_id; |
|
112 | + } |
|
113 | + |
|
114 | + |
|
115 | + /** |
|
116 | + * Wrapper for the user function() (preserve backward compat) |
|
117 | + * |
|
118 | + * @since 4.5.0 |
|
119 | + * @return int |
|
120 | + * @throws EE_Error |
|
121 | + */ |
|
122 | + public function wp_user() |
|
123 | + { |
|
124 | + return $this->user(); |
|
125 | + } |
|
126 | + |
|
127 | + |
|
128 | + /** |
|
129 | + * This simply returns a count of all related events to this message template group |
|
130 | + * |
|
131 | + * @return int |
|
132 | + */ |
|
133 | + public function count_events() |
|
134 | + { |
|
135 | + return $this->count_related('Event'); |
|
136 | + } |
|
137 | + |
|
138 | + |
|
139 | + /** |
|
140 | + * returns the name saved in the db for this template |
|
141 | + * |
|
142 | + * @return string |
|
143 | + * @throws EE_Error |
|
144 | + */ |
|
145 | + public function name() |
|
146 | + { |
|
147 | + return $this->get('MTP_name'); |
|
148 | + } |
|
149 | + |
|
150 | + |
|
151 | + /** |
|
152 | + * Returns the description saved in the db for this template group |
|
153 | + * |
|
154 | + * @return string |
|
155 | + * @throws EE_Error |
|
156 | + */ |
|
157 | + public function description() |
|
158 | + { |
|
159 | + return $this->get('MTP_description'); |
|
160 | + } |
|
161 | + |
|
162 | + |
|
163 | + /** |
|
164 | + * returns all related EE_Message_Template objects |
|
165 | + * |
|
166 | + * @param array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md |
|
167 | + * @return EE_Message_Template[] |
|
168 | + * @throws EE_Error |
|
169 | + */ |
|
170 | + public function message_templates($query_params = array()) |
|
171 | + { |
|
172 | + return $this->get_many_related('Message_Template', $query_params); |
|
173 | + } |
|
174 | + |
|
175 | + |
|
176 | + /** |
|
177 | + * get Message Messenger |
|
178 | + * |
|
179 | + * @access public |
|
180 | + * @return string |
|
181 | + * @throws EE_Error |
|
182 | + */ |
|
183 | + public function messenger() |
|
184 | + { |
|
185 | + return $this->get('MTP_messenger'); |
|
186 | + } |
|
187 | + |
|
188 | + |
|
189 | + /** |
|
190 | + * get Message Messenger OBJECT |
|
191 | + * If an attempt to get the corresponding messenger object fails, then we set this message |
|
192 | + * template group to inactive, and save to db. Then return null so client code can handle |
|
193 | + * appropriately. |
|
194 | + * |
|
195 | + * @return EE_messenger |
|
196 | + * @throws EE_Error |
|
197 | + */ |
|
198 | + public function messenger_obj() |
|
199 | + { |
|
200 | + $messenger = $this->messenger(); |
|
201 | + try { |
|
202 | + $messenger = EEH_MSG_Template::messenger_obj($messenger); |
|
203 | + } catch (EE_Error $e) { |
|
204 | + // if an exception was thrown then let's deactivate this message template group because it means there is no |
|
205 | + // class for this messenger in this group. |
|
206 | + $this->set('MTP_is_active', false); |
|
207 | + $this->save(); |
|
208 | + return null; |
|
209 | + } |
|
210 | + return $messenger; |
|
211 | + } |
|
212 | + |
|
213 | + |
|
214 | + /** |
|
215 | + * get Message Type |
|
216 | + * |
|
217 | + * @access public |
|
218 | + * @return string |
|
219 | + * @throws EE_Error |
|
220 | + */ |
|
221 | + public function message_type() |
|
222 | + { |
|
223 | + return $this->get('MTP_message_type'); |
|
224 | + } |
|
225 | + |
|
226 | + |
|
227 | + /** |
|
228 | + * get Message type OBJECT |
|
229 | + * If an attempt to get the corresponding message type object fails, then we set this message |
|
230 | + * template group to inactive, and save to db. Then return null so client code can handle |
|
231 | + * appropriately. |
|
232 | + * |
|
233 | + * @throws EE_Error |
|
234 | + * @return EE_message_type|false if exception thrown. |
|
235 | + */ |
|
236 | + public function message_type_obj() |
|
237 | + { |
|
238 | + $message_type = $this->message_type(); |
|
239 | + try { |
|
240 | + $message_type = EEH_MSG_Template::message_type_obj($message_type); |
|
241 | + } catch (EE_Error $e) { |
|
242 | + // if an exception was thrown then let's deactivate this message template group because it means there is no |
|
243 | + // class for the message type in this group. |
|
244 | + $this->set('MTP_is_active', false); |
|
245 | + $this->save(); |
|
246 | + return null; |
|
247 | + } |
|
248 | + return $message_type; |
|
249 | + } |
|
250 | + |
|
251 | + |
|
252 | + /** |
|
253 | + * @return array |
|
254 | + * @throws EE_Error |
|
255 | + */ |
|
256 | + public function contexts_config() |
|
257 | + { |
|
258 | + return $this->message_type_obj()->get_contexts(); |
|
259 | + } |
|
260 | + |
|
261 | + |
|
262 | + /** |
|
263 | + * This returns the context_label for contexts as set in the message type object |
|
264 | + * Note this is an array with singular and plural keys |
|
265 | + * |
|
266 | + * @access public |
|
267 | + * @return array labels for "context" |
|
268 | + * @throws EE_Error |
|
269 | + */ |
|
270 | + public function context_label() |
|
271 | + { |
|
272 | + $obj = $this->message_type_obj(); |
|
273 | + return $obj->get_context_label(); |
|
274 | + } |
|
275 | + |
|
276 | + |
|
277 | + /** |
|
278 | + * This returns an array of EE_Message_Template objects indexed by context and field. |
|
279 | + * |
|
280 | + * @return array () |
|
281 | + * @throws EE_Error |
|
282 | + */ |
|
283 | + public function context_templates() |
|
284 | + { |
|
285 | + $mtps_arr = array(); |
|
286 | + $mtps = $this->get_many_related('Message_Template'); |
|
287 | + if (empty($mtps)) { |
|
288 | + return array(); |
|
289 | + } |
|
290 | + // note contexts could have CHECKBOX fields per context. So we return the objects indexed by context AND field. |
|
291 | + foreach ($mtps as $mtp) { |
|
292 | + $mtps_arr[ $mtp->get('MTP_context') ][ $mtp->get('MTP_template_field') ] = $mtp; |
|
293 | + } |
|
294 | + return $mtps_arr; |
|
295 | + } |
|
296 | + |
|
297 | + |
|
298 | + /** |
|
299 | + * this returns if the template group this template belongs to is global |
|
300 | + * |
|
301 | + * @return bool true if it is, false if it isn't |
|
302 | + * @throws EE_Error |
|
303 | + */ |
|
304 | + public function is_global() |
|
305 | + { |
|
306 | + return $this->get('MTP_is_global'); |
|
307 | + } |
|
308 | + |
|
309 | + |
|
310 | + /** |
|
311 | + * this returns if the template group this template belongs to is active (i.e. turned "on" or not) |
|
312 | + * |
|
313 | + * @return bool true if it is, false if it isn't |
|
314 | + * @throws EE_Error |
|
315 | + */ |
|
316 | + public function is_active() |
|
317 | + { |
|
318 | + return $this->get('MTP_is_active'); |
|
319 | + } |
|
320 | + |
|
321 | + |
|
322 | + /** |
|
323 | + * This will return an array of shortcodes => labels from the messenger and message_type objects associated with |
|
324 | + * this template. |
|
325 | + * |
|
326 | + * @since 4.3.0 |
|
327 | + * @uses EEH_MSG_Template::get_shortcodes() |
|
328 | + * @param string $context what context we're going to return shortcodes for |
|
329 | + * @param array $fields what fields we're returning valid shortcodes for. If empty then we assume all fields are |
|
330 | + * to be returned. |
|
331 | + * @param bool $merged If TRUE then we don't return shortcodes indexed by field but instead an array of the |
|
332 | + * unique shortcodes for all the given (or all) fields. |
|
333 | + * @return mixed (array|bool) an array of shortcodes in the format array( '[shortcode] => 'label') OR FALSE if no |
|
334 | + * shortcodes found. |
|
335 | + * @throws EE_Error |
|
336 | + */ |
|
337 | + public function get_shortcodes($context, $fields = array(), $merged = false) |
|
338 | + { |
|
339 | + $messenger = $this->messenger(); |
|
340 | + $message_type = $this->message_type(); |
|
341 | + return EEH_MSG_Template::get_shortcodes($message_type, $messenger, $fields, $context, $merged); |
|
342 | + } |
|
343 | + |
|
344 | + |
|
345 | + /** |
|
346 | + * This just gets the template pack name assigned to this message template group. If it's not set, then we just |
|
347 | + * use the default template pack. |
|
348 | + * |
|
349 | + * @since 4.5.0 |
|
350 | + * @return string |
|
351 | + * @throws EE_Error |
|
352 | + */ |
|
353 | + public function get_template_pack_name() |
|
354 | + { |
|
355 | + return $this->get_extra_meta('MTP_template_pack', true, 'default'); |
|
356 | + } |
|
357 | + |
|
358 | + |
|
359 | + /** |
|
360 | + * This returns the specific template pack object referenced by the template pack name attached to this message |
|
361 | + * template group. If no template pack is assigned then the default template pack is retrieved. |
|
362 | + * |
|
363 | + * @since 4.5.0 |
|
364 | + * @return EE_Messages_Template_Pack |
|
365 | + * @throws EE_Error |
|
366 | + * @throws InvalidArgumentException |
|
367 | + * @throws ReflectionException |
|
368 | + * @throws \EventEspresso\core\exceptions\InvalidDataTypeException |
|
369 | + * @throws \EventEspresso\core\exceptions\InvalidInterfaceException |
|
370 | + */ |
|
371 | + public function get_template_pack() |
|
372 | + { |
|
373 | + $pack_name = $this->get_template_pack_name(); |
|
374 | + EE_Registry::instance()->load_helper('MSG_Template'); |
|
375 | + return EEH_MSG_Template::get_template_pack($pack_name); |
|
376 | + } |
|
377 | + |
|
378 | + |
|
379 | + /** |
|
380 | + * This retrieves the template variation assigned to this message template group. If it's not set, then we just |
|
381 | + * use the default template variation. |
|
382 | + * |
|
383 | + * @since 4.5.0 |
|
384 | + * @return string |
|
385 | + * @throws EE_Error |
|
386 | + */ |
|
387 | + public function get_template_pack_variation() |
|
388 | + { |
|
389 | + return $this->get_extra_meta('MTP_variation', true, 'default'); |
|
390 | + } |
|
391 | + |
|
392 | + |
|
393 | + /** |
|
394 | + * This just sets the template pack name attached to this message template group. |
|
395 | + * |
|
396 | + * @since 4.5.0 |
|
397 | + * @param string $template_pack_name What message template pack is assigned. |
|
398 | + * @return int |
|
399 | + * @throws EE_Error |
|
400 | + */ |
|
401 | + public function set_template_pack_name($template_pack_name) |
|
402 | + { |
|
403 | + return $this->update_extra_meta('MTP_template_pack', $template_pack_name); |
|
404 | + } |
|
405 | + |
|
406 | + |
|
407 | + /** |
|
408 | + * This just sets the template pack variation attached to this message template group. |
|
409 | + * |
|
410 | + * @since 4.5.0 |
|
411 | + * @param string $variation What variation is being set on the message template group. |
|
412 | + * @return int |
|
413 | + * @throws EE_Error |
|
414 | + */ |
|
415 | + public function set_template_pack_variation($variation) |
|
416 | + { |
|
417 | + return $this->update_extra_meta('MTP_variation', $variation); |
|
418 | + } |
|
419 | + |
|
420 | + |
|
421 | + /** |
|
422 | + * Deactivates the given context. |
|
423 | + * |
|
424 | + * @param $context |
|
425 | + * @return bool|int |
|
426 | + * @throws EE_Error |
|
427 | + * @throws InvalidIdentifierException |
|
428 | + */ |
|
429 | + public function deactivate_context($context) |
|
430 | + { |
|
431 | + $this->validate_context($context); |
|
432 | + return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, false); |
|
433 | + } |
|
434 | + |
|
435 | + |
|
436 | + /** |
|
437 | + * Activates the given context. |
|
438 | + * |
|
439 | + * @param $context |
|
440 | + * @return bool|int |
|
441 | + * @throws EE_Error |
|
442 | + * @throws InvalidIdentifierException |
|
443 | + */ |
|
444 | + public function activate_context($context) |
|
445 | + { |
|
446 | + $this->validate_context($context); |
|
447 | + return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true); |
|
448 | + } |
|
449 | + |
|
450 | + |
|
451 | + /** |
|
452 | + * Returns whether the context is active or not. |
|
453 | + * Note, this will default to true if the extra meta record doesn't exist. |
|
454 | + * Also, this does NOT account for whether the "To" field is empty or not. Some messengers may allow the "To" field |
|
455 | + * to be empty (@see EE_Messenger::allow_empty_to_field()) so an empty "To" field is not always an indicator of |
|
456 | + * whether a context is "active" or not. |
|
457 | + * |
|
458 | + * @param $context |
|
459 | + * @return bool |
|
460 | + * @throws EE_Error |
|
461 | + * @throws InvalidIdentifierException |
|
462 | + */ |
|
463 | + public function is_context_active($context) |
|
464 | + { |
|
465 | + $this->validate_context($context); |
|
466 | + return filter_var( |
|
467 | + $this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true, true), |
|
468 | + FILTER_VALIDATE_BOOLEAN |
|
469 | + ); |
|
470 | + } |
|
471 | + |
|
472 | + |
|
473 | + /** |
|
474 | + * Validates the incoming context to verify it matches a registered context for the related message type. |
|
475 | + * |
|
476 | + * @param string $context |
|
477 | + * @throws EE_Error |
|
478 | + * @throws InvalidIdentifierException |
|
479 | + */ |
|
480 | + public function validate_context($context) |
|
481 | + { |
|
482 | + $contexts = $this->contexts_config(); |
|
483 | + if (! isset($contexts[ $context ])) { |
|
484 | + throw new InvalidIdentifierException( |
|
485 | + '', |
|
486 | + '', |
|
487 | + sprintf( |
|
488 | + esc_html__( |
|
489 | + 'An invalid string identifying a context was provided. "%1$s" was received, and one of "%2$s" was expected.', |
|
490 | + 'event_espresso' |
|
491 | + ), |
|
492 | + $context, |
|
493 | + implode(',', array_keys($contexts)) |
|
494 | + ) |
|
495 | + ); |
|
496 | + } |
|
497 | + } |
|
498 | 498 | } |
@@ -44,7 +44,7 @@ |
||
44 | 44 | { |
45 | 45 | $id = $this->get('STS_ID'); |
46 | 46 | $code = EEM_Status::instance()->localized_status(array($id => $this->get('STS_code')), $plural, $schema); |
47 | - return $code[ $id ]; |
|
47 | + return $code[$id]; |
|
48 | 48 | } |
49 | 49 | |
50 | 50 |
@@ -11,142 +11,142 @@ |
||
11 | 11 | */ |
12 | 12 | class EE_Status extends EE_Base_Class |
13 | 13 | { |
14 | - /** |
|
15 | - * @param array $props_n_values |
|
16 | - * @return EE_Status |
|
17 | - */ |
|
18 | - public static function new_instance($props_n_values = array()) |
|
19 | - { |
|
20 | - $has_object = parent::_check_for_object($props_n_values, __CLASS__); |
|
21 | - return $has_object ? $has_object : new self($props_n_values); |
|
22 | - } |
|
23 | - |
|
24 | - |
|
25 | - /** |
|
26 | - * @param array $props_n_values |
|
27 | - * @return EE_Status |
|
28 | - */ |
|
29 | - public static function new_instance_from_db($props_n_values = array()) |
|
30 | - { |
|
31 | - return new self($props_n_values, true); |
|
32 | - } |
|
33 | - |
|
34 | - |
|
35 | - /** |
|
36 | - * Gets code |
|
37 | - * |
|
38 | - * @param bool $plural |
|
39 | - * @param string $schema |
|
40 | - * @return string |
|
41 | - */ |
|
42 | - public function code($plural = false, $schema = 'upper') |
|
43 | - { |
|
44 | - $id = $this->get('STS_ID'); |
|
45 | - $code = EEM_Status::instance()->localized_status(array($id => $this->get('STS_code')), $plural, $schema); |
|
46 | - return $code[ $id ]; |
|
47 | - } |
|
48 | - |
|
49 | - |
|
50 | - /** |
|
51 | - * Sets code |
|
52 | - * |
|
53 | - * @param string $code |
|
54 | - * @return boolean |
|
55 | - */ |
|
56 | - public function set_code($code) |
|
57 | - { |
|
58 | - $this->set('STS_code', $code); |
|
59 | - } |
|
60 | - |
|
61 | - |
|
62 | - /** |
|
63 | - * Gets desc |
|
64 | - * |
|
65 | - * @return string |
|
66 | - */ |
|
67 | - public function desc() |
|
68 | - { |
|
69 | - return $this->get('STS_desc'); |
|
70 | - } |
|
71 | - |
|
72 | - |
|
73 | - /** |
|
74 | - * Sets desc |
|
75 | - * |
|
76 | - * @param string $desc |
|
77 | - * @return boolean |
|
78 | - */ |
|
79 | - public function set_desc($desc) |
|
80 | - { |
|
81 | - $this->set('STS_desc', $desc); |
|
82 | - } |
|
83 | - |
|
84 | - |
|
85 | - /** |
|
86 | - * Gets type |
|
87 | - * |
|
88 | - * @return string |
|
89 | - */ |
|
90 | - public function type() |
|
91 | - { |
|
92 | - return $this->get('STS_type'); |
|
93 | - } |
|
94 | - |
|
95 | - |
|
96 | - /** |
|
97 | - * Sets type |
|
98 | - * |
|
99 | - * @param string $type |
|
100 | - * @return boolean |
|
101 | - */ |
|
102 | - public function set_type($type) |
|
103 | - { |
|
104 | - $this->set('STS_type', $type); |
|
105 | - } |
|
106 | - |
|
107 | - |
|
108 | - /** |
|
109 | - * Gets can_edit |
|
110 | - * |
|
111 | - * @return boolean |
|
112 | - */ |
|
113 | - public function can_edit() |
|
114 | - { |
|
115 | - return $this->get('STS_can_edit'); |
|
116 | - } |
|
117 | - |
|
118 | - |
|
119 | - /** |
|
120 | - * Sets can_edit |
|
121 | - * |
|
122 | - * @param boolean $can_edit |
|
123 | - * @return boolean |
|
124 | - */ |
|
125 | - public function set_can_edit($can_edit) |
|
126 | - { |
|
127 | - $this->set('STS_can_edit', $can_edit); |
|
128 | - } |
|
129 | - |
|
130 | - |
|
131 | - /** |
|
132 | - * Gets open |
|
133 | - * |
|
134 | - * @return boolean |
|
135 | - */ |
|
136 | - public function open() |
|
137 | - { |
|
138 | - return $this->get('STS_open'); |
|
139 | - } |
|
140 | - |
|
141 | - |
|
142 | - /** |
|
143 | - * Sets open |
|
144 | - * |
|
145 | - * @param boolean $open |
|
146 | - * @return boolean |
|
147 | - */ |
|
148 | - public function set_open($open) |
|
149 | - { |
|
150 | - $this->set('STS_open', $open); |
|
151 | - } |
|
14 | + /** |
|
15 | + * @param array $props_n_values |
|
16 | + * @return EE_Status |
|
17 | + */ |
|
18 | + public static function new_instance($props_n_values = array()) |
|
19 | + { |
|
20 | + $has_object = parent::_check_for_object($props_n_values, __CLASS__); |
|
21 | + return $has_object ? $has_object : new self($props_n_values); |
|
22 | + } |
|
23 | + |
|
24 | + |
|
25 | + /** |
|
26 | + * @param array $props_n_values |
|
27 | + * @return EE_Status |
|
28 | + */ |
|
29 | + public static function new_instance_from_db($props_n_values = array()) |
|
30 | + { |
|
31 | + return new self($props_n_values, true); |
|
32 | + } |
|
33 | + |
|
34 | + |
|
35 | + /** |
|
36 | + * Gets code |
|
37 | + * |
|
38 | + * @param bool $plural |
|
39 | + * @param string $schema |
|
40 | + * @return string |
|
41 | + */ |
|
42 | + public function code($plural = false, $schema = 'upper') |
|
43 | + { |
|
44 | + $id = $this->get('STS_ID'); |
|
45 | + $code = EEM_Status::instance()->localized_status(array($id => $this->get('STS_code')), $plural, $schema); |
|
46 | + return $code[ $id ]; |
|
47 | + } |
|
48 | + |
|
49 | + |
|
50 | + /** |
|
51 | + * Sets code |
|
52 | + * |
|
53 | + * @param string $code |
|
54 | + * @return boolean |
|
55 | + */ |
|
56 | + public function set_code($code) |
|
57 | + { |
|
58 | + $this->set('STS_code', $code); |
|
59 | + } |
|
60 | + |
|
61 | + |
|
62 | + /** |
|
63 | + * Gets desc |
|
64 | + * |
|
65 | + * @return string |
|
66 | + */ |
|
67 | + public function desc() |
|
68 | + { |
|
69 | + return $this->get('STS_desc'); |
|
70 | + } |
|
71 | + |
|
72 | + |
|
73 | + /** |
|
74 | + * Sets desc |
|
75 | + * |
|
76 | + * @param string $desc |
|
77 | + * @return boolean |
|
78 | + */ |
|
79 | + public function set_desc($desc) |
|
80 | + { |
|
81 | + $this->set('STS_desc', $desc); |
|
82 | + } |
|
83 | + |
|
84 | + |
|
85 | + /** |
|
86 | + * Gets type |
|
87 | + * |
|
88 | + * @return string |
|
89 | + */ |
|
90 | + public function type() |
|
91 | + { |
|
92 | + return $this->get('STS_type'); |
|
93 | + } |
|
94 | + |
|
95 | + |
|
96 | + /** |
|
97 | + * Sets type |
|
98 | + * |
|
99 | + * @param string $type |
|
100 | + * @return boolean |
|
101 | + */ |
|
102 | + public function set_type($type) |
|
103 | + { |
|
104 | + $this->set('STS_type', $type); |
|
105 | + } |
|
106 | + |
|
107 | + |
|
108 | + /** |
|
109 | + * Gets can_edit |
|
110 | + * |
|
111 | + * @return boolean |
|
112 | + */ |
|
113 | + public function can_edit() |
|
114 | + { |
|
115 | + return $this->get('STS_can_edit'); |
|
116 | + } |
|
117 | + |
|
118 | + |
|
119 | + /** |
|
120 | + * Sets can_edit |
|
121 | + * |
|
122 | + * @param boolean $can_edit |
|
123 | + * @return boolean |
|
124 | + */ |
|
125 | + public function set_can_edit($can_edit) |
|
126 | + { |
|
127 | + $this->set('STS_can_edit', $can_edit); |
|
128 | + } |
|
129 | + |
|
130 | + |
|
131 | + /** |
|
132 | + * Gets open |
|
133 | + * |
|
134 | + * @return boolean |
|
135 | + */ |
|
136 | + public function open() |
|
137 | + { |
|
138 | + return $this->get('STS_open'); |
|
139 | + } |
|
140 | + |
|
141 | + |
|
142 | + /** |
|
143 | + * Sets open |
|
144 | + * |
|
145 | + * @param boolean $open |
|
146 | + * @return boolean |
|
147 | + */ |
|
148 | + public function set_open($open) |
|
149 | + { |
|
150 | + $this->set('STS_open', $open); |
|
151 | + } |
|
152 | 152 | } |
@@ -69,13 +69,13 @@ discard block |
||
69 | 69 | // SplPriorityQueue doesn't play nice with multiple items having the same priority |
70 | 70 | // so if the incoming priority is already occupied, then let's increment it by one, |
71 | 71 | // and then pass everything back into this method and try again with the new priority |
72 | - if (isset($this->priorities[ $priority ])) { |
|
72 | + if (isset($this->priorities[$priority])) { |
|
73 | 73 | $priority++; |
74 | 74 | $this->add_template_part($name, $label, $template, $priority); |
75 | 75 | return; |
76 | 76 | } |
77 | 77 | // kk now we can mark this priority as being occupied |
78 | - $this->priorities[ $priority ] = true; |
|
78 | + $this->priorities[$priority] = true; |
|
79 | 79 | // create the template part and add to the queue |
80 | 80 | $this->template_parts->insert( |
81 | 81 | new EE_Template_Part($name, $label, $template, $priority), |
@@ -110,7 +110,7 @@ discard block |
||
110 | 110 | $this->template_parts->next(); |
111 | 111 | } |
112 | 112 | // now simply add our three strings of content together |
113 | - return $this->before_event_content . $this->event_content . $this->after_event_content; |
|
113 | + return $this->before_event_content.$this->event_content.$this->after_event_content; |
|
114 | 114 | } |
115 | 115 | |
116 | 116 | |
@@ -169,10 +169,10 @@ discard block |
||
169 | 169 | // loop through template parts and add template content |
170 | 170 | while ($this->template_parts->valid()) { |
171 | 171 | $event_archive_display_order .= EEH_HTML::li( |
172 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') . |
|
173 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') . |
|
172 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2'). |
|
173 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2'). |
|
174 | 174 | $this->template_parts->current()->label(), |
175 | - $list_item_css_id_prefix . $this->template_parts->current()->name(), |
|
175 | + $list_item_css_id_prefix.$this->template_parts->current()->name(), |
|
176 | 176 | $list_item_css_class |
177 | 177 | ); |
178 | 178 | $this->template_parts->next(); |
@@ -13,195 +13,195 @@ |
||
13 | 13 | */ |
14 | 14 | class EE_Template_Part_Manager |
15 | 15 | { |
16 | - /** |
|
17 | - * @param EE_Template_Part_PriorityQueue $template_parts |
|
18 | - */ |
|
19 | - protected $template_parts; |
|
20 | - |
|
21 | - /** |
|
22 | - * @param array $priorities |
|
23 | - */ |
|
24 | - protected $priorities = array(); |
|
25 | - |
|
26 | - /** |
|
27 | - * @param int $event_desc_priority |
|
28 | - */ |
|
29 | - protected $event_desc_priority; |
|
30 | - |
|
31 | - /** |
|
32 | - * @param string $before_event_content |
|
33 | - */ |
|
34 | - protected $before_event_content; |
|
35 | - |
|
36 | - /** |
|
37 | - * @param string $event_content |
|
38 | - */ |
|
39 | - protected $event_content; |
|
40 | - |
|
41 | - /** |
|
42 | - * @param string $after_event_content |
|
43 | - */ |
|
44 | - protected $after_event_content; |
|
45 | - |
|
46 | - |
|
47 | - /** |
|
48 | - * class constructor |
|
49 | - */ |
|
50 | - public function __construct() |
|
51 | - { |
|
52 | - $this->template_parts = new EE_Template_Part_PriorityQueue(); |
|
53 | - } |
|
54 | - |
|
55 | - |
|
56 | - /** |
|
57 | - * add_template_part |
|
58 | - * |
|
59 | - * used for setting the details about a particular template part |
|
60 | - * |
|
61 | - * @param string $name - just a simple string identifier - do NOT use 'event' |
|
62 | - * @param string $label - template part label displayed in admin |
|
63 | - * @param string $template - name or path of template to be used by EEH_Template::locate_template() |
|
64 | - * @param int $priority - order in which template parts should be applied |
|
65 | - */ |
|
66 | - public function add_template_part($name, $label, $template, $priority) |
|
67 | - { |
|
68 | - // SplPriorityQueue doesn't play nice with multiple items having the same priority |
|
69 | - // so if the incoming priority is already occupied, then let's increment it by one, |
|
70 | - // and then pass everything back into this method and try again with the new priority |
|
71 | - if (isset($this->priorities[ $priority ])) { |
|
72 | - $priority++; |
|
73 | - $this->add_template_part($name, $label, $template, $priority); |
|
74 | - return; |
|
75 | - } |
|
76 | - // kk now we can mark this priority as being occupied |
|
77 | - $this->priorities[ $priority ] = true; |
|
78 | - // create the template part and add to the queue |
|
79 | - $this->template_parts->insert( |
|
80 | - new EE_Template_Part($name, $label, $template, $priority), |
|
81 | - $priority |
|
82 | - ); |
|
83 | - if ($name === 'event') { |
|
84 | - $this->event_desc_priority = $priority; |
|
85 | - } |
|
86 | - } |
|
87 | - |
|
88 | - |
|
89 | - /** |
|
90 | - * apply_template_part_filters |
|
91 | - * |
|
92 | - * adds template parts to the supplied content |
|
93 | - * according to the details set when the template parts were added |
|
94 | - * |
|
95 | - * @access public |
|
96 | - * @param string $content |
|
97 | - * @return string |
|
98 | - */ |
|
99 | - public function apply_template_part_filters($content = '') |
|
100 | - { |
|
101 | - $this->template_parts->rewind(); |
|
102 | - // loop through template parts and position content |
|
103 | - while ($this->template_parts->valid()) { |
|
104 | - $this->_position_template_part( |
|
105 | - $content, |
|
106 | - $this->template_parts->current()->template(), |
|
107 | - $this->template_parts->current()->priority() |
|
108 | - ); |
|
109 | - $this->template_parts->next(); |
|
110 | - } |
|
111 | - // now simply add our three strings of content together |
|
112 | - return $this->before_event_content . $this->event_content . $this->after_event_content; |
|
113 | - } |
|
114 | - |
|
115 | - |
|
116 | - /** |
|
117 | - * position_template_part |
|
118 | - * |
|
119 | - * based on the priority of the incoming template part |
|
120 | - * relative to the known event description template part priority, |
|
121 | - * this method will assign template parts to one of the following: |
|
122 | - * $this->before_event_content |
|
123 | - * $this->event_content |
|
124 | - * $this->after_event_content |
|
125 | - * |
|
126 | - * @access protected |
|
127 | - * @param string $content |
|
128 | - * @param string $template |
|
129 | - * @param int $priority |
|
130 | - * @return void |
|
131 | - */ |
|
132 | - protected function _position_template_part($content, $template, $priority) |
|
133 | - { |
|
134 | - // Event Description content is the actual incoming content itself |
|
135 | - if ($priority === $this->event_desc_priority) { |
|
136 | - $this->event_content = $content; |
|
137 | - } elseif ($priority < $this->event_desc_priority) { |
|
138 | - // everything BEFORE the Event Description |
|
139 | - $this->before_event_content .= EEH_Template::locate_template($template); |
|
140 | - } elseif ($priority > $this->event_desc_priority) { |
|
141 | - // everything AFTER the Event Description |
|
142 | - $this->after_event_content .= EEH_Template::locate_template($template); |
|
143 | - } |
|
144 | - } |
|
145 | - |
|
146 | - |
|
147 | - /** |
|
148 | - * generate_sortable_list_of_template_parts |
|
149 | - * |
|
150 | - * creates an HTML list (<ul>) with list items (<li>) for each template part, |
|
151 | - * in a format that can be used as a sortable list in the admin |
|
152 | - * |
|
153 | - * @access public |
|
154 | - * @param string $list_css_id |
|
155 | - * @param string $list_css_class |
|
156 | - * @param string $list_item_css_class |
|
157 | - * @param string $list_item_css_id_prefix |
|
158 | - * @return string |
|
159 | - */ |
|
160 | - public function generate_sortable_list_of_template_parts( |
|
161 | - $list_css_id = '', |
|
162 | - $list_css_class = '', |
|
163 | - $list_item_css_class = '', |
|
164 | - $list_item_css_id_prefix = '' |
|
165 | - ) { |
|
166 | - $event_archive_display_order = EEH_HTML::ul($list_css_id, $list_css_class); |
|
167 | - $this->template_parts->rewind(); |
|
168 | - // loop through template parts and add template content |
|
169 | - while ($this->template_parts->valid()) { |
|
170 | - $event_archive_display_order .= EEH_HTML::li( |
|
171 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') . |
|
172 | - EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') . |
|
173 | - $this->template_parts->current()->label(), |
|
174 | - $list_item_css_id_prefix . $this->template_parts->current()->name(), |
|
175 | - $list_item_css_class |
|
176 | - ); |
|
177 | - $this->template_parts->next(); |
|
178 | - } |
|
179 | - $event_archive_display_order .= EEH_HTML::ulx(); |
|
180 | - return $event_archive_display_order; |
|
181 | - } |
|
182 | - |
|
183 | - |
|
184 | - /** |
|
185 | - * display_template_parts |
|
186 | - * |
|
187 | - * just for debugging purposes |
|
188 | - * |
|
189 | - * @access public |
|
190 | - * @return void |
|
191 | - */ |
|
192 | - public function display_template_parts() |
|
193 | - { |
|
194 | - if (WP_DEBUG) { |
|
195 | - $this->template_parts->rewind(); |
|
196 | - while ($this->template_parts->valid()) { |
|
197 | - EEH_Debug_Tools::printr( |
|
198 | - $this->template_parts->current(), |
|
199 | - 'template_part', |
|
200 | - __FILE__, |
|
201 | - __LINE__ |
|
202 | - ); |
|
203 | - $this->template_parts->next(); |
|
204 | - } |
|
205 | - } |
|
206 | - } |
|
16 | + /** |
|
17 | + * @param EE_Template_Part_PriorityQueue $template_parts |
|
18 | + */ |
|
19 | + protected $template_parts; |
|
20 | + |
|
21 | + /** |
|
22 | + * @param array $priorities |
|
23 | + */ |
|
24 | + protected $priorities = array(); |
|
25 | + |
|
26 | + /** |
|
27 | + * @param int $event_desc_priority |
|
28 | + */ |
|
29 | + protected $event_desc_priority; |
|
30 | + |
|
31 | + /** |
|
32 | + * @param string $before_event_content |
|
33 | + */ |
|
34 | + protected $before_event_content; |
|
35 | + |
|
36 | + /** |
|
37 | + * @param string $event_content |
|
38 | + */ |
|
39 | + protected $event_content; |
|
40 | + |
|
41 | + /** |
|
42 | + * @param string $after_event_content |
|
43 | + */ |
|
44 | + protected $after_event_content; |
|
45 | + |
|
46 | + |
|
47 | + /** |
|
48 | + * class constructor |
|
49 | + */ |
|
50 | + public function __construct() |
|
51 | + { |
|
52 | + $this->template_parts = new EE_Template_Part_PriorityQueue(); |
|
53 | + } |
|
54 | + |
|
55 | + |
|
56 | + /** |
|
57 | + * add_template_part |
|
58 | + * |
|
59 | + * used for setting the details about a particular template part |
|
60 | + * |
|
61 | + * @param string $name - just a simple string identifier - do NOT use 'event' |
|
62 | + * @param string $label - template part label displayed in admin |
|
63 | + * @param string $template - name or path of template to be used by EEH_Template::locate_template() |
|
64 | + * @param int $priority - order in which template parts should be applied |
|
65 | + */ |
|
66 | + public function add_template_part($name, $label, $template, $priority) |
|
67 | + { |
|
68 | + // SplPriorityQueue doesn't play nice with multiple items having the same priority |
|
69 | + // so if the incoming priority is already occupied, then let's increment it by one, |
|
70 | + // and then pass everything back into this method and try again with the new priority |
|
71 | + if (isset($this->priorities[ $priority ])) { |
|
72 | + $priority++; |
|
73 | + $this->add_template_part($name, $label, $template, $priority); |
|
74 | + return; |
|
75 | + } |
|
76 | + // kk now we can mark this priority as being occupied |
|
77 | + $this->priorities[ $priority ] = true; |
|
78 | + // create the template part and add to the queue |
|
79 | + $this->template_parts->insert( |
|
80 | + new EE_Template_Part($name, $label, $template, $priority), |
|
81 | + $priority |
|
82 | + ); |
|
83 | + if ($name === 'event') { |
|
84 | + $this->event_desc_priority = $priority; |
|
85 | + } |
|
86 | + } |
|
87 | + |
|
88 | + |
|
89 | + /** |
|
90 | + * apply_template_part_filters |
|
91 | + * |
|
92 | + * adds template parts to the supplied content |
|
93 | + * according to the details set when the template parts were added |
|
94 | + * |
|
95 | + * @access public |
|
96 | + * @param string $content |
|
97 | + * @return string |
|
98 | + */ |
|
99 | + public function apply_template_part_filters($content = '') |
|
100 | + { |
|
101 | + $this->template_parts->rewind(); |
|
102 | + // loop through template parts and position content |
|
103 | + while ($this->template_parts->valid()) { |
|
104 | + $this->_position_template_part( |
|
105 | + $content, |
|
106 | + $this->template_parts->current()->template(), |
|
107 | + $this->template_parts->current()->priority() |
|
108 | + ); |
|
109 | + $this->template_parts->next(); |
|
110 | + } |
|
111 | + // now simply add our three strings of content together |
|
112 | + return $this->before_event_content . $this->event_content . $this->after_event_content; |
|
113 | + } |
|
114 | + |
|
115 | + |
|
116 | + /** |
|
117 | + * position_template_part |
|
118 | + * |
|
119 | + * based on the priority of the incoming template part |
|
120 | + * relative to the known event description template part priority, |
|
121 | + * this method will assign template parts to one of the following: |
|
122 | + * $this->before_event_content |
|
123 | + * $this->event_content |
|
124 | + * $this->after_event_content |
|
125 | + * |
|
126 | + * @access protected |
|
127 | + * @param string $content |
|
128 | + * @param string $template |
|
129 | + * @param int $priority |
|
130 | + * @return void |
|
131 | + */ |
|
132 | + protected function _position_template_part($content, $template, $priority) |
|
133 | + { |
|
134 | + // Event Description content is the actual incoming content itself |
|
135 | + if ($priority === $this->event_desc_priority) { |
|
136 | + $this->event_content = $content; |
|
137 | + } elseif ($priority < $this->event_desc_priority) { |
|
138 | + // everything BEFORE the Event Description |
|
139 | + $this->before_event_content .= EEH_Template::locate_template($template); |
|
140 | + } elseif ($priority > $this->event_desc_priority) { |
|
141 | + // everything AFTER the Event Description |
|
142 | + $this->after_event_content .= EEH_Template::locate_template($template); |
|
143 | + } |
|
144 | + } |
|
145 | + |
|
146 | + |
|
147 | + /** |
|
148 | + * generate_sortable_list_of_template_parts |
|
149 | + * |
|
150 | + * creates an HTML list (<ul>) with list items (<li>) for each template part, |
|
151 | + * in a format that can be used as a sortable list in the admin |
|
152 | + * |
|
153 | + * @access public |
|
154 | + * @param string $list_css_id |
|
155 | + * @param string $list_css_class |
|
156 | + * @param string $list_item_css_class |
|
157 | + * @param string $list_item_css_id_prefix |
|
158 | + * @return string |
|
159 | + */ |
|
160 | + public function generate_sortable_list_of_template_parts( |
|
161 | + $list_css_id = '', |
|
162 | + $list_css_class = '', |
|
163 | + $list_item_css_class = '', |
|
164 | + $list_item_css_id_prefix = '' |
|
165 | + ) { |
|
166 | + $event_archive_display_order = EEH_HTML::ul($list_css_id, $list_css_class); |
|
167 | + $this->template_parts->rewind(); |
|
168 | + // loop through template parts and add template content |
|
169 | + while ($this->template_parts->valid()) { |
|
170 | + $event_archive_display_order .= EEH_HTML::li( |
|
171 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') . |
|
172 | + EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') . |
|
173 | + $this->template_parts->current()->label(), |
|
174 | + $list_item_css_id_prefix . $this->template_parts->current()->name(), |
|
175 | + $list_item_css_class |
|
176 | + ); |
|
177 | + $this->template_parts->next(); |
|
178 | + } |
|
179 | + $event_archive_display_order .= EEH_HTML::ulx(); |
|
180 | + return $event_archive_display_order; |
|
181 | + } |
|
182 | + |
|
183 | + |
|
184 | + /** |
|
185 | + * display_template_parts |
|
186 | + * |
|
187 | + * just for debugging purposes |
|
188 | + * |
|
189 | + * @access public |
|
190 | + * @return void |
|
191 | + */ |
|
192 | + public function display_template_parts() |
|
193 | + { |
|
194 | + if (WP_DEBUG) { |
|
195 | + $this->template_parts->rewind(); |
|
196 | + while ($this->template_parts->valid()) { |
|
197 | + EEH_Debug_Tools::printr( |
|
198 | + $this->template_parts->current(), |
|
199 | + 'template_part', |
|
200 | + __FILE__, |
|
201 | + __LINE__ |
|
202 | + ); |
|
203 | + $this->template_parts->next(); |
|
204 | + } |
|
205 | + } |
|
206 | + } |
|
207 | 207 | } |
@@ -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 | } |