@@ -122,7 +122,7 @@ discard block |
||
122 | 122 | $JSON_response['success'] = $this->success(); |
123 | 123 | } |
124 | 124 | // but if NO notices are set... at least set the "success" as a key so that the JS knows everything worked |
125 | - if (! isset($JSON_response['attention']) && ! isset($JSON_response['errors']) && ! isset($JSON_response['success'])) { |
|
125 | + if ( ! isset($JSON_response['attention']) && ! isset($JSON_response['errors']) && ! isset($JSON_response['success'])) { |
|
126 | 126 | $JSON_response['success'] = null; |
127 | 127 | } |
128 | 128 | // set redirect_url, IF it exists |
@@ -162,7 +162,7 @@ discard block |
||
162 | 162 | // and finally, add return_data array to main JSON response array, IF it contains anything |
163 | 163 | // why did we add some of the above properties to the return data array? |
164 | 164 | // because it is easier and cleaner in the Javascript to deal with this way |
165 | - if (! empty($return_data)) { |
|
165 | + if ( ! empty($return_data)) { |
|
166 | 166 | $JSON_response['return_data'] = $return_data; |
167 | 167 | } |
168 | 168 | // filter final array |
@@ -14,400 +14,400 @@ |
||
14 | 14 | */ |
15 | 15 | class EE_SPCO_JSON_Response |
16 | 16 | { |
17 | - /** |
|
18 | - * @var string |
|
19 | - */ |
|
20 | - protected $_errors = ''; |
|
21 | - |
|
22 | - /** |
|
23 | - * @var string |
|
24 | - */ |
|
25 | - protected $_unexpected_errors = ''; |
|
26 | - |
|
27 | - /** |
|
28 | - * @var string |
|
29 | - */ |
|
30 | - protected $_attention = ''; |
|
31 | - |
|
32 | - /** |
|
33 | - * @var string |
|
34 | - */ |
|
35 | - protected $_success = ''; |
|
36 | - |
|
37 | - /** |
|
38 | - * @var string |
|
39 | - */ |
|
40 | - protected $_plz_select_method_of_payment = ''; |
|
41 | - |
|
42 | - /** |
|
43 | - * @var string |
|
44 | - */ |
|
45 | - protected $_redirect_url = ''; |
|
46 | - |
|
47 | - /** |
|
48 | - * @var string |
|
49 | - */ |
|
50 | - protected $_registration_time_limit = ''; |
|
51 | - |
|
52 | - /** |
|
53 | - * @var string |
|
54 | - */ |
|
55 | - protected $_redirect_form = ''; |
|
56 | - |
|
57 | - /** |
|
58 | - * @var string |
|
59 | - */ |
|
60 | - protected $_reg_step_html = ''; |
|
61 | - |
|
62 | - /** |
|
63 | - * @var string |
|
64 | - */ |
|
65 | - protected $_method_of_payment = ''; |
|
66 | - |
|
67 | - /** |
|
68 | - * @var float |
|
69 | - */ |
|
70 | - protected $_payment_amount; |
|
71 | - |
|
72 | - /** |
|
73 | - * @var array |
|
74 | - */ |
|
75 | - protected $_return_data = array(); |
|
76 | - |
|
77 | - |
|
78 | - /** |
|
79 | - * @var array |
|
80 | - */ |
|
81 | - protected $_validation_rules = array(); |
|
82 | - |
|
83 | - |
|
84 | - /** |
|
85 | - * class constructor |
|
86 | - */ |
|
87 | - public function __construct() |
|
88 | - { |
|
89 | - } |
|
90 | - |
|
91 | - |
|
92 | - /** |
|
93 | - * __toString |
|
94 | - * |
|
95 | - * allows you to simply echo or print an EE_SPCO_JSON_Response object to produce a JSON encoded string |
|
96 | - * |
|
97 | - * @access public |
|
98 | - * @return string |
|
99 | - */ |
|
100 | - public function __toString() |
|
101 | - { |
|
102 | - $JSON_response = array(); |
|
103 | - // grab notices |
|
104 | - $notices = EE_Error::get_notices(false); |
|
105 | - $this->set_attention(isset($notices['attention']) ? $notices['attention'] : ''); |
|
106 | - $this->set_errors(isset($notices['errors']) ? $notices['errors'] : ''); |
|
107 | - $this->set_success(isset($notices['success']) ? $notices['success'] : ''); |
|
108 | - // add notices to JSON response, but only if they exist |
|
109 | - if ($this->attention()) { |
|
110 | - $JSON_response['attention'] = $this->attention(); |
|
111 | - } |
|
112 | - if ($this->errors()) { |
|
113 | - $JSON_response['errors'] = $this->errors(); |
|
114 | - } |
|
115 | - if ($this->unexpected_errors()) { |
|
116 | - $JSON_response['unexpected_errors'] = $this->unexpected_errors(); |
|
117 | - } |
|
118 | - if ($this->success()) { |
|
119 | - $JSON_response['success'] = $this->success(); |
|
120 | - } |
|
121 | - // but if NO notices are set... at least set the "success" as a key so that the JS knows everything worked |
|
122 | - if (! isset($JSON_response['attention']) && ! isset($JSON_response['errors']) && ! isset($JSON_response['success'])) { |
|
123 | - $JSON_response['success'] = null; |
|
124 | - } |
|
125 | - // set redirect_url, IF it exists |
|
126 | - if ($this->redirect_url()) { |
|
127 | - $JSON_response['redirect_url'] = $this->redirect_url(); |
|
128 | - } |
|
129 | - // set registration_time_limit, IF it exists |
|
130 | - if ($this->registration_time_limit()) { |
|
131 | - $JSON_response['registration_time_limit'] = $this->registration_time_limit(); |
|
132 | - } |
|
133 | - // set payment_amount, IF it exists |
|
134 | - if ($this->payment_amount() !== null) { |
|
135 | - $JSON_response['payment_amount'] = $this->payment_amount(); |
|
136 | - } |
|
137 | - // grab generic return data |
|
138 | - $return_data = $this->return_data(); |
|
139 | - // add billing form validation rules |
|
140 | - if ($this->validation_rules()) { |
|
141 | - $return_data['validation_rules'] = $this->validation_rules(); |
|
142 | - } |
|
143 | - // set reg_step_html, IF it exists |
|
144 | - if ($this->reg_step_html()) { |
|
145 | - $return_data['reg_step_html'] = $this->reg_step_html(); |
|
146 | - } |
|
147 | - // set method of payment, IF it exists |
|
148 | - if ($this->method_of_payment()) { |
|
149 | - $return_data['method_of_payment'] = $this->method_of_payment(); |
|
150 | - } |
|
151 | - // set "plz_select_method_of_payment" message, IF it exists |
|
152 | - if ($this->plz_select_method_of_payment()) { |
|
153 | - $return_data['plz_select_method_of_payment'] = $this->plz_select_method_of_payment(); |
|
154 | - } |
|
155 | - // set redirect_form, IF it exists |
|
156 | - if ($this->redirect_form()) { |
|
157 | - $return_data['redirect_form'] = $this->redirect_form(); |
|
158 | - } |
|
159 | - // and finally, add return_data array to main JSON response array, IF it contains anything |
|
160 | - // why did we add some of the above properties to the return data array? |
|
161 | - // because it is easier and cleaner in the Javascript to deal with this way |
|
162 | - if (! empty($return_data)) { |
|
163 | - $JSON_response['return_data'] = $return_data; |
|
164 | - } |
|
165 | - // filter final array |
|
166 | - $JSON_response = apply_filters('FHEE__EE_SPCO_JSON_Response___toString__JSON_response', $JSON_response); |
|
167 | - // return encoded array |
|
168 | - return (string) wp_json_encode($JSON_response); |
|
169 | - } |
|
170 | - |
|
171 | - |
|
172 | - /** |
|
173 | - * @param string $attention |
|
174 | - */ |
|
175 | - public function set_attention($attention) |
|
176 | - { |
|
177 | - $this->_attention = $attention; |
|
178 | - } |
|
179 | - |
|
180 | - |
|
181 | - /** |
|
182 | - * @return string |
|
183 | - */ |
|
184 | - public function attention() |
|
185 | - { |
|
186 | - return $this->_attention; |
|
187 | - } |
|
188 | - |
|
189 | - |
|
190 | - /** |
|
191 | - * @param string $errors |
|
192 | - */ |
|
193 | - public function set_errors($errors) |
|
194 | - { |
|
195 | - $this->_errors = $errors; |
|
196 | - } |
|
197 | - |
|
198 | - |
|
199 | - /** |
|
200 | - * @return string |
|
201 | - */ |
|
202 | - public function errors() |
|
203 | - { |
|
204 | - return $this->_errors; |
|
205 | - } |
|
206 | - |
|
207 | - |
|
208 | - /** |
|
209 | - * @return string |
|
210 | - */ |
|
211 | - public function unexpected_errors() |
|
212 | - { |
|
213 | - return $this->_unexpected_errors; |
|
214 | - } |
|
215 | - |
|
216 | - |
|
217 | - /** |
|
218 | - * @param string $unexpected_errors |
|
219 | - */ |
|
220 | - public function set_unexpected_errors($unexpected_errors) |
|
221 | - { |
|
222 | - $this->_unexpected_errors = $unexpected_errors; |
|
223 | - } |
|
224 | - |
|
225 | - |
|
226 | - /** |
|
227 | - * @param string $success |
|
228 | - */ |
|
229 | - public function set_success($success) |
|
230 | - { |
|
231 | - $this->_success = $success; |
|
232 | - } |
|
233 | - |
|
234 | - |
|
235 | - /** |
|
236 | - * @return string |
|
237 | - */ |
|
238 | - public function success() |
|
239 | - { |
|
240 | - return $this->_success; |
|
241 | - } |
|
242 | - |
|
243 | - |
|
244 | - /** |
|
245 | - * @param string $method_of_payment |
|
246 | - */ |
|
247 | - public function set_method_of_payment($method_of_payment) |
|
248 | - { |
|
249 | - $this->_method_of_payment = $method_of_payment; |
|
250 | - } |
|
251 | - |
|
252 | - |
|
253 | - /** |
|
254 | - * @return string |
|
255 | - */ |
|
256 | - public function method_of_payment() |
|
257 | - { |
|
258 | - return $this->_method_of_payment; |
|
259 | - } |
|
260 | - |
|
261 | - |
|
262 | - /** |
|
263 | - * @return float |
|
264 | - */ |
|
265 | - public function payment_amount() |
|
266 | - { |
|
267 | - return $this->_payment_amount; |
|
268 | - } |
|
269 | - |
|
270 | - |
|
271 | - /** |
|
272 | - * @param float $payment_amount |
|
273 | - * @throws EE_Error |
|
274 | - */ |
|
275 | - public function set_payment_amount($payment_amount) |
|
276 | - { |
|
277 | - $this->_payment_amount = (float) $payment_amount; |
|
278 | - } |
|
279 | - |
|
280 | - |
|
281 | - /** |
|
282 | - * @param string $next_step_html |
|
283 | - */ |
|
284 | - public function set_reg_step_html($next_step_html) |
|
285 | - { |
|
286 | - $this->_reg_step_html = $next_step_html; |
|
287 | - } |
|
288 | - |
|
289 | - |
|
290 | - /** |
|
291 | - * @return string |
|
292 | - */ |
|
293 | - public function reg_step_html() |
|
294 | - { |
|
295 | - return $this->_reg_step_html; |
|
296 | - } |
|
297 | - |
|
298 | - |
|
299 | - /** |
|
300 | - * @param string $redirect_form |
|
301 | - */ |
|
302 | - public function set_redirect_form($redirect_form) |
|
303 | - { |
|
304 | - $this->_redirect_form = $redirect_form; |
|
305 | - } |
|
306 | - |
|
307 | - |
|
308 | - /** |
|
309 | - * @return string |
|
310 | - */ |
|
311 | - public function redirect_form() |
|
312 | - { |
|
313 | - return ! empty($this->_redirect_form) ? $this->_redirect_form : false; |
|
314 | - } |
|
315 | - |
|
316 | - |
|
317 | - /** |
|
318 | - * @param string $plz_select_method_of_payment |
|
319 | - */ |
|
320 | - public function set_plz_select_method_of_payment($plz_select_method_of_payment) |
|
321 | - { |
|
322 | - $this->_plz_select_method_of_payment = $plz_select_method_of_payment; |
|
323 | - } |
|
324 | - |
|
325 | - |
|
326 | - /** |
|
327 | - * @return string |
|
328 | - */ |
|
329 | - public function plz_select_method_of_payment() |
|
330 | - { |
|
331 | - return $this->_plz_select_method_of_payment; |
|
332 | - } |
|
333 | - |
|
334 | - |
|
335 | - /** |
|
336 | - * @param string $redirect_url |
|
337 | - */ |
|
338 | - public function set_redirect_url($redirect_url) |
|
339 | - { |
|
340 | - $this->_redirect_url = $redirect_url; |
|
341 | - } |
|
342 | - |
|
343 | - |
|
344 | - /** |
|
345 | - * @return string |
|
346 | - */ |
|
347 | - public function redirect_url() |
|
348 | - { |
|
349 | - return $this->_redirect_url; |
|
350 | - } |
|
351 | - |
|
352 | - |
|
353 | - /** |
|
354 | - * @return string |
|
355 | - */ |
|
356 | - public function registration_time_limit() |
|
357 | - { |
|
358 | - return $this->_registration_time_limit; |
|
359 | - } |
|
360 | - |
|
361 | - |
|
362 | - /** |
|
363 | - * @param string $registration_time_limit |
|
364 | - */ |
|
365 | - public function set_registration_time_limit($registration_time_limit) |
|
366 | - { |
|
367 | - $this->_registration_time_limit = $registration_time_limit; |
|
368 | - } |
|
369 | - |
|
370 | - |
|
371 | - /** |
|
372 | - * @param array $return_data |
|
373 | - */ |
|
374 | - public function set_return_data($return_data) |
|
375 | - { |
|
376 | - $this->_return_data = array_merge($this->_return_data, $return_data); |
|
377 | - } |
|
378 | - |
|
379 | - |
|
380 | - /** |
|
381 | - * @return array |
|
382 | - */ |
|
383 | - public function return_data() |
|
384 | - { |
|
385 | - return $this->_return_data; |
|
386 | - } |
|
387 | - |
|
388 | - |
|
389 | - /** |
|
390 | - * @param array $validation_rules |
|
391 | - */ |
|
392 | - public function add_validation_rules(array $validation_rules = array()) |
|
393 | - { |
|
394 | - if (is_array($validation_rules) && ! empty($validation_rules)) { |
|
395 | - $this->_validation_rules = array_merge($this->_validation_rules, $validation_rules); |
|
396 | - } |
|
397 | - } |
|
398 | - |
|
399 | - |
|
400 | - /** |
|
401 | - * @return array | bool |
|
402 | - */ |
|
403 | - public function validation_rules() |
|
404 | - { |
|
405 | - return ! empty($this->_validation_rules) ? $this->_validation_rules : false; |
|
406 | - } |
|
407 | - |
|
408 | - |
|
409 | - public function echoAndExit() |
|
410 | - { |
|
411 | - exit($this->__toString()); |
|
412 | - } |
|
17 | + /** |
|
18 | + * @var string |
|
19 | + */ |
|
20 | + protected $_errors = ''; |
|
21 | + |
|
22 | + /** |
|
23 | + * @var string |
|
24 | + */ |
|
25 | + protected $_unexpected_errors = ''; |
|
26 | + |
|
27 | + /** |
|
28 | + * @var string |
|
29 | + */ |
|
30 | + protected $_attention = ''; |
|
31 | + |
|
32 | + /** |
|
33 | + * @var string |
|
34 | + */ |
|
35 | + protected $_success = ''; |
|
36 | + |
|
37 | + /** |
|
38 | + * @var string |
|
39 | + */ |
|
40 | + protected $_plz_select_method_of_payment = ''; |
|
41 | + |
|
42 | + /** |
|
43 | + * @var string |
|
44 | + */ |
|
45 | + protected $_redirect_url = ''; |
|
46 | + |
|
47 | + /** |
|
48 | + * @var string |
|
49 | + */ |
|
50 | + protected $_registration_time_limit = ''; |
|
51 | + |
|
52 | + /** |
|
53 | + * @var string |
|
54 | + */ |
|
55 | + protected $_redirect_form = ''; |
|
56 | + |
|
57 | + /** |
|
58 | + * @var string |
|
59 | + */ |
|
60 | + protected $_reg_step_html = ''; |
|
61 | + |
|
62 | + /** |
|
63 | + * @var string |
|
64 | + */ |
|
65 | + protected $_method_of_payment = ''; |
|
66 | + |
|
67 | + /** |
|
68 | + * @var float |
|
69 | + */ |
|
70 | + protected $_payment_amount; |
|
71 | + |
|
72 | + /** |
|
73 | + * @var array |
|
74 | + */ |
|
75 | + protected $_return_data = array(); |
|
76 | + |
|
77 | + |
|
78 | + /** |
|
79 | + * @var array |
|
80 | + */ |
|
81 | + protected $_validation_rules = array(); |
|
82 | + |
|
83 | + |
|
84 | + /** |
|
85 | + * class constructor |
|
86 | + */ |
|
87 | + public function __construct() |
|
88 | + { |
|
89 | + } |
|
90 | + |
|
91 | + |
|
92 | + /** |
|
93 | + * __toString |
|
94 | + * |
|
95 | + * allows you to simply echo or print an EE_SPCO_JSON_Response object to produce a JSON encoded string |
|
96 | + * |
|
97 | + * @access public |
|
98 | + * @return string |
|
99 | + */ |
|
100 | + public function __toString() |
|
101 | + { |
|
102 | + $JSON_response = array(); |
|
103 | + // grab notices |
|
104 | + $notices = EE_Error::get_notices(false); |
|
105 | + $this->set_attention(isset($notices['attention']) ? $notices['attention'] : ''); |
|
106 | + $this->set_errors(isset($notices['errors']) ? $notices['errors'] : ''); |
|
107 | + $this->set_success(isset($notices['success']) ? $notices['success'] : ''); |
|
108 | + // add notices to JSON response, but only if they exist |
|
109 | + if ($this->attention()) { |
|
110 | + $JSON_response['attention'] = $this->attention(); |
|
111 | + } |
|
112 | + if ($this->errors()) { |
|
113 | + $JSON_response['errors'] = $this->errors(); |
|
114 | + } |
|
115 | + if ($this->unexpected_errors()) { |
|
116 | + $JSON_response['unexpected_errors'] = $this->unexpected_errors(); |
|
117 | + } |
|
118 | + if ($this->success()) { |
|
119 | + $JSON_response['success'] = $this->success(); |
|
120 | + } |
|
121 | + // but if NO notices are set... at least set the "success" as a key so that the JS knows everything worked |
|
122 | + if (! isset($JSON_response['attention']) && ! isset($JSON_response['errors']) && ! isset($JSON_response['success'])) { |
|
123 | + $JSON_response['success'] = null; |
|
124 | + } |
|
125 | + // set redirect_url, IF it exists |
|
126 | + if ($this->redirect_url()) { |
|
127 | + $JSON_response['redirect_url'] = $this->redirect_url(); |
|
128 | + } |
|
129 | + // set registration_time_limit, IF it exists |
|
130 | + if ($this->registration_time_limit()) { |
|
131 | + $JSON_response['registration_time_limit'] = $this->registration_time_limit(); |
|
132 | + } |
|
133 | + // set payment_amount, IF it exists |
|
134 | + if ($this->payment_amount() !== null) { |
|
135 | + $JSON_response['payment_amount'] = $this->payment_amount(); |
|
136 | + } |
|
137 | + // grab generic return data |
|
138 | + $return_data = $this->return_data(); |
|
139 | + // add billing form validation rules |
|
140 | + if ($this->validation_rules()) { |
|
141 | + $return_data['validation_rules'] = $this->validation_rules(); |
|
142 | + } |
|
143 | + // set reg_step_html, IF it exists |
|
144 | + if ($this->reg_step_html()) { |
|
145 | + $return_data['reg_step_html'] = $this->reg_step_html(); |
|
146 | + } |
|
147 | + // set method of payment, IF it exists |
|
148 | + if ($this->method_of_payment()) { |
|
149 | + $return_data['method_of_payment'] = $this->method_of_payment(); |
|
150 | + } |
|
151 | + // set "plz_select_method_of_payment" message, IF it exists |
|
152 | + if ($this->plz_select_method_of_payment()) { |
|
153 | + $return_data['plz_select_method_of_payment'] = $this->plz_select_method_of_payment(); |
|
154 | + } |
|
155 | + // set redirect_form, IF it exists |
|
156 | + if ($this->redirect_form()) { |
|
157 | + $return_data['redirect_form'] = $this->redirect_form(); |
|
158 | + } |
|
159 | + // and finally, add return_data array to main JSON response array, IF it contains anything |
|
160 | + // why did we add some of the above properties to the return data array? |
|
161 | + // because it is easier and cleaner in the Javascript to deal with this way |
|
162 | + if (! empty($return_data)) { |
|
163 | + $JSON_response['return_data'] = $return_data; |
|
164 | + } |
|
165 | + // filter final array |
|
166 | + $JSON_response = apply_filters('FHEE__EE_SPCO_JSON_Response___toString__JSON_response', $JSON_response); |
|
167 | + // return encoded array |
|
168 | + return (string) wp_json_encode($JSON_response); |
|
169 | + } |
|
170 | + |
|
171 | + |
|
172 | + /** |
|
173 | + * @param string $attention |
|
174 | + */ |
|
175 | + public function set_attention($attention) |
|
176 | + { |
|
177 | + $this->_attention = $attention; |
|
178 | + } |
|
179 | + |
|
180 | + |
|
181 | + /** |
|
182 | + * @return string |
|
183 | + */ |
|
184 | + public function attention() |
|
185 | + { |
|
186 | + return $this->_attention; |
|
187 | + } |
|
188 | + |
|
189 | + |
|
190 | + /** |
|
191 | + * @param string $errors |
|
192 | + */ |
|
193 | + public function set_errors($errors) |
|
194 | + { |
|
195 | + $this->_errors = $errors; |
|
196 | + } |
|
197 | + |
|
198 | + |
|
199 | + /** |
|
200 | + * @return string |
|
201 | + */ |
|
202 | + public function errors() |
|
203 | + { |
|
204 | + return $this->_errors; |
|
205 | + } |
|
206 | + |
|
207 | + |
|
208 | + /** |
|
209 | + * @return string |
|
210 | + */ |
|
211 | + public function unexpected_errors() |
|
212 | + { |
|
213 | + return $this->_unexpected_errors; |
|
214 | + } |
|
215 | + |
|
216 | + |
|
217 | + /** |
|
218 | + * @param string $unexpected_errors |
|
219 | + */ |
|
220 | + public function set_unexpected_errors($unexpected_errors) |
|
221 | + { |
|
222 | + $this->_unexpected_errors = $unexpected_errors; |
|
223 | + } |
|
224 | + |
|
225 | + |
|
226 | + /** |
|
227 | + * @param string $success |
|
228 | + */ |
|
229 | + public function set_success($success) |
|
230 | + { |
|
231 | + $this->_success = $success; |
|
232 | + } |
|
233 | + |
|
234 | + |
|
235 | + /** |
|
236 | + * @return string |
|
237 | + */ |
|
238 | + public function success() |
|
239 | + { |
|
240 | + return $this->_success; |
|
241 | + } |
|
242 | + |
|
243 | + |
|
244 | + /** |
|
245 | + * @param string $method_of_payment |
|
246 | + */ |
|
247 | + public function set_method_of_payment($method_of_payment) |
|
248 | + { |
|
249 | + $this->_method_of_payment = $method_of_payment; |
|
250 | + } |
|
251 | + |
|
252 | + |
|
253 | + /** |
|
254 | + * @return string |
|
255 | + */ |
|
256 | + public function method_of_payment() |
|
257 | + { |
|
258 | + return $this->_method_of_payment; |
|
259 | + } |
|
260 | + |
|
261 | + |
|
262 | + /** |
|
263 | + * @return float |
|
264 | + */ |
|
265 | + public function payment_amount() |
|
266 | + { |
|
267 | + return $this->_payment_amount; |
|
268 | + } |
|
269 | + |
|
270 | + |
|
271 | + /** |
|
272 | + * @param float $payment_amount |
|
273 | + * @throws EE_Error |
|
274 | + */ |
|
275 | + public function set_payment_amount($payment_amount) |
|
276 | + { |
|
277 | + $this->_payment_amount = (float) $payment_amount; |
|
278 | + } |
|
279 | + |
|
280 | + |
|
281 | + /** |
|
282 | + * @param string $next_step_html |
|
283 | + */ |
|
284 | + public function set_reg_step_html($next_step_html) |
|
285 | + { |
|
286 | + $this->_reg_step_html = $next_step_html; |
|
287 | + } |
|
288 | + |
|
289 | + |
|
290 | + /** |
|
291 | + * @return string |
|
292 | + */ |
|
293 | + public function reg_step_html() |
|
294 | + { |
|
295 | + return $this->_reg_step_html; |
|
296 | + } |
|
297 | + |
|
298 | + |
|
299 | + /** |
|
300 | + * @param string $redirect_form |
|
301 | + */ |
|
302 | + public function set_redirect_form($redirect_form) |
|
303 | + { |
|
304 | + $this->_redirect_form = $redirect_form; |
|
305 | + } |
|
306 | + |
|
307 | + |
|
308 | + /** |
|
309 | + * @return string |
|
310 | + */ |
|
311 | + public function redirect_form() |
|
312 | + { |
|
313 | + return ! empty($this->_redirect_form) ? $this->_redirect_form : false; |
|
314 | + } |
|
315 | + |
|
316 | + |
|
317 | + /** |
|
318 | + * @param string $plz_select_method_of_payment |
|
319 | + */ |
|
320 | + public function set_plz_select_method_of_payment($plz_select_method_of_payment) |
|
321 | + { |
|
322 | + $this->_plz_select_method_of_payment = $plz_select_method_of_payment; |
|
323 | + } |
|
324 | + |
|
325 | + |
|
326 | + /** |
|
327 | + * @return string |
|
328 | + */ |
|
329 | + public function plz_select_method_of_payment() |
|
330 | + { |
|
331 | + return $this->_plz_select_method_of_payment; |
|
332 | + } |
|
333 | + |
|
334 | + |
|
335 | + /** |
|
336 | + * @param string $redirect_url |
|
337 | + */ |
|
338 | + public function set_redirect_url($redirect_url) |
|
339 | + { |
|
340 | + $this->_redirect_url = $redirect_url; |
|
341 | + } |
|
342 | + |
|
343 | + |
|
344 | + /** |
|
345 | + * @return string |
|
346 | + */ |
|
347 | + public function redirect_url() |
|
348 | + { |
|
349 | + return $this->_redirect_url; |
|
350 | + } |
|
351 | + |
|
352 | + |
|
353 | + /** |
|
354 | + * @return string |
|
355 | + */ |
|
356 | + public function registration_time_limit() |
|
357 | + { |
|
358 | + return $this->_registration_time_limit; |
|
359 | + } |
|
360 | + |
|
361 | + |
|
362 | + /** |
|
363 | + * @param string $registration_time_limit |
|
364 | + */ |
|
365 | + public function set_registration_time_limit($registration_time_limit) |
|
366 | + { |
|
367 | + $this->_registration_time_limit = $registration_time_limit; |
|
368 | + } |
|
369 | + |
|
370 | + |
|
371 | + /** |
|
372 | + * @param array $return_data |
|
373 | + */ |
|
374 | + public function set_return_data($return_data) |
|
375 | + { |
|
376 | + $this->_return_data = array_merge($this->_return_data, $return_data); |
|
377 | + } |
|
378 | + |
|
379 | + |
|
380 | + /** |
|
381 | + * @return array |
|
382 | + */ |
|
383 | + public function return_data() |
|
384 | + { |
|
385 | + return $this->_return_data; |
|
386 | + } |
|
387 | + |
|
388 | + |
|
389 | + /** |
|
390 | + * @param array $validation_rules |
|
391 | + */ |
|
392 | + public function add_validation_rules(array $validation_rules = array()) |
|
393 | + { |
|
394 | + if (is_array($validation_rules) && ! empty($validation_rules)) { |
|
395 | + $this->_validation_rules = array_merge($this->_validation_rules, $validation_rules); |
|
396 | + } |
|
397 | + } |
|
398 | + |
|
399 | + |
|
400 | + /** |
|
401 | + * @return array | bool |
|
402 | + */ |
|
403 | + public function validation_rules() |
|
404 | + { |
|
405 | + return ! empty($this->_validation_rules) ? $this->_validation_rules : false; |
|
406 | + } |
|
407 | + |
|
408 | + |
|
409 | + public function echoAndExit() |
|
410 | + { |
|
411 | + exit($this->__toString()); |
|
412 | + } |
|
413 | 413 | } |
@@ -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 | } |
@@ -335,7 +335,7 @@ discard block |
||
335 | 335 | */ |
336 | 336 | public function options($notDeletedOptionsOnly = true, $selected_value_to_always_include = null) |
337 | 337 | { |
338 | - if (! $this->ID()) { |
|
338 | + if ( ! $this->ID()) { |
|
339 | 339 | return array(); |
340 | 340 | } |
341 | 341 | $query_params = array(); |
@@ -509,7 +509,7 @@ discard block |
||
509 | 509 | ), |
510 | 510 | $input_constructor_args |
511 | 511 | ); |
512 | - if (! $answer instanceof EE_Answer && $registration instanceof EE_Registration) { |
|
512 | + if ( ! $answer instanceof EE_Answer && $registration instanceof EE_Registration) { |
|
513 | 513 | $answer = EEM_Answer::instance()->get_registration_question_answer_object($registration, $this->ID()); |
514 | 514 | } |
515 | 515 | // has this question been answered ? |
@@ -647,7 +647,7 @@ discard block |
||
647 | 647 | $this, |
648 | 648 | $input_constructor_args |
649 | 649 | ); |
650 | - if (! $default_input) { |
|
650 | + if ( ! $default_input) { |
|
651 | 651 | $default_input = new EE_Text_Input($input_constructor_args); |
652 | 652 | } |
653 | 653 | $result = $default_input; |
@@ -13,668 +13,668 @@ |
||
13 | 13 | */ |
14 | 14 | class EE_Question extends EE_Soft_Delete_Base_Class implements EEI_Duplicatable |
15 | 15 | { |
16 | - /** |
|
17 | - * |
|
18 | - * @param array $props_n_values incoming values |
|
19 | - * @param string $timezone incoming timezone (if not set the timezone set for the website will be |
|
20 | - * used.) |
|
21 | - * @param array $date_formats incoming date_formats in an array where the first value is the |
|
22 | - * date_format and the second value is the time format |
|
23 | - * @return EE_Question |
|
24 | - */ |
|
25 | - public static function new_instance($props_n_values = array(), $timezone = null, $date_formats = array()) |
|
26 | - { |
|
27 | - $has_object = parent::_check_for_object($props_n_values, __CLASS__, $timezone, $date_formats); |
|
28 | - return $has_object ? $has_object : new self($props_n_values, false, $timezone, $date_formats); |
|
29 | - } |
|
30 | - |
|
31 | - |
|
32 | - /** |
|
33 | - * @param array $props_n_values incoming values from the database |
|
34 | - * @param string $timezone incoming timezone as set by the model. If not set the timezone for |
|
35 | - * the website will be used. |
|
36 | - * @return EE_Question |
|
37 | - */ |
|
38 | - public static function new_instance_from_db($props_n_values = array(), $timezone = null) |
|
39 | - { |
|
40 | - return new self($props_n_values, true, $timezone); |
|
41 | - } |
|
42 | - |
|
43 | - |
|
44 | - /** |
|
45 | - * Set Question display text |
|
46 | - * |
|
47 | - * @access public |
|
48 | - * @param string $QST_display_text |
|
49 | - */ |
|
50 | - public function set_display_text($QST_display_text = '') |
|
51 | - { |
|
52 | - $this->set('QST_display_text', $QST_display_text); |
|
53 | - } |
|
54 | - |
|
55 | - |
|
56 | - /** |
|
57 | - * Set Question admin text |
|
58 | - * |
|
59 | - * @access public |
|
60 | - * @param string $QST_admin_label |
|
61 | - */ |
|
62 | - public function set_admin_label($QST_admin_label = '') |
|
63 | - { |
|
64 | - $this->set('QST_admin_label', $QST_admin_label); |
|
65 | - } |
|
66 | - |
|
67 | - |
|
68 | - /** |
|
69 | - * Set system name |
|
70 | - * |
|
71 | - * @access public |
|
72 | - * @param mixed $QST_system |
|
73 | - */ |
|
74 | - public function set_system_ID($QST_system = '') |
|
75 | - { |
|
76 | - $this->set('QST_system', $QST_system); |
|
77 | - } |
|
78 | - |
|
79 | - |
|
80 | - /** |
|
81 | - * Set question's type |
|
82 | - * |
|
83 | - * @access public |
|
84 | - * @param string $QST_type |
|
85 | - */ |
|
86 | - public function set_question_type($QST_type = '') |
|
87 | - { |
|
88 | - $this->set('QST_type', $QST_type); |
|
89 | - } |
|
90 | - |
|
91 | - |
|
92 | - /** |
|
93 | - * Sets whether this question must be answered when presented in a form |
|
94 | - * |
|
95 | - * @access public |
|
96 | - * @param bool $QST_required |
|
97 | - */ |
|
98 | - public function set_required($QST_required = false) |
|
99 | - { |
|
100 | - $this->set('QST_required', $QST_required); |
|
101 | - } |
|
102 | - |
|
103 | - |
|
104 | - /** |
|
105 | - * Set Question display text |
|
106 | - * |
|
107 | - * @access public |
|
108 | - * @param string $QST_required_text |
|
109 | - */ |
|
110 | - public function set_required_text($QST_required_text = '') |
|
111 | - { |
|
112 | - $this->set('QST_required_text', $QST_required_text); |
|
113 | - } |
|
114 | - |
|
115 | - |
|
116 | - /** |
|
117 | - * Sets the order of this question when placed in a sequence of questions |
|
118 | - * |
|
119 | - * @access public |
|
120 | - * @param int $QST_order |
|
121 | - */ |
|
122 | - public function set_order($QST_order = 0) |
|
123 | - { |
|
124 | - $this->set('QST_order', $QST_order); |
|
125 | - } |
|
126 | - |
|
127 | - |
|
128 | - /** |
|
129 | - * Sets whether the question is admin-only |
|
130 | - * |
|
131 | - * @access public |
|
132 | - * @param bool $QST_admin_only |
|
133 | - */ |
|
134 | - public function set_admin_only($QST_admin_only = false) |
|
135 | - { |
|
136 | - $this->set('QST_admin_only', $QST_admin_only); |
|
137 | - } |
|
138 | - |
|
139 | - |
|
140 | - /** |
|
141 | - * Sets the wordpress user ID on the question |
|
142 | - * |
|
143 | - * @access public |
|
144 | - * @param int $QST_wp_user |
|
145 | - */ |
|
146 | - public function set_wp_user($QST_wp_user = 1) |
|
147 | - { |
|
148 | - $this->set('QST_wp_user', $QST_wp_user); |
|
149 | - } |
|
150 | - |
|
151 | - |
|
152 | - /** |
|
153 | - * Sets whether the question has been deleted |
|
154 | - * (we use this boolean instead of actually |
|
155 | - * deleting it because when users delete this question |
|
156 | - * they really want to remove the question from future |
|
157 | - * forms, BUT keep their old answers which depend |
|
158 | - * on this record actually existing. |
|
159 | - * |
|
160 | - * @access public |
|
161 | - * @param bool $QST_deleted |
|
162 | - */ |
|
163 | - public function set_deleted($QST_deleted = false) |
|
164 | - { |
|
165 | - $this->set('QST_deleted', $QST_deleted); |
|
166 | - } |
|
167 | - |
|
168 | - |
|
169 | - /** |
|
170 | - * returns the text for displaying the question to users |
|
171 | - * |
|
172 | - * @access public |
|
173 | - * @return string |
|
174 | - */ |
|
175 | - public function display_text() |
|
176 | - { |
|
177 | - return $this->get('QST_display_text'); |
|
178 | - } |
|
179 | - |
|
180 | - |
|
181 | - /** |
|
182 | - * returns the text for the administrative label |
|
183 | - * |
|
184 | - * @access public |
|
185 | - * @return string |
|
186 | - */ |
|
187 | - public function admin_label() |
|
188 | - { |
|
189 | - return $this->get('QST_admin_label'); |
|
190 | - } |
|
191 | - |
|
192 | - |
|
193 | - /** |
|
194 | - * returns the attendee column name for this question |
|
195 | - * |
|
196 | - * @access public |
|
197 | - * @return string |
|
198 | - */ |
|
199 | - public function system_ID() |
|
200 | - { |
|
201 | - return $this->get('QST_system'); |
|
202 | - } |
|
203 | - |
|
204 | - |
|
205 | - /** |
|
206 | - * returns either a string of 'text', 'textfield', etc. |
|
207 | - * |
|
208 | - * @access public |
|
209 | - * @return boolean |
|
210 | - */ |
|
211 | - public function required() |
|
212 | - { |
|
213 | - return $this->get('QST_required'); |
|
214 | - } |
|
215 | - |
|
216 | - |
|
217 | - /** |
|
218 | - * returns the text which should be displayed when a user |
|
219 | - * doesn't answer this question in a form |
|
220 | - * |
|
221 | - * @access public |
|
222 | - * @return string |
|
223 | - */ |
|
224 | - public function required_text() |
|
225 | - { |
|
226 | - return $this->get('QST_required_text'); |
|
227 | - } |
|
228 | - |
|
229 | - |
|
230 | - /** |
|
231 | - * returns the type of this question |
|
232 | - * |
|
233 | - * @access public |
|
234 | - * @return string |
|
235 | - */ |
|
236 | - public function type() |
|
237 | - { |
|
238 | - return $this->get('QST_type'); |
|
239 | - } |
|
240 | - |
|
241 | - |
|
242 | - /** |
|
243 | - * returns an integer showing where this question should |
|
244 | - * be placed in a sequence of questions |
|
245 | - * |
|
246 | - * @access public |
|
247 | - * @return int |
|
248 | - */ |
|
249 | - public function order() |
|
250 | - { |
|
251 | - return $this->get('QST_order'); |
|
252 | - } |
|
253 | - |
|
254 | - |
|
255 | - /** |
|
256 | - * returns whether this question should only appears to admins, |
|
257 | - * or to everyone |
|
258 | - * |
|
259 | - * @access public |
|
260 | - * @return boolean |
|
261 | - */ |
|
262 | - public function admin_only() |
|
263 | - { |
|
264 | - return $this->get('QST_admin_only'); |
|
265 | - } |
|
266 | - |
|
267 | - |
|
268 | - /** |
|
269 | - * returns the id the wordpress user who created this question |
|
270 | - * |
|
271 | - * @access public |
|
272 | - * @return int |
|
273 | - */ |
|
274 | - public function wp_user() |
|
275 | - { |
|
276 | - return $this->get('QST_wp_user'); |
|
277 | - } |
|
278 | - |
|
279 | - |
|
280 | - /** |
|
281 | - * returns whether this question has been marked as 'deleted' |
|
282 | - * |
|
283 | - * @access public |
|
284 | - * @return boolean |
|
285 | - */ |
|
286 | - public function deleted() |
|
287 | - { |
|
288 | - return $this->get('QST_deleted'); |
|
289 | - } |
|
290 | - |
|
291 | - |
|
292 | - /** |
|
293 | - * Gets an array of related EE_Answer to this EE_Question |
|
294 | - * |
|
295 | - * @return EE_Answer[] |
|
296 | - */ |
|
297 | - public function answers() |
|
298 | - { |
|
299 | - return $this->get_many_related('Answer'); |
|
300 | - } |
|
301 | - |
|
302 | - |
|
303 | - /** |
|
304 | - * Boolean check for if there are answers on this question in th db |
|
305 | - * |
|
306 | - * @return boolean true = has answers, false = no answers. |
|
307 | - */ |
|
308 | - public function has_answers() |
|
309 | - { |
|
310 | - return $this->count_related('Answer') > 0 ? true : false; |
|
311 | - } |
|
312 | - |
|
313 | - |
|
314 | - /** |
|
315 | - * gets an array of EE_Question_Group which relate to this question |
|
316 | - * |
|
317 | - * @return EE_Question_Group[] |
|
318 | - */ |
|
319 | - public function question_groups() |
|
320 | - { |
|
321 | - return $this->get_many_related('Question_Group'); |
|
322 | - } |
|
323 | - |
|
324 | - |
|
325 | - /** |
|
326 | - * Returns all the options for this question. By default, it returns only the not-yet-deleted ones. |
|
327 | - * |
|
328 | - * @param boolean $notDeletedOptionsOnly 1 |
|
329 | - * whether to return ALL options, or only the ones which have |
|
330 | - * not yet been deleleted |
|
331 | - * @param string|array $selected_value_to_always_include , when retrieving options to an ANSWERED question, |
|
332 | - * we want to usually only show non-deleted options AND the |
|
333 | - * value that was selected for the answer, whether it was |
|
334 | - * trashed or not. |
|
335 | - * @return EE_Question_Option[] |
|
336 | - */ |
|
337 | - public function options($notDeletedOptionsOnly = true, $selected_value_to_always_include = null) |
|
338 | - { |
|
339 | - if (! $this->ID()) { |
|
340 | - return array(); |
|
341 | - } |
|
342 | - $query_params = array(); |
|
343 | - if ($selected_value_to_always_include) { |
|
344 | - if (is_array($selected_value_to_always_include)) { |
|
345 | - $query_params[0]['OR*options-query']['QSO_value'] = array('IN', $selected_value_to_always_include); |
|
346 | - } else { |
|
347 | - $query_params[0]['OR*options-query']['QSO_value'] = $selected_value_to_always_include; |
|
348 | - } |
|
349 | - } |
|
350 | - if ($notDeletedOptionsOnly) { |
|
351 | - $query_params[0]['OR*options-query']['QSO_deleted'] = false; |
|
352 | - } |
|
353 | - // order by QSO_order |
|
354 | - $query_params['order_by'] = array('QSO_order' => 'ASC'); |
|
355 | - return $this->get_many_related('Question_Option', $query_params); |
|
356 | - } |
|
357 | - |
|
358 | - |
|
359 | - /** |
|
360 | - * returns an array of EE_Question_Options which relate to this question |
|
361 | - * |
|
362 | - * @return \EE_Question_Option[] |
|
363 | - */ |
|
364 | - public function temp_options() |
|
365 | - { |
|
366 | - return $this->_model_relations['Question_Option']; |
|
367 | - } |
|
368 | - |
|
369 | - |
|
370 | - /** |
|
371 | - * Adds an option for this question. Note: if the option were previously associated with a different |
|
372 | - * Question, that relationship will be overwritten. |
|
373 | - * |
|
374 | - * @param EE_Question_Option $option |
|
375 | - * @return boolean success |
|
376 | - */ |
|
377 | - public function add_option(EE_Question_Option $option) |
|
378 | - { |
|
379 | - return $this->_add_relation_to($option, 'Question_Option'); |
|
380 | - } |
|
381 | - |
|
382 | - |
|
383 | - /** |
|
384 | - * Adds an option directly to this question without saving to the db |
|
385 | - * |
|
386 | - * @param EE_Question_Option $option |
|
387 | - * @return boolean success |
|
388 | - */ |
|
389 | - public function add_temp_option(EE_Question_Option $option) |
|
390 | - { |
|
391 | - $this->_model_relations['Question_Option'][] = $option; |
|
392 | - return true; |
|
393 | - } |
|
394 | - |
|
395 | - |
|
396 | - /** |
|
397 | - * Marks the option as deleted. |
|
398 | - * |
|
399 | - * @param EE_Question_Option $option |
|
400 | - * @return boolean success |
|
401 | - */ |
|
402 | - public function remove_option(EE_Question_Option $option) |
|
403 | - { |
|
404 | - return $this->_remove_relation_to($option, 'Question_Option'); |
|
405 | - } |
|
406 | - |
|
407 | - |
|
408 | - /** |
|
409 | - * @return bool |
|
410 | - */ |
|
411 | - public function is_system_question() |
|
412 | - { |
|
413 | - $system_ID = $this->get('QST_system'); |
|
414 | - return ! empty($system_ID) ? true : false; |
|
415 | - } |
|
416 | - |
|
417 | - |
|
418 | - /** |
|
419 | - * The purpose of this method is set the question order this question order to be the max out of all questions |
|
420 | - * |
|
421 | - * @access public |
|
422 | - * @return void |
|
423 | - */ |
|
424 | - public function set_order_to_latest() |
|
425 | - { |
|
426 | - $latest_order = $this->get_model()->get_latest_question_order(); |
|
427 | - $latest_order++; |
|
428 | - $this->set('QST_order', $latest_order); |
|
429 | - } |
|
430 | - |
|
431 | - |
|
432 | - /** |
|
433 | - * Retrieves the list of allowed question types from the model. |
|
434 | - * |
|
435 | - * @return string[] |
|
436 | - */ |
|
437 | - private function _allowed_question_types() |
|
438 | - { |
|
439 | - $questionModel = $this->get_model(); |
|
440 | - /* @var $questionModel EEM_Question */ |
|
441 | - return $questionModel->allowed_question_types(); |
|
442 | - } |
|
443 | - |
|
444 | - /** |
|
445 | - * Duplicates this question and its question options |
|
446 | - * |
|
447 | - * @return \EE_Question |
|
448 | - */ |
|
449 | - public function duplicate($options = array()) |
|
450 | - { |
|
451 | - $new_question = clone $this; |
|
452 | - $new_question->set('QST_ID', null); |
|
453 | - $new_question->set_display_text(sprintf(esc_html__('%s **Duplicate**', 'event_espresso'), $this->display_text())); |
|
454 | - $new_question->set_admin_label(sprintf(esc_html__('%s **Duplicate**', 'event_espresso'), $this->admin_label())); |
|
455 | - $new_question->set_system_ID(null); |
|
456 | - $new_question->set_wp_user(get_current_user_id()); |
|
457 | - // if we're duplicating a trashed question, assume we don't want the new one to be trashed |
|
458 | - $new_question->set_deleted(false); |
|
459 | - $success = $new_question->save(); |
|
460 | - if ($success) { |
|
461 | - // we don't totally want to duplicate the question options, because we want them to be for the NEW question |
|
462 | - foreach ($this->options() as $question_option) { |
|
463 | - $question_option->duplicate(array('QST_ID' => $new_question->ID())); |
|
464 | - } |
|
465 | - return $new_question; |
|
466 | - } else { |
|
467 | - return null; |
|
468 | - } |
|
469 | - } |
|
470 | - |
|
471 | - /** |
|
472 | - * Returns the question's maximum allowed response size |
|
473 | - * |
|
474 | - * @return int|float |
|
475 | - */ |
|
476 | - public function max() |
|
477 | - { |
|
478 | - return $this->get('QST_max'); |
|
479 | - } |
|
480 | - |
|
481 | - /** |
|
482 | - * Sets the question's maximum allowed response size |
|
483 | - * |
|
484 | - * @param int|float $new_max |
|
485 | - * @return void |
|
486 | - */ |
|
487 | - public function set_max($new_max) |
|
488 | - { |
|
489 | - $this->set('QST_max', $new_max); |
|
490 | - } |
|
491 | - |
|
492 | - |
|
493 | - /** |
|
494 | - * Creates a form input from this question which can be used in HTML forms |
|
495 | - * |
|
496 | - * @param EE_Registration $registration |
|
497 | - * @param EE_Answer $answer |
|
498 | - * @param array $input_constructor_args |
|
499 | - * @return EE_Form_Input_Base |
|
500 | - */ |
|
501 | - public function generate_form_input($registration = null, $answer = null, $input_constructor_args = array()) |
|
502 | - { |
|
503 | - $identifier = $this->is_system_question() ? $this->system_ID() : $this->ID(); |
|
504 | - |
|
505 | - $input_constructor_args = array_merge( |
|
506 | - array( |
|
507 | - 'required' => $this->required() ? true : false, |
|
508 | - 'html_label_text' => $this->display_text(), |
|
509 | - 'required_validation_error_message' => $this->required_text(), |
|
510 | - ), |
|
511 | - $input_constructor_args |
|
512 | - ); |
|
513 | - if (! $answer instanceof EE_Answer && $registration instanceof EE_Registration) { |
|
514 | - $answer = EEM_Answer::instance()->get_registration_question_answer_object($registration, $this->ID()); |
|
515 | - } |
|
516 | - // has this question been answered ? |
|
517 | - if ( |
|
518 | - $answer instanceof EE_Answer |
|
519 | - && $answer->value() !== '' |
|
520 | - ) { |
|
521 | - // answer gets htmlspecialchars called on it, undo that please |
|
522 | - // because the form input's display strategy may call esc_attr too |
|
523 | - // which also does html special characters |
|
524 | - $values_with_html_special_chars = $answer->value(); |
|
525 | - if (is_array($values_with_html_special_chars)) { |
|
526 | - $default_value = array_map('htmlspecialchars_decode', $values_with_html_special_chars); |
|
527 | - } else { |
|
528 | - $default_value = htmlspecialchars_decode($values_with_html_special_chars); |
|
529 | - } |
|
530 | - $input_constructor_args['default'] = $default_value; |
|
531 | - } |
|
532 | - $max_max_for_question = EEM_Question::instance()->absolute_max_for_system_question($this->system_ID()); |
|
533 | - if ( |
|
534 | - in_array( |
|
535 | - $this->type(), |
|
536 | - EEM_Question::instance()->questionTypesWithMaxLength(), |
|
537 | - true |
|
538 | - ) |
|
539 | - ) { |
|
540 | - $input_constructor_args['validation_strategies'][] = new EE_Max_Length_Validation_Strategy( |
|
541 | - null, |
|
542 | - min($max_max_for_question, $this->max()) |
|
543 | - ); |
|
544 | - } |
|
545 | - $input_constructor_args = apply_filters( |
|
546 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__input_constructor_args', |
|
547 | - $input_constructor_args, |
|
548 | - $registration, |
|
549 | - $this, |
|
550 | - $answer |
|
551 | - ); |
|
552 | - |
|
553 | - $result = null; |
|
554 | - switch ($this->type()) { |
|
555 | - // Text |
|
556 | - case EEM_Question::QST_type_text: |
|
557 | - $result = new EE_Text_Input($input_constructor_args); |
|
558 | - break; |
|
559 | - // Textarea |
|
560 | - case EEM_Question::QST_type_textarea: |
|
561 | - $result = new EE_Text_Area_Input($input_constructor_args); |
|
562 | - break; |
|
563 | - // Radio Buttons |
|
564 | - case EEM_Question::QST_type_radio: |
|
565 | - $result = new EE_Radio_Button_Input($this->options(), $input_constructor_args); |
|
566 | - break; |
|
567 | - // Dropdown |
|
568 | - case EEM_Question::QST_type_dropdown: |
|
569 | - $result = new EE_Select_Input($this->options(), $input_constructor_args); |
|
570 | - break; |
|
571 | - // State Dropdown |
|
572 | - case EEM_Question::QST_type_state: |
|
573 | - $state_options = apply_filters( |
|
574 | - 'FHEE__EE_Question__generate_form_input__state_options', |
|
575 | - null, |
|
576 | - $this, |
|
577 | - $registration, |
|
578 | - $answer |
|
579 | - ); |
|
580 | - $result = new EE_State_Select_Input($state_options, $input_constructor_args); |
|
581 | - break; |
|
582 | - // Country Dropdown |
|
583 | - case EEM_Question::QST_type_country: |
|
584 | - $country_options = apply_filters( |
|
585 | - 'FHEE__EE_Question__generate_form_input__country_options', |
|
586 | - null, |
|
587 | - $this, |
|
588 | - $registration, |
|
589 | - $answer |
|
590 | - ); |
|
591 | - $result = new EE_Country_Select_Input($country_options, $input_constructor_args); |
|
592 | - break; |
|
593 | - // Checkboxes |
|
594 | - case EEM_Question::QST_type_checkbox: |
|
595 | - $result = new EE_Checkbox_Multi_Input($this->options(), $input_constructor_args); |
|
596 | - break; |
|
597 | - // Date |
|
598 | - case EEM_Question::QST_type_date: |
|
599 | - $result = new EE_Datepicker_Input($input_constructor_args); |
|
600 | - break; |
|
601 | - case EEM_Question::QST_type_html_textarea: |
|
602 | - $input_constructor_args['validation_strategies'][] = new EE_Simple_HTML_Validation_Strategy(); |
|
603 | - $result = new EE_Text_Area_Input($input_constructor_args); |
|
604 | - $result->remove_validation_strategy('EE_Plaintext_Validation_Strategy'); |
|
605 | - break; |
|
606 | - case EEM_Question::QST_type_email: |
|
607 | - $result = new EE_Email_Input($input_constructor_args); |
|
608 | - break; |
|
609 | - // Email confirm |
|
610 | - case EEM_Question::QST_type_email_confirm: |
|
611 | - $result = new EE_Email_Confirm_Input($input_constructor_args); |
|
612 | - break; |
|
613 | - case EEM_Question::QST_type_us_phone: |
|
614 | - $result = new EE_Phone_Input($input_constructor_args); |
|
615 | - break; |
|
616 | - case EEM_Question::QST_type_int: |
|
617 | - $result = new EE_Integer_Input($input_constructor_args); |
|
618 | - break; |
|
619 | - case EEM_Question::QST_type_decimal: |
|
620 | - $result = new EE_Float_Input($input_constructor_args); |
|
621 | - break; |
|
622 | - case EEM_Question::QST_type_url: |
|
623 | - $input_constructor_args['validation_strategies'][] = LoaderFactory::getLoader()->getNew('EE_URL_Validation_Strategy'); |
|
624 | - $result = new EE_Text_Input($input_constructor_args); |
|
625 | - break; |
|
626 | - case EEM_Question::QST_type_year: |
|
627 | - $result = new EE_Year_Input( |
|
628 | - $input_constructor_args, |
|
629 | - apply_filters( |
|
630 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__year_question__four_digit', |
|
631 | - true, |
|
632 | - $this |
|
633 | - ), |
|
634 | - apply_filters( |
|
635 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__year_question__early_range', |
|
636 | - 100, |
|
637 | - $this |
|
638 | - ), |
|
639 | - apply_filters( |
|
640 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__year_question__end_range', |
|
641 | - 100, |
|
642 | - $this |
|
643 | - ) |
|
644 | - ); |
|
645 | - break; |
|
646 | - case EEM_Question::QST_type_multi_select: |
|
647 | - $result = new EE_Select_Multiple_Input($this->options(), $input_constructor_args); |
|
648 | - break; |
|
649 | - // fallback |
|
650 | - default: |
|
651 | - $default_input = apply_filters( |
|
652 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__default', |
|
653 | - null, |
|
654 | - $this->type(), |
|
655 | - $this, |
|
656 | - $input_constructor_args |
|
657 | - ); |
|
658 | - if (! $default_input) { |
|
659 | - $default_input = new EE_Text_Input($input_constructor_args); |
|
660 | - } |
|
661 | - $result = $default_input; |
|
662 | - } |
|
663 | - return apply_filters('FHEE__EE_Question__generate_form_input__return', $result, $registration, $this, $answer); |
|
664 | - } |
|
665 | - |
|
666 | - |
|
667 | - /** |
|
668 | - * Returns whether or not this question type should have question option entries |
|
669 | - * |
|
670 | - * @return bool |
|
671 | - */ |
|
672 | - public function should_have_question_options() |
|
673 | - { |
|
674 | - return in_array( |
|
675 | - $this->type(), |
|
676 | - $this->_model->question_types_with_options(), |
|
677 | - true |
|
678 | - ); |
|
679 | - } |
|
16 | + /** |
|
17 | + * |
|
18 | + * @param array $props_n_values incoming values |
|
19 | + * @param string $timezone incoming timezone (if not set the timezone set for the website will be |
|
20 | + * used.) |
|
21 | + * @param array $date_formats incoming date_formats in an array where the first value is the |
|
22 | + * date_format and the second value is the time format |
|
23 | + * @return EE_Question |
|
24 | + */ |
|
25 | + public static function new_instance($props_n_values = array(), $timezone = null, $date_formats = array()) |
|
26 | + { |
|
27 | + $has_object = parent::_check_for_object($props_n_values, __CLASS__, $timezone, $date_formats); |
|
28 | + return $has_object ? $has_object : new self($props_n_values, false, $timezone, $date_formats); |
|
29 | + } |
|
30 | + |
|
31 | + |
|
32 | + /** |
|
33 | + * @param array $props_n_values incoming values from the database |
|
34 | + * @param string $timezone incoming timezone as set by the model. If not set the timezone for |
|
35 | + * the website will be used. |
|
36 | + * @return EE_Question |
|
37 | + */ |
|
38 | + public static function new_instance_from_db($props_n_values = array(), $timezone = null) |
|
39 | + { |
|
40 | + return new self($props_n_values, true, $timezone); |
|
41 | + } |
|
42 | + |
|
43 | + |
|
44 | + /** |
|
45 | + * Set Question display text |
|
46 | + * |
|
47 | + * @access public |
|
48 | + * @param string $QST_display_text |
|
49 | + */ |
|
50 | + public function set_display_text($QST_display_text = '') |
|
51 | + { |
|
52 | + $this->set('QST_display_text', $QST_display_text); |
|
53 | + } |
|
54 | + |
|
55 | + |
|
56 | + /** |
|
57 | + * Set Question admin text |
|
58 | + * |
|
59 | + * @access public |
|
60 | + * @param string $QST_admin_label |
|
61 | + */ |
|
62 | + public function set_admin_label($QST_admin_label = '') |
|
63 | + { |
|
64 | + $this->set('QST_admin_label', $QST_admin_label); |
|
65 | + } |
|
66 | + |
|
67 | + |
|
68 | + /** |
|
69 | + * Set system name |
|
70 | + * |
|
71 | + * @access public |
|
72 | + * @param mixed $QST_system |
|
73 | + */ |
|
74 | + public function set_system_ID($QST_system = '') |
|
75 | + { |
|
76 | + $this->set('QST_system', $QST_system); |
|
77 | + } |
|
78 | + |
|
79 | + |
|
80 | + /** |
|
81 | + * Set question's type |
|
82 | + * |
|
83 | + * @access public |
|
84 | + * @param string $QST_type |
|
85 | + */ |
|
86 | + public function set_question_type($QST_type = '') |
|
87 | + { |
|
88 | + $this->set('QST_type', $QST_type); |
|
89 | + } |
|
90 | + |
|
91 | + |
|
92 | + /** |
|
93 | + * Sets whether this question must be answered when presented in a form |
|
94 | + * |
|
95 | + * @access public |
|
96 | + * @param bool $QST_required |
|
97 | + */ |
|
98 | + public function set_required($QST_required = false) |
|
99 | + { |
|
100 | + $this->set('QST_required', $QST_required); |
|
101 | + } |
|
102 | + |
|
103 | + |
|
104 | + /** |
|
105 | + * Set Question display text |
|
106 | + * |
|
107 | + * @access public |
|
108 | + * @param string $QST_required_text |
|
109 | + */ |
|
110 | + public function set_required_text($QST_required_text = '') |
|
111 | + { |
|
112 | + $this->set('QST_required_text', $QST_required_text); |
|
113 | + } |
|
114 | + |
|
115 | + |
|
116 | + /** |
|
117 | + * Sets the order of this question when placed in a sequence of questions |
|
118 | + * |
|
119 | + * @access public |
|
120 | + * @param int $QST_order |
|
121 | + */ |
|
122 | + public function set_order($QST_order = 0) |
|
123 | + { |
|
124 | + $this->set('QST_order', $QST_order); |
|
125 | + } |
|
126 | + |
|
127 | + |
|
128 | + /** |
|
129 | + * Sets whether the question is admin-only |
|
130 | + * |
|
131 | + * @access public |
|
132 | + * @param bool $QST_admin_only |
|
133 | + */ |
|
134 | + public function set_admin_only($QST_admin_only = false) |
|
135 | + { |
|
136 | + $this->set('QST_admin_only', $QST_admin_only); |
|
137 | + } |
|
138 | + |
|
139 | + |
|
140 | + /** |
|
141 | + * Sets the wordpress user ID on the question |
|
142 | + * |
|
143 | + * @access public |
|
144 | + * @param int $QST_wp_user |
|
145 | + */ |
|
146 | + public function set_wp_user($QST_wp_user = 1) |
|
147 | + { |
|
148 | + $this->set('QST_wp_user', $QST_wp_user); |
|
149 | + } |
|
150 | + |
|
151 | + |
|
152 | + /** |
|
153 | + * Sets whether the question has been deleted |
|
154 | + * (we use this boolean instead of actually |
|
155 | + * deleting it because when users delete this question |
|
156 | + * they really want to remove the question from future |
|
157 | + * forms, BUT keep their old answers which depend |
|
158 | + * on this record actually existing. |
|
159 | + * |
|
160 | + * @access public |
|
161 | + * @param bool $QST_deleted |
|
162 | + */ |
|
163 | + public function set_deleted($QST_deleted = false) |
|
164 | + { |
|
165 | + $this->set('QST_deleted', $QST_deleted); |
|
166 | + } |
|
167 | + |
|
168 | + |
|
169 | + /** |
|
170 | + * returns the text for displaying the question to users |
|
171 | + * |
|
172 | + * @access public |
|
173 | + * @return string |
|
174 | + */ |
|
175 | + public function display_text() |
|
176 | + { |
|
177 | + return $this->get('QST_display_text'); |
|
178 | + } |
|
179 | + |
|
180 | + |
|
181 | + /** |
|
182 | + * returns the text for the administrative label |
|
183 | + * |
|
184 | + * @access public |
|
185 | + * @return string |
|
186 | + */ |
|
187 | + public function admin_label() |
|
188 | + { |
|
189 | + return $this->get('QST_admin_label'); |
|
190 | + } |
|
191 | + |
|
192 | + |
|
193 | + /** |
|
194 | + * returns the attendee column name for this question |
|
195 | + * |
|
196 | + * @access public |
|
197 | + * @return string |
|
198 | + */ |
|
199 | + public function system_ID() |
|
200 | + { |
|
201 | + return $this->get('QST_system'); |
|
202 | + } |
|
203 | + |
|
204 | + |
|
205 | + /** |
|
206 | + * returns either a string of 'text', 'textfield', etc. |
|
207 | + * |
|
208 | + * @access public |
|
209 | + * @return boolean |
|
210 | + */ |
|
211 | + public function required() |
|
212 | + { |
|
213 | + return $this->get('QST_required'); |
|
214 | + } |
|
215 | + |
|
216 | + |
|
217 | + /** |
|
218 | + * returns the text which should be displayed when a user |
|
219 | + * doesn't answer this question in a form |
|
220 | + * |
|
221 | + * @access public |
|
222 | + * @return string |
|
223 | + */ |
|
224 | + public function required_text() |
|
225 | + { |
|
226 | + return $this->get('QST_required_text'); |
|
227 | + } |
|
228 | + |
|
229 | + |
|
230 | + /** |
|
231 | + * returns the type of this question |
|
232 | + * |
|
233 | + * @access public |
|
234 | + * @return string |
|
235 | + */ |
|
236 | + public function type() |
|
237 | + { |
|
238 | + return $this->get('QST_type'); |
|
239 | + } |
|
240 | + |
|
241 | + |
|
242 | + /** |
|
243 | + * returns an integer showing where this question should |
|
244 | + * be placed in a sequence of questions |
|
245 | + * |
|
246 | + * @access public |
|
247 | + * @return int |
|
248 | + */ |
|
249 | + public function order() |
|
250 | + { |
|
251 | + return $this->get('QST_order'); |
|
252 | + } |
|
253 | + |
|
254 | + |
|
255 | + /** |
|
256 | + * returns whether this question should only appears to admins, |
|
257 | + * or to everyone |
|
258 | + * |
|
259 | + * @access public |
|
260 | + * @return boolean |
|
261 | + */ |
|
262 | + public function admin_only() |
|
263 | + { |
|
264 | + return $this->get('QST_admin_only'); |
|
265 | + } |
|
266 | + |
|
267 | + |
|
268 | + /** |
|
269 | + * returns the id the wordpress user who created this question |
|
270 | + * |
|
271 | + * @access public |
|
272 | + * @return int |
|
273 | + */ |
|
274 | + public function wp_user() |
|
275 | + { |
|
276 | + return $this->get('QST_wp_user'); |
|
277 | + } |
|
278 | + |
|
279 | + |
|
280 | + /** |
|
281 | + * returns whether this question has been marked as 'deleted' |
|
282 | + * |
|
283 | + * @access public |
|
284 | + * @return boolean |
|
285 | + */ |
|
286 | + public function deleted() |
|
287 | + { |
|
288 | + return $this->get('QST_deleted'); |
|
289 | + } |
|
290 | + |
|
291 | + |
|
292 | + /** |
|
293 | + * Gets an array of related EE_Answer to this EE_Question |
|
294 | + * |
|
295 | + * @return EE_Answer[] |
|
296 | + */ |
|
297 | + public function answers() |
|
298 | + { |
|
299 | + return $this->get_many_related('Answer'); |
|
300 | + } |
|
301 | + |
|
302 | + |
|
303 | + /** |
|
304 | + * Boolean check for if there are answers on this question in th db |
|
305 | + * |
|
306 | + * @return boolean true = has answers, false = no answers. |
|
307 | + */ |
|
308 | + public function has_answers() |
|
309 | + { |
|
310 | + return $this->count_related('Answer') > 0 ? true : false; |
|
311 | + } |
|
312 | + |
|
313 | + |
|
314 | + /** |
|
315 | + * gets an array of EE_Question_Group which relate to this question |
|
316 | + * |
|
317 | + * @return EE_Question_Group[] |
|
318 | + */ |
|
319 | + public function question_groups() |
|
320 | + { |
|
321 | + return $this->get_many_related('Question_Group'); |
|
322 | + } |
|
323 | + |
|
324 | + |
|
325 | + /** |
|
326 | + * Returns all the options for this question. By default, it returns only the not-yet-deleted ones. |
|
327 | + * |
|
328 | + * @param boolean $notDeletedOptionsOnly 1 |
|
329 | + * whether to return ALL options, or only the ones which have |
|
330 | + * not yet been deleleted |
|
331 | + * @param string|array $selected_value_to_always_include , when retrieving options to an ANSWERED question, |
|
332 | + * we want to usually only show non-deleted options AND the |
|
333 | + * value that was selected for the answer, whether it was |
|
334 | + * trashed or not. |
|
335 | + * @return EE_Question_Option[] |
|
336 | + */ |
|
337 | + public function options($notDeletedOptionsOnly = true, $selected_value_to_always_include = null) |
|
338 | + { |
|
339 | + if (! $this->ID()) { |
|
340 | + return array(); |
|
341 | + } |
|
342 | + $query_params = array(); |
|
343 | + if ($selected_value_to_always_include) { |
|
344 | + if (is_array($selected_value_to_always_include)) { |
|
345 | + $query_params[0]['OR*options-query']['QSO_value'] = array('IN', $selected_value_to_always_include); |
|
346 | + } else { |
|
347 | + $query_params[0]['OR*options-query']['QSO_value'] = $selected_value_to_always_include; |
|
348 | + } |
|
349 | + } |
|
350 | + if ($notDeletedOptionsOnly) { |
|
351 | + $query_params[0]['OR*options-query']['QSO_deleted'] = false; |
|
352 | + } |
|
353 | + // order by QSO_order |
|
354 | + $query_params['order_by'] = array('QSO_order' => 'ASC'); |
|
355 | + return $this->get_many_related('Question_Option', $query_params); |
|
356 | + } |
|
357 | + |
|
358 | + |
|
359 | + /** |
|
360 | + * returns an array of EE_Question_Options which relate to this question |
|
361 | + * |
|
362 | + * @return \EE_Question_Option[] |
|
363 | + */ |
|
364 | + public function temp_options() |
|
365 | + { |
|
366 | + return $this->_model_relations['Question_Option']; |
|
367 | + } |
|
368 | + |
|
369 | + |
|
370 | + /** |
|
371 | + * Adds an option for this question. Note: if the option were previously associated with a different |
|
372 | + * Question, that relationship will be overwritten. |
|
373 | + * |
|
374 | + * @param EE_Question_Option $option |
|
375 | + * @return boolean success |
|
376 | + */ |
|
377 | + public function add_option(EE_Question_Option $option) |
|
378 | + { |
|
379 | + return $this->_add_relation_to($option, 'Question_Option'); |
|
380 | + } |
|
381 | + |
|
382 | + |
|
383 | + /** |
|
384 | + * Adds an option directly to this question without saving to the db |
|
385 | + * |
|
386 | + * @param EE_Question_Option $option |
|
387 | + * @return boolean success |
|
388 | + */ |
|
389 | + public function add_temp_option(EE_Question_Option $option) |
|
390 | + { |
|
391 | + $this->_model_relations['Question_Option'][] = $option; |
|
392 | + return true; |
|
393 | + } |
|
394 | + |
|
395 | + |
|
396 | + /** |
|
397 | + * Marks the option as deleted. |
|
398 | + * |
|
399 | + * @param EE_Question_Option $option |
|
400 | + * @return boolean success |
|
401 | + */ |
|
402 | + public function remove_option(EE_Question_Option $option) |
|
403 | + { |
|
404 | + return $this->_remove_relation_to($option, 'Question_Option'); |
|
405 | + } |
|
406 | + |
|
407 | + |
|
408 | + /** |
|
409 | + * @return bool |
|
410 | + */ |
|
411 | + public function is_system_question() |
|
412 | + { |
|
413 | + $system_ID = $this->get('QST_system'); |
|
414 | + return ! empty($system_ID) ? true : false; |
|
415 | + } |
|
416 | + |
|
417 | + |
|
418 | + /** |
|
419 | + * The purpose of this method is set the question order this question order to be the max out of all questions |
|
420 | + * |
|
421 | + * @access public |
|
422 | + * @return void |
|
423 | + */ |
|
424 | + public function set_order_to_latest() |
|
425 | + { |
|
426 | + $latest_order = $this->get_model()->get_latest_question_order(); |
|
427 | + $latest_order++; |
|
428 | + $this->set('QST_order', $latest_order); |
|
429 | + } |
|
430 | + |
|
431 | + |
|
432 | + /** |
|
433 | + * Retrieves the list of allowed question types from the model. |
|
434 | + * |
|
435 | + * @return string[] |
|
436 | + */ |
|
437 | + private function _allowed_question_types() |
|
438 | + { |
|
439 | + $questionModel = $this->get_model(); |
|
440 | + /* @var $questionModel EEM_Question */ |
|
441 | + return $questionModel->allowed_question_types(); |
|
442 | + } |
|
443 | + |
|
444 | + /** |
|
445 | + * Duplicates this question and its question options |
|
446 | + * |
|
447 | + * @return \EE_Question |
|
448 | + */ |
|
449 | + public function duplicate($options = array()) |
|
450 | + { |
|
451 | + $new_question = clone $this; |
|
452 | + $new_question->set('QST_ID', null); |
|
453 | + $new_question->set_display_text(sprintf(esc_html__('%s **Duplicate**', 'event_espresso'), $this->display_text())); |
|
454 | + $new_question->set_admin_label(sprintf(esc_html__('%s **Duplicate**', 'event_espresso'), $this->admin_label())); |
|
455 | + $new_question->set_system_ID(null); |
|
456 | + $new_question->set_wp_user(get_current_user_id()); |
|
457 | + // if we're duplicating a trashed question, assume we don't want the new one to be trashed |
|
458 | + $new_question->set_deleted(false); |
|
459 | + $success = $new_question->save(); |
|
460 | + if ($success) { |
|
461 | + // we don't totally want to duplicate the question options, because we want them to be for the NEW question |
|
462 | + foreach ($this->options() as $question_option) { |
|
463 | + $question_option->duplicate(array('QST_ID' => $new_question->ID())); |
|
464 | + } |
|
465 | + return $new_question; |
|
466 | + } else { |
|
467 | + return null; |
|
468 | + } |
|
469 | + } |
|
470 | + |
|
471 | + /** |
|
472 | + * Returns the question's maximum allowed response size |
|
473 | + * |
|
474 | + * @return int|float |
|
475 | + */ |
|
476 | + public function max() |
|
477 | + { |
|
478 | + return $this->get('QST_max'); |
|
479 | + } |
|
480 | + |
|
481 | + /** |
|
482 | + * Sets the question's maximum allowed response size |
|
483 | + * |
|
484 | + * @param int|float $new_max |
|
485 | + * @return void |
|
486 | + */ |
|
487 | + public function set_max($new_max) |
|
488 | + { |
|
489 | + $this->set('QST_max', $new_max); |
|
490 | + } |
|
491 | + |
|
492 | + |
|
493 | + /** |
|
494 | + * Creates a form input from this question which can be used in HTML forms |
|
495 | + * |
|
496 | + * @param EE_Registration $registration |
|
497 | + * @param EE_Answer $answer |
|
498 | + * @param array $input_constructor_args |
|
499 | + * @return EE_Form_Input_Base |
|
500 | + */ |
|
501 | + public function generate_form_input($registration = null, $answer = null, $input_constructor_args = array()) |
|
502 | + { |
|
503 | + $identifier = $this->is_system_question() ? $this->system_ID() : $this->ID(); |
|
504 | + |
|
505 | + $input_constructor_args = array_merge( |
|
506 | + array( |
|
507 | + 'required' => $this->required() ? true : false, |
|
508 | + 'html_label_text' => $this->display_text(), |
|
509 | + 'required_validation_error_message' => $this->required_text(), |
|
510 | + ), |
|
511 | + $input_constructor_args |
|
512 | + ); |
|
513 | + if (! $answer instanceof EE_Answer && $registration instanceof EE_Registration) { |
|
514 | + $answer = EEM_Answer::instance()->get_registration_question_answer_object($registration, $this->ID()); |
|
515 | + } |
|
516 | + // has this question been answered ? |
|
517 | + if ( |
|
518 | + $answer instanceof EE_Answer |
|
519 | + && $answer->value() !== '' |
|
520 | + ) { |
|
521 | + // answer gets htmlspecialchars called on it, undo that please |
|
522 | + // because the form input's display strategy may call esc_attr too |
|
523 | + // which also does html special characters |
|
524 | + $values_with_html_special_chars = $answer->value(); |
|
525 | + if (is_array($values_with_html_special_chars)) { |
|
526 | + $default_value = array_map('htmlspecialchars_decode', $values_with_html_special_chars); |
|
527 | + } else { |
|
528 | + $default_value = htmlspecialchars_decode($values_with_html_special_chars); |
|
529 | + } |
|
530 | + $input_constructor_args['default'] = $default_value; |
|
531 | + } |
|
532 | + $max_max_for_question = EEM_Question::instance()->absolute_max_for_system_question($this->system_ID()); |
|
533 | + if ( |
|
534 | + in_array( |
|
535 | + $this->type(), |
|
536 | + EEM_Question::instance()->questionTypesWithMaxLength(), |
|
537 | + true |
|
538 | + ) |
|
539 | + ) { |
|
540 | + $input_constructor_args['validation_strategies'][] = new EE_Max_Length_Validation_Strategy( |
|
541 | + null, |
|
542 | + min($max_max_for_question, $this->max()) |
|
543 | + ); |
|
544 | + } |
|
545 | + $input_constructor_args = apply_filters( |
|
546 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__input_constructor_args', |
|
547 | + $input_constructor_args, |
|
548 | + $registration, |
|
549 | + $this, |
|
550 | + $answer |
|
551 | + ); |
|
552 | + |
|
553 | + $result = null; |
|
554 | + switch ($this->type()) { |
|
555 | + // Text |
|
556 | + case EEM_Question::QST_type_text: |
|
557 | + $result = new EE_Text_Input($input_constructor_args); |
|
558 | + break; |
|
559 | + // Textarea |
|
560 | + case EEM_Question::QST_type_textarea: |
|
561 | + $result = new EE_Text_Area_Input($input_constructor_args); |
|
562 | + break; |
|
563 | + // Radio Buttons |
|
564 | + case EEM_Question::QST_type_radio: |
|
565 | + $result = new EE_Radio_Button_Input($this->options(), $input_constructor_args); |
|
566 | + break; |
|
567 | + // Dropdown |
|
568 | + case EEM_Question::QST_type_dropdown: |
|
569 | + $result = new EE_Select_Input($this->options(), $input_constructor_args); |
|
570 | + break; |
|
571 | + // State Dropdown |
|
572 | + case EEM_Question::QST_type_state: |
|
573 | + $state_options = apply_filters( |
|
574 | + 'FHEE__EE_Question__generate_form_input__state_options', |
|
575 | + null, |
|
576 | + $this, |
|
577 | + $registration, |
|
578 | + $answer |
|
579 | + ); |
|
580 | + $result = new EE_State_Select_Input($state_options, $input_constructor_args); |
|
581 | + break; |
|
582 | + // Country Dropdown |
|
583 | + case EEM_Question::QST_type_country: |
|
584 | + $country_options = apply_filters( |
|
585 | + 'FHEE__EE_Question__generate_form_input__country_options', |
|
586 | + null, |
|
587 | + $this, |
|
588 | + $registration, |
|
589 | + $answer |
|
590 | + ); |
|
591 | + $result = new EE_Country_Select_Input($country_options, $input_constructor_args); |
|
592 | + break; |
|
593 | + // Checkboxes |
|
594 | + case EEM_Question::QST_type_checkbox: |
|
595 | + $result = new EE_Checkbox_Multi_Input($this->options(), $input_constructor_args); |
|
596 | + break; |
|
597 | + // Date |
|
598 | + case EEM_Question::QST_type_date: |
|
599 | + $result = new EE_Datepicker_Input($input_constructor_args); |
|
600 | + break; |
|
601 | + case EEM_Question::QST_type_html_textarea: |
|
602 | + $input_constructor_args['validation_strategies'][] = new EE_Simple_HTML_Validation_Strategy(); |
|
603 | + $result = new EE_Text_Area_Input($input_constructor_args); |
|
604 | + $result->remove_validation_strategy('EE_Plaintext_Validation_Strategy'); |
|
605 | + break; |
|
606 | + case EEM_Question::QST_type_email: |
|
607 | + $result = new EE_Email_Input($input_constructor_args); |
|
608 | + break; |
|
609 | + // Email confirm |
|
610 | + case EEM_Question::QST_type_email_confirm: |
|
611 | + $result = new EE_Email_Confirm_Input($input_constructor_args); |
|
612 | + break; |
|
613 | + case EEM_Question::QST_type_us_phone: |
|
614 | + $result = new EE_Phone_Input($input_constructor_args); |
|
615 | + break; |
|
616 | + case EEM_Question::QST_type_int: |
|
617 | + $result = new EE_Integer_Input($input_constructor_args); |
|
618 | + break; |
|
619 | + case EEM_Question::QST_type_decimal: |
|
620 | + $result = new EE_Float_Input($input_constructor_args); |
|
621 | + break; |
|
622 | + case EEM_Question::QST_type_url: |
|
623 | + $input_constructor_args['validation_strategies'][] = LoaderFactory::getLoader()->getNew('EE_URL_Validation_Strategy'); |
|
624 | + $result = new EE_Text_Input($input_constructor_args); |
|
625 | + break; |
|
626 | + case EEM_Question::QST_type_year: |
|
627 | + $result = new EE_Year_Input( |
|
628 | + $input_constructor_args, |
|
629 | + apply_filters( |
|
630 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__year_question__four_digit', |
|
631 | + true, |
|
632 | + $this |
|
633 | + ), |
|
634 | + apply_filters( |
|
635 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__year_question__early_range', |
|
636 | + 100, |
|
637 | + $this |
|
638 | + ), |
|
639 | + apply_filters( |
|
640 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__year_question__end_range', |
|
641 | + 100, |
|
642 | + $this |
|
643 | + ) |
|
644 | + ); |
|
645 | + break; |
|
646 | + case EEM_Question::QST_type_multi_select: |
|
647 | + $result = new EE_Select_Multiple_Input($this->options(), $input_constructor_args); |
|
648 | + break; |
|
649 | + // fallback |
|
650 | + default: |
|
651 | + $default_input = apply_filters( |
|
652 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__default', |
|
653 | + null, |
|
654 | + $this->type(), |
|
655 | + $this, |
|
656 | + $input_constructor_args |
|
657 | + ); |
|
658 | + if (! $default_input) { |
|
659 | + $default_input = new EE_Text_Input($input_constructor_args); |
|
660 | + } |
|
661 | + $result = $default_input; |
|
662 | + } |
|
663 | + return apply_filters('FHEE__EE_Question__generate_form_input__return', $result, $registration, $this, $answer); |
|
664 | + } |
|
665 | + |
|
666 | + |
|
667 | + /** |
|
668 | + * Returns whether or not this question type should have question option entries |
|
669 | + * |
|
670 | + * @return bool |
|
671 | + */ |
|
672 | + public function should_have_question_options() |
|
673 | + { |
|
674 | + return in_array( |
|
675 | + $this->type(), |
|
676 | + $this->_model->question_types_with_options(), |
|
677 | + true |
|
678 | + ); |
|
679 | + } |
|
680 | 680 | } |
@@ -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 | } |
@@ -23,7 +23,7 @@ |
||
23 | 23 | */ |
24 | 24 | protected function __construct($fieldValues = array(), $bydb = false, $timezone = '') |
25 | 25 | { |
26 | - if (! isset($fieldValues['slug'])) { |
|
26 | + if ( ! isset($fieldValues['slug'])) { |
|
27 | 27 | $fieldValues['slug'] = $fieldValues['name']; |
28 | 28 | } |
29 | 29 | parent::__construct($fieldValues, $bydb, $timezone); |
@@ -11,87 +11,87 @@ |
||
11 | 11 | */ |
12 | 12 | class EE_Term extends EE_Base_Class |
13 | 13 | { |
14 | - public $post_type; |
|
14 | + public $post_type; |
|
15 | 15 | |
16 | - /** |
|
17 | - * Sets some dynamic defaults |
|
18 | - * |
|
19 | - * @param array $fieldValues |
|
20 | - * @param bool $bydb |
|
21 | - * @param string $timezone |
|
22 | - */ |
|
23 | - protected function __construct($fieldValues = array(), $bydb = false, $timezone = '') |
|
24 | - { |
|
25 | - if (! isset($fieldValues['slug'])) { |
|
26 | - $fieldValues['slug'] = $fieldValues['name']; |
|
27 | - } |
|
28 | - parent::__construct($fieldValues, $bydb, $timezone); |
|
29 | - } |
|
16 | + /** |
|
17 | + * Sets some dynamic defaults |
|
18 | + * |
|
19 | + * @param array $fieldValues |
|
20 | + * @param bool $bydb |
|
21 | + * @param string $timezone |
|
22 | + */ |
|
23 | + protected function __construct($fieldValues = array(), $bydb = false, $timezone = '') |
|
24 | + { |
|
25 | + if (! isset($fieldValues['slug'])) { |
|
26 | + $fieldValues['slug'] = $fieldValues['name']; |
|
27 | + } |
|
28 | + parent::__construct($fieldValues, $bydb, $timezone); |
|
29 | + } |
|
30 | 30 | |
31 | 31 | |
32 | - /** |
|
33 | - * @param array $props_n_values |
|
34 | - * @return EE_Term|mixed |
|
35 | - */ |
|
36 | - public static function new_instance($props_n_values = array()) |
|
37 | - { |
|
38 | - $has_object = parent::_check_for_object($props_n_values, __CLASS__); |
|
39 | - return $has_object ? $has_object : new self($props_n_values); |
|
40 | - } |
|
32 | + /** |
|
33 | + * @param array $props_n_values |
|
34 | + * @return EE_Term|mixed |
|
35 | + */ |
|
36 | + public static function new_instance($props_n_values = array()) |
|
37 | + { |
|
38 | + $has_object = parent::_check_for_object($props_n_values, __CLASS__); |
|
39 | + return $has_object ? $has_object : new self($props_n_values); |
|
40 | + } |
|
41 | 41 | |
42 | 42 | |
43 | - /** |
|
44 | - * @param array $props_n_values |
|
45 | - * @return EE_Term |
|
46 | - */ |
|
47 | - public static function new_instance_from_db($props_n_values = array()) |
|
48 | - { |
|
49 | - return new self($props_n_values, true); |
|
50 | - } |
|
43 | + /** |
|
44 | + * @param array $props_n_values |
|
45 | + * @return EE_Term |
|
46 | + */ |
|
47 | + public static function new_instance_from_db($props_n_values = array()) |
|
48 | + { |
|
49 | + return new self($props_n_values, true); |
|
50 | + } |
|
51 | 51 | |
52 | 52 | |
53 | - /** |
|
54 | - * Gets name |
|
55 | - * |
|
56 | - * @return string |
|
57 | - */ |
|
58 | - public function name() |
|
59 | - { |
|
60 | - return $this->get('name'); |
|
61 | - } |
|
53 | + /** |
|
54 | + * Gets name |
|
55 | + * |
|
56 | + * @return string |
|
57 | + */ |
|
58 | + public function name() |
|
59 | + { |
|
60 | + return $this->get('name'); |
|
61 | + } |
|
62 | 62 | |
63 | 63 | |
64 | - /** |
|
65 | - * Sets name |
|
66 | - * |
|
67 | - * @param string $name |
|
68 | - * @return boolean |
|
69 | - */ |
|
70 | - public function set_name($name) |
|
71 | - { |
|
72 | - $this->set('name', $name); |
|
73 | - } |
|
64 | + /** |
|
65 | + * Sets name |
|
66 | + * |
|
67 | + * @param string $name |
|
68 | + * @return boolean |
|
69 | + */ |
|
70 | + public function set_name($name) |
|
71 | + { |
|
72 | + $this->set('name', $name); |
|
73 | + } |
|
74 | 74 | |
75 | 75 | |
76 | - /** |
|
77 | - * Gets slug |
|
78 | - * |
|
79 | - * @return string |
|
80 | - */ |
|
81 | - public function slug() |
|
82 | - { |
|
83 | - return $this->get('slug'); |
|
84 | - } |
|
76 | + /** |
|
77 | + * Gets slug |
|
78 | + * |
|
79 | + * @return string |
|
80 | + */ |
|
81 | + public function slug() |
|
82 | + { |
|
83 | + return $this->get('slug'); |
|
84 | + } |
|
85 | 85 | |
86 | 86 | |
87 | - /** |
|
88 | - * Sets slug |
|
89 | - * |
|
90 | - * @param string $slug |
|
91 | - * @return boolean |
|
92 | - */ |
|
93 | - public function set_slug($slug) |
|
94 | - { |
|
95 | - $this->set('slug', $slug); |
|
96 | - } |
|
87 | + /** |
|
88 | + * Sets slug |
|
89 | + * |
|
90 | + * @param string $slug |
|
91 | + * @return boolean |
|
92 | + */ |
|
93 | + public function set_slug($slug) |
|
94 | + { |
|
95 | + $this->set('slug', $slug); |
|
96 | + } |
|
97 | 97 | } |
@@ -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 | } |
@@ -169,8 +169,8 @@ discard block |
||
169 | 169 | $this->_template_args['admin_page_subtitle'] = esc_html__( |
170 | 170 | 'Thank you for choosing Event Espresso, the most powerful, and free, Event Management plugin for WordPress.', |
171 | 171 | 'event_espresso' |
172 | - ) . $settings_message; |
|
173 | - $template = EE_ABOUT_TEMPLATE_PATH . 'ee4-overview.template.php'; |
|
172 | + ).$settings_message; |
|
173 | + $template = EE_ABOUT_TEMPLATE_PATH.'ee4-overview.template.php'; |
|
174 | 174 | $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
175 | 175 | $template, |
176 | 176 | $this->_template_args, |
@@ -182,7 +182,7 @@ discard block |
||
182 | 182 | |
183 | 183 | protected function _get_started_steps() |
184 | 184 | { |
185 | - $steps = '<h2>' . esc_html__('Getting Started', 'event_espresso') . '</h2>'; |
|
185 | + $steps = '<h2>'.esc_html__('Getting Started', 'event_espresso').'</h2>'; |
|
186 | 186 | $step_one = '<p>' |
187 | 187 | . sprintf( |
188 | 188 | esc_html__( |
@@ -193,7 +193,7 @@ discard block |
||
193 | 193 | '</strong>', |
194 | 194 | '<a href="admin.php?page=espresso_general_settings">', |
195 | 195 | '</a>' |
196 | - ) . '</strong></p>'; |
|
196 | + ).'</strong></p>'; |
|
197 | 197 | $step_two = '<p>' |
198 | 198 | . sprintf( |
199 | 199 | esc_html__('%sStep 2%s: Setup your %sPayment Methods%s.', 'event_espresso'), |
@@ -201,7 +201,7 @@ discard block |
||
201 | 201 | '</strong>', |
202 | 202 | '<a href="admin.php?page=espresso_payment_settings">', |
203 | 203 | '</a>' |
204 | - ) . '</strong></p>'; |
|
204 | + ).'</strong></p>'; |
|
205 | 205 | $step_three = '<p>' |
206 | 206 | . sprintf( |
207 | 207 | esc_html__('%sStep 3%s: Create your %sFirst Event%s.', 'event_espresso'), |
@@ -209,7 +209,7 @@ discard block |
||
209 | 209 | '</strong>', |
210 | 210 | '<a href="admin.php?page=espresso_events&action=create_new">', |
211 | 211 | '</a>' |
212 | - ) . '</strong></p>'; |
|
212 | + ).'</strong></p>'; |
|
213 | 213 | |
214 | 214 | // done? |
215 | 215 | $done_step_one = EE_Registry::instance()->CFG->organization->address_1 == '123 Onna Road' ? false : true; |
@@ -238,10 +238,10 @@ discard block |
||
238 | 238 | } |
239 | 239 | |
240 | 240 | // now let's put it together |
241 | - $steps .= sprintf('%s' . $step_one . '%s', $done_step_one ? '<strike>' : '', $done_step_one ? '</strike>' : ''); |
|
242 | - $steps .= sprintf('%s' . $step_two . '%s', $done_step_two ? '<strike>' : '', $done_step_two ? '</strike>' : ''); |
|
241 | + $steps .= sprintf('%s'.$step_one.'%s', $done_step_one ? '<strike>' : '', $done_step_one ? '</strike>' : ''); |
|
242 | + $steps .= sprintf('%s'.$step_two.'%s', $done_step_two ? '<strike>' : '', $done_step_two ? '</strike>' : ''); |
|
243 | 243 | $steps .= sprintf( |
244 | - '%s' . $step_three . '%s', |
|
244 | + '%s'.$step_three.'%s', |
|
245 | 245 | $done_step_three ? '<strike>' : '', |
246 | 246 | $done_step_three ? '</strike>' : '' |
247 | 247 | ); |
@@ -260,7 +260,7 @@ discard block |
||
260 | 260 | 'Thank you for choosing Event Espresso Decaf, the most powerful, and free, Event Management plugin for WordPress.', |
261 | 261 | 'event_espresso' |
262 | 262 | ); |
263 | - $template = EE_ABOUT_TEMPLATE_PATH . 'credits.template.php'; |
|
263 | + $template = EE_ABOUT_TEMPLATE_PATH.'credits.template.php'; |
|
264 | 264 | $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
265 | 265 | $template, |
266 | 266 | $this->_template_args, |
@@ -286,7 +286,7 @@ discard block |
||
286 | 286 | '<strong>', |
287 | 287 | '</strong>' |
288 | 288 | ); |
289 | - $template = EE_ABOUT_TEMPLATE_PATH . 'decafvpro.template.php'; |
|
289 | + $template = EE_ABOUT_TEMPLATE_PATH.'decafvpro.template.php'; |
|
290 | 290 | $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
291 | 291 | $template, |
292 | 292 | $this->_template_args, |
@@ -302,7 +302,7 @@ discard block |
||
302 | 302 | 'At Event Espresso, customer satisfaction is our ultimate goal.', |
303 | 303 | 'event_espresso' |
304 | 304 | ); |
305 | - $template = EE_ABOUT_TEMPLATE_PATH . 'reviews.template.php'; |
|
305 | + $template = EE_ABOUT_TEMPLATE_PATH.'reviews.template.php'; |
|
306 | 306 | $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
307 | 307 | $template, |
308 | 308 | $this->_template_args, |
@@ -15,132 +15,132 @@ discard block |
||
15 | 15 | */ |
16 | 16 | class About_Admin_Page extends EE_Admin_Page |
17 | 17 | { |
18 | - protected function _init_page_props() |
|
19 | - { |
|
20 | - $this->page_slug = EE_ABOUT_PG_SLUG; |
|
21 | - $this->page_label = esc_html__('About Event Espresso', 'event_espresso'); |
|
22 | - $this->_admin_base_url = EE_ABOUT_ADMIN_URL; |
|
23 | - $this->_admin_base_path = EE_ABOUT_ADMIN; |
|
24 | - } |
|
25 | - |
|
26 | - |
|
27 | - protected function _ajax_hooks() |
|
28 | - { |
|
29 | - // todo: all hooks for ajax goes here. |
|
30 | - } |
|
31 | - |
|
32 | - |
|
33 | - protected function _define_page_props() |
|
34 | - { |
|
35 | - $this->_labels = array(); |
|
36 | - $this->_admin_page_title = $this->page_label; |
|
37 | - } |
|
38 | - |
|
39 | - |
|
40 | - protected function _set_page_routes() |
|
41 | - { |
|
42 | - $this->_page_routes = array( |
|
43 | - 'default' => array( |
|
44 | - 'func' => '_overview', |
|
45 | - 'capability' => 'manage_options', |
|
46 | - ), |
|
47 | - // 'overview' => '_overview', |
|
48 | - // 'func' => '_overview', |
|
49 | - // 'capability' => 'ee_read_ee' |
|
50 | - // ), |
|
51 | - 'credits' => array( |
|
52 | - 'func' => '_credits', |
|
53 | - 'capability' => 'manage_options', |
|
54 | - ), |
|
55 | - |
|
56 | - 'decafvpro' => array( |
|
57 | - 'func' => '_decafvpro', |
|
58 | - 'capability' => 'manage_options', |
|
59 | - ), |
|
60 | - 'reviews' => array( |
|
61 | - 'func' => '_reviews', |
|
62 | - 'capability' => 'manage_options', |
|
63 | - ), |
|
64 | - ); |
|
65 | - } |
|
66 | - |
|
67 | - |
|
68 | - protected function _set_page_config() |
|
69 | - { |
|
70 | - $this->_page_config = array( |
|
71 | - /*'default' => array( |
|
18 | + protected function _init_page_props() |
|
19 | + { |
|
20 | + $this->page_slug = EE_ABOUT_PG_SLUG; |
|
21 | + $this->page_label = esc_html__('About Event Espresso', 'event_espresso'); |
|
22 | + $this->_admin_base_url = EE_ABOUT_ADMIN_URL; |
|
23 | + $this->_admin_base_path = EE_ABOUT_ADMIN; |
|
24 | + } |
|
25 | + |
|
26 | + |
|
27 | + protected function _ajax_hooks() |
|
28 | + { |
|
29 | + // todo: all hooks for ajax goes here. |
|
30 | + } |
|
31 | + |
|
32 | + |
|
33 | + protected function _define_page_props() |
|
34 | + { |
|
35 | + $this->_labels = array(); |
|
36 | + $this->_admin_page_title = $this->page_label; |
|
37 | + } |
|
38 | + |
|
39 | + |
|
40 | + protected function _set_page_routes() |
|
41 | + { |
|
42 | + $this->_page_routes = array( |
|
43 | + 'default' => array( |
|
44 | + 'func' => '_overview', |
|
45 | + 'capability' => 'manage_options', |
|
46 | + ), |
|
47 | + // 'overview' => '_overview', |
|
48 | + // 'func' => '_overview', |
|
49 | + // 'capability' => 'ee_read_ee' |
|
50 | + // ), |
|
51 | + 'credits' => array( |
|
52 | + 'func' => '_credits', |
|
53 | + 'capability' => 'manage_options', |
|
54 | + ), |
|
55 | + |
|
56 | + 'decafvpro' => array( |
|
57 | + 'func' => '_decafvpro', |
|
58 | + 'capability' => 'manage_options', |
|
59 | + ), |
|
60 | + 'reviews' => array( |
|
61 | + 'func' => '_reviews', |
|
62 | + 'capability' => 'manage_options', |
|
63 | + ), |
|
64 | + ); |
|
65 | + } |
|
66 | + |
|
67 | + |
|
68 | + protected function _set_page_config() |
|
69 | + { |
|
70 | + $this->_page_config = array( |
|
71 | + /*'default' => array( |
|
72 | 72 | 'nav' => array( |
73 | 73 | 'label' => esc_html__('What\'s New', 'event_espresso'), |
74 | 74 | 'order' => 10), |
75 | 75 | 'require_nonce' => FALSE |
76 | 76 | ),*/ |
77 | - // 'overview' => array( |
|
78 | - 'default' => array( |
|
79 | - 'nav' => array( |
|
80 | - 'label' => esc_html__('About', 'event_espresso'), |
|
81 | - 'icon' => 'dashicons-welcome-learn-more', |
|
82 | - 'order' => 20, |
|
83 | - ), |
|
84 | - 'require_nonce' => false, |
|
85 | - ), |
|
86 | - 'credits' => array( |
|
87 | - 'nav' => array( |
|
88 | - 'label' => esc_html__('Credits', 'event_espresso'), |
|
89 | - 'icon' => 'dashicons-thumbs-up', |
|
90 | - 'order' => 30, |
|
91 | - ), |
|
92 | - 'require_nonce' => false, |
|
93 | - ), |
|
94 | - |
|
95 | - 'decafvpro' => array( |
|
96 | - 'nav' => array( |
|
97 | - 'label' => esc_html__('Decaf vs Regular', 'event_espresso'), |
|
98 | - 'icon' => 'dashicons-editor-code', |
|
99 | - 'order' => 40, |
|
100 | - ), |
|
101 | - 'require_nonce' => false, |
|
102 | - ), |
|
103 | - 'reviews' => array( |
|
104 | - 'nav' => array( |
|
105 | - 'label' => esc_html__('Reviews', 'event_espresso'), |
|
106 | - 'icon' => 'dashicons-star-filled', |
|
107 | - 'order' => 50, |
|
108 | - ), |
|
109 | - 'require_nonce' => false, |
|
110 | - ), |
|
111 | - ); |
|
112 | - } |
|
113 | - |
|
114 | - |
|
115 | - // none of the below group are currently used for Support pages |
|
116 | - protected function _add_screen_options() |
|
117 | - { |
|
118 | - } |
|
119 | - |
|
120 | - protected function _add_feature_pointers() |
|
121 | - { |
|
122 | - } |
|
123 | - |
|
124 | - public function admin_init() |
|
125 | - { |
|
126 | - } |
|
127 | - |
|
128 | - public function admin_notices() |
|
129 | - { |
|
130 | - } |
|
131 | - |
|
132 | - public function admin_footer_scripts() |
|
133 | - { |
|
134 | - } |
|
135 | - |
|
136 | - public function load_scripts_styles() |
|
137 | - { |
|
138 | - } |
|
139 | - |
|
140 | - |
|
141 | - protected function _whats_new() |
|
142 | - { |
|
143 | - /*$steps = EE_Maintenance_Mode::instance()->level() != EE_Maintenance_Mode::level_2_complete_maintenance ? $this->_get_started_steps() : FALSE; |
|
77 | + // 'overview' => array( |
|
78 | + 'default' => array( |
|
79 | + 'nav' => array( |
|
80 | + 'label' => esc_html__('About', 'event_espresso'), |
|
81 | + 'icon' => 'dashicons-welcome-learn-more', |
|
82 | + 'order' => 20, |
|
83 | + ), |
|
84 | + 'require_nonce' => false, |
|
85 | + ), |
|
86 | + 'credits' => array( |
|
87 | + 'nav' => array( |
|
88 | + 'label' => esc_html__('Credits', 'event_espresso'), |
|
89 | + 'icon' => 'dashicons-thumbs-up', |
|
90 | + 'order' => 30, |
|
91 | + ), |
|
92 | + 'require_nonce' => false, |
|
93 | + ), |
|
94 | + |
|
95 | + 'decafvpro' => array( |
|
96 | + 'nav' => array( |
|
97 | + 'label' => esc_html__('Decaf vs Regular', 'event_espresso'), |
|
98 | + 'icon' => 'dashicons-editor-code', |
|
99 | + 'order' => 40, |
|
100 | + ), |
|
101 | + 'require_nonce' => false, |
|
102 | + ), |
|
103 | + 'reviews' => array( |
|
104 | + 'nav' => array( |
|
105 | + 'label' => esc_html__('Reviews', 'event_espresso'), |
|
106 | + 'icon' => 'dashicons-star-filled', |
|
107 | + 'order' => 50, |
|
108 | + ), |
|
109 | + 'require_nonce' => false, |
|
110 | + ), |
|
111 | + ); |
|
112 | + } |
|
113 | + |
|
114 | + |
|
115 | + // none of the below group are currently used for Support pages |
|
116 | + protected function _add_screen_options() |
|
117 | + { |
|
118 | + } |
|
119 | + |
|
120 | + protected function _add_feature_pointers() |
|
121 | + { |
|
122 | + } |
|
123 | + |
|
124 | + public function admin_init() |
|
125 | + { |
|
126 | + } |
|
127 | + |
|
128 | + public function admin_notices() |
|
129 | + { |
|
130 | + } |
|
131 | + |
|
132 | + public function admin_footer_scripts() |
|
133 | + { |
|
134 | + } |
|
135 | + |
|
136 | + public function load_scripts_styles() |
|
137 | + { |
|
138 | + } |
|
139 | + |
|
140 | + |
|
141 | + protected function _whats_new() |
|
142 | + { |
|
143 | + /*$steps = EE_Maintenance_Mode::instance()->level() != EE_Maintenance_Mode::level_2_complete_maintenance ? $this->_get_started_steps() : FALSE; |
|
144 | 144 | $steps = $steps !== FALSE ? $steps : ''; |
145 | 145 | $this->_admin_page_title = sprintf( esc_html__('Welcome to Event Espresso %s', 'event_espresso'), EVENT_ESPRESSO_VERSION ); |
146 | 146 | $settings_message = $steps; |
@@ -148,168 +148,168 @@ discard block |
||
148 | 148 | $template = EE_ABOUT_TEMPLATE_PATH . 'whats_new.template.php'; |
149 | 149 | $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( $template, $this->_template_args, TRUE ); |
150 | 150 | $this->display_about_admin_page();*/ |
151 | - } |
|
151 | + } |
|
152 | 152 | |
153 | 153 | |
154 | - protected function _overview() |
|
155 | - { |
|
156 | - /*$this->_template_args['admin_page_title'] = esc_html__('About Event Espresso', 'event_espresso'); |
|
154 | + protected function _overview() |
|
155 | + { |
|
156 | + /*$this->_template_args['admin_page_title'] = esc_html__('About Event Espresso', 'event_espresso'); |
|
157 | 157 | $this->_template_args['admin_page_subtitle'] = esc_html__('Thank you for choosing Event Espresso Decaf, the most powerful, and free, Event Management plugin for WordPress.', 'event_espresso'); |
158 | 158 | $template = EE_ABOUT_TEMPLATE_PATH . 'ee4-overview.template.php'; |
159 | 159 | $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( $template, $this->_template_args, TRUE ); |
160 | 160 | $this->display_about_admin_page();*/ |
161 | 161 | |
162 | - // Copied from _whats_new() |
|
163 | - $steps = EE_Maintenance_Mode::instance()->level() != EE_Maintenance_Mode::level_2_complete_maintenance |
|
164 | - ? $this->_get_started_steps() : false; |
|
165 | - $steps = $steps !== false ? $steps : ''; |
|
166 | - $this->_admin_page_title = sprintf( |
|
167 | - esc_html__('Welcome to Event Espresso %s', 'event_espresso'), |
|
168 | - EVENT_ESPRESSO_VERSION |
|
169 | - ); |
|
170 | - $settings_message = $steps; |
|
171 | - $this->_template_args['admin_page_subtitle'] = esc_html__( |
|
172 | - 'Thank you for choosing Event Espresso, the most powerful, and free, Event Management plugin for WordPress.', |
|
173 | - 'event_espresso' |
|
174 | - ) . $settings_message; |
|
175 | - $template = EE_ABOUT_TEMPLATE_PATH . 'ee4-overview.template.php'; |
|
176 | - $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
177 | - $template, |
|
178 | - $this->_template_args, |
|
179 | - true |
|
180 | - ); |
|
181 | - $this->display_about_admin_page(); |
|
182 | - } |
|
183 | - |
|
184 | - |
|
185 | - protected function _get_started_steps() |
|
186 | - { |
|
187 | - $steps = '<h2>' . esc_html__('Getting Started', 'event_espresso') . '</h2>'; |
|
188 | - $step_one = '<p>' |
|
189 | - . sprintf( |
|
190 | - esc_html__( |
|
191 | - '%sStep 1%s: Visit your %sOrganization Settings%s and add/update your details.', |
|
192 | - 'event_espresso' |
|
193 | - ), |
|
194 | - '<strong>', |
|
195 | - '</strong>', |
|
196 | - '<a href="admin.php?page=espresso_general_settings">', |
|
197 | - '</a>' |
|
198 | - ) . '</strong></p>'; |
|
199 | - $step_two = '<p>' |
|
200 | - . sprintf( |
|
201 | - esc_html__('%sStep 2%s: Setup your %sPayment Methods%s.', 'event_espresso'), |
|
202 | - '<strong>', |
|
203 | - '</strong>', |
|
204 | - '<a href="admin.php?page=espresso_payment_settings">', |
|
205 | - '</a>' |
|
206 | - ) . '</strong></p>'; |
|
207 | - $step_three = '<p>' |
|
208 | - . sprintf( |
|
209 | - esc_html__('%sStep 3%s: Create your %sFirst Event%s.', 'event_espresso'), |
|
210 | - '<strong>', |
|
211 | - '</strong>', |
|
212 | - '<a href="admin.php?page=espresso_events&action=create_new">', |
|
213 | - '</a>' |
|
214 | - ) . '</strong></p>'; |
|
215 | - |
|
216 | - // done? |
|
217 | - $done_step_one = EE_Registry::instance()->CFG->organization->address_1 == '123 Onna Road' ? false : true; |
|
218 | - $active_invoice_pm = EEM_Payment_Method::instance()->get_one_active( |
|
219 | - EEM_Payment_Method::scope_cart, |
|
220 | - array(array('PMD_type' => 'Invoice')) |
|
221 | - ); |
|
222 | - $active_pms_count = EEM_Payment_Method::instance()->count_active(EEM_Payment_Method::scope_cart); |
|
223 | - // done step two if a non-invoice paymetn method is active; or there is more than one PM active, or |
|
224 | - // if only the invoice is active but it's clearly been updated |
|
225 | - $done_step_two = $active_pms_count > 1 || |
|
226 | - ($active_pms_count === 1 && ! $active_invoice_pm) || |
|
227 | - ($active_invoice_pm instanceof EE_Payment_Method && ( |
|
228 | - $active_invoice_pm->get_extra_meta('pdf_payee_name', true, '') || |
|
229 | - $active_invoice_pm->get_extra_meta('pdf_payee_email', true, '') || |
|
230 | - $active_invoice_pm->get_extra_meta('pdf_payee_tax_number', true, '') || |
|
231 | - $active_invoice_pm->get_extra_meta('pdf_payee_address', true, '') || |
|
232 | - $active_invoice_pm->get_extra_meta('page_extra_info', true, '') |
|
233 | - ) |
|
234 | - ); |
|
235 | - $done_step_three = EE_Registry::instance()->load_model('Event')->count() > 0 ? true : false; |
|
236 | - |
|
237 | - // if ALL steps are done, let's just return FALSE so we don't display anything |
|
238 | - if ($done_step_one && $done_step_two && $done_step_three) { |
|
239 | - return false; |
|
240 | - } |
|
241 | - |
|
242 | - // now let's put it together |
|
243 | - $steps .= sprintf('%s' . $step_one . '%s', $done_step_one ? '<strike>' : '', $done_step_one ? '</strike>' : ''); |
|
244 | - $steps .= sprintf('%s' . $step_two . '%s', $done_step_two ? '<strike>' : '', $done_step_two ? '</strike>' : ''); |
|
245 | - $steps .= sprintf( |
|
246 | - '%s' . $step_three . '%s', |
|
247 | - $done_step_three ? '<strike>' : '', |
|
248 | - $done_step_three ? '</strike>' : '' |
|
249 | - ); |
|
250 | - |
|
251 | - return $steps; |
|
252 | - } |
|
253 | - |
|
254 | - |
|
255 | - protected function _credits() |
|
256 | - { |
|
257 | - $this->_template_args['admin_page_title'] = sprintf( |
|
258 | - esc_html__('Welcome to Event Espresso %s', 'event_espresso'), |
|
259 | - EVENT_ESPRESSO_VERSION |
|
260 | - ); |
|
261 | - $this->_template_args['admin_page_subtitle'] = esc_html__( |
|
262 | - 'Thank you for choosing Event Espresso Decaf, the most powerful, and free, Event Management plugin for WordPress.', |
|
263 | - 'event_espresso' |
|
264 | - ); |
|
265 | - $template = EE_ABOUT_TEMPLATE_PATH . 'credits.template.php'; |
|
266 | - $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
267 | - $template, |
|
268 | - $this->_template_args, |
|
269 | - true |
|
270 | - ); |
|
271 | - $this->display_about_admin_page(); |
|
272 | - } |
|
273 | - |
|
274 | - |
|
275 | - protected function _decafvpro() |
|
276 | - { |
|
277 | - $this->_template_args['admin_page_title'] = sprintf( |
|
278 | - esc_html__('Welcome to Event Espresso %s', 'event_espresso'), |
|
279 | - EVENT_ESPRESSO_VERSION |
|
280 | - ); |
|
281 | - $this->_template_args['admin_page_subtitle'] = sprintf( |
|
282 | - esc_html__( |
|
283 | - 'Event Espresso lets you focus on doing %swhat you love%s — %sorganizing your events%s', |
|
284 | - 'event_espresso' |
|
285 | - ), |
|
286 | - '<em>', |
|
287 | - '</em>', |
|
288 | - '<strong>', |
|
289 | - '</strong>' |
|
290 | - ); |
|
291 | - $template = EE_ABOUT_TEMPLATE_PATH . 'decafvpro.template.php'; |
|
292 | - $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
293 | - $template, |
|
294 | - $this->_template_args, |
|
295 | - true |
|
296 | - ); |
|
297 | - $this->display_about_admin_page(); |
|
298 | - } |
|
299 | - |
|
300 | - protected function _reviews() |
|
301 | - { |
|
302 | - $this->_template_args['admin_page_title'] = esc_html__('Rave Reviews About Event Espresso 4', 'event_espresso'); |
|
303 | - $this->_template_args['admin_page_subtitle'] = esc_html__( |
|
304 | - 'At Event Espresso, customer satisfaction is our ultimate goal.', |
|
305 | - 'event_espresso' |
|
306 | - ); |
|
307 | - $template = EE_ABOUT_TEMPLATE_PATH . 'reviews.template.php'; |
|
308 | - $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
309 | - $template, |
|
310 | - $this->_template_args, |
|
311 | - true |
|
312 | - ); |
|
313 | - $this->display_about_admin_page(); |
|
314 | - } |
|
162 | + // Copied from _whats_new() |
|
163 | + $steps = EE_Maintenance_Mode::instance()->level() != EE_Maintenance_Mode::level_2_complete_maintenance |
|
164 | + ? $this->_get_started_steps() : false; |
|
165 | + $steps = $steps !== false ? $steps : ''; |
|
166 | + $this->_admin_page_title = sprintf( |
|
167 | + esc_html__('Welcome to Event Espresso %s', 'event_espresso'), |
|
168 | + EVENT_ESPRESSO_VERSION |
|
169 | + ); |
|
170 | + $settings_message = $steps; |
|
171 | + $this->_template_args['admin_page_subtitle'] = esc_html__( |
|
172 | + 'Thank you for choosing Event Espresso, the most powerful, and free, Event Management plugin for WordPress.', |
|
173 | + 'event_espresso' |
|
174 | + ) . $settings_message; |
|
175 | + $template = EE_ABOUT_TEMPLATE_PATH . 'ee4-overview.template.php'; |
|
176 | + $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
177 | + $template, |
|
178 | + $this->_template_args, |
|
179 | + true |
|
180 | + ); |
|
181 | + $this->display_about_admin_page(); |
|
182 | + } |
|
183 | + |
|
184 | + |
|
185 | + protected function _get_started_steps() |
|
186 | + { |
|
187 | + $steps = '<h2>' . esc_html__('Getting Started', 'event_espresso') . '</h2>'; |
|
188 | + $step_one = '<p>' |
|
189 | + . sprintf( |
|
190 | + esc_html__( |
|
191 | + '%sStep 1%s: Visit your %sOrganization Settings%s and add/update your details.', |
|
192 | + 'event_espresso' |
|
193 | + ), |
|
194 | + '<strong>', |
|
195 | + '</strong>', |
|
196 | + '<a href="admin.php?page=espresso_general_settings">', |
|
197 | + '</a>' |
|
198 | + ) . '</strong></p>'; |
|
199 | + $step_two = '<p>' |
|
200 | + . sprintf( |
|
201 | + esc_html__('%sStep 2%s: Setup your %sPayment Methods%s.', 'event_espresso'), |
|
202 | + '<strong>', |
|
203 | + '</strong>', |
|
204 | + '<a href="admin.php?page=espresso_payment_settings">', |
|
205 | + '</a>' |
|
206 | + ) . '</strong></p>'; |
|
207 | + $step_three = '<p>' |
|
208 | + . sprintf( |
|
209 | + esc_html__('%sStep 3%s: Create your %sFirst Event%s.', 'event_espresso'), |
|
210 | + '<strong>', |
|
211 | + '</strong>', |
|
212 | + '<a href="admin.php?page=espresso_events&action=create_new">', |
|
213 | + '</a>' |
|
214 | + ) . '</strong></p>'; |
|
215 | + |
|
216 | + // done? |
|
217 | + $done_step_one = EE_Registry::instance()->CFG->organization->address_1 == '123 Onna Road' ? false : true; |
|
218 | + $active_invoice_pm = EEM_Payment_Method::instance()->get_one_active( |
|
219 | + EEM_Payment_Method::scope_cart, |
|
220 | + array(array('PMD_type' => 'Invoice')) |
|
221 | + ); |
|
222 | + $active_pms_count = EEM_Payment_Method::instance()->count_active(EEM_Payment_Method::scope_cart); |
|
223 | + // done step two if a non-invoice paymetn method is active; or there is more than one PM active, or |
|
224 | + // if only the invoice is active but it's clearly been updated |
|
225 | + $done_step_two = $active_pms_count > 1 || |
|
226 | + ($active_pms_count === 1 && ! $active_invoice_pm) || |
|
227 | + ($active_invoice_pm instanceof EE_Payment_Method && ( |
|
228 | + $active_invoice_pm->get_extra_meta('pdf_payee_name', true, '') || |
|
229 | + $active_invoice_pm->get_extra_meta('pdf_payee_email', true, '') || |
|
230 | + $active_invoice_pm->get_extra_meta('pdf_payee_tax_number', true, '') || |
|
231 | + $active_invoice_pm->get_extra_meta('pdf_payee_address', true, '') || |
|
232 | + $active_invoice_pm->get_extra_meta('page_extra_info', true, '') |
|
233 | + ) |
|
234 | + ); |
|
235 | + $done_step_three = EE_Registry::instance()->load_model('Event')->count() > 0 ? true : false; |
|
236 | + |
|
237 | + // if ALL steps are done, let's just return FALSE so we don't display anything |
|
238 | + if ($done_step_one && $done_step_two && $done_step_three) { |
|
239 | + return false; |
|
240 | + } |
|
241 | + |
|
242 | + // now let's put it together |
|
243 | + $steps .= sprintf('%s' . $step_one . '%s', $done_step_one ? '<strike>' : '', $done_step_one ? '</strike>' : ''); |
|
244 | + $steps .= sprintf('%s' . $step_two . '%s', $done_step_two ? '<strike>' : '', $done_step_two ? '</strike>' : ''); |
|
245 | + $steps .= sprintf( |
|
246 | + '%s' . $step_three . '%s', |
|
247 | + $done_step_three ? '<strike>' : '', |
|
248 | + $done_step_three ? '</strike>' : '' |
|
249 | + ); |
|
250 | + |
|
251 | + return $steps; |
|
252 | + } |
|
253 | + |
|
254 | + |
|
255 | + protected function _credits() |
|
256 | + { |
|
257 | + $this->_template_args['admin_page_title'] = sprintf( |
|
258 | + esc_html__('Welcome to Event Espresso %s', 'event_espresso'), |
|
259 | + EVENT_ESPRESSO_VERSION |
|
260 | + ); |
|
261 | + $this->_template_args['admin_page_subtitle'] = esc_html__( |
|
262 | + 'Thank you for choosing Event Espresso Decaf, the most powerful, and free, Event Management plugin for WordPress.', |
|
263 | + 'event_espresso' |
|
264 | + ); |
|
265 | + $template = EE_ABOUT_TEMPLATE_PATH . 'credits.template.php'; |
|
266 | + $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
267 | + $template, |
|
268 | + $this->_template_args, |
|
269 | + true |
|
270 | + ); |
|
271 | + $this->display_about_admin_page(); |
|
272 | + } |
|
273 | + |
|
274 | + |
|
275 | + protected function _decafvpro() |
|
276 | + { |
|
277 | + $this->_template_args['admin_page_title'] = sprintf( |
|
278 | + esc_html__('Welcome to Event Espresso %s', 'event_espresso'), |
|
279 | + EVENT_ESPRESSO_VERSION |
|
280 | + ); |
|
281 | + $this->_template_args['admin_page_subtitle'] = sprintf( |
|
282 | + esc_html__( |
|
283 | + 'Event Espresso lets you focus on doing %swhat you love%s — %sorganizing your events%s', |
|
284 | + 'event_espresso' |
|
285 | + ), |
|
286 | + '<em>', |
|
287 | + '</em>', |
|
288 | + '<strong>', |
|
289 | + '</strong>' |
|
290 | + ); |
|
291 | + $template = EE_ABOUT_TEMPLATE_PATH . 'decafvpro.template.php'; |
|
292 | + $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
293 | + $template, |
|
294 | + $this->_template_args, |
|
295 | + true |
|
296 | + ); |
|
297 | + $this->display_about_admin_page(); |
|
298 | + } |
|
299 | + |
|
300 | + protected function _reviews() |
|
301 | + { |
|
302 | + $this->_template_args['admin_page_title'] = esc_html__('Rave Reviews About Event Espresso 4', 'event_espresso'); |
|
303 | + $this->_template_args['admin_page_subtitle'] = esc_html__( |
|
304 | + 'At Event Espresso, customer satisfaction is our ultimate goal.', |
|
305 | + 'event_espresso' |
|
306 | + ); |
|
307 | + $template = EE_ABOUT_TEMPLATE_PATH . 'reviews.template.php'; |
|
308 | + $this->_template_args['about_admin_page_content'] = EEH_Template::display_template( |
|
309 | + $template, |
|
310 | + $this->_template_args, |
|
311 | + true |
|
312 | + ); |
|
313 | + $this->display_about_admin_page(); |
|
314 | + } |
|
315 | 315 | } |
@@ -19,8 +19,8 @@ discard block |
||
19 | 19 | { |
20 | 20 | $this->_qtipsa = array( |
21 | 21 | 0 => array( |
22 | - 'content_id' => 'message_status-' . EEM_Message::status_sent, |
|
23 | - 'target' => '.msg-status-' . EEM_Message::status_sent, |
|
22 | + 'content_id' => 'message_status-'.EEM_Message::status_sent, |
|
23 | + 'target' => '.msg-status-'.EEM_Message::status_sent, |
|
24 | 24 | 'content' => $this->_message_status_legend(EEM_Message::status_sent), |
25 | 25 | 'options' => array( |
26 | 26 | 'position' => array( |
@@ -29,8 +29,8 @@ discard block |
||
29 | 29 | ), |
30 | 30 | ), |
31 | 31 | 1 => array( |
32 | - 'content_id' => 'message_status-' . EEM_Message::status_idle, |
|
33 | - 'target' => '.msg-status-' . EEM_Message::status_idle, |
|
32 | + 'content_id' => 'message_status-'.EEM_Message::status_idle, |
|
33 | + 'target' => '.msg-status-'.EEM_Message::status_idle, |
|
34 | 34 | 'content' => $this->_message_status_legend(EEM_Message::status_idle), |
35 | 35 | 'options' => array( |
36 | 36 | 'position' => array( |
@@ -39,8 +39,8 @@ discard block |
||
39 | 39 | ), |
40 | 40 | ), |
41 | 41 | 2 => array( |
42 | - 'content_id' => 'message_status-' . EEM_Message::status_failed, |
|
43 | - 'target' => '.msg-status-' . EEM_Message::status_failed, |
|
42 | + 'content_id' => 'message_status-'.EEM_Message::status_failed, |
|
43 | + 'target' => '.msg-status-'.EEM_Message::status_failed, |
|
44 | 44 | 'content' => $this->_message_status_legend(EEM_Message::status_failed), |
45 | 45 | 'options' => array( |
46 | 46 | 'position' => array( |
@@ -49,8 +49,8 @@ discard block |
||
49 | 49 | ), |
50 | 50 | ), |
51 | 51 | 3 => array( |
52 | - 'content_id' => 'message_status-' . EEM_Message::status_resend, |
|
53 | - 'target' => '.msg-status-' . EEM_Message::status_resend, |
|
52 | + 'content_id' => 'message_status-'.EEM_Message::status_resend, |
|
53 | + 'target' => '.msg-status-'.EEM_Message::status_resend, |
|
54 | 54 | 'content' => $this->_message_status_legend(EEM_Message::status_resend), |
55 | 55 | 'options' => array( |
56 | 56 | 'position' => array( |
@@ -59,8 +59,8 @@ discard block |
||
59 | 59 | ), |
60 | 60 | ), |
61 | 61 | 4 => array( |
62 | - 'content_id' => 'message_status-' . EEM_Message::status_incomplete, |
|
63 | - 'target' => '.msg-status-' . EEM_Message::status_incomplete, |
|
62 | + 'content_id' => 'message_status-'.EEM_Message::status_incomplete, |
|
63 | + 'target' => '.msg-status-'.EEM_Message::status_incomplete, |
|
64 | 64 | 'content' => $this->_message_status_legend(EEM_Message::status_incomplete), |
65 | 65 | 'options' => array( |
66 | 66 | 'position' => array( |
@@ -69,8 +69,8 @@ discard block |
||
69 | 69 | ), |
70 | 70 | ), |
71 | 71 | 5 => array( |
72 | - 'content_id' => 'message_status-' . EEM_Message::status_retry, |
|
73 | - 'target' => '.msg-status-' . EEM_Message::status_retry, |
|
72 | + 'content_id' => 'message_status-'.EEM_Message::status_retry, |
|
73 | + 'target' => '.msg-status-'.EEM_Message::status_retry, |
|
74 | 74 | 'content' => $this->_message_status_legend(EEM_Message::status_retry), |
75 | 75 | 'options' => array( |
76 | 76 | 'position' => array( |
@@ -79,8 +79,8 @@ discard block |
||
79 | 79 | ), |
80 | 80 | ), |
81 | 81 | 6 => array( |
82 | - 'content_id' => 'message_status-' . EEM_Message::status_debug_only, |
|
83 | - 'target' => '.msg-status-' . EEM_Message::status_debug_only, |
|
82 | + 'content_id' => 'message_status-'.EEM_Message::status_debug_only, |
|
83 | + 'target' => '.msg-status-'.EEM_Message::status_debug_only, |
|
84 | 84 | 'content' => $this->_message_status_legend(EEM_Message::status_debug_only), |
85 | 85 | 'options' => array( |
86 | 86 | 'position' => array( |
@@ -13,105 +13,105 @@ |
||
13 | 13 | */ |
14 | 14 | class EE_Message_List_Table_Tips extends EE_Qtip_Config |
15 | 15 | { |
16 | - protected function _set_tips_array() |
|
17 | - { |
|
18 | - $this->_qtipsa = array( |
|
19 | - 0 => array( |
|
20 | - 'content_id' => 'message_status-' . EEM_Message::status_sent, |
|
21 | - 'target' => '.msg-status-' . EEM_Message::status_sent, |
|
22 | - 'content' => $this->_message_status_legend(EEM_Message::status_sent), |
|
23 | - 'options' => array( |
|
24 | - 'position' => array( |
|
25 | - 'target' => 'mouse', |
|
26 | - ), |
|
27 | - ), |
|
28 | - ), |
|
29 | - 1 => array( |
|
30 | - 'content_id' => 'message_status-' . EEM_Message::status_idle, |
|
31 | - 'target' => '.msg-status-' . EEM_Message::status_idle, |
|
32 | - 'content' => $this->_message_status_legend(EEM_Message::status_idle), |
|
33 | - 'options' => array( |
|
34 | - 'position' => array( |
|
35 | - 'target' => 'mouse', |
|
36 | - ), |
|
37 | - ), |
|
38 | - ), |
|
39 | - 2 => array( |
|
40 | - 'content_id' => 'message_status-' . EEM_Message::status_failed, |
|
41 | - 'target' => '.msg-status-' . EEM_Message::status_failed, |
|
42 | - 'content' => $this->_message_status_legend(EEM_Message::status_failed), |
|
43 | - 'options' => array( |
|
44 | - 'position' => array( |
|
45 | - 'target' => 'mouse', |
|
46 | - ), |
|
47 | - ), |
|
48 | - ), |
|
49 | - 3 => array( |
|
50 | - 'content_id' => 'message_status-' . EEM_Message::status_resend, |
|
51 | - 'target' => '.msg-status-' . EEM_Message::status_resend, |
|
52 | - 'content' => $this->_message_status_legend(EEM_Message::status_resend), |
|
53 | - 'options' => array( |
|
54 | - 'position' => array( |
|
55 | - 'target' => 'mouse', |
|
56 | - ), |
|
57 | - ), |
|
58 | - ), |
|
59 | - 4 => array( |
|
60 | - 'content_id' => 'message_status-' . EEM_Message::status_incomplete, |
|
61 | - 'target' => '.msg-status-' . EEM_Message::status_incomplete, |
|
62 | - 'content' => $this->_message_status_legend(EEM_Message::status_incomplete), |
|
63 | - 'options' => array( |
|
64 | - 'position' => array( |
|
65 | - 'target' => 'mouse', |
|
66 | - ), |
|
67 | - ), |
|
68 | - ), |
|
69 | - 5 => array( |
|
70 | - 'content_id' => 'message_status-' . EEM_Message::status_retry, |
|
71 | - 'target' => '.msg-status-' . EEM_Message::status_retry, |
|
72 | - 'content' => $this->_message_status_legend(EEM_Message::status_retry), |
|
73 | - 'options' => array( |
|
74 | - 'position' => array( |
|
75 | - 'target' => 'mouse', |
|
76 | - ), |
|
77 | - ), |
|
78 | - ), |
|
79 | - 6 => array( |
|
80 | - 'content_id' => 'message_status-' . EEM_Message::status_debug_only, |
|
81 | - 'target' => '.msg-status-' . EEM_Message::status_debug_only, |
|
82 | - 'content' => $this->_message_status_legend(EEM_Message::status_debug_only), |
|
83 | - 'options' => array( |
|
84 | - 'position' => array( |
|
85 | - 'target' => 'mouse', |
|
86 | - ), |
|
87 | - ), |
|
88 | - ), |
|
89 | - ); |
|
90 | - } |
|
16 | + protected function _set_tips_array() |
|
17 | + { |
|
18 | + $this->_qtipsa = array( |
|
19 | + 0 => array( |
|
20 | + 'content_id' => 'message_status-' . EEM_Message::status_sent, |
|
21 | + 'target' => '.msg-status-' . EEM_Message::status_sent, |
|
22 | + 'content' => $this->_message_status_legend(EEM_Message::status_sent), |
|
23 | + 'options' => array( |
|
24 | + 'position' => array( |
|
25 | + 'target' => 'mouse', |
|
26 | + ), |
|
27 | + ), |
|
28 | + ), |
|
29 | + 1 => array( |
|
30 | + 'content_id' => 'message_status-' . EEM_Message::status_idle, |
|
31 | + 'target' => '.msg-status-' . EEM_Message::status_idle, |
|
32 | + 'content' => $this->_message_status_legend(EEM_Message::status_idle), |
|
33 | + 'options' => array( |
|
34 | + 'position' => array( |
|
35 | + 'target' => 'mouse', |
|
36 | + ), |
|
37 | + ), |
|
38 | + ), |
|
39 | + 2 => array( |
|
40 | + 'content_id' => 'message_status-' . EEM_Message::status_failed, |
|
41 | + 'target' => '.msg-status-' . EEM_Message::status_failed, |
|
42 | + 'content' => $this->_message_status_legend(EEM_Message::status_failed), |
|
43 | + 'options' => array( |
|
44 | + 'position' => array( |
|
45 | + 'target' => 'mouse', |
|
46 | + ), |
|
47 | + ), |
|
48 | + ), |
|
49 | + 3 => array( |
|
50 | + 'content_id' => 'message_status-' . EEM_Message::status_resend, |
|
51 | + 'target' => '.msg-status-' . EEM_Message::status_resend, |
|
52 | + 'content' => $this->_message_status_legend(EEM_Message::status_resend), |
|
53 | + 'options' => array( |
|
54 | + 'position' => array( |
|
55 | + 'target' => 'mouse', |
|
56 | + ), |
|
57 | + ), |
|
58 | + ), |
|
59 | + 4 => array( |
|
60 | + 'content_id' => 'message_status-' . EEM_Message::status_incomplete, |
|
61 | + 'target' => '.msg-status-' . EEM_Message::status_incomplete, |
|
62 | + 'content' => $this->_message_status_legend(EEM_Message::status_incomplete), |
|
63 | + 'options' => array( |
|
64 | + 'position' => array( |
|
65 | + 'target' => 'mouse', |
|
66 | + ), |
|
67 | + ), |
|
68 | + ), |
|
69 | + 5 => array( |
|
70 | + 'content_id' => 'message_status-' . EEM_Message::status_retry, |
|
71 | + 'target' => '.msg-status-' . EEM_Message::status_retry, |
|
72 | + 'content' => $this->_message_status_legend(EEM_Message::status_retry), |
|
73 | + 'options' => array( |
|
74 | + 'position' => array( |
|
75 | + 'target' => 'mouse', |
|
76 | + ), |
|
77 | + ), |
|
78 | + ), |
|
79 | + 6 => array( |
|
80 | + 'content_id' => 'message_status-' . EEM_Message::status_debug_only, |
|
81 | + 'target' => '.msg-status-' . EEM_Message::status_debug_only, |
|
82 | + 'content' => $this->_message_status_legend(EEM_Message::status_debug_only), |
|
83 | + 'options' => array( |
|
84 | + 'position' => array( |
|
85 | + 'target' => 'mouse', |
|
86 | + ), |
|
87 | + ), |
|
88 | + ), |
|
89 | + ); |
|
90 | + } |
|
91 | 91 | |
92 | 92 | |
93 | - /** |
|
94 | - * output the relevant ee-status-legend with the designated status highlighted. |
|
95 | - * |
|
96 | - * @param EEM_Message constant $status What status is set (by class) |
|
97 | - * @return string The status legend with the related status highlighted |
|
98 | - */ |
|
99 | - private function _message_status_legend($status) |
|
100 | - { |
|
93 | + /** |
|
94 | + * output the relevant ee-status-legend with the designated status highlighted. |
|
95 | + * |
|
96 | + * @param EEM_Message constant $status What status is set (by class) |
|
97 | + * @return string The status legend with the related status highlighted |
|
98 | + */ |
|
99 | + private function _message_status_legend($status) |
|
100 | + { |
|
101 | 101 | |
102 | - $status_array = array( |
|
103 | - 'sent_status' => EEM_Message::status_sent, |
|
104 | - 'idle_status' => EEM_Message::status_idle, |
|
105 | - 'failed_status' => EEM_Message::status_failed, |
|
106 | - 'resend_status' => EEM_Message::status_resend, |
|
107 | - 'incomplete_status' => EEM_Message::status_incomplete, |
|
108 | - 'retry_status' => EEM_Message::status_retry, |
|
109 | - ); |
|
102 | + $status_array = array( |
|
103 | + 'sent_status' => EEM_Message::status_sent, |
|
104 | + 'idle_status' => EEM_Message::status_idle, |
|
105 | + 'failed_status' => EEM_Message::status_failed, |
|
106 | + 'resend_status' => EEM_Message::status_resend, |
|
107 | + 'incomplete_status' => EEM_Message::status_incomplete, |
|
108 | + 'retry_status' => EEM_Message::status_retry, |
|
109 | + ); |
|
110 | 110 | |
111 | - if (defined('WP_DEBUG') && WP_DEBUG) { |
|
112 | - $status_array['debug_only_status'] = EEM_Message::status_debug_only; |
|
113 | - } |
|
111 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
112 | + $status_array['debug_only_status'] = EEM_Message::status_debug_only; |
|
113 | + } |
|
114 | 114 | |
115 | - return EEH_Template::status_legend($status_array, $status); |
|
116 | - } |
|
115 | + return EEH_Template::status_legend($status_array, $status); |
|
116 | + } |
|
117 | 117 | } |