Completed
Branch models-cleanup/main (0d2dda)
by
unknown
09:34
created
core/db_models/EEM_Attendee.model.php 4 patches
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,4 @@
 block discarded – undo
1 1
 <?php
2
-use EventEspresso\core\services\loaders\Loader;
3 2
 use EventEspresso\core\services\orm\ModelFieldFactory;
4 3
 
5 4
 /**
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -284,8 +284,8 @@  discard block
 block discarded – undo
284 284
      */
285 285
     public function get_attendee_field_for_system_question($system_question_string)
286 286
     {
287
-        return isset($this->_system_question_to_attendee_field_name[ $system_question_string ])
288
-            ? $this->_system_question_to_attendee_field_name[ $system_question_string ]
287
+        return isset($this->_system_question_to_attendee_field_name[$system_question_string])
288
+            ? $this->_system_question_to_attendee_field_name[$system_question_string]
289 289
             : null;
290 290
     }
291 291
 
@@ -353,7 +353,7 @@  discard block
 block discarded – undo
353 353
             return false;
354 354
         }
355 355
         $attendee = $this->get_all(array($where_cols_n_values));
356
-        if (! empty($attendee)) {
356
+        if ( ! empty($attendee)) {
357 357
             return array_shift($attendee);
358 358
         }
359 359
         return false;
Please login to merge, or discard this patch.
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
     /**
131 131
      * EEM_Attendee constructor.
132 132
      *
133
-     * @param null              $timezone
133
+     * @param string|null              $timezone
134 134
      * @param ModelFieldFactory $model_field_factory
135 135
      * @throws EE_Error
136 136
      * @throws InvalidArgumentException
@@ -351,7 +351,7 @@  discard block
 block discarded – undo
351 351
      * retrieve  a single attendee from db via their ID
352 352
      *
353 353
      * @param $ATT_ID
354
-     * @return mixed array on success, FALSE on fail
354
+     * @return EE_Base_Class|null array on success, FALSE on fail
355 355
      * @deprecated
356 356
      */
357 357
     public function get_attendee_by_ID($ATT_ID = false)
Please login to merge, or discard this patch.
Indentation   +419 added lines, -419 removed lines patch added patch discarded remove patch
@@ -13,432 +13,432 @@
 block discarded – undo
13 13
 class EEM_Attendee extends EEM_CPT_Base
14 14
 {
15 15
 
16
-    // private instance of the Attendee object
17
-    protected static $_instance = null;
16
+	// private instance of the Attendee object
17
+	protected static $_instance = null;
18 18
 
19
-    /**
20
-     * QST_system for questions are strings not integers now,
21
-     * so these constants are deprecated.
22
-     * Please instead use the EEM_Attendee::system_question_* constants
23
-     *
24
-     * @deprecated
25
-     */
26
-    const fname_question_id = 1;
19
+	/**
20
+	 * QST_system for questions are strings not integers now,
21
+	 * so these constants are deprecated.
22
+	 * Please instead use the EEM_Attendee::system_question_* constants
23
+	 *
24
+	 * @deprecated
25
+	 */
26
+	const fname_question_id = 1;
27 27
 
28
-    /**
29
-     * @deprecated
30
-     */
31
-    const lname_question_id = 2;
28
+	/**
29
+	 * @deprecated
30
+	 */
31
+	const lname_question_id = 2;
32 32
 
33 33
 
34
-    /**
35
-     * @deprecated
36
-     */
37
-    const email_question_id = 3;
34
+	/**
35
+	 * @deprecated
36
+	 */
37
+	const email_question_id = 3;
38 38
 
39 39
 
40
-    /**
41
-     * @deprecated
42
-     */
43
-    const address_question_id = 4;
40
+	/**
41
+	 * @deprecated
42
+	 */
43
+	const address_question_id = 4;
44 44
 
45 45
 
46
-    /**
47
-     * @deprecated
48
-     */
49
-    const address2_question_id = 5;
46
+	/**
47
+	 * @deprecated
48
+	 */
49
+	const address2_question_id = 5;
50 50
 
51
-
52
-    /**
53
-     * @deprecated
54
-     */
55
-    const city_question_id = 6;
56
-
57
-
58
-    /**
59
-     * @deprecated
60
-     */
61
-    const state_question_id = 7;
62
-
63
-
64
-    /**
65
-     * @deprecated
66
-     */
67
-    const country_question_id = 8;
68
-
69
-
70
-    /**
71
-     * @deprecated
72
-     */
73
-    const zip_question_id = 9;
74
-
75
-
76
-    /**
77
-     * @deprecated
78
-     */
79
-    const phone_question_id = 10;
80
-
81
-    /**
82
-     * When looking for questions that correspond to attendee fields,
83
-     * look for the question with this QST_system value.
84
-     * These replace the old constants like EEM_Attendee::*_question_id
85
-     */
86
-    const system_question_fname = 'fname';
87
-
88
-    const system_question_lname = 'lname';
89
-
90
-    const system_question_email = 'email';
91
-
92
-    const system_question_email_confirm = 'email_confirm';
93
-
94
-    const system_question_address = 'address';
95
-
96
-    const system_question_address2 = 'address2';
97
-
98
-    const system_question_city = 'city';
99
-
100
-    const system_question_state = 'state';
101
-
102
-    const system_question_country = 'country';
103
-
104
-    const system_question_zip = 'zip';
105
-
106
-    const system_question_phone = 'phone';
107
-
108
-    /**
109
-     * Keys are all the EEM_Attendee::system_question_* constants, which are
110
-     * also all the values of QST_system in the questions table, and values
111
-     * are their corresponding Attendee field names
112
-     *
113
-     * @var array
114
-     */
115
-    protected $_system_question_to_attendee_field_name = array(
116
-        EEM_Attendee::system_question_fname    => 'ATT_fname',
117
-        EEM_Attendee::system_question_lname    => 'ATT_lname',
118
-        EEM_Attendee::system_question_email    => 'ATT_email',
119
-        EEM_Attendee::system_question_address  => 'ATT_address',
120
-        EEM_Attendee::system_question_address2 => 'ATT_address2',
121
-        EEM_Attendee::system_question_city     => 'ATT_city',
122
-        EEM_Attendee::system_question_state    => 'STA_ID',
123
-        EEM_Attendee::system_question_country  => 'CNT_ISO',
124
-        EEM_Attendee::system_question_zip      => 'ATT_zip',
125
-        EEM_Attendee::system_question_phone    => 'ATT_phone',
126
-    );
127
-
128
-
129
-
130
-    /**
131
-     * EEM_Attendee constructor.
132
-     *
133
-     * @param null              $timezone
134
-     * @param ModelFieldFactory $model_field_factory
135
-     * @throws EE_Error
136
-     * @throws InvalidArgumentException
137
-     */
138
-    protected function __construct($timezone = '', ModelFieldFactory $model_field_factory)
139
-    {
140
-        $this->singular_item = esc_html__('Attendee', 'event_espresso');
141
-        $this->plural_item = esc_html__('Attendees', 'event_espresso');
142
-        $this->_tables = array(
143
-            'Attendee_CPT'  => new EE_Primary_Table('posts', 'ID'),
144
-            'Attendee_Meta' => new EE_Secondary_Table(
145
-                'esp_attendee_meta',
146
-                'ATTM_ID',
147
-                'ATT_ID'
148
-            ),
149
-        );
150
-        $this->_fields = array(
151
-            'Attendee_CPT'  => array(
152
-                'ATT_ID'        => $model_field_factory->createPrimaryKeyIntField(
153
-                    'ID',
154
-                    esc_html__('Attendee ID', 'event_espresso')
155
-                ),
156
-                'ATT_full_name' => $model_field_factory->createPlainTextField(
157
-                    'post_title',
158
-                    esc_html__('Attendee Full Name', 'event_espresso'),
159
-                    false,
160
-                    esc_html__('Unknown', 'event_espresso')
161
-                ),
162
-                'ATT_bio'       => $model_field_factory->createPostContentField(
163
-                    'post_content',
164
-                    esc_html__('Attendee Biography', 'event_espresso'),
165
-                    false,
166
-                    esc_html__('No Biography Provided', 'event_espresso')
167
-                ),
168
-                'ATT_slug'      => $model_field_factory->createSlugField(
169
-                    'post_name',
170
-                    esc_html__('Attendee URL Slug', 'event_espresso')
171
-                ),
172
-                'ATT_created'   => $model_field_factory->createDatetimeField(
173
-                    'post_date',
174
-                    esc_html__('Time Attendee Created', 'event_espresso')
175
-                ),
176
-                'ATT_short_bio' => $model_field_factory->createSimpleHtmlField(
177
-                    'post_excerpt',
178
-                    esc_html__('Attendee Short Biography', 'event_espresso'),
179
-                    true,
180
-                    esc_html__('No Biography Provided', 'event_espresso')
181
-                ),
182
-                'ATT_modified'  => $model_field_factory->createDatetimeField(
183
-                    'post_modified',
184
-                    esc_html__('Time Attendee Last Modified', 'event_espresso')
185
-                ),
186
-                'ATT_author'    => $model_field_factory->createWpUserField(
187
-                    'post_author',
188
-                    esc_html__('Creator ID of the first Event attended', 'event_espresso'),
189
-                    false
190
-                ),
191
-                'ATT_parent'    => $model_field_factory->createDbOnlyIntField(
192
-                    'post_parent',
193
-                    esc_html__('Parent Attendee (unused)', 'event_espresso'),
194
-                    false,
195
-                    0
196
-                ),
197
-                'post_type'     => $model_field_factory->createWpPostTypeField('espresso_attendees'),
198
-                'status'        => $model_field_factory->createWpPostStatusField(
199
-                    'post_status',
200
-                    esc_html__('Attendee Status', 'event_espresso'),
201
-                    false,
202
-                    'publish'
203
-                ),
204
-                'password' => new EE_Password_Field(
205
-                    'post_password',
206
-                    __('Password', 'event_espresso'),
207
-                    false,
208
-                    '',
209
-                    array(
210
-                        'ATT_bio',
211
-                        'ATT_short_bio',
212
-                        'ATT_address',
213
-                        'ATT_address2',
214
-                        'ATT_city',
215
-                        'STA_ID',
216
-                        'CNT_ISO',
217
-                        'ATT_zip',
218
-                        'ATT_email',
219
-                        'ATT_phone'
220
-                    )
221
-                )
222
-            ),
223
-            'Attendee_Meta' => array(
224
-                'ATTM_ID'      => $model_field_factory->createDbOnlyIntField(
225
-                    'ATTM_ID',
226
-                    esc_html__('Attendee Meta Row ID', 'event_espresso'),
227
-                    false
228
-                ),
229
-                'ATT_ID_fk'    => $model_field_factory->createDbOnlyIntField(
230
-                    'ATT_ID',
231
-                    esc_html__('Foreign Key to Attendee in Post Table', 'event_espresso'),
232
-                    false
233
-                ),
234
-                'ATT_fname'    => $model_field_factory->createPlainTextField(
235
-                    'ATT_fname',
236
-                    esc_html__('First Name', 'event_espresso')
237
-                ),
238
-                'ATT_lname'    => $model_field_factory->createPlainTextField(
239
-                    'ATT_lname',
240
-                    esc_html__('Last Name', 'event_espresso')
241
-                ),
242
-                'ATT_address'  => $model_field_factory->createPlainTextField(
243
-                    'ATT_address',
244
-                    esc_html__('Address Part 1', 'event_espresso')
245
-                ),
246
-                'ATT_address2' => $model_field_factory->createPlainTextField(
247
-                    'ATT_address2',
248
-                    esc_html__('Address Part 2', 'event_espresso')
249
-                ),
250
-                'ATT_city'     => $model_field_factory->createPlainTextField(
251
-                    'ATT_city',
252
-                    esc_html__('City', 'event_espresso')
253
-                ),
254
-                'STA_ID'       => $model_field_factory->createForeignKeyIntField(
255
-                    'STA_ID',
256
-                    esc_html__('State', 'event_espresso'),
257
-                    true,
258
-                    0,
259
-                    'State'
260
-                ),
261
-                'CNT_ISO'      => $model_field_factory->createForeignKeyStringField(
262
-                    'CNT_ISO',
263
-                    esc_html__('Country', 'event_espresso'),
264
-                    true,
265
-                    '',
266
-                    'Country'
267
-                ),
268
-                'ATT_zip'      => $model_field_factory->createPlainTextField(
269
-                    'ATT_zip',
270
-                    esc_html__('ZIP/Postal Code', 'event_espresso')
271
-                ),
272
-                'ATT_email'    => $model_field_factory->createEmailField(
273
-                    'ATT_email',
274
-                    esc_html__('Email Address', 'event_espresso')
275
-                ),
276
-                'ATT_phone'    => $model_field_factory->createPlainTextField(
277
-                    'ATT_phone',
278
-                    esc_html__('Phone', 'event_espresso')
279
-                ),
280
-            ),
281
-        );
282
-        $this->_model_relations = array(
283
-            'Registration'      => new EE_Has_Many_Relation(),
284
-            'State'             => new EE_Belongs_To_Relation(),
285
-            'Country'           => new EE_Belongs_To_Relation(),
286
-            'Event'             => new EE_HABTM_Relation('Registration', false),
287
-            'WP_User'           => new EE_Belongs_To_Relation(),
288
-            'Message'           => new EE_Has_Many_Any_Relation(false),
289
-            // allow deletion of attendees even if they have messages in the queue for them.
290
-            'Term_Relationship' => new EE_Has_Many_Relation(),
291
-            'Term_Taxonomy'     => new EE_HABTM_Relation('Term_Relationship'),
292
-        );
293
-        $this->_caps_slug = 'contacts';
294
-        $this->model_chain_to_password = '';
295
-        parent::__construct($timezone);
296
-    }
297
-
298
-
299
-
300
-    /**
301
-     * Gets the name of the field on the attendee model corresponding to the system question string
302
-     * which should be one of the keys from EEM_Attendee::_system_question_to_attendee_field_name
303
-     *
304
-     * @param string $system_question_string
305
-     * @return string|null if not found
306
-     */
307
-    public function get_attendee_field_for_system_question($system_question_string)
308
-    {
309
-        return isset($this->_system_question_to_attendee_field_name[ $system_question_string ])
310
-            ? $this->_system_question_to_attendee_field_name[ $system_question_string ]
311
-            : null;
312
-    }
313
-
314
-
315
-
316
-    /**
317
-     * Gets mapping from esp_question.QST_system values to their corresponding attendee field names
318
-     *
319
-     * @return array
320
-     */
321
-    public function system_question_to_attendee_field_mapping()
322
-    {
323
-        return $this->_system_question_to_attendee_field_name;
324
-    }
325
-
326
-
327
-
328
-    /**
329
-     * Gets all the attendees for a transaction (by using the esp_registration as a join table)
330
-     *
331
-     * @param EE_Transaction /int $transaction_id_or_obj EE_Transaction or its ID
332
-     * @return EE_Attendee[]|EE_Base_Class[]
333
-     * @throws EE_Error
334
-     */
335
-    public function get_attendees_for_transaction($transaction_id_or_obj)
336
-    {
337
-        return $this->get_all(
338
-            array(
339
-                array(
340
-                    'Registration.Transaction.TXN_ID' => $transaction_id_or_obj instanceof EE_Transaction
341
-                        ? $transaction_id_or_obj->ID()
342
-                        : $transaction_id_or_obj,
343
-                ),
344
-            )
345
-        );
346
-    }
347
-
348
-
349
-
350
-    /**
351
-     * retrieve  a single attendee from db via their ID
352
-     *
353
-     * @param $ATT_ID
354
-     * @return mixed array on success, FALSE on fail
355
-     * @deprecated
356
-     */
357
-    public function get_attendee_by_ID($ATT_ID = false)
358
-    {
359
-        // retrieve a particular EE_Attendee
360
-        return $this->get_one_by_ID($ATT_ID);
361
-    }
362
-
363
-
364
-
365
-    /**
366
-     * retrieve  a single attendee from db via their ID
367
-     *
368
-     * @param array $where_cols_n_values
369
-     * @return mixed array on success, FALSE on fail
370
-     * @throws EE_Error
371
-     */
372
-    public function get_attendee($where_cols_n_values = array())
373
-    {
374
-        if (empty($where_cols_n_values)) {
375
-            return false;
376
-        }
377
-        $attendee = $this->get_all(array($where_cols_n_values));
378
-        if (! empty($attendee)) {
379
-            return array_shift($attendee);
380
-        }
381
-        return false;
382
-    }
383
-
384
-
385
-
386
-    /**
387
-     * Search for an existing Attendee record in the DB
388
-     *
389
-     * @param array $where_cols_n_values
390
-     * @return bool|mixed
391
-     * @throws EE_Error
392
-     */
393
-    public function find_existing_attendee($where_cols_n_values = null)
394
-    {
395
-        // search by combo of first and last names plus the email address
396
-        $attendee_data_keys = array(
397
-            'ATT_fname' => $this->_ATT_fname,
398
-            'ATT_lname' => $this->_ATT_lname,
399
-            'ATT_email' => $this->_ATT_email,
400
-        );
401
-        // no search params means attendee object already exists.
402
-        $where_cols_n_values = is_array($where_cols_n_values) && ! empty($where_cols_n_values)
403
-            ? $where_cols_n_values
404
-            : $attendee_data_keys;
405
-        $valid_data = true;
406
-        // check for required values
407
-        $valid_data = isset($where_cols_n_values['ATT_fname']) && ! empty($where_cols_n_values['ATT_fname'])
408
-            ? $valid_data
409
-            : false;
410
-        $valid_data = isset($where_cols_n_values['ATT_lname']) && ! empty($where_cols_n_values['ATT_lname'])
411
-            ? $valid_data
412
-            : false;
413
-        $valid_data = isset($where_cols_n_values['ATT_email']) && ! empty($where_cols_n_values['ATT_email'])
414
-            ? $valid_data
415
-            : false;
416
-        if ($valid_data) {
417
-            $attendee = $this->get_attendee($where_cols_n_values);
418
-            if ($attendee instanceof EE_Attendee) {
419
-                return $attendee;
420
-            }
421
-        }
422
-        return false;
423
-    }
424
-
425
-
426
-
427
-    /**
428
-     * Takes an incoming array of EE_Registration ids
429
-     * and sends back a list of corresponding non duplicate EE_Attendee objects.
430
-     *
431
-     * @since  4.3.0
432
-     * @param  array $ids array of EE_Registration ids
433
-     * @return EE_Attendee[]|EE_Base_Class[]
434
-     * @throws EE_Error
435
-     */
436
-    public function get_array_of_contacts_from_reg_ids($ids)
437
-    {
438
-        $ids = (array) $ids;
439
-        $_where = array(
440
-            'Registration.REG_ID' => array('in', $ids),
441
-        );
442
-        return $this->get_all(array($_where));
443
-    }
51
+
52
+	/**
53
+	 * @deprecated
54
+	 */
55
+	const city_question_id = 6;
56
+
57
+
58
+	/**
59
+	 * @deprecated
60
+	 */
61
+	const state_question_id = 7;
62
+
63
+
64
+	/**
65
+	 * @deprecated
66
+	 */
67
+	const country_question_id = 8;
68
+
69
+
70
+	/**
71
+	 * @deprecated
72
+	 */
73
+	const zip_question_id = 9;
74
+
75
+
76
+	/**
77
+	 * @deprecated
78
+	 */
79
+	const phone_question_id = 10;
80
+
81
+	/**
82
+	 * When looking for questions that correspond to attendee fields,
83
+	 * look for the question with this QST_system value.
84
+	 * These replace the old constants like EEM_Attendee::*_question_id
85
+	 */
86
+	const system_question_fname = 'fname';
87
+
88
+	const system_question_lname = 'lname';
89
+
90
+	const system_question_email = 'email';
91
+
92
+	const system_question_email_confirm = 'email_confirm';
93
+
94
+	const system_question_address = 'address';
95
+
96
+	const system_question_address2 = 'address2';
97
+
98
+	const system_question_city = 'city';
99
+
100
+	const system_question_state = 'state';
101
+
102
+	const system_question_country = 'country';
103
+
104
+	const system_question_zip = 'zip';
105
+
106
+	const system_question_phone = 'phone';
107
+
108
+	/**
109
+	 * Keys are all the EEM_Attendee::system_question_* constants, which are
110
+	 * also all the values of QST_system in the questions table, and values
111
+	 * are their corresponding Attendee field names
112
+	 *
113
+	 * @var array
114
+	 */
115
+	protected $_system_question_to_attendee_field_name = array(
116
+		EEM_Attendee::system_question_fname    => 'ATT_fname',
117
+		EEM_Attendee::system_question_lname    => 'ATT_lname',
118
+		EEM_Attendee::system_question_email    => 'ATT_email',
119
+		EEM_Attendee::system_question_address  => 'ATT_address',
120
+		EEM_Attendee::system_question_address2 => 'ATT_address2',
121
+		EEM_Attendee::system_question_city     => 'ATT_city',
122
+		EEM_Attendee::system_question_state    => 'STA_ID',
123
+		EEM_Attendee::system_question_country  => 'CNT_ISO',
124
+		EEM_Attendee::system_question_zip      => 'ATT_zip',
125
+		EEM_Attendee::system_question_phone    => 'ATT_phone',
126
+	);
127
+
128
+
129
+
130
+	/**
131
+	 * EEM_Attendee constructor.
132
+	 *
133
+	 * @param null              $timezone
134
+	 * @param ModelFieldFactory $model_field_factory
135
+	 * @throws EE_Error
136
+	 * @throws InvalidArgumentException
137
+	 */
138
+	protected function __construct($timezone = '', ModelFieldFactory $model_field_factory)
139
+	{
140
+		$this->singular_item = esc_html__('Attendee', 'event_espresso');
141
+		$this->plural_item = esc_html__('Attendees', 'event_espresso');
142
+		$this->_tables = array(
143
+			'Attendee_CPT'  => new EE_Primary_Table('posts', 'ID'),
144
+			'Attendee_Meta' => new EE_Secondary_Table(
145
+				'esp_attendee_meta',
146
+				'ATTM_ID',
147
+				'ATT_ID'
148
+			),
149
+		);
150
+		$this->_fields = array(
151
+			'Attendee_CPT'  => array(
152
+				'ATT_ID'        => $model_field_factory->createPrimaryKeyIntField(
153
+					'ID',
154
+					esc_html__('Attendee ID', 'event_espresso')
155
+				),
156
+				'ATT_full_name' => $model_field_factory->createPlainTextField(
157
+					'post_title',
158
+					esc_html__('Attendee Full Name', 'event_espresso'),
159
+					false,
160
+					esc_html__('Unknown', 'event_espresso')
161
+				),
162
+				'ATT_bio'       => $model_field_factory->createPostContentField(
163
+					'post_content',
164
+					esc_html__('Attendee Biography', 'event_espresso'),
165
+					false,
166
+					esc_html__('No Biography Provided', 'event_espresso')
167
+				),
168
+				'ATT_slug'      => $model_field_factory->createSlugField(
169
+					'post_name',
170
+					esc_html__('Attendee URL Slug', 'event_espresso')
171
+				),
172
+				'ATT_created'   => $model_field_factory->createDatetimeField(
173
+					'post_date',
174
+					esc_html__('Time Attendee Created', 'event_espresso')
175
+				),
176
+				'ATT_short_bio' => $model_field_factory->createSimpleHtmlField(
177
+					'post_excerpt',
178
+					esc_html__('Attendee Short Biography', 'event_espresso'),
179
+					true,
180
+					esc_html__('No Biography Provided', 'event_espresso')
181
+				),
182
+				'ATT_modified'  => $model_field_factory->createDatetimeField(
183
+					'post_modified',
184
+					esc_html__('Time Attendee Last Modified', 'event_espresso')
185
+				),
186
+				'ATT_author'    => $model_field_factory->createWpUserField(
187
+					'post_author',
188
+					esc_html__('Creator ID of the first Event attended', 'event_espresso'),
189
+					false
190
+				),
191
+				'ATT_parent'    => $model_field_factory->createDbOnlyIntField(
192
+					'post_parent',
193
+					esc_html__('Parent Attendee (unused)', 'event_espresso'),
194
+					false,
195
+					0
196
+				),
197
+				'post_type'     => $model_field_factory->createWpPostTypeField('espresso_attendees'),
198
+				'status'        => $model_field_factory->createWpPostStatusField(
199
+					'post_status',
200
+					esc_html__('Attendee Status', 'event_espresso'),
201
+					false,
202
+					'publish'
203
+				),
204
+				'password' => new EE_Password_Field(
205
+					'post_password',
206
+					__('Password', 'event_espresso'),
207
+					false,
208
+					'',
209
+					array(
210
+						'ATT_bio',
211
+						'ATT_short_bio',
212
+						'ATT_address',
213
+						'ATT_address2',
214
+						'ATT_city',
215
+						'STA_ID',
216
+						'CNT_ISO',
217
+						'ATT_zip',
218
+						'ATT_email',
219
+						'ATT_phone'
220
+					)
221
+				)
222
+			),
223
+			'Attendee_Meta' => array(
224
+				'ATTM_ID'      => $model_field_factory->createDbOnlyIntField(
225
+					'ATTM_ID',
226
+					esc_html__('Attendee Meta Row ID', 'event_espresso'),
227
+					false
228
+				),
229
+				'ATT_ID_fk'    => $model_field_factory->createDbOnlyIntField(
230
+					'ATT_ID',
231
+					esc_html__('Foreign Key to Attendee in Post Table', 'event_espresso'),
232
+					false
233
+				),
234
+				'ATT_fname'    => $model_field_factory->createPlainTextField(
235
+					'ATT_fname',
236
+					esc_html__('First Name', 'event_espresso')
237
+				),
238
+				'ATT_lname'    => $model_field_factory->createPlainTextField(
239
+					'ATT_lname',
240
+					esc_html__('Last Name', 'event_espresso')
241
+				),
242
+				'ATT_address'  => $model_field_factory->createPlainTextField(
243
+					'ATT_address',
244
+					esc_html__('Address Part 1', 'event_espresso')
245
+				),
246
+				'ATT_address2' => $model_field_factory->createPlainTextField(
247
+					'ATT_address2',
248
+					esc_html__('Address Part 2', 'event_espresso')
249
+				),
250
+				'ATT_city'     => $model_field_factory->createPlainTextField(
251
+					'ATT_city',
252
+					esc_html__('City', 'event_espresso')
253
+				),
254
+				'STA_ID'       => $model_field_factory->createForeignKeyIntField(
255
+					'STA_ID',
256
+					esc_html__('State', 'event_espresso'),
257
+					true,
258
+					0,
259
+					'State'
260
+				),
261
+				'CNT_ISO'      => $model_field_factory->createForeignKeyStringField(
262
+					'CNT_ISO',
263
+					esc_html__('Country', 'event_espresso'),
264
+					true,
265
+					'',
266
+					'Country'
267
+				),
268
+				'ATT_zip'      => $model_field_factory->createPlainTextField(
269
+					'ATT_zip',
270
+					esc_html__('ZIP/Postal Code', 'event_espresso')
271
+				),
272
+				'ATT_email'    => $model_field_factory->createEmailField(
273
+					'ATT_email',
274
+					esc_html__('Email Address', 'event_espresso')
275
+				),
276
+				'ATT_phone'    => $model_field_factory->createPlainTextField(
277
+					'ATT_phone',
278
+					esc_html__('Phone', 'event_espresso')
279
+				),
280
+			),
281
+		);
282
+		$this->_model_relations = array(
283
+			'Registration'      => new EE_Has_Many_Relation(),
284
+			'State'             => new EE_Belongs_To_Relation(),
285
+			'Country'           => new EE_Belongs_To_Relation(),
286
+			'Event'             => new EE_HABTM_Relation('Registration', false),
287
+			'WP_User'           => new EE_Belongs_To_Relation(),
288
+			'Message'           => new EE_Has_Many_Any_Relation(false),
289
+			// allow deletion of attendees even if they have messages in the queue for them.
290
+			'Term_Relationship' => new EE_Has_Many_Relation(),
291
+			'Term_Taxonomy'     => new EE_HABTM_Relation('Term_Relationship'),
292
+		);
293
+		$this->_caps_slug = 'contacts';
294
+		$this->model_chain_to_password = '';
295
+		parent::__construct($timezone);
296
+	}
297
+
298
+
299
+
300
+	/**
301
+	 * Gets the name of the field on the attendee model corresponding to the system question string
302
+	 * which should be one of the keys from EEM_Attendee::_system_question_to_attendee_field_name
303
+	 *
304
+	 * @param string $system_question_string
305
+	 * @return string|null if not found
306
+	 */
307
+	public function get_attendee_field_for_system_question($system_question_string)
308
+	{
309
+		return isset($this->_system_question_to_attendee_field_name[ $system_question_string ])
310
+			? $this->_system_question_to_attendee_field_name[ $system_question_string ]
311
+			: null;
312
+	}
313
+
314
+
315
+
316
+	/**
317
+	 * Gets mapping from esp_question.QST_system values to their corresponding attendee field names
318
+	 *
319
+	 * @return array
320
+	 */
321
+	public function system_question_to_attendee_field_mapping()
322
+	{
323
+		return $this->_system_question_to_attendee_field_name;
324
+	}
325
+
326
+
327
+
328
+	/**
329
+	 * Gets all the attendees for a transaction (by using the esp_registration as a join table)
330
+	 *
331
+	 * @param EE_Transaction /int $transaction_id_or_obj EE_Transaction or its ID
332
+	 * @return EE_Attendee[]|EE_Base_Class[]
333
+	 * @throws EE_Error
334
+	 */
335
+	public function get_attendees_for_transaction($transaction_id_or_obj)
336
+	{
337
+		return $this->get_all(
338
+			array(
339
+				array(
340
+					'Registration.Transaction.TXN_ID' => $transaction_id_or_obj instanceof EE_Transaction
341
+						? $transaction_id_or_obj->ID()
342
+						: $transaction_id_or_obj,
343
+				),
344
+			)
345
+		);
346
+	}
347
+
348
+
349
+
350
+	/**
351
+	 * retrieve  a single attendee from db via their ID
352
+	 *
353
+	 * @param $ATT_ID
354
+	 * @return mixed array on success, FALSE on fail
355
+	 * @deprecated
356
+	 */
357
+	public function get_attendee_by_ID($ATT_ID = false)
358
+	{
359
+		// retrieve a particular EE_Attendee
360
+		return $this->get_one_by_ID($ATT_ID);
361
+	}
362
+
363
+
364
+
365
+	/**
366
+	 * retrieve  a single attendee from db via their ID
367
+	 *
368
+	 * @param array $where_cols_n_values
369
+	 * @return mixed array on success, FALSE on fail
370
+	 * @throws EE_Error
371
+	 */
372
+	public function get_attendee($where_cols_n_values = array())
373
+	{
374
+		if (empty($where_cols_n_values)) {
375
+			return false;
376
+		}
377
+		$attendee = $this->get_all(array($where_cols_n_values));
378
+		if (! empty($attendee)) {
379
+			return array_shift($attendee);
380
+		}
381
+		return false;
382
+	}
383
+
384
+
385
+
386
+	/**
387
+	 * Search for an existing Attendee record in the DB
388
+	 *
389
+	 * @param array $where_cols_n_values
390
+	 * @return bool|mixed
391
+	 * @throws EE_Error
392
+	 */
393
+	public function find_existing_attendee($where_cols_n_values = null)
394
+	{
395
+		// search by combo of first and last names plus the email address
396
+		$attendee_data_keys = array(
397
+			'ATT_fname' => $this->_ATT_fname,
398
+			'ATT_lname' => $this->_ATT_lname,
399
+			'ATT_email' => $this->_ATT_email,
400
+		);
401
+		// no search params means attendee object already exists.
402
+		$where_cols_n_values = is_array($where_cols_n_values) && ! empty($where_cols_n_values)
403
+			? $where_cols_n_values
404
+			: $attendee_data_keys;
405
+		$valid_data = true;
406
+		// check for required values
407
+		$valid_data = isset($where_cols_n_values['ATT_fname']) && ! empty($where_cols_n_values['ATT_fname'])
408
+			? $valid_data
409
+			: false;
410
+		$valid_data = isset($where_cols_n_values['ATT_lname']) && ! empty($where_cols_n_values['ATT_lname'])
411
+			? $valid_data
412
+			: false;
413
+		$valid_data = isset($where_cols_n_values['ATT_email']) && ! empty($where_cols_n_values['ATT_email'])
414
+			? $valid_data
415
+			: false;
416
+		if ($valid_data) {
417
+			$attendee = $this->get_attendee($where_cols_n_values);
418
+			if ($attendee instanceof EE_Attendee) {
419
+				return $attendee;
420
+			}
421
+		}
422
+		return false;
423
+	}
424
+
425
+
426
+
427
+	/**
428
+	 * Takes an incoming array of EE_Registration ids
429
+	 * and sends back a list of corresponding non duplicate EE_Attendee objects.
430
+	 *
431
+	 * @since  4.3.0
432
+	 * @param  array $ids array of EE_Registration ids
433
+	 * @return EE_Attendee[]|EE_Base_Class[]
434
+	 * @throws EE_Error
435
+	 */
436
+	public function get_array_of_contacts_from_reg_ids($ids)
437
+	{
438
+		$ids = (array) $ids;
439
+		$_where = array(
440
+			'Registration.REG_ID' => array('in', $ids),
441
+		);
442
+		return $this->get_all(array($_where));
443
+	}
444 444
 }
Please login to merge, or discard this patch.
core/db_models/EEM_Price_Type.model.php 3 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
     /**
28 28
      * return an array of Base types. Keys are INTs which are used in the database,
29 29
      * values are text-representations of the base type.
30
-     * @return array
30
+     * @return integer
31 31
      */
32 32
     public function get_base_types()
33 33
     {
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
      *      instantiate a new price type object with blank/empty properties
108 108
      *
109 109
      *      @access     public
110
-     *      @return     mixed       array on success, FALSE on fail
110
+     *      @return     EE_Price_Type       array on success, FALSE on fail
111 111
      */
112 112
     public function get_new_price_type()
113 113
     {
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
      */
43 43
     public function get_base_type_name($base_type_int)
44 44
     {
45
-        return $this->base_types[ $base_type_int ];
45
+        return $this->base_types[$base_type_int];
46 46
     }
47 47
 
48 48
     /**
@@ -95,7 +95,7 @@  discard block
 block discarded – undo
95 95
             'WP_User' => new EE_Belongs_To_Relation(),
96 96
         );
97 97
         // this model is generally available for reading
98
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
98
+        $this->_cap_restriction_generators[EEM_Base::caps_read] = new EE_Restriction_Generator_Public();
99 99
         // all price types are "default" in terms of capability names
100 100
         $this->_caps_slug = 'default_price_types';
101 101
         parent::__construct($timezone);
@@ -142,15 +142,15 @@  discard block
 block discarded – undo
142 142
         $would_be_deleted_price_types = $this->get_all_deleted_and_undeleted($query_params);
143 143
         $would_be_deleted_price_type_ids = array_keys($would_be_deleted_price_types);
144 144
 
145
-        $ID = $query_params[0][ $this->get_primary_key_field()->get_name() ];
145
+        $ID = $query_params[0][$this->get_primary_key_field()->get_name()];
146 146
 
147 147
         // check if any prices use this price type
148
-        $prc_query_params = array(array('PRT_ID' => array('IN',$would_be_deleted_price_type_ids)));
148
+        $prc_query_params = array(array('PRT_ID' => array('IN', $would_be_deleted_price_type_ids)));
149 149
         if ($prices = $this->get_all_related($ID, 'Price', $prc_query_params)) {
150 150
             $prices_names_and_ids = array();
151 151
             foreach ($prices as $price) {
152 152
                 /* @var $price EE_Price */
153
-                $prices_names_and_ids[] = $price->name() . "(" . $price->ID() . ")";
153
+                $prices_names_and_ids[] = $price->name()."(".$price->ID().")";
154 154
             }
155 155
             $msg = sprintf(__('The Price Type(s) could not be deleted because there are existing Prices that currently use this Price Type.  If you still wish to delete this Price Type, then either delete those Prices or change them to use other Price Types.The prices are: %s', 'event_espresso'), implode(",", $prices_names_and_ids));
156 156
             EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
Please login to merge, or discard this patch.
Indentation   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -12,108 +12,108 @@  discard block
 block discarded – undo
12 12
 class EEM_Price_Type extends EEM_Soft_Delete_Base
13 13
 {
14 14
 
15
-    // private instance of the Price Type object
16
-    protected static $_instance = null;
17
-    // An array of the price type objects
18
-    public $type = null;
19
-
20
-    /**
21
-    *   Price Base types
22
-    *
23
-    *   @access private
24
-    *   @var int
25
-    */
26
-    public $base_types = null;
27
-
28
-    /**
29
-     * return an array of Base types. Keys are INTs which are used in the database,
30
-     * values are text-representations of the base type.
31
-     * @return array
32
-     */
33
-    public function get_base_types()
34
-    {
35
-        return $this->base_types;
36
-    }
37
-
38
-    /**
39
-     * Gets the name of the base
40
-     * @param type $base_type_int
41
-     * @return type
42
-     */
43
-    public function get_base_type_name($base_type_int)
44
-    {
45
-        return $this->base_types[ $base_type_int ];
46
-    }
47
-
48
-    /**
49
-     * constants for price base types. In the DB, we decided to store the price base type
50
-     * as an integer. So, to avoid just having magic numbers everwhere (eg, querying for
51
-     * all price types with PBT_ID = 2), we define these constants, to make code more understandable.
52
-     * So, as an example, to query for all price types that are a tax, we'd do
53
-     * EEM_PRice_Type::instance()->get_all(array(array('PBT_ID'=>EEM_Price_Type::base_type_tax)))
54
-     * instead of
55
-     * EEM_Price_Type::instance()->get_all(array(array('PBT_ID'=>2)))
56
-     * Although the 2nd is shorter, it's much less obvious what it's doing. Also, should these magic IDs ever
57
-     * change, we can continue to use the constant, by simply change its value.
58
-     */
59
-    const base_type_base_price = 1;
60
-    const base_type_discount = 2;
61
-    const base_type_surcharge = 3;
62
-    const base_type_tax = 4;
63
-    /**
64
-     *      private constructor to prevent direct creation
65
-     *      @Constructor
66
-     *      @access protected
67
-     *      @return void
68
-     */
69
-    protected function __construct($timezone = '')
70
-    {
71
-        $this->base_types = array(
72
-            EEM_Price_Type::base_type_base_price => __('Price', 'event_espresso'),
73
-            EEM_Price_Type::base_type_discount => __('Discount', 'event_espresso'),
74
-            EEM_Price_Type::base_type_surcharge => __('Surcharge', 'event_espresso'),
75
-            EEM_Price_Type::base_type_tax => __('Tax', 'event_espresso') );
76
-        $this->singular_item = __('Price Type', 'event_espresso');
77
-        $this->plural_item = __('Price Types', 'event_espresso');
78
-
79
-        $this->_tables = array(
80
-            'Price_Type' => new EE_Primary_Table('esp_price_type', 'PRT_ID')
81
-        );
82
-        $this->_fields = array(
83
-            'Price_Type' => array(
84
-                'PRT_ID' => new EE_Primary_Key_Int_Field('PRT_ID', __('Price Type ID', 'event_espresso')),
85
-                'PRT_name' => new EE_Plain_Text_Field('PRT_name', __('Price Type Name', 'event_espresso'), false, ''),
86
-                'PBT_ID' => new EE_Enum_Integer_Field('PBT_ID', __('Price Base type ID, 1 = Price , 2 = Discount , 3 = Surcharge , 4 = Tax', 'event_espresso'), false, EEM_Price_Type::base_type_base_price, $this->base_types),
87
-                'PRT_is_percent' => new EE_Boolean_Field('PRT_is_percent', __('Flag indicating price is a percentage', 'event_espresso'), false, false),
88
-                'PRT_order' => new EE_Integer_Field('PRT_order', __('Order in which price should be applied. ', 'event_espresso'), false, 0),
89
-                'PRT_deleted' => new EE_Trashed_Flag_Field('PRT_deleted', __('Flag indicating price type has been trashed', 'event_espresso'), false, false),
90
-                'PRT_wp_user' => new EE_WP_User_Field('PRT_wp_user', __('Price Type Creator ID', 'event_espresso'), false),
91
-            )
92
-        );
93
-        $this->_model_relations = array(
94
-            'Price' => new EE_Has_Many_Relation(),
95
-            'WP_User' => new EE_Belongs_To_Relation(),
96
-        );
97
-        // this model is generally available for reading
98
-        $this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
99
-        // all price types are "default" in terms of capability names
100
-        $this->_caps_slug = 'default_price_types';
101
-        parent::__construct($timezone);
102
-    }
103
-
104
-
105
-
106
-
107
-    /**
108
-     *      instantiate a new price type object with blank/empty properties
109
-     *
110
-     *      @access     public
111
-     *      @return     mixed       array on success, FALSE on fail
112
-     */
113
-    public function get_new_price_type()
114
-    {
115
-        return EE_Price_Type::new_instance();
116
-    }
15
+	// private instance of the Price Type object
16
+	protected static $_instance = null;
17
+	// An array of the price type objects
18
+	public $type = null;
19
+
20
+	/**
21
+	 *   Price Base types
22
+	 *
23
+	 *   @access private
24
+	 *   @var int
25
+	 */
26
+	public $base_types = null;
27
+
28
+	/**
29
+	 * return an array of Base types. Keys are INTs which are used in the database,
30
+	 * values are text-representations of the base type.
31
+	 * @return array
32
+	 */
33
+	public function get_base_types()
34
+	{
35
+		return $this->base_types;
36
+	}
37
+
38
+	/**
39
+	 * Gets the name of the base
40
+	 * @param type $base_type_int
41
+	 * @return type
42
+	 */
43
+	public function get_base_type_name($base_type_int)
44
+	{
45
+		return $this->base_types[ $base_type_int ];
46
+	}
47
+
48
+	/**
49
+	 * constants for price base types. In the DB, we decided to store the price base type
50
+	 * as an integer. So, to avoid just having magic numbers everwhere (eg, querying for
51
+	 * all price types with PBT_ID = 2), we define these constants, to make code more understandable.
52
+	 * So, as an example, to query for all price types that are a tax, we'd do
53
+	 * EEM_PRice_Type::instance()->get_all(array(array('PBT_ID'=>EEM_Price_Type::base_type_tax)))
54
+	 * instead of
55
+	 * EEM_Price_Type::instance()->get_all(array(array('PBT_ID'=>2)))
56
+	 * Although the 2nd is shorter, it's much less obvious what it's doing. Also, should these magic IDs ever
57
+	 * change, we can continue to use the constant, by simply change its value.
58
+	 */
59
+	const base_type_base_price = 1;
60
+	const base_type_discount = 2;
61
+	const base_type_surcharge = 3;
62
+	const base_type_tax = 4;
63
+	/**
64
+	 *      private constructor to prevent direct creation
65
+	 *      @Constructor
66
+	 *      @access protected
67
+	 *      @return void
68
+	 */
69
+	protected function __construct($timezone = '')
70
+	{
71
+		$this->base_types = array(
72
+			EEM_Price_Type::base_type_base_price => __('Price', 'event_espresso'),
73
+			EEM_Price_Type::base_type_discount => __('Discount', 'event_espresso'),
74
+			EEM_Price_Type::base_type_surcharge => __('Surcharge', 'event_espresso'),
75
+			EEM_Price_Type::base_type_tax => __('Tax', 'event_espresso') );
76
+		$this->singular_item = __('Price Type', 'event_espresso');
77
+		$this->plural_item = __('Price Types', 'event_espresso');
78
+
79
+		$this->_tables = array(
80
+			'Price_Type' => new EE_Primary_Table('esp_price_type', 'PRT_ID')
81
+		);
82
+		$this->_fields = array(
83
+			'Price_Type' => array(
84
+				'PRT_ID' => new EE_Primary_Key_Int_Field('PRT_ID', __('Price Type ID', 'event_espresso')),
85
+				'PRT_name' => new EE_Plain_Text_Field('PRT_name', __('Price Type Name', 'event_espresso'), false, ''),
86
+				'PBT_ID' => new EE_Enum_Integer_Field('PBT_ID', __('Price Base type ID, 1 = Price , 2 = Discount , 3 = Surcharge , 4 = Tax', 'event_espresso'), false, EEM_Price_Type::base_type_base_price, $this->base_types),
87
+				'PRT_is_percent' => new EE_Boolean_Field('PRT_is_percent', __('Flag indicating price is a percentage', 'event_espresso'), false, false),
88
+				'PRT_order' => new EE_Integer_Field('PRT_order', __('Order in which price should be applied. ', 'event_espresso'), false, 0),
89
+				'PRT_deleted' => new EE_Trashed_Flag_Field('PRT_deleted', __('Flag indicating price type has been trashed', 'event_espresso'), false, false),
90
+				'PRT_wp_user' => new EE_WP_User_Field('PRT_wp_user', __('Price Type Creator ID', 'event_espresso'), false),
91
+			)
92
+		);
93
+		$this->_model_relations = array(
94
+			'Price' => new EE_Has_Many_Relation(),
95
+			'WP_User' => new EE_Belongs_To_Relation(),
96
+		);
97
+		// this model is generally available for reading
98
+		$this->_cap_restriction_generators[ EEM_Base::caps_read ] = new EE_Restriction_Generator_Public();
99
+		// all price types are "default" in terms of capability names
100
+		$this->_caps_slug = 'default_price_types';
101
+		parent::__construct($timezone);
102
+	}
103
+
104
+
105
+
106
+
107
+	/**
108
+	 *      instantiate a new price type object with blank/empty properties
109
+	 *
110
+	 *      @access     public
111
+	 *      @return     mixed       array on success, FALSE on fail
112
+	 */
113
+	public function get_new_price_type()
114
+	{
115
+		return EE_Price_Type::new_instance();
116
+	}
117 117
 
118 118
 
119 119
 
@@ -132,33 +132,33 @@  discard block
 block discarded – undo
132 132
  *
133 133
  * @param type $query_params
134 134
  * @param boolean $allow_blocking if TRUE, matched objects will only be deleted if there is no related model info
135
-     * that blocks it (ie, there' sno other data that depends on this data); if false, deletes regardless of other objects
136
-     * which may depend on it. Its generally advisable to always leave this as TRUE, otherwise you could easily corrupt your DB
135
+ * that blocks it (ie, there' sno other data that depends on this data); if false, deletes regardless of other objects
136
+ * which may depend on it. Its generally advisable to always leave this as TRUE, otherwise you could easily corrupt your DB
137 137
  * @return boolean
138 138
  */
139
-    public function delete_permanently($query_params = array(), $allow_blocking = true)
140
-    {
139
+	public function delete_permanently($query_params = array(), $allow_blocking = true)
140
+	{
141 141
 
142
-        $would_be_deleted_price_types = $this->get_all_deleted_and_undeleted($query_params);
143
-        $would_be_deleted_price_type_ids = array_keys($would_be_deleted_price_types);
142
+		$would_be_deleted_price_types = $this->get_all_deleted_and_undeleted($query_params);
143
+		$would_be_deleted_price_type_ids = array_keys($would_be_deleted_price_types);
144 144
 
145
-        $ID = $query_params[0][ $this->get_primary_key_field()->get_name() ];
145
+		$ID = $query_params[0][ $this->get_primary_key_field()->get_name() ];
146 146
 
147
-        // check if any prices use this price type
148
-        $prc_query_params = array(array('PRT_ID' => array('IN',$would_be_deleted_price_type_ids)));
149
-        if ($prices = $this->get_all_related($ID, 'Price', $prc_query_params)) {
150
-            $prices_names_and_ids = array();
151
-            foreach ($prices as $price) {
152
-                /* @var $price EE_Price */
153
-                $prices_names_and_ids[] = $price->name() . "(" . $price->ID() . ")";
154
-            }
155
-            $msg = sprintf(__('The Price Type(s) could not be deleted because there are existing Prices that currently use this Price Type.  If you still wish to delete this Price Type, then either delete those Prices or change them to use other Price Types.The prices are: %s', 'event_espresso'), implode(",", $prices_names_and_ids));
156
-            EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
157
-            return false;
158
-        }
147
+		// check if any prices use this price type
148
+		$prc_query_params = array(array('PRT_ID' => array('IN',$would_be_deleted_price_type_ids)));
149
+		if ($prices = $this->get_all_related($ID, 'Price', $prc_query_params)) {
150
+			$prices_names_and_ids = array();
151
+			foreach ($prices as $price) {
152
+				/* @var $price EE_Price */
153
+				$prices_names_and_ids[] = $price->name() . "(" . $price->ID() . ")";
154
+			}
155
+			$msg = sprintf(__('The Price Type(s) could not be deleted because there are existing Prices that currently use this Price Type.  If you still wish to delete this Price Type, then either delete those Prices or change them to use other Price Types.The prices are: %s', 'event_espresso'), implode(",", $prices_names_and_ids));
156
+			EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
157
+			return false;
158
+		}
159 159
 
160 160
 
161 161
 
162
-        return parent::delete_permanently($query_params);
163
-    }
162
+		return parent::delete_permanently($query_params);
163
+	}
164 164
 }
Please login to merge, or discard this patch.
core/db_models/EEM_System_Status.model.php 3 patches
Doc Comments   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -15,8 +15,6 @@  discard block
 block discarded – undo
15 15
      *      This function is a singleton method used to instantiate the EEM_Attendee object
16 16
      *
17 17
      *      @access public
18
-     *      @param string $timezone string representing the timezone we want to set for returned Date Time Strings (and any incoming timezone data that gets saved).  Note this just sends the timezone info to the date time model field objects.  Default is NULL (and will be assumed using the set timezone in the 'timezone_string' wp option)
19
-     *      @return EEM_System_Status
20 18
      */
21 19
     public static function instance()
22 20
     {
@@ -157,7 +155,7 @@  discard block
 block discarded – undo
157 155
 
158 156
     /**
159 157
      *
160
-     * @return array like EE_Config class
158
+     * @return EE_Config like EE_Config class
161 159
      */
162 160
     public function get_ee_config()
163 161
     {
@@ -214,7 +212,7 @@  discard block
 block discarded – undo
214 212
 
215 213
     /**
216 214
      * Checks if site responds ot HTTPS
217
-     * @return boolean
215
+     * @return string
218 216
      */
219 217
     public function get_https_enabled()
220 218
     {
Please login to merge, or discard this patch.
Indentation   +273 added lines, -273 removed lines patch added patch discarded remove patch
@@ -6,79 +6,79 @@  discard block
 block discarded – undo
6 6
 class EEM_System_Status
7 7
 {
8 8
 
9
-    // private instance of the EEM_System_Status object
10
-    protected static $_instance = null;
9
+	// private instance of the EEM_System_Status object
10
+	protected static $_instance = null;
11 11
 
12 12
 
13 13
 
14
-    /**
15
-     *      This function is a singleton method used to instantiate the EEM_Attendee object
16
-     *
17
-     *      @access public
18
-     *      @param string $timezone string representing the timezone we want to set for returned Date Time Strings (and any incoming timezone data that gets saved).  Note this just sends the timezone info to the date time model field objects.  Default is NULL (and will be assumed using the set timezone in the 'timezone_string' wp option)
19
-     *      @return EEM_System_Status
20
-     */
21
-    public static function instance()
22
-    {
14
+	/**
15
+	 *      This function is a singleton method used to instantiate the EEM_Attendee object
16
+	 *
17
+	 *      @access public
18
+	 *      @param string $timezone string representing the timezone we want to set for returned Date Time Strings (and any incoming timezone data that gets saved).  Note this just sends the timezone info to the date time model field objects.  Default is NULL (and will be assumed using the set timezone in the 'timezone_string' wp option)
19
+	 *      @return EEM_System_Status
20
+	 */
21
+	public static function instance()
22
+	{
23 23
 
24
-        // check if instance of EEM_System_Status already exists
25
-        if (self::$_instance === null) {
26
-            // instantiate EEM_System_Status
27
-            self::$_instance = new self();
28
-        }
29
-        return self::$_instance;
30
-    }
31
-    private function __construct()
32
-    {
33
-    }
34
-    /**
35
-     *
36
-     * @return array where each key is a function name on this class, and each value is SOMETHING--
37
-     * it might be a value, an array, or an object
38
-     */
39
-    public function get_system_stati()
40
-    {
41
-        return apply_filters(
42
-            'FHEE__EEM_System_Status__get_system_stati',
43
-            array(
44
-                'ee_version' => $this->get_ee_version(),
45
-                'ee_activation_history' => $this->get_ee_activation_history(),
46
-                'ee_config' => $this->get_ee_config(),
47
-                'ee_migration_history' => $this->get_ee_migration_history(),
48
-                'active_plugins' => $this->get_active_plugins(),
49
-                'wp_settings' => $this->get_wp_settings(),
50
-                'wp_maintenance_mode' => $this->get_wp_maintenance_mode(),
51
-                'https_enabled' => $this->get_https_enabled(),
52
-                'logging_enabled' => $this->get_logging_enabled(),
53
-                'remote_posting' => $this->get_remote_posting(),
54
-                'php_version' => $this->php_version(),
55
-                'php.ini_settings' => $this->get_php_ini_all(),
56
-                'php_info' => $this->get_php_info(),
57
-            ),
58
-            $this
59
-        );
60
-    }
61
-    /**
62
-     *
63
-     * @return string
64
-     */
65
-    public function get_ee_version()
66
-    {
67
-        return espresso_version();
68
-    }
69
-    /**
70
-     *
71
-     * @return string
72
-     */
73
-    public function php_version()
74
-    {
75
-        return phpversion();
76
-    }
77
-    /**
78
-     *
79
-     * @return array, where each key is a plugin name (lower-cased), values are sub-arrays.
80
-     * Sub-arrays like described in wp function get_plugin_data. Ie,     *
81
-     *  'Name' => 'Plugin Name',
24
+		// check if instance of EEM_System_Status already exists
25
+		if (self::$_instance === null) {
26
+			// instantiate EEM_System_Status
27
+			self::$_instance = new self();
28
+		}
29
+		return self::$_instance;
30
+	}
31
+	private function __construct()
32
+	{
33
+	}
34
+	/**
35
+	 *
36
+	 * @return array where each key is a function name on this class, and each value is SOMETHING--
37
+	 * it might be a value, an array, or an object
38
+	 */
39
+	public function get_system_stati()
40
+	{
41
+		return apply_filters(
42
+			'FHEE__EEM_System_Status__get_system_stati',
43
+			array(
44
+				'ee_version' => $this->get_ee_version(),
45
+				'ee_activation_history' => $this->get_ee_activation_history(),
46
+				'ee_config' => $this->get_ee_config(),
47
+				'ee_migration_history' => $this->get_ee_migration_history(),
48
+				'active_plugins' => $this->get_active_plugins(),
49
+				'wp_settings' => $this->get_wp_settings(),
50
+				'wp_maintenance_mode' => $this->get_wp_maintenance_mode(),
51
+				'https_enabled' => $this->get_https_enabled(),
52
+				'logging_enabled' => $this->get_logging_enabled(),
53
+				'remote_posting' => $this->get_remote_posting(),
54
+				'php_version' => $this->php_version(),
55
+				'php.ini_settings' => $this->get_php_ini_all(),
56
+				'php_info' => $this->get_php_info(),
57
+			),
58
+			$this
59
+		);
60
+	}
61
+	/**
62
+	 *
63
+	 * @return string
64
+	 */
65
+	public function get_ee_version()
66
+	{
67
+		return espresso_version();
68
+	}
69
+	/**
70
+	 *
71
+	 * @return string
72
+	 */
73
+	public function php_version()
74
+	{
75
+		return phpversion();
76
+	}
77
+	/**
78
+	 *
79
+	 * @return array, where each key is a plugin name (lower-cased), values are sub-arrays.
80
+	 * Sub-arrays like described in wp function get_plugin_data. Ie,     *
81
+	 *  'Name' => 'Plugin Name',
82 82
         'PluginURI' => 'Plugin URI',
83 83
         'Version' => 'Version',
84 84
         'Description' => 'Description',
@@ -87,221 +87,221 @@  discard block
 block discarded – undo
87 87
         'TextDomain' => 'Text Domain',
88 88
         'DomainPath' => 'Domain Path',
89 89
         'Network' => 'Network',
90
-     */
91
-    public function get_active_plugins()
92
-    {
93
-        $active_plugins = (array) get_option('active_plugins', array());
94
-        if (is_multisite()) {
95
-            $active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
96
-        }
97
-        $active_plugins = array_map('strtolower', $active_plugins);
98
-        $plugin_info = array();
99
-        foreach ($active_plugins as $plugin) {
100
-                $plugin_data = @get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin);
90
+	 */
91
+	public function get_active_plugins()
92
+	{
93
+		$active_plugins = (array) get_option('active_plugins', array());
94
+		if (is_multisite()) {
95
+			$active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
96
+		}
97
+		$active_plugins = array_map('strtolower', $active_plugins);
98
+		$plugin_info = array();
99
+		foreach ($active_plugins as $plugin) {
100
+				$plugin_data = @get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin);
101 101
 
102
-                $plugin_info[ $plugin ] = $plugin_data;
103
-        }
104
-        return $plugin_info;
105
-    }
102
+				$plugin_info[ $plugin ] = $plugin_data;
103
+		}
104
+		return $plugin_info;
105
+	}
106 106
 
107
-    /**
108
-     *
109
-     * @return array with keys 'home_url' and 'site_url'
110
-     */
111
-    public function get_wp_settings()
112
-    {
113
-        $wp_memory_int = $this->let_to_num(WP_MEMORY_LIMIT);
114
-        if ($wp_memory_int < 67108864) {
115
-            $wp_memory_to_display = '<mark class="error">' . sprintf(__('%s - We recommend setting memory to at least 64MB. See: %s Increasing memory allocated to PHP %s', 'event_espresso'), WP_MEMORY_LIMIT, '<a href="http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP">', '</a>"') . '</mark>';
116
-        } else {
117
-            $wp_memory_to_display = '<mark class="yes">' . size_format($wp_memory_int) . '</mark>';
118
-        }
119
-        return array(
120
-            'name' => get_bloginfo('name', 'display'),
121
-            'is_multisite' => is_multisite(),
122
-            'version' =>  get_bloginfo('version', 'display'),
123
-            'home_url' => home_url(),
124
-            'site_url' => site_url(),
125
-            'WP_DEBUG' => WP_DEBUG,
126
-            'permalink_structure' => get_option('permalink_structure'),
127
-            'theme' => wp_get_theme(),
128
-            'gmt_offset' => get_option('gmt_offset'),
129
-            'timezone_string' => get_option('timezone_string'),
130
-            'admin_email' =>  get_bloginfo('admin_email', 'display'),
131
-            'language' => get_bloginfo('language', 'display'),
132
-            'wp_max_upload_size' => size_format(wp_max_upload_size()),
133
-            'wp_memory' => $wp_memory_to_display
134
-            );
135
-    }
107
+	/**
108
+	 *
109
+	 * @return array with keys 'home_url' and 'site_url'
110
+	 */
111
+	public function get_wp_settings()
112
+	{
113
+		$wp_memory_int = $this->let_to_num(WP_MEMORY_LIMIT);
114
+		if ($wp_memory_int < 67108864) {
115
+			$wp_memory_to_display = '<mark class="error">' . sprintf(__('%s - We recommend setting memory to at least 64MB. See: %s Increasing memory allocated to PHP %s', 'event_espresso'), WP_MEMORY_LIMIT, '<a href="http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP">', '</a>"') . '</mark>';
116
+		} else {
117
+			$wp_memory_to_display = '<mark class="yes">' . size_format($wp_memory_int) . '</mark>';
118
+		}
119
+		return array(
120
+			'name' => get_bloginfo('name', 'display'),
121
+			'is_multisite' => is_multisite(),
122
+			'version' =>  get_bloginfo('version', 'display'),
123
+			'home_url' => home_url(),
124
+			'site_url' => site_url(),
125
+			'WP_DEBUG' => WP_DEBUG,
126
+			'permalink_structure' => get_option('permalink_structure'),
127
+			'theme' => wp_get_theme(),
128
+			'gmt_offset' => get_option('gmt_offset'),
129
+			'timezone_string' => get_option('timezone_string'),
130
+			'admin_email' =>  get_bloginfo('admin_email', 'display'),
131
+			'language' => get_bloginfo('language', 'display'),
132
+			'wp_max_upload_size' => size_format(wp_max_upload_size()),
133
+			'wp_memory' => $wp_memory_to_display
134
+			);
135
+	}
136 136
 
137
-    /**
138
-     * Gets an array of information about the history of ee versions installed
139
-     * @return array
140
-     */
141
-    public function get_ee_activation_history()
142
-    {
143
-        return get_option('espresso_db_update');
144
-    }
137
+	/**
138
+	 * Gets an array of information about the history of ee versions installed
139
+	 * @return array
140
+	 */
141
+	public function get_ee_activation_history()
142
+	{
143
+		return get_option('espresso_db_update');
144
+	}
145 145
 
146 146
 
147
-    /**
148
-     * Gets an array where keys are ee versions, and their values are arrays indicating all the different times that version was installed
149
-     * @return EE_Data_Migration_Script_Base[]
150
-     */
151
-    public function get_ee_migration_history()
152
-    {
153
-        $options = EE_Data_Migration_Manager::instance()->get_all_migration_script_options();
154
-        $presentable_migration_scripts = array();
155
-        foreach ($options as $option_array) {
156
-            $presentable_migration_scripts[ str_replace(EE_Data_Migration_Manager::data_migration_script_option_prefix, "", $option_array['option_name']) ] = maybe_unserialize($option_array['option_value']);
157
-        }
158
-        return $presentable_migration_scripts;
147
+	/**
148
+	 * Gets an array where keys are ee versions, and their values are arrays indicating all the different times that version was installed
149
+	 * @return EE_Data_Migration_Script_Base[]
150
+	 */
151
+	public function get_ee_migration_history()
152
+	{
153
+		$options = EE_Data_Migration_Manager::instance()->get_all_migration_script_options();
154
+		$presentable_migration_scripts = array();
155
+		foreach ($options as $option_array) {
156
+			$presentable_migration_scripts[ str_replace(EE_Data_Migration_Manager::data_migration_script_option_prefix, "", $option_array['option_name']) ] = maybe_unserialize($option_array['option_value']);
157
+		}
158
+		return $presentable_migration_scripts;
159 159
 //      return get_option(EE_Data_Migration_Manager::data_migrations_option_name);//EE_Data_Migration_Manager::instance()->get_data_migrations_ran();
160
-    }
160
+	}
161 161
 
162
-    /**
163
-     *
164
-     * @return array like EE_Config class
165
-     */
166
-    public function get_ee_config()
167
-    {
168
-        return EE_Config::instance();
169
-    }
162
+	/**
163
+	 *
164
+	 * @return array like EE_Config class
165
+	 */
166
+	public function get_ee_config()
167
+	{
168
+		return EE_Config::instance();
169
+	}
170 170
 
171
-    /**
172
-     * Gets an array of php setup info, pilfered from http://www.php.net/manual/en/function.phpinfo.php#87463
173
-     * @return array like the output of phpinfo(), but in an array
174
-     */
175
-    public function get_php_info()
176
-    {
177
-        ob_start();
178
-        phpinfo(-1);
171
+	/**
172
+	 * Gets an array of php setup info, pilfered from http://www.php.net/manual/en/function.phpinfo.php#87463
173
+	 * @return array like the output of phpinfo(), but in an array
174
+	 */
175
+	public function get_php_info()
176
+	{
177
+		ob_start();
178
+		phpinfo(-1);
179 179
 
180
-        $pi = preg_replace(
181
-            array('#^.*<body>(.*)</body>.*$#ms', '#<h2>PHP License</h2>.*$#ms',
182
-            '#<h1>Configuration</h1>#',  "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#',
183
-            "#[ \t]+#", '#&nbsp;#', '#  +#', '# class=".*?"#', '%&#039;%',
184
-            '#<tr>(?:.*?)" src="(?:.*?)=(.*?)" alt="PHP Logo" /></a>'
185
-            . '<h1>PHP Version (.*?)</h1>(?:\n+?)</td></tr>#',
186
-            '#<h1><a href="(?:.*?)\?=(.*?)">PHP Credits</a></h1>#',
187
-            '#<tr>(?:.*?)" src="(?:.*?)=(.*?)"(?:.*?)Zend Engine (.*?),(?:.*?)</tr>#',
188
-            "# +#", '#<tr>#', '#</tr>#'),
189
-            array('$1', '', '', '', '</$1>' . "\n", '<', ' ', ' ', ' ', '', ' ',
190
-            '<h2>PHP Configuration</h2>' . "\n" . '<tr><td>PHP Version</td><td>$2</td></tr>' .
191
-            "\n" . '<tr><td>PHP Egg</td><td>$1</td></tr>',
192
-            '<tr><td>PHP Credits Egg</td><td>$1</td></tr>',
193
-            '<tr><td>Zend Engine</td><td>$2</td></tr>' . "\n" .
194
-            '<tr><td>Zend Egg</td><td>$1</td></tr>', ' ', '%S%', '%E%'),
195
-            ob_get_clean()
196
-        );
180
+		$pi = preg_replace(
181
+			array('#^.*<body>(.*)</body>.*$#ms', '#<h2>PHP License</h2>.*$#ms',
182
+			'#<h1>Configuration</h1>#',  "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#',
183
+			"#[ \t]+#", '#&nbsp;#', '#  +#', '# class=".*?"#', '%&#039;%',
184
+			'#<tr>(?:.*?)" src="(?:.*?)=(.*?)" alt="PHP Logo" /></a>'
185
+			. '<h1>PHP Version (.*?)</h1>(?:\n+?)</td></tr>#',
186
+			'#<h1><a href="(?:.*?)\?=(.*?)">PHP Credits</a></h1>#',
187
+			'#<tr>(?:.*?)" src="(?:.*?)=(.*?)"(?:.*?)Zend Engine (.*?),(?:.*?)</tr>#',
188
+			"# +#", '#<tr>#', '#</tr>#'),
189
+			array('$1', '', '', '', '</$1>' . "\n", '<', ' ', ' ', ' ', '', ' ',
190
+			'<h2>PHP Configuration</h2>' . "\n" . '<tr><td>PHP Version</td><td>$2</td></tr>' .
191
+			"\n" . '<tr><td>PHP Egg</td><td>$1</td></tr>',
192
+			'<tr><td>PHP Credits Egg</td><td>$1</td></tr>',
193
+			'<tr><td>Zend Engine</td><td>$2</td></tr>' . "\n" .
194
+			'<tr><td>Zend Egg</td><td>$1</td></tr>', ' ', '%S%', '%E%'),
195
+			ob_get_clean()
196
+		);
197 197
 
198
-        $sections = explode('<h2>', strip_tags($pi, '<h2><th><td>'));
199
-        unset($sections[0]);
198
+		$sections = explode('<h2>', strip_tags($pi, '<h2><th><td>'));
199
+		unset($sections[0]);
200 200
 
201
-        $pi = array();
202
-        foreach ($sections as $section) {
203
-            $n = substr($section, 0, strpos($section, '</h2>'));
204
-            preg_match_all(
205
-                '#%S%(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?%E%#',
206
-                $section,
207
-                $askapache,
208
-                PREG_SET_ORDER
209
-            );
210
-            foreach ($askapache as $m) {
211
-                $m2 = isset($m[2]) ? $m[2] : null;
212
-            }
213
-              $pi[ $n ][ $m[1] ] = (!isset($m[3]) || $m2 == $m[3]) ? $m2 : array_slice($m, 2);
214
-        }
201
+		$pi = array();
202
+		foreach ($sections as $section) {
203
+			$n = substr($section, 0, strpos($section, '</h2>'));
204
+			preg_match_all(
205
+				'#%S%(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?%E%#',
206
+				$section,
207
+				$askapache,
208
+				PREG_SET_ORDER
209
+			);
210
+			foreach ($askapache as $m) {
211
+				$m2 = isset($m[2]) ? $m[2] : null;
212
+			}
213
+			  $pi[ $n ][ $m[1] ] = (!isset($m[3]) || $m2 == $m[3]) ? $m2 : array_slice($m, 2);
214
+		}
215 215
 
216
-        return $pi;
217
-    }
216
+		return $pi;
217
+	}
218 218
 
219
-    /**
220
-     * Checks if site responds ot HTTPS
221
-     * @return boolean
222
-     */
223
-    public function get_https_enabled()
224
-    {
225
-        $home = str_replace("http://", "https://", home_url());
226
-        $response = wp_remote_get($home);
227
-        if ($response instanceof WP_Error) {
228
-            $error_string = '';
229
-            foreach ($response->errors as $short_name => $description_array) {
230
-                $error_string .= "<b>$short_name</b>: " . implode(", ", $description_array);
231
-            }
232
-            return $error_string;
233
-        }
234
-        return "ok!";
235
-    }
236
-    /**
237
-     * Whether or not a .maintenance file is detected
238
-     * @return string descripting wp_maintenance_mode status
239
-     */
240
-    public function get_wp_maintenance_mode()
241
-    {
242
-        $opened = file_exists(ABSPATH . '.maintenance');
243
-        return $opened ? sprintf(__('%s.maintenance file detected.%s Wordpress may have a failed auto-update which could prevent Event Espresso from updating the database correctly.', 'event_espresso'), '<strong>', '</strong>') : __('.maintenance file not detected. WordPress is not in maintenance mode.', 'event_espresso')  ;
244
-    }
245
-    /**
246
-     * Whether or not logging is enabled
247
-     * @return string descripting logging's status
248
-     */
249
-    public function get_logging_enabled()
250
-    {
251
-            $opened = @fopen(EVENT_ESPRESSO_UPLOAD_DIR . '/logs/espresso_log.txt', 'a');
252
-            return $opened ? __('Log Directory is writable', 'event_espresso') : sprintf(__('%sLog directory is NOT writable%s', 'event_espresso'), '<mark class="error"', '</mark>') ;
253
-    }
254
-    /**
255
-     *  Whether curl ro fsock works
256
-     * @return string describing posting's status
257
-     */
258
-    public function get_remote_posting()
259
-    {
260
-        $fsock_works = function_exists('fsockopen');
261
-        $curl_works = function_exists('curl_init');
262
-        if ($fsock_works && $curl_works) {
263
-            $status = __('Your server has fsockopen and cURL enabled.', 'event_espresso');
264
-        } elseif ($fsock_works) {
265
-            $status = __('Your server has fsockopen enabled, cURL is disabled.', 'event_espresso');
266
-        } elseif ($curl_works) {
267
-            $status = __('Your server has cURL enabled, fsockopen is disabled.', 'event_espresso');
268
-        } else {
269
-            $status = __('Your server does not have fsockopen or cURL enabled - PayPal IPN and other scripts which communicate with other servers will not work. Contact your hosting provider.', 'event_espresso') . '</mark>';
270
-        }
271
-        return $status;
272
-    }
273
-    /**
274
-     * Gets all the php.ini settings
275
-     * @return array
276
-     */
277
-    public function get_php_ini_all()
278
-    {
279
-        return ini_get_all();
280
-    }
281
-    /**
282
-     * Transforms the php.ini notation for numbers (like '2M') to an integer.
283
-     *
284
-     * @param type $size
285
-     * @return int
286
-     */
287
-    public function let_to_num($size)
288
-    {
289
-        $l      = substr($size, -1);
290
-        $ret    = substr($size, 0, -1);
291
-        // phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment
292
-        switch (strtoupper($l)) {
293
-            case 'P':
294
-                $ret *= 1024;
295
-            case 'T':
296
-                $ret *= 1024;
297
-            case 'G':
298
-                $ret *= 1024;
299
-            case 'M':
300
-                $ret *= 1024;
301
-            case 'K':
302
-                $ret *= 1024;
303
-        }
304
-        // phpcs:enable
305
-        return $ret;
306
-    }
219
+	/**
220
+	 * Checks if site responds ot HTTPS
221
+	 * @return boolean
222
+	 */
223
+	public function get_https_enabled()
224
+	{
225
+		$home = str_replace("http://", "https://", home_url());
226
+		$response = wp_remote_get($home);
227
+		if ($response instanceof WP_Error) {
228
+			$error_string = '';
229
+			foreach ($response->errors as $short_name => $description_array) {
230
+				$error_string .= "<b>$short_name</b>: " . implode(", ", $description_array);
231
+			}
232
+			return $error_string;
233
+		}
234
+		return "ok!";
235
+	}
236
+	/**
237
+	 * Whether or not a .maintenance file is detected
238
+	 * @return string descripting wp_maintenance_mode status
239
+	 */
240
+	public function get_wp_maintenance_mode()
241
+	{
242
+		$opened = file_exists(ABSPATH . '.maintenance');
243
+		return $opened ? sprintf(__('%s.maintenance file detected.%s Wordpress may have a failed auto-update which could prevent Event Espresso from updating the database correctly.', 'event_espresso'), '<strong>', '</strong>') : __('.maintenance file not detected. WordPress is not in maintenance mode.', 'event_espresso')  ;
244
+	}
245
+	/**
246
+	 * Whether or not logging is enabled
247
+	 * @return string descripting logging's status
248
+	 */
249
+	public function get_logging_enabled()
250
+	{
251
+			$opened = @fopen(EVENT_ESPRESSO_UPLOAD_DIR . '/logs/espresso_log.txt', 'a');
252
+			return $opened ? __('Log Directory is writable', 'event_espresso') : sprintf(__('%sLog directory is NOT writable%s', 'event_espresso'), '<mark class="error"', '</mark>') ;
253
+	}
254
+	/**
255
+	 *  Whether curl ro fsock works
256
+	 * @return string describing posting's status
257
+	 */
258
+	public function get_remote_posting()
259
+	{
260
+		$fsock_works = function_exists('fsockopen');
261
+		$curl_works = function_exists('curl_init');
262
+		if ($fsock_works && $curl_works) {
263
+			$status = __('Your server has fsockopen and cURL enabled.', 'event_espresso');
264
+		} elseif ($fsock_works) {
265
+			$status = __('Your server has fsockopen enabled, cURL is disabled.', 'event_espresso');
266
+		} elseif ($curl_works) {
267
+			$status = __('Your server has cURL enabled, fsockopen is disabled.', 'event_espresso');
268
+		} else {
269
+			$status = __('Your server does not have fsockopen or cURL enabled - PayPal IPN and other scripts which communicate with other servers will not work. Contact your hosting provider.', 'event_espresso') . '</mark>';
270
+		}
271
+		return $status;
272
+	}
273
+	/**
274
+	 * Gets all the php.ini settings
275
+	 * @return array
276
+	 */
277
+	public function get_php_ini_all()
278
+	{
279
+		return ini_get_all();
280
+	}
281
+	/**
282
+	 * Transforms the php.ini notation for numbers (like '2M') to an integer.
283
+	 *
284
+	 * @param type $size
285
+	 * @return int
286
+	 */
287
+	public function let_to_num($size)
288
+	{
289
+		$l      = substr($size, -1);
290
+		$ret    = substr($size, 0, -1);
291
+		// phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment
292
+		switch (strtoupper($l)) {
293
+			case 'P':
294
+				$ret *= 1024;
295
+			case 'T':
296
+				$ret *= 1024;
297
+			case 'G':
298
+				$ret *= 1024;
299
+			case 'M':
300
+				$ret *= 1024;
301
+			case 'K':
302
+				$ret *= 1024;
303
+		}
304
+		// phpcs:enable
305
+		return $ret;
306
+	}
307 307
 }
Please login to merge, or discard this patch.
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -97,9 +97,9 @@  discard block
 block discarded – undo
97 97
         $active_plugins = array_map('strtolower', $active_plugins);
98 98
         $plugin_info = array();
99 99
         foreach ($active_plugins as $plugin) {
100
-                $plugin_data = @get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin);
100
+                $plugin_data = @get_plugin_data(WP_PLUGIN_DIR.'/'.$plugin);
101 101
 
102
-                $plugin_info[ $plugin ] = $plugin_data;
102
+                $plugin_info[$plugin] = $plugin_data;
103 103
         }
104 104
         return $plugin_info;
105 105
     }
@@ -112,9 +112,9 @@  discard block
 block discarded – undo
112 112
     {
113 113
         $wp_memory_int = $this->let_to_num(WP_MEMORY_LIMIT);
114 114
         if ($wp_memory_int < 67108864) {
115
-            $wp_memory_to_display = '<mark class="error">' . sprintf(__('%s - We recommend setting memory to at least 64MB. See: %s Increasing memory allocated to PHP %s', 'event_espresso'), WP_MEMORY_LIMIT, '<a href="http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP">', '</a>"') . '</mark>';
115
+            $wp_memory_to_display = '<mark class="error">'.sprintf(__('%s - We recommend setting memory to at least 64MB. See: %s Increasing memory allocated to PHP %s', 'event_espresso'), WP_MEMORY_LIMIT, '<a href="http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP">', '</a>"').'</mark>';
116 116
         } else {
117
-            $wp_memory_to_display = '<mark class="yes">' . size_format($wp_memory_int) . '</mark>';
117
+            $wp_memory_to_display = '<mark class="yes">'.size_format($wp_memory_int).'</mark>';
118 118
         }
119 119
         return array(
120 120
             'name' => get_bloginfo('name', 'display'),
@@ -153,7 +153,7 @@  discard block
 block discarded – undo
153 153
         $options = EE_Data_Migration_Manager::instance()->get_all_migration_script_options();
154 154
         $presentable_migration_scripts = array();
155 155
         foreach ($options as $option_array) {
156
-            $presentable_migration_scripts[ str_replace(EE_Data_Migration_Manager::data_migration_script_option_prefix, "", $option_array['option_name']) ] = maybe_unserialize($option_array['option_value']);
156
+            $presentable_migration_scripts[str_replace(EE_Data_Migration_Manager::data_migration_script_option_prefix, "", $option_array['option_name'])] = maybe_unserialize($option_array['option_value']);
157 157
         }
158 158
         return $presentable_migration_scripts;
159 159
 //      return get_option(EE_Data_Migration_Manager::data_migrations_option_name);//EE_Data_Migration_Manager::instance()->get_data_migrations_ran();
@@ -179,18 +179,18 @@  discard block
 block discarded – undo
179 179
 
180 180
         $pi = preg_replace(
181 181
             array('#^.*<body>(.*)</body>.*$#ms', '#<h2>PHP License</h2>.*$#ms',
182
-            '#<h1>Configuration</h1>#',  "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#',
182
+            '#<h1>Configuration</h1>#', "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#',
183 183
             "#[ \t]+#", '#&nbsp;#', '#  +#', '# class=".*?"#', '%&#039;%',
184 184
             '#<tr>(?:.*?)" src="(?:.*?)=(.*?)" alt="PHP Logo" /></a>'
185 185
             . '<h1>PHP Version (.*?)</h1>(?:\n+?)</td></tr>#',
186 186
             '#<h1><a href="(?:.*?)\?=(.*?)">PHP Credits</a></h1>#',
187 187
             '#<tr>(?:.*?)" src="(?:.*?)=(.*?)"(?:.*?)Zend Engine (.*?),(?:.*?)</tr>#',
188 188
             "# +#", '#<tr>#', '#</tr>#'),
189
-            array('$1', '', '', '', '</$1>' . "\n", '<', ' ', ' ', ' ', '', ' ',
190
-            '<h2>PHP Configuration</h2>' . "\n" . '<tr><td>PHP Version</td><td>$2</td></tr>' .
191
-            "\n" . '<tr><td>PHP Egg</td><td>$1</td></tr>',
189
+            array('$1', '', '', '', '</$1>'."\n", '<', ' ', ' ', ' ', '', ' ',
190
+            '<h2>PHP Configuration</h2>'."\n".'<tr><td>PHP Version</td><td>$2</td></tr>'.
191
+            "\n".'<tr><td>PHP Egg</td><td>$1</td></tr>',
192 192
             '<tr><td>PHP Credits Egg</td><td>$1</td></tr>',
193
-            '<tr><td>Zend Engine</td><td>$2</td></tr>' . "\n" .
193
+            '<tr><td>Zend Engine</td><td>$2</td></tr>'."\n".
194 194
             '<tr><td>Zend Egg</td><td>$1</td></tr>', ' ', '%S%', '%E%'),
195 195
             ob_get_clean()
196 196
         );
@@ -210,7 +210,7 @@  discard block
 block discarded – undo
210 210
             foreach ($askapache as $m) {
211 211
                 $m2 = isset($m[2]) ? $m[2] : null;
212 212
             }
213
-              $pi[ $n ][ $m[1] ] = (!isset($m[3]) || $m2 == $m[3]) ? $m2 : array_slice($m, 2);
213
+              $pi[$n][$m[1]] = ( ! isset($m[3]) || $m2 == $m[3]) ? $m2 : array_slice($m, 2);
214 214
         }
215 215
 
216 216
         return $pi;
@@ -227,7 +227,7 @@  discard block
 block discarded – undo
227 227
         if ($response instanceof WP_Error) {
228 228
             $error_string = '';
229 229
             foreach ($response->errors as $short_name => $description_array) {
230
-                $error_string .= "<b>$short_name</b>: " . implode(", ", $description_array);
230
+                $error_string .= "<b>$short_name</b>: ".implode(", ", $description_array);
231 231
             }
232 232
             return $error_string;
233 233
         }
@@ -239,8 +239,8 @@  discard block
 block discarded – undo
239 239
      */
240 240
     public function get_wp_maintenance_mode()
241 241
     {
242
-        $opened = file_exists(ABSPATH . '.maintenance');
243
-        return $opened ? sprintf(__('%s.maintenance file detected.%s Wordpress may have a failed auto-update which could prevent Event Espresso from updating the database correctly.', 'event_espresso'), '<strong>', '</strong>') : __('.maintenance file not detected. WordPress is not in maintenance mode.', 'event_espresso')  ;
242
+        $opened = file_exists(ABSPATH.'.maintenance');
243
+        return $opened ? sprintf(__('%s.maintenance file detected.%s Wordpress may have a failed auto-update which could prevent Event Espresso from updating the database correctly.', 'event_espresso'), '<strong>', '</strong>') : __('.maintenance file not detected. WordPress is not in maintenance mode.', 'event_espresso');
244 244
     }
245 245
     /**
246 246
      * Whether or not logging is enabled
@@ -248,8 +248,8 @@  discard block
 block discarded – undo
248 248
      */
249 249
     public function get_logging_enabled()
250 250
     {
251
-            $opened = @fopen(EVENT_ESPRESSO_UPLOAD_DIR . '/logs/espresso_log.txt', 'a');
252
-            return $opened ? __('Log Directory is writable', 'event_espresso') : sprintf(__('%sLog directory is NOT writable%s', 'event_espresso'), '<mark class="error"', '</mark>') ;
251
+            $opened = @fopen(EVENT_ESPRESSO_UPLOAD_DIR.'/logs/espresso_log.txt', 'a');
252
+            return $opened ? __('Log Directory is writable', 'event_espresso') : sprintf(__('%sLog directory is NOT writable%s', 'event_espresso'), '<mark class="error"', '</mark>');
253 253
     }
254 254
     /**
255 255
      *  Whether curl ro fsock works
@@ -266,7 +266,7 @@  discard block
 block discarded – undo
266 266
         } elseif ($curl_works) {
267 267
             $status = __('Your server has cURL enabled, fsockopen is disabled.', 'event_espresso');
268 268
         } else {
269
-            $status = __('Your server does not have fsockopen or cURL enabled - PayPal IPN and other scripts which communicate with other servers will not work. Contact your hosting provider.', 'event_espresso') . '</mark>';
269
+            $status = __('Your server does not have fsockopen or cURL enabled - PayPal IPN and other scripts which communicate with other servers will not work. Contact your hosting provider.', 'event_espresso').'</mark>';
270 270
         }
271 271
         return $status;
272 272
     }
Please login to merge, or discard this patch.
core/db_models/fields/EE_WP_Post_Status_Field.php 3 patches
Doc Comments   -2 removed lines patch added patch discarded remove patch
@@ -32,8 +32,6 @@
 block discarded – undo
32 32
      *                                    )
33 33
      *                                    )
34 34
      * @link http://codex.wordpress.org/Function_Reference/register_post_status for more info
35
-     * @param boolean $store_in_db_as_int By default, enums are stored as STRINGS in the DB. However, if this var is
36
-     *                                    set to true, it will be stored as an INT
37 35
      */
38 36
     public function __construct($table_column, $nicename, $nullable, $default_value, $new_stati = array())
39 37
     {
Please login to merge, or discard this patch.
Indentation   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -3,114 +3,114 @@
 block discarded – undo
3 3
 class EE_WP_Post_Status_Field extends EE_Enum_Text_Field
4 4
 {
5 5
 
6
-    protected $_wp_post_stati;
6
+	protected $_wp_post_stati;
7 7
 
8 8
 
9
-    /**
10
-     * constructor
11
-     *
12
-     * @param string  $table_column       column on table
13
-     * @param string  $nicename           nice name for column(field)
14
-     * @param bool    $nullable           is this field nullable
15
-     * @param string  $default_value      default status
16
-     * @param array   $new_stati          If additional stati are to be used other than the default WP statuses then
17
-     *                                    they can be registered via this property.  The format of the array should be
18
-     *                                    as follows: array(
19
-     *                                    'status_reference' => array(
20
-     *                                    'label' => __('Status Reference Label', 'event_espresso')
21
-     *                                    'public' => true, //'Whether posts of this status should be shown on the
22
-     *                                    frontend of the site'
23
-     *                                    'exclude_from_search' => false, //'Whether posts of this status should be
24
-     *                                    excluded from wp searches'
25
-     *                                    'show_in_admin_all_list' => true, //whether posts of this status are included
26
-     *                                    in queries for the admin "all" view in list table views.
27
-     *                                    'show_in_admin_status_list' => true, //Show in the list of statuses with post
28
-     *                                    counts at the top of the admin list tables (i.e. Status Reference(2) )
29
-     *                                    'label_count' => _n_noop( 'Status Reference <span class="count">(%s)</span>',
30
-     *                                    'Status References <span class="count">(%s)</span>' ), //the text to display
31
-     *                                    on the admin screen( or you won't see your status count ).
32
-     *                                    )
33
-     *                                    )
34
-     * @link http://codex.wordpress.org/Function_Reference/register_post_status for more info
35
-     * @param boolean $store_in_db_as_int By default, enums are stored as STRINGS in the DB. However, if this var is
36
-     *                                    set to true, it will be stored as an INT
37
-     */
38
-    public function __construct($table_column, $nicename, $nullable, $default_value, $new_stati = array())
39
-    {
40
-        $this->_register_new_stati($new_stati);
41
-        $this->_set_allowed_enum_values();
42
-        parent::__construct($table_column, $nicename, $nullable, $default_value, $this->_allowed_enum_values);
43
-    }
9
+	/**
10
+	 * constructor
11
+	 *
12
+	 * @param string  $table_column       column on table
13
+	 * @param string  $nicename           nice name for column(field)
14
+	 * @param bool    $nullable           is this field nullable
15
+	 * @param string  $default_value      default status
16
+	 * @param array   $new_stati          If additional stati are to be used other than the default WP statuses then
17
+	 *                                    they can be registered via this property.  The format of the array should be
18
+	 *                                    as follows: array(
19
+	 *                                    'status_reference' => array(
20
+	 *                                    'label' => __('Status Reference Label', 'event_espresso')
21
+	 *                                    'public' => true, //'Whether posts of this status should be shown on the
22
+	 *                                    frontend of the site'
23
+	 *                                    'exclude_from_search' => false, //'Whether posts of this status should be
24
+	 *                                    excluded from wp searches'
25
+	 *                                    'show_in_admin_all_list' => true, //whether posts of this status are included
26
+	 *                                    in queries for the admin "all" view in list table views.
27
+	 *                                    'show_in_admin_status_list' => true, //Show in the list of statuses with post
28
+	 *                                    counts at the top of the admin list tables (i.e. Status Reference(2) )
29
+	 *                                    'label_count' => _n_noop( 'Status Reference <span class="count">(%s)</span>',
30
+	 *                                    'Status References <span class="count">(%s)</span>' ), //the text to display
31
+	 *                                    on the admin screen( or you won't see your status count ).
32
+	 *                                    )
33
+	 *                                    )
34
+	 * @link http://codex.wordpress.org/Function_Reference/register_post_status for more info
35
+	 * @param boolean $store_in_db_as_int By default, enums are stored as STRINGS in the DB. However, if this var is
36
+	 *                                    set to true, it will be stored as an INT
37
+	 */
38
+	public function __construct($table_column, $nicename, $nullable, $default_value, $new_stati = array())
39
+	{
40
+		$this->_register_new_stati($new_stati);
41
+		$this->_set_allowed_enum_values();
42
+		parent::__construct($table_column, $nicename, $nullable, $default_value, $this->_allowed_enum_values);
43
+	}
44 44
 
45 45
 
46
-    /**
47
-     * This registers any new statuses sent via the $new_stati array on construct
48
-     *
49
-     * @access protected
50
-     * @param  array $new_stati statuses
51
-     * @return void
52
-     */
53
-    protected function _register_new_stati($new_stati)
54
-    {
46
+	/**
47
+	 * This registers any new statuses sent via the $new_stati array on construct
48
+	 *
49
+	 * @access protected
50
+	 * @param  array $new_stati statuses
51
+	 * @return void
52
+	 */
53
+	protected function _register_new_stati($new_stati)
54
+	{
55 55
 
56
-        foreach ((array) $new_stati as $status_key => $status_args) {
57
-            $args = array(
58
-                'label'                     => isset($status_args['label']) ? $status_args['label'] : $status_key,
59
-                'public'                    => isset($status_args['public']) && is_bool($status_args['public']) ? $status_args['public'] : true,
60
-                'exclude_from_search'       => isset($status_args['exclude_from_search']) && is_bool($status_args['exclude_from_search']) ? $status_args['exclude_from_search'] : false,
61
-                'show_in_admin_all_list'    => isset($status_args['show_in_admin_all_list']) && is_bool($status_args['show_in_admin_all_list']) ? $status_args['show_in_admin_all_list'] : false,
62
-                'show_in_admin_status_list' => isset($status_args['show_in_admin_status_list']) && is_bool($status_args['show_in_admin_status_list']) ? $status_args['show_in_admin_status_list'] : true,
63
-                'label_count'               => isset($status_args['label_count']) ? $status_args['label_count'] : '',
64
-            );
65
-            register_post_status($status_key, $status_args);
66
-        }
67
-    }
56
+		foreach ((array) $new_stati as $status_key => $status_args) {
57
+			$args = array(
58
+				'label'                     => isset($status_args['label']) ? $status_args['label'] : $status_key,
59
+				'public'                    => isset($status_args['public']) && is_bool($status_args['public']) ? $status_args['public'] : true,
60
+				'exclude_from_search'       => isset($status_args['exclude_from_search']) && is_bool($status_args['exclude_from_search']) ? $status_args['exclude_from_search'] : false,
61
+				'show_in_admin_all_list'    => isset($status_args['show_in_admin_all_list']) && is_bool($status_args['show_in_admin_all_list']) ? $status_args['show_in_admin_all_list'] : false,
62
+				'show_in_admin_status_list' => isset($status_args['show_in_admin_status_list']) && is_bool($status_args['show_in_admin_status_list']) ? $status_args['show_in_admin_status_list'] : true,
63
+				'label_count'               => isset($status_args['label_count']) ? $status_args['label_count'] : '',
64
+			);
65
+			register_post_status($status_key, $status_args);
66
+		}
67
+	}
68 68
 
69 69
 
70
-    /**
71
-     * This sets the _allowed_enum_values property using the $wp_post_stati array
72
-     *
73
-     * @access protected
74
-     * @regurn void
75
-     */
76
-    protected function _set_allowed_enum_values()
77
-    {
78
-        // first let's get the post_statuses
79
-        global $wp_post_statuses;
80
-        $this->_wp_post_stati = $wp_post_statuses;
70
+	/**
71
+	 * This sets the _allowed_enum_values property using the $wp_post_stati array
72
+	 *
73
+	 * @access protected
74
+	 * @regurn void
75
+	 */
76
+	protected function _set_allowed_enum_values()
77
+	{
78
+		// first let's get the post_statuses
79
+		global $wp_post_statuses;
80
+		$this->_wp_post_stati = $wp_post_statuses;
81 81
 
82
-        foreach ($this->_wp_post_stati as $post_status => $args_object) {
83
-            $this->_allowed_enum_values[ $post_status ] = $args_object->label;
84
-        }
85
-    }
82
+		foreach ($this->_wp_post_stati as $post_status => $args_object) {
83
+			$this->_allowed_enum_values[ $post_status ] = $args_object->label;
84
+		}
85
+	}
86 86
 
87
-    /**
88
-     * Before calling parent, first double-checks our list of acceptable post
89
-     * types is up-to-date
90
-     *
91
-     * @param string $value_inputted_for_field_on_model_object
92
-     * @return string
93
-     */
94
-    public function prepare_for_set($value_inputted_for_field_on_model_object)
95
-    {
96
-        $this->_set_allowed_enum_values();
97
-        return parent::prepare_for_set($value_inputted_for_field_on_model_object);
98
-    }
87
+	/**
88
+	 * Before calling parent, first double-checks our list of acceptable post
89
+	 * types is up-to-date
90
+	 *
91
+	 * @param string $value_inputted_for_field_on_model_object
92
+	 * @return string
93
+	 */
94
+	public function prepare_for_set($value_inputted_for_field_on_model_object)
95
+	{
96
+		$this->_set_allowed_enum_values();
97
+		return parent::prepare_for_set($value_inputted_for_field_on_model_object);
98
+	}
99 99
 
100 100
 
101 101
 
102
-    // helper methods for getting various $wp_post_statuses stuff.
102
+	// helper methods for getting various $wp_post_statuses stuff.
103 103
 
104
-    /**
105
-     * This just returns the status object for the given status
106
-     *
107
-     * @access public
108
-     * @see    wp_register_post_status in wp-includes/post.php for a list of properties of the status object
109
-     * @param  string $status What status object you want
110
-     * @return std_object         the status object or FALSE if it doesn't exist.
111
-     */
112
-    public function get_status_object($status)
113
-    {
114
-        return isset($this->_wp_post_stati[ $status ]) ? $this->_wp_post_stati[ $status ] : false;
115
-    }
104
+	/**
105
+	 * This just returns the status object for the given status
106
+	 *
107
+	 * @access public
108
+	 * @see    wp_register_post_status in wp-includes/post.php for a list of properties of the status object
109
+	 * @param  string $status What status object you want
110
+	 * @return std_object         the status object or FALSE if it doesn't exist.
111
+	 */
112
+	public function get_status_object($status)
113
+	{
114
+		return isset($this->_wp_post_stati[ $status ]) ? $this->_wp_post_stati[ $status ] : false;
115
+	}
116 116
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
         $this->_wp_post_stati = $wp_post_statuses;
81 81
 
82 82
         foreach ($this->_wp_post_stati as $post_status => $args_object) {
83
-            $this->_allowed_enum_values[ $post_status ] = $args_object->label;
83
+            $this->_allowed_enum_values[$post_status] = $args_object->label;
84 84
         }
85 85
     }
86 86
 
@@ -111,6 +111,6 @@  discard block
 block discarded – undo
111 111
      */
112 112
     public function get_status_object($status)
113 113
     {
114
-        return isset($this->_wp_post_stati[ $status ]) ? $this->_wp_post_stati[ $status ] : false;
114
+        return isset($this->_wp_post_stati[$status]) ? $this->_wp_post_stati[$status] : false;
115 115
     }
116 116
 }
Please login to merge, or discard this patch.
core/db_models/helpers/EE_Model_Query_Info_Carrier.php 3 patches
Doc Comments   +14 added lines, -1 removed lines patch added patch discarded remove patch
@@ -44,19 +44,33 @@  discard block
 block discarded – undo
44 44
    
45 45
     private $_group_by_sql;
46 46
    
47
+    /**
48
+     * @param string $limit_sql
49
+     */
47 50
     public function set_limit_sql($limit_sql)
48 51
     {
49 52
         $this->_limit_sql = $limit_sql;
50 53
     }
51 54
     
55
+    /**
56
+     * @param string $order_by_sql
57
+     */
52 58
     public function set_order_by_sql($order_by_sql)
53 59
     {
54 60
         $this->_order_by_sql = $order_by_sql;
55 61
     }
62
+
63
+    /**
64
+     * @param string $group_by_sql
65
+     */
56 66
     public function set_group_by_sql($group_by_sql)
57 67
     {
58 68
         $this->_group_by_sql = $group_by_sql;
59 69
     }
70
+
71
+    /**
72
+     * @param string $having_sql
73
+     */
60 74
     public function set_having_sql($having_sql)
61 75
     {
62 76
         $this->_having_sql = $having_sql;
@@ -81,7 +95,6 @@  discard block
 block discarded – undo
81 95
     *
82 96
     * @param type $model_included_name
83 97
     * @param type $join_sql
84
-    * @param type $data_types
85 98
     */
86 99
     public function __construct($model_included_name = array(), $join_sql = '')
87 100
     {
Please login to merge, or discard this patch.
Indentation   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -14,141 +14,141 @@  discard block
 block discarded – undo
14 14
    /**
15 15
     * @var string SQL for performing joins (Eg, "INNER JOIN blah ON blah=blah INNER JOIN FOO ON foo=foo...")
16 16
     */
17
-    private $_join_sql;
17
+	private $_join_sql;
18 18
    /**
19 19
     *
20 20
     * @var array stating all the models that have been included thus far,so we don't get duplicates.
21 21
     * Keys are the model relation chains to them from the queried model
22 22
     * (eg, "Registration.Transaction.Payment"), and valuesare model names (eg "Payment")
23 23
     */
24
-    private $_models_included;
24
+	private $_models_included;
25 25
    
26 26
    /**
27 27
     * After we've acquired all the data types, we can create this sql.
28 28
     * @var string
29 29
     */
30
-    private $_where_sql;
30
+	private $_where_sql;
31 31
    /**
32 32
     * Full join sql. Eg, in a select query, that's everything after the "FROM", and before the "WHERE", so it includes
33 33
     * the declaration of the main model's tables, and then appends all the joining sql to other models
34 34
     * @var string
35 35
     */
36
-    private $_main_join_sql;
36
+	private $_main_join_sql;
37 37
    
38 38
    
39
-    private $_limit_sql;
39
+	private $_limit_sql;
40 40
    
41
-    private $_order_by_sql;
41
+	private $_order_by_sql;
42 42
    
43
-    private $_having_sql;
43
+	private $_having_sql;
44 44
    
45
-    private $_group_by_sql;
45
+	private $_group_by_sql;
46 46
    
47
-    public function set_limit_sql($limit_sql)
48
-    {
49
-        $this->_limit_sql = $limit_sql;
50
-    }
47
+	public function set_limit_sql($limit_sql)
48
+	{
49
+		$this->_limit_sql = $limit_sql;
50
+	}
51 51
     
52
-    public function set_order_by_sql($order_by_sql)
53
-    {
54
-        $this->_order_by_sql = $order_by_sql;
55
-    }
56
-    public function set_group_by_sql($group_by_sql)
57
-    {
58
-        $this->_group_by_sql = $group_by_sql;
59
-    }
60
-    public function set_having_sql($having_sql)
61
-    {
62
-        $this->_having_sql = $having_sql;
63
-    }
64
-    public function get_limit_sql()
65
-    {
66
-        return $this->_limit_sql;
67
-    }
68
-    public function get_order_by_sql()
69
-    {
70
-        return $this->_order_by_sql;
71
-    }
72
-    public function get_group_by_sql()
73
-    {
74
-        return $this->_group_by_sql;
75
-    }
76
-    public function get_having_sql()
77
-    {
78
-        return $this->_having_sql;
79
-    }
52
+	public function set_order_by_sql($order_by_sql)
53
+	{
54
+		$this->_order_by_sql = $order_by_sql;
55
+	}
56
+	public function set_group_by_sql($group_by_sql)
57
+	{
58
+		$this->_group_by_sql = $group_by_sql;
59
+	}
60
+	public function set_having_sql($having_sql)
61
+	{
62
+		$this->_having_sql = $having_sql;
63
+	}
64
+	public function get_limit_sql()
65
+	{
66
+		return $this->_limit_sql;
67
+	}
68
+	public function get_order_by_sql()
69
+	{
70
+		return $this->_order_by_sql;
71
+	}
72
+	public function get_group_by_sql()
73
+	{
74
+		return $this->_group_by_sql;
75
+	}
76
+	public function get_having_sql()
77
+	{
78
+		return $this->_having_sql;
79
+	}
80 80
    /**
81 81
     *
82 82
     * @param type $model_included_name
83 83
     * @param type $join_sql
84 84
     * @param type $data_types
85 85
     */
86
-    public function __construct($model_included_name = array(), $join_sql = '')
87
-    {
88
-        $this->_models_included = $model_included_name;
89
-        $this->_join_sql = $join_sql;
90
-    }
86
+	public function __construct($model_included_name = array(), $join_sql = '')
87
+	{
88
+		$this->_models_included = $model_included_name;
89
+		$this->_join_sql = $join_sql;
90
+	}
91 91
    
92 92
    /**
93 93
     * Merges info from the other EEM_Related_Model_Info_Carrier into this one.
94 94
     * @param EE_Model_Query_Info_Carrier $other_model_query_info_carrier
95 95
     */
96
-    public function merge($other_model_query_info_carrier)
97
-    {
98
-        if ($other_model_query_info_carrier && ! $this->_have_already_included_one_of_these_models($other_model_query_info_carrier->get_model_names_included())) {
99
-            $model_included_on_other_join_sql_and_data_types_carrier =  $other_model_query_info_carrier->get_model_names_included();
100
-            $this->_models_included = array_merge($this->_models_included, $model_included_on_other_join_sql_and_data_types_carrier);
101
-            $this->_join_sql .= $other_model_query_info_carrier->_join_sql;
102
-        }
103
-        // otherwise don't merge our data.
104
-        // yes, this means that we must immediately merge any model data into our grand list
105
-        // as soon as we get some from ONE model, or else we could reject a EEM_Related_Model_Info_Carrier
106
-        // which is carrying info from two models WHERE one is already included but the other is NOT
107
-    }
96
+	public function merge($other_model_query_info_carrier)
97
+	{
98
+		if ($other_model_query_info_carrier && ! $this->_have_already_included_one_of_these_models($other_model_query_info_carrier->get_model_names_included())) {
99
+			$model_included_on_other_join_sql_and_data_types_carrier =  $other_model_query_info_carrier->get_model_names_included();
100
+			$this->_models_included = array_merge($this->_models_included, $model_included_on_other_join_sql_and_data_types_carrier);
101
+			$this->_join_sql .= $other_model_query_info_carrier->_join_sql;
102
+		}
103
+		// otherwise don't merge our data.
104
+		// yes, this means that we must immediately merge any model data into our grand list
105
+		// as soon as we get some from ONE model, or else we could reject a EEM_Related_Model_Info_Carrier
106
+		// which is carrying info from two models WHERE one is already included but the other is NOT
107
+	}
108 108
    /**
109 109
     * Checks whether or not we have already included all the models mentione din $model_names on the query info varrier
110 110
     * @param array $model_names just like EE_MOdel_QUery_Info_Carrier::_models_included: keys are model chain paths, values are the model names only
111 111
     * @return boolean
112 112
     */
113
-    protected function _have_already_included_one_of_these_models($model_names)
114
-    {
115
-        foreach ($this->_models_included as $model_relation_path => $model_included) {
116
-            if (array_key_exists($model_relation_path, $model_names)) {
117
-                return true;
118
-            }
119
-        }
120
-        return false;
121
-    }
113
+	protected function _have_already_included_one_of_these_models($model_names)
114
+	{
115
+		foreach ($this->_models_included as $model_relation_path => $model_included) {
116
+			if (array_key_exists($model_relation_path, $model_names)) {
117
+				return true;
118
+			}
119
+		}
120
+		return false;
121
+	}
122 122
    /**
123 123
     * Array keys are model names, values are "model relation paths". See EE_Model_Query_Info_Carrier::_models_included for details
124 124
     * @return array like EE_Model_Query_Info_Carrier::_models_included
125 125
     */
126
-    public function get_model_names_included()
127
-    {
128
-        return $this->_models_included;
129
-    }
126
+	public function get_model_names_included()
127
+	{
128
+		return $this->_models_included;
129
+	}
130 130
    /**
131 131
     * sets the $where_sql for later use from client code
132 132
     * @param string $where_sql
133 133
     */
134
-    public function set_where_sql($where_sql)
135
-    {
136
-        $this->_where_sql = $where_sql;
137
-    }
138
-    public function get_where_sql()
139
-    {
140
-        return $this->_where_sql;
141
-    }
134
+	public function set_where_sql($where_sql)
135
+	{
136
+		$this->_where_sql = $where_sql;
137
+	}
138
+	public function get_where_sql()
139
+	{
140
+		return $this->_where_sql;
141
+	}
142 142
 
143 143
    /**
144 144
     * Gets the SQL for joining the main model to other models involves in the query, which was set earlier on
145 145
     * the EE_Model_Query_info_Carrier by calling set_main_model_join_sql()
146 146
     * @return string
147 147
     */
148
-    public function get_main_model_join_sql()
149
-    {
150
-        return $this->_main_join_sql;
151
-    }
148
+	public function get_main_model_join_sql()
149
+	{
150
+		return $this->_main_join_sql;
151
+	}
152 152
 
153 153
 
154 154
    /**
@@ -158,12 +158,12 @@  discard block
 block discarded – undo
158 158
     * after the FROM and before the WHERE.)
159 159
     * @param string $join_sql
160 160
     */
161
-    public function set_main_model_join_sql($join_sql)
162
-    {
163
-        $this->_main_join_sql = $join_sql;
164
-    }
165
-    public function get_full_join_sql()
166
-    {
167
-        return $this->_main_join_sql . $this->_join_sql;
168
-    }
161
+	public function set_main_model_join_sql($join_sql)
162
+	{
163
+		$this->_main_join_sql = $join_sql;
164
+	}
165
+	public function get_full_join_sql()
166
+	{
167
+		return $this->_main_join_sql . $this->_join_sql;
168
+	}
169 169
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
     public function merge($other_model_query_info_carrier)
97 97
     {
98 98
         if ($other_model_query_info_carrier && ! $this->_have_already_included_one_of_these_models($other_model_query_info_carrier->get_model_names_included())) {
99
-            $model_included_on_other_join_sql_and_data_types_carrier =  $other_model_query_info_carrier->get_model_names_included();
99
+            $model_included_on_other_join_sql_and_data_types_carrier = $other_model_query_info_carrier->get_model_names_included();
100 100
             $this->_models_included = array_merge($this->_models_included, $model_included_on_other_join_sql_and_data_types_carrier);
101 101
             $this->_join_sql .= $other_model_query_info_carrier->_join_sql;
102 102
         }
@@ -164,6 +164,6 @@  discard block
 block discarded – undo
164 164
     }
165 165
     public function get_full_join_sql()
166 166
     {
167
-        return $this->_main_join_sql . $this->_join_sql;
167
+        return $this->_main_join_sql.$this->_join_sql;
168 168
     }
169 169
 }
Please login to merge, or discard this patch.
core/db_models/helpers/EE_Secondary_Table.php 3 patches
Doc Comments   +2 added lines, -1 removed lines patch added patch discarded remove patch
@@ -54,7 +54,7 @@  discard block
 block discarded – undo
54 54
      * creates join statement FROM primary table
55 55
      * gets SQL like "LEFT JOIN table_name AS table_alias ON other_table_alias.pk = table_alias.fk
56 56
      *
57
-     * @param string $table allows us to set special conditions on the $table_name portion of the join query (i.e. doing a subquery)
57
+     * @param string $primary_table_alias_with_model_chain_prefix
58 58
      * @return string of SQL
59 59
      */
60 60
     public function get_join_sql($primary_table_alias_with_model_chain_prefix)
@@ -78,6 +78,7 @@  discard block
 block discarded – undo
78 78
      * " LEFT JOIN secondary_table_table AS Secondary ON ..." like get_join_sql, this function returns
79 79
      * " LEFT JOIN primary_table AS Primary ON ...".
80 80
      * This is useful if the secondary table is already included in the SQL, but the primary table is not yet.
81
+     * @param string $secondary_table_alias_with_model_chain_prefix
81 82
      * @return string
82 83
      */
83 84
     public function get_inverse_join_sql($secondary_table_alias_with_model_chain_prefix)
Please login to merge, or discard this patch.
Indentation   +105 added lines, -105 removed lines patch added patch discarded remove patch
@@ -8,118 +8,118 @@
 block discarded – undo
8 8
  */
9 9
 class EE_Secondary_Table extends EE_Table_Base
10 10
 {
11
-    protected $_extra_join_conditions;
11
+	protected $_extra_join_conditions;
12 12
 
13
-    /**
14
-     *
15
-     * @global type $wpdb
16
-     * @param string $table_name with or without wpdb prefix
17
-     * @param string $pk_column name of primary key column on THIS table
18
-     * @param string $fk_column the name of the COLUMN that is a foreign key to the primary table's primary key
19
-     * @param string $extra_join_conditions string for additional SQL to add onto the join statement's ON condition
20
-     * @param boolean $global whether the table is "global" as in there is only 1 table on an entire multisite install,
21
-     *                  or whether each site on a multisite install has a copy of this table
22
-     */
23
-    public function __construct($table_name, $pk_column, $fk_column = null, $extra_join_conditions = null, $global = false)
24
-    {
25
-        $this->_fk_on_table = $fk_column;
26
-        $this->_extra_join_conditions = $extra_join_conditions;
27
-        parent::__construct($table_name, $pk_column, $global);
28
-    }
29
-    public function get_fk_on_table()
30
-    {
31
-        return $this->_fk_on_table;
32
-    }
33
-    public function _construct_finalize_set_table_to_join_with(EE_Table_Base $table)
34
-    {
35
-        $this->_table_to_join_with = $table;
36
-    }
37
-    /**
38
-     *
39
-     * @return string of sql like "Event.post_type = 'event'", which gets added to
40
-     * the end of the join statement with the primary table
41
-     */
42
-    public function get_extra_join_conditions()
43
-    {
44
-        return $this->_extra_join_conditions;
45
-    }
46
-    /**
47
-     *
48
-     * @return EE_Primary_Table
49
-     */
50
-    public function get_table_to_join_with()
51
-    {
52
-        return $this->_table_to_join_with;
53
-    }
54
-    /**
55
-     * creates join statement FROM primary table
56
-     * gets SQL like "LEFT JOIN table_name AS table_alias ON other_table_alias.pk = table_alias.fk
57
-     *
58
-     * @param string $table allows us to set special conditions on the $table_name portion of the join query (i.e. doing a subquery)
59
-     * @return string of SQL
60
-     */
61
-    public function get_join_sql($primary_table_alias_with_model_chain_prefix)
62
-    {
13
+	/**
14
+	 *
15
+	 * @global type $wpdb
16
+	 * @param string $table_name with or without wpdb prefix
17
+	 * @param string $pk_column name of primary key column on THIS table
18
+	 * @param string $fk_column the name of the COLUMN that is a foreign key to the primary table's primary key
19
+	 * @param string $extra_join_conditions string for additional SQL to add onto the join statement's ON condition
20
+	 * @param boolean $global whether the table is "global" as in there is only 1 table on an entire multisite install,
21
+	 *                  or whether each site on a multisite install has a copy of this table
22
+	 */
23
+	public function __construct($table_name, $pk_column, $fk_column = null, $extra_join_conditions = null, $global = false)
24
+	{
25
+		$this->_fk_on_table = $fk_column;
26
+		$this->_extra_join_conditions = $extra_join_conditions;
27
+		parent::__construct($table_name, $pk_column, $global);
28
+	}
29
+	public function get_fk_on_table()
30
+	{
31
+		return $this->_fk_on_table;
32
+	}
33
+	public function _construct_finalize_set_table_to_join_with(EE_Table_Base $table)
34
+	{
35
+		$this->_table_to_join_with = $table;
36
+	}
37
+	/**
38
+	 *
39
+	 * @return string of sql like "Event.post_type = 'event'", which gets added to
40
+	 * the end of the join statement with the primary table
41
+	 */
42
+	public function get_extra_join_conditions()
43
+	{
44
+		return $this->_extra_join_conditions;
45
+	}
46
+	/**
47
+	 *
48
+	 * @return EE_Primary_Table
49
+	 */
50
+	public function get_table_to_join_with()
51
+	{
52
+		return $this->_table_to_join_with;
53
+	}
54
+	/**
55
+	 * creates join statement FROM primary table
56
+	 * gets SQL like "LEFT JOIN table_name AS table_alias ON other_table_alias.pk = table_alias.fk
57
+	 *
58
+	 * @param string $table allows us to set special conditions on the $table_name portion of the join query (i.e. doing a subquery)
59
+	 * @return string of SQL
60
+	 */
61
+	public function get_join_sql($primary_table_alias_with_model_chain_prefix)
62
+	{
63 63
 
64
-        $table_name = $this->get_table_name();
65
-        $secondary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($primary_table_alias_with_model_chain_prefix) . $this->get_table_alias();
66
-        $other_table_pk = $this->get_table_to_join_with()->get_pk_column();
67
-        $fk = $this->get_fk_on_table();
68
-        $join_sql = " LEFT JOIN $table_name AS $secondary_table_alias ON $primary_table_alias_with_model_chain_prefix.$other_table_pk = $secondary_table_alias.$fk ";
69
-        if ($this->get_extra_join_conditions()) {
70
-            $join_sql .= "AND " . $this->get_extra_join_conditions();
71
-        }
72
-        return $join_sql;
73
-    }
64
+		$table_name = $this->get_table_name();
65
+		$secondary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($primary_table_alias_with_model_chain_prefix) . $this->get_table_alias();
66
+		$other_table_pk = $this->get_table_to_join_with()->get_pk_column();
67
+		$fk = $this->get_fk_on_table();
68
+		$join_sql = " LEFT JOIN $table_name AS $secondary_table_alias ON $primary_table_alias_with_model_chain_prefix.$other_table_pk = $secondary_table_alias.$fk ";
69
+		if ($this->get_extra_join_conditions()) {
70
+			$join_sql .= "AND " . $this->get_extra_join_conditions();
71
+		}
72
+		return $join_sql;
73
+	}
74 74
 
75 75
 
76
-    /**
77
-     * Produces join SQL like get_join_sql, except instead of joining the primary table to the
78
-     * secondary table, does the inverse: joins the secondary table to the primary one. (Eg, isntead of
79
-     * " LEFT JOIN secondary_table_table AS Secondary ON ..." like get_join_sql, this function returns
80
-     * " LEFT JOIN primary_table AS Primary ON ...".
81
-     * This is useful if the secondary table is already included in the SQL, but the primary table is not yet.
82
-     * @return string
83
-     */
84
-    public function get_inverse_join_sql($secondary_table_alias_with_model_chain_prefix)
85
-    {
86
-        $primary_table_name = $this->get_table_to_join_with()->get_table_name();
87
-        $primary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($secondary_table_alias_with_model_chain_prefix) . $this->get_table_to_join_with()->get_table_alias();
88
-        $primary_table_pk = $this->get_table_to_join_with()->get_pk_column();// $this->get_pk_column();
89
-        $fk = $this->get_fk_on_table();
90
-        $join_sql = " LEFT JOIN $primary_table_name AS $primary_table_alias ON $primary_table_alias.$primary_table_pk = $secondary_table_alias_with_model_chain_prefix.$fk ";
91
-        if ($this->get_extra_join_conditions()) {
92
-            $join_sql .= "AND " . $this->get_extra_join_conditions();
93
-        }
94
-        return $join_sql;
95
-    }
76
+	/**
77
+	 * Produces join SQL like get_join_sql, except instead of joining the primary table to the
78
+	 * secondary table, does the inverse: joins the secondary table to the primary one. (Eg, isntead of
79
+	 * " LEFT JOIN secondary_table_table AS Secondary ON ..." like get_join_sql, this function returns
80
+	 * " LEFT JOIN primary_table AS Primary ON ...".
81
+	 * This is useful if the secondary table is already included in the SQL, but the primary table is not yet.
82
+	 * @return string
83
+	 */
84
+	public function get_inverse_join_sql($secondary_table_alias_with_model_chain_prefix)
85
+	{
86
+		$primary_table_name = $this->get_table_to_join_with()->get_table_name();
87
+		$primary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($secondary_table_alias_with_model_chain_prefix) . $this->get_table_to_join_with()->get_table_alias();
88
+		$primary_table_pk = $this->get_table_to_join_with()->get_pk_column();// $this->get_pk_column();
89
+		$fk = $this->get_fk_on_table();
90
+		$join_sql = " LEFT JOIN $primary_table_name AS $primary_table_alias ON $primary_table_alias.$primary_table_pk = $secondary_table_alias_with_model_chain_prefix.$fk ";
91
+		if ($this->get_extra_join_conditions()) {
92
+			$join_sql .= "AND " . $this->get_extra_join_conditions();
93
+		}
94
+		return $join_sql;
95
+	}
96 96
 
97
-    /**
98
-     * This prepares the join on the other table using a select with a internal limit.
99
-     * @param  mixed (array|string) $limit limit
100
-     * @return string                       SQL to return
101
-     */
102
-    public function get_select_join_limit_join($limit)
103
-    {
104
-        // first get the select
105
-        $select = $this->get_select_join_limit($limit);
106
-        $join_sql = $this->get_join_sql($select);
107
-        return $join_sql;
108
-    }
97
+	/**
98
+	 * This prepares the join on the other table using a select with a internal limit.
99
+	 * @param  mixed (array|string) $limit limit
100
+	 * @return string                       SQL to return
101
+	 */
102
+	public function get_select_join_limit_join($limit)
103
+	{
104
+		// first get the select
105
+		$select = $this->get_select_join_limit($limit);
106
+		$join_sql = $this->get_join_sql($select);
107
+		return $join_sql;
108
+	}
109 109
 
110 110
 
111 111
 
112
-    public function get_fully_qualified_fk_column()
113
-    {
114
-        $table_alias = $this->get_table_alias();
115
-        $fk = $this->get_fk_on_table();
116
-        return $table_alias . '.' . $fk;
117
-    }
112
+	public function get_fully_qualified_fk_column()
113
+	{
114
+		$table_alias = $this->get_table_alias();
115
+		$fk = $this->get_fk_on_table();
116
+		return $table_alias . '.' . $fk;
117
+	}
118 118
 
119
-    public function get_fully_qualified_pk_on_fk_table()
120
-    {
121
-        $table_alias = $this->get_table_to_join_with()->get_table_alias();
122
-        $pk = $this->get_table_to_join_with()->get_pk_column();
123
-        return $table_alias . '.' . $pk;
124
-    }
119
+	public function get_fully_qualified_pk_on_fk_table()
120
+	{
121
+		$table_alias = $this->get_table_to_join_with()->get_table_alias();
122
+		$pk = $this->get_table_to_join_with()->get_pk_column();
123
+		return $table_alias . '.' . $pk;
124
+	}
125 125
 }
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -62,12 +62,12 @@  discard block
 block discarded – undo
62 62
     {
63 63
 
64 64
         $table_name = $this->get_table_name();
65
-        $secondary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($primary_table_alias_with_model_chain_prefix) . $this->get_table_alias();
65
+        $secondary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($primary_table_alias_with_model_chain_prefix).$this->get_table_alias();
66 66
         $other_table_pk = $this->get_table_to_join_with()->get_pk_column();
67 67
         $fk = $this->get_fk_on_table();
68 68
         $join_sql = " LEFT JOIN $table_name AS $secondary_table_alias ON $primary_table_alias_with_model_chain_prefix.$other_table_pk = $secondary_table_alias.$fk ";
69 69
         if ($this->get_extra_join_conditions()) {
70
-            $join_sql .= "AND " . $this->get_extra_join_conditions();
70
+            $join_sql .= "AND ".$this->get_extra_join_conditions();
71 71
         }
72 72
         return $join_sql;
73 73
     }
@@ -84,12 +84,12 @@  discard block
 block discarded – undo
84 84
     public function get_inverse_join_sql($secondary_table_alias_with_model_chain_prefix)
85 85
     {
86 86
         $primary_table_name = $this->get_table_to_join_with()->get_table_name();
87
-        $primary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($secondary_table_alias_with_model_chain_prefix) . $this->get_table_to_join_with()->get_table_alias();
88
-        $primary_table_pk = $this->get_table_to_join_with()->get_pk_column();// $this->get_pk_column();
87
+        $primary_table_alias = EE_Model_Parser::get_prefix_from_table_alias_with_model_relation_chain_prefix($secondary_table_alias_with_model_chain_prefix).$this->get_table_to_join_with()->get_table_alias();
88
+        $primary_table_pk = $this->get_table_to_join_with()->get_pk_column(); // $this->get_pk_column();
89 89
         $fk = $this->get_fk_on_table();
90 90
         $join_sql = " LEFT JOIN $primary_table_name AS $primary_table_alias ON $primary_table_alias.$primary_table_pk = $secondary_table_alias_with_model_chain_prefix.$fk ";
91 91
         if ($this->get_extra_join_conditions()) {
92
-            $join_sql .= "AND " . $this->get_extra_join_conditions();
92
+            $join_sql .= "AND ".$this->get_extra_join_conditions();
93 93
         }
94 94
         return $join_sql;
95 95
     }
@@ -113,13 +113,13 @@  discard block
 block discarded – undo
113 113
     {
114 114
         $table_alias = $this->get_table_alias();
115 115
         $fk = $this->get_fk_on_table();
116
-        return $table_alias . '.' . $fk;
116
+        return $table_alias.'.'.$fk;
117 117
     }
118 118
 
119 119
     public function get_fully_qualified_pk_on_fk_table()
120 120
     {
121 121
         $table_alias = $this->get_table_to_join_with()->get_table_alias();
122 122
         $pk = $this->get_table_to_join_with()->get_pk_column();
123
-        return $table_alias . '.' . $pk;
123
+        return $table_alias.'.'.$pk;
124 124
     }
125 125
 }
Please login to merge, or discard this patch.
core/EE_Deprecated.core.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1049,7 +1049,7 @@
 block discarded – undo
1049 1049
 
1050 1050
     /**
1051 1051
      * @deprecated 4.9.0
1052
-     * @return array
1052
+     * @return EE_messenger[]
1053 1053
      */
1054 1054
     public function get_installed_messengers()
1055 1055
     {
Please login to merge, or discard this patch.
Spacing   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -84,20 +84,20 @@  discard block
 block discarded – undo
84 84
     // loop thru and call doing_it_wrong() or remove any that aren't being used
85 85
     foreach ($deprecated_filters as $deprecated_filter => $on) {
86 86
         // was this filter called ?
87
-        if (has_action('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter)) {
87
+        if (has_action('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__'.$deprecated_filter)) {
88 88
             // only display doing_it_wrong() notice to Event Admins during non-AJAX requests
89 89
             if (EE_Registry::instance()->CAP->current_user_can(
90 90
                     'ee_read_ee',
91 91
                     'hide_doing_it_wrong_for_deprecated_SPCO_filter'
92 92
                 ) && ! defined('DOING_AJAX')) {
93 93
                 EE_Error::doing_it_wrong(
94
-                    'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
94
+                    'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__'.$deprecated_filter,
95 95
                     sprintf(
96 96
                         __(
97 97
                             'The %1$s filter is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new filter: %2$s"%3$s" found in "%4$s"',
98 98
                             'event_espresso'
99 99
                         ),
100
-                        'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
100
+                        'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__'.$deprecated_filter,
101 101
                         '<br />',
102 102
                         'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
103 103
                         '/modules/single_page_checkout/inc/EE_SPCO_Reg_Step.class.php'
@@ -106,10 +106,10 @@  discard block
 block discarded – undo
106 106
                 );
107 107
             }
108 108
         } else {
109
-            unset($deprecated_filters[ $deprecated_filter ]);
109
+            unset($deprecated_filters[$deprecated_filter]);
110 110
         }
111 111
     }
112
-    if (! empty($deprecated_filters)) {
112
+    if ( ! empty($deprecated_filters)) {
113 113
 
114 114
         if ($checkout->current_step->slug(
115 115
             ) == 'attendee_information' && $checkout->revisit && isset($deprecated_filters['update_registration_details'])) {
@@ -143,7 +143,7 @@  discard block
 block discarded – undo
143 143
                 $submit_button_text = apply_filters(
144 144
                                           'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__proceed_to',
145 145
                                           $submit_button_text
146
-                                      ) . $checkout->next_step->name();
146
+                                      ).$checkout->next_step->name();
147 147
             }
148 148
         }
149 149
 
@@ -327,7 +327,7 @@  discard block
 block discarded – undo
327 327
             'event_espresso'
328 328
         );
329 329
         EE_Error::doing_it_wrong(
330
-            __CLASS__ . '::' . __FUNCTION__,
330
+            __CLASS__.'::'.__FUNCTION__,
331 331
             $msg,
332 332
             '4.8.32.rc.000'
333 333
         );
@@ -354,7 +354,7 @@  discard block
 block discarded – undo
354 354
 function ee_deprecated_update_attendee_registration_form_old($admin_page)
355 355
 {
356 356
     // check if the old hooks are in use. If not, do the default
357
-    if (! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
357
+    if ( ! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
358 358
         || ! $admin_page instanceof EE_Admin_Page) {
359 359
         return;
360 360
     }
@@ -362,7 +362,7 @@  discard block
 block discarded – undo
362 362
     $qstns = isset($req_data['qstn']) ? $req_data['qstn'] : false;
363 363
     $REG_ID = isset($req_data['_REG_ID']) ? absint($req_data['_REG_ID']) : false;
364 364
     $qstns = apply_filters('FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns', $qstns);
365
-    if (! $REG_ID || ! $qstns) {
365
+    if ( ! $REG_ID || ! $qstns) {
366 366
         EE_Error::add_error(
367 367
             __('An error occurred. No registration ID and/or registration questions were received.', 'event_espresso'),
368 368
             __FILE__,
@@ -382,7 +382,7 @@  discard block
 block discarded – undo
382 382
 
383 383
     foreach ($qstns as $QST_ID => $qstn) {
384 384
         // if $qstn isn't an array then it doesn't already have an answer, so let's create the answer
385
-        if (! is_array($qstn)) {
385
+        if ( ! is_array($qstn)) {
386 386
             $success = $this->_save_new_answer($REG_ID, $QST_ID, $qstn);
387 387
             continue;
388 388
         }
@@ -399,7 +399,7 @@  discard block
 block discarded – undo
399 399
             );
400 400
             $answer = EEM_Answer::instance()->get_one($query_params);
401 401
             // this MAY be an array but NOT have an answer because its multi select.  If so then we need to create the answer
402
-            if (! $answer instanceof EE_Answer) {
402
+            if ( ! $answer instanceof EE_Answer) {
403 403
                 $set_values = array(
404 404
                     'QST_ID'    => $QST_ID,
405 405
                     'REG_ID'    => $REG_ID,
@@ -440,7 +440,7 @@  discard block
 block discarded – undo
440 440
 function ee_deprecated_reg_questions_meta_box_old($do_default_action, $admin_page, $registration)
441 441
 {
442 442
     // check if the old hooks are in use. If not, do the default
443
-    if (! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
443
+    if ( ! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
444 444
         || ! $admin_page instanceof EE_Admin_Page) {
445 445
         return $do_default_action;
446 446
     }
@@ -472,7 +472,7 @@  discard block
 block discarded – undo
472 472
         'reg_questions_form_action' => 'edit_registration',
473 473
         'REG_ID'                    => $registration->ID(),
474 474
     );
475
-    $template_path = REG_TEMPLATE_PATH . 'reg_admin_details_main_meta_box_reg_questions.template.php';
475
+    $template_path = REG_TEMPLATE_PATH.'reg_admin_details_main_meta_box_reg_questions.template.php';
476 476
     echo EEH_Template::display_template($template_path, $template_args, true);
477 477
     // indicate that we should not do the default admin page code
478 478
     return false;
@@ -590,7 +590,7 @@  discard block
 block discarded – undo
590 590
     public function _class_is_deprecated($method)
591 591
     {
592 592
         EE_Error::doing_it_wrong(
593
-            'EE_messages::' . $method,
593
+            'EE_messages::'.$method,
594 594
             __('EE_messages has been deprecated.  Please use EE_Message_Resource_Manager instead.'),
595 595
             '4.9.0',
596 596
             '4.10.0.p'
@@ -729,7 +729,7 @@  discard block
 block discarded – undo
729 729
         $error = false;
730 730
         // try to intelligently determine what method we'll call based on the incoming data.
731 731
         // if generating and sending are different then generate and send immediately.
732
-        if (! empty($sending_messenger) && $sending_messenger != $generating_messenger && $send) {
732
+        if ( ! empty($sending_messenger) && $sending_messenger != $generating_messenger && $send) {
733 733
             // in the legacy system, when generating and sending were different, that means all the
734 734
             // vars are already in the request object.  So let's just use that.
735 735
             try {
@@ -742,7 +742,7 @@  discard block
 block discarded – undo
742 742
                     'event_espresso'
743 743
                 );
744 744
                 // add specific message for developers if WP_DEBUG in on
745
-                $error_msg .= '||' . $e->getMessage();
745
+                $error_msg .= '||'.$e->getMessage();
746 746
                 EE_Error::add_error($error_msg, __FILE__, __FUNCTION__, __LINE__);
747 747
                 $error = true;
748 748
             }
@@ -816,7 +816,7 @@  discard block
 block discarded – undo
816 816
             }
817 817
         }
818 818
         // if no error then return the generated message(s).
819
-        if (! $error && ! $send) {
819
+        if ( ! $error && ! $send) {
820 820
             $generated_queue = $processor->generate_queue(false);
821 821
             // get message and return.
822 822
             $generated_queue->get_message_repository()->rewind();
@@ -875,7 +875,7 @@  discard block
 block discarded – undo
875 875
         /** @type EE_Messages_Queue $queue */
876 876
         $queue = EE_Registry::instance()->load_lib('Messages_Queue');
877 877
         // make sure we have a proper message object
878
-        if (! $message instanceof EE_Message && is_object($message) && isset($message->content)) {
878
+        if ( ! $message instanceof EE_Message && is_object($message) && isset($message->content)) {
879 879
             $msg = EE_Message_Factory::create(
880 880
                 array(
881 881
                     'MSG_messenger'    => $messenger,
@@ -887,11 +887,11 @@  discard block
 block discarded – undo
887 887
         } else {
888 888
             $msg = $message;
889 889
         }
890
-        if (! $msg instanceof EE_Message) {
890
+        if ( ! $msg instanceof EE_Message) {
891 891
             return false;
892 892
         }
893 893
         // make sure any content in a content property (if not empty) is set on the MSG_content.
894
-        if (! empty($msg->content)) {
894
+        if ( ! empty($msg->content)) {
895 895
             $msg->set('MSG_content', $msg->content);
896 896
         }
897 897
         $queue->add($msg);
@@ -1130,8 +1130,8 @@  discard block
 block discarded – undo
1130 1130
 
1131 1131
 add_filter(
1132 1132
     'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__css',
1133
-    function ($event_list_iframe_css) {
1134
-        if (! has_filter('FHEE__EventsArchiveIframe__event_list_iframe__css')) {
1133
+    function($event_list_iframe_css) {
1134
+        if ( ! has_filter('FHEE__EventsArchiveIframe__event_list_iframe__css')) {
1135 1135
             return $event_list_iframe_css;
1136 1136
         }
1137 1137
         deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1150,8 +1150,8 @@  discard block
 block discarded – undo
1150 1150
 );
1151 1151
 add_filter(
1152 1152
     'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__js',
1153
-    function ($event_list_iframe_js) {
1154
-        if (! has_filter('FHEE__EED_Ticket_Selector__ticket_selector_iframe__js')) {
1153
+    function($event_list_iframe_js) {
1154
+        if ( ! has_filter('FHEE__EED_Ticket_Selector__ticket_selector_iframe__js')) {
1155 1155
             return $event_list_iframe_js;
1156 1156
         }
1157 1157
         deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1170,8 +1170,8 @@  discard block
 block discarded – undo
1170 1170
 );
1171 1171
 add_action(
1172 1172
     'AHEE__EE_Capabilities__addCaps__complete',
1173
-    function ($capabilities_map) {
1174
-        if (! has_action('AHEE__EE_Capabilities__init_role_caps__complete')) {
1173
+    function($capabilities_map) {
1174
+        if ( ! has_action('AHEE__EE_Capabilities__init_role_caps__complete')) {
1175 1175
             return;
1176 1176
         }
1177 1177
         deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1190,8 +1190,8 @@  discard block
 block discarded – undo
1190 1190
 
1191 1191
 add_filter(
1192 1192
     'FHEE_EventEspresso_core_services_commands_attendee_CreateAttendeeCommandHandler__findExistingAttendee__existing_attendee',
1193
-    function ($existing_attendee, $registration, $attendee_data) {
1194
-        if (! has_filter('FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee')) {
1193
+    function($existing_attendee, $registration, $attendee_data) {
1194
+        if ( ! has_filter('FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee')) {
1195 1195
             return $existing_attendee;
1196 1196
         }
1197 1197
         deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1274,7 +1274,7 @@  discard block
 block discarded – undo
1274 1274
      */
1275 1275
     public function event_list_title($event_list_title = '')
1276 1276
     {
1277
-        if (! empty($this->title)) {
1277
+        if ( ! empty($this->title)) {
1278 1278
             return $this->title;
1279 1279
         }
1280 1280
         return $event_list_title;
@@ -1417,7 +1417,7 @@  discard block
 block discarded – undo
1417 1417
             foreach ($model_fields as $field) {
1418 1418
                 if ($label === EEH_Export::get_column_name_for_field($field)) {
1419 1419
                     // re-add the old field name
1420
-                    $new_label = $label . '[' . $field->get_name() . ']';
1420
+                    $new_label = $label.'['.$field->get_name().']';
1421 1421
                     break;
1422 1422
                 }
1423 1423
             }
Please login to merge, or discard this patch.
Indentation   +1217 added lines, -1217 removed lines patch added patch discarded remove patch
@@ -39,31 +39,31 @@  discard block
 block discarded – undo
39 39
  * @param string $action_or_filter
40 40
  */
41 41
 function deprecated_espresso_action_or_filter_doing_it_wrong(
42
-    $deprecated_filter,
43
-    $replacement,
44
-    $replacement_location,
45
-    $version_deprecated,
46
-    $version_applies,
47
-    $action_or_filter = 'action'
42
+	$deprecated_filter,
43
+	$replacement,
44
+	$replacement_location,
45
+	$version_deprecated,
46
+	$version_applies,
47
+	$action_or_filter = 'action'
48 48
 ) {
49
-    $action_or_filter = $action_or_filter === 'action'
50
-        ? esc_html__('action', 'event_espresso')
51
-        : esc_html__('filter', 'event_espresso');
52
-    EE_Error::doing_it_wrong(
53
-        $deprecated_filter,
54
-        sprintf(
55
-            __(
56
-                'This %1$s is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new %1$s: %4$s"%2$s" found in "%3$s"',
57
-                'event_espresso'
58
-            ),
59
-            $action_or_filter,
60
-            $replacement,
61
-            $replacement_location,
62
-            '<br />'
63
-        ),
64
-        $version_deprecated,
65
-        $version_applies
66
-    );
49
+	$action_or_filter = $action_or_filter === 'action'
50
+		? esc_html__('action', 'event_espresso')
51
+		: esc_html__('filter', 'event_espresso');
52
+	EE_Error::doing_it_wrong(
53
+		$deprecated_filter,
54
+		sprintf(
55
+			__(
56
+				'This %1$s is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new %1$s: %4$s"%2$s" found in "%3$s"',
57
+				'event_espresso'
58
+			),
59
+			$action_or_filter,
60
+			$replacement,
61
+			$replacement_location,
62
+			'<br />'
63
+		),
64
+		$version_deprecated,
65
+		$version_applies
66
+	);
67 67
 }
68 68
 
69 69
 /**
@@ -75,90 +75,90 @@  discard block
 block discarded – undo
75 75
  */
76 76
 function ee_deprecated__registration_checkout__button_text($submit_button_text, EE_Checkout $checkout)
77 77
 {
78
-    // list of old filters
79
-    $deprecated_filters = array(
80
-        'update_registration_details' => true,
81
-        'process_payment'             => true,
82
-        'finalize_registration'       => true,
83
-        'and_proceed_to_payment'      => true,
84
-        'proceed_to'                  => true,
85
-    );
86
-    // loop thru and call doing_it_wrong() or remove any that aren't being used
87
-    foreach ($deprecated_filters as $deprecated_filter => $on) {
88
-        // was this filter called ?
89
-        if (has_action('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter)) {
90
-            // only display doing_it_wrong() notice to Event Admins during non-AJAX requests
91
-            if (EE_Registry::instance()->CAP->current_user_can(
92
-                    'ee_read_ee',
93
-                    'hide_doing_it_wrong_for_deprecated_SPCO_filter'
94
-                ) && ! defined('DOING_AJAX')) {
95
-                EE_Error::doing_it_wrong(
96
-                    'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
97
-                    sprintf(
98
-                        __(
99
-                            'The %1$s filter is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new filter: %2$s"%3$s" found in "%4$s"',
100
-                            'event_espresso'
101
-                        ),
102
-                        'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
103
-                        '<br />',
104
-                        'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
105
-                        '/modules/single_page_checkout/inc/EE_SPCO_Reg_Step.class.php'
106
-                    ),
107
-                    '4.6.10'
108
-                );
109
-            }
110
-        } else {
111
-            unset($deprecated_filters[ $deprecated_filter ]);
112
-        }
113
-    }
114
-    if (! empty($deprecated_filters)) {
115
-
116
-        if ($checkout->current_step->slug(
117
-            ) == 'attendee_information' && $checkout->revisit && isset($deprecated_filters['update_registration_details'])) {
118
-            $submit_button_text = apply_filters(
119
-                'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__update_registration_details',
120
-                $submit_button_text
121
-            );
122
-        } elseif ($checkout->current_step->slug(
123
-            ) == 'payment_options' && $checkout->revisit && isset($deprecated_filters['process_payment'])) {
124
-            $submit_button_text = apply_filters(
125
-                'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__process_payment',
126
-                $submit_button_text
127
-            );
128
-        } elseif ($checkout->next_step instanceof EE_SPCO_Reg_Step && $checkout->next_step->slug(
129
-            ) == 'finalize_registration' && isset($deprecated_filters['finalize_registration'])) {
130
-            $submit_button_text = apply_filters(
131
-                'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__finalize_registration',
132
-                $submit_button_text
133
-            );
134
-        }
135
-        if ($checkout->next_step instanceof EE_SPCO_Reg_Step) {
136
-            if ($checkout->payment_required() && $checkout->next_step->slug(
137
-                ) == 'payment_options' && isset($deprecated_filters['and_proceed_to_payment'])) {
138
-                $submit_button_text .= apply_filters(
139
-                    'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__and_proceed_to_payment',
140
-                    $submit_button_text
141
-                );
142
-            }
143
-            if ($checkout->next_step->slug(
144
-                ) != 'finalize_registration' && ! $checkout->revisit && isset($deprecated_filters['proceed_to'])) {
145
-                $submit_button_text = apply_filters(
146
-                                          'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__proceed_to',
147
-                                          $submit_button_text
148
-                                      ) . $checkout->next_step->name();
149
-            }
150
-        }
151
-
152
-    }
153
-    return $submit_button_text;
78
+	// list of old filters
79
+	$deprecated_filters = array(
80
+		'update_registration_details' => true,
81
+		'process_payment'             => true,
82
+		'finalize_registration'       => true,
83
+		'and_proceed_to_payment'      => true,
84
+		'proceed_to'                  => true,
85
+	);
86
+	// loop thru and call doing_it_wrong() or remove any that aren't being used
87
+	foreach ($deprecated_filters as $deprecated_filter => $on) {
88
+		// was this filter called ?
89
+		if (has_action('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter)) {
90
+			// only display doing_it_wrong() notice to Event Admins during non-AJAX requests
91
+			if (EE_Registry::instance()->CAP->current_user_can(
92
+					'ee_read_ee',
93
+					'hide_doing_it_wrong_for_deprecated_SPCO_filter'
94
+				) && ! defined('DOING_AJAX')) {
95
+				EE_Error::doing_it_wrong(
96
+					'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
97
+					sprintf(
98
+						__(
99
+							'The %1$s filter is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new filter: %2$s"%3$s" found in "%4$s"',
100
+							'event_espresso'
101
+						),
102
+						'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
103
+						'<br />',
104
+						'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
105
+						'/modules/single_page_checkout/inc/EE_SPCO_Reg_Step.class.php'
106
+					),
107
+					'4.6.10'
108
+				);
109
+			}
110
+		} else {
111
+			unset($deprecated_filters[ $deprecated_filter ]);
112
+		}
113
+	}
114
+	if (! empty($deprecated_filters)) {
115
+
116
+		if ($checkout->current_step->slug(
117
+			) == 'attendee_information' && $checkout->revisit && isset($deprecated_filters['update_registration_details'])) {
118
+			$submit_button_text = apply_filters(
119
+				'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__update_registration_details',
120
+				$submit_button_text
121
+			);
122
+		} elseif ($checkout->current_step->slug(
123
+			) == 'payment_options' && $checkout->revisit && isset($deprecated_filters['process_payment'])) {
124
+			$submit_button_text = apply_filters(
125
+				'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__process_payment',
126
+				$submit_button_text
127
+			);
128
+		} elseif ($checkout->next_step instanceof EE_SPCO_Reg_Step && $checkout->next_step->slug(
129
+			) == 'finalize_registration' && isset($deprecated_filters['finalize_registration'])) {
130
+			$submit_button_text = apply_filters(
131
+				'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__finalize_registration',
132
+				$submit_button_text
133
+			);
134
+		}
135
+		if ($checkout->next_step instanceof EE_SPCO_Reg_Step) {
136
+			if ($checkout->payment_required() && $checkout->next_step->slug(
137
+				) == 'payment_options' && isset($deprecated_filters['and_proceed_to_payment'])) {
138
+				$submit_button_text .= apply_filters(
139
+					'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__and_proceed_to_payment',
140
+					$submit_button_text
141
+				);
142
+			}
143
+			if ($checkout->next_step->slug(
144
+				) != 'finalize_registration' && ! $checkout->revisit && isset($deprecated_filters['proceed_to'])) {
145
+				$submit_button_text = apply_filters(
146
+										  'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__proceed_to',
147
+										  $submit_button_text
148
+									  ) . $checkout->next_step->name();
149
+			}
150
+		}
151
+
152
+	}
153
+	return $submit_button_text;
154 154
 
155 155
 }
156 156
 
157 157
 add_filter(
158
-    'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
159
-    'ee_deprecated__registration_checkout__button_text',
160
-    10,
161
-    2
158
+	'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
159
+	'ee_deprecated__registration_checkout__button_text',
160
+	10,
161
+	2
162 162
 );
163 163
 
164 164
 
@@ -170,54 +170,54 @@  discard block
 block discarded – undo
170 170
  */
171 171
 function ee_deprecated_finalize_transaction(EE_Checkout $checkout, $status_updates)
172 172
 {
173
-    $action_ref = null;
174
-    $action_ref = has_action('AHEE__EE_Transaction__finalize__new_transaction')
175
-        ? 'AHEE__EE_Transaction__finalize__new_transaction' : $action_ref;
176
-    $action_ref = has_action('AHEE__EE_Transaction__finalize__all_transaction')
177
-        ? 'AHEE__EE_Transaction__finalize__all_transaction' : $action_ref;
178
-    if ($action_ref) {
179
-
180
-        EE_Error::doing_it_wrong(
181
-            $action_ref,
182
-            sprintf(
183
-                __(
184
-                    'This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use one of the following new actions: %1$s"%3$s" found in "%2$s" %1$s"%4$s" found in "%2$s" %1$s"%5$s" found in "%2$s" %1$s"%6$s" found in "%2$s"',
185
-                    'event_espresso'
186
-                ),
187
-                '<br />',
188
-                '/core/business/EE_Transaction_Processor.class.php',
189
-                'AHEE__EE_Transaction_Processor__finalize',
190
-                'AHEE__EE_Transaction_Processor__manually_update_registration_statuses',
191
-                'AHEE__EE_Transaction_Processor__toggle_registration_statuses_for_default_approved_events',
192
-                'AHEE__EE_Transaction_Processor__toggle_registration_statuses_if_no_monies_owing'
193
-            ),
194
-            '4.6.0'
195
-        );
196
-        switch ($action_ref) {
197
-            case 'AHEE__EE_Transaction__finalize__new_transaction' :
198
-                do_action(
199
-                    'AHEE__EE_Transaction__finalize__new_transaction',
200
-                    $checkout->transaction,
201
-                    $checkout->admin_request
202
-                );
203
-                break;
204
-            case 'AHEE__EE_Transaction__finalize__all_transaction' :
205
-                do_action(
206
-                    'AHEE__EE_Transaction__finalize__new_transaction',
207
-                    $checkout->transaction,
208
-                    array('new_reg' => ! $checkout->revisit, 'to_approved' => $status_updates),
209
-                    $checkout->admin_request
210
-                );
211
-                break;
212
-        }
213
-    }
173
+	$action_ref = null;
174
+	$action_ref = has_action('AHEE__EE_Transaction__finalize__new_transaction')
175
+		? 'AHEE__EE_Transaction__finalize__new_transaction' : $action_ref;
176
+	$action_ref = has_action('AHEE__EE_Transaction__finalize__all_transaction')
177
+		? 'AHEE__EE_Transaction__finalize__all_transaction' : $action_ref;
178
+	if ($action_ref) {
179
+
180
+		EE_Error::doing_it_wrong(
181
+			$action_ref,
182
+			sprintf(
183
+				__(
184
+					'This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use one of the following new actions: %1$s"%3$s" found in "%2$s" %1$s"%4$s" found in "%2$s" %1$s"%5$s" found in "%2$s" %1$s"%6$s" found in "%2$s"',
185
+					'event_espresso'
186
+				),
187
+				'<br />',
188
+				'/core/business/EE_Transaction_Processor.class.php',
189
+				'AHEE__EE_Transaction_Processor__finalize',
190
+				'AHEE__EE_Transaction_Processor__manually_update_registration_statuses',
191
+				'AHEE__EE_Transaction_Processor__toggle_registration_statuses_for_default_approved_events',
192
+				'AHEE__EE_Transaction_Processor__toggle_registration_statuses_if_no_monies_owing'
193
+			),
194
+			'4.6.0'
195
+		);
196
+		switch ($action_ref) {
197
+			case 'AHEE__EE_Transaction__finalize__new_transaction' :
198
+				do_action(
199
+					'AHEE__EE_Transaction__finalize__new_transaction',
200
+					$checkout->transaction,
201
+					$checkout->admin_request
202
+				);
203
+				break;
204
+			case 'AHEE__EE_Transaction__finalize__all_transaction' :
205
+				do_action(
206
+					'AHEE__EE_Transaction__finalize__new_transaction',
207
+					$checkout->transaction,
208
+					array('new_reg' => ! $checkout->revisit, 'to_approved' => $status_updates),
209
+					$checkout->admin_request
210
+				);
211
+				break;
212
+		}
213
+	}
214 214
 }
215 215
 
216 216
 add_action(
217
-    'AHEE__EE_SPCO_Reg_Step_Finalize_Registration__process_reg_step__completed',
218
-    'ee_deprecated_finalize_transaction',
219
-    10,
220
-    2
217
+	'AHEE__EE_SPCO_Reg_Step_Finalize_Registration__process_reg_step__completed',
218
+	'ee_deprecated_finalize_transaction',
219
+	10,
220
+	2
221 221
 );
222 222
 /**
223 223
  * ee_deprecated_finalize_registration
@@ -226,35 +226,35 @@  discard block
 block discarded – undo
226 226
  */
227 227
 function ee_deprecated_finalize_registration(EE_Registration $registration)
228 228
 {
229
-    $action_ref = has_action('AHEE__EE_Registration__finalize__update_and_new_reg')
230
-        ? 'AHEE__EE_Registration__finalize__update_and_new_reg' : null;
231
-    if ($action_ref) {
232
-        EE_Error::doing_it_wrong(
233
-            $action_ref,
234
-            sprintf(
235
-                __(
236
-                    'This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new action: %1$s"%3$s" found in "%2$s"',
237
-                    'event_espresso'
238
-                ),
239
-                '<br />',
240
-                '/core/business/EE_Registration_Processor.class.php',
241
-                'AHEE__EE_Registration_Processor__trigger_registration_update_notifications'
242
-            ),
243
-            '4.6.0'
244
-        );
245
-        do_action(
246
-            'AHEE__EE_Registration__finalize__update_and_new_reg',
247
-            $registration,
248
-            (is_admin() && ! (defined('DOING_AJAX') && DOING_AJAX))
249
-        );
250
-    }
229
+	$action_ref = has_action('AHEE__EE_Registration__finalize__update_and_new_reg')
230
+		? 'AHEE__EE_Registration__finalize__update_and_new_reg' : null;
231
+	if ($action_ref) {
232
+		EE_Error::doing_it_wrong(
233
+			$action_ref,
234
+			sprintf(
235
+				__(
236
+					'This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new action: %1$s"%3$s" found in "%2$s"',
237
+					'event_espresso'
238
+				),
239
+				'<br />',
240
+				'/core/business/EE_Registration_Processor.class.php',
241
+				'AHEE__EE_Registration_Processor__trigger_registration_update_notifications'
242
+			),
243
+			'4.6.0'
244
+		);
245
+		do_action(
246
+			'AHEE__EE_Registration__finalize__update_and_new_reg',
247
+			$registration,
248
+			(is_admin() && ! (defined('DOING_AJAX') && DOING_AJAX))
249
+		);
250
+	}
251 251
 }
252 252
 
253 253
 add_action(
254
-    'AHEE__EE_Registration_Processor__trigger_registration_update_notifications',
255
-    'ee_deprecated_finalize_registration',
256
-    10,
257
-    1
254
+	'AHEE__EE_Registration_Processor__trigger_registration_update_notifications',
255
+	'ee_deprecated_finalize_registration',
256
+	10,
257
+	1
258 258
 );
259 259
 
260 260
 
@@ -264,44 +264,44 @@  discard block
 block discarded – undo
264 264
  */
265 265
 function ee_deprecated_hooks()
266 266
 {
267
-    /**
268
-     * @var          $hooks       array where keys are hook names, and their values are array{
269
-     * @type string  $version     when deprecated
270
-     * @type string  $alternative saying what to use instead
271
-     * @type boolean $still_works whether or not the hook still works
272
-     *        }
273
-     */
274
-    $hooks = array(
275
-        'AHEE__EE_System___do_setup_validations' => array(
276
-            'version'     => '4.6.0',
277
-            'alternative' => __(
278
-                'Instead use "AHEE__EEH_Activation__validate_messages_system" which is called after validating messages (done on every new install, upgrade, reactivation, and downgrade)',
279
-                'event_espresso'
280
-            ),
281
-            'still_works' => false,
282
-        ),
283
-    );
284
-    foreach ($hooks as $name => $deprecation_info) {
285
-        if (has_action($name)) {
286
-            EE_Error::doing_it_wrong(
287
-                $name,
288
-                sprintf(
289
-                    __('This filter is deprecated. %1$s%2$s', 'event_espresso'),
290
-                    $deprecation_info['still_works'] ? __(
291
-                        'It *may* work as an attempt to build in backwards compatibility.',
292
-                        'event_espresso'
293
-                    ) : __('It has been completely removed.', 'event_espresso'),
294
-                    isset($deprecation_info['alternative'])
295
-                        ? $deprecation_info['alternative']
296
-                        : __(
297
-                        'Please read the current EE4 documentation further or contact Support.',
298
-                        'event_espresso'
299
-                    )
300
-                ),
301
-                isset($deprecation_info['version']) ? $deprecation_info['version'] : __('recently', 'event_espresso')
302
-            );
303
-        }
304
-    }
267
+	/**
268
+	 * @var          $hooks       array where keys are hook names, and their values are array{
269
+	 * @type string  $version     when deprecated
270
+	 * @type string  $alternative saying what to use instead
271
+	 * @type boolean $still_works whether or not the hook still works
272
+	 *        }
273
+	 */
274
+	$hooks = array(
275
+		'AHEE__EE_System___do_setup_validations' => array(
276
+			'version'     => '4.6.0',
277
+			'alternative' => __(
278
+				'Instead use "AHEE__EEH_Activation__validate_messages_system" which is called after validating messages (done on every new install, upgrade, reactivation, and downgrade)',
279
+				'event_espresso'
280
+			),
281
+			'still_works' => false,
282
+		),
283
+	);
284
+	foreach ($hooks as $name => $deprecation_info) {
285
+		if (has_action($name)) {
286
+			EE_Error::doing_it_wrong(
287
+				$name,
288
+				sprintf(
289
+					__('This filter is deprecated. %1$s%2$s', 'event_espresso'),
290
+					$deprecation_info['still_works'] ? __(
291
+						'It *may* work as an attempt to build in backwards compatibility.',
292
+						'event_espresso'
293
+					) : __('It has been completely removed.', 'event_espresso'),
294
+					isset($deprecation_info['alternative'])
295
+						? $deprecation_info['alternative']
296
+						: __(
297
+						'Please read the current EE4 documentation further or contact Support.',
298
+						'event_espresso'
299
+					)
300
+				),
301
+				isset($deprecation_info['version']) ? $deprecation_info['version'] : __('recently', 'event_espresso')
302
+			);
303
+		}
304
+	}
305 305
 }
306 306
 
307 307
 add_action('AHEE__EE_System__set_hooks_for_shortcodes_modules_and_addons', 'ee_deprecated_hooks');
@@ -316,34 +316,34 @@  discard block
 block discarded – undo
316 316
  */
317 317
 function ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
318 318
 {
319
-    $in_use = has_filter('FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns')
320
-              || has_action(
321
-                  'AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save'
322
-              );
323
-    if ($in_use) {
324
-        $msg = __(
325
-            'We detected you are using the filter FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns or AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save.'
326
-            . 'Both of these have been deprecated and should not be used anymore. You should instead use FHEE__EE_Form_Section_Proper___construct__options_array to customize the contents of the form,'
327
-            . 'use FHEE__EE_Form_Section_Proper__receive_form_submission__req_data to customize the submission data, or AHEE__EE_Form_Section_Proper__receive_form_submission__end '
328
-            . 'to add other actions after a form submission has been received.',
329
-            'event_espresso'
330
-        );
331
-        EE_Error::doing_it_wrong(
332
-            __CLASS__ . '::' . __FUNCTION__,
333
-            $msg,
334
-            '4.8.32.rc.000'
335
-        );
336
-        // it seems the doing_it_wrong messages get output during some hidden html tags, so add an error to make sure this gets noticed
337
-        if (is_admin() && ! defined('DOING_AJAX')) {
338
-            EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
339
-        }
340
-    }
341
-    return $in_use;
319
+	$in_use = has_filter('FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns')
320
+			  || has_action(
321
+				  'AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save'
322
+			  );
323
+	if ($in_use) {
324
+		$msg = __(
325
+			'We detected you are using the filter FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns or AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save.'
326
+			. 'Both of these have been deprecated and should not be used anymore. You should instead use FHEE__EE_Form_Section_Proper___construct__options_array to customize the contents of the form,'
327
+			. 'use FHEE__EE_Form_Section_Proper__receive_form_submission__req_data to customize the submission data, or AHEE__EE_Form_Section_Proper__receive_form_submission__end '
328
+			. 'to add other actions after a form submission has been received.',
329
+			'event_espresso'
330
+		);
331
+		EE_Error::doing_it_wrong(
332
+			__CLASS__ . '::' . __FUNCTION__,
333
+			$msg,
334
+			'4.8.32.rc.000'
335
+		);
336
+		// it seems the doing_it_wrong messages get output during some hidden html tags, so add an error to make sure this gets noticed
337
+		if (is_admin() && ! defined('DOING_AJAX')) {
338
+			EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
339
+		}
340
+	}
341
+	return $in_use;
342 342
 }
343 343
 
344 344
 add_action(
345
-    'AHEE__Registrations_Admin_Page___registration_details_metabox__start',
346
-    'ee_deprecated_using_old_registration_admin_custom_questions_form_hooks'
345
+	'AHEE__Registrations_Admin_Page___registration_details_metabox__start',
346
+	'ee_deprecated_using_old_registration_admin_custom_questions_form_hooks'
347 347
 );
348 348
 
349 349
 /**
@@ -355,77 +355,77 @@  discard block
 block discarded – undo
355 355
  */
356 356
 function ee_deprecated_update_attendee_registration_form_old($admin_page)
357 357
 {
358
-    // check if the old hooks are in use. If not, do the default
359
-    if (! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
360
-        || ! $admin_page instanceof EE_Admin_Page) {
361
-        return;
362
-    }
363
-    $req_data = $admin_page->get_request_data();
364
-    $qstns = isset($req_data['qstn']) ? $req_data['qstn'] : false;
365
-    $REG_ID = isset($req_data['_REG_ID']) ? absint($req_data['_REG_ID']) : false;
366
-    $qstns = apply_filters('FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns', $qstns);
367
-    if (! $REG_ID || ! $qstns) {
368
-        EE_Error::add_error(
369
-            __('An error occurred. No registration ID and/or registration questions were received.', 'event_espresso'),
370
-            __FILE__,
371
-            __FUNCTION__,
372
-            __LINE__
373
-        );
374
-    }
375
-    $success = true;
376
-
377
-    // allow others to get in on this awesome fun   :D
378
-    do_action(
379
-        'AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save',
380
-        $REG_ID,
381
-        $qstns
382
-    );
383
-    // loop thru questions... FINALLY!!!
384
-
385
-    foreach ($qstns as $QST_ID => $qstn) {
386
-        // if $qstn isn't an array then it doesn't already have an answer, so let's create the answer
387
-        if (! is_array($qstn)) {
388
-            $success = $this->_save_new_answer($REG_ID, $QST_ID, $qstn);
389
-            continue;
390
-        }
391
-
392
-
393
-        foreach ($qstn as $ANS_ID => $ANS_value) {
394
-            // get answer
395
-            $query_params = array(
396
-                0 => array(
397
-                    'ANS_ID' => $ANS_ID,
398
-                    'REG_ID' => $REG_ID,
399
-                    'QST_ID' => $QST_ID,
400
-                ),
401
-            );
402
-            $answer = EEM_Answer::instance()->get_one($query_params);
403
-            // this MAY be an array but NOT have an answer because its multi select.  If so then we need to create the answer
404
-            if (! $answer instanceof EE_Answer) {
405
-                $set_values = array(
406
-                    'QST_ID'    => $QST_ID,
407
-                    'REG_ID'    => $REG_ID,
408
-                    'ANS_value' => $qstn,
409
-                );
410
-                $success = EEM_Answer::instance()->insert($set_values);
411
-                continue 2;
412
-            }
413
-
414
-            $answer->set('ANS_value', $ANS_value);
415
-            $success = $answer->save();
416
-        }
417
-    }
418
-    $what = __('Registration Form', 'event_espresso');
419
-    $route = $REG_ID ? array('action' => 'view_registration', '_REG_ID' => $REG_ID) : array('action' => 'default');
420
-    $admin_page->redirect_after_action($success, $what, __('updated', 'event_espresso'), $route);
421
-    exit;
358
+	// check if the old hooks are in use. If not, do the default
359
+	if (! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
360
+		|| ! $admin_page instanceof EE_Admin_Page) {
361
+		return;
362
+	}
363
+	$req_data = $admin_page->get_request_data();
364
+	$qstns = isset($req_data['qstn']) ? $req_data['qstn'] : false;
365
+	$REG_ID = isset($req_data['_REG_ID']) ? absint($req_data['_REG_ID']) : false;
366
+	$qstns = apply_filters('FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns', $qstns);
367
+	if (! $REG_ID || ! $qstns) {
368
+		EE_Error::add_error(
369
+			__('An error occurred. No registration ID and/or registration questions were received.', 'event_espresso'),
370
+			__FILE__,
371
+			__FUNCTION__,
372
+			__LINE__
373
+		);
374
+	}
375
+	$success = true;
376
+
377
+	// allow others to get in on this awesome fun   :D
378
+	do_action(
379
+		'AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save',
380
+		$REG_ID,
381
+		$qstns
382
+	);
383
+	// loop thru questions... FINALLY!!!
384
+
385
+	foreach ($qstns as $QST_ID => $qstn) {
386
+		// if $qstn isn't an array then it doesn't already have an answer, so let's create the answer
387
+		if (! is_array($qstn)) {
388
+			$success = $this->_save_new_answer($REG_ID, $QST_ID, $qstn);
389
+			continue;
390
+		}
391
+
392
+
393
+		foreach ($qstn as $ANS_ID => $ANS_value) {
394
+			// get answer
395
+			$query_params = array(
396
+				0 => array(
397
+					'ANS_ID' => $ANS_ID,
398
+					'REG_ID' => $REG_ID,
399
+					'QST_ID' => $QST_ID,
400
+				),
401
+			);
402
+			$answer = EEM_Answer::instance()->get_one($query_params);
403
+			// this MAY be an array but NOT have an answer because its multi select.  If so then we need to create the answer
404
+			if (! $answer instanceof EE_Answer) {
405
+				$set_values = array(
406
+					'QST_ID'    => $QST_ID,
407
+					'REG_ID'    => $REG_ID,
408
+					'ANS_value' => $qstn,
409
+				);
410
+				$success = EEM_Answer::instance()->insert($set_values);
411
+				continue 2;
412
+			}
413
+
414
+			$answer->set('ANS_value', $ANS_value);
415
+			$success = $answer->save();
416
+		}
417
+	}
418
+	$what = __('Registration Form', 'event_espresso');
419
+	$route = $REG_ID ? array('action' => 'view_registration', '_REG_ID' => $REG_ID) : array('action' => 'default');
420
+	$admin_page->redirect_after_action($success, $what, __('updated', 'event_espresso'), $route);
421
+	exit;
422 422
 }
423 423
 
424 424
 add_action(
425
-    'AHEE__Registrations_Admin_Page___update_attendee_registration_form__start',
426
-    'ee_deprecated_update_attendee_registration_form_old',
427
-    10,
428
-    1
425
+	'AHEE__Registrations_Admin_Page___update_attendee_registration_form__start',
426
+	'ee_deprecated_update_attendee_registration_form_old',
427
+	10,
428
+	1
429 429
 );
430 430
 /**
431 431
  * Render the registration admin page's custom questions area in the old fashion
@@ -441,50 +441,50 @@  discard block
 block discarded – undo
441 441
  */
442 442
 function ee_deprecated_reg_questions_meta_box_old($do_default_action, $admin_page, $registration)
443 443
 {
444
-    // check if the old hooks are in use. If not, do the default
445
-    if (! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
446
-        || ! $admin_page instanceof EE_Admin_Page) {
447
-        return $do_default_action;
448
-    }
449
-    add_filter(
450
-        'FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions',
451
-        array($admin_page, 'form_before_question_group'),
452
-        10,
453
-        1
454
-    );
455
-    add_filter(
456
-        'FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions',
457
-        array($admin_page, 'form_after_question_group'),
458
-        10,
459
-        1
460
-    );
461
-    add_filter('FHEE__EEH_Form_Fields__label_html', array($admin_page, 'form_form_field_label_wrap'), 10, 1);
462
-    add_filter('FHEE__EEH_Form_Fields__input_html', array($admin_page, 'form_form_field_input__wrap'), 10, 1);
463
-
464
-    $question_groups = EEM_Event::instance()->assemble_array_of_groups_questions_and_options(
465
-        $registration,
466
-        $registration->get(
467
-            'EVT_ID'
468
-        )
469
-    );
470
-
471
-    EE_Registry::instance()->load_helper('Form_Fields');
472
-    $template_args = array(
473
-        'att_questions'             => EEH_Form_Fields::generate_question_groups_html($question_groups),
474
-        'reg_questions_form_action' => 'edit_registration',
475
-        'REG_ID'                    => $registration->ID(),
476
-    );
477
-    $template_path = REG_TEMPLATE_PATH . 'reg_admin_details_main_meta_box_reg_questions.template.php';
478
-    echo EEH_Template::display_template($template_path, $template_args, true);
479
-    // indicate that we should not do the default admin page code
480
-    return false;
444
+	// check if the old hooks are in use. If not, do the default
445
+	if (! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
446
+		|| ! $admin_page instanceof EE_Admin_Page) {
447
+		return $do_default_action;
448
+	}
449
+	add_filter(
450
+		'FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions',
451
+		array($admin_page, 'form_before_question_group'),
452
+		10,
453
+		1
454
+	);
455
+	add_filter(
456
+		'FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions',
457
+		array($admin_page, 'form_after_question_group'),
458
+		10,
459
+		1
460
+	);
461
+	add_filter('FHEE__EEH_Form_Fields__label_html', array($admin_page, 'form_form_field_label_wrap'), 10, 1);
462
+	add_filter('FHEE__EEH_Form_Fields__input_html', array($admin_page, 'form_form_field_input__wrap'), 10, 1);
463
+
464
+	$question_groups = EEM_Event::instance()->assemble_array_of_groups_questions_and_options(
465
+		$registration,
466
+		$registration->get(
467
+			'EVT_ID'
468
+		)
469
+	);
470
+
471
+	EE_Registry::instance()->load_helper('Form_Fields');
472
+	$template_args = array(
473
+		'att_questions'             => EEH_Form_Fields::generate_question_groups_html($question_groups),
474
+		'reg_questions_form_action' => 'edit_registration',
475
+		'REG_ID'                    => $registration->ID(),
476
+	);
477
+	$template_path = REG_TEMPLATE_PATH . 'reg_admin_details_main_meta_box_reg_questions.template.php';
478
+	echo EEH_Template::display_template($template_path, $template_args, true);
479
+	// indicate that we should not do the default admin page code
480
+	return false;
481 481
 }
482 482
 
483 483
 add_action(
484
-    'FHEE__Registrations_Admin_Page___reg_questions_meta_box__do_default',
485
-    'ee_deprecated_reg_questions_meta_box_old',
486
-    10,
487
-    3
484
+	'FHEE__Registrations_Admin_Page___reg_questions_meta_box__do_default',
485
+	'ee_deprecated_reg_questions_meta_box_old',
486
+	10,
487
+	3
488 488
 );
489 489
 
490 490
 
@@ -501,42 +501,42 @@  discard block
 block discarded – undo
501 501
 class EE_Message_Template_Defaults extends EE_Base
502 502
 {
503 503
 
504
-    /**
505
-     * EE_Message_Template_Defaults constructor.
506
-     *
507
-     * @param EE_messages $messages
508
-     * @param             $messenger_name
509
-     * @param             $message_type_name
510
-     * @param int         $GRP_ID
511
-     * @return EE_Messages_Template_Defaults
512
-     */
513
-    public function __construct(
514
-        EE_messages $messages,
515
-        $messenger_name,
516
-        $message_type_name,
517
-        $GRP_ID = 0
518
-    ) {
519
-        EE_Error::doing_it_wrong(
520
-            __FUNCTION__,
521
-            __(
522
-                'The class EE_Message_Template_Defaults has been deprecated and replaced by EE_Messages_Template_Defaults.',
523
-                'event_espresso'
524
-            ),
525
-            '4.9.0'
526
-        );
527
-        /** @var EE_Message_Resource_Manager $message_resource_manager */
528
-        $message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
529
-        $messenger = $message_resource_manager->get_messenger($messenger_name);
530
-        $message_type = $message_resource_manager->get_message_type($message_type_name);
531
-        return EE_Registry::instance()->load_lib(
532
-            'Messages_Template_Defaults',
533
-            array(
534
-                $GRP_ID,
535
-                $messenger,
536
-                $message_type,
537
-            )
538
-        );
539
-    }
504
+	/**
505
+	 * EE_Message_Template_Defaults constructor.
506
+	 *
507
+	 * @param EE_messages $messages
508
+	 * @param             $messenger_name
509
+	 * @param             $message_type_name
510
+	 * @param int         $GRP_ID
511
+	 * @return EE_Messages_Template_Defaults
512
+	 */
513
+	public function __construct(
514
+		EE_messages $messages,
515
+		$messenger_name,
516
+		$message_type_name,
517
+		$GRP_ID = 0
518
+	) {
519
+		EE_Error::doing_it_wrong(
520
+			__FUNCTION__,
521
+			__(
522
+				'The class EE_Message_Template_Defaults has been deprecated and replaced by EE_Messages_Template_Defaults.',
523
+				'event_espresso'
524
+			),
525
+			'4.9.0'
526
+		);
527
+		/** @var EE_Message_Resource_Manager $message_resource_manager */
528
+		$message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
529
+		$messenger = $message_resource_manager->get_messenger($messenger_name);
530
+		$message_type = $message_resource_manager->get_message_type($message_type_name);
531
+		return EE_Registry::instance()->load_lib(
532
+			'Messages_Template_Defaults',
533
+			array(
534
+				$GRP_ID,
535
+				$messenger,
536
+				$message_type,
537
+			)
538
+		);
539
+	}
540 540
 }
541 541
 
542 542
 
@@ -554,525 +554,525 @@  discard block
 block discarded – undo
554 554
 class EE_messages
555 555
 {
556 556
 
557
-    /** @type EE_messenger[] */
558
-    protected $_active_messengers = array();
559
-
560
-    /** @type array */
561
-    protected $_active_message_types = array();
562
-
563
-    /** @type EE_message_type[] */
564
-    protected $_installed_message_types = array();
565
-
566
-    /** @type EE_messenger */
567
-    protected $_messenger;
568
-
569
-    /** @type EE_message_type */
570
-    protected $_message_type;
571
-
572
-    /** @type array */
573
-    protected $_contexts = array();
574
-
575
-    /** @type EE_Message_Resource_Manager $_message_resource_manager */
576
-    protected $_message_resource_manager;
577
-
578
-
579
-    /**
580
-     * EE_messages constructor.
581
-     *
582
-     * @deprecated 4.9.0
583
-     */
584
-    public function __construct()
585
-    {
586
-    }
587
-
588
-
589
-    /**
590
-     * @param string $method
591
-     */
592
-    public function _class_is_deprecated($method)
593
-    {
594
-        EE_Error::doing_it_wrong(
595
-            'EE_messages::' . $method,
596
-            __('EE_messages has been deprecated.  Please use EE_Message_Resource_Manager instead.'),
597
-            '4.9.0',
598
-            '4.10.0.p'
599
-        );
600
-        // Please use EE_Message_Resource_Manager instead
601
-        $this->_message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
602
-    }
603
-
604
-
605
-    /**
606
-     * @deprecated 4.9.0
607
-     * @param string $messenger_name
608
-     * @return boolean TRUE if it was PREVIOUSLY active, and FALSE if it was previously inactive
609
-     */
610
-    public function ensure_messenger_is_active($messenger_name)
611
-    {
612
-        // EE_messages has been deprecated
613
-        $this->_class_is_deprecated(__FUNCTION__);
614
-        return $this->_message_resource_manager->ensure_messenger_is_active($messenger_name);
615
-    }
616
-
617
-
618
-    /**
619
-     * @deprecated 4.9.0
620
-     * @param string $message_type message type name
621
-     * @param        $messenger
622
-     * @return bool true if it got activated (or was active) and false if not.
623
-     * @throws \EE_Error
624
-     */
625
-    public function ensure_message_type_is_active($message_type, $messenger)
626
-    {
627
-        // EE_messages has been deprecated
628
-        $this->_class_is_deprecated(__FUNCTION__);
629
-        return $this->_message_resource_manager->ensure_message_type_is_active($message_type, $messenger);
630
-    }
631
-
632
-
633
-    /**
634
-     * @deprecated 4.9.0
635
-     * @param string $messenger_name
636
-     * @param array  $mts_to_activate             (optional) An array of message types to activate with this messenger.
637
-     *                                             If included we do NOT setup the default message types (assuming they
638
-     *                                             are already setup.)
639
-     * @return boolean an array of generated templates or false if nothing generated/activated.
640
-     */
641
-    public function activate_messenger($messenger_name, $mts_to_activate = array())
642
-    {
643
-        // EE_messages has been deprecated
644
-        $this->_class_is_deprecated(__FUNCTION__);
645
-        return $this->_message_resource_manager->activate_messenger($messenger_name, $mts_to_activate);
646
-    }
647
-
648
-
649
-    /**
650
-     * @deprecated 4.9.0
651
-     * @param EE_messenger    $messenger    messenger used in trigger
652
-     * @param EE_message_type $message_type message type used in trigger
653
-     *
654
-     * @return bool true is a generating messenger and can be sent OR FALSE meaning cannot send.
655
-     */
656
-    public function is_generating_messenger_and_active(EE_messenger $messenger, EE_message_type $message_type)
657
-    {
658
-        // EE_messages has been deprecated
659
-        $this->_class_is_deprecated(__FUNCTION__);
660
-        return $this->_message_resource_manager->is_generating_messenger_and_active($messenger, $message_type);
661
-    }
662
-
663
-
664
-    /**
665
-     * @deprecated 4.9.0
666
-     * @param string $messenger
667
-     * @return EE_messenger | null
668
-     */
669
-    public function get_messenger_if_active($messenger)
670
-    {
671
-        // EE_messages has been deprecated
672
-        $this->_class_is_deprecated(__FUNCTION__);
673
-        return $this->_message_resource_manager->get_active_messenger($messenger);
674
-    }
675
-
676
-
677
-    /**
678
-     * @deprecated 4.9.0
679
-     * @param EE_Message $message
680
-     * @return array  An array with 'messenger' and 'message_type' as the index and the corresponding valid object if
681
-     *                  available.
682
-     *                  Eg. Valid Messenger and Message Type:
683
-     *                  array(
684
-     *                  'messenger' => new EE_Email_messenger(),
685
-     *                  'message_type' => new EE_Registration_Approved_message_type()
686
-     *                  )
687
-     *                  Valid Messenger and Invalid Message Type:
688
-     *                  array(
689
-     *                  'messenger' => new EE_Email_messenger(),
690
-     *                  'message_type' => null
691
-     *                  )
692
-     */
693
-    public function validate_for_use(EE_Message $message)
694
-    {
695
-        // EE_messages has been deprecated
696
-        $this->_class_is_deprecated(__FUNCTION__);
697
-        return array(
698
-            'messenger'    => $message->messenger_object(),
699
-            'message_type' => $message->message_type_object(),
700
-        );
701
-    }
702
-
703
-
704
-    /**
705
-     * @deprecated 4.9.0
706
-     * @param  string $type                 What type of message are we sending (corresponds to message types)
707
-     * @param  mixed  $vars                 Data being sent for parsing in the message
708
-     * @param  string $sending_messenger    if included then we ONLY use the specified messenger for delivery.
709
-     *                                      Otherwise we cycle through all active messengers.
710
-     * @param string  $generating_messenger if included then this messenger is used for generating the message
711
-     *                                      templates (but not for sending).
712
-     * @param string  $context              If included then only a message type for a specific context will be
713
-     *                                      generated.
714
-     * @param bool    $send                 Default TRUE.  If false, then this will just return the generated
715
-     *                                      EE_messages objects which might be used by the trigger to setup a batch
716
-     *                                      message (typically html messenger uses it).
717
-     * @return bool
718
-     */
719
-    public function send_message(
720
-        $type,
721
-        $vars,
722
-        $sending_messenger = '',
723
-        $generating_messenger = '',
724
-        $context = '',
725
-        $send = true
726
-    ) {
727
-        // EE_messages has been deprecated
728
-        $this->_class_is_deprecated(__FUNCTION__);
729
-        /** @type EE_Messages_Processor $processor */
730
-        $processor = EE_Registry::instance()->load_lib('Messages_Processor');
731
-        $error = false;
732
-        // try to intelligently determine what method we'll call based on the incoming data.
733
-        // if generating and sending are different then generate and send immediately.
734
-        if (! empty($sending_messenger) && $sending_messenger != $generating_messenger && $send) {
735
-            // in the legacy system, when generating and sending were different, that means all the
736
-            // vars are already in the request object.  So let's just use that.
737
-            try {
738
-                /** @type EE_Message_To_Generate_From_Request $mtg */
739
-                $mtg = EE_Registry::instance()->load_lib('Message_To_Generate_From_Request');
740
-                $processor->generate_and_send_now($mtg);
741
-            } catch (EE_Error $e) {
742
-                $error_msg = __(
743
-                    'Please note that a system message failed to send due to a technical issue.',
744
-                    'event_espresso'
745
-                );
746
-                // add specific message for developers if WP_DEBUG in on
747
-                $error_msg .= '||' . $e->getMessage();
748
-                EE_Error::add_error($error_msg, __FILE__, __FUNCTION__, __LINE__);
749
-                $error = true;
750
-            }
751
-        } else {
752
-            $processor->generate_for_all_active_messengers($type, $vars, $send);
753
-            // let's find out if there were any errors and how many successfully were queued.
754
-            $count_errors = $processor->get_queue()->count_STS_in_queue(
755
-                array(EEM_Message::status_failed, EEM_Message::status_debug_only)
756
-            );
757
-            $count_queued = $processor->get_queue()->count_STS_in_queue(EEM_Message::status_incomplete);
758
-            $count_retry = $processor->get_queue()->count_STS_in_queue(EEM_Message::status_retry);
759
-            $count_errors = $count_errors + $count_retry;
760
-            if ($count_errors > 0) {
761
-                $error = true;
762
-                if ($count_errors > 1 && $count_retry > 1 && $count_queued > 1) {
763
-                    $message = sprintf(
764
-                        __(
765
-                            'There were %d errors and %d messages successfully queued for generation and sending',
766
-                            'event_espresso'
767
-                        ),
768
-                        $count_errors,
769
-                        $count_queued
770
-                    );
771
-                } elseif ($count_errors > 1 && $count_queued === 1) {
772
-                    $message = sprintf(
773
-                        __(
774
-                            'There were %d errors and %d message successfully queued for generation.',
775
-                            'event_espresso'
776
-                        ),
777
-                        $count_errors,
778
-                        $count_queued
779
-                    );
780
-                } elseif ($count_errors === 1 && $count_queued > 1) {
781
-                    $message = sprintf(
782
-                        __(
783
-                            'There was %d error and %d messages successfully queued for generation.',
784
-                            'event_espresso'
785
-                        ),
786
-                        $count_errors,
787
-                        $count_queued
788
-                    );
789
-                } else {
790
-                    $message = sprintf(
791
-                        __(
792
-                            'There was %d message that failed to be queued for generation.',
793
-                            'event_espresso'
794
-                        ),
795
-                        $count_errors
796
-                    );
797
-                }
798
-                EE_Error::add_error($message, __FILE__, __FUNCTION__, __LINE__);
799
-            } else {
800
-                if ($count_queued === 1) {
801
-                    $message = sprintf(
802
-                        __(
803
-                            '%d message successfully queued for generation.',
804
-                            'event_espresso'
805
-                        ),
806
-                        $count_queued
807
-                    );
808
-                } else {
809
-                    $message = sprintf(
810
-                        __(
811
-                            '%d messages were successfully queued for generation.',
812
-                            'event_espresso'
813
-                        ),
814
-                        $count_queued
815
-                    );
816
-                }
817
-                EE_Error::add_success($message);
818
-            }
819
-        }
820
-        // if no error then return the generated message(s).
821
-        if (! $error && ! $send) {
822
-            $generated_queue = $processor->generate_queue(false);
823
-            // get message and return.
824
-            $generated_queue->get_message_repository()->rewind();
825
-            $messages = array();
826
-            while ($generated_queue->get_message_repository()->valid()) {
827
-                $message = $generated_queue->get_message_repository()->current();
828
-                if ($message instanceof EE_Message) {
829
-                    // set properties that might be expected by add-ons (backward compat)
830
-                    $message->content = $message->content();
831
-                    $message->template_pack = $message->get_template_pack();
832
-                    $message->template_variation = $message->get_template_pack_variation();
833
-                    $messages[] = $message;
834
-                }
835
-                $generated_queue->get_message_repository()->next();
836
-            }
837
-            return $messages;
838
-        }
839
-        return $error ? false
840
-            : true; // yeah backwards eh?  Really what we're returning is if there is a total success for all the messages or not.  We'll modify this once we get message recording in place.
841
-    }
842
-
843
-
844
-    /**
845
-     * @deprecated 4.9.0
846
-     * @param  string $type      This should correspond with a valid message type
847
-     * @param  string $context   This should correspond with a valid context for the message type
848
-     * @param  string $messenger This should correspond with a valid messenger.
849
-     * @param bool    $send      true we will do a test send using the messenger delivery, false we just do a regular
850
-     *                           preview
851
-     * @return string          The body of the message.
852
-     */
853
-    public function preview_message($type, $context, $messenger, $send = false)
854
-    {
855
-        // EE_messages has been deprecated
856
-        $this->_class_is_deprecated(__FUNCTION__);
857
-        return EED_Messages::preview_message($type, $context, $messenger, $send);
858
-    }
859
-
860
-
861
-    /**
862
-     * @since      4.5.0
863
-     * @deprecated 4.9.0   Moved to EED_Messages Module
864
-     * @param string   $messenger    a string matching a valid active messenger in the system
865
-     * @param string   $message_type Although it seems contrary to the name of the method, a message type name is still
866
-     *                               required to send along the message type to the messenger because this is used for
867
-     *                               determining what specific variations might be loaded for the generated message.
868
-     * @param stdClass $message      a stdClass object in the format expected by the messenger.
869
-     *
870
-     * @return bool          success or fail.
871
-     */
872
-    public function send_message_with_messenger_only($messenger, $message_type, $message)
873
-    {
874
-        // EE_messages has been deprecated
875
-        $this->_class_is_deprecated(__FUNCTION__);
876
-        // setup for sending to new method.
877
-        /** @type EE_Messages_Queue $queue */
878
-        $queue = EE_Registry::instance()->load_lib('Messages_Queue');
879
-        // make sure we have a proper message object
880
-        if (! $message instanceof EE_Message && is_object($message) && isset($message->content)) {
881
-            $msg = EE_Message_Factory::create(
882
-                array(
883
-                    'MSG_messenger'    => $messenger,
884
-                    'MSG_message_type' => $message_type,
885
-                    'MSG_content'      => $message->content,
886
-                    'MSG_subject'      => $message->subject,
887
-                )
888
-            );
889
-        } else {
890
-            $msg = $message;
891
-        }
892
-        if (! $msg instanceof EE_Message) {
893
-            return false;
894
-        }
895
-        // make sure any content in a content property (if not empty) is set on the MSG_content.
896
-        if (! empty($msg->content)) {
897
-            $msg->set('MSG_content', $msg->content);
898
-        }
899
-        $queue->add($msg);
900
-        return EED_Messages::send_message_with_messenger_only($messenger, $message_type, $queue);
901
-    }
902
-
903
-
904
-    /**
905
-     * @deprecated 4.9.0
906
-     * @param         $messenger
907
-     * @param  string $message_type message type that the templates are being created for
908
-     * @param int     $GRP_ID
909
-     * @param bool    $is_global
910
-     * @return array|object if creation is successful then we return an array of info, otherwise an error_object is
911
-     *                      returned.
912
-     * @throws \EE_Error
913
-     */
914
-    public function create_new_templates($messenger, $message_type, $GRP_ID = 0, $is_global = false)
915
-    {
916
-        // EE_messages has been deprecated
917
-        $this->_class_is_deprecated(__FUNCTION__);
918
-        EE_Registry::instance()->load_helper('MSG_Template');
919
-        return EEH_MSG_Template::create_new_templates($messenger, $message_type, $GRP_ID, $is_global);
920
-    }
921
-
922
-
923
-    /**
924
-     * @deprecated 4.9.0
925
-     * @param  string $messenger_name    name of EE_messenger
926
-     * @param  string $message_type_name name of EE_message_type
927
-     * @return array
928
-     */
929
-    public function get_fields($messenger_name, $message_type_name)
930
-    {
931
-        // EE_messages has been deprecated
932
-        $this->_class_is_deprecated(__FUNCTION__);
933
-        EE_Registry::instance()->load_helper('MSG_Template');
934
-        return EEH_MSG_Template::get_fields($messenger_name, $message_type_name);
935
-    }
936
-
937
-
938
-    /**
939
-     * @deprecated 4.9.0
940
-     * @access     public
941
-     * @param string $type                we can indicate just returning installed message types
942
-     *                                    or messengers (or both) via this parameter.
943
-     * @param bool   $skip_cache          if true then we skip the cache and retrieve via files.
944
-     * @return array                    multidimensional array of messenger and message_type objects
945
-     *                                    (messengers index, and message_type index);
946
-     */
947
-    public function get_installed($type = 'all', $skip_cache = false)
948
-    {
949
-        // EE_messages has been deprecated
950
-        $this->_class_is_deprecated(__FUNCTION__);
951
-        if ($skip_cache) {
952
-            $this->_message_resource_manager->reset_active_messengers_and_message_types();
953
-        }
954
-        switch ($type) {
955
-            case 'messengers' :
956
-                return array(
957
-                    'messenger' => $this->_message_resource_manager->installed_messengers(),
958
-                );
959
-                break;
960
-            case 'message_types' :
961
-                return array(
962
-                    'message_type' => $this->_message_resource_manager->installed_message_types(),
963
-                );
964
-                break;
965
-            case 'all' :
966
-            default :
967
-                return array(
968
-                    'messenger'    => $this->_message_resource_manager->installed_messengers(),
969
-                    'message_type' => $this->_message_resource_manager->installed_message_types(),
970
-                );
971
-                break;
972
-        }
973
-    }
974
-
975
-
976
-    /**
977
-     * @deprecated 4.9.0
978
-     * @return \EE_messenger[]
979
-     */
980
-    public function get_active_messengers()
981
-    {
982
-        // EE_messages has been deprecated
983
-        $this->_class_is_deprecated(__FUNCTION__);
984
-        return $this->_message_resource_manager->active_messengers();
985
-    }
986
-
987
-
988
-    /**
989
-     * @deprecated 4.9.0
990
-     * @return array array of message_type references (string)
991
-     */
992
-    public function get_active_message_types()
993
-    {
994
-        // EE_messages has been deprecated
995
-        $this->_class_is_deprecated(__FUNCTION__);
996
-        return $this->_message_resource_manager->list_of_active_message_types();
997
-    }
998
-
999
-
1000
-    /**
1001
-     * @deprecated 4.9.0
1002
-     * @return EE_message_type[]
1003
-     */
1004
-    public function get_active_message_type_objects()
1005
-    {
1006
-        // EE_messages has been deprecated
1007
-        $this->_class_is_deprecated(__FUNCTION__);
1008
-        return $this->_message_resource_manager->get_active_message_type_objects();
1009
-    }
1010
-
1011
-
1012
-    /**
1013
-     * @deprecated 4.9.0
1014
-     * @since      4.5.0
1015
-     * @param string $messenger The messenger being checked
1016
-     * @return EE_message_type[]    (or empty array if none present)
1017
-     */
1018
-    public function get_active_message_types_per_messenger($messenger)
1019
-    {
1020
-        // EE_messages has been deprecated
1021
-        $this->_class_is_deprecated(__FUNCTION__);
1022
-        return $this->_message_resource_manager->get_active_message_types_for_messenger($messenger);
1023
-    }
1024
-
1025
-
1026
-    /**
1027
-     * @deprecated 4.9.0
1028
-     * @param string $messenger    The string should correspond to the messenger (message types are
1029
-     * @param string $message_type The string should correspond to a message type.
1030
-     * @return EE_message_type|null
1031
-     */
1032
-    public function get_active_message_type($messenger, $message_type)
1033
-    {
1034
-        // EE_messages has been deprecated
1035
-        $this->_class_is_deprecated(__FUNCTION__);
1036
-        return $this->_message_resource_manager->get_active_message_type_for_messenger($messenger, $message_type);
1037
-    }
1038
-
1039
-
1040
-    /**
1041
-     * @deprecated 4.9.0
1042
-     * @return array|\EE_message_type[]
1043
-     */
1044
-    public function get_installed_message_types()
1045
-    {
1046
-        // EE_messages has been deprecated
1047
-        $this->_class_is_deprecated(__FUNCTION__);
1048
-        return $this->_message_resource_manager->installed_message_types();
1049
-    }
1050
-
1051
-
1052
-    /**
1053
-     * @deprecated 4.9.0
1054
-     * @return array
1055
-     */
1056
-    public function get_installed_messengers()
1057
-    {
1058
-        // EE_messages has been deprecated
1059
-        $this->_class_is_deprecated(__FUNCTION__);
1060
-        return $this->_message_resource_manager->installed_messengers();
1061
-    }
1062
-
1063
-
1064
-    /**
1065
-     * @deprecated 4.9.0
1066
-     * @param   bool $slugs_only Whether to return an array of just slugs and labels (true) or all contexts indexed by
1067
-     *                           message type.
1068
-     * @return array
1069
-     */
1070
-    public function get_all_contexts($slugs_only = true)
1071
-    {
1072
-        // EE_messages has been deprecated
1073
-        $this->_class_is_deprecated(__FUNCTION__);
1074
-        return $this->_message_resource_manager->get_all_contexts($slugs_only);
1075
-    }
557
+	/** @type EE_messenger[] */
558
+	protected $_active_messengers = array();
559
+
560
+	/** @type array */
561
+	protected $_active_message_types = array();
562
+
563
+	/** @type EE_message_type[] */
564
+	protected $_installed_message_types = array();
565
+
566
+	/** @type EE_messenger */
567
+	protected $_messenger;
568
+
569
+	/** @type EE_message_type */
570
+	protected $_message_type;
571
+
572
+	/** @type array */
573
+	protected $_contexts = array();
574
+
575
+	/** @type EE_Message_Resource_Manager $_message_resource_manager */
576
+	protected $_message_resource_manager;
577
+
578
+
579
+	/**
580
+	 * EE_messages constructor.
581
+	 *
582
+	 * @deprecated 4.9.0
583
+	 */
584
+	public function __construct()
585
+	{
586
+	}
587
+
588
+
589
+	/**
590
+	 * @param string $method
591
+	 */
592
+	public function _class_is_deprecated($method)
593
+	{
594
+		EE_Error::doing_it_wrong(
595
+			'EE_messages::' . $method,
596
+			__('EE_messages has been deprecated.  Please use EE_Message_Resource_Manager instead.'),
597
+			'4.9.0',
598
+			'4.10.0.p'
599
+		);
600
+		// Please use EE_Message_Resource_Manager instead
601
+		$this->_message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
602
+	}
603
+
604
+
605
+	/**
606
+	 * @deprecated 4.9.0
607
+	 * @param string $messenger_name
608
+	 * @return boolean TRUE if it was PREVIOUSLY active, and FALSE if it was previously inactive
609
+	 */
610
+	public function ensure_messenger_is_active($messenger_name)
611
+	{
612
+		// EE_messages has been deprecated
613
+		$this->_class_is_deprecated(__FUNCTION__);
614
+		return $this->_message_resource_manager->ensure_messenger_is_active($messenger_name);
615
+	}
616
+
617
+
618
+	/**
619
+	 * @deprecated 4.9.0
620
+	 * @param string $message_type message type name
621
+	 * @param        $messenger
622
+	 * @return bool true if it got activated (or was active) and false if not.
623
+	 * @throws \EE_Error
624
+	 */
625
+	public function ensure_message_type_is_active($message_type, $messenger)
626
+	{
627
+		// EE_messages has been deprecated
628
+		$this->_class_is_deprecated(__FUNCTION__);
629
+		return $this->_message_resource_manager->ensure_message_type_is_active($message_type, $messenger);
630
+	}
631
+
632
+
633
+	/**
634
+	 * @deprecated 4.9.0
635
+	 * @param string $messenger_name
636
+	 * @param array  $mts_to_activate             (optional) An array of message types to activate with this messenger.
637
+	 *                                             If included we do NOT setup the default message types (assuming they
638
+	 *                                             are already setup.)
639
+	 * @return boolean an array of generated templates or false if nothing generated/activated.
640
+	 */
641
+	public function activate_messenger($messenger_name, $mts_to_activate = array())
642
+	{
643
+		// EE_messages has been deprecated
644
+		$this->_class_is_deprecated(__FUNCTION__);
645
+		return $this->_message_resource_manager->activate_messenger($messenger_name, $mts_to_activate);
646
+	}
647
+
648
+
649
+	/**
650
+	 * @deprecated 4.9.0
651
+	 * @param EE_messenger    $messenger    messenger used in trigger
652
+	 * @param EE_message_type $message_type message type used in trigger
653
+	 *
654
+	 * @return bool true is a generating messenger and can be sent OR FALSE meaning cannot send.
655
+	 */
656
+	public function is_generating_messenger_and_active(EE_messenger $messenger, EE_message_type $message_type)
657
+	{
658
+		// EE_messages has been deprecated
659
+		$this->_class_is_deprecated(__FUNCTION__);
660
+		return $this->_message_resource_manager->is_generating_messenger_and_active($messenger, $message_type);
661
+	}
662
+
663
+
664
+	/**
665
+	 * @deprecated 4.9.0
666
+	 * @param string $messenger
667
+	 * @return EE_messenger | null
668
+	 */
669
+	public function get_messenger_if_active($messenger)
670
+	{
671
+		// EE_messages has been deprecated
672
+		$this->_class_is_deprecated(__FUNCTION__);
673
+		return $this->_message_resource_manager->get_active_messenger($messenger);
674
+	}
675
+
676
+
677
+	/**
678
+	 * @deprecated 4.9.0
679
+	 * @param EE_Message $message
680
+	 * @return array  An array with 'messenger' and 'message_type' as the index and the corresponding valid object if
681
+	 *                  available.
682
+	 *                  Eg. Valid Messenger and Message Type:
683
+	 *                  array(
684
+	 *                  'messenger' => new EE_Email_messenger(),
685
+	 *                  'message_type' => new EE_Registration_Approved_message_type()
686
+	 *                  )
687
+	 *                  Valid Messenger and Invalid Message Type:
688
+	 *                  array(
689
+	 *                  'messenger' => new EE_Email_messenger(),
690
+	 *                  'message_type' => null
691
+	 *                  )
692
+	 */
693
+	public function validate_for_use(EE_Message $message)
694
+	{
695
+		// EE_messages has been deprecated
696
+		$this->_class_is_deprecated(__FUNCTION__);
697
+		return array(
698
+			'messenger'    => $message->messenger_object(),
699
+			'message_type' => $message->message_type_object(),
700
+		);
701
+	}
702
+
703
+
704
+	/**
705
+	 * @deprecated 4.9.0
706
+	 * @param  string $type                 What type of message are we sending (corresponds to message types)
707
+	 * @param  mixed  $vars                 Data being sent for parsing in the message
708
+	 * @param  string $sending_messenger    if included then we ONLY use the specified messenger for delivery.
709
+	 *                                      Otherwise we cycle through all active messengers.
710
+	 * @param string  $generating_messenger if included then this messenger is used for generating the message
711
+	 *                                      templates (but not for sending).
712
+	 * @param string  $context              If included then only a message type for a specific context will be
713
+	 *                                      generated.
714
+	 * @param bool    $send                 Default TRUE.  If false, then this will just return the generated
715
+	 *                                      EE_messages objects which might be used by the trigger to setup a batch
716
+	 *                                      message (typically html messenger uses it).
717
+	 * @return bool
718
+	 */
719
+	public function send_message(
720
+		$type,
721
+		$vars,
722
+		$sending_messenger = '',
723
+		$generating_messenger = '',
724
+		$context = '',
725
+		$send = true
726
+	) {
727
+		// EE_messages has been deprecated
728
+		$this->_class_is_deprecated(__FUNCTION__);
729
+		/** @type EE_Messages_Processor $processor */
730
+		$processor = EE_Registry::instance()->load_lib('Messages_Processor');
731
+		$error = false;
732
+		// try to intelligently determine what method we'll call based on the incoming data.
733
+		// if generating and sending are different then generate and send immediately.
734
+		if (! empty($sending_messenger) && $sending_messenger != $generating_messenger && $send) {
735
+			// in the legacy system, when generating and sending were different, that means all the
736
+			// vars are already in the request object.  So let's just use that.
737
+			try {
738
+				/** @type EE_Message_To_Generate_From_Request $mtg */
739
+				$mtg = EE_Registry::instance()->load_lib('Message_To_Generate_From_Request');
740
+				$processor->generate_and_send_now($mtg);
741
+			} catch (EE_Error $e) {
742
+				$error_msg = __(
743
+					'Please note that a system message failed to send due to a technical issue.',
744
+					'event_espresso'
745
+				);
746
+				// add specific message for developers if WP_DEBUG in on
747
+				$error_msg .= '||' . $e->getMessage();
748
+				EE_Error::add_error($error_msg, __FILE__, __FUNCTION__, __LINE__);
749
+				$error = true;
750
+			}
751
+		} else {
752
+			$processor->generate_for_all_active_messengers($type, $vars, $send);
753
+			// let's find out if there were any errors and how many successfully were queued.
754
+			$count_errors = $processor->get_queue()->count_STS_in_queue(
755
+				array(EEM_Message::status_failed, EEM_Message::status_debug_only)
756
+			);
757
+			$count_queued = $processor->get_queue()->count_STS_in_queue(EEM_Message::status_incomplete);
758
+			$count_retry = $processor->get_queue()->count_STS_in_queue(EEM_Message::status_retry);
759
+			$count_errors = $count_errors + $count_retry;
760
+			if ($count_errors > 0) {
761
+				$error = true;
762
+				if ($count_errors > 1 && $count_retry > 1 && $count_queued > 1) {
763
+					$message = sprintf(
764
+						__(
765
+							'There were %d errors and %d messages successfully queued for generation and sending',
766
+							'event_espresso'
767
+						),
768
+						$count_errors,
769
+						$count_queued
770
+					);
771
+				} elseif ($count_errors > 1 && $count_queued === 1) {
772
+					$message = sprintf(
773
+						__(
774
+							'There were %d errors and %d message successfully queued for generation.',
775
+							'event_espresso'
776
+						),
777
+						$count_errors,
778
+						$count_queued
779
+					);
780
+				} elseif ($count_errors === 1 && $count_queued > 1) {
781
+					$message = sprintf(
782
+						__(
783
+							'There was %d error and %d messages successfully queued for generation.',
784
+							'event_espresso'
785
+						),
786
+						$count_errors,
787
+						$count_queued
788
+					);
789
+				} else {
790
+					$message = sprintf(
791
+						__(
792
+							'There was %d message that failed to be queued for generation.',
793
+							'event_espresso'
794
+						),
795
+						$count_errors
796
+					);
797
+				}
798
+				EE_Error::add_error($message, __FILE__, __FUNCTION__, __LINE__);
799
+			} else {
800
+				if ($count_queued === 1) {
801
+					$message = sprintf(
802
+						__(
803
+							'%d message successfully queued for generation.',
804
+							'event_espresso'
805
+						),
806
+						$count_queued
807
+					);
808
+				} else {
809
+					$message = sprintf(
810
+						__(
811
+							'%d messages were successfully queued for generation.',
812
+							'event_espresso'
813
+						),
814
+						$count_queued
815
+					);
816
+				}
817
+				EE_Error::add_success($message);
818
+			}
819
+		}
820
+		// if no error then return the generated message(s).
821
+		if (! $error && ! $send) {
822
+			$generated_queue = $processor->generate_queue(false);
823
+			// get message and return.
824
+			$generated_queue->get_message_repository()->rewind();
825
+			$messages = array();
826
+			while ($generated_queue->get_message_repository()->valid()) {
827
+				$message = $generated_queue->get_message_repository()->current();
828
+				if ($message instanceof EE_Message) {
829
+					// set properties that might be expected by add-ons (backward compat)
830
+					$message->content = $message->content();
831
+					$message->template_pack = $message->get_template_pack();
832
+					$message->template_variation = $message->get_template_pack_variation();
833
+					$messages[] = $message;
834
+				}
835
+				$generated_queue->get_message_repository()->next();
836
+			}
837
+			return $messages;
838
+		}
839
+		return $error ? false
840
+			: true; // yeah backwards eh?  Really what we're returning is if there is a total success for all the messages or not.  We'll modify this once we get message recording in place.
841
+	}
842
+
843
+
844
+	/**
845
+	 * @deprecated 4.9.0
846
+	 * @param  string $type      This should correspond with a valid message type
847
+	 * @param  string $context   This should correspond with a valid context for the message type
848
+	 * @param  string $messenger This should correspond with a valid messenger.
849
+	 * @param bool    $send      true we will do a test send using the messenger delivery, false we just do a regular
850
+	 *                           preview
851
+	 * @return string          The body of the message.
852
+	 */
853
+	public function preview_message($type, $context, $messenger, $send = false)
854
+	{
855
+		// EE_messages has been deprecated
856
+		$this->_class_is_deprecated(__FUNCTION__);
857
+		return EED_Messages::preview_message($type, $context, $messenger, $send);
858
+	}
859
+
860
+
861
+	/**
862
+	 * @since      4.5.0
863
+	 * @deprecated 4.9.0   Moved to EED_Messages Module
864
+	 * @param string   $messenger    a string matching a valid active messenger in the system
865
+	 * @param string   $message_type Although it seems contrary to the name of the method, a message type name is still
866
+	 *                               required to send along the message type to the messenger because this is used for
867
+	 *                               determining what specific variations might be loaded for the generated message.
868
+	 * @param stdClass $message      a stdClass object in the format expected by the messenger.
869
+	 *
870
+	 * @return bool          success or fail.
871
+	 */
872
+	public function send_message_with_messenger_only($messenger, $message_type, $message)
873
+	{
874
+		// EE_messages has been deprecated
875
+		$this->_class_is_deprecated(__FUNCTION__);
876
+		// setup for sending to new method.
877
+		/** @type EE_Messages_Queue $queue */
878
+		$queue = EE_Registry::instance()->load_lib('Messages_Queue');
879
+		// make sure we have a proper message object
880
+		if (! $message instanceof EE_Message && is_object($message) && isset($message->content)) {
881
+			$msg = EE_Message_Factory::create(
882
+				array(
883
+					'MSG_messenger'    => $messenger,
884
+					'MSG_message_type' => $message_type,
885
+					'MSG_content'      => $message->content,
886
+					'MSG_subject'      => $message->subject,
887
+				)
888
+			);
889
+		} else {
890
+			$msg = $message;
891
+		}
892
+		if (! $msg instanceof EE_Message) {
893
+			return false;
894
+		}
895
+		// make sure any content in a content property (if not empty) is set on the MSG_content.
896
+		if (! empty($msg->content)) {
897
+			$msg->set('MSG_content', $msg->content);
898
+		}
899
+		$queue->add($msg);
900
+		return EED_Messages::send_message_with_messenger_only($messenger, $message_type, $queue);
901
+	}
902
+
903
+
904
+	/**
905
+	 * @deprecated 4.9.0
906
+	 * @param         $messenger
907
+	 * @param  string $message_type message type that the templates are being created for
908
+	 * @param int     $GRP_ID
909
+	 * @param bool    $is_global
910
+	 * @return array|object if creation is successful then we return an array of info, otherwise an error_object is
911
+	 *                      returned.
912
+	 * @throws \EE_Error
913
+	 */
914
+	public function create_new_templates($messenger, $message_type, $GRP_ID = 0, $is_global = false)
915
+	{
916
+		// EE_messages has been deprecated
917
+		$this->_class_is_deprecated(__FUNCTION__);
918
+		EE_Registry::instance()->load_helper('MSG_Template');
919
+		return EEH_MSG_Template::create_new_templates($messenger, $message_type, $GRP_ID, $is_global);
920
+	}
921
+
922
+
923
+	/**
924
+	 * @deprecated 4.9.0
925
+	 * @param  string $messenger_name    name of EE_messenger
926
+	 * @param  string $message_type_name name of EE_message_type
927
+	 * @return array
928
+	 */
929
+	public function get_fields($messenger_name, $message_type_name)
930
+	{
931
+		// EE_messages has been deprecated
932
+		$this->_class_is_deprecated(__FUNCTION__);
933
+		EE_Registry::instance()->load_helper('MSG_Template');
934
+		return EEH_MSG_Template::get_fields($messenger_name, $message_type_name);
935
+	}
936
+
937
+
938
+	/**
939
+	 * @deprecated 4.9.0
940
+	 * @access     public
941
+	 * @param string $type                we can indicate just returning installed message types
942
+	 *                                    or messengers (or both) via this parameter.
943
+	 * @param bool   $skip_cache          if true then we skip the cache and retrieve via files.
944
+	 * @return array                    multidimensional array of messenger and message_type objects
945
+	 *                                    (messengers index, and message_type index);
946
+	 */
947
+	public function get_installed($type = 'all', $skip_cache = false)
948
+	{
949
+		// EE_messages has been deprecated
950
+		$this->_class_is_deprecated(__FUNCTION__);
951
+		if ($skip_cache) {
952
+			$this->_message_resource_manager->reset_active_messengers_and_message_types();
953
+		}
954
+		switch ($type) {
955
+			case 'messengers' :
956
+				return array(
957
+					'messenger' => $this->_message_resource_manager->installed_messengers(),
958
+				);
959
+				break;
960
+			case 'message_types' :
961
+				return array(
962
+					'message_type' => $this->_message_resource_manager->installed_message_types(),
963
+				);
964
+				break;
965
+			case 'all' :
966
+			default :
967
+				return array(
968
+					'messenger'    => $this->_message_resource_manager->installed_messengers(),
969
+					'message_type' => $this->_message_resource_manager->installed_message_types(),
970
+				);
971
+				break;
972
+		}
973
+	}
974
+
975
+
976
+	/**
977
+	 * @deprecated 4.9.0
978
+	 * @return \EE_messenger[]
979
+	 */
980
+	public function get_active_messengers()
981
+	{
982
+		// EE_messages has been deprecated
983
+		$this->_class_is_deprecated(__FUNCTION__);
984
+		return $this->_message_resource_manager->active_messengers();
985
+	}
986
+
987
+
988
+	/**
989
+	 * @deprecated 4.9.0
990
+	 * @return array array of message_type references (string)
991
+	 */
992
+	public function get_active_message_types()
993
+	{
994
+		// EE_messages has been deprecated
995
+		$this->_class_is_deprecated(__FUNCTION__);
996
+		return $this->_message_resource_manager->list_of_active_message_types();
997
+	}
998
+
999
+
1000
+	/**
1001
+	 * @deprecated 4.9.0
1002
+	 * @return EE_message_type[]
1003
+	 */
1004
+	public function get_active_message_type_objects()
1005
+	{
1006
+		// EE_messages has been deprecated
1007
+		$this->_class_is_deprecated(__FUNCTION__);
1008
+		return $this->_message_resource_manager->get_active_message_type_objects();
1009
+	}
1010
+
1011
+
1012
+	/**
1013
+	 * @deprecated 4.9.0
1014
+	 * @since      4.5.0
1015
+	 * @param string $messenger The messenger being checked
1016
+	 * @return EE_message_type[]    (or empty array if none present)
1017
+	 */
1018
+	public function get_active_message_types_per_messenger($messenger)
1019
+	{
1020
+		// EE_messages has been deprecated
1021
+		$this->_class_is_deprecated(__FUNCTION__);
1022
+		return $this->_message_resource_manager->get_active_message_types_for_messenger($messenger);
1023
+	}
1024
+
1025
+
1026
+	/**
1027
+	 * @deprecated 4.9.0
1028
+	 * @param string $messenger    The string should correspond to the messenger (message types are
1029
+	 * @param string $message_type The string should correspond to a message type.
1030
+	 * @return EE_message_type|null
1031
+	 */
1032
+	public function get_active_message_type($messenger, $message_type)
1033
+	{
1034
+		// EE_messages has been deprecated
1035
+		$this->_class_is_deprecated(__FUNCTION__);
1036
+		return $this->_message_resource_manager->get_active_message_type_for_messenger($messenger, $message_type);
1037
+	}
1038
+
1039
+
1040
+	/**
1041
+	 * @deprecated 4.9.0
1042
+	 * @return array|\EE_message_type[]
1043
+	 */
1044
+	public function get_installed_message_types()
1045
+	{
1046
+		// EE_messages has been deprecated
1047
+		$this->_class_is_deprecated(__FUNCTION__);
1048
+		return $this->_message_resource_manager->installed_message_types();
1049
+	}
1050
+
1051
+
1052
+	/**
1053
+	 * @deprecated 4.9.0
1054
+	 * @return array
1055
+	 */
1056
+	public function get_installed_messengers()
1057
+	{
1058
+		// EE_messages has been deprecated
1059
+		$this->_class_is_deprecated(__FUNCTION__);
1060
+		return $this->_message_resource_manager->installed_messengers();
1061
+	}
1062
+
1063
+
1064
+	/**
1065
+	 * @deprecated 4.9.0
1066
+	 * @param   bool $slugs_only Whether to return an array of just slugs and labels (true) or all contexts indexed by
1067
+	 *                           message type.
1068
+	 * @return array
1069
+	 */
1070
+	public function get_all_contexts($slugs_only = true)
1071
+	{
1072
+		// EE_messages has been deprecated
1073
+		$this->_class_is_deprecated(__FUNCTION__);
1074
+		return $this->_message_resource_manager->get_all_contexts($slugs_only);
1075
+	}
1076 1076
 
1077 1077
 
1078 1078
 }
@@ -1131,88 +1131,88 @@  discard block
 block discarded – undo
1131 1131
 
1132 1132
 
1133 1133
 add_filter(
1134
-    'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__css',
1135
-    function ($event_list_iframe_css) {
1136
-        if (! has_filter('FHEE__EventsArchiveIframe__event_list_iframe__css')) {
1137
-            return $event_list_iframe_css;
1138
-        }
1139
-        deprecated_espresso_action_or_filter_doing_it_wrong(
1140
-            'FHEE__EventsArchiveIframe__event_list_iframe__css',
1141
-            'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__css',
1142
-            '\EventEspresso\modules\events_archive\EventsArchiveIframe::display()',
1143
-            '4.9.14',
1144
-            '5.0.0',
1145
-            'filter'
1146
-        );
1147
-        return apply_filters(
1148
-            'FHEE__EventsArchiveIframe__event_list_iframe__css',
1149
-            $event_list_iframe_css
1150
-        );
1151
-    }
1134
+	'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__css',
1135
+	function ($event_list_iframe_css) {
1136
+		if (! has_filter('FHEE__EventsArchiveIframe__event_list_iframe__css')) {
1137
+			return $event_list_iframe_css;
1138
+		}
1139
+		deprecated_espresso_action_or_filter_doing_it_wrong(
1140
+			'FHEE__EventsArchiveIframe__event_list_iframe__css',
1141
+			'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__css',
1142
+			'\EventEspresso\modules\events_archive\EventsArchiveIframe::display()',
1143
+			'4.9.14',
1144
+			'5.0.0',
1145
+			'filter'
1146
+		);
1147
+		return apply_filters(
1148
+			'FHEE__EventsArchiveIframe__event_list_iframe__css',
1149
+			$event_list_iframe_css
1150
+		);
1151
+	}
1152 1152
 );
1153 1153
 add_filter(
1154
-    'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__js',
1155
-    function ($event_list_iframe_js) {
1156
-        if (! has_filter('FHEE__EED_Ticket_Selector__ticket_selector_iframe__js')) {
1157
-            return $event_list_iframe_js;
1158
-        }
1159
-        deprecated_espresso_action_or_filter_doing_it_wrong(
1160
-            'FHEE__EED_Ticket_Selector__ticket_selector_iframe__js',
1161
-            'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__js',
1162
-            '\EventEspresso\modules\events_archive\EventsArchiveIframe::display()',
1163
-            '4.9.14',
1164
-            '5.0.0',
1165
-            'filter'
1166
-        );
1167
-        return apply_filters(
1168
-            'FHEE__EED_Ticket_Selector__ticket_selector_iframe__js',
1169
-            $event_list_iframe_js
1170
-        );
1171
-    }
1154
+	'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__js',
1155
+	function ($event_list_iframe_js) {
1156
+		if (! has_filter('FHEE__EED_Ticket_Selector__ticket_selector_iframe__js')) {
1157
+			return $event_list_iframe_js;
1158
+		}
1159
+		deprecated_espresso_action_or_filter_doing_it_wrong(
1160
+			'FHEE__EED_Ticket_Selector__ticket_selector_iframe__js',
1161
+			'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__js',
1162
+			'\EventEspresso\modules\events_archive\EventsArchiveIframe::display()',
1163
+			'4.9.14',
1164
+			'5.0.0',
1165
+			'filter'
1166
+		);
1167
+		return apply_filters(
1168
+			'FHEE__EED_Ticket_Selector__ticket_selector_iframe__js',
1169
+			$event_list_iframe_js
1170
+		);
1171
+	}
1172 1172
 );
1173 1173
 add_action(
1174
-    'AHEE__EE_Capabilities__addCaps__complete',
1175
-    function ($capabilities_map) {
1176
-        if (! has_action('AHEE__EE_Capabilities__init_role_caps__complete')) {
1177
-            return;
1178
-        }
1179
-        deprecated_espresso_action_or_filter_doing_it_wrong(
1180
-            'AHEE__EE_Capabilities__init_role_caps__complete',
1181
-            'AHEE__EE_Capabilities__addCaps__complete',
1182
-            '\EE_Capabilities::addCaps()',
1183
-            '4.9.42',
1184
-            '5.0.0'
1185
-        );
1186
-        do_action(
1187
-            'AHEE__EE_Capabilities__init_role_caps__complete',
1188
-            $capabilities_map
1189
-        );
1190
-    }
1174
+	'AHEE__EE_Capabilities__addCaps__complete',
1175
+	function ($capabilities_map) {
1176
+		if (! has_action('AHEE__EE_Capabilities__init_role_caps__complete')) {
1177
+			return;
1178
+		}
1179
+		deprecated_espresso_action_or_filter_doing_it_wrong(
1180
+			'AHEE__EE_Capabilities__init_role_caps__complete',
1181
+			'AHEE__EE_Capabilities__addCaps__complete',
1182
+			'\EE_Capabilities::addCaps()',
1183
+			'4.9.42',
1184
+			'5.0.0'
1185
+		);
1186
+		do_action(
1187
+			'AHEE__EE_Capabilities__init_role_caps__complete',
1188
+			$capabilities_map
1189
+		);
1190
+	}
1191 1191
 );
1192 1192
 
1193 1193
 add_filter(
1194
-    'FHEE_EventEspresso_core_services_commands_attendee_CreateAttendeeCommandHandler__findExistingAttendee__existing_attendee',
1195
-    function ($existing_attendee, $registration, $attendee_data) {
1196
-        if (! has_filter('FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee')) {
1197
-            return $existing_attendee;
1198
-        }
1199
-        deprecated_espresso_action_or_filter_doing_it_wrong(
1200
-            'FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee',
1201
-            'FHEE_EventEspresso_core_services_commands_attendee_CreateAttendeeCommandHandler__findExistingAttendee__existing_attendee',
1202
-            '\EventEspresso\core\services\commands\attendee\CreateAttendeeCommandHandler::findExistingAttendee()',
1203
-            '4.9.34',
1204
-            '5.0.0',
1205
-            'filter'
1206
-        );
1207
-        return apply_filters(
1208
-            'FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee',
1209
-            $existing_attendee,
1210
-            $registration,
1211
-            $attendee_data
1212
-        );
1213
-    },
1214
-    10,
1215
-    3
1194
+	'FHEE_EventEspresso_core_services_commands_attendee_CreateAttendeeCommandHandler__findExistingAttendee__existing_attendee',
1195
+	function ($existing_attendee, $registration, $attendee_data) {
1196
+		if (! has_filter('FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee')) {
1197
+			return $existing_attendee;
1198
+		}
1199
+		deprecated_espresso_action_or_filter_doing_it_wrong(
1200
+			'FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee',
1201
+			'FHEE_EventEspresso_core_services_commands_attendee_CreateAttendeeCommandHandler__findExistingAttendee__existing_attendee',
1202
+			'\EventEspresso\core\services\commands\attendee\CreateAttendeeCommandHandler::findExistingAttendee()',
1203
+			'4.9.34',
1204
+			'5.0.0',
1205
+			'filter'
1206
+		);
1207
+		return apply_filters(
1208
+			'FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee',
1209
+			$existing_attendee,
1210
+			$registration,
1211
+			$attendee_data
1212
+		);
1213
+	},
1214
+	10,
1215
+	3
1216 1216
 );
1217 1217
 
1218 1218
 /**
@@ -1223,88 +1223,88 @@  discard block
 block discarded – undo
1223 1223
 class EE_Event_List_Query extends WP_Query
1224 1224
 {
1225 1225
 
1226
-    private $title;
1227
-
1228
-    private $css_class;
1229
-
1230
-    private $category_slug;
1231
-
1232
-    /**
1233
-     * EE_Event_List_Query constructor.
1234
-     *
1235
-     * @param array $args
1236
-     */
1237
-    public function __construct($args = array())
1238
-    {
1239
-        \EE_Error::doing_it_wrong(
1240
-            __METHOD__,
1241
-            __(
1242
-                'Usage is deprecated. Please use \EventEspresso\core\domain\services\wp_queries\EventListQuery instead.',
1243
-                'event_espresso'
1244
-            ),
1245
-            '4.9.27',
1246
-            '5.0.0'
1247
-        );
1248
-        $this->title = isset($args['title']) ? $args['title'] : '';
1249
-        $this->css_class = isset($args['css_class']) ? $args['css_class'] : '';
1250
-        $this->category_slug = isset($args['category_slug']) ? $args['category_slug'] : '';
1251
-        $limit = isset($args['limit']) && absint($args['limit']) ? $args['limit'] : 10;
1252
-        // the current "page" we are viewing
1253
-        $paged = max(1, get_query_var('paged'));
1254
-        // Force these args
1255
-        $args = array_merge(
1256
-            $args,
1257
-            array(
1258
-                'post_type'              => 'espresso_events',
1259
-                'posts_per_page'         => $limit,
1260
-                'update_post_term_cache' => false,
1261
-                'update_post_meta_cache' => false,
1262
-                'paged'                  => $paged,
1263
-                'offset'                 => ($paged - 1) * $limit,
1264
-            )
1265
-        );
1266
-        // run the query
1267
-        parent::__construct($args);
1268
-    }
1269
-
1270
-
1271
-    /**
1272
-     * event_list_title
1273
-     *
1274
-     * @param string $event_list_title
1275
-     * @return string
1276
-     */
1277
-    public function event_list_title($event_list_title = '')
1278
-    {
1279
-        if (! empty($this->title)) {
1280
-            return $this->title;
1281
-        }
1282
-        return $event_list_title;
1283
-    }
1284
-
1285
-
1286
-    /**
1287
-     * event_list_css
1288
-     *
1289
-     * @param string $event_list_css
1290
-     * @return string
1291
-     */
1292
-    public function event_list_css($event_list_css = '')
1293
-    {
1294
-        $event_list_css .= ! empty($event_list_css)
1295
-            ? ' '
1296
-            : '';
1297
-        $event_list_css .= ! empty($this->css_class)
1298
-            ? $this->css_class
1299
-            : '';
1300
-        $event_list_css .= ! empty($event_list_css)
1301
-            ? ' '
1302
-            : '';
1303
-        $event_list_css .= ! empty($this->category_slug)
1304
-            ? $this->category_slug
1305
-            : '';
1306
-        return $event_list_css;
1307
-    }
1226
+	private $title;
1227
+
1228
+	private $css_class;
1229
+
1230
+	private $category_slug;
1231
+
1232
+	/**
1233
+	 * EE_Event_List_Query constructor.
1234
+	 *
1235
+	 * @param array $args
1236
+	 */
1237
+	public function __construct($args = array())
1238
+	{
1239
+		\EE_Error::doing_it_wrong(
1240
+			__METHOD__,
1241
+			__(
1242
+				'Usage is deprecated. Please use \EventEspresso\core\domain\services\wp_queries\EventListQuery instead.',
1243
+				'event_espresso'
1244
+			),
1245
+			'4.9.27',
1246
+			'5.0.0'
1247
+		);
1248
+		$this->title = isset($args['title']) ? $args['title'] : '';
1249
+		$this->css_class = isset($args['css_class']) ? $args['css_class'] : '';
1250
+		$this->category_slug = isset($args['category_slug']) ? $args['category_slug'] : '';
1251
+		$limit = isset($args['limit']) && absint($args['limit']) ? $args['limit'] : 10;
1252
+		// the current "page" we are viewing
1253
+		$paged = max(1, get_query_var('paged'));
1254
+		// Force these args
1255
+		$args = array_merge(
1256
+			$args,
1257
+			array(
1258
+				'post_type'              => 'espresso_events',
1259
+				'posts_per_page'         => $limit,
1260
+				'update_post_term_cache' => false,
1261
+				'update_post_meta_cache' => false,
1262
+				'paged'                  => $paged,
1263
+				'offset'                 => ($paged - 1) * $limit,
1264
+			)
1265
+		);
1266
+		// run the query
1267
+		parent::__construct($args);
1268
+	}
1269
+
1270
+
1271
+	/**
1272
+	 * event_list_title
1273
+	 *
1274
+	 * @param string $event_list_title
1275
+	 * @return string
1276
+	 */
1277
+	public function event_list_title($event_list_title = '')
1278
+	{
1279
+		if (! empty($this->title)) {
1280
+			return $this->title;
1281
+		}
1282
+		return $event_list_title;
1283
+	}
1284
+
1285
+
1286
+	/**
1287
+	 * event_list_css
1288
+	 *
1289
+	 * @param string $event_list_css
1290
+	 * @return string
1291
+	 */
1292
+	public function event_list_css($event_list_css = '')
1293
+	{
1294
+		$event_list_css .= ! empty($event_list_css)
1295
+			? ' '
1296
+			: '';
1297
+		$event_list_css .= ! empty($this->css_class)
1298
+			? $this->css_class
1299
+			: '';
1300
+		$event_list_css .= ! empty($event_list_css)
1301
+			? ' '
1302
+			: '';
1303
+		$event_list_css .= ! empty($this->category_slug)
1304
+			? $this->category_slug
1305
+			: '';
1306
+		return $event_list_css;
1307
+	}
1308 1308
 
1309 1309
 }
1310 1310
 
@@ -1321,75 +1321,75 @@  discard block
 block discarded – undo
1321 1321
 {
1322 1322
 
1323 1323
 
1324
-    /**
1325
-     *    class constructor
1326
-     *
1327
-     * @deprecated 4.9.59.p
1328
-     */
1329
-    public function __construct()
1330
-    {
1331
-        EE_Error::doing_it_wrong(
1332
-            __METHOD__,
1333
-            sprintf(
1334
-                esc_html__('%1$s has been replaced by %2$s.', 'event_espresso'),
1335
-                __CLASS__,
1336
-                'EventEspresso\core\services\licensing\LicenseServices'
1337
-            ),
1338
-            '4.9.59.p'
1339
-        );
1340
-    }
1341
-
1342
-
1343
-    /**
1344
-     * The purpose of this function is to display information about Event Espresso data collection
1345
-     * and a optin selection for extra data collecting by users.
1346
-     *
1347
-     * @param bool $extra
1348
-     * @return string html.
1349
-     * @deprecated 4.9.59.p
1350
-     */
1351
-    public static function espresso_data_collection_optin_text($extra = true)
1352
-    {
1353
-        EE_Error::doing_it_wrong(
1354
-            __METHOD__,
1355
-            sprintf(
1356
-                esc_html__('%1$s has been replaced by %2$s.', 'event_espresso'),
1357
-                __METHOD__,
1358
-                'EventEspresso\core\domain\services\Stats::optinText'
1359
-            ),
1360
-            '4.9.59.p'
1361
-        );
1362
-        Stats::optinText($extra);
1363
-    }
1364
-
1365
-    /**
1366
-     * This is a handy helper method for retrieving whether there is an update available for the given plugin.
1367
-     *
1368
-     * @param  string $basename Use the equivalent result from plugin_basename() for this param as WP uses that to
1369
-     *                          identify plugins. Defaults to core update
1370
-     * @return boolean           True if update available, false if not.
1371
-     * @deprecated 4.9.59.p
1372
-     */
1373
-    public static function is_update_available($basename = '')
1374
-    {
1375
-        EE_Error::doing_it_wrong(
1376
-            __METHOD__,
1377
-            sprintf(
1378
-                esc_html__('%1$s has been replaced by %2$s.', 'event_espresso'),
1379
-                __METHOD__,
1380
-                'EventEspresso\core\services\licensing\LicenseService::isUpdateAvailable'
1381
-            ),
1382
-            '4.9.59.p'
1383
-        );
1384
-        return LicenseService::isUpdateAvailable($basename);
1385
-    }
1324
+	/**
1325
+	 *    class constructor
1326
+	 *
1327
+	 * @deprecated 4.9.59.p
1328
+	 */
1329
+	public function __construct()
1330
+	{
1331
+		EE_Error::doing_it_wrong(
1332
+			__METHOD__,
1333
+			sprintf(
1334
+				esc_html__('%1$s has been replaced by %2$s.', 'event_espresso'),
1335
+				__CLASS__,
1336
+				'EventEspresso\core\services\licensing\LicenseServices'
1337
+			),
1338
+			'4.9.59.p'
1339
+		);
1340
+	}
1341
+
1342
+
1343
+	/**
1344
+	 * The purpose of this function is to display information about Event Espresso data collection
1345
+	 * and a optin selection for extra data collecting by users.
1346
+	 *
1347
+	 * @param bool $extra
1348
+	 * @return string html.
1349
+	 * @deprecated 4.9.59.p
1350
+	 */
1351
+	public static function espresso_data_collection_optin_text($extra = true)
1352
+	{
1353
+		EE_Error::doing_it_wrong(
1354
+			__METHOD__,
1355
+			sprintf(
1356
+				esc_html__('%1$s has been replaced by %2$s.', 'event_espresso'),
1357
+				__METHOD__,
1358
+				'EventEspresso\core\domain\services\Stats::optinText'
1359
+			),
1360
+			'4.9.59.p'
1361
+		);
1362
+		Stats::optinText($extra);
1363
+	}
1364
+
1365
+	/**
1366
+	 * This is a handy helper method for retrieving whether there is an update available for the given plugin.
1367
+	 *
1368
+	 * @param  string $basename Use the equivalent result from plugin_basename() for this param as WP uses that to
1369
+	 *                          identify plugins. Defaults to core update
1370
+	 * @return boolean           True if update available, false if not.
1371
+	 * @deprecated 4.9.59.p
1372
+	 */
1373
+	public static function is_update_available($basename = '')
1374
+	{
1375
+		EE_Error::doing_it_wrong(
1376
+			__METHOD__,
1377
+			sprintf(
1378
+				esc_html__('%1$s has been replaced by %2$s.', 'event_espresso'),
1379
+				__METHOD__,
1380
+				'EventEspresso\core\services\licensing\LicenseService::isUpdateAvailable'
1381
+			),
1382
+			'4.9.59.p'
1383
+		);
1384
+		return LicenseService::isUpdateAvailable($basename);
1385
+	}
1386 1386
 }
1387 1387
 
1388 1388
 add_filter(
1389
-    'FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array',
1390
-    'ee_deprecated_registrations_report_csv_legacy_fields',
1391
-    10,
1392
-    2
1389
+	'FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array',
1390
+	'ee_deprecated_registrations_report_csv_legacy_fields',
1391
+	10,
1392
+	2
1393 1393
 );
1394 1394
 /**
1395 1395
  * Filters the CSV row to make it appear like the old labels (which were "$pretty_name[$field_name]").
@@ -1406,96 +1406,96 @@  discard block
 block discarded – undo
1406 1406
  */
1407 1407
 function ee_deprecated_registrations_report_csv_legacy_fields($csv_row_data, $reg_row)
1408 1408
 {
1409
-    // no need for all this if nobody is using the deprecated filter
1410
-    if (has_filter('FHEE__EE_Export__report_registrations__reg_csv_array')) {
1411
-        EE_Error::doing_it_wrong(
1412
-            __FUNCTION__,
1413
-            sprintf(
1414
-                // EE_Error::doing_it_wrong with escape HTML, so don't escape it twice by doing it here too.
1415
-                _x(
1416
-                    'The filter "%1$s" has been deprecated. Please use "%2$s" instead.',
1417
-                    'The filter "FHEE__EE_Export__report_registrations__reg_csv_array" has been deprecated. Please use "FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array" instead.',
1418
-                    'event_espresso'
1419
-                ),
1420
-                'FHEE__EE_Export__report_registrations__reg_csv_array',
1421
-                'FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array'
1422
-            ),
1423
-            '4.9.69.p',
1424
-            '4.9.75.p'
1425
-        );
1426
-        // there's code that expected the old csv column headers/labels. Let's oblige. Put it back in the old format!
1427
-        // first: what model fields might be used as column headers? (whose format we need to change)
1428
-        $model_fields = array_merge(
1429
-            EEM_Registration::instance()->field_settings(),
1430
-            EEM_Attendee::instance()->field_settings()
1431
-        );
1432
-        // create an array that uses the legacy column headers/labels.
1433
-        $new_csv_row = array();
1434
-        foreach ($csv_row_data as $label => $value) {
1435
-            $new_label = $label;
1436
-            foreach ($model_fields as $field) {
1437
-                if ($label === EEH_Export::get_column_name_for_field($field)) {
1438
-                    // re-add the old field name
1439
-                    $new_label = $label . '[' . $field->get_name() . ']';
1440
-                    break;
1441
-                }
1442
-            }
1443
-            $new_csv_row[$new_label] = $value;
1444
-        }
1445
-        // before we run it through the deprecated filter, set the method `EEH_Export::get_column_name_for_field()`
1446
-        // to create the old column names, because that's what's in the row temporarily
1447
-        add_filter(
1448
-            'FHEE__EEH_Export__get_column_name_for_field__add_field_name',
1449
-            '__return_true',
1450
-            777
1451
-        );
1452
-        // now, those old filters can be run on this data. Have fun!
1453
-        /**
1454
-         * Deprecated. Use FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array instead.
1455
-         *
1456
-         * Filter to change the contents of each row of the registrations report CSV file.
1457
-         * This can be used to add or remote columns from the CSV file, or change their values.                 *
1458
-         * Note: it has this name because originally that's where this filter resided,
1459
-         * and we've left its name as-is for backward compatibility.
1460
-         * Note when using: all rows in the CSV should have the same columns.
1461
-         *
1462
-         * @param array $reg_csv_array keys are column-header names, and values are that columns' value
1463
-         *                             in this row
1464
-         * @param array $reg_row is the row from the database's wp_esp_registration table
1465
-         */
1466
-        $updated_row = apply_filters(
1467
-            'FHEE__EE_Export__report_registrations__reg_csv_array',
1468
-            $new_csv_row,
1469
-            $reg_row
1470
-        );
1471
-
1472
-        // ok now we can revert to normal for EEH_Export::get_column_name_for_field().
1473
-        remove_filter(
1474
-            'FHEE__EEH_Export__get_column_name_for_field__add_field_name',
1475
-            '__return_true',
1476
-            777
1477
-        );
1478
-
1479
-        // great. Now that the old filters are done, we can remove the ugly square brackets from column headers/labels.
1480
-        $updated_and_restored_row = array();
1481
-        foreach ($updated_row as $label => $value) {
1482
-            $matches = array();
1483
-            if (preg_match(
1484
-                    '~([^\[]*)\[(.*)\]~',
1485
-                    $label,
1486
-                    $matches
1487
-                )
1488
-                && isset(
1489
-                    $matches[0],
1490
-                    $matches[1],
1491
-                    $matches[2]
1492
-                )
1493
-            ) {
1494
-                $label = $matches[1];
1495
-            }
1496
-            $updated_and_restored_row[$label] = $value;
1497
-        }
1498
-        $csv_row_data = $updated_and_restored_row;
1499
-    }
1500
-    return $csv_row_data;
1409
+	// no need for all this if nobody is using the deprecated filter
1410
+	if (has_filter('FHEE__EE_Export__report_registrations__reg_csv_array')) {
1411
+		EE_Error::doing_it_wrong(
1412
+			__FUNCTION__,
1413
+			sprintf(
1414
+				// EE_Error::doing_it_wrong with escape HTML, so don't escape it twice by doing it here too.
1415
+				_x(
1416
+					'The filter "%1$s" has been deprecated. Please use "%2$s" instead.',
1417
+					'The filter "FHEE__EE_Export__report_registrations__reg_csv_array" has been deprecated. Please use "FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array" instead.',
1418
+					'event_espresso'
1419
+				),
1420
+				'FHEE__EE_Export__report_registrations__reg_csv_array',
1421
+				'FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array'
1422
+			),
1423
+			'4.9.69.p',
1424
+			'4.9.75.p'
1425
+		);
1426
+		// there's code that expected the old csv column headers/labels. Let's oblige. Put it back in the old format!
1427
+		// first: what model fields might be used as column headers? (whose format we need to change)
1428
+		$model_fields = array_merge(
1429
+			EEM_Registration::instance()->field_settings(),
1430
+			EEM_Attendee::instance()->field_settings()
1431
+		);
1432
+		// create an array that uses the legacy column headers/labels.
1433
+		$new_csv_row = array();
1434
+		foreach ($csv_row_data as $label => $value) {
1435
+			$new_label = $label;
1436
+			foreach ($model_fields as $field) {
1437
+				if ($label === EEH_Export::get_column_name_for_field($field)) {
1438
+					// re-add the old field name
1439
+					$new_label = $label . '[' . $field->get_name() . ']';
1440
+					break;
1441
+				}
1442
+			}
1443
+			$new_csv_row[$new_label] = $value;
1444
+		}
1445
+		// before we run it through the deprecated filter, set the method `EEH_Export::get_column_name_for_field()`
1446
+		// to create the old column names, because that's what's in the row temporarily
1447
+		add_filter(
1448
+			'FHEE__EEH_Export__get_column_name_for_field__add_field_name',
1449
+			'__return_true',
1450
+			777
1451
+		);
1452
+		// now, those old filters can be run on this data. Have fun!
1453
+		/**
1454
+		 * Deprecated. Use FHEE__EventEspressoBatchRequest__JobHandlers__RegistrationsReport__reg_csv_array instead.
1455
+		 *
1456
+		 * Filter to change the contents of each row of the registrations report CSV file.
1457
+		 * This can be used to add or remote columns from the CSV file, or change their values.                 *
1458
+		 * Note: it has this name because originally that's where this filter resided,
1459
+		 * and we've left its name as-is for backward compatibility.
1460
+		 * Note when using: all rows in the CSV should have the same columns.
1461
+		 *
1462
+		 * @param array $reg_csv_array keys are column-header names, and values are that columns' value
1463
+		 *                             in this row
1464
+		 * @param array $reg_row is the row from the database's wp_esp_registration table
1465
+		 */
1466
+		$updated_row = apply_filters(
1467
+			'FHEE__EE_Export__report_registrations__reg_csv_array',
1468
+			$new_csv_row,
1469
+			$reg_row
1470
+		);
1471
+
1472
+		// ok now we can revert to normal for EEH_Export::get_column_name_for_field().
1473
+		remove_filter(
1474
+			'FHEE__EEH_Export__get_column_name_for_field__add_field_name',
1475
+			'__return_true',
1476
+			777
1477
+		);
1478
+
1479
+		// great. Now that the old filters are done, we can remove the ugly square brackets from column headers/labels.
1480
+		$updated_and_restored_row = array();
1481
+		foreach ($updated_row as $label => $value) {
1482
+			$matches = array();
1483
+			if (preg_match(
1484
+					'~([^\[]*)\[(.*)\]~',
1485
+					$label,
1486
+					$matches
1487
+				)
1488
+				&& isset(
1489
+					$matches[0],
1490
+					$matches[1],
1491
+					$matches[2]
1492
+				)
1493
+			) {
1494
+				$label = $matches[1];
1495
+			}
1496
+			$updated_and_restored_row[$label] = $value;
1497
+		}
1498
+		$csv_row_data = $updated_and_restored_row;
1499
+	}
1500
+	return $csv_row_data;
1501 1501
 }
1502 1502
\ No newline at end of file
Please login to merge, or discard this patch.
core/EE_Object_Collection.core.php 3 patches
Doc Comments   +1 added lines patch added patch discarded remove patch
@@ -84,6 +84,7 @@
 block discarded – undo
84 84
      *
85 85
      * @access public
86 86
      * @param mixed
87
+     * @param string $info
87 88
      * @return null | object
88 89
      */
89 90
     public function get_by_info($info)
Please login to merge, or discard this patch.
Indentation   +156 added lines, -156 removed lines patch added patch discarded remove patch
@@ -16,160 +16,160 @@
 block discarded – undo
16 16
 abstract class EE_Object_Collection extends SplObjectStorage implements EEI_Collection
17 17
 {
18 18
 
19
-    /**
20
-     * an interface (or class) name to be used for restricting the type of objects added to the storage
21
-     * this should be set from within the child class constructor
22
-     *
23
-     * @type string $interface
24
-     */
25
-    protected $interface;
26
-
27
-
28
-    /**
29
-     * add
30
-     *
31
-     * attaches an object to the Collection
32
-     * and sets any supplied data associated with the current iterator entry
33
-     * by calling EE_Object_Collection::set_info()
34
-     *
35
-     * @access public
36
-     * @param object $object
37
-     * @param mixed  $info
38
-     * @return bool
39
-     */
40
-    public function add($object, $info = null)
41
-    {
42
-        $class = $this->interface;
43
-        if (! $object instanceof $class) {
44
-            return false;
45
-        }
46
-        $this->attach($object);
47
-        $this->set_info($object, $info);
48
-        return $this->contains($object);
49
-    }
50
-
51
-
52
-    /**
53
-     * set_info
54
-     *
55
-     * Sets the data associated with an object in the Collection
56
-     * if no $info is supplied, then the spl_object_hash() is used
57
-     *
58
-     * @access public
59
-     * @param object $object
60
-     * @param mixed  $info
61
-     * @return bool
62
-     */
63
-    public function set_info($object, $info = null)
64
-    {
65
-        $info = ! empty($info) ? $info : spl_object_hash($object);
66
-        $this->rewind();
67
-        while ($this->valid()) {
68
-            if ($object == $this->current()) {
69
-                $this->setInfo($info);
70
-                $this->rewind();
71
-                return true;
72
-            }
73
-            $this->next();
74
-        }
75
-        return false;
76
-    }
77
-
78
-
79
-    /**
80
-     * get_by_info
81
-     *
82
-     * finds and returns an object in the Collection based on the info that was set using addObject()
83
-     * PLZ NOTE: the pointer is reset to the beginning of the collection before returning
84
-     *
85
-     * @access public
86
-     * @param mixed
87
-     * @return null | object
88
-     */
89
-    public function get_by_info($info)
90
-    {
91
-        $this->rewind();
92
-        while ($this->valid()) {
93
-            if ($info === $this->getInfo()) {
94
-                $object = $this->current();
95
-                $this->rewind();
96
-                return $object;
97
-            }
98
-            $this->next();
99
-        }
100
-        return null;
101
-    }
102
-
103
-
104
-    /**
105
-     * has
106
-     *
107
-     * returns TRUE or FALSE depending on whether the supplied object is within the Collection
108
-     *
109
-     * @access public
110
-     * @param object $object
111
-     * @return bool
112
-     */
113
-    public function has($object)
114
-    {
115
-        return $this->contains($object);
116
-    }
117
-
118
-
119
-    /**
120
-     * remove
121
-     *
122
-     * detaches an object from the Collection
123
-     *
124
-     * @access public
125
-     * @param $object
126
-     * @return bool
127
-     */
128
-    public function remove($object)
129
-    {
130
-        $this->detach($object);
131
-        return true;
132
-    }
133
-
134
-
135
-    /**
136
-     * set_current
137
-     *
138
-     * advances pointer to the provided object
139
-     *
140
-     * @access public
141
-     * @param $object
142
-     * @return void
143
-     */
144
-    public function set_current($object)
145
-    {
146
-        $this->rewind();
147
-        while ($this->valid()) {
148
-            if ($this->current() === $object) {
149
-                break;
150
-            }
151
-            $this->next();
152
-        }
153
-    }
154
-
155
-
156
-    /**
157
-     * set_current_by_info
158
-     *
159
-     * advances pointer to the object whose info matches that which was provided
160
-     *
161
-     * @access public
162
-     * @param $info
163
-     * @return void
164
-     */
165
-    public function set_current_by_info($info)
166
-    {
167
-        $this->rewind();
168
-        while ($this->valid()) {
169
-            if ($info === $this->getInfo()) {
170
-                break;
171
-            }
172
-            $this->next();
173
-        }
174
-    }
19
+	/**
20
+	 * an interface (or class) name to be used for restricting the type of objects added to the storage
21
+	 * this should be set from within the child class constructor
22
+	 *
23
+	 * @type string $interface
24
+	 */
25
+	protected $interface;
26
+
27
+
28
+	/**
29
+	 * add
30
+	 *
31
+	 * attaches an object to the Collection
32
+	 * and sets any supplied data associated with the current iterator entry
33
+	 * by calling EE_Object_Collection::set_info()
34
+	 *
35
+	 * @access public
36
+	 * @param object $object
37
+	 * @param mixed  $info
38
+	 * @return bool
39
+	 */
40
+	public function add($object, $info = null)
41
+	{
42
+		$class = $this->interface;
43
+		if (! $object instanceof $class) {
44
+			return false;
45
+		}
46
+		$this->attach($object);
47
+		$this->set_info($object, $info);
48
+		return $this->contains($object);
49
+	}
50
+
51
+
52
+	/**
53
+	 * set_info
54
+	 *
55
+	 * Sets the data associated with an object in the Collection
56
+	 * if no $info is supplied, then the spl_object_hash() is used
57
+	 *
58
+	 * @access public
59
+	 * @param object $object
60
+	 * @param mixed  $info
61
+	 * @return bool
62
+	 */
63
+	public function set_info($object, $info = null)
64
+	{
65
+		$info = ! empty($info) ? $info : spl_object_hash($object);
66
+		$this->rewind();
67
+		while ($this->valid()) {
68
+			if ($object == $this->current()) {
69
+				$this->setInfo($info);
70
+				$this->rewind();
71
+				return true;
72
+			}
73
+			$this->next();
74
+		}
75
+		return false;
76
+	}
77
+
78
+
79
+	/**
80
+	 * get_by_info
81
+	 *
82
+	 * finds and returns an object in the Collection based on the info that was set using addObject()
83
+	 * PLZ NOTE: the pointer is reset to the beginning of the collection before returning
84
+	 *
85
+	 * @access public
86
+	 * @param mixed
87
+	 * @return null | object
88
+	 */
89
+	public function get_by_info($info)
90
+	{
91
+		$this->rewind();
92
+		while ($this->valid()) {
93
+			if ($info === $this->getInfo()) {
94
+				$object = $this->current();
95
+				$this->rewind();
96
+				return $object;
97
+			}
98
+			$this->next();
99
+		}
100
+		return null;
101
+	}
102
+
103
+
104
+	/**
105
+	 * has
106
+	 *
107
+	 * returns TRUE or FALSE depending on whether the supplied object is within the Collection
108
+	 *
109
+	 * @access public
110
+	 * @param object $object
111
+	 * @return bool
112
+	 */
113
+	public function has($object)
114
+	{
115
+		return $this->contains($object);
116
+	}
117
+
118
+
119
+	/**
120
+	 * remove
121
+	 *
122
+	 * detaches an object from the Collection
123
+	 *
124
+	 * @access public
125
+	 * @param $object
126
+	 * @return bool
127
+	 */
128
+	public function remove($object)
129
+	{
130
+		$this->detach($object);
131
+		return true;
132
+	}
133
+
134
+
135
+	/**
136
+	 * set_current
137
+	 *
138
+	 * advances pointer to the provided object
139
+	 *
140
+	 * @access public
141
+	 * @param $object
142
+	 * @return void
143
+	 */
144
+	public function set_current($object)
145
+	{
146
+		$this->rewind();
147
+		while ($this->valid()) {
148
+			if ($this->current() === $object) {
149
+				break;
150
+			}
151
+			$this->next();
152
+		}
153
+	}
154
+
155
+
156
+	/**
157
+	 * set_current_by_info
158
+	 *
159
+	 * advances pointer to the object whose info matches that which was provided
160
+	 *
161
+	 * @access public
162
+	 * @param $info
163
+	 * @return void
164
+	 */
165
+	public function set_current_by_info($info)
166
+	{
167
+		$this->rewind();
168
+		while ($this->valid()) {
169
+			if ($info === $this->getInfo()) {
170
+				break;
171
+			}
172
+			$this->next();
173
+		}
174
+	}
175 175
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@
 block discarded – undo
40 40
     public function add($object, $info = null)
41 41
     {
42 42
         $class = $this->interface;
43
-        if (! $object instanceof $class) {
43
+        if ( ! $object instanceof $class) {
44 44
             return false;
45 45
         }
46 46
         $this->attach($object);
Please login to merge, or discard this patch.
core/helpers/EEH_Form_Fields.helper.php 3 patches
Doc Comments   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -777,7 +777,7 @@  discard block
 block discarded – undo
777 777
      *
778 778
      * @param mixed $opt_group
779 779
      * @param mixed $QSOs
780
-     * @param mixed $answer
780
+     * @param string $answer
781 781
      * @param boolean $use_html_entities
782 782
      * @return string
783 783
      */
@@ -1134,7 +1134,7 @@  discard block
 block discarded – undo
1134 1134
     /**
1135 1135
      *  prep_required
1136 1136
      * @param string|array  $required
1137
-     * @return array
1137
+     * @return string
1138 1138
      */
1139 1139
     public static function prep_required($required = array())
1140 1140
     {
@@ -1187,8 +1187,8 @@  discard block
 block discarded – undo
1187 1187
 
1188 1188
     /**
1189 1189
      *  _load_system_dropdowns
1190
-     * @param array     $QFI
1191
-     * @return array
1190
+     * @param EE_Question_Form_Input     $QFI
1191
+     * @return EE_Question_Form_Input
1192 1192
      */
1193 1193
     private static function _load_system_dropdowns($QFI)
1194 1194
     {
@@ -1491,7 +1491,7 @@  discard block
 block discarded – undo
1491 1491
      * @param    string   $nonce_action     - if using nonces
1492 1492
      * @param    bool|string $input_only       - whether to print form header and footer. TRUE returns the input without the form
1493 1493
      * @param    string   $extra_attributes - any extra attributes that need to be attached to the form input
1494
-     * @return    void
1494
+     * @return    string
1495 1495
      */
1496 1496
     public static function submit_button($url = '', $ID = '', $class = '', $text = '', $nonce_action = '', $input_only = false, $extra_attributes = '')
1497 1497
     {
Please login to merge, or discard this patch.
Indentation   +1462 added lines, -1462 removed lines patch added patch discarded remove patch
@@ -29,1034 +29,1034 @@  discard block
 block discarded – undo
29 29
 {
30 30
 
31 31
 
32
-    /**
33
-     *  Generates HTML for the forms used on admin pages
34
-     *
35
-     *
36
-     *  @static
37
-     *  @access public
38
-     *  @param  array $input_vars - array of input field details
39
-     *  format:
40
-     *  $template_form_fields['field-id'] = array(
41
-     *      'name' => 'name_attribute',
42
-     *      'label' => __('Field Label', 'event_espresso'), //or false
43
-     *      'input' => 'hidden', //field input type can be 'text', 'select', 'textarea', 'hidden', 'checkbox', 'wp_editor'
44
-     *      'type' => 'int', //what "type" the value is (i.e. string, int etc)
45
-     *      'required' => false, //boolean for whether the field is required
46
-     *      'validation' => true, //boolean, whether to validate the field (todo)
47
-     *      'value' => 'some_value_for_field', //what value is used for field
48
-     *      'format' => '%d', //what format the value is (%d, %f, or %s)
49
-     *      'db-col' => 'column_in_db' //used to indicate which column the field corresponds with in the db
50
-     *      'options' => optiona, optionb || array('value' => 'label', '') //if the input type is "select", this allows you to set the args for the different <option> tags.
51
-     *      'tabindex' => 1 //this allows you to set the tabindex for the field.
52
-     *      'append_content' => '' //this allows you to send in html content to append to the field.
53
-     *  )
54
-     *  @param  array $id - used for defining unique identifiers for the form.
55
-     *  @return string
56
-     *  @todo: at some point we can break this down into other static methods to abstract it a bit better.
57
-     */
58
-    public static function get_form_fields($input_vars = array(), $id = false)
59
-    {
60
-
61
-        if (empty($input_vars)) {
62
-            EE_Error::add_error(__('missing required variables for the form field generator', 'event_espresso'), __FILE__, __FUNCTION__, __LINE__);
63
-            return false;
64
-        }
65
-
66
-        // if you don't behave - this is what you're gonna get !!!
67
-        $close = true;
68
-        $output = '<ul>'; // this is for using built-in wp styles... watch carefully...
69
-
70
-        // cycle thru inputs
71
-        foreach ($input_vars as $input_key => $input_value) {
72
-            $defaults = array(
73
-                'name' => $input_key,
74
-                'label' => __('No label', 'event_espresso'),
75
-                'input' => 'hidden',
76
-                'type' => 'int',
77
-                'required' => false,
78
-                'validation' => true,
79
-                'value' => 'some_value_for_field',
80
-                'format' => '%d',
81
-                'db-col' => 'column_in_db',
82
-                'options' => array(),
83
-                'tabindex' => '',
84
-                'append_content' => ''
85
-                );
86
-
87
-            $input_value = wp_parse_args($input_value, $defaults);
88
-
89
-            // required fields get a *
90
-            $required = isset($input_value['required']) && $input_value['required'] ? ' <span>*</span>: ' : ': ';
91
-            // and the css class "required"
92
-            $css_class = isset($input_value['css_class']) ? $input_value['css_class'] : '';
93
-            $styles = $input_value['required'] ? 'required ' . $css_class : $css_class;
94
-
95
-            $field_id = ($id) ? $id . '-' . $input_key : $input_key;
96
-            $tabindex = !empty($input_value['tabindex']) ? ' tabindex="' . $input_value['tabindex'] . '"' : '';
97
-
98
-            // rows or cols?
99
-            $rows = isset($input_value['rows']) ? $input_value['rows'] : '10';
100
-            $cols = isset($input_value['cols']) ? $input_value['cols'] : '80';
101
-
102
-            // any content?
103
-            $append_content = $input_value['append_content'];
104
-
105
-            $output .= (!$close) ? '<ul>' : '';
106
-            $output .= '<li>';
107
-
108
-            // what type of input are we dealing with ?
109
-            switch ($input_value['input']) {
110
-                // text inputs
111
-                case 'text':
112
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
113
-                    $output .= "\n\t\t\t" . '<input id="' . $field_id . '" class="' . $styles . '" type="text" value="' . esc_textarea($input_value['value']) . '" name="' . $input_value['name'] . '"' . $tabindex . '>';
114
-                    break;
115
-
116
-                // dropdowns
117
-                case 'select':
118
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
119
-                    $output .= "\n\t\t\t" . '<select id="' . $field_id . '" class="' . $styles . '" name="' . $input_value['name'] . '"' . $tabindex . '>';
120
-
121
-                    if (is_array($input_value['options'])) {
122
-                        $options = $input_value['options'];
123
-                    } else {
124
-                        $options = explode(',', $input_value['options']);
125
-                    }
126
-
127
-                    foreach ($options as $key => $value) {
128
-                        $selected = isset($input_value['value']) && $input_value['value'] == $key ? 'selected=selected' : '';
129
-                        // $key = str_replace( ' ', '_', sanitize_key( $value ));
130
-                        $output .= "\n\t\t\t\t" . '<option ' . $selected . ' value="' . $key . '">' . $value . '</option>';
131
-                    }
132
-                    $output .= "\n\t\t\t" . '</select>';
133
-
134
-                    break;
135
-
136
-                case 'textarea':
137
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
138
-                    $output .= "\n\t\t\t" . '<textarea id="' . $field_id . '" class="' . $styles . '" rows="' . $rows . '" cols="' . $cols . '" name="' . $input_value['name'] . '"' . $tabindex . '>' . esc_textarea($input_value['value']) . '</textarea>';
139
-                    break;
140
-
141
-                case 'hidden':
142
-                    $close = false;
143
-                    $output .= "</li></ul>";
144
-                    $output .= "\n\t\t\t" . '<input id="' . $field_id . '" type="hidden" name="' . $input_value['name'] . '" value="' . $input_value['value'] . '">';
145
-                    break;
146
-
147
-                case 'checkbox':
148
-                    $checked = ( $input_value['value'] == 1 ) ? 'checked="checked"' : '';
149
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
150
-                    $output .= "\n\t\t\t" . '<input id="' . $field_id . '" type="checkbox" name="' . $input_value['name'] . '" value="1"' . $checked . $tabindex . ' />';
151
-                    break;
152
-
153
-                case 'wp_editor':
154
-                    $close = false;
155
-                    $editor_settings = array(
156
-                        'textarea_name' => $input_value['name'],
157
-                        'textarea_rows' => $rows,
158
-                        'editor_class' => $styles,
159
-                        'tabindex' => $input_value['tabindex']
160
-                    );
161
-                    $output .= '</li>';
162
-                    $output .= '</ul>';
163
-                    $output .= '<h4>' . $input_value['label'] . '</h4>';
164
-                    if ($append_content) {
165
-                        $output .= $append_content;
166
-                    }
167
-                    ob_start();
168
-                    wp_editor($input_value['value'], $field_id, $editor_settings);
169
-                    $editor = ob_get_contents();
170
-                    ob_end_clean();
171
-                    $output .= $editor;
172
-                    break;
173
-            }
174
-            if ($append_content && $input_value['input'] !== 'wp_editor') {
175
-                $output .= $append_content;
176
-            }
177
-                $output .= ($close) ? '</li>' : '';
178
-        } // end foreach( $input_vars as $input_key => $input_value )
179
-        $output .= ($close) ? '</ul>' : '';
180
-
181
-        return $output;
182
-    }
183
-
184
-    /**
185
-     * form_fields_array
186
-     * This utility function assembles form fields from a given structured array with field information.
187
-     * //TODO: This is an alternate generator that we may want to use instead.
188
-     *
189
-     * @param  array $fields structured array of fields to assemble in the following format:
190
-     * [field_name] => array(
191
-     *      ['label'] => 'label for field',
192
-     *      ['labels'] => array('label_1', 'label_2'); //optional - if the field type is a multi select type of field you can indicated the labels for each option via this index
193
-     *      ['extra_desc'] => 'extra description for the field', //optional
194
-     *      ['type'] => 'textarea'|'text'|'wp_editor'|'checkbox'|'radio'|'hidden'|'select', //defaults to text
195
-     *      ['value'] => 'value that goes in the field', //(if multi then this is an array of values and the 'default' paramater will be used for what is selected)
196
-     *      ['default'] => 'default if the field type is multi (i.e. select or radios or checkboxes)',
197
-     *      ['class'] => 'name-of-class(es)-for-input',
198
-     *      ['classes'] => array('class_1', 'class_2'); //optional - if the field type is a multi select type of field you can indicate the css class for each option via this index.
199
-     *      ['id'] => 'css-id-for-input') //defaults to 'field_name'
200
-     *      ['unique_id'] => 1 //defaults to empty string.  This is useful for when the fields generated are going to be used in a loop and you want to make sure that the field identifiers are unique from each other.
201
-     *      ['dimensions'] => array(100,300), //defaults to empty array.  This is used by field types such as textarea to indicate cols/rows.
202
-     *      ['tabindex'] => '' //this allows you to set the tabindex for the field.
203
-     *      ['wpeditor_args'] => array() //if the type of field is wpeditor then this can optionally contain an array of arguments for the editor setup.
204
-     *
205
-     * @return array         an array of inputs for form indexed by field name, and in the following structure:
206
-     *     [field_name] => array( 'label' => '{label_html}', 'field' => '{input_html}'
207
-     */
208
-    public static function get_form_fields_array($fields)
209
-    {
210
-
211
-        $form_fields = array();
212
-        $fields = (array) $fields;
213
-
214
-        foreach ($fields as $field_name => $field_atts) {
215
-            // defaults:
216
-            $defaults = array(
217
-                'label' => '',
218
-                'labels' => '',
219
-                'extra_desc' => '',
220
-                'type' => 'text',
221
-                'value' => '',
222
-                'default' => '',
223
-                'class' => '',
224
-                'classes' => '',
225
-                'id' => $field_name,
226
-                'unique_id' => '',
227
-                'dimensions' => array('10', '5'),
228
-                'tabindex' => '',
229
-                'wpeditor_args' => array()
230
-                );
231
-            // merge defaults with passed arguments
232
-            $_fields = wp_parse_args($field_atts, $defaults);
233
-            extract($_fields);
234
-            // generate label
235
-            $label = empty($label) ? '' : '<label for="' . $id . '">' . $label . '</label>';
236
-            // generate field name
237
-            $f_name = !empty($unique_id) ? $field_name . '[' . $unique_id . ']' : $field_name;
238
-
239
-            // tabindex
240
-            $tabindex_str = !empty($tabindex) ? ' tabindex="' . $tabindex . '"' : '';
241
-
242
-            // we determine what we're building based on the type
243
-            switch ($type) {
244
-                case 'textarea':
245
-                        $fld = '<textarea id="' . $id . '" class="' . $class . '" rows="' . $dimensions[1] . '" cols="' . $dimensions[0] . '" name="' . $f_name . '"' . $tabindex_str . '>' . $value . '</textarea>';
246
-                        $fld .= $extra_desc;
247
-                    break;
248
-
249
-                case 'checkbox':
250
-                        $c_input = '';
251
-                    if (is_array($value)) {
252
-                        foreach ($value as $key => $val) {
253
-                            $c_id = $field_name . '_' . $value;
254
-                            $c_class = isset($classes[ $key ]) ? ' class="' . $classes[ $key ] . '" ' : '';
255
-                            $c_label = isset($labels[ $key ]) ? '<label for="' . $c_id . '">' . $labels[ $key ] . '</label>' : '';
256
-                            $checked = !empty($default) && $default == $val ? ' checked="checked" ' : '';
257
-                            $c_input .= '<input name="' . $f_name . '[]" type="checkbox" id="' . $c_id . '"' . $c_class . 'value="' . $val . '"' . $checked . $tabindex_str . ' />' . "\n" . $c_label;
258
-                        }
259
-                        $fld = $c_input;
260
-                    } else {
261
-                        $checked = !empty($default) && $default == $val ? 'checked="checked" ' : '';
262
-                        $fld = '<input name="' . $f_name . '" type="checkbox" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $checked . $tabindex_str . ' />' . "\n";
263
-                    }
264
-                    break;
265
-
266
-                case 'radio':
267
-                        $c_input = '';
268
-                    if (is_array($value)) {
269
-                        foreach ($value as $key => $val) {
270
-                            $c_id = $field_name . '_' . $value;
271
-                            $c_class = isset($classes[ $key ]) ? 'class="' . $classes[ $key ] . '" ' : '';
272
-                            $c_label = isset($labels[ $key ]) ? '<label for="' . $c_id . '">' . $labels[ $key ] . '</label>' : '';
273
-                            $checked = !empty($default) && $default == $val ? ' checked="checked" ' : '';
274
-                            $c_input .= '<input name="' . $f_name . '" type="checkbox" id="' . $c_id . '"' . $c_class . 'value="' . $val . '"' . $checked . $tabindex_str . ' />' . "\n" . $c_label;
275
-                        }
276
-                        $fld = $c_input;
277
-                    } else {
278
-                        $checked = !empty($default) && $default == $val ? 'checked="checked" ' : '';
279
-                        $fld = '<input name="' . $f_name . '" type="checkbox" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $checked . $tabindex_str . ' />' . "\n";
280
-                    }
281
-                    break;
282
-
283
-                case 'hidden':
284
-                        $fld = '<input name="' . $f_name . '" type="hidden" id="' . $id . '" class="' . $class . '" value="' . $value . '" />' . "\n";
285
-                    break;
286
-
287
-                case 'select':
288
-                        $fld = '<select name="' . $f_name . '" class="' . $class . '" id="' . $id . '"' . $tabindex_str . '>' . "\n";
289
-                    foreach ($value as $key => $val) {
290
-                        $checked = !empty($default) && $default == $val ? ' selected="selected"' : '';
291
-                        $fld .= "\t" . '<option value="' . $val . '"' . $checked . '>' . $labels[ $key ] . '</option>' . "\n";
292
-                    }
293
-                        $fld .= '</select>';
294
-                    break;
295
-
296
-                case 'wp_editor':
297
-                        $editor_settings = array(
298
-                            'textarea_name' => $f_name,
299
-                            'textarea_rows' => $dimensions[1],
300
-                            'editor_class' => $class,
301
-                            'tabindex' => $tabindex
302
-                            );
303
-                        $editor_settings = array_merge($wpeditor_args, $editor_settings);
304
-                        ob_start();
305
-                        wp_editor($value, $id, $editor_settings);
306
-                        $editor = ob_get_contents();
307
-                        ob_end_clean();
308
-                        $fld = $editor;
309
-                    break;
310
-
311
-                default: // 'text fields'
312
-                        $fld = '<input name="' . $f_name . '" type="text" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $tabindex_str . ' />' . "\n";
313
-                        $fld .= $extra_desc;
314
-            }
315
-
316
-            $form_fields[ $field_name ] = array( 'label' => $label, 'field' => $fld );
317
-        }
318
-
319
-        return $form_fields;
320
-    }
321
-
322
-
323
-
324
-
325
-
326
-
327
-    /**
328
-     * espresso admin page select_input
329
-     * Turns an array into a select fields
330
-     *
331
-     * @static
332
-     * @access public
333
-     * @param  string  $name       field name
334
-     * @param  array  $values     option values, numbered array starting at 0, where each value is an array with a key 'text' (meaning text to display' and 'id' (meaning the internal value)
335
-     * eg: array(1=>array('text'=>'Monday','id'=>1),2=>array('text'=>'Tuesday','id'=>2)...). or as an array of key-value pairs, where the key is to be used for the
336
-     * select input's name, and the value will be the text shown to the user.  Optionally you can also include an additional key of "class" which will add a specific class to the option for that value.
337
-     * @param  string  $default    default value
338
-     * @param  string  $parameters extra paramaters
339
-     * @param  string  $class      css class
340
-     * @param  boolean $autosize   whether to autosize the select or not
341
-     * @return string              html string for the select input
342
-     */
343
-    public static function select_input($name, $values, $default = '', $parameters = '', $class = '', $autosize = true)
344
-    {
345
-        // if $values was submitted in the wrong format, convert it over
346
-        if (!empty($values) && (!array_key_exists(0, $values) || !is_array($values[0]))) {
347
-            $converted_values = array();
348
-            foreach ($values as $id => $text) {
349
-                $converted_values[] = array('id' => $id,'text' => $text);
350
-            }
351
-            $values = $converted_values;
352
-        }
353
-
354
-        $field = '<select id="' . EEH_Formatter::ee_tep_output_string($name) . '" name="' . EEH_Formatter::ee_tep_output_string($name) . '"';
355
-        // Debug
356
-        // EEH_Debug_Tools::printr( $values, '$values  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
357
-        if (EEH_Formatter::ee_tep_not_null($parameters)) {
358
-            $field .= ' ' . $parameters;
359
-        }
360
-        if ($autosize) {
361
-            $size = 'med';
362
-            for ($ii = 0, $ni = sizeof($values); $ii < $ni; $ii++) {
363
-                if ($values[ $ii ]['text']) {
364
-                    if (strlen($values[ $ii ]['text']) > 5) {
365
-                        $size = 'wide';
366
-                    }
367
-                }
368
-            }
369
-        } else {
370
-            $size = '';
371
-        }
372
-
373
-        $field .= ' class="' . $class . ' ' . $size . '">';
374
-
375
-        if (empty($default) && isset($GLOBALS[ $name ])) {
376
-            $default = stripslashes($GLOBALS[ $name ]);
377
-        }
378
-
379
-
380
-        for ($i = 0, $n = sizeof($values); $i < $n; $i++) {
381
-            $field .= '<option value="' . $values[ $i ]['id'] . '"';
382
-            if ($default == $values[ $i ]['id']) {
383
-                $field .= ' selected = "selected"';
384
-            }
385
-            if (isset($values[ $i ]['class'])) {
386
-                $field .= ' class="' . $values[ $i ]['class'] . '"';
387
-            }
388
-            $field .= '>' . $values[ $i ]['text'] . '</option>';
389
-        }
390
-        $field .= '</select>';
391
-
392
-        return $field;
393
-    }
394
-
395
-
396
-
397
-
398
-
399
-
400
-    /**
401
-     * generate_question_groups_html
402
-     *
403
-     * @param string $question_groups
404
-     * @return string HTML
405
-     */
406
-    public static function generate_question_groups_html($question_groups = array(), $group_wrapper = 'fieldset')
407
-    {
408
-
409
-        $html = '';
410
-        $before_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', '');
411
-        $after_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', '');
412
-
413
-        if (! empty($question_groups)) {
414
-            // EEH_Debug_Tools::printr( $question_groups, '$question_groups  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
415
-            // loop thru question groups
416
-            foreach ($question_groups as $QSG) {
417
-                // check that questions exist
418
-                if (! empty($QSG['QSG_questions'])) {
419
-                    // use fieldsets
420
-                    $html .= "\n\t" . '<' . $group_wrapper . ' class="espresso-question-group-wrap" id="' . $QSG['QSG_identifier'] . '">';
421
-                    // group_name
422
-                    $html .= $QSG['QSG_show_group_name'] ? "\n\t\t" . '<h5 class="espresso-question-group-title-h5 section-title">' . self::prep_answer($QSG['QSG_name']) . '</h5>' : '';
423
-                    // group_desc
424
-                    $html .= $QSG['QSG_show_group_desc'] && ! empty($QSG['QSG_desc']) ? '<div class="espresso-question-group-desc-pg">' . self::prep_answer($QSG['QSG_desc']) . '</div>' : '';
425
-
426
-                    $html .= $before_question_group_questions;
427
-                    // loop thru questions
428
-                    foreach ($QSG['QSG_questions'] as $question) {
32
+	/**
33
+	 *  Generates HTML for the forms used on admin pages
34
+	 *
35
+	 *
36
+	 *  @static
37
+	 *  @access public
38
+	 *  @param  array $input_vars - array of input field details
39
+	 *  format:
40
+	 *  $template_form_fields['field-id'] = array(
41
+	 *      'name' => 'name_attribute',
42
+	 *      'label' => __('Field Label', 'event_espresso'), //or false
43
+	 *      'input' => 'hidden', //field input type can be 'text', 'select', 'textarea', 'hidden', 'checkbox', 'wp_editor'
44
+	 *      'type' => 'int', //what "type" the value is (i.e. string, int etc)
45
+	 *      'required' => false, //boolean for whether the field is required
46
+	 *      'validation' => true, //boolean, whether to validate the field (todo)
47
+	 *      'value' => 'some_value_for_field', //what value is used for field
48
+	 *      'format' => '%d', //what format the value is (%d, %f, or %s)
49
+	 *      'db-col' => 'column_in_db' //used to indicate which column the field corresponds with in the db
50
+	 *      'options' => optiona, optionb || array('value' => 'label', '') //if the input type is "select", this allows you to set the args for the different <option> tags.
51
+	 *      'tabindex' => 1 //this allows you to set the tabindex for the field.
52
+	 *      'append_content' => '' //this allows you to send in html content to append to the field.
53
+	 *  )
54
+	 *  @param  array $id - used for defining unique identifiers for the form.
55
+	 *  @return string
56
+	 *  @todo: at some point we can break this down into other static methods to abstract it a bit better.
57
+	 */
58
+	public static function get_form_fields($input_vars = array(), $id = false)
59
+	{
60
+
61
+		if (empty($input_vars)) {
62
+			EE_Error::add_error(__('missing required variables for the form field generator', 'event_espresso'), __FILE__, __FUNCTION__, __LINE__);
63
+			return false;
64
+		}
65
+
66
+		// if you don't behave - this is what you're gonna get !!!
67
+		$close = true;
68
+		$output = '<ul>'; // this is for using built-in wp styles... watch carefully...
69
+
70
+		// cycle thru inputs
71
+		foreach ($input_vars as $input_key => $input_value) {
72
+			$defaults = array(
73
+				'name' => $input_key,
74
+				'label' => __('No label', 'event_espresso'),
75
+				'input' => 'hidden',
76
+				'type' => 'int',
77
+				'required' => false,
78
+				'validation' => true,
79
+				'value' => 'some_value_for_field',
80
+				'format' => '%d',
81
+				'db-col' => 'column_in_db',
82
+				'options' => array(),
83
+				'tabindex' => '',
84
+				'append_content' => ''
85
+				);
86
+
87
+			$input_value = wp_parse_args($input_value, $defaults);
88
+
89
+			// required fields get a *
90
+			$required = isset($input_value['required']) && $input_value['required'] ? ' <span>*</span>: ' : ': ';
91
+			// and the css class "required"
92
+			$css_class = isset($input_value['css_class']) ? $input_value['css_class'] : '';
93
+			$styles = $input_value['required'] ? 'required ' . $css_class : $css_class;
94
+
95
+			$field_id = ($id) ? $id . '-' . $input_key : $input_key;
96
+			$tabindex = !empty($input_value['tabindex']) ? ' tabindex="' . $input_value['tabindex'] . '"' : '';
97
+
98
+			// rows or cols?
99
+			$rows = isset($input_value['rows']) ? $input_value['rows'] : '10';
100
+			$cols = isset($input_value['cols']) ? $input_value['cols'] : '80';
101
+
102
+			// any content?
103
+			$append_content = $input_value['append_content'];
104
+
105
+			$output .= (!$close) ? '<ul>' : '';
106
+			$output .= '<li>';
107
+
108
+			// what type of input are we dealing with ?
109
+			switch ($input_value['input']) {
110
+				// text inputs
111
+				case 'text':
112
+					$output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
113
+					$output .= "\n\t\t\t" . '<input id="' . $field_id . '" class="' . $styles . '" type="text" value="' . esc_textarea($input_value['value']) . '" name="' . $input_value['name'] . '"' . $tabindex . '>';
114
+					break;
115
+
116
+				// dropdowns
117
+				case 'select':
118
+					$output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
119
+					$output .= "\n\t\t\t" . '<select id="' . $field_id . '" class="' . $styles . '" name="' . $input_value['name'] . '"' . $tabindex . '>';
120
+
121
+					if (is_array($input_value['options'])) {
122
+						$options = $input_value['options'];
123
+					} else {
124
+						$options = explode(',', $input_value['options']);
125
+					}
126
+
127
+					foreach ($options as $key => $value) {
128
+						$selected = isset($input_value['value']) && $input_value['value'] == $key ? 'selected=selected' : '';
129
+						// $key = str_replace( ' ', '_', sanitize_key( $value ));
130
+						$output .= "\n\t\t\t\t" . '<option ' . $selected . ' value="' . $key . '">' . $value . '</option>';
131
+					}
132
+					$output .= "\n\t\t\t" . '</select>';
133
+
134
+					break;
135
+
136
+				case 'textarea':
137
+					$output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
138
+					$output .= "\n\t\t\t" . '<textarea id="' . $field_id . '" class="' . $styles . '" rows="' . $rows . '" cols="' . $cols . '" name="' . $input_value['name'] . '"' . $tabindex . '>' . esc_textarea($input_value['value']) . '</textarea>';
139
+					break;
140
+
141
+				case 'hidden':
142
+					$close = false;
143
+					$output .= "</li></ul>";
144
+					$output .= "\n\t\t\t" . '<input id="' . $field_id . '" type="hidden" name="' . $input_value['name'] . '" value="' . $input_value['value'] . '">';
145
+					break;
146
+
147
+				case 'checkbox':
148
+					$checked = ( $input_value['value'] == 1 ) ? 'checked="checked"' : '';
149
+					$output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
150
+					$output .= "\n\t\t\t" . '<input id="' . $field_id . '" type="checkbox" name="' . $input_value['name'] . '" value="1"' . $checked . $tabindex . ' />';
151
+					break;
152
+
153
+				case 'wp_editor':
154
+					$close = false;
155
+					$editor_settings = array(
156
+						'textarea_name' => $input_value['name'],
157
+						'textarea_rows' => $rows,
158
+						'editor_class' => $styles,
159
+						'tabindex' => $input_value['tabindex']
160
+					);
161
+					$output .= '</li>';
162
+					$output .= '</ul>';
163
+					$output .= '<h4>' . $input_value['label'] . '</h4>';
164
+					if ($append_content) {
165
+						$output .= $append_content;
166
+					}
167
+					ob_start();
168
+					wp_editor($input_value['value'], $field_id, $editor_settings);
169
+					$editor = ob_get_contents();
170
+					ob_end_clean();
171
+					$output .= $editor;
172
+					break;
173
+			}
174
+			if ($append_content && $input_value['input'] !== 'wp_editor') {
175
+				$output .= $append_content;
176
+			}
177
+				$output .= ($close) ? '</li>' : '';
178
+		} // end foreach( $input_vars as $input_key => $input_value )
179
+		$output .= ($close) ? '</ul>' : '';
180
+
181
+		return $output;
182
+	}
183
+
184
+	/**
185
+	 * form_fields_array
186
+	 * This utility function assembles form fields from a given structured array with field information.
187
+	 * //TODO: This is an alternate generator that we may want to use instead.
188
+	 *
189
+	 * @param  array $fields structured array of fields to assemble in the following format:
190
+	 * [field_name] => array(
191
+	 *      ['label'] => 'label for field',
192
+	 *      ['labels'] => array('label_1', 'label_2'); //optional - if the field type is a multi select type of field you can indicated the labels for each option via this index
193
+	 *      ['extra_desc'] => 'extra description for the field', //optional
194
+	 *      ['type'] => 'textarea'|'text'|'wp_editor'|'checkbox'|'radio'|'hidden'|'select', //defaults to text
195
+	 *      ['value'] => 'value that goes in the field', //(if multi then this is an array of values and the 'default' paramater will be used for what is selected)
196
+	 *      ['default'] => 'default if the field type is multi (i.e. select or radios or checkboxes)',
197
+	 *      ['class'] => 'name-of-class(es)-for-input',
198
+	 *      ['classes'] => array('class_1', 'class_2'); //optional - if the field type is a multi select type of field you can indicate the css class for each option via this index.
199
+	 *      ['id'] => 'css-id-for-input') //defaults to 'field_name'
200
+	 *      ['unique_id'] => 1 //defaults to empty string.  This is useful for when the fields generated are going to be used in a loop and you want to make sure that the field identifiers are unique from each other.
201
+	 *      ['dimensions'] => array(100,300), //defaults to empty array.  This is used by field types such as textarea to indicate cols/rows.
202
+	 *      ['tabindex'] => '' //this allows you to set the tabindex for the field.
203
+	 *      ['wpeditor_args'] => array() //if the type of field is wpeditor then this can optionally contain an array of arguments for the editor setup.
204
+	 *
205
+	 * @return array         an array of inputs for form indexed by field name, and in the following structure:
206
+	 *     [field_name] => array( 'label' => '{label_html}', 'field' => '{input_html}'
207
+	 */
208
+	public static function get_form_fields_array($fields)
209
+	{
210
+
211
+		$form_fields = array();
212
+		$fields = (array) $fields;
213
+
214
+		foreach ($fields as $field_name => $field_atts) {
215
+			// defaults:
216
+			$defaults = array(
217
+				'label' => '',
218
+				'labels' => '',
219
+				'extra_desc' => '',
220
+				'type' => 'text',
221
+				'value' => '',
222
+				'default' => '',
223
+				'class' => '',
224
+				'classes' => '',
225
+				'id' => $field_name,
226
+				'unique_id' => '',
227
+				'dimensions' => array('10', '5'),
228
+				'tabindex' => '',
229
+				'wpeditor_args' => array()
230
+				);
231
+			// merge defaults with passed arguments
232
+			$_fields = wp_parse_args($field_atts, $defaults);
233
+			extract($_fields);
234
+			// generate label
235
+			$label = empty($label) ? '' : '<label for="' . $id . '">' . $label . '</label>';
236
+			// generate field name
237
+			$f_name = !empty($unique_id) ? $field_name . '[' . $unique_id . ']' : $field_name;
238
+
239
+			// tabindex
240
+			$tabindex_str = !empty($tabindex) ? ' tabindex="' . $tabindex . '"' : '';
241
+
242
+			// we determine what we're building based on the type
243
+			switch ($type) {
244
+				case 'textarea':
245
+						$fld = '<textarea id="' . $id . '" class="' . $class . '" rows="' . $dimensions[1] . '" cols="' . $dimensions[0] . '" name="' . $f_name . '"' . $tabindex_str . '>' . $value . '</textarea>';
246
+						$fld .= $extra_desc;
247
+					break;
248
+
249
+				case 'checkbox':
250
+						$c_input = '';
251
+					if (is_array($value)) {
252
+						foreach ($value as $key => $val) {
253
+							$c_id = $field_name . '_' . $value;
254
+							$c_class = isset($classes[ $key ]) ? ' class="' . $classes[ $key ] . '" ' : '';
255
+							$c_label = isset($labels[ $key ]) ? '<label for="' . $c_id . '">' . $labels[ $key ] . '</label>' : '';
256
+							$checked = !empty($default) && $default == $val ? ' checked="checked" ' : '';
257
+							$c_input .= '<input name="' . $f_name . '[]" type="checkbox" id="' . $c_id . '"' . $c_class . 'value="' . $val . '"' . $checked . $tabindex_str . ' />' . "\n" . $c_label;
258
+						}
259
+						$fld = $c_input;
260
+					} else {
261
+						$checked = !empty($default) && $default == $val ? 'checked="checked" ' : '';
262
+						$fld = '<input name="' . $f_name . '" type="checkbox" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $checked . $tabindex_str . ' />' . "\n";
263
+					}
264
+					break;
265
+
266
+				case 'radio':
267
+						$c_input = '';
268
+					if (is_array($value)) {
269
+						foreach ($value as $key => $val) {
270
+							$c_id = $field_name . '_' . $value;
271
+							$c_class = isset($classes[ $key ]) ? 'class="' . $classes[ $key ] . '" ' : '';
272
+							$c_label = isset($labels[ $key ]) ? '<label for="' . $c_id . '">' . $labels[ $key ] . '</label>' : '';
273
+							$checked = !empty($default) && $default == $val ? ' checked="checked" ' : '';
274
+							$c_input .= '<input name="' . $f_name . '" type="checkbox" id="' . $c_id . '"' . $c_class . 'value="' . $val . '"' . $checked . $tabindex_str . ' />' . "\n" . $c_label;
275
+						}
276
+						$fld = $c_input;
277
+					} else {
278
+						$checked = !empty($default) && $default == $val ? 'checked="checked" ' : '';
279
+						$fld = '<input name="' . $f_name . '" type="checkbox" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $checked . $tabindex_str . ' />' . "\n";
280
+					}
281
+					break;
282
+
283
+				case 'hidden':
284
+						$fld = '<input name="' . $f_name . '" type="hidden" id="' . $id . '" class="' . $class . '" value="' . $value . '" />' . "\n";
285
+					break;
286
+
287
+				case 'select':
288
+						$fld = '<select name="' . $f_name . '" class="' . $class . '" id="' . $id . '"' . $tabindex_str . '>' . "\n";
289
+					foreach ($value as $key => $val) {
290
+						$checked = !empty($default) && $default == $val ? ' selected="selected"' : '';
291
+						$fld .= "\t" . '<option value="' . $val . '"' . $checked . '>' . $labels[ $key ] . '</option>' . "\n";
292
+					}
293
+						$fld .= '</select>';
294
+					break;
295
+
296
+				case 'wp_editor':
297
+						$editor_settings = array(
298
+							'textarea_name' => $f_name,
299
+							'textarea_rows' => $dimensions[1],
300
+							'editor_class' => $class,
301
+							'tabindex' => $tabindex
302
+							);
303
+						$editor_settings = array_merge($wpeditor_args, $editor_settings);
304
+						ob_start();
305
+						wp_editor($value, $id, $editor_settings);
306
+						$editor = ob_get_contents();
307
+						ob_end_clean();
308
+						$fld = $editor;
309
+					break;
310
+
311
+				default: // 'text fields'
312
+						$fld = '<input name="' . $f_name . '" type="text" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $tabindex_str . ' />' . "\n";
313
+						$fld .= $extra_desc;
314
+			}
315
+
316
+			$form_fields[ $field_name ] = array( 'label' => $label, 'field' => $fld );
317
+		}
318
+
319
+		return $form_fields;
320
+	}
321
+
322
+
323
+
324
+
325
+
326
+
327
+	/**
328
+	 * espresso admin page select_input
329
+	 * Turns an array into a select fields
330
+	 *
331
+	 * @static
332
+	 * @access public
333
+	 * @param  string  $name       field name
334
+	 * @param  array  $values     option values, numbered array starting at 0, where each value is an array with a key 'text' (meaning text to display' and 'id' (meaning the internal value)
335
+	 * eg: array(1=>array('text'=>'Monday','id'=>1),2=>array('text'=>'Tuesday','id'=>2)...). or as an array of key-value pairs, where the key is to be used for the
336
+	 * select input's name, and the value will be the text shown to the user.  Optionally you can also include an additional key of "class" which will add a specific class to the option for that value.
337
+	 * @param  string  $default    default value
338
+	 * @param  string  $parameters extra paramaters
339
+	 * @param  string  $class      css class
340
+	 * @param  boolean $autosize   whether to autosize the select or not
341
+	 * @return string              html string for the select input
342
+	 */
343
+	public static function select_input($name, $values, $default = '', $parameters = '', $class = '', $autosize = true)
344
+	{
345
+		// if $values was submitted in the wrong format, convert it over
346
+		if (!empty($values) && (!array_key_exists(0, $values) || !is_array($values[0]))) {
347
+			$converted_values = array();
348
+			foreach ($values as $id => $text) {
349
+				$converted_values[] = array('id' => $id,'text' => $text);
350
+			}
351
+			$values = $converted_values;
352
+		}
353
+
354
+		$field = '<select id="' . EEH_Formatter::ee_tep_output_string($name) . '" name="' . EEH_Formatter::ee_tep_output_string($name) . '"';
355
+		// Debug
356
+		// EEH_Debug_Tools::printr( $values, '$values  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
357
+		if (EEH_Formatter::ee_tep_not_null($parameters)) {
358
+			$field .= ' ' . $parameters;
359
+		}
360
+		if ($autosize) {
361
+			$size = 'med';
362
+			for ($ii = 0, $ni = sizeof($values); $ii < $ni; $ii++) {
363
+				if ($values[ $ii ]['text']) {
364
+					if (strlen($values[ $ii ]['text']) > 5) {
365
+						$size = 'wide';
366
+					}
367
+				}
368
+			}
369
+		} else {
370
+			$size = '';
371
+		}
372
+
373
+		$field .= ' class="' . $class . ' ' . $size . '">';
374
+
375
+		if (empty($default) && isset($GLOBALS[ $name ])) {
376
+			$default = stripslashes($GLOBALS[ $name ]);
377
+		}
378
+
379
+
380
+		for ($i = 0, $n = sizeof($values); $i < $n; $i++) {
381
+			$field .= '<option value="' . $values[ $i ]['id'] . '"';
382
+			if ($default == $values[ $i ]['id']) {
383
+				$field .= ' selected = "selected"';
384
+			}
385
+			if (isset($values[ $i ]['class'])) {
386
+				$field .= ' class="' . $values[ $i ]['class'] . '"';
387
+			}
388
+			$field .= '>' . $values[ $i ]['text'] . '</option>';
389
+		}
390
+		$field .= '</select>';
391
+
392
+		return $field;
393
+	}
394
+
395
+
396
+
397
+
398
+
399
+
400
+	/**
401
+	 * generate_question_groups_html
402
+	 *
403
+	 * @param string $question_groups
404
+	 * @return string HTML
405
+	 */
406
+	public static function generate_question_groups_html($question_groups = array(), $group_wrapper = 'fieldset')
407
+	{
408
+
409
+		$html = '';
410
+		$before_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', '');
411
+		$after_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', '');
412
+
413
+		if (! empty($question_groups)) {
414
+			// EEH_Debug_Tools::printr( $question_groups, '$question_groups  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
415
+			// loop thru question groups
416
+			foreach ($question_groups as $QSG) {
417
+				// check that questions exist
418
+				if (! empty($QSG['QSG_questions'])) {
419
+					// use fieldsets
420
+					$html .= "\n\t" . '<' . $group_wrapper . ' class="espresso-question-group-wrap" id="' . $QSG['QSG_identifier'] . '">';
421
+					// group_name
422
+					$html .= $QSG['QSG_show_group_name'] ? "\n\t\t" . '<h5 class="espresso-question-group-title-h5 section-title">' . self::prep_answer($QSG['QSG_name']) . '</h5>' : '';
423
+					// group_desc
424
+					$html .= $QSG['QSG_show_group_desc'] && ! empty($QSG['QSG_desc']) ? '<div class="espresso-question-group-desc-pg">' . self::prep_answer($QSG['QSG_desc']) . '</div>' : '';
425
+
426
+					$html .= $before_question_group_questions;
427
+					// loop thru questions
428
+					foreach ($QSG['QSG_questions'] as $question) {
429 429
 //                      EEH_Debug_Tools::printr( $question, '$question  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
430
-                        $QFI = new EE_Question_Form_Input(
431
-                            $question['qst_obj'],
432
-                            $question['ans_obj'],
433
-                            $question
434
-                        );
435
-                        $html .= self::generate_form_input($QFI);
436
-                    }
437
-                    $html .= $after_question_group_questions;
438
-                    $html .= "\n\t" . '</' . $group_wrapper . '>';
439
-                }
440
-            }
441
-        }
442
-
443
-        return $html;
444
-    }
445
-
446
-
447
-
448
-    /**
449
-     * generate_question_groups_html
450
-     *
451
-     * @param array         $question_groups
452
-     * @param array        $q_meta
453
-     * @param bool         $from_admin
454
-     * @param string       $group_wrapper
455
-     * @return string HTML
456
-     */
457
-    public static function generate_question_groups_html2($question_groups = array(), $q_meta = array(), $from_admin = false, $group_wrapper = 'fieldset')
458
-    {
459
-
460
-        $html = '';
461
-        $before_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', '');
462
-        $after_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', '');
463
-
464
-        $default_q_meta = array(
465
-                'att_nmbr' => 1,
466
-                'ticket_id' => '',
467
-                'input_name' => '',
468
-                'input_id' => '',
469
-                'input_class' => ''
470
-        );
471
-        $q_meta = array_merge($default_q_meta, $q_meta);
472
-        // EEH_Debug_Tools::printr( $q_meta, '$q_meta  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
473
-
474
-        if (! empty($question_groups)) {
430
+						$QFI = new EE_Question_Form_Input(
431
+							$question['qst_obj'],
432
+							$question['ans_obj'],
433
+							$question
434
+						);
435
+						$html .= self::generate_form_input($QFI);
436
+					}
437
+					$html .= $after_question_group_questions;
438
+					$html .= "\n\t" . '</' . $group_wrapper . '>';
439
+				}
440
+			}
441
+		}
442
+
443
+		return $html;
444
+	}
445
+
446
+
447
+
448
+	/**
449
+	 * generate_question_groups_html
450
+	 *
451
+	 * @param array         $question_groups
452
+	 * @param array        $q_meta
453
+	 * @param bool         $from_admin
454
+	 * @param string       $group_wrapper
455
+	 * @return string HTML
456
+	 */
457
+	public static function generate_question_groups_html2($question_groups = array(), $q_meta = array(), $from_admin = false, $group_wrapper = 'fieldset')
458
+	{
459
+
460
+		$html = '';
461
+		$before_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', '');
462
+		$after_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', '');
463
+
464
+		$default_q_meta = array(
465
+				'att_nmbr' => 1,
466
+				'ticket_id' => '',
467
+				'input_name' => '',
468
+				'input_id' => '',
469
+				'input_class' => ''
470
+		);
471
+		$q_meta = array_merge($default_q_meta, $q_meta);
472
+		// EEH_Debug_Tools::printr( $q_meta, '$q_meta  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
473
+
474
+		if (! empty($question_groups)) {
475 475
 //          EEH_Debug_Tools::printr( $question_groups, '$question_groups  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
476
-            // loop thru question groups
477
-            foreach ($question_groups as $QSG) {
478
-                if ($QSG instanceof EE_Question_Group) {
479
-                    // check that questions exist
480
-
481
-                    $where = array( 'QST_deleted' => 0 );
482
-                    if (! $from_admin) {
483
-                        $where['QST_admin_only'] = 0;
484
-                    }
485
-                    $questions = $QSG->questions(array( $where, 'order_by' => array( 'Question_Group_Question.QGQ_order' => 'ASC' )));
486
-                    if (! empty($questions)) {
487
-                        // use fieldsets
488
-                        $html .= "\n\t" . '<' . $group_wrapper . ' class="espresso-question-group-wrap" id="' . $QSG->get('QSG_identifier') . '">';
489
-                        // group_name
490
-                        if ($QSG->show_group_name()) {
491
-                            $html .=  "\n\t\t" . '<h5 class="espresso-question-group-title-h5 section-title">' . $QSG->get_pretty('QSG_name') . '</h5>';
492
-                        }
493
-                        // group_desc
494
-                        if ($QSG->show_group_desc()) {
495
-                            $html .=  '<div class="espresso-question-group-desc-pg">' . $QSG->get_pretty('QSG_desc') . '</div>';
496
-                        }
497
-
498
-                        $html .= $before_question_group_questions;
499
-                        // loop thru questions
500
-                        foreach ($questions as $QST) {
501
-                            $qstn_id = $QST->is_system_question() ? $QST->system_ID() : $QST->ID();
502
-
503
-                            $answer = null;
504
-
505
-                            if (isset($_GET['qstn']) && isset($q_meta['input_id']) && isset($q_meta['att_nmbr'])) {
506
-                                // check for answer in $_GET in case we are reprocessing a form after an error
507
-                                if (isset($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ])) {
508
-                                    $answer = is_array($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ]) ? $_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ] : sanitize_text_field($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ]);
509
-                                }
510
-                            } elseif (isset($q_meta['attendee']) && $q_meta['attendee']) {
511
-                                // attendee data from the session
512
-                                $answer = isset($q_meta['attendee'][ $qstn_id ]) ? $q_meta['attendee'][ $qstn_id ] : null;
513
-                            }
514
-
515
-
516
-
517
-                            $QFI = new EE_Question_Form_Input(
518
-                                $QST,
519
-                                EE_Answer::new_instance(array(
520
-                                            'ANS_ID' => 0,
521
-                                            'QST_ID' => 0,
522
-                                            'REG_ID' => 0,
523
-                                            'ANS_value' => $answer
524
-                                    )),
525
-                                $q_meta
526
-                            );
527
-                            // EEH_Debug_Tools::printr( $QFI, '$QFI  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
528
-                            $html .= self::generate_form_input($QFI);
529
-                        }
530
-                        $html .= $after_question_group_questions;
531
-                        $html .= "\n\t" . '</' . $group_wrapper . '>';
532
-                    }
533
-                }
534
-            }
535
-        }
536
-        return $html;
537
-    }
538
-
539
-
540
-
541
-
542
-
543
-
544
-    /**
545
-     * generate_form_input
546
-     *
547
-     * @param EE_Question_Form_Input $QFI
548
-     * @return string HTML
549
-     */
550
-    public static function generate_form_input(EE_Question_Form_Input $QFI)
551
-    {
552
-        if (isset($QFI->QST_admin_only) && $QFI->QST_admin_only && ! is_admin()) {
553
-            return '';
554
-        }
555
-
556
-        $QFI = self::_load_system_dropdowns($QFI);
557
-        $QFI = self::_load_specialized_dropdowns($QFI);
558
-
559
-        // we also need to verify
560
-
561
-        $display_text = $QFI->get('QST_display_text');
562
-        $input_name = $QFI->get('QST_input_name');
563
-        $answer = EE_Registry::instance()->REQ->is_set($input_name) ? EE_Registry::instance()->REQ->get($input_name) : $QFI->get('ANS_value');
564
-        $input_id = $QFI->get('QST_input_id');
565
-        $input_class = $QFI->get('QST_input_class');
476
+			// loop thru question groups
477
+			foreach ($question_groups as $QSG) {
478
+				if ($QSG instanceof EE_Question_Group) {
479
+					// check that questions exist
480
+
481
+					$where = array( 'QST_deleted' => 0 );
482
+					if (! $from_admin) {
483
+						$where['QST_admin_only'] = 0;
484
+					}
485
+					$questions = $QSG->questions(array( $where, 'order_by' => array( 'Question_Group_Question.QGQ_order' => 'ASC' )));
486
+					if (! empty($questions)) {
487
+						// use fieldsets
488
+						$html .= "\n\t" . '<' . $group_wrapper . ' class="espresso-question-group-wrap" id="' . $QSG->get('QSG_identifier') . '">';
489
+						// group_name
490
+						if ($QSG->show_group_name()) {
491
+							$html .=  "\n\t\t" . '<h5 class="espresso-question-group-title-h5 section-title">' . $QSG->get_pretty('QSG_name') . '</h5>';
492
+						}
493
+						// group_desc
494
+						if ($QSG->show_group_desc()) {
495
+							$html .=  '<div class="espresso-question-group-desc-pg">' . $QSG->get_pretty('QSG_desc') . '</div>';
496
+						}
497
+
498
+						$html .= $before_question_group_questions;
499
+						// loop thru questions
500
+						foreach ($questions as $QST) {
501
+							$qstn_id = $QST->is_system_question() ? $QST->system_ID() : $QST->ID();
502
+
503
+							$answer = null;
504
+
505
+							if (isset($_GET['qstn']) && isset($q_meta['input_id']) && isset($q_meta['att_nmbr'])) {
506
+								// check for answer in $_GET in case we are reprocessing a form after an error
507
+								if (isset($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ])) {
508
+									$answer = is_array($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ]) ? $_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ] : sanitize_text_field($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ]);
509
+								}
510
+							} elseif (isset($q_meta['attendee']) && $q_meta['attendee']) {
511
+								// attendee data from the session
512
+								$answer = isset($q_meta['attendee'][ $qstn_id ]) ? $q_meta['attendee'][ $qstn_id ] : null;
513
+							}
514
+
515
+
516
+
517
+							$QFI = new EE_Question_Form_Input(
518
+								$QST,
519
+								EE_Answer::new_instance(array(
520
+											'ANS_ID' => 0,
521
+											'QST_ID' => 0,
522
+											'REG_ID' => 0,
523
+											'ANS_value' => $answer
524
+									)),
525
+								$q_meta
526
+							);
527
+							// EEH_Debug_Tools::printr( $QFI, '$QFI  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
528
+							$html .= self::generate_form_input($QFI);
529
+						}
530
+						$html .= $after_question_group_questions;
531
+						$html .= "\n\t" . '</' . $group_wrapper . '>';
532
+					}
533
+				}
534
+			}
535
+		}
536
+		return $html;
537
+	}
538
+
539
+
540
+
541
+
542
+
543
+
544
+	/**
545
+	 * generate_form_input
546
+	 *
547
+	 * @param EE_Question_Form_Input $QFI
548
+	 * @return string HTML
549
+	 */
550
+	public static function generate_form_input(EE_Question_Form_Input $QFI)
551
+	{
552
+		if (isset($QFI->QST_admin_only) && $QFI->QST_admin_only && ! is_admin()) {
553
+			return '';
554
+		}
555
+
556
+		$QFI = self::_load_system_dropdowns($QFI);
557
+		$QFI = self::_load_specialized_dropdowns($QFI);
558
+
559
+		// we also need to verify
560
+
561
+		$display_text = $QFI->get('QST_display_text');
562
+		$input_name = $QFI->get('QST_input_name');
563
+		$answer = EE_Registry::instance()->REQ->is_set($input_name) ? EE_Registry::instance()->REQ->get($input_name) : $QFI->get('ANS_value');
564
+		$input_id = $QFI->get('QST_input_id');
565
+		$input_class = $QFI->get('QST_input_class');
566 566
 //      $disabled = $QFI->get('QST_disabled') ? ' disabled="disabled"' : '';
567
-        $disabled = $QFI->get('QST_disabled') ? true : false;
568
-        $required_label = apply_filters(' FHEE__EEH_Form_Fields__generate_form_input__required_label', '<em>*</em>');
569
-        $QST_required = $QFI->get('QST_required');
570
-        $required = $QST_required ? array( 'label' => $required_label, 'class' => 'required needs-value', 'title' => $QST_required ) : array();
571
-        $use_html_entities = $QFI->get_meta('htmlentities');
572
-        $required_text = $QFI->get('QST_required_text') != '' ? $QFI->get('QST_required_text') : __('This field is required', 'event_espresso');
573
-        $required_text = $QST_required ? "\n\t\t\t" . '<div class="required-text hidden">' . self::prep_answer($required_text, $use_html_entities) . '</div>' : '';
574
-        $label_class = 'espresso-form-input-lbl';
575
-        $QST_options = $QFI->options(true, $answer);
576
-        $options = is_array($QST_options) ? self::prep_answer_options($QST_options) : array();
577
-        $system_ID = $QFI->get('QST_system');
578
-        $label_b4 = $QFI->get_meta('label_b4');
579
-        $use_desc_4_label = $QFI->get_meta('use_desc_4_label');
580
-
581
-
582
-        switch ($QFI->get('QST_type')) {
583
-            case 'TEXTAREA':
584
-                return EEH_Form_Fields::textarea($display_text, $answer, $input_name, $input_id, $input_class, array(), $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities);
585
-                break;
586
-
587
-            case 'DROPDOWN':
588
-                return EEH_Form_Fields::select($display_text, $answer, $options, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities, true);
589
-                break;
590
-
591
-
592
-            case 'RADIO_BTN':
593
-                return EEH_Form_Fields::radio($display_text, $answer, $options, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities, $label_b4, $use_desc_4_label);
594
-                break;
595
-
596
-            case 'CHECKBOX':
597
-                return EEH_Form_Fields::checkbox($display_text, $answer, $options, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $label_b4, $system_ID, $use_html_entities);
598
-                break;
599
-
600
-            case 'DATE':
601
-                return EEH_Form_Fields::datepicker($display_text, $answer, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities);
602
-                break;
603
-
604
-            case 'TEXT':
605
-            default:
606
-                return EEH_Form_Fields::text($display_text, $answer, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities);
607
-                break;
608
-        }
609
-    }
610
-
611
-
612
-
613
-
614
-
615
-
616
-    /**
617
-     * generates HTML for a form text input
618
-     *
619
-     * @param string $question  label content
620
-     * @param string $answer        form input value attribute
621
-     * @param string $name          form input name attribute
622
-     * @param string $id                form input css id attribute
623
-     * @param string $class             form input css class attribute
624
-     * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
625
-     * @param string $label_class   css class attribute for the label
626
-     * @param string $disabled      disabled="disabled" or null
627
-     * @return string HTML
628
-     */
629
-    public static function text($question = false, $answer = null, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
630
-    {
631
-        // need these
632
-        if (! $question || ! $name) {
633
-            return null;
634
-        }
635
-        // prep the answer
636
-        $answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
637
-        // prep the required array
638
-        $required = self::prep_required($required);
639
-        // set disabled tag
640
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
641
-        // ya gots ta have style man!!!
642
-        $txt_class = is_admin() ? 'regular-text' : 'espresso-text-inp';
643
-        $class = empty($class) ? $txt_class : $class;
644
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
645
-        $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
646
-
647
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
648
-        // filter label but ensure required text comes before it
649
-        $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
650
-
651
-        $input_html = "\n\t\t\t" . '<input type="text" name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" value="' . esc_attr($answer) . '"  title="' . esc_attr($required['msg']) . '" ' . $disabled . ' ' . $extra . '/>';
652
-
653
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
654
-        return  $label_html . $input_html;
655
-    }
656
-
657
-
658
-
659
-
660
-
661
-    /**
662
-     * generates HTML for a form textarea
663
-     *
664
-     * @param string $question      label content
665
-     * @param string $answer        form input value attribute
666
-     * @param string $name          form input name attribute
667
-     * @param string $id                form input css id attribute
668
-     * @param string $class             form input css class attribute
669
-     * @param array $dimensions array of form input rows and cols attributes : array( 'rows' => 3, 'cols' => 40 )
670
-     * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
671
-     * @param string $label_class   css class attribute for the label
672
-     * @param string $disabled      disabled="disabled" or null
673
-     * @return string HTML
674
-     */
675
-    public static function textarea($question = false, $answer = null, $name = false, $id = '', $class = '', $dimensions = false, $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
676
-    {
677
-        // need these
678
-        if (! $question || ! $name) {
679
-            return null;
680
-        }
681
-        // prep the answer
682
-        $answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
683
-        // prep the required array
684
-        $required = self::prep_required($required);
685
-        // make sure $dimensions is an array
686
-        $dimensions = is_array($dimensions) ? $dimensions : array();
687
-        // and set some defaults
688
-        $dimensions = array_merge(array( 'rows' => 3, 'cols' => 40 ), $dimensions);
689
-        // set disabled tag
690
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
691
-        // ya gots ta have style man!!!
692
-        $txt_class = is_admin() ? 'regular-text' : 'espresso-textarea-inp';
693
-        $class = empty($class) ? $txt_class : $class;
694
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
695
-        $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
696
-
697
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
698
-        // filter label but ensure required text comes before it
699
-        $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
700
-
701
-        $input_html = "\n\t\t\t" . '<textarea name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" rows="' . $dimensions['rows'] . '" cols="' . $dimensions['cols'] . '"  title="' . $required['msg'] . '" ' . $disabled . ' ' . $extra . '>' . $answer . '</textarea>';
702
-
703
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
704
-        return  $label_html . $input_html;
705
-    }
706
-
707
-
708
-
709
-
710
-
711
-
712
-    /**
713
-     * generates HTML for a form select input
714
-     *
715
-     * @param string $question      label content
716
-     * @param string $answer        form input value attribute
717
-     * @param array $options            array of answer options where array key = option value and array value = option display text
718
-     * @param string $name          form input name attribute
719
-     * @param string $id                form input css id attribute
720
-     * @param string $class             form input css class attribute
721
-     * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
722
-     * @param string $label_class   css class attribute for the label
723
-     * @param string $disabled      disabled="disabled" or null
724
-     * @return string HTML
725
-     */
726
-    public static function select($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true, $add_please_select_option = false)
727
-    {
728
-
729
-        // need these
730
-        if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
731
-            return null;
732
-        }
733
-        // prep the answer
734
-        $answer = is_array($answer) ? self::prep_answer(array_shift($answer), $use_html_entities) : self::prep_answer($answer, $use_html_entities);
735
-        // prep the required array
736
-        $required = self::prep_required($required);
737
-        // set disabled tag
738
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
739
-        // ya gots ta have style man!!!
740
-        $txt_class = is_admin() ? 'wide' : 'espresso-select-inp';
741
-        $class = empty($class) ? $txt_class : $class;
742
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
743
-        $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
744
-
745
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
746
-        // filter label but ensure required text comes before it
747
-        $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
748
-
749
-        $input_html = "\n\t\t\t" . '<select name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" title="' . esc_attr($required['msg']) . '"' . $disabled . ' ' . $extra . '>';
750
-        // recursively count array elements, to determine total number of options
751
-        $only_option = count($options, 1) == 1 ? true : false;
752
-        if (! $only_option) {
753
-            // if there is NO answer set and there are multiple options to choose from, then set the "please select" message as selected
754
-            $selected = $answer === null ? ' selected="selected"' : '';
755
-            $input_html .= $add_please_select_option ? "\n\t\t\t\t" . '<option value=""' . $selected . '>' . __(' - please select - ', 'event_espresso') . '</option>' : '';
756
-        }
757
-        foreach ($options as $key => $value) {
758
-            // if value is an array, then create option groups, else create regular ol' options
759
-            $input_html .= is_array($value) ? self::_generate_select_option_group($key, $value, $answer, $use_html_entities) : self::_generate_select_option($value->value(), $value->desc(), $answer, $only_option, $use_html_entities);
760
-        }
761
-
762
-        $input_html .= "\n\t\t\t" . '</select>';
763
-
764
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__select__before_end_wrapper', $input_html, $question, $answer, $name, $id, $class, $system_ID);
765
-
766
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
767
-        return  $label_html . $input_html;
768
-    }
769
-
770
-
771
-
772
-    /**
773
-     *  _generate_select_option_group
774
-     *
775
-     *  if  $value for a select box is an array, then the key will be used as the optgroup label
776
-     *  and the value array will be looped thru and the elements sent to _generate_select_option
777
-     *
778
-     * @param mixed $opt_group
779
-     * @param mixed $QSOs
780
-     * @param mixed $answer
781
-     * @param boolean $use_html_entities
782
-     * @return string
783
-     */
784
-    private static function _generate_select_option_group($opt_group, $QSOs, $answer, $use_html_entities = true)
785
-    {
786
-        $html = "\n\t\t\t\t" . '<optgroup label="' . self::prep_option_value($opt_group) . '">';
787
-        foreach ($QSOs as $QSO) {
788
-            $html .= self::_generate_select_option($QSO->value(), $QSO->desc(), $answer, false, $use_html_entities);
789
-        }
790
-        $html .= "\n\t\t\t\t" . '</optgroup>';
791
-        return $html;
792
-    }
793
-
794
-
795
-
796
-    /**
797
-     *  _generate_select_option
798
-     * @param mixed $key
799
-     * @param mixed $value
800
-     * @param mixed $answer
801
-     * @param int $only_option
802
-     * @param boolean $use_html_entities
803
-     * @return string
804
-     */
805
-    private static function _generate_select_option($key, $value, $answer, $only_option = false, $use_html_entities = true)
806
-    {
807
-        $key = self::prep_answer($key, $use_html_entities);
808
-        $value = self::prep_answer($value, $use_html_entities);
809
-        $value = ! empty($value) ? $value : $key;
810
-        $selected = ( $answer == $key || $only_option ) ? ' selected="selected"' : '';
811
-        return "\n\t\t\t\t" . '<option value="' . self::prep_option_value($key) . '"' . $selected . '> ' . $value . '&nbsp;&nbsp;&nbsp;</option>';
812
-    }
813
-
814
-
815
-
816
-    /**
817
-     * generates HTML for form radio button inputs
818
-     *
819
-     * @param bool|string $question    label content
820
-     * @param string      $answer      form input value attribute
821
-     * @param array|bool  $options     array of answer options where array key = option value and array value = option display text
822
-     * @param bool|string $name        form input name attribute
823
-     * @param string      $id          form input css id attribute
824
-     * @param string      $class       form input css class attribute
825
-     * @param array|bool  $required    'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
826
-     * @param string      $required_text
827
-     * @param string      $label_class css class attribute for the label
828
-     * @param bool|string $disabled    disabled="disabled" or null
829
-     * @param bool        $system_ID
830
-     * @param bool        $use_html_entities
831
-     * @param bool        $label_b4
832
-     * @param bool        $use_desc_4_label
833
-     * @return string HTML
834
-     */
835
-    public static function radio($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true, $label_b4 = false, $use_desc_4_label = false)
836
-    {
837
-        // need these
838
-        if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
839
-            return null;
840
-        }
841
-        // prep the answer
842
-        $answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
843
-        // prep the required array
844
-        $required = self::prep_required($required);
845
-        // set disabled tag
846
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
847
-        // ya gots ta have style man!!!
848
-        $radio_class = is_admin() ? 'ee-admin-radio-lbl' : $label_class;
849
-        $class = ! empty($class) ? $class : 'espresso-radio-btn-inp';
850
-        $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
851
-
852
-        $label_html = $required_text . "\n\t\t\t" . '<label class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label> ';
853
-        // filter label but ensure required text comes before it
854
-        $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
855
-
856
-        $input_html = "\n\t\t\t" . '<ul id="' . $id . '-ul" class="espresso-radio-btn-options-ul ' . $label_class . ' ' . $class . '-ul">';
857
-
858
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
859
-        $class .= ! empty($required['class']) ? ' ' . $required['class'] : '';
860
-
861
-        foreach ($options as $OPT) {
862
-            if ($OPT instanceof EE_Question_Option) {
863
-                $value = self::prep_option_value($OPT->value());
864
-                $label = $use_desc_4_label ? $OPT->desc() : $OPT->value();
865
-                $size = $use_desc_4_label ? self::get_label_size_class($OPT->value() . ' ' . $OPT->desc()) : self::get_label_size_class($OPT->value());
866
-                $desc = $OPT->desc();// no self::prep_answer
867
-                $answer = is_numeric($value) && empty($answer) ? 0 : $answer;
868
-                $checked = (string) $value == (string) $answer ? ' checked="checked"' : '';
869
-                $opt = '-' . sanitize_key($value);
870
-
871
-                $input_html .= "\n\t\t\t\t" . '<li' . $size . '>';
872
-                $input_html .= "\n\t\t\t\t\t" . '<label class="' . $radio_class . ' espresso-radio-btn-lbl">';
873
-                $input_html .= $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $label . '</span>' : '';
874
-                $input_html .= "\n\t\t\t\t\t\t" . '<input type="radio" name="' . $name . '" id="' . $id . $opt . '" class="' . $class . '" value="' . $value . '" title="' . esc_attr($required['msg']) . '" ' . $disabled . $checked . ' ' . $extra . '/>';
875
-                $input_html .= ! $label_b4  ? "\n\t\t\t\t\t\t" . '<span class="espresso-radio-btn-desc">' . $label . '</span>' : '';
876
-                $input_html .= "\n\t\t\t\t\t" . '</label>';
877
-                $input_html .= $use_desc_4_label ? '' : '<span class="espresso-radio-btn-option-desc small-text grey-text">' . $desc . '</span>';
878
-                $input_html .= "\n\t\t\t\t" . '</li>';
879
-            }
880
-        }
881
-
882
-        $input_html .= "\n\t\t\t" . '</ul>';
883
-
884
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
885
-        return  $label_html . $input_html;
886
-    }
887
-
888
-
889
-
890
-
891
-
892
-
893
-    /**
894
-     * generates HTML for form checkbox inputs
895
-     *
896
-     * @param string $question      label content
897
-     * @param string $answer        form input value attribute
898
-     * @param array $options            array of options where array key = option value and array value = option display text
899
-     * @param string $name          form input name attribute
900
-     * @param string $id                form input css id attribute
901
-     * @param string $class             form input css class attribute
902
-     * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
903
-     * @param string $label_class   css class attribute for the label
904
-     * @param string $disabled      disabled="disabled" or null
905
-     * @return string HTML
906
-     */
907
-    public static function checkbox($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $label_b4 = false, $system_ID = false, $use_html_entities = true)
908
-    {
909
-        // need these
910
-        if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
911
-            return null;
912
-        }
913
-        $answer = maybe_unserialize($answer);
914
-
915
-        // prep the answer(s)
916
-        $answer = is_array($answer) ? $answer : array( sanitize_key($answer) => $answer );
917
-
918
-        foreach ($answer as $key => $value) {
919
-            $key = self::prep_option_value($key);
920
-            $answer[ $key ] = self::prep_answer($value, $use_html_entities);
921
-        }
922
-
923
-        // prep the required array
924
-        $required = self::prep_required($required);
925
-        // set disabled tag
926
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
927
-        // ya gots ta have style man!!!
928
-        $radio_class = is_admin() ? 'ee-admin-radio-lbl' : $label_class;
929
-        $class = empty($class) ? 'espresso-radio-btn-inp' : $class;
930
-        $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
931
-
932
-        $label_html = $required_text . "\n\t\t\t" . '<label class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label> ';
933
-        // filter label but ensure required text comes before it
934
-        $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
935
-
936
-        $input_html = "\n\t\t\t" . '<ul id="' . $id . '-ul" class="espresso-checkbox-options-ul ' . $label_class . ' ' . $class . '-ul">';
937
-
938
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
939
-        $class .= ! empty($required['class']) ? ' ' . $required['class'] : '';
940
-
941
-        foreach ($options as $OPT) {
942
-            $value = $OPT->value();// self::prep_option_value( $OPT->value() );
943
-            $size = self::get_label_size_class($OPT->value() . ' ' . $OPT->desc());
944
-            $text = self::prep_answer($OPT->value());
945
-            $desc = $OPT->desc() ;
946
-            $opt = '-' . sanitize_key($value);
947
-
948
-            $checked = is_array($answer) && in_array($text, $answer) ? ' checked="checked"' : '';
949
-
950
-            $input_html .= "\n\t\t\t\t" . '<li' . $size . '>';
951
-            $input_html .= "\n\t\t\t\t\t" . '<label class="' . $radio_class . ' espresso-checkbox-lbl">';
952
-            $input_html .= $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $text . '</span>' : '';
953
-            $input_html .= "\n\t\t\t\t\t\t" . '<input type="checkbox" name="' . $name . '[' . $OPT->ID() . ']" id="' . $id . $opt . '" class="' . $class . '" value="' . $value . '" title="' . esc_attr($required['msg']) . '" ' . $disabled . $checked . ' ' . $extra . '/>';
954
-            $input_html .= ! $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $text . '</span>' : '';
955
-            $input_html .= "\n\t\t\t\t\t" . '</label>';
956
-            if (! empty($desc) && $desc != $text) {
957
-                $input_html .= "\n\t\t\t\t\t" . ' &nbsp; <br/><div class="espresso-checkbox-option-desc small-text grey-text">' . $desc . '</div>';
958
-            }
959
-            $input_html .= "\n\t\t\t\t" . '</li>';
960
-        }
961
-
962
-        $input_html .= "\n\t\t\t" . '</ul>';
963
-
964
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
965
-        return  $label_html . $input_html;
966
-    }
967
-
968
-
969
-
970
-
971
-
972
-
973
-    /**
974
-     * generates HTML for a form datepicker input
975
-     *
976
-     * @param string $question  label content
977
-     * @param string $answer        form input value attribute
978
-     * @param string $name          form input name attribute
979
-     * @param string $id                form input css id attribute
980
-     * @param string $class             form input css class attribute
981
-     * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
982
-     * @param string $label_class   css class attribute for the label
983
-     * @param string $disabled      disabled="disabled" or null
984
-     * @return string HTML
985
-     */
986
-    public static function datepicker($question = false, $answer = null, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
987
-    {
988
-        // need these
989
-        if (! $question || ! $name) {
990
-            return null;
991
-        }
992
-        // prep the answer
993
-        $answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
994
-        // prep the required array
995
-        $required = self::prep_required($required);
996
-        // set disabled tag
997
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
998
-        // ya gots ta have style man!!!
999
-        $txt_class = is_admin() ? 'regular-text' : 'espresso-datepicker-inp';
1000
-        $class = empty($class) ? $txt_class : $class;
1001
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
1002
-        $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
1003
-
1004
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
1005
-        // filter label but ensure required text comes before it
1006
-        $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
1007
-
1008
-        $input_html = "\n\t\t\t" . '<input type="text" name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . ' datepicker" value="' . $answer . '"  title="' . esc_attr($required['msg']) . '" ' . $disabled . ' ' . $extra . '/>';
1009
-
1010
-        // enqueue scripts
1011
-        wp_register_style('espresso-ui-theme', EE_GLOBAL_ASSETS_URL . 'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css', array(), EVENT_ESPRESSO_VERSION);
1012
-        wp_enqueue_style('espresso-ui-theme');
1013
-        wp_enqueue_script('jquery-ui-datepicker');
1014
-
1015
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
1016
-        return  $label_html . $input_html;
1017
-    }
1018
-
1019
-
1020
-
1021
-    /**
1022
-     *  remove_label_keep_required_msg
1023
-     *  this will strip out a form input's label HTML while keeping the required text HTML that MUST be before the label
1024
-     *  @access public
1025
-     *  @return     string
1026
-     */
1027
-    public static function remove_label_keep_required_msg($label_html, $required_text)
1028
-    {
1029
-        return $required_text;
1030
-    }
1031
-
1032
-
1033
-
1034
-
1035
-
1036
-    /**
1037
-     * Simply return sthe HTML for a hidden input of the given name and value.
1038
-     * @param string $name
1039
-     * @param string $value
1040
-     * @return string HTML
1041
-     */
1042
-    public static function hidden_input($name, $value, $id = '')
1043
-    {
1044
-        $id = ! empty($id) ? $id : $name;
1045
-        return '<input id="' . $id . '" type="hidden" name="' . $name . '" value="' .  $value . '"/>';
1046
-    }
1047
-
1048
-
1049
-
1050
-
1051
-
1052
-    /**
1053
-     * prep_question
1054
-     * @param string $question
1055
-     * @return string
1056
-     */
1057
-    public static function prep_question($question)
1058
-    {
1059
-        return $question;
567
+		$disabled = $QFI->get('QST_disabled') ? true : false;
568
+		$required_label = apply_filters(' FHEE__EEH_Form_Fields__generate_form_input__required_label', '<em>*</em>');
569
+		$QST_required = $QFI->get('QST_required');
570
+		$required = $QST_required ? array( 'label' => $required_label, 'class' => 'required needs-value', 'title' => $QST_required ) : array();
571
+		$use_html_entities = $QFI->get_meta('htmlentities');
572
+		$required_text = $QFI->get('QST_required_text') != '' ? $QFI->get('QST_required_text') : __('This field is required', 'event_espresso');
573
+		$required_text = $QST_required ? "\n\t\t\t" . '<div class="required-text hidden">' . self::prep_answer($required_text, $use_html_entities) . '</div>' : '';
574
+		$label_class = 'espresso-form-input-lbl';
575
+		$QST_options = $QFI->options(true, $answer);
576
+		$options = is_array($QST_options) ? self::prep_answer_options($QST_options) : array();
577
+		$system_ID = $QFI->get('QST_system');
578
+		$label_b4 = $QFI->get_meta('label_b4');
579
+		$use_desc_4_label = $QFI->get_meta('use_desc_4_label');
580
+
581
+
582
+		switch ($QFI->get('QST_type')) {
583
+			case 'TEXTAREA':
584
+				return EEH_Form_Fields::textarea($display_text, $answer, $input_name, $input_id, $input_class, array(), $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities);
585
+				break;
586
+
587
+			case 'DROPDOWN':
588
+				return EEH_Form_Fields::select($display_text, $answer, $options, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities, true);
589
+				break;
590
+
591
+
592
+			case 'RADIO_BTN':
593
+				return EEH_Form_Fields::radio($display_text, $answer, $options, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities, $label_b4, $use_desc_4_label);
594
+				break;
595
+
596
+			case 'CHECKBOX':
597
+				return EEH_Form_Fields::checkbox($display_text, $answer, $options, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $label_b4, $system_ID, $use_html_entities);
598
+				break;
599
+
600
+			case 'DATE':
601
+				return EEH_Form_Fields::datepicker($display_text, $answer, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities);
602
+				break;
603
+
604
+			case 'TEXT':
605
+			default:
606
+				return EEH_Form_Fields::text($display_text, $answer, $input_name, $input_id, $input_class, $required, $required_text, $label_class, $disabled, $system_ID, $use_html_entities);
607
+				break;
608
+		}
609
+	}
610
+
611
+
612
+
613
+
614
+
615
+
616
+	/**
617
+	 * generates HTML for a form text input
618
+	 *
619
+	 * @param string $question  label content
620
+	 * @param string $answer        form input value attribute
621
+	 * @param string $name          form input name attribute
622
+	 * @param string $id                form input css id attribute
623
+	 * @param string $class             form input css class attribute
624
+	 * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
625
+	 * @param string $label_class   css class attribute for the label
626
+	 * @param string $disabled      disabled="disabled" or null
627
+	 * @return string HTML
628
+	 */
629
+	public static function text($question = false, $answer = null, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
630
+	{
631
+		// need these
632
+		if (! $question || ! $name) {
633
+			return null;
634
+		}
635
+		// prep the answer
636
+		$answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
637
+		// prep the required array
638
+		$required = self::prep_required($required);
639
+		// set disabled tag
640
+		$disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
641
+		// ya gots ta have style man!!!
642
+		$txt_class = is_admin() ? 'regular-text' : 'espresso-text-inp';
643
+		$class = empty($class) ? $txt_class : $class;
644
+		$class .= ! empty($system_ID) ? ' ' . $system_ID : '';
645
+		$extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
646
+
647
+		$label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
648
+		// filter label but ensure required text comes before it
649
+		$label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
650
+
651
+		$input_html = "\n\t\t\t" . '<input type="text" name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" value="' . esc_attr($answer) . '"  title="' . esc_attr($required['msg']) . '" ' . $disabled . ' ' . $extra . '/>';
652
+
653
+		$input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
654
+		return  $label_html . $input_html;
655
+	}
656
+
657
+
658
+
659
+
660
+
661
+	/**
662
+	 * generates HTML for a form textarea
663
+	 *
664
+	 * @param string $question      label content
665
+	 * @param string $answer        form input value attribute
666
+	 * @param string $name          form input name attribute
667
+	 * @param string $id                form input css id attribute
668
+	 * @param string $class             form input css class attribute
669
+	 * @param array $dimensions array of form input rows and cols attributes : array( 'rows' => 3, 'cols' => 40 )
670
+	 * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
671
+	 * @param string $label_class   css class attribute for the label
672
+	 * @param string $disabled      disabled="disabled" or null
673
+	 * @return string HTML
674
+	 */
675
+	public static function textarea($question = false, $answer = null, $name = false, $id = '', $class = '', $dimensions = false, $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
676
+	{
677
+		// need these
678
+		if (! $question || ! $name) {
679
+			return null;
680
+		}
681
+		// prep the answer
682
+		$answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
683
+		// prep the required array
684
+		$required = self::prep_required($required);
685
+		// make sure $dimensions is an array
686
+		$dimensions = is_array($dimensions) ? $dimensions : array();
687
+		// and set some defaults
688
+		$dimensions = array_merge(array( 'rows' => 3, 'cols' => 40 ), $dimensions);
689
+		// set disabled tag
690
+		$disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
691
+		// ya gots ta have style man!!!
692
+		$txt_class = is_admin() ? 'regular-text' : 'espresso-textarea-inp';
693
+		$class = empty($class) ? $txt_class : $class;
694
+		$class .= ! empty($system_ID) ? ' ' . $system_ID : '';
695
+		$extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
696
+
697
+		$label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
698
+		// filter label but ensure required text comes before it
699
+		$label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
700
+
701
+		$input_html = "\n\t\t\t" . '<textarea name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" rows="' . $dimensions['rows'] . '" cols="' . $dimensions['cols'] . '"  title="' . $required['msg'] . '" ' . $disabled . ' ' . $extra . '>' . $answer . '</textarea>';
702
+
703
+		$input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
704
+		return  $label_html . $input_html;
705
+	}
706
+
707
+
708
+
709
+
710
+
711
+
712
+	/**
713
+	 * generates HTML for a form select input
714
+	 *
715
+	 * @param string $question      label content
716
+	 * @param string $answer        form input value attribute
717
+	 * @param array $options            array of answer options where array key = option value and array value = option display text
718
+	 * @param string $name          form input name attribute
719
+	 * @param string $id                form input css id attribute
720
+	 * @param string $class             form input css class attribute
721
+	 * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
722
+	 * @param string $label_class   css class attribute for the label
723
+	 * @param string $disabled      disabled="disabled" or null
724
+	 * @return string HTML
725
+	 */
726
+	public static function select($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true, $add_please_select_option = false)
727
+	{
728
+
729
+		// need these
730
+		if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
731
+			return null;
732
+		}
733
+		// prep the answer
734
+		$answer = is_array($answer) ? self::prep_answer(array_shift($answer), $use_html_entities) : self::prep_answer($answer, $use_html_entities);
735
+		// prep the required array
736
+		$required = self::prep_required($required);
737
+		// set disabled tag
738
+		$disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
739
+		// ya gots ta have style man!!!
740
+		$txt_class = is_admin() ? 'wide' : 'espresso-select-inp';
741
+		$class = empty($class) ? $txt_class : $class;
742
+		$class .= ! empty($system_ID) ? ' ' . $system_ID : '';
743
+		$extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
744
+
745
+		$label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
746
+		// filter label but ensure required text comes before it
747
+		$label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
748
+
749
+		$input_html = "\n\t\t\t" . '<select name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" title="' . esc_attr($required['msg']) . '"' . $disabled . ' ' . $extra . '>';
750
+		// recursively count array elements, to determine total number of options
751
+		$only_option = count($options, 1) == 1 ? true : false;
752
+		if (! $only_option) {
753
+			// if there is NO answer set and there are multiple options to choose from, then set the "please select" message as selected
754
+			$selected = $answer === null ? ' selected="selected"' : '';
755
+			$input_html .= $add_please_select_option ? "\n\t\t\t\t" . '<option value=""' . $selected . '>' . __(' - please select - ', 'event_espresso') . '</option>' : '';
756
+		}
757
+		foreach ($options as $key => $value) {
758
+			// if value is an array, then create option groups, else create regular ol' options
759
+			$input_html .= is_array($value) ? self::_generate_select_option_group($key, $value, $answer, $use_html_entities) : self::_generate_select_option($value->value(), $value->desc(), $answer, $only_option, $use_html_entities);
760
+		}
761
+
762
+		$input_html .= "\n\t\t\t" . '</select>';
763
+
764
+		$input_html =  apply_filters('FHEE__EEH_Form_Fields__select__before_end_wrapper', $input_html, $question, $answer, $name, $id, $class, $system_ID);
765
+
766
+		$input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
767
+		return  $label_html . $input_html;
768
+	}
769
+
770
+
771
+
772
+	/**
773
+	 *  _generate_select_option_group
774
+	 *
775
+	 *  if  $value for a select box is an array, then the key will be used as the optgroup label
776
+	 *  and the value array will be looped thru and the elements sent to _generate_select_option
777
+	 *
778
+	 * @param mixed $opt_group
779
+	 * @param mixed $QSOs
780
+	 * @param mixed $answer
781
+	 * @param boolean $use_html_entities
782
+	 * @return string
783
+	 */
784
+	private static function _generate_select_option_group($opt_group, $QSOs, $answer, $use_html_entities = true)
785
+	{
786
+		$html = "\n\t\t\t\t" . '<optgroup label="' . self::prep_option_value($opt_group) . '">';
787
+		foreach ($QSOs as $QSO) {
788
+			$html .= self::_generate_select_option($QSO->value(), $QSO->desc(), $answer, false, $use_html_entities);
789
+		}
790
+		$html .= "\n\t\t\t\t" . '</optgroup>';
791
+		return $html;
792
+	}
793
+
794
+
795
+
796
+	/**
797
+	 *  _generate_select_option
798
+	 * @param mixed $key
799
+	 * @param mixed $value
800
+	 * @param mixed $answer
801
+	 * @param int $only_option
802
+	 * @param boolean $use_html_entities
803
+	 * @return string
804
+	 */
805
+	private static function _generate_select_option($key, $value, $answer, $only_option = false, $use_html_entities = true)
806
+	{
807
+		$key = self::prep_answer($key, $use_html_entities);
808
+		$value = self::prep_answer($value, $use_html_entities);
809
+		$value = ! empty($value) ? $value : $key;
810
+		$selected = ( $answer == $key || $only_option ) ? ' selected="selected"' : '';
811
+		return "\n\t\t\t\t" . '<option value="' . self::prep_option_value($key) . '"' . $selected . '> ' . $value . '&nbsp;&nbsp;&nbsp;</option>';
812
+	}
813
+
814
+
815
+
816
+	/**
817
+	 * generates HTML for form radio button inputs
818
+	 *
819
+	 * @param bool|string $question    label content
820
+	 * @param string      $answer      form input value attribute
821
+	 * @param array|bool  $options     array of answer options where array key = option value and array value = option display text
822
+	 * @param bool|string $name        form input name attribute
823
+	 * @param string      $id          form input css id attribute
824
+	 * @param string      $class       form input css class attribute
825
+	 * @param array|bool  $required    'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
826
+	 * @param string      $required_text
827
+	 * @param string      $label_class css class attribute for the label
828
+	 * @param bool|string $disabled    disabled="disabled" or null
829
+	 * @param bool        $system_ID
830
+	 * @param bool        $use_html_entities
831
+	 * @param bool        $label_b4
832
+	 * @param bool        $use_desc_4_label
833
+	 * @return string HTML
834
+	 */
835
+	public static function radio($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true, $label_b4 = false, $use_desc_4_label = false)
836
+	{
837
+		// need these
838
+		if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
839
+			return null;
840
+		}
841
+		// prep the answer
842
+		$answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
843
+		// prep the required array
844
+		$required = self::prep_required($required);
845
+		// set disabled tag
846
+		$disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
847
+		// ya gots ta have style man!!!
848
+		$radio_class = is_admin() ? 'ee-admin-radio-lbl' : $label_class;
849
+		$class = ! empty($class) ? $class : 'espresso-radio-btn-inp';
850
+		$extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
851
+
852
+		$label_html = $required_text . "\n\t\t\t" . '<label class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label> ';
853
+		// filter label but ensure required text comes before it
854
+		$label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
855
+
856
+		$input_html = "\n\t\t\t" . '<ul id="' . $id . '-ul" class="espresso-radio-btn-options-ul ' . $label_class . ' ' . $class . '-ul">';
857
+
858
+		$class .= ! empty($system_ID) ? ' ' . $system_ID : '';
859
+		$class .= ! empty($required['class']) ? ' ' . $required['class'] : '';
860
+
861
+		foreach ($options as $OPT) {
862
+			if ($OPT instanceof EE_Question_Option) {
863
+				$value = self::prep_option_value($OPT->value());
864
+				$label = $use_desc_4_label ? $OPT->desc() : $OPT->value();
865
+				$size = $use_desc_4_label ? self::get_label_size_class($OPT->value() . ' ' . $OPT->desc()) : self::get_label_size_class($OPT->value());
866
+				$desc = $OPT->desc();// no self::prep_answer
867
+				$answer = is_numeric($value) && empty($answer) ? 0 : $answer;
868
+				$checked = (string) $value == (string) $answer ? ' checked="checked"' : '';
869
+				$opt = '-' . sanitize_key($value);
870
+
871
+				$input_html .= "\n\t\t\t\t" . '<li' . $size . '>';
872
+				$input_html .= "\n\t\t\t\t\t" . '<label class="' . $radio_class . ' espresso-radio-btn-lbl">';
873
+				$input_html .= $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $label . '</span>' : '';
874
+				$input_html .= "\n\t\t\t\t\t\t" . '<input type="radio" name="' . $name . '" id="' . $id . $opt . '" class="' . $class . '" value="' . $value . '" title="' . esc_attr($required['msg']) . '" ' . $disabled . $checked . ' ' . $extra . '/>';
875
+				$input_html .= ! $label_b4  ? "\n\t\t\t\t\t\t" . '<span class="espresso-radio-btn-desc">' . $label . '</span>' : '';
876
+				$input_html .= "\n\t\t\t\t\t" . '</label>';
877
+				$input_html .= $use_desc_4_label ? '' : '<span class="espresso-radio-btn-option-desc small-text grey-text">' . $desc . '</span>';
878
+				$input_html .= "\n\t\t\t\t" . '</li>';
879
+			}
880
+		}
881
+
882
+		$input_html .= "\n\t\t\t" . '</ul>';
883
+
884
+		$input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
885
+		return  $label_html . $input_html;
886
+	}
887
+
888
+
889
+
890
+
891
+
892
+
893
+	/**
894
+	 * generates HTML for form checkbox inputs
895
+	 *
896
+	 * @param string $question      label content
897
+	 * @param string $answer        form input value attribute
898
+	 * @param array $options            array of options where array key = option value and array value = option display text
899
+	 * @param string $name          form input name attribute
900
+	 * @param string $id                form input css id attribute
901
+	 * @param string $class             form input css class attribute
902
+	 * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
903
+	 * @param string $label_class   css class attribute for the label
904
+	 * @param string $disabled      disabled="disabled" or null
905
+	 * @return string HTML
906
+	 */
907
+	public static function checkbox($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $label_b4 = false, $system_ID = false, $use_html_entities = true)
908
+	{
909
+		// need these
910
+		if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
911
+			return null;
912
+		}
913
+		$answer = maybe_unserialize($answer);
914
+
915
+		// prep the answer(s)
916
+		$answer = is_array($answer) ? $answer : array( sanitize_key($answer) => $answer );
917
+
918
+		foreach ($answer as $key => $value) {
919
+			$key = self::prep_option_value($key);
920
+			$answer[ $key ] = self::prep_answer($value, $use_html_entities);
921
+		}
922
+
923
+		// prep the required array
924
+		$required = self::prep_required($required);
925
+		// set disabled tag
926
+		$disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
927
+		// ya gots ta have style man!!!
928
+		$radio_class = is_admin() ? 'ee-admin-radio-lbl' : $label_class;
929
+		$class = empty($class) ? 'espresso-radio-btn-inp' : $class;
930
+		$extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
931
+
932
+		$label_html = $required_text . "\n\t\t\t" . '<label class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label> ';
933
+		// filter label but ensure required text comes before it
934
+		$label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
935
+
936
+		$input_html = "\n\t\t\t" . '<ul id="' . $id . '-ul" class="espresso-checkbox-options-ul ' . $label_class . ' ' . $class . '-ul">';
937
+
938
+		$class .= ! empty($system_ID) ? ' ' . $system_ID : '';
939
+		$class .= ! empty($required['class']) ? ' ' . $required['class'] : '';
940
+
941
+		foreach ($options as $OPT) {
942
+			$value = $OPT->value();// self::prep_option_value( $OPT->value() );
943
+			$size = self::get_label_size_class($OPT->value() . ' ' . $OPT->desc());
944
+			$text = self::prep_answer($OPT->value());
945
+			$desc = $OPT->desc() ;
946
+			$opt = '-' . sanitize_key($value);
947
+
948
+			$checked = is_array($answer) && in_array($text, $answer) ? ' checked="checked"' : '';
949
+
950
+			$input_html .= "\n\t\t\t\t" . '<li' . $size . '>';
951
+			$input_html .= "\n\t\t\t\t\t" . '<label class="' . $radio_class . ' espresso-checkbox-lbl">';
952
+			$input_html .= $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $text . '</span>' : '';
953
+			$input_html .= "\n\t\t\t\t\t\t" . '<input type="checkbox" name="' . $name . '[' . $OPT->ID() . ']" id="' . $id . $opt . '" class="' . $class . '" value="' . $value . '" title="' . esc_attr($required['msg']) . '" ' . $disabled . $checked . ' ' . $extra . '/>';
954
+			$input_html .= ! $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $text . '</span>' : '';
955
+			$input_html .= "\n\t\t\t\t\t" . '</label>';
956
+			if (! empty($desc) && $desc != $text) {
957
+				$input_html .= "\n\t\t\t\t\t" . ' &nbsp; <br/><div class="espresso-checkbox-option-desc small-text grey-text">' . $desc . '</div>';
958
+			}
959
+			$input_html .= "\n\t\t\t\t" . '</li>';
960
+		}
961
+
962
+		$input_html .= "\n\t\t\t" . '</ul>';
963
+
964
+		$input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
965
+		return  $label_html . $input_html;
966
+	}
967
+
968
+
969
+
970
+
971
+
972
+
973
+	/**
974
+	 * generates HTML for a form datepicker input
975
+	 *
976
+	 * @param string $question  label content
977
+	 * @param string $answer        form input value attribute
978
+	 * @param string $name          form input name attribute
979
+	 * @param string $id                form input css id attribute
980
+	 * @param string $class             form input css class attribute
981
+	 * @param array $required       'label', 'class', and 'msg' - array of values for required "label" content, css required 'class', and required 'msg' attribute
982
+	 * @param string $label_class   css class attribute for the label
983
+	 * @param string $disabled      disabled="disabled" or null
984
+	 * @return string HTML
985
+	 */
986
+	public static function datepicker($question = false, $answer = null, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
987
+	{
988
+		// need these
989
+		if (! $question || ! $name) {
990
+			return null;
991
+		}
992
+		// prep the answer
993
+		$answer = is_array($answer) ? '' : self::prep_answer($answer, $use_html_entities);
994
+		// prep the required array
995
+		$required = self::prep_required($required);
996
+		// set disabled tag
997
+		$disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
998
+		// ya gots ta have style man!!!
999
+		$txt_class = is_admin() ? 'regular-text' : 'espresso-datepicker-inp';
1000
+		$class = empty($class) ? $txt_class : $class;
1001
+		$class .= ! empty($system_ID) ? ' ' . $system_ID : '';
1002
+		$extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
1003
+
1004
+		$label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
1005
+		// filter label but ensure required text comes before it
1006
+		$label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
1007
+
1008
+		$input_html = "\n\t\t\t" . '<input type="text" name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . ' datepicker" value="' . $answer . '"  title="' . esc_attr($required['msg']) . '" ' . $disabled . ' ' . $extra . '/>';
1009
+
1010
+		// enqueue scripts
1011
+		wp_register_style('espresso-ui-theme', EE_GLOBAL_ASSETS_URL . 'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css', array(), EVENT_ESPRESSO_VERSION);
1012
+		wp_enqueue_style('espresso-ui-theme');
1013
+		wp_enqueue_script('jquery-ui-datepicker');
1014
+
1015
+		$input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
1016
+		return  $label_html . $input_html;
1017
+	}
1018
+
1019
+
1020
+
1021
+	/**
1022
+	 *  remove_label_keep_required_msg
1023
+	 *  this will strip out a form input's label HTML while keeping the required text HTML that MUST be before the label
1024
+	 *  @access public
1025
+	 *  @return     string
1026
+	 */
1027
+	public static function remove_label_keep_required_msg($label_html, $required_text)
1028
+	{
1029
+		return $required_text;
1030
+	}
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+	/**
1037
+	 * Simply return sthe HTML for a hidden input of the given name and value.
1038
+	 * @param string $name
1039
+	 * @param string $value
1040
+	 * @return string HTML
1041
+	 */
1042
+	public static function hidden_input($name, $value, $id = '')
1043
+	{
1044
+		$id = ! empty($id) ? $id : $name;
1045
+		return '<input id="' . $id . '" type="hidden" name="' . $name . '" value="' .  $value . '"/>';
1046
+	}
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+	/**
1053
+	 * prep_question
1054
+	 * @param string $question
1055
+	 * @return string
1056
+	 */
1057
+	public static function prep_question($question)
1058
+	{
1059
+		return $question;
1060 1060
 //      $link = '';
1061 1061
 //      // does this label have a help link attached ?
1062 1062
 //      if ( strpos( $question, '<a ' ) !== FALSE ) {
@@ -1068,447 +1068,447 @@  discard block
 block discarded – undo
1068 1068
 //          $link = '<a ' . $link;
1069 1069
 //      }
1070 1070
 //      return htmlspecialchars( trim( stripslashes( str_replace( '&#039;', "'", $question ))), ENT_QUOTES, 'UTF-8' ) . ' ' . $link;
1071
-    }
1072
-
1073
-
1074
-
1075
-
1076
-    /**
1077
-     *  prep_answer
1078
-     * @param mixed $answer
1079
-     * @return string
1080
-     */
1081
-    public static function prep_answer($answer, $use_html_entities = true)
1082
-    {
1083
-        // make sure we convert bools first.  Otherwise (bool) false becomes an empty string which is NOT desired, we want "0".
1084
-        if (is_bool($answer)) {
1085
-            $answer = $answer ? 1 : 0;
1086
-        }
1087
-        $answer = trim(stripslashes(str_replace('&#039;', "'", $answer)));
1088
-        return $use_html_entities ? htmlentities($answer, ENT_QUOTES, 'UTF-8') : $answer;
1089
-    }
1090
-
1091
-
1092
-
1093
-    /**
1094
-     *  prep_answer_options
1095
-     *  @param array $QSOs  array of EE_Question_Option objects
1096
-     *  @return array
1097
-     */
1098
-    public static function prep_answer_options($QSOs = array())
1099
-    {
1100
-        $prepped_answer_options = array();
1101
-        if (is_array($QSOs) && ! empty($QSOs)) {
1102
-            foreach ($QSOs as $key => $QSO) {
1103
-                if (! $QSO instanceof EE_Question_Option) {
1104
-                    $QSO = EE_Question_Option::new_instance(array(
1105
-                        'QSO_value' => is_array($QSO) && isset($QSO['id']) ? (string) $QSO['id'] : (string) $key,
1106
-                        'QSO_desc' => is_array($QSO) && isset($QSO['text']) ? (string) $QSO['text'] : (string) $QSO
1107
-                    ));
1108
-                }
1109
-                if ($QSO->opt_group()) {
1110
-                    $prepped_answer_options[ $QSO->opt_group() ][] = $QSO;
1111
-                } else {
1112
-                    $prepped_answer_options[] = $QSO;
1113
-                }
1114
-            }
1115
-        }
1071
+	}
1072
+
1073
+
1074
+
1075
+
1076
+	/**
1077
+	 *  prep_answer
1078
+	 * @param mixed $answer
1079
+	 * @return string
1080
+	 */
1081
+	public static function prep_answer($answer, $use_html_entities = true)
1082
+	{
1083
+		// make sure we convert bools first.  Otherwise (bool) false becomes an empty string which is NOT desired, we want "0".
1084
+		if (is_bool($answer)) {
1085
+			$answer = $answer ? 1 : 0;
1086
+		}
1087
+		$answer = trim(stripslashes(str_replace('&#039;', "'", $answer)));
1088
+		return $use_html_entities ? htmlentities($answer, ENT_QUOTES, 'UTF-8') : $answer;
1089
+	}
1090
+
1091
+
1092
+
1093
+	/**
1094
+	 *  prep_answer_options
1095
+	 *  @param array $QSOs  array of EE_Question_Option objects
1096
+	 *  @return array
1097
+	 */
1098
+	public static function prep_answer_options($QSOs = array())
1099
+	{
1100
+		$prepped_answer_options = array();
1101
+		if (is_array($QSOs) && ! empty($QSOs)) {
1102
+			foreach ($QSOs as $key => $QSO) {
1103
+				if (! $QSO instanceof EE_Question_Option) {
1104
+					$QSO = EE_Question_Option::new_instance(array(
1105
+						'QSO_value' => is_array($QSO) && isset($QSO['id']) ? (string) $QSO['id'] : (string) $key,
1106
+						'QSO_desc' => is_array($QSO) && isset($QSO['text']) ? (string) $QSO['text'] : (string) $QSO
1107
+					));
1108
+				}
1109
+				if ($QSO->opt_group()) {
1110
+					$prepped_answer_options[ $QSO->opt_group() ][] = $QSO;
1111
+				} else {
1112
+					$prepped_answer_options[] = $QSO;
1113
+				}
1114
+			}
1115
+		}
1116 1116
 //      d( $prepped_answer_options );
1117
-        return $prepped_answer_options;
1118
-    }
1119
-
1120
-
1121
-    /**
1122
-     *  prep_option_value
1123
-     * @param string $option_value
1124
-     * @return string
1125
-     */
1126
-    public static function prep_option_value($option_value)
1127
-    {
1128
-        return esc_attr(trim(stripslashes($option_value)));
1129
-    }
1130
-
1131
-
1132
-
1133
-
1134
-    /**
1135
-     *  prep_required
1136
-     * @param string|array  $required
1137
-     * @return array
1138
-     */
1139
-    public static function prep_required($required = array())
1140
-    {
1141
-        // make sure required is an array
1142
-        $required = is_array($required) ? $required : array();
1143
-        // and set some defaults
1144
-        $required = array_merge(array( 'label' => '', 'class' => '', 'msg' => '' ), $required);
1145
-        return $required;
1146
-    }
1147
-
1148
-
1149
-
1150
-    /**
1151
-     *  get_label_size_class
1152
-     * @param string    $value
1153
-     * @return string
1154
-     */
1155
-    public static function get_label_size_class($value = false)
1156
-    {
1157
-        if ($value === false || $value == '') {
1158
-            return ' class="medium-lbl"';
1159
-        }
1160
-            // determine length of option value
1161
-            $val_size = strlen($value);
1162
-        switch ($val_size) {
1163
-            case $val_size < 3:
1164
-                $size =  ' class="nano-lbl"';
1165
-                break;
1166
-            case $val_size < 6:
1167
-                $size =  ' class="micro-lbl"';
1168
-                break;
1169
-            case $val_size < 12:
1170
-                $size =  ' class="tiny-lbl"';
1171
-                break;
1172
-            case $val_size < 25:
1173
-                $size =  ' class="small-lbl"';
1174
-                break;
1175
-            case $val_size > 100:
1176
-                $size =  ' class="big-lbl"';
1177
-                break;
1178
-            default:
1179
-                $size =  ' class="medium-lbl"';
1180
-                break;
1181
-        }
1182
-        return $size;
1183
-    }
1184
-
1185
-
1186
-
1187
-
1188
-    /**
1189
-     *  _load_system_dropdowns
1190
-     * @param array     $QFI
1191
-     * @return array
1192
-     */
1193
-    private static function _load_system_dropdowns($QFI)
1194
-    {
1195
-        $QST_system = $QFI->get('QST_system');
1196
-        switch ($QST_system) {
1197
-            case 'state':
1198
-                $QFI = self::generate_state_dropdown($QFI);
1199
-                break;
1200
-            case 'country':
1201
-                $QFI = self::generate_country_dropdown($QFI);
1202
-                break;
1203
-            case 'admin-state':
1204
-                $QFI = self::generate_state_dropdown($QFI, true);
1205
-                break;
1206
-            case 'admin-country':
1207
-                $QFI = self::generate_country_dropdown($QFI, true);
1208
-                break;
1209
-        }
1210
-        return $QFI;
1211
-    }
1212
-
1213
-
1214
-
1215
-    /**
1216
-     * This preps dropdowns that are specialized.
1217
-     *
1218
-     * @since  4.6.0
1219
-     *
1220
-     * @param EE_Question_Form_Input $QFI
1221
-     *
1222
-     * @return EE_Question_Form_Input
1223
-     */
1224
-    protected static function _load_specialized_dropdowns($QFI)
1225
-    {
1226
-        switch ($QFI->get('QST_type')) {
1227
-            case 'STATE':
1228
-                $QFI = self::generate_state_dropdown($QFI);
1229
-                break;
1230
-            case 'COUNTRY':
1231
-                $QFI = self::generate_country_dropdown($QFI);
1232
-                break;
1233
-        }
1234
-        return $QFI;
1235
-    }
1236
-
1237
-
1238
-
1239
-    /**
1240
-     *    generate_state_dropdown
1241
-     * @param array $QST
1242
-     * @param bool  $get_all
1243
-     * @return array
1244
-     */
1245
-    public static function generate_state_dropdown($QST, $get_all = false)
1246
-    {
1247
-        $states = $get_all ? EEM_State::instance()->get_all_states() : EEM_State::instance()->get_all_states_of_active_countries();
1248
-        if ($states && count($states) != count($QST->options())) {
1249
-            $QST->set('QST_type', 'DROPDOWN');
1250
-            // if multiple countries, we'll create option groups within the dropdown
1251
-            foreach ($states as $state) {
1252
-                if ($state instanceof EE_State) {
1253
-                    $QSO = EE_Question_Option::new_instance(array (
1254
-                        'QSO_value' => $state->ID(),
1255
-                        'QSO_desc' => $state->name(),
1256
-                        'QST_ID' => $QST->get('QST_ID'),
1257
-                        'QSO_deleted' => false
1258
-                    ));
1259
-                    // set option group
1260
-                    $QSO->set_opt_group($state->country()->name());
1261
-                    // add option to question
1262
-                    $QST->add_temp_option($QSO);
1263
-                }
1264
-            }
1265
-        }
1266
-        return $QST;
1267
-    }
1268
-
1269
-
1270
-
1271
-    /**
1272
-     *    generate_country_dropdown
1273
-     * @param      $QST
1274
-     * @param bool $get_all
1275
-     * @internal param array $question
1276
-     * @return array
1277
-     */
1278
-    public static function generate_country_dropdown($QST, $get_all = false)
1279
-    {
1280
-        $countries = $get_all ? EEM_Country::instance()->get_all_countries() : EEM_Country::instance()->get_all_active_countries();
1281
-        if ($countries && count($countries) != count($QST->options())) {
1282
-            $QST->set('QST_type', 'DROPDOWN');
1283
-            // now add countries
1284
-            foreach ($countries as $country) {
1285
-                if ($country instanceof EE_Country) {
1286
-                    $QSO = EE_Question_Option::new_instance(array (
1287
-                        'QSO_value' => $country->ID(),
1288
-                        'QSO_desc' => $country->name(),
1289
-                        'QST_ID' => $QST->get('QST_ID'),
1290
-                        'QSO_deleted' => false
1291
-                    ));
1292
-                    $QST->add_temp_option($QSO);
1293
-                }
1294
-            }
1295
-        }
1296
-        return $QST;
1297
-    }
1298
-
1299
-
1300
-
1301
-
1302
-
1303
-    /**
1304
-     *  generates options for a month dropdown selector with numbers from 01 to 12
1305
-     *  @return array()
1306
-     */
1307
-    public static function two_digit_months_dropdown_options()
1308
-    {
1309
-        $options = array();
1310
-        for ($x = 1; $x <= 12; $x++) {
1311
-            $mm = str_pad($x, 2, '0', STR_PAD_LEFT);
1312
-            $options[ (string) $mm ] = (string) $mm;
1313
-        }
1314
-        return EEH_Form_Fields::prep_answer_options($options);
1315
-    }
1316
-
1317
-
1318
-
1319
-
1320
-
1321
-    /**
1322
-     *  generates a year dropdown selector with numbers for the next ten years
1323
-     *  @return object
1324
-     */
1325
-    public static function next_decade_two_digit_year_dropdown_options()
1326
-    {
1327
-        $options = array();
1328
-        $current_year = date('y');
1329
-        $next_decade = $current_year + 10;
1330
-        for ($x = $current_year; $x <= $next_decade; $x++) {
1331
-            $yy = str_pad($x, 2, '0', STR_PAD_LEFT);
1332
-            $options[ (string) $yy ] = (string) $yy;
1333
-        }
1334
-        return EEH_Form_Fields::prep_answer_options($options);
1335
-    }
1336
-
1337
-
1338
-
1339
-
1340
-
1341
-    /**
1342
-     * generates a month/year dropdown selector for all registrations matching the given criteria.  Typically used for list table filter.
1343
-     * @param  string  $cur_date     any currently selected date can be entered here.
1344
-     * @param  string  $status       Registration status
1345
-     * @param  integer $evt_category Event Category ID if the Event Category filter is selected
1346
-     * @return string                html
1347
-     */
1348
-    public static function generate_registration_months_dropdown($cur_date = '', $status = '', $evt_category = 0)
1349
-    {
1350
-        $_where = array();
1351
-        if (!empty($status)) {
1352
-            $_where['STS_ID'] = $status;
1353
-        }
1354
-
1355
-        if ($evt_category > 0) {
1356
-            $_where['Event.Term_Taxonomy.term_id'] = $evt_category;
1357
-        }
1358
-
1359
-        $regdtts = EEM_Registration::instance()->get_reg_months_and_years($_where);
1360
-
1361
-        // setup vals for select input helper
1362
-        $options = array(
1363
-            0 => array(
1364
-                'text' => __('Select a Month/Year', 'event_espresso'),
1365
-                'id' => ''
1366
-                )
1367
-            );
1368
-
1369
-        foreach ($regdtts as $regdtt) {
1370
-            $date = $regdtt->reg_month . ' ' . $regdtt->reg_year;
1371
-            $options[] = array(
1372
-                'text' => $date,
1373
-                'id' => $date
1374
-                );
1375
-        }
1376
-
1377
-        return self::select_input('month_range', $options, $cur_date, '', 'wide');
1378
-    }
1379
-
1380
-
1381
-
1382
-    /**
1383
-     * generates a month/year dropdown selector for all events matching the given criteria
1384
-     * Typically used for list table filter
1385
-     * @param  string $cur_date          any currently selected date can be entered here.
1386
-     * @param  string $status            "view" (i.e. all, today, month, draft)
1387
-     * @param  int    $evt_category      category event belongs to
1388
-     * @param  string $evt_active_status "upcoming", "expired", "active", or "inactive"
1389
-     * @return string                    html
1390
-     */
1391
-    public static function generate_event_months_dropdown($cur_date = '', $status = null, $evt_category = null, $evt_active_status = null)
1392
-    {
1393
-        // determine what post_status our condition will have for the query.
1394
-        // phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment
1395
-        switch ($status) {
1396
-            case 'month':
1397
-            case 'today':
1398
-            case null:
1399
-            case 'all':
1400
-                $where['Event.status'] = array( 'NOT IN', array('trash') );
1401
-                break;
1402
-
1403
-            case 'draft':
1404
-                $where['Event.status'] = array( 'IN', array('draft', 'auto-draft') );
1405
-
1406
-            default:
1407
-                $where['Event.status'] = $status;
1408
-        }
1409
-
1410
-        // phpcs:enable
1411
-
1412
-        // categories?
1413
-
1117
+		return $prepped_answer_options;
1118
+	}
1119
+
1120
+
1121
+	/**
1122
+	 *  prep_option_value
1123
+	 * @param string $option_value
1124
+	 * @return string
1125
+	 */
1126
+	public static function prep_option_value($option_value)
1127
+	{
1128
+		return esc_attr(trim(stripslashes($option_value)));
1129
+	}
1130
+
1131
+
1132
+
1133
+
1134
+	/**
1135
+	 *  prep_required
1136
+	 * @param string|array  $required
1137
+	 * @return array
1138
+	 */
1139
+	public static function prep_required($required = array())
1140
+	{
1141
+		// make sure required is an array
1142
+		$required = is_array($required) ? $required : array();
1143
+		// and set some defaults
1144
+		$required = array_merge(array( 'label' => '', 'class' => '', 'msg' => '' ), $required);
1145
+		return $required;
1146
+	}
1147
+
1148
+
1149
+
1150
+	/**
1151
+	 *  get_label_size_class
1152
+	 * @param string    $value
1153
+	 * @return string
1154
+	 */
1155
+	public static function get_label_size_class($value = false)
1156
+	{
1157
+		if ($value === false || $value == '') {
1158
+			return ' class="medium-lbl"';
1159
+		}
1160
+			// determine length of option value
1161
+			$val_size = strlen($value);
1162
+		switch ($val_size) {
1163
+			case $val_size < 3:
1164
+				$size =  ' class="nano-lbl"';
1165
+				break;
1166
+			case $val_size < 6:
1167
+				$size =  ' class="micro-lbl"';
1168
+				break;
1169
+			case $val_size < 12:
1170
+				$size =  ' class="tiny-lbl"';
1171
+				break;
1172
+			case $val_size < 25:
1173
+				$size =  ' class="small-lbl"';
1174
+				break;
1175
+			case $val_size > 100:
1176
+				$size =  ' class="big-lbl"';
1177
+				break;
1178
+			default:
1179
+				$size =  ' class="medium-lbl"';
1180
+				break;
1181
+		}
1182
+		return $size;
1183
+	}
1184
+
1185
+
1186
+
1187
+
1188
+	/**
1189
+	 *  _load_system_dropdowns
1190
+	 * @param array     $QFI
1191
+	 * @return array
1192
+	 */
1193
+	private static function _load_system_dropdowns($QFI)
1194
+	{
1195
+		$QST_system = $QFI->get('QST_system');
1196
+		switch ($QST_system) {
1197
+			case 'state':
1198
+				$QFI = self::generate_state_dropdown($QFI);
1199
+				break;
1200
+			case 'country':
1201
+				$QFI = self::generate_country_dropdown($QFI);
1202
+				break;
1203
+			case 'admin-state':
1204
+				$QFI = self::generate_state_dropdown($QFI, true);
1205
+				break;
1206
+			case 'admin-country':
1207
+				$QFI = self::generate_country_dropdown($QFI, true);
1208
+				break;
1209
+		}
1210
+		return $QFI;
1211
+	}
1212
+
1213
+
1214
+
1215
+	/**
1216
+	 * This preps dropdowns that are specialized.
1217
+	 *
1218
+	 * @since  4.6.0
1219
+	 *
1220
+	 * @param EE_Question_Form_Input $QFI
1221
+	 *
1222
+	 * @return EE_Question_Form_Input
1223
+	 */
1224
+	protected static function _load_specialized_dropdowns($QFI)
1225
+	{
1226
+		switch ($QFI->get('QST_type')) {
1227
+			case 'STATE':
1228
+				$QFI = self::generate_state_dropdown($QFI);
1229
+				break;
1230
+			case 'COUNTRY':
1231
+				$QFI = self::generate_country_dropdown($QFI);
1232
+				break;
1233
+		}
1234
+		return $QFI;
1235
+	}
1236
+
1237
+
1238
+
1239
+	/**
1240
+	 *    generate_state_dropdown
1241
+	 * @param array $QST
1242
+	 * @param bool  $get_all
1243
+	 * @return array
1244
+	 */
1245
+	public static function generate_state_dropdown($QST, $get_all = false)
1246
+	{
1247
+		$states = $get_all ? EEM_State::instance()->get_all_states() : EEM_State::instance()->get_all_states_of_active_countries();
1248
+		if ($states && count($states) != count($QST->options())) {
1249
+			$QST->set('QST_type', 'DROPDOWN');
1250
+			// if multiple countries, we'll create option groups within the dropdown
1251
+			foreach ($states as $state) {
1252
+				if ($state instanceof EE_State) {
1253
+					$QSO = EE_Question_Option::new_instance(array (
1254
+						'QSO_value' => $state->ID(),
1255
+						'QSO_desc' => $state->name(),
1256
+						'QST_ID' => $QST->get('QST_ID'),
1257
+						'QSO_deleted' => false
1258
+					));
1259
+					// set option group
1260
+					$QSO->set_opt_group($state->country()->name());
1261
+					// add option to question
1262
+					$QST->add_temp_option($QSO);
1263
+				}
1264
+			}
1265
+		}
1266
+		return $QST;
1267
+	}
1268
+
1269
+
1270
+
1271
+	/**
1272
+	 *    generate_country_dropdown
1273
+	 * @param      $QST
1274
+	 * @param bool $get_all
1275
+	 * @internal param array $question
1276
+	 * @return array
1277
+	 */
1278
+	public static function generate_country_dropdown($QST, $get_all = false)
1279
+	{
1280
+		$countries = $get_all ? EEM_Country::instance()->get_all_countries() : EEM_Country::instance()->get_all_active_countries();
1281
+		if ($countries && count($countries) != count($QST->options())) {
1282
+			$QST->set('QST_type', 'DROPDOWN');
1283
+			// now add countries
1284
+			foreach ($countries as $country) {
1285
+				if ($country instanceof EE_Country) {
1286
+					$QSO = EE_Question_Option::new_instance(array (
1287
+						'QSO_value' => $country->ID(),
1288
+						'QSO_desc' => $country->name(),
1289
+						'QST_ID' => $QST->get('QST_ID'),
1290
+						'QSO_deleted' => false
1291
+					));
1292
+					$QST->add_temp_option($QSO);
1293
+				}
1294
+			}
1295
+		}
1296
+		return $QST;
1297
+	}
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+	/**
1304
+	 *  generates options for a month dropdown selector with numbers from 01 to 12
1305
+	 *  @return array()
1306
+	 */
1307
+	public static function two_digit_months_dropdown_options()
1308
+	{
1309
+		$options = array();
1310
+		for ($x = 1; $x <= 12; $x++) {
1311
+			$mm = str_pad($x, 2, '0', STR_PAD_LEFT);
1312
+			$options[ (string) $mm ] = (string) $mm;
1313
+		}
1314
+		return EEH_Form_Fields::prep_answer_options($options);
1315
+	}
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+	/**
1322
+	 *  generates a year dropdown selector with numbers for the next ten years
1323
+	 *  @return object
1324
+	 */
1325
+	public static function next_decade_two_digit_year_dropdown_options()
1326
+	{
1327
+		$options = array();
1328
+		$current_year = date('y');
1329
+		$next_decade = $current_year + 10;
1330
+		for ($x = $current_year; $x <= $next_decade; $x++) {
1331
+			$yy = str_pad($x, 2, '0', STR_PAD_LEFT);
1332
+			$options[ (string) $yy ] = (string) $yy;
1333
+		}
1334
+		return EEH_Form_Fields::prep_answer_options($options);
1335
+	}
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+	/**
1342
+	 * generates a month/year dropdown selector for all registrations matching the given criteria.  Typically used for list table filter.
1343
+	 * @param  string  $cur_date     any currently selected date can be entered here.
1344
+	 * @param  string  $status       Registration status
1345
+	 * @param  integer $evt_category Event Category ID if the Event Category filter is selected
1346
+	 * @return string                html
1347
+	 */
1348
+	public static function generate_registration_months_dropdown($cur_date = '', $status = '', $evt_category = 0)
1349
+	{
1350
+		$_where = array();
1351
+		if (!empty($status)) {
1352
+			$_where['STS_ID'] = $status;
1353
+		}
1354
+
1355
+		if ($evt_category > 0) {
1356
+			$_where['Event.Term_Taxonomy.term_id'] = $evt_category;
1357
+		}
1358
+
1359
+		$regdtts = EEM_Registration::instance()->get_reg_months_and_years($_where);
1360
+
1361
+		// setup vals for select input helper
1362
+		$options = array(
1363
+			0 => array(
1364
+				'text' => __('Select a Month/Year', 'event_espresso'),
1365
+				'id' => ''
1366
+				)
1367
+			);
1368
+
1369
+		foreach ($regdtts as $regdtt) {
1370
+			$date = $regdtt->reg_month . ' ' . $regdtt->reg_year;
1371
+			$options[] = array(
1372
+				'text' => $date,
1373
+				'id' => $date
1374
+				);
1375
+		}
1376
+
1377
+		return self::select_input('month_range', $options, $cur_date, '', 'wide');
1378
+	}
1379
+
1380
+
1381
+
1382
+	/**
1383
+	 * generates a month/year dropdown selector for all events matching the given criteria
1384
+	 * Typically used for list table filter
1385
+	 * @param  string $cur_date          any currently selected date can be entered here.
1386
+	 * @param  string $status            "view" (i.e. all, today, month, draft)
1387
+	 * @param  int    $evt_category      category event belongs to
1388
+	 * @param  string $evt_active_status "upcoming", "expired", "active", or "inactive"
1389
+	 * @return string                    html
1390
+	 */
1391
+	public static function generate_event_months_dropdown($cur_date = '', $status = null, $evt_category = null, $evt_active_status = null)
1392
+	{
1393
+		// determine what post_status our condition will have for the query.
1394
+		// phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment
1395
+		switch ($status) {
1396
+			case 'month':
1397
+			case 'today':
1398
+			case null:
1399
+			case 'all':
1400
+				$where['Event.status'] = array( 'NOT IN', array('trash') );
1401
+				break;
1402
+
1403
+			case 'draft':
1404
+				$where['Event.status'] = array( 'IN', array('draft', 'auto-draft') );
1405
+
1406
+			default:
1407
+				$where['Event.status'] = $status;
1408
+		}
1409
+
1410
+		// phpcs:enable
1411
+
1412
+		// categories?
1413
+
1414 1414
 
1415
-        if (!empty($evt_category)) {
1416
-            $where['Event.Term_Taxonomy.taxonomy'] = 'espresso_event_categories';
1417
-            $where['Event.Term_Taxonomy.term_id'] = $evt_category;
1418
-        }
1415
+		if (!empty($evt_category)) {
1416
+			$where['Event.Term_Taxonomy.taxonomy'] = 'espresso_event_categories';
1417
+			$where['Event.Term_Taxonomy.term_id'] = $evt_category;
1418
+		}
1419 1419
 
1420 1420
 
1421 1421
 //      $where['DTT_is_primary'] = 1;
1422 1422
 
1423
-        $DTTS = EE_Registry::instance()->load_model('Datetime')->get_dtt_months_and_years($where, $evt_active_status);
1424
-
1425
-        // let's setup vals for select input helper
1426
-        $options = array(
1427
-            0 => array(
1428
-                'text' => __('Select a Month/Year', 'event_espresso'),
1429
-                'id' => ""
1430
-                )
1431
-            );
1432
-
1433
-
1434
-
1435
-        // translate month and date
1436
-        global $wp_locale;
1437
-
1438
-        foreach ($DTTS as $DTT) {
1439
-            $localized_date = $wp_locale->get_month($DTT->dtt_month_num) . ' ' . $DTT->dtt_year;
1440
-            $id = $DTT->dtt_month . ' ' . $DTT->dtt_year;
1441
-            $options[] = array(
1442
-                'text' => $localized_date,
1443
-                'id' => $id
1444
-                );
1445
-        }
1446
-
1447
-
1448
-        return self::select_input('month_range', $options, $cur_date, '', 'wide');
1449
-    }
1450
-
1451
-
1452
-
1453
-    /**
1454
-     * generates the dropdown selector for event categories
1455
-     * typically used as a filter on list tables.
1456
-     * @param  integer $current_cat currently selected category
1457
-     * @return string               html for dropdown
1458
-     */
1459
-    public static function generate_event_category_dropdown($current_cat = -1)
1460
-    {
1461
-        $categories = EEM_Term::instance()->get_all_ee_categories(true);
1462
-        $options = array(
1463
-            '0' => array(
1464
-                'text' => __('All Categories', 'event_espresso'),
1465
-                'id' => -1
1466
-                )
1467
-            );
1468
-
1469
-        // setup categories for dropdown
1470
-        foreach ($categories as $category) {
1471
-            $options[] = array(
1472
-                'text' => $category->get('name'),
1473
-                'id' => $category->ID()
1474
-                );
1475
-        }
1476
-
1477
-        return self::select_input('EVT_CAT', $options, $current_cat);
1478
-    }
1479
-
1480
-
1481
-
1482
-    /**
1483
-     *    generate a submit button with or without it's own microform
1484
-     *    this is the only way to create buttons that are compatible across all themes
1485
-     *
1486
-     * @access    public
1487
-     * @param    string   $url              - the form action
1488
-     * @param    string   $ID               - some kind of unique ID, appended with "-sbmt" for the input and "-frm" for the form
1489
-     * @param    string   $class            - css classes (separated by spaces if more than one)
1490
-     * @param    string   $text             - what appears on the button
1491
-     * @param    string   $nonce_action     - if using nonces
1492
-     * @param    bool|string $input_only       - whether to print form header and footer. TRUE returns the input without the form
1493
-     * @param    string   $extra_attributes - any extra attributes that need to be attached to the form input
1494
-     * @return    void
1495
-     */
1496
-    public static function submit_button($url = '', $ID = '', $class = '', $text = '', $nonce_action = '', $input_only = false, $extra_attributes = '')
1497
-    {
1498
-        $btn = '';
1499
-        if (empty($url) || empty($ID)) {
1500
-            return $btn;
1501
-        }
1502
-        $text = ! empty($text) ? $text : __('Submit', 'event_espresso');
1503
-        $btn .= '<input id="' . $ID . '-btn" class="' . $class . '" type="submit" value="' . $text . '" ' . $extra_attributes . '/>';
1504
-        if (! $input_only) {
1505
-            $btn_frm = '<form id="' . $ID . '-frm" method="POST" action="' . $url . '">';
1506
-            $btn_frm .= ! empty($nonce_action) ? wp_nonce_field($nonce_action, $nonce_action . '_nonce', true, false) : '';
1507
-            $btn_frm .= $btn;
1508
-            $btn_frm .= '</form>';
1509
-            $btn = $btn_frm;
1510
-            unset($btn_frm);
1511
-        }
1512
-        return $btn;
1513
-    }
1423
+		$DTTS = EE_Registry::instance()->load_model('Datetime')->get_dtt_months_and_years($where, $evt_active_status);
1424
+
1425
+		// let's setup vals for select input helper
1426
+		$options = array(
1427
+			0 => array(
1428
+				'text' => __('Select a Month/Year', 'event_espresso'),
1429
+				'id' => ""
1430
+				)
1431
+			);
1432
+
1433
+
1434
+
1435
+		// translate month and date
1436
+		global $wp_locale;
1437
+
1438
+		foreach ($DTTS as $DTT) {
1439
+			$localized_date = $wp_locale->get_month($DTT->dtt_month_num) . ' ' . $DTT->dtt_year;
1440
+			$id = $DTT->dtt_month . ' ' . $DTT->dtt_year;
1441
+			$options[] = array(
1442
+				'text' => $localized_date,
1443
+				'id' => $id
1444
+				);
1445
+		}
1446
+
1447
+
1448
+		return self::select_input('month_range', $options, $cur_date, '', 'wide');
1449
+	}
1450
+
1451
+
1452
+
1453
+	/**
1454
+	 * generates the dropdown selector for event categories
1455
+	 * typically used as a filter on list tables.
1456
+	 * @param  integer $current_cat currently selected category
1457
+	 * @return string               html for dropdown
1458
+	 */
1459
+	public static function generate_event_category_dropdown($current_cat = -1)
1460
+	{
1461
+		$categories = EEM_Term::instance()->get_all_ee_categories(true);
1462
+		$options = array(
1463
+			'0' => array(
1464
+				'text' => __('All Categories', 'event_espresso'),
1465
+				'id' => -1
1466
+				)
1467
+			);
1468
+
1469
+		// setup categories for dropdown
1470
+		foreach ($categories as $category) {
1471
+			$options[] = array(
1472
+				'text' => $category->get('name'),
1473
+				'id' => $category->ID()
1474
+				);
1475
+		}
1476
+
1477
+		return self::select_input('EVT_CAT', $options, $current_cat);
1478
+	}
1479
+
1480
+
1481
+
1482
+	/**
1483
+	 *    generate a submit button with or without it's own microform
1484
+	 *    this is the only way to create buttons that are compatible across all themes
1485
+	 *
1486
+	 * @access    public
1487
+	 * @param    string   $url              - the form action
1488
+	 * @param    string   $ID               - some kind of unique ID, appended with "-sbmt" for the input and "-frm" for the form
1489
+	 * @param    string   $class            - css classes (separated by spaces if more than one)
1490
+	 * @param    string   $text             - what appears on the button
1491
+	 * @param    string   $nonce_action     - if using nonces
1492
+	 * @param    bool|string $input_only       - whether to print form header and footer. TRUE returns the input without the form
1493
+	 * @param    string   $extra_attributes - any extra attributes that need to be attached to the form input
1494
+	 * @return    void
1495
+	 */
1496
+	public static function submit_button($url = '', $ID = '', $class = '', $text = '', $nonce_action = '', $input_only = false, $extra_attributes = '')
1497
+	{
1498
+		$btn = '';
1499
+		if (empty($url) || empty($ID)) {
1500
+			return $btn;
1501
+		}
1502
+		$text = ! empty($text) ? $text : __('Submit', 'event_espresso');
1503
+		$btn .= '<input id="' . $ID . '-btn" class="' . $class . '" type="submit" value="' . $text . '" ' . $extra_attributes . '/>';
1504
+		if (! $input_only) {
1505
+			$btn_frm = '<form id="' . $ID . '-frm" method="POST" action="' . $url . '">';
1506
+			$btn_frm .= ! empty($nonce_action) ? wp_nonce_field($nonce_action, $nonce_action . '_nonce', true, false) : '';
1507
+			$btn_frm .= $btn;
1508
+			$btn_frm .= '</form>';
1509
+			$btn = $btn_frm;
1510
+			unset($btn_frm);
1511
+		}
1512
+		return $btn;
1513
+	}
1514 1514
 }
Please login to merge, or discard this patch.
Spacing   +183 added lines, -183 removed lines patch added patch discarded remove patch
@@ -90,10 +90,10 @@  discard block
 block discarded – undo
90 90
             $required = isset($input_value['required']) && $input_value['required'] ? ' <span>*</span>: ' : ': ';
91 91
             // and the css class "required"
92 92
             $css_class = isset($input_value['css_class']) ? $input_value['css_class'] : '';
93
-            $styles = $input_value['required'] ? 'required ' . $css_class : $css_class;
93
+            $styles = $input_value['required'] ? 'required '.$css_class : $css_class;
94 94
 
95
-            $field_id = ($id) ? $id . '-' . $input_key : $input_key;
96
-            $tabindex = !empty($input_value['tabindex']) ? ' tabindex="' . $input_value['tabindex'] . '"' : '';
95
+            $field_id = ($id) ? $id.'-'.$input_key : $input_key;
96
+            $tabindex = ! empty($input_value['tabindex']) ? ' tabindex="'.$input_value['tabindex'].'"' : '';
97 97
 
98 98
             // rows or cols?
99 99
             $rows = isset($input_value['rows']) ? $input_value['rows'] : '10';
@@ -102,21 +102,21 @@  discard block
 block discarded – undo
102 102
             // any content?
103 103
             $append_content = $input_value['append_content'];
104 104
 
105
-            $output .= (!$close) ? '<ul>' : '';
105
+            $output .= ( ! $close) ? '<ul>' : '';
106 106
             $output .= '<li>';
107 107
 
108 108
             // what type of input are we dealing with ?
109 109
             switch ($input_value['input']) {
110 110
                 // text inputs
111 111
                 case 'text':
112
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
113
-                    $output .= "\n\t\t\t" . '<input id="' . $field_id . '" class="' . $styles . '" type="text" value="' . esc_textarea($input_value['value']) . '" name="' . $input_value['name'] . '"' . $tabindex . '>';
112
+                    $output .= "\n\t\t\t".'<label for="'.$field_id.'">'.$input_value['label'].$required.'</label>';
113
+                    $output .= "\n\t\t\t".'<input id="'.$field_id.'" class="'.$styles.'" type="text" value="'.esc_textarea($input_value['value']).'" name="'.$input_value['name'].'"'.$tabindex.'>';
114 114
                     break;
115 115
 
116 116
                 // dropdowns
117 117
                 case 'select':
118
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
119
-                    $output .= "\n\t\t\t" . '<select id="' . $field_id . '" class="' . $styles . '" name="' . $input_value['name'] . '"' . $tabindex . '>';
118
+                    $output .= "\n\t\t\t".'<label for="'.$field_id.'">'.$input_value['label'].$required.'</label>';
119
+                    $output .= "\n\t\t\t".'<select id="'.$field_id.'" class="'.$styles.'" name="'.$input_value['name'].'"'.$tabindex.'>';
120 120
 
121 121
                     if (is_array($input_value['options'])) {
122 122
                         $options = $input_value['options'];
@@ -127,27 +127,27 @@  discard block
 block discarded – undo
127 127
                     foreach ($options as $key => $value) {
128 128
                         $selected = isset($input_value['value']) && $input_value['value'] == $key ? 'selected=selected' : '';
129 129
                         // $key = str_replace( ' ', '_', sanitize_key( $value ));
130
-                        $output .= "\n\t\t\t\t" . '<option ' . $selected . ' value="' . $key . '">' . $value . '</option>';
130
+                        $output .= "\n\t\t\t\t".'<option '.$selected.' value="'.$key.'">'.$value.'</option>';
131 131
                     }
132
-                    $output .= "\n\t\t\t" . '</select>';
132
+                    $output .= "\n\t\t\t".'</select>';
133 133
 
134 134
                     break;
135 135
 
136 136
                 case 'textarea':
137
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
138
-                    $output .= "\n\t\t\t" . '<textarea id="' . $field_id . '" class="' . $styles . '" rows="' . $rows . '" cols="' . $cols . '" name="' . $input_value['name'] . '"' . $tabindex . '>' . esc_textarea($input_value['value']) . '</textarea>';
137
+                    $output .= "\n\t\t\t".'<label for="'.$field_id.'">'.$input_value['label'].$required.'</label>';
138
+                    $output .= "\n\t\t\t".'<textarea id="'.$field_id.'" class="'.$styles.'" rows="'.$rows.'" cols="'.$cols.'" name="'.$input_value['name'].'"'.$tabindex.'>'.esc_textarea($input_value['value']).'</textarea>';
139 139
                     break;
140 140
 
141 141
                 case 'hidden':
142 142
                     $close = false;
143 143
                     $output .= "</li></ul>";
144
-                    $output .= "\n\t\t\t" . '<input id="' . $field_id . '" type="hidden" name="' . $input_value['name'] . '" value="' . $input_value['value'] . '">';
144
+                    $output .= "\n\t\t\t".'<input id="'.$field_id.'" type="hidden" name="'.$input_value['name'].'" value="'.$input_value['value'].'">';
145 145
                     break;
146 146
 
147 147
                 case 'checkbox':
148
-                    $checked = ( $input_value['value'] == 1 ) ? 'checked="checked"' : '';
149
-                    $output .= "\n\t\t\t" . '<label for="' . $field_id . '">' . $input_value['label'] . $required . '</label>';
150
-                    $output .= "\n\t\t\t" . '<input id="' . $field_id . '" type="checkbox" name="' . $input_value['name'] . '" value="1"' . $checked . $tabindex . ' />';
148
+                    $checked = ($input_value['value'] == 1) ? 'checked="checked"' : '';
149
+                    $output .= "\n\t\t\t".'<label for="'.$field_id.'">'.$input_value['label'].$required.'</label>';
150
+                    $output .= "\n\t\t\t".'<input id="'.$field_id.'" type="checkbox" name="'.$input_value['name'].'" value="1"'.$checked.$tabindex.' />';
151 151
                     break;
152 152
 
153 153
                 case 'wp_editor':
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
                     );
161 161
                     $output .= '</li>';
162 162
                     $output .= '</ul>';
163
-                    $output .= '<h4>' . $input_value['label'] . '</h4>';
163
+                    $output .= '<h4>'.$input_value['label'].'</h4>';
164 164
                     if ($append_content) {
165 165
                         $output .= $append_content;
166 166
                     }
@@ -232,17 +232,17 @@  discard block
 block discarded – undo
232 232
             $_fields = wp_parse_args($field_atts, $defaults);
233 233
             extract($_fields);
234 234
             // generate label
235
-            $label = empty($label) ? '' : '<label for="' . $id . '">' . $label . '</label>';
235
+            $label = empty($label) ? '' : '<label for="'.$id.'">'.$label.'</label>';
236 236
             // generate field name
237
-            $f_name = !empty($unique_id) ? $field_name . '[' . $unique_id . ']' : $field_name;
237
+            $f_name = ! empty($unique_id) ? $field_name.'['.$unique_id.']' : $field_name;
238 238
 
239 239
             // tabindex
240
-            $tabindex_str = !empty($tabindex) ? ' tabindex="' . $tabindex . '"' : '';
240
+            $tabindex_str = ! empty($tabindex) ? ' tabindex="'.$tabindex.'"' : '';
241 241
 
242 242
             // we determine what we're building based on the type
243 243
             switch ($type) {
244 244
                 case 'textarea':
245
-                        $fld = '<textarea id="' . $id . '" class="' . $class . '" rows="' . $dimensions[1] . '" cols="' . $dimensions[0] . '" name="' . $f_name . '"' . $tabindex_str . '>' . $value . '</textarea>';
245
+                        $fld = '<textarea id="'.$id.'" class="'.$class.'" rows="'.$dimensions[1].'" cols="'.$dimensions[0].'" name="'.$f_name.'"'.$tabindex_str.'>'.$value.'</textarea>';
246 246
                         $fld .= $extra_desc;
247 247
                     break;
248 248
 
@@ -250,16 +250,16 @@  discard block
 block discarded – undo
250 250
                         $c_input = '';
251 251
                     if (is_array($value)) {
252 252
                         foreach ($value as $key => $val) {
253
-                            $c_id = $field_name . '_' . $value;
254
-                            $c_class = isset($classes[ $key ]) ? ' class="' . $classes[ $key ] . '" ' : '';
255
-                            $c_label = isset($labels[ $key ]) ? '<label for="' . $c_id . '">' . $labels[ $key ] . '</label>' : '';
256
-                            $checked = !empty($default) && $default == $val ? ' checked="checked" ' : '';
257
-                            $c_input .= '<input name="' . $f_name . '[]" type="checkbox" id="' . $c_id . '"' . $c_class . 'value="' . $val . '"' . $checked . $tabindex_str . ' />' . "\n" . $c_label;
253
+                            $c_id = $field_name.'_'.$value;
254
+                            $c_class = isset($classes[$key]) ? ' class="'.$classes[$key].'" ' : '';
255
+                            $c_label = isset($labels[$key]) ? '<label for="'.$c_id.'">'.$labels[$key].'</label>' : '';
256
+                            $checked = ! empty($default) && $default == $val ? ' checked="checked" ' : '';
257
+                            $c_input .= '<input name="'.$f_name.'[]" type="checkbox" id="'.$c_id.'"'.$c_class.'value="'.$val.'"'.$checked.$tabindex_str.' />'."\n".$c_label;
258 258
                         }
259 259
                         $fld = $c_input;
260 260
                     } else {
261
-                        $checked = !empty($default) && $default == $val ? 'checked="checked" ' : '';
262
-                        $fld = '<input name="' . $f_name . '" type="checkbox" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $checked . $tabindex_str . ' />' . "\n";
261
+                        $checked = ! empty($default) && $default == $val ? 'checked="checked" ' : '';
262
+                        $fld = '<input name="'.$f_name.'" type="checkbox" id="'.$id.'" class="'.$class.'" value="'.$value.'"'.$checked.$tabindex_str.' />'."\n";
263 263
                     }
264 264
                     break;
265 265
 
@@ -267,28 +267,28 @@  discard block
 block discarded – undo
267 267
                         $c_input = '';
268 268
                     if (is_array($value)) {
269 269
                         foreach ($value as $key => $val) {
270
-                            $c_id = $field_name . '_' . $value;
271
-                            $c_class = isset($classes[ $key ]) ? 'class="' . $classes[ $key ] . '" ' : '';
272
-                            $c_label = isset($labels[ $key ]) ? '<label for="' . $c_id . '">' . $labels[ $key ] . '</label>' : '';
273
-                            $checked = !empty($default) && $default == $val ? ' checked="checked" ' : '';
274
-                            $c_input .= '<input name="' . $f_name . '" type="checkbox" id="' . $c_id . '"' . $c_class . 'value="' . $val . '"' . $checked . $tabindex_str . ' />' . "\n" . $c_label;
270
+                            $c_id = $field_name.'_'.$value;
271
+                            $c_class = isset($classes[$key]) ? 'class="'.$classes[$key].'" ' : '';
272
+                            $c_label = isset($labels[$key]) ? '<label for="'.$c_id.'">'.$labels[$key].'</label>' : '';
273
+                            $checked = ! empty($default) && $default == $val ? ' checked="checked" ' : '';
274
+                            $c_input .= '<input name="'.$f_name.'" type="checkbox" id="'.$c_id.'"'.$c_class.'value="'.$val.'"'.$checked.$tabindex_str.' />'."\n".$c_label;
275 275
                         }
276 276
                         $fld = $c_input;
277 277
                     } else {
278
-                        $checked = !empty($default) && $default == $val ? 'checked="checked" ' : '';
279
-                        $fld = '<input name="' . $f_name . '" type="checkbox" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $checked . $tabindex_str . ' />' . "\n";
278
+                        $checked = ! empty($default) && $default == $val ? 'checked="checked" ' : '';
279
+                        $fld = '<input name="'.$f_name.'" type="checkbox" id="'.$id.'" class="'.$class.'" value="'.$value.'"'.$checked.$tabindex_str.' />'."\n";
280 280
                     }
281 281
                     break;
282 282
 
283 283
                 case 'hidden':
284
-                        $fld = '<input name="' . $f_name . '" type="hidden" id="' . $id . '" class="' . $class . '" value="' . $value . '" />' . "\n";
284
+                        $fld = '<input name="'.$f_name.'" type="hidden" id="'.$id.'" class="'.$class.'" value="'.$value.'" />'."\n";
285 285
                     break;
286 286
 
287 287
                 case 'select':
288
-                        $fld = '<select name="' . $f_name . '" class="' . $class . '" id="' . $id . '"' . $tabindex_str . '>' . "\n";
288
+                        $fld = '<select name="'.$f_name.'" class="'.$class.'" id="'.$id.'"'.$tabindex_str.'>'."\n";
289 289
                     foreach ($value as $key => $val) {
290
-                        $checked = !empty($default) && $default == $val ? ' selected="selected"' : '';
291
-                        $fld .= "\t" . '<option value="' . $val . '"' . $checked . '>' . $labels[ $key ] . '</option>' . "\n";
290
+                        $checked = ! empty($default) && $default == $val ? ' selected="selected"' : '';
291
+                        $fld .= "\t".'<option value="'.$val.'"'.$checked.'>'.$labels[$key].'</option>'."\n";
292 292
                     }
293 293
                         $fld .= '</select>';
294 294
                     break;
@@ -309,11 +309,11 @@  discard block
 block discarded – undo
309 309
                     break;
310 310
 
311 311
                 default: // 'text fields'
312
-                        $fld = '<input name="' . $f_name . '" type="text" id="' . $id . '" class="' . $class . '" value="' . $value . '"' . $tabindex_str . ' />' . "\n";
312
+                        $fld = '<input name="'.$f_name.'" type="text" id="'.$id.'" class="'.$class.'" value="'.$value.'"'.$tabindex_str.' />'."\n";
313 313
                         $fld .= $extra_desc;
314 314
             }
315 315
 
316
-            $form_fields[ $field_name ] = array( 'label' => $label, 'field' => $fld );
316
+            $form_fields[$field_name] = array('label' => $label, 'field' => $fld);
317 317
         }
318 318
 
319 319
         return $form_fields;
@@ -343,25 +343,25 @@  discard block
 block discarded – undo
343 343
     public static function select_input($name, $values, $default = '', $parameters = '', $class = '', $autosize = true)
344 344
     {
345 345
         // if $values was submitted in the wrong format, convert it over
346
-        if (!empty($values) && (!array_key_exists(0, $values) || !is_array($values[0]))) {
346
+        if ( ! empty($values) && ( ! array_key_exists(0, $values) || ! is_array($values[0]))) {
347 347
             $converted_values = array();
348 348
             foreach ($values as $id => $text) {
349
-                $converted_values[] = array('id' => $id,'text' => $text);
349
+                $converted_values[] = array('id' => $id, 'text' => $text);
350 350
             }
351 351
             $values = $converted_values;
352 352
         }
353 353
 
354
-        $field = '<select id="' . EEH_Formatter::ee_tep_output_string($name) . '" name="' . EEH_Formatter::ee_tep_output_string($name) . '"';
354
+        $field = '<select id="'.EEH_Formatter::ee_tep_output_string($name).'" name="'.EEH_Formatter::ee_tep_output_string($name).'"';
355 355
         // Debug
356 356
         // EEH_Debug_Tools::printr( $values, '$values  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
357 357
         if (EEH_Formatter::ee_tep_not_null($parameters)) {
358
-            $field .= ' ' . $parameters;
358
+            $field .= ' '.$parameters;
359 359
         }
360 360
         if ($autosize) {
361 361
             $size = 'med';
362 362
             for ($ii = 0, $ni = sizeof($values); $ii < $ni; $ii++) {
363
-                if ($values[ $ii ]['text']) {
364
-                    if (strlen($values[ $ii ]['text']) > 5) {
363
+                if ($values[$ii]['text']) {
364
+                    if (strlen($values[$ii]['text']) > 5) {
365 365
                         $size = 'wide';
366 366
                     }
367 367
                 }
@@ -370,22 +370,22 @@  discard block
 block discarded – undo
370 370
             $size = '';
371 371
         }
372 372
 
373
-        $field .= ' class="' . $class . ' ' . $size . '">';
373
+        $field .= ' class="'.$class.' '.$size.'">';
374 374
 
375
-        if (empty($default) && isset($GLOBALS[ $name ])) {
376
-            $default = stripslashes($GLOBALS[ $name ]);
375
+        if (empty($default) && isset($GLOBALS[$name])) {
376
+            $default = stripslashes($GLOBALS[$name]);
377 377
         }
378 378
 
379 379
 
380 380
         for ($i = 0, $n = sizeof($values); $i < $n; $i++) {
381
-            $field .= '<option value="' . $values[ $i ]['id'] . '"';
382
-            if ($default == $values[ $i ]['id']) {
381
+            $field .= '<option value="'.$values[$i]['id'].'"';
382
+            if ($default == $values[$i]['id']) {
383 383
                 $field .= ' selected = "selected"';
384 384
             }
385
-            if (isset($values[ $i ]['class'])) {
386
-                $field .= ' class="' . $values[ $i ]['class'] . '"';
385
+            if (isset($values[$i]['class'])) {
386
+                $field .= ' class="'.$values[$i]['class'].'"';
387 387
             }
388
-            $field .= '>' . $values[ $i ]['text'] . '</option>';
388
+            $field .= '>'.$values[$i]['text'].'</option>';
389 389
         }
390 390
         $field .= '</select>';
391 391
 
@@ -410,18 +410,18 @@  discard block
 block discarded – undo
410 410
         $before_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', '');
411 411
         $after_question_group_questions = apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', '');
412 412
 
413
-        if (! empty($question_groups)) {
413
+        if ( ! empty($question_groups)) {
414 414
             // EEH_Debug_Tools::printr( $question_groups, '$question_groups  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
415 415
             // loop thru question groups
416 416
             foreach ($question_groups as $QSG) {
417 417
                 // check that questions exist
418
-                if (! empty($QSG['QSG_questions'])) {
418
+                if ( ! empty($QSG['QSG_questions'])) {
419 419
                     // use fieldsets
420
-                    $html .= "\n\t" . '<' . $group_wrapper . ' class="espresso-question-group-wrap" id="' . $QSG['QSG_identifier'] . '">';
420
+                    $html .= "\n\t".'<'.$group_wrapper.' class="espresso-question-group-wrap" id="'.$QSG['QSG_identifier'].'">';
421 421
                     // group_name
422
-                    $html .= $QSG['QSG_show_group_name'] ? "\n\t\t" . '<h5 class="espresso-question-group-title-h5 section-title">' . self::prep_answer($QSG['QSG_name']) . '</h5>' : '';
422
+                    $html .= $QSG['QSG_show_group_name'] ? "\n\t\t".'<h5 class="espresso-question-group-title-h5 section-title">'.self::prep_answer($QSG['QSG_name']).'</h5>' : '';
423 423
                     // group_desc
424
-                    $html .= $QSG['QSG_show_group_desc'] && ! empty($QSG['QSG_desc']) ? '<div class="espresso-question-group-desc-pg">' . self::prep_answer($QSG['QSG_desc']) . '</div>' : '';
424
+                    $html .= $QSG['QSG_show_group_desc'] && ! empty($QSG['QSG_desc']) ? '<div class="espresso-question-group-desc-pg">'.self::prep_answer($QSG['QSG_desc']).'</div>' : '';
425 425
 
426 426
                     $html .= $before_question_group_questions;
427 427
                     // loop thru questions
@@ -435,7 +435,7 @@  discard block
 block discarded – undo
435 435
                         $html .= self::generate_form_input($QFI);
436 436
                     }
437 437
                     $html .= $after_question_group_questions;
438
-                    $html .= "\n\t" . '</' . $group_wrapper . '>';
438
+                    $html .= "\n\t".'</'.$group_wrapper.'>';
439 439
                 }
440 440
             }
441 441
         }
@@ -471,28 +471,28 @@  discard block
 block discarded – undo
471 471
         $q_meta = array_merge($default_q_meta, $q_meta);
472 472
         // EEH_Debug_Tools::printr( $q_meta, '$q_meta  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
473 473
 
474
-        if (! empty($question_groups)) {
474
+        if ( ! empty($question_groups)) {
475 475
 //          EEH_Debug_Tools::printr( $question_groups, '$question_groups  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
476 476
             // loop thru question groups
477 477
             foreach ($question_groups as $QSG) {
478 478
                 if ($QSG instanceof EE_Question_Group) {
479 479
                     // check that questions exist
480 480
 
481
-                    $where = array( 'QST_deleted' => 0 );
482
-                    if (! $from_admin) {
481
+                    $where = array('QST_deleted' => 0);
482
+                    if ( ! $from_admin) {
483 483
                         $where['QST_admin_only'] = 0;
484 484
                     }
485
-                    $questions = $QSG->questions(array( $where, 'order_by' => array( 'Question_Group_Question.QGQ_order' => 'ASC' )));
486
-                    if (! empty($questions)) {
485
+                    $questions = $QSG->questions(array($where, 'order_by' => array('Question_Group_Question.QGQ_order' => 'ASC')));
486
+                    if ( ! empty($questions)) {
487 487
                         // use fieldsets
488
-                        $html .= "\n\t" . '<' . $group_wrapper . ' class="espresso-question-group-wrap" id="' . $QSG->get('QSG_identifier') . '">';
488
+                        $html .= "\n\t".'<'.$group_wrapper.' class="espresso-question-group-wrap" id="'.$QSG->get('QSG_identifier').'">';
489 489
                         // group_name
490 490
                         if ($QSG->show_group_name()) {
491
-                            $html .=  "\n\t\t" . '<h5 class="espresso-question-group-title-h5 section-title">' . $QSG->get_pretty('QSG_name') . '</h5>';
491
+                            $html .= "\n\t\t".'<h5 class="espresso-question-group-title-h5 section-title">'.$QSG->get_pretty('QSG_name').'</h5>';
492 492
                         }
493 493
                         // group_desc
494 494
                         if ($QSG->show_group_desc()) {
495
-                            $html .=  '<div class="espresso-question-group-desc-pg">' . $QSG->get_pretty('QSG_desc') . '</div>';
495
+                            $html .= '<div class="espresso-question-group-desc-pg">'.$QSG->get_pretty('QSG_desc').'</div>';
496 496
                         }
497 497
 
498 498
                         $html .= $before_question_group_questions;
@@ -504,12 +504,12 @@  discard block
 block discarded – undo
504 504
 
505 505
                             if (isset($_GET['qstn']) && isset($q_meta['input_id']) && isset($q_meta['att_nmbr'])) {
506 506
                                 // check for answer in $_GET in case we are reprocessing a form after an error
507
-                                if (isset($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ])) {
508
-                                    $answer = is_array($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ]) ? $_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ] : sanitize_text_field($_GET['qstn'][ $q_meta['input_id'] ][ $qstn_id ]);
507
+                                if (isset($_GET['qstn'][$q_meta['input_id']][$qstn_id])) {
508
+                                    $answer = is_array($_GET['qstn'][$q_meta['input_id']][$qstn_id]) ? $_GET['qstn'][$q_meta['input_id']][$qstn_id] : sanitize_text_field($_GET['qstn'][$q_meta['input_id']][$qstn_id]);
509 509
                                 }
510 510
                             } elseif (isset($q_meta['attendee']) && $q_meta['attendee']) {
511 511
                                 // attendee data from the session
512
-                                $answer = isset($q_meta['attendee'][ $qstn_id ]) ? $q_meta['attendee'][ $qstn_id ] : null;
512
+                                $answer = isset($q_meta['attendee'][$qstn_id]) ? $q_meta['attendee'][$qstn_id] : null;
513 513
                             }
514 514
 
515 515
 
@@ -528,7 +528,7 @@  discard block
 block discarded – undo
528 528
                             $html .= self::generate_form_input($QFI);
529 529
                         }
530 530
                         $html .= $after_question_group_questions;
531
-                        $html .= "\n\t" . '</' . $group_wrapper . '>';
531
+                        $html .= "\n\t".'</'.$group_wrapper.'>';
532 532
                     }
533 533
                 }
534 534
             }
@@ -567,10 +567,10 @@  discard block
 block discarded – undo
567 567
         $disabled = $QFI->get('QST_disabled') ? true : false;
568 568
         $required_label = apply_filters(' FHEE__EEH_Form_Fields__generate_form_input__required_label', '<em>*</em>');
569 569
         $QST_required = $QFI->get('QST_required');
570
-        $required = $QST_required ? array( 'label' => $required_label, 'class' => 'required needs-value', 'title' => $QST_required ) : array();
570
+        $required = $QST_required ? array('label' => $required_label, 'class' => 'required needs-value', 'title' => $QST_required) : array();
571 571
         $use_html_entities = $QFI->get_meta('htmlentities');
572 572
         $required_text = $QFI->get('QST_required_text') != '' ? $QFI->get('QST_required_text') : __('This field is required', 'event_espresso');
573
-        $required_text = $QST_required ? "\n\t\t\t" . '<div class="required-text hidden">' . self::prep_answer($required_text, $use_html_entities) . '</div>' : '';
573
+        $required_text = $QST_required ? "\n\t\t\t".'<div class="required-text hidden">'.self::prep_answer($required_text, $use_html_entities).'</div>' : '';
574 574
         $label_class = 'espresso-form-input-lbl';
575 575
         $QST_options = $QFI->options(true, $answer);
576 576
         $options = is_array($QST_options) ? self::prep_answer_options($QST_options) : array();
@@ -629,7 +629,7 @@  discard block
 block discarded – undo
629 629
     public static function text($question = false, $answer = null, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
630 630
     {
631 631
         // need these
632
-        if (! $question || ! $name) {
632
+        if ( ! $question || ! $name) {
633 633
             return null;
634 634
         }
635 635
         // prep the answer
@@ -637,21 +637,21 @@  discard block
 block discarded – undo
637 637
         // prep the required array
638 638
         $required = self::prep_required($required);
639 639
         // set disabled tag
640
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
640
+        $disabled = $answer === null || ! $disabled ? '' : ' disabled="disabled"';
641 641
         // ya gots ta have style man!!!
642 642
         $txt_class = is_admin() ? 'regular-text' : 'espresso-text-inp';
643 643
         $class = empty($class) ? $txt_class : $class;
644
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
644
+        $class .= ! empty($system_ID) ? ' '.$system_ID : '';
645 645
         $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
646 646
 
647
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
647
+        $label_html = $required_text."\n\t\t\t".'<label for="'.$name.'" class="'.$label_class.'">'.self::prep_question($question).$required['label'].'</label><br/>';
648 648
         // filter label but ensure required text comes before it
649 649
         $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
650 650
 
651
-        $input_html = "\n\t\t\t" . '<input type="text" name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" value="' . esc_attr($answer) . '"  title="' . esc_attr($required['msg']) . '" ' . $disabled . ' ' . $extra . '/>';
651
+        $input_html = "\n\t\t\t".'<input type="text" name="'.$name.'" id="'.$id.'" class="'.$class.' '.$required['class'].'" value="'.esc_attr($answer).'"  title="'.esc_attr($required['msg']).'" '.$disabled.' '.$extra.'/>';
652 652
 
653
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
654
-        return  $label_html . $input_html;
653
+        $input_html = apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
654
+        return  $label_html.$input_html;
655 655
     }
656 656
 
657 657
 
@@ -675,7 +675,7 @@  discard block
 block discarded – undo
675 675
     public static function textarea($question = false, $answer = null, $name = false, $id = '', $class = '', $dimensions = false, $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
676 676
     {
677 677
         // need these
678
-        if (! $question || ! $name) {
678
+        if ( ! $question || ! $name) {
679 679
             return null;
680 680
         }
681 681
         // prep the answer
@@ -685,23 +685,23 @@  discard block
 block discarded – undo
685 685
         // make sure $dimensions is an array
686 686
         $dimensions = is_array($dimensions) ? $dimensions : array();
687 687
         // and set some defaults
688
-        $dimensions = array_merge(array( 'rows' => 3, 'cols' => 40 ), $dimensions);
688
+        $dimensions = array_merge(array('rows' => 3, 'cols' => 40), $dimensions);
689 689
         // set disabled tag
690
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
690
+        $disabled = $answer === null || ! $disabled ? '' : ' disabled="disabled"';
691 691
         // ya gots ta have style man!!!
692 692
         $txt_class = is_admin() ? 'regular-text' : 'espresso-textarea-inp';
693 693
         $class = empty($class) ? $txt_class : $class;
694
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
694
+        $class .= ! empty($system_ID) ? ' '.$system_ID : '';
695 695
         $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
696 696
 
697
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
697
+        $label_html = $required_text."\n\t\t\t".'<label for="'.$name.'" class="'.$label_class.'">'.self::prep_question($question).$required['label'].'</label><br/>';
698 698
         // filter label but ensure required text comes before it
699 699
         $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
700 700
 
701
-        $input_html = "\n\t\t\t" . '<textarea name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" rows="' . $dimensions['rows'] . '" cols="' . $dimensions['cols'] . '"  title="' . $required['msg'] . '" ' . $disabled . ' ' . $extra . '>' . $answer . '</textarea>';
701
+        $input_html = "\n\t\t\t".'<textarea name="'.$name.'" id="'.$id.'" class="'.$class.' '.$required['class'].'" rows="'.$dimensions['rows'].'" cols="'.$dimensions['cols'].'"  title="'.$required['msg'].'" '.$disabled.' '.$extra.'>'.$answer.'</textarea>';
702 702
 
703
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
704
-        return  $label_html . $input_html;
703
+        $input_html = apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
704
+        return  $label_html.$input_html;
705 705
     }
706 706
 
707 707
 
@@ -727,7 +727,7 @@  discard block
 block discarded – undo
727 727
     {
728 728
 
729 729
         // need these
730
-        if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
730
+        if ( ! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
731 731
             return null;
732 732
         }
733 733
         // prep the answer
@@ -735,36 +735,36 @@  discard block
 block discarded – undo
735 735
         // prep the required array
736 736
         $required = self::prep_required($required);
737 737
         // set disabled tag
738
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
738
+        $disabled = $answer === null || ! $disabled ? '' : ' disabled="disabled"';
739 739
         // ya gots ta have style man!!!
740 740
         $txt_class = is_admin() ? 'wide' : 'espresso-select-inp';
741 741
         $class = empty($class) ? $txt_class : $class;
742
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
742
+        $class .= ! empty($system_ID) ? ' '.$system_ID : '';
743 743
         $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
744 744
 
745
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
745
+        $label_html = $required_text."\n\t\t\t".'<label for="'.$name.'" class="'.$label_class.'">'.self::prep_question($question).$required['label'].'</label><br/>';
746 746
         // filter label but ensure required text comes before it
747 747
         $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
748 748
 
749
-        $input_html = "\n\t\t\t" . '<select name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . '" title="' . esc_attr($required['msg']) . '"' . $disabled . ' ' . $extra . '>';
749
+        $input_html = "\n\t\t\t".'<select name="'.$name.'" id="'.$id.'" class="'.$class.' '.$required['class'].'" title="'.esc_attr($required['msg']).'"'.$disabled.' '.$extra.'>';
750 750
         // recursively count array elements, to determine total number of options
751 751
         $only_option = count($options, 1) == 1 ? true : false;
752
-        if (! $only_option) {
752
+        if ( ! $only_option) {
753 753
             // if there is NO answer set and there are multiple options to choose from, then set the "please select" message as selected
754 754
             $selected = $answer === null ? ' selected="selected"' : '';
755
-            $input_html .= $add_please_select_option ? "\n\t\t\t\t" . '<option value=""' . $selected . '>' . __(' - please select - ', 'event_espresso') . '</option>' : '';
755
+            $input_html .= $add_please_select_option ? "\n\t\t\t\t".'<option value=""'.$selected.'>'.__(' - please select - ', 'event_espresso').'</option>' : '';
756 756
         }
757 757
         foreach ($options as $key => $value) {
758 758
             // if value is an array, then create option groups, else create regular ol' options
759 759
             $input_html .= is_array($value) ? self::_generate_select_option_group($key, $value, $answer, $use_html_entities) : self::_generate_select_option($value->value(), $value->desc(), $answer, $only_option, $use_html_entities);
760 760
         }
761 761
 
762
-        $input_html .= "\n\t\t\t" . '</select>';
762
+        $input_html .= "\n\t\t\t".'</select>';
763 763
 
764
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__select__before_end_wrapper', $input_html, $question, $answer, $name, $id, $class, $system_ID);
764
+        $input_html = apply_filters('FHEE__EEH_Form_Fields__select__before_end_wrapper', $input_html, $question, $answer, $name, $id, $class, $system_ID);
765 765
 
766
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
767
-        return  $label_html . $input_html;
766
+        $input_html = apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
767
+        return  $label_html.$input_html;
768 768
     }
769 769
 
770 770
 
@@ -783,11 +783,11 @@  discard block
 block discarded – undo
783 783
      */
784 784
     private static function _generate_select_option_group($opt_group, $QSOs, $answer, $use_html_entities = true)
785 785
     {
786
-        $html = "\n\t\t\t\t" . '<optgroup label="' . self::prep_option_value($opt_group) . '">';
786
+        $html = "\n\t\t\t\t".'<optgroup label="'.self::prep_option_value($opt_group).'">';
787 787
         foreach ($QSOs as $QSO) {
788 788
             $html .= self::_generate_select_option($QSO->value(), $QSO->desc(), $answer, false, $use_html_entities);
789 789
         }
790
-        $html .= "\n\t\t\t\t" . '</optgroup>';
790
+        $html .= "\n\t\t\t\t".'</optgroup>';
791 791
         return $html;
792 792
     }
793 793
 
@@ -807,8 +807,8 @@  discard block
 block discarded – undo
807 807
         $key = self::prep_answer($key, $use_html_entities);
808 808
         $value = self::prep_answer($value, $use_html_entities);
809 809
         $value = ! empty($value) ? $value : $key;
810
-        $selected = ( $answer == $key || $only_option ) ? ' selected="selected"' : '';
811
-        return "\n\t\t\t\t" . '<option value="' . self::prep_option_value($key) . '"' . $selected . '> ' . $value . '&nbsp;&nbsp;&nbsp;</option>';
810
+        $selected = ($answer == $key || $only_option) ? ' selected="selected"' : '';
811
+        return "\n\t\t\t\t".'<option value="'.self::prep_option_value($key).'"'.$selected.'> '.$value.'&nbsp;&nbsp;&nbsp;</option>';
812 812
     }
813 813
 
814 814
 
@@ -835,7 +835,7 @@  discard block
 block discarded – undo
835 835
     public static function radio($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true, $label_b4 = false, $use_desc_4_label = false)
836 836
     {
837 837
         // need these
838
-        if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
838
+        if ( ! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
839 839
             return null;
840 840
         }
841 841
         // prep the answer
@@ -843,46 +843,46 @@  discard block
 block discarded – undo
843 843
         // prep the required array
844 844
         $required = self::prep_required($required);
845 845
         // set disabled tag
846
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
846
+        $disabled = $answer === null || ! $disabled ? '' : ' disabled="disabled"';
847 847
         // ya gots ta have style man!!!
848 848
         $radio_class = is_admin() ? 'ee-admin-radio-lbl' : $label_class;
849 849
         $class = ! empty($class) ? $class : 'espresso-radio-btn-inp';
850 850
         $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
851 851
 
852
-        $label_html = $required_text . "\n\t\t\t" . '<label class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label> ';
852
+        $label_html = $required_text."\n\t\t\t".'<label class="'.$label_class.'">'.self::prep_question($question).$required['label'].'</label> ';
853 853
         // filter label but ensure required text comes before it
854 854
         $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
855 855
 
856
-        $input_html = "\n\t\t\t" . '<ul id="' . $id . '-ul" class="espresso-radio-btn-options-ul ' . $label_class . ' ' . $class . '-ul">';
856
+        $input_html = "\n\t\t\t".'<ul id="'.$id.'-ul" class="espresso-radio-btn-options-ul '.$label_class.' '.$class.'-ul">';
857 857
 
858
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
859
-        $class .= ! empty($required['class']) ? ' ' . $required['class'] : '';
858
+        $class .= ! empty($system_ID) ? ' '.$system_ID : '';
859
+        $class .= ! empty($required['class']) ? ' '.$required['class'] : '';
860 860
 
861 861
         foreach ($options as $OPT) {
862 862
             if ($OPT instanceof EE_Question_Option) {
863 863
                 $value = self::prep_option_value($OPT->value());
864 864
                 $label = $use_desc_4_label ? $OPT->desc() : $OPT->value();
865
-                $size = $use_desc_4_label ? self::get_label_size_class($OPT->value() . ' ' . $OPT->desc()) : self::get_label_size_class($OPT->value());
866
-                $desc = $OPT->desc();// no self::prep_answer
865
+                $size = $use_desc_4_label ? self::get_label_size_class($OPT->value().' '.$OPT->desc()) : self::get_label_size_class($OPT->value());
866
+                $desc = $OPT->desc(); // no self::prep_answer
867 867
                 $answer = is_numeric($value) && empty($answer) ? 0 : $answer;
868 868
                 $checked = (string) $value == (string) $answer ? ' checked="checked"' : '';
869
-                $opt = '-' . sanitize_key($value);
870
-
871
-                $input_html .= "\n\t\t\t\t" . '<li' . $size . '>';
872
-                $input_html .= "\n\t\t\t\t\t" . '<label class="' . $radio_class . ' espresso-radio-btn-lbl">';
873
-                $input_html .= $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $label . '</span>' : '';
874
-                $input_html .= "\n\t\t\t\t\t\t" . '<input type="radio" name="' . $name . '" id="' . $id . $opt . '" class="' . $class . '" value="' . $value . '" title="' . esc_attr($required['msg']) . '" ' . $disabled . $checked . ' ' . $extra . '/>';
875
-                $input_html .= ! $label_b4  ? "\n\t\t\t\t\t\t" . '<span class="espresso-radio-btn-desc">' . $label . '</span>' : '';
876
-                $input_html .= "\n\t\t\t\t\t" . '</label>';
877
-                $input_html .= $use_desc_4_label ? '' : '<span class="espresso-radio-btn-option-desc small-text grey-text">' . $desc . '</span>';
878
-                $input_html .= "\n\t\t\t\t" . '</li>';
869
+                $opt = '-'.sanitize_key($value);
870
+
871
+                $input_html .= "\n\t\t\t\t".'<li'.$size.'>';
872
+                $input_html .= "\n\t\t\t\t\t".'<label class="'.$radio_class.' espresso-radio-btn-lbl">';
873
+                $input_html .= $label_b4 ? "\n\t\t\t\t\t\t".'<span>'.$label.'</span>' : '';
874
+                $input_html .= "\n\t\t\t\t\t\t".'<input type="radio" name="'.$name.'" id="'.$id.$opt.'" class="'.$class.'" value="'.$value.'" title="'.esc_attr($required['msg']).'" '.$disabled.$checked.' '.$extra.'/>';
875
+                $input_html .= ! $label_b4 ? "\n\t\t\t\t\t\t".'<span class="espresso-radio-btn-desc">'.$label.'</span>' : '';
876
+                $input_html .= "\n\t\t\t\t\t".'</label>';
877
+                $input_html .= $use_desc_4_label ? '' : '<span class="espresso-radio-btn-option-desc small-text grey-text">'.$desc.'</span>';
878
+                $input_html .= "\n\t\t\t\t".'</li>';
879 879
             }
880 880
         }
881 881
 
882
-        $input_html .= "\n\t\t\t" . '</ul>';
882
+        $input_html .= "\n\t\t\t".'</ul>';
883 883
 
884
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
885
-        return  $label_html . $input_html;
884
+        $input_html = apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
885
+        return  $label_html.$input_html;
886 886
     }
887 887
 
888 888
 
@@ -907,62 +907,62 @@  discard block
 block discarded – undo
907 907
     public static function checkbox($question = false, $answer = null, $options = false, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $label_b4 = false, $system_ID = false, $use_html_entities = true)
908 908
     {
909 909
         // need these
910
-        if (! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
910
+        if ( ! $question || ! $name || ! $options || empty($options) || ! is_array($options)) {
911 911
             return null;
912 912
         }
913 913
         $answer = maybe_unserialize($answer);
914 914
 
915 915
         // prep the answer(s)
916
-        $answer = is_array($answer) ? $answer : array( sanitize_key($answer) => $answer );
916
+        $answer = is_array($answer) ? $answer : array(sanitize_key($answer) => $answer);
917 917
 
918 918
         foreach ($answer as $key => $value) {
919 919
             $key = self::prep_option_value($key);
920
-            $answer[ $key ] = self::prep_answer($value, $use_html_entities);
920
+            $answer[$key] = self::prep_answer($value, $use_html_entities);
921 921
         }
922 922
 
923 923
         // prep the required array
924 924
         $required = self::prep_required($required);
925 925
         // set disabled tag
926
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
926
+        $disabled = $answer === null || ! $disabled ? '' : ' disabled="disabled"';
927 927
         // ya gots ta have style man!!!
928 928
         $radio_class = is_admin() ? 'ee-admin-radio-lbl' : $label_class;
929 929
         $class = empty($class) ? 'espresso-radio-btn-inp' : $class;
930 930
         $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
931 931
 
932
-        $label_html = $required_text . "\n\t\t\t" . '<label class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label> ';
932
+        $label_html = $required_text."\n\t\t\t".'<label class="'.$label_class.'">'.self::prep_question($question).$required['label'].'</label> ';
933 933
         // filter label but ensure required text comes before it
934 934
         $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
935 935
 
936
-        $input_html = "\n\t\t\t" . '<ul id="' . $id . '-ul" class="espresso-checkbox-options-ul ' . $label_class . ' ' . $class . '-ul">';
936
+        $input_html = "\n\t\t\t".'<ul id="'.$id.'-ul" class="espresso-checkbox-options-ul '.$label_class.' '.$class.'-ul">';
937 937
 
938
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
939
-        $class .= ! empty($required['class']) ? ' ' . $required['class'] : '';
938
+        $class .= ! empty($system_ID) ? ' '.$system_ID : '';
939
+        $class .= ! empty($required['class']) ? ' '.$required['class'] : '';
940 940
 
941 941
         foreach ($options as $OPT) {
942
-            $value = $OPT->value();// self::prep_option_value( $OPT->value() );
943
-            $size = self::get_label_size_class($OPT->value() . ' ' . $OPT->desc());
942
+            $value = $OPT->value(); // self::prep_option_value( $OPT->value() );
943
+            $size = self::get_label_size_class($OPT->value().' '.$OPT->desc());
944 944
             $text = self::prep_answer($OPT->value());
945
-            $desc = $OPT->desc() ;
946
-            $opt = '-' . sanitize_key($value);
945
+            $desc = $OPT->desc();
946
+            $opt = '-'.sanitize_key($value);
947 947
 
948 948
             $checked = is_array($answer) && in_array($text, $answer) ? ' checked="checked"' : '';
949 949
 
950
-            $input_html .= "\n\t\t\t\t" . '<li' . $size . '>';
951
-            $input_html .= "\n\t\t\t\t\t" . '<label class="' . $radio_class . ' espresso-checkbox-lbl">';
952
-            $input_html .= $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $text . '</span>' : '';
953
-            $input_html .= "\n\t\t\t\t\t\t" . '<input type="checkbox" name="' . $name . '[' . $OPT->ID() . ']" id="' . $id . $opt . '" class="' . $class . '" value="' . $value . '" title="' . esc_attr($required['msg']) . '" ' . $disabled . $checked . ' ' . $extra . '/>';
954
-            $input_html .= ! $label_b4  ? "\n\t\t\t\t\t\t" . '<span>' . $text . '</span>' : '';
955
-            $input_html .= "\n\t\t\t\t\t" . '</label>';
956
-            if (! empty($desc) && $desc != $text) {
957
-                $input_html .= "\n\t\t\t\t\t" . ' &nbsp; <br/><div class="espresso-checkbox-option-desc small-text grey-text">' . $desc . '</div>';
950
+            $input_html .= "\n\t\t\t\t".'<li'.$size.'>';
951
+            $input_html .= "\n\t\t\t\t\t".'<label class="'.$radio_class.' espresso-checkbox-lbl">';
952
+            $input_html .= $label_b4 ? "\n\t\t\t\t\t\t".'<span>'.$text.'</span>' : '';
953
+            $input_html .= "\n\t\t\t\t\t\t".'<input type="checkbox" name="'.$name.'['.$OPT->ID().']" id="'.$id.$opt.'" class="'.$class.'" value="'.$value.'" title="'.esc_attr($required['msg']).'" '.$disabled.$checked.' '.$extra.'/>';
954
+            $input_html .= ! $label_b4 ? "\n\t\t\t\t\t\t".'<span>'.$text.'</span>' : '';
955
+            $input_html .= "\n\t\t\t\t\t".'</label>';
956
+            if ( ! empty($desc) && $desc != $text) {
957
+                $input_html .= "\n\t\t\t\t\t".' &nbsp; <br/><div class="espresso-checkbox-option-desc small-text grey-text">'.$desc.'</div>';
958 958
             }
959
-            $input_html .= "\n\t\t\t\t" . '</li>';
959
+            $input_html .= "\n\t\t\t\t".'</li>';
960 960
         }
961 961
 
962
-        $input_html .= "\n\t\t\t" . '</ul>';
962
+        $input_html .= "\n\t\t\t".'</ul>';
963 963
 
964
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
965
-        return  $label_html . $input_html;
964
+        $input_html = apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
965
+        return  $label_html.$input_html;
966 966
     }
967 967
 
968 968
 
@@ -986,7 +986,7 @@  discard block
 block discarded – undo
986 986
     public static function datepicker($question = false, $answer = null, $name = false, $id = '', $class = '', $required = false, $required_text = '', $label_class = '', $disabled = false, $system_ID = false, $use_html_entities = true)
987 987
     {
988 988
         // need these
989
-        if (! $question || ! $name) {
989
+        if ( ! $question || ! $name) {
990 990
             return null;
991 991
         }
992 992
         // prep the answer
@@ -994,26 +994,26 @@  discard block
 block discarded – undo
994 994
         // prep the required array
995 995
         $required = self::prep_required($required);
996 996
         // set disabled tag
997
-        $disabled = $answer === null || ! $disabled  ? '' : ' disabled="disabled"';
997
+        $disabled = $answer === null || ! $disabled ? '' : ' disabled="disabled"';
998 998
         // ya gots ta have style man!!!
999 999
         $txt_class = is_admin() ? 'regular-text' : 'espresso-datepicker-inp';
1000 1000
         $class = empty($class) ? $txt_class : $class;
1001
-        $class .= ! empty($system_ID) ? ' ' . $system_ID : '';
1001
+        $class .= ! empty($system_ID) ? ' '.$system_ID : '';
1002 1002
         $extra = apply_filters('FHEE__EEH_Form_Fields__additional_form_field_attributes', '');
1003 1003
 
1004
-        $label_html = $required_text . "\n\t\t\t" . '<label for="' . $name . '" class="' . $label_class . '">' . self::prep_question($question) . $required['label'] . '</label><br/>';
1004
+        $label_html = $required_text."\n\t\t\t".'<label for="'.$name.'" class="'.$label_class.'">'.self::prep_question($question).$required['label'].'</label><br/>';
1005 1005
         // filter label but ensure required text comes before it
1006 1006
         $label_html = apply_filters('FHEE__EEH_Form_Fields__label_html', $label_html, $required_text);
1007 1007
 
1008
-        $input_html = "\n\t\t\t" . '<input type="text" name="' . $name . '" id="' . $id . '" class="' . $class . ' ' . $required['class'] . ' datepicker" value="' . $answer . '"  title="' . esc_attr($required['msg']) . '" ' . $disabled . ' ' . $extra . '/>';
1008
+        $input_html = "\n\t\t\t".'<input type="text" name="'.$name.'" id="'.$id.'" class="'.$class.' '.$required['class'].' datepicker" value="'.$answer.'"  title="'.esc_attr($required['msg']).'" '.$disabled.' '.$extra.'/>';
1009 1009
 
1010 1010
         // enqueue scripts
1011
-        wp_register_style('espresso-ui-theme', EE_GLOBAL_ASSETS_URL . 'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css', array(), EVENT_ESPRESSO_VERSION);
1011
+        wp_register_style('espresso-ui-theme', EE_GLOBAL_ASSETS_URL.'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css', array(), EVENT_ESPRESSO_VERSION);
1012 1012
         wp_enqueue_style('espresso-ui-theme');
1013 1013
         wp_enqueue_script('jquery-ui-datepicker');
1014 1014
 
1015
-        $input_html =  apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
1016
-        return  $label_html . $input_html;
1015
+        $input_html = apply_filters('FHEE__EEH_Form_Fields__input_html', $input_html, $label_html, $id);
1016
+        return  $label_html.$input_html;
1017 1017
     }
1018 1018
 
1019 1019
 
@@ -1042,7 +1042,7 @@  discard block
 block discarded – undo
1042 1042
     public static function hidden_input($name, $value, $id = '')
1043 1043
     {
1044 1044
         $id = ! empty($id) ? $id : $name;
1045
-        return '<input id="' . $id . '" type="hidden" name="' . $name . '" value="' .  $value . '"/>';
1045
+        return '<input id="'.$id.'" type="hidden" name="'.$name.'" value="'.$value.'"/>';
1046 1046
     }
1047 1047
 
1048 1048
 
@@ -1100,14 +1100,14 @@  discard block
 block discarded – undo
1100 1100
         $prepped_answer_options = array();
1101 1101
         if (is_array($QSOs) && ! empty($QSOs)) {
1102 1102
             foreach ($QSOs as $key => $QSO) {
1103
-                if (! $QSO instanceof EE_Question_Option) {
1103
+                if ( ! $QSO instanceof EE_Question_Option) {
1104 1104
                     $QSO = EE_Question_Option::new_instance(array(
1105 1105
                         'QSO_value' => is_array($QSO) && isset($QSO['id']) ? (string) $QSO['id'] : (string) $key,
1106 1106
                         'QSO_desc' => is_array($QSO) && isset($QSO['text']) ? (string) $QSO['text'] : (string) $QSO
1107 1107
                     ));
1108 1108
                 }
1109 1109
                 if ($QSO->opt_group()) {
1110
-                    $prepped_answer_options[ $QSO->opt_group() ][] = $QSO;
1110
+                    $prepped_answer_options[$QSO->opt_group()][] = $QSO;
1111 1111
                 } else {
1112 1112
                     $prepped_answer_options[] = $QSO;
1113 1113
                 }
@@ -1141,7 +1141,7 @@  discard block
 block discarded – undo
1141 1141
         // make sure required is an array
1142 1142
         $required = is_array($required) ? $required : array();
1143 1143
         // and set some defaults
1144
-        $required = array_merge(array( 'label' => '', 'class' => '', 'msg' => '' ), $required);
1144
+        $required = array_merge(array('label' => '', 'class' => '', 'msg' => ''), $required);
1145 1145
         return $required;
1146 1146
     }
1147 1147
 
@@ -1161,22 +1161,22 @@  discard block
 block discarded – undo
1161 1161
             $val_size = strlen($value);
1162 1162
         switch ($val_size) {
1163 1163
             case $val_size < 3:
1164
-                $size =  ' class="nano-lbl"';
1164
+                $size = ' class="nano-lbl"';
1165 1165
                 break;
1166 1166
             case $val_size < 6:
1167
-                $size =  ' class="micro-lbl"';
1167
+                $size = ' class="micro-lbl"';
1168 1168
                 break;
1169 1169
             case $val_size < 12:
1170
-                $size =  ' class="tiny-lbl"';
1170
+                $size = ' class="tiny-lbl"';
1171 1171
                 break;
1172 1172
             case $val_size < 25:
1173
-                $size =  ' class="small-lbl"';
1173
+                $size = ' class="small-lbl"';
1174 1174
                 break;
1175 1175
             case $val_size > 100:
1176
-                $size =  ' class="big-lbl"';
1176
+                $size = ' class="big-lbl"';
1177 1177
                 break;
1178 1178
             default:
1179
-                $size =  ' class="medium-lbl"';
1179
+                $size = ' class="medium-lbl"';
1180 1180
                 break;
1181 1181
         }
1182 1182
         return $size;
@@ -1250,7 +1250,7 @@  discard block
 block discarded – undo
1250 1250
             // if multiple countries, we'll create option groups within the dropdown
1251 1251
             foreach ($states as $state) {
1252 1252
                 if ($state instanceof EE_State) {
1253
-                    $QSO = EE_Question_Option::new_instance(array (
1253
+                    $QSO = EE_Question_Option::new_instance(array(
1254 1254
                         'QSO_value' => $state->ID(),
1255 1255
                         'QSO_desc' => $state->name(),
1256 1256
                         'QST_ID' => $QST->get('QST_ID'),
@@ -1283,7 +1283,7 @@  discard block
 block discarded – undo
1283 1283
             // now add countries
1284 1284
             foreach ($countries as $country) {
1285 1285
                 if ($country instanceof EE_Country) {
1286
-                    $QSO = EE_Question_Option::new_instance(array (
1286
+                    $QSO = EE_Question_Option::new_instance(array(
1287 1287
                         'QSO_value' => $country->ID(),
1288 1288
                         'QSO_desc' => $country->name(),
1289 1289
                         'QST_ID' => $QST->get('QST_ID'),
@@ -1309,7 +1309,7 @@  discard block
 block discarded – undo
1309 1309
         $options = array();
1310 1310
         for ($x = 1; $x <= 12; $x++) {
1311 1311
             $mm = str_pad($x, 2, '0', STR_PAD_LEFT);
1312
-            $options[ (string) $mm ] = (string) $mm;
1312
+            $options[(string) $mm] = (string) $mm;
1313 1313
         }
1314 1314
         return EEH_Form_Fields::prep_answer_options($options);
1315 1315
     }
@@ -1329,7 +1329,7 @@  discard block
 block discarded – undo
1329 1329
         $next_decade = $current_year + 10;
1330 1330
         for ($x = $current_year; $x <= $next_decade; $x++) {
1331 1331
             $yy = str_pad($x, 2, '0', STR_PAD_LEFT);
1332
-            $options[ (string) $yy ] = (string) $yy;
1332
+            $options[(string) $yy] = (string) $yy;
1333 1333
         }
1334 1334
         return EEH_Form_Fields::prep_answer_options($options);
1335 1335
     }
@@ -1348,7 +1348,7 @@  discard block
 block discarded – undo
1348 1348
     public static function generate_registration_months_dropdown($cur_date = '', $status = '', $evt_category = 0)
1349 1349
     {
1350 1350
         $_where = array();
1351
-        if (!empty($status)) {
1351
+        if ( ! empty($status)) {
1352 1352
             $_where['STS_ID'] = $status;
1353 1353
         }
1354 1354
 
@@ -1367,7 +1367,7 @@  discard block
 block discarded – undo
1367 1367
             );
1368 1368
 
1369 1369
         foreach ($regdtts as $regdtt) {
1370
-            $date = $regdtt->reg_month . ' ' . $regdtt->reg_year;
1370
+            $date = $regdtt->reg_month.' '.$regdtt->reg_year;
1371 1371
             $options[] = array(
1372 1372
                 'text' => $date,
1373 1373
                 'id' => $date
@@ -1397,11 +1397,11 @@  discard block
 block discarded – undo
1397 1397
             case 'today':
1398 1398
             case null:
1399 1399
             case 'all':
1400
-                $where['Event.status'] = array( 'NOT IN', array('trash') );
1400
+                $where['Event.status'] = array('NOT IN', array('trash'));
1401 1401
                 break;
1402 1402
 
1403 1403
             case 'draft':
1404
-                $where['Event.status'] = array( 'IN', array('draft', 'auto-draft') );
1404
+                $where['Event.status'] = array('IN', array('draft', 'auto-draft'));
1405 1405
 
1406 1406
             default:
1407 1407
                 $where['Event.status'] = $status;
@@ -1412,7 +1412,7 @@  discard block
 block discarded – undo
1412 1412
         // categories?
1413 1413
 
1414 1414
 
1415
-        if (!empty($evt_category)) {
1415
+        if ( ! empty($evt_category)) {
1416 1416
             $where['Event.Term_Taxonomy.taxonomy'] = 'espresso_event_categories';
1417 1417
             $where['Event.Term_Taxonomy.term_id'] = $evt_category;
1418 1418
         }
@@ -1436,8 +1436,8 @@  discard block
 block discarded – undo
1436 1436
         global $wp_locale;
1437 1437
 
1438 1438
         foreach ($DTTS as $DTT) {
1439
-            $localized_date = $wp_locale->get_month($DTT->dtt_month_num) . ' ' . $DTT->dtt_year;
1440
-            $id = $DTT->dtt_month . ' ' . $DTT->dtt_year;
1439
+            $localized_date = $wp_locale->get_month($DTT->dtt_month_num).' '.$DTT->dtt_year;
1440
+            $id = $DTT->dtt_month.' '.$DTT->dtt_year;
1441 1441
             $options[] = array(
1442 1442
                 'text' => $localized_date,
1443 1443
                 'id' => $id
@@ -1500,10 +1500,10 @@  discard block
 block discarded – undo
1500 1500
             return $btn;
1501 1501
         }
1502 1502
         $text = ! empty($text) ? $text : __('Submit', 'event_espresso');
1503
-        $btn .= '<input id="' . $ID . '-btn" class="' . $class . '" type="submit" value="' . $text . '" ' . $extra_attributes . '/>';
1504
-        if (! $input_only) {
1505
-            $btn_frm = '<form id="' . $ID . '-frm" method="POST" action="' . $url . '">';
1506
-            $btn_frm .= ! empty($nonce_action) ? wp_nonce_field($nonce_action, $nonce_action . '_nonce', true, false) : '';
1503
+        $btn .= '<input id="'.$ID.'-btn" class="'.$class.'" type="submit" value="'.$text.'" '.$extra_attributes.'/>';
1504
+        if ( ! $input_only) {
1505
+            $btn_frm = '<form id="'.$ID.'-frm" method="POST" action="'.$url.'">';
1506
+            $btn_frm .= ! empty($nonce_action) ? wp_nonce_field($nonce_action, $nonce_action.'_nonce', true, false) : '';
1507 1507
             $btn_frm .= $btn;
1508 1508
             $btn_frm .= '</form>';
1509 1509
             $btn = $btn_frm;
Please login to merge, or discard this patch.