Completed
Branch BUG/3575-event-deletion-previe... (bbeda1)
by
unknown
06:40 queued 04:49
created
core/libraries/messages/EE_Message_To_Generate.php 2 patches
Indentation   +300 added lines, -300 removed lines patch added patch discarded remove patch
@@ -12,304 +12,304 @@
 block discarded – undo
12 12
 class EE_Message_To_Generate
13 13
 {
14 14
 
15
-    /**
16
-     * @type string name of EE_messenger
17
-     */
18
-    protected $_messenger_name = null;
19
-
20
-    /**
21
-     * @type string name of EE_message_type
22
-     */
23
-    protected $_message_type_name = null;
24
-
25
-    /**
26
-     * @type EE_messenger
27
-     */
28
-    protected $_messenger = null;
29
-
30
-    /**
31
-     * @type EE_message_type
32
-     */
33
-    protected $_message_type = null;
34
-
35
-    /**
36
-     * Identifier for the context the message is to be generated for.
37
-     * @type string
38
-     */
39
-    protected $_context = '';
40
-
41
-    /**
42
-     * Data that will be used to generate message.
43
-     * @type array
44
-     */
45
-    protected $_data = array();
46
-
47
-    /**
48
-     * Whether this message is for a preview or not.
49
-     * @type bool
50
-     */
51
-    protected $_preview = false;
52
-
53
-    /**
54
-     * @type EE_Message $_message
55
-     */
56
-    protected $_message = null;
57
-
58
-    /**
59
-     * This is set by the constructor to indicate whether the incoming messenger
60
-     * and message type are valid.  This can then be checked by callers to determine whether
61
-     * to generate this message or not.
62
-     * @type bool
63
-     */
64
-    protected $_valid = false;
65
-
66
-    /**
67
-     * If there are any errors (non exception errors) they get added to this array for callers to decide
68
-     * how to handle.
69
-     * @type array
70
-     */
71
-    protected $_error_msg = array();
72
-
73
-    /**
74
-     * Can be accessed via the send_now() method, this is set in the validation
75
-     * routine via the EE_messenger::send_now() method.
76
-     * @type bool
77
-     */
78
-    protected $_send_now = false;
79
-
80
-    /**
81
-     * Holds the classname for the data handler used by the current message type.
82
-     * This is set on the first call to the public `get_data_handler_class_name()` method.
83
-     * @type string
84
-     */
85
-    protected $_data_handler_class_name = '';
86
-
87
-    /**
88
-     * one of the message status constants on EEM_Message
89
-     *
90
-     * @type string
91
-     */
92
-    protected $_message_status = '';
93
-
94
-
95
-
96
-    /**
97
-     * Constructor
98
-     *
99
-     * @param string $messenger_name    Slug representing messenger
100
-     * @param string $message_type_name Slug representing message type.
101
-     * @param mixed  $data              Data used for generating message.
102
-     * @param string $context           Optional context to restrict message generated for.
103
-     * @param bool   $preview           Whether this is being used to generate a preview or not.
104
-     * @param string $status
105
-     */
106
-    public function __construct(
107
-        $messenger_name,
108
-        $message_type_name,
109
-        $data = array(),
110
-        $context = '',
111
-        $preview = false,
112
-        $status = EEM_Message::status_incomplete
113
-    ) {
114
-        $this->_messenger_name      = $messenger_name;
115
-        $this->_message_type_name   = $message_type_name;
116
-        $this->_data                = is_array($data) ? $data : array( $data );
117
-        $this->_context             = $context;
118
-        $this->_preview             = $preview;
119
-        $this->_status              = $status;
120
-        // attempt to generate message immediately
121
-        $this->_message = $this->_generate_message();
122
-    }
123
-
124
-
125
-
126
-    /**
127
-     * @return string
128
-     */
129
-    public function context()
130
-    {
131
-        return $this->_context;
132
-    }
133
-
134
-
135
-
136
-    /**
137
-     * @return array
138
-     */
139
-    public function data()
140
-    {
141
-        return $this->_data;
142
-    }
143
-
144
-
145
-
146
-    /**
147
-     * @return EE_messenger
148
-     */
149
-    public function messenger()
150
-    {
151
-        return $this->_messenger;
152
-    }
153
-
154
-
155
-
156
-    /**
157
-     * @return EE_message_type
158
-     */
159
-    public function message_type()
160
-    {
161
-        return $this->_message_type;
162
-    }
163
-
164
-
165
-
166
-    /**
167
-     * @return boolean
168
-     */
169
-    public function preview()
170
-    {
171
-        return $this->_preview;
172
-    }
173
-
174
-
175
-
176
-    /**
177
-     * @param boolean $preview
178
-     */
179
-    public function set_preview($preview)
180
-    {
181
-        $this->_preview = filter_var($preview, FILTER_VALIDATE_BOOLEAN);
182
-    }
183
-
184
-
185
-
186
-    /**
187
-     * @return bool
188
-     */
189
-    public function send_now()
190
-    {
191
-        return $this->_send_now;
192
-    }
193
-
194
-
195
-
196
-    /**
197
-     * Simply returns the state of the $_valid property.
198
-     *
199
-     * @return bool
200
-     */
201
-    public function valid()
202
-    {
203
-        return $this->_valid;
204
-    }
205
-
206
-
207
-
208
-    /**
209
-     * generates an EE_Message using the supplied arguments and some defaults
210
-     *
211
-     * @param array $properties
212
-     * @return string
213
-     */
214
-    protected function _generate_message($properties = array())
215
-    {
216
-        $message = EE_Message_Factory::create(
217
-            array_merge(
218
-                array(
219
-                    'MSG_messenger'    => $this->_messenger_name,
220
-                    'MSG_message_type' => $this->_message_type_name,
221
-                    'MSG_context'      => $this->_context,
222
-                    'STS_ID'           => $this->_status,
223
-                ),
224
-                $properties
225
-            )
226
-        );
227
-        // validate the message, and if it's good, set some properties
228
-        try {
229
-            $message->is_valid_for_sending_or_generation(true);
230
-            $this->_valid = true;
231
-            $this->_messenger = $message->messenger_object();
232
-            $this->_message_type = $message->message_type_object();
233
-            $this->_send_now = $message->send_now();
234
-        } catch (Exception $e) {
235
-            $this->_valid = false;
236
-            $this->_error_msg[] = $e->getMessage();
237
-        }
238
-        return $message;
239
-    }
240
-
241
-
242
-
243
-    /**
244
-     *  Returns an instantiated EE_Message object from the internal data.
245
-     *
246
-     * @return EE_Message
247
-     */
248
-    public function get_EE_Message()
249
-    {
250
-        // already set ?
251
-        if ($this->_message instanceof EE_Message) {
252
-            return $this->_message;
253
-        }
254
-        // no? then let's create one
255
-        $this->_message = $this->_generate_message();
256
-        return $this->_message;
257
-    }
258
-
259
-
260
-
261
-    /**
262
-     * This returns the data_handler class name for the internal message type set.
263
-     * Note: this also verifies that the data handler class exists.  If it doesn't then $_valid is set to false
264
-     * and the data_handler_class name is set to an empty string.
265
-     *
266
-     * @param   bool    $preview    Used to indicate that the preview data handler is to be returned.
267
-     * @return  string
268
-     */
269
-    public function get_data_handler_class_name($preview = false)
270
-    {
271
-        if ($this->_data_handler_class_name === '' && $this->valid()) {
272
-            $ref = $preview ? 'Preview' : $this->_message_type->get_data_handler($this->_data);
273
-            // make sure internal data is updated.
274
-            $this->_data = $this->_message_type->get_data();
275
-
276
-            // verify
277
-            $this->_data_handler_class_name = EE_Message_To_Generate::verify_and_retrieve_class_name_for_data_handler_reference($ref);
278
-            if ($this->_data_handler_class_name === '') {
279
-                $this->_valid = false;
280
-            }
281
-        }
282
-        return $this->_data_handler_class_name;
283
-    }
284
-
285
-
286
-
287
-    /**
288
-     * Validates the given string as a reference for an existing, accessible data handler and returns the class name
289
-     * For the handler the reference matches.
290
-     *
291
-     * @param string $data_handler_reference
292
-     * @return string
293
-     */
294
-    public static function verify_and_retrieve_class_name_for_data_handler_reference($data_handler_reference)
295
-    {
296
-        $class_name = 'EE_Messages_' . $data_handler_reference . '_incoming_data';
297
-        if (! class_exists($class_name)) {
298
-            EE_Error::add_error(
299
-                sprintf(
300
-                    esc_html__(
301
-                        'The included data handler reference (%s) does not match any valid, accessible, "EE_Messages_incoming_data" classes.  Looking for %s.',
302
-                        'event_espresso'
303
-                    ),
304
-                    $data_handler_reference,
305
-                    $class_name
306
-                ),
307
-                __FILE__,
308
-                __FUNCTION__,
309
-                __LINE__
310
-            );
311
-            $class_name = ''; // clear out class_name so caller knows this isn't valid.
312
-        }
313
-        return $class_name;
314
-    }
15
+	/**
16
+	 * @type string name of EE_messenger
17
+	 */
18
+	protected $_messenger_name = null;
19
+
20
+	/**
21
+	 * @type string name of EE_message_type
22
+	 */
23
+	protected $_message_type_name = null;
24
+
25
+	/**
26
+	 * @type EE_messenger
27
+	 */
28
+	protected $_messenger = null;
29
+
30
+	/**
31
+	 * @type EE_message_type
32
+	 */
33
+	protected $_message_type = null;
34
+
35
+	/**
36
+	 * Identifier for the context the message is to be generated for.
37
+	 * @type string
38
+	 */
39
+	protected $_context = '';
40
+
41
+	/**
42
+	 * Data that will be used to generate message.
43
+	 * @type array
44
+	 */
45
+	protected $_data = array();
46
+
47
+	/**
48
+	 * Whether this message is for a preview or not.
49
+	 * @type bool
50
+	 */
51
+	protected $_preview = false;
52
+
53
+	/**
54
+	 * @type EE_Message $_message
55
+	 */
56
+	protected $_message = null;
57
+
58
+	/**
59
+	 * This is set by the constructor to indicate whether the incoming messenger
60
+	 * and message type are valid.  This can then be checked by callers to determine whether
61
+	 * to generate this message or not.
62
+	 * @type bool
63
+	 */
64
+	protected $_valid = false;
65
+
66
+	/**
67
+	 * If there are any errors (non exception errors) they get added to this array for callers to decide
68
+	 * how to handle.
69
+	 * @type array
70
+	 */
71
+	protected $_error_msg = array();
72
+
73
+	/**
74
+	 * Can be accessed via the send_now() method, this is set in the validation
75
+	 * routine via the EE_messenger::send_now() method.
76
+	 * @type bool
77
+	 */
78
+	protected $_send_now = false;
79
+
80
+	/**
81
+	 * Holds the classname for the data handler used by the current message type.
82
+	 * This is set on the first call to the public `get_data_handler_class_name()` method.
83
+	 * @type string
84
+	 */
85
+	protected $_data_handler_class_name = '';
86
+
87
+	/**
88
+	 * one of the message status constants on EEM_Message
89
+	 *
90
+	 * @type string
91
+	 */
92
+	protected $_message_status = '';
93
+
94
+
95
+
96
+	/**
97
+	 * Constructor
98
+	 *
99
+	 * @param string $messenger_name    Slug representing messenger
100
+	 * @param string $message_type_name Slug representing message type.
101
+	 * @param mixed  $data              Data used for generating message.
102
+	 * @param string $context           Optional context to restrict message generated for.
103
+	 * @param bool   $preview           Whether this is being used to generate a preview or not.
104
+	 * @param string $status
105
+	 */
106
+	public function __construct(
107
+		$messenger_name,
108
+		$message_type_name,
109
+		$data = array(),
110
+		$context = '',
111
+		$preview = false,
112
+		$status = EEM_Message::status_incomplete
113
+	) {
114
+		$this->_messenger_name      = $messenger_name;
115
+		$this->_message_type_name   = $message_type_name;
116
+		$this->_data                = is_array($data) ? $data : array( $data );
117
+		$this->_context             = $context;
118
+		$this->_preview             = $preview;
119
+		$this->_status              = $status;
120
+		// attempt to generate message immediately
121
+		$this->_message = $this->_generate_message();
122
+	}
123
+
124
+
125
+
126
+	/**
127
+	 * @return string
128
+	 */
129
+	public function context()
130
+	{
131
+		return $this->_context;
132
+	}
133
+
134
+
135
+
136
+	/**
137
+	 * @return array
138
+	 */
139
+	public function data()
140
+	{
141
+		return $this->_data;
142
+	}
143
+
144
+
145
+
146
+	/**
147
+	 * @return EE_messenger
148
+	 */
149
+	public function messenger()
150
+	{
151
+		return $this->_messenger;
152
+	}
153
+
154
+
155
+
156
+	/**
157
+	 * @return EE_message_type
158
+	 */
159
+	public function message_type()
160
+	{
161
+		return $this->_message_type;
162
+	}
163
+
164
+
165
+
166
+	/**
167
+	 * @return boolean
168
+	 */
169
+	public function preview()
170
+	{
171
+		return $this->_preview;
172
+	}
173
+
174
+
175
+
176
+	/**
177
+	 * @param boolean $preview
178
+	 */
179
+	public function set_preview($preview)
180
+	{
181
+		$this->_preview = filter_var($preview, FILTER_VALIDATE_BOOLEAN);
182
+	}
183
+
184
+
185
+
186
+	/**
187
+	 * @return bool
188
+	 */
189
+	public function send_now()
190
+	{
191
+		return $this->_send_now;
192
+	}
193
+
194
+
195
+
196
+	/**
197
+	 * Simply returns the state of the $_valid property.
198
+	 *
199
+	 * @return bool
200
+	 */
201
+	public function valid()
202
+	{
203
+		return $this->_valid;
204
+	}
205
+
206
+
207
+
208
+	/**
209
+	 * generates an EE_Message using the supplied arguments and some defaults
210
+	 *
211
+	 * @param array $properties
212
+	 * @return string
213
+	 */
214
+	protected function _generate_message($properties = array())
215
+	{
216
+		$message = EE_Message_Factory::create(
217
+			array_merge(
218
+				array(
219
+					'MSG_messenger'    => $this->_messenger_name,
220
+					'MSG_message_type' => $this->_message_type_name,
221
+					'MSG_context'      => $this->_context,
222
+					'STS_ID'           => $this->_status,
223
+				),
224
+				$properties
225
+			)
226
+		);
227
+		// validate the message, and if it's good, set some properties
228
+		try {
229
+			$message->is_valid_for_sending_or_generation(true);
230
+			$this->_valid = true;
231
+			$this->_messenger = $message->messenger_object();
232
+			$this->_message_type = $message->message_type_object();
233
+			$this->_send_now = $message->send_now();
234
+		} catch (Exception $e) {
235
+			$this->_valid = false;
236
+			$this->_error_msg[] = $e->getMessage();
237
+		}
238
+		return $message;
239
+	}
240
+
241
+
242
+
243
+	/**
244
+	 *  Returns an instantiated EE_Message object from the internal data.
245
+	 *
246
+	 * @return EE_Message
247
+	 */
248
+	public function get_EE_Message()
249
+	{
250
+		// already set ?
251
+		if ($this->_message instanceof EE_Message) {
252
+			return $this->_message;
253
+		}
254
+		// no? then let's create one
255
+		$this->_message = $this->_generate_message();
256
+		return $this->_message;
257
+	}
258
+
259
+
260
+
261
+	/**
262
+	 * This returns the data_handler class name for the internal message type set.
263
+	 * Note: this also verifies that the data handler class exists.  If it doesn't then $_valid is set to false
264
+	 * and the data_handler_class name is set to an empty string.
265
+	 *
266
+	 * @param   bool    $preview    Used to indicate that the preview data handler is to be returned.
267
+	 * @return  string
268
+	 */
269
+	public function get_data_handler_class_name($preview = false)
270
+	{
271
+		if ($this->_data_handler_class_name === '' && $this->valid()) {
272
+			$ref = $preview ? 'Preview' : $this->_message_type->get_data_handler($this->_data);
273
+			// make sure internal data is updated.
274
+			$this->_data = $this->_message_type->get_data();
275
+
276
+			// verify
277
+			$this->_data_handler_class_name = EE_Message_To_Generate::verify_and_retrieve_class_name_for_data_handler_reference($ref);
278
+			if ($this->_data_handler_class_name === '') {
279
+				$this->_valid = false;
280
+			}
281
+		}
282
+		return $this->_data_handler_class_name;
283
+	}
284
+
285
+
286
+
287
+	/**
288
+	 * Validates the given string as a reference for an existing, accessible data handler and returns the class name
289
+	 * For the handler the reference matches.
290
+	 *
291
+	 * @param string $data_handler_reference
292
+	 * @return string
293
+	 */
294
+	public static function verify_and_retrieve_class_name_for_data_handler_reference($data_handler_reference)
295
+	{
296
+		$class_name = 'EE_Messages_' . $data_handler_reference . '_incoming_data';
297
+		if (! class_exists($class_name)) {
298
+			EE_Error::add_error(
299
+				sprintf(
300
+					esc_html__(
301
+						'The included data handler reference (%s) does not match any valid, accessible, "EE_Messages_incoming_data" classes.  Looking for %s.',
302
+						'event_espresso'
303
+					),
304
+					$data_handler_reference,
305
+					$class_name
306
+				),
307
+				__FILE__,
308
+				__FUNCTION__,
309
+				__LINE__
310
+			);
311
+			$class_name = ''; // clear out class_name so caller knows this isn't valid.
312
+		}
313
+		return $class_name;
314
+	}
315 315
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
     ) {
114 114
         $this->_messenger_name      = $messenger_name;
115 115
         $this->_message_type_name   = $message_type_name;
116
-        $this->_data                = is_array($data) ? $data : array( $data );
116
+        $this->_data                = is_array($data) ? $data : array($data);
117 117
         $this->_context             = $context;
118 118
         $this->_preview             = $preview;
119 119
         $this->_status              = $status;
@@ -293,8 +293,8 @@  discard block
 block discarded – undo
293 293
      */
294 294
     public static function verify_and_retrieve_class_name_for_data_handler_reference($data_handler_reference)
295 295
     {
296
-        $class_name = 'EE_Messages_' . $data_handler_reference . '_incoming_data';
297
-        if (! class_exists($class_name)) {
296
+        $class_name = 'EE_Messages_'.$data_handler_reference.'_incoming_data';
297
+        if ( ! class_exists($class_name)) {
298 298
             EE_Error::add_error(
299 299
                 sprintf(
300 300
                     esc_html__(
Please login to merge, or discard this patch.
core/libraries/messages/EE_Message_To_Generate_From_Request.php 2 patches
Indentation   +109 added lines, -109 removed lines patch added patch discarded remove patch
@@ -20,113 +20,113 @@
 block discarded – undo
20 20
 {
21 21
 
22 22
 
23
-    /**
24
-     * This messenger is used to send the generated message.
25
-     *
26
-     * @type EE_messenger
27
-     */
28
-    protected $_sending_messenger = '';
29
-
30
-
31
-    /**
32
-     * Holds the token from the request.
33
-     *
34
-     * @type string
35
-     */
36
-    public $token = '';
37
-
38
-
39
-    /**
40
-     * Constructor
41
-     * This instantiates the object using arguments from the given request and calling the parent constructor.
42
-     *
43
-     * @param EE_Message_Resource_Manager $message_resource_manager
44
-     * @param RequestInterface            $request
45
-     * @throws EE_Error
46
-     */
47
-    public function __construct(EE_Message_Resource_Manager $message_resource_manager, RequestInterface $request)
48
-    {
49
-        parent::__construct(
50
-            $request->getRequestParam('gen_msgr'),
51
-            $request->getRequestParam('message_type'),
52
-            [],
53
-            $request->getRequestParam('context')
54
-        );
55
-        if (! $this->valid()) {
56
-            return;
57
-        }
58
-        $this->token              = $request->getRequestParam('token');
59
-        $this->_sending_messenger = $message_resource_manager->get_active_messenger(
60
-            $request->getRequestParam('snd_msgr')
61
-        );
62
-        $this->_validate_request();
63
-        $this->_data = $this->_get_data_from_request($request->getRequestParam('id'));
64
-    }
65
-
66
-
67
-    /**
68
-     * @return EE_messenger
69
-     */
70
-    public function sending_messenger()
71
-    {
72
-        return $this->_sending_messenger;
73
-    }
74
-
75
-
76
-    /**
77
-     * This validates set properties from the incoming request.
78
-     *
79
-     * @throws EE_Error
80
-     */
81
-    protected function _validate_request()
82
-    {
83
-        if (
84
-            ! $this->_sending_messenger instanceof EE_messenger
85
-            || ! $this->_messenger instanceof EE_messenger
86
-            || ! $this->_message_type instanceof EE_message_type
87
-            || empty($this->_context)
88
-            || empty($this->token)
89
-        ) {
90
-            throw new EE_Error(esc_html__(
91
-                'The request for the "msg_url_trigger" route has a malformed url.',
92
-                'event_espresso'
93
-            ));
94
-        }
95
-    }
96
-
97
-
98
-    /**
99
-     * This returns the data property according to what is expected from the request.
100
-     *
101
-     * @param $id
102
-     * @return mixed (whatever the data is returned from the message type).
103
-     * @throws EE_Error
104
-     */
105
-    protected function _get_data_from_request($id)
106
-    {
107
-        // get the EE_Registration from the token
108
-        /** @type EE_Registration $registration */
109
-        $registration = EEM_Registration::instance()->get_one([['REG_url_link' => $this->token]]);
110
-        // if no registration then bail early.
111
-        if (! $registration instanceof EE_Registration) {
112
-            throw new EE_Error(esc_html__('Unable to complete the request because the token is invalid.', 'event_espresso'));
113
-        }
114
-
115
-        return $this->_get_data_to_use($registration, $id);
116
-    }
117
-
118
-
119
-    /**
120
-     * This uses the set message type to retrieve the data in the correct format as it came from the url.
121
-     *
122
-     * @param EE_Registration $registration
123
-     * @param int             $data_id This is sometimes used for secondary data a message type requires.
124
-     * @return mixed   Data prepared as needed for generating this message.
125
-     * @throws EE_Error
126
-     */
127
-    protected function _get_data_to_use($registration, $data_id)
128
-    {
129
-        // use incoming data from url to setup data for the message type requirements
130
-        return $this->_message_type->get_data_for_context($this->_context, $registration, $data_id);
131
-    }
23
+	/**
24
+	 * This messenger is used to send the generated message.
25
+	 *
26
+	 * @type EE_messenger
27
+	 */
28
+	protected $_sending_messenger = '';
29
+
30
+
31
+	/**
32
+	 * Holds the token from the request.
33
+	 *
34
+	 * @type string
35
+	 */
36
+	public $token = '';
37
+
38
+
39
+	/**
40
+	 * Constructor
41
+	 * This instantiates the object using arguments from the given request and calling the parent constructor.
42
+	 *
43
+	 * @param EE_Message_Resource_Manager $message_resource_manager
44
+	 * @param RequestInterface            $request
45
+	 * @throws EE_Error
46
+	 */
47
+	public function __construct(EE_Message_Resource_Manager $message_resource_manager, RequestInterface $request)
48
+	{
49
+		parent::__construct(
50
+			$request->getRequestParam('gen_msgr'),
51
+			$request->getRequestParam('message_type'),
52
+			[],
53
+			$request->getRequestParam('context')
54
+		);
55
+		if (! $this->valid()) {
56
+			return;
57
+		}
58
+		$this->token              = $request->getRequestParam('token');
59
+		$this->_sending_messenger = $message_resource_manager->get_active_messenger(
60
+			$request->getRequestParam('snd_msgr')
61
+		);
62
+		$this->_validate_request();
63
+		$this->_data = $this->_get_data_from_request($request->getRequestParam('id'));
64
+	}
65
+
66
+
67
+	/**
68
+	 * @return EE_messenger
69
+	 */
70
+	public function sending_messenger()
71
+	{
72
+		return $this->_sending_messenger;
73
+	}
74
+
75
+
76
+	/**
77
+	 * This validates set properties from the incoming request.
78
+	 *
79
+	 * @throws EE_Error
80
+	 */
81
+	protected function _validate_request()
82
+	{
83
+		if (
84
+			! $this->_sending_messenger instanceof EE_messenger
85
+			|| ! $this->_messenger instanceof EE_messenger
86
+			|| ! $this->_message_type instanceof EE_message_type
87
+			|| empty($this->_context)
88
+			|| empty($this->token)
89
+		) {
90
+			throw new EE_Error(esc_html__(
91
+				'The request for the "msg_url_trigger" route has a malformed url.',
92
+				'event_espresso'
93
+			));
94
+		}
95
+	}
96
+
97
+
98
+	/**
99
+	 * This returns the data property according to what is expected from the request.
100
+	 *
101
+	 * @param $id
102
+	 * @return mixed (whatever the data is returned from the message type).
103
+	 * @throws EE_Error
104
+	 */
105
+	protected function _get_data_from_request($id)
106
+	{
107
+		// get the EE_Registration from the token
108
+		/** @type EE_Registration $registration */
109
+		$registration = EEM_Registration::instance()->get_one([['REG_url_link' => $this->token]]);
110
+		// if no registration then bail early.
111
+		if (! $registration instanceof EE_Registration) {
112
+			throw new EE_Error(esc_html__('Unable to complete the request because the token is invalid.', 'event_espresso'));
113
+		}
114
+
115
+		return $this->_get_data_to_use($registration, $id);
116
+	}
117
+
118
+
119
+	/**
120
+	 * This uses the set message type to retrieve the data in the correct format as it came from the url.
121
+	 *
122
+	 * @param EE_Registration $registration
123
+	 * @param int             $data_id This is sometimes used for secondary data a message type requires.
124
+	 * @return mixed   Data prepared as needed for generating this message.
125
+	 * @throws EE_Error
126
+	 */
127
+	protected function _get_data_to_use($registration, $data_id)
128
+	{
129
+		// use incoming data from url to setup data for the message type requirements
130
+		return $this->_message_type->get_data_for_context($this->_context, $registration, $data_id);
131
+	}
132 132
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -52,7 +52,7 @@  discard block
 block discarded – undo
52 52
             [],
53 53
             $request->getRequestParam('context')
54 54
         );
55
-        if (! $this->valid()) {
55
+        if ( ! $this->valid()) {
56 56
             return;
57 57
         }
58 58
         $this->token              = $request->getRequestParam('token');
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
         /** @type EE_Registration $registration */
109 109
         $registration = EEM_Registration::instance()->get_one([['REG_url_link' => $this->token]]);
110 110
         // if no registration then bail early.
111
-        if (! $registration instanceof EE_Registration) {
111
+        if ( ! $registration instanceof EE_Registration) {
112 112
             throw new EE_Error(esc_html__('Unable to complete the request because the token is invalid.', 'event_espresso'));
113 113
         }
114 114
 
Please login to merge, or discard this patch.
core/libraries/messages/EE_message_type.lib.php 2 patches
Indentation   +905 added lines, -905 removed lines patch added patch discarded remove patch
@@ -17,915 +17,915 @@
 block discarded – undo
17 17
 {
18 18
 
19 19
 
20
-    /**
21
-     * message type child classes will set what contexts are associated with the message type via this array.
22
-     * format:
23
-     * array(
24
-     * 'context' => array(
25
-     *        'label' => esc_html__('Context Label', 'event_espresso'),
26
-     *        'description' => esc_html__('Context description (for help popups)', 'event_espresso')
27
-     *    ));
28
-     *
29
-     * @var array
30
-     */
31
-    protected $_contexts = array();
32
-
33
-
34
-    /**
35
-     * This property is used to define what the display label will be for contexts (eg. "Recipients", "Themes" etc.)
36
-     * Format:
37
-     * array( 'label' => 'something', 'plural' => 'somethings', 'description' => 'something' );
38
-     *
39
-     * @var array
40
-     */
41
-    protected $_context_label;
42
-
43
-
44
-    /** MESSAGE ASSEMBLING PROPERTIES **/
45
-    /**
46
-     * This parameter simply holds all the message objects for retrieval by the controller and sending to the messenger.
47
-     *
48
-     * @var array of message objects.
49
-     */
50
-    public $messages = array();
51
-
52
-    /**
53
-     * The following holds the templates that will be used to assemble the message object for the messenger.
54
-     *
55
-     * @var array
56
-     */
57
-    protected $_templates;
58
-
59
-
60
-    /**
61
-     * If a specific template is being parsed, this will hold the message template group GRP_ID for that template.
62
-     *
63
-     * @var int.
64
-     */
65
-    protected $_GRP_ID;
66
-
67
-
68
-    /** OTHER INFO PROPERTIES **/
69
-    /**
70
-     * This will hold the count of the message objects in the messages array. This could be used for determining if
71
-     * batching/queueing is needed.
72
-     *
73
-     * @var int
74
-     */
75
-    public $count = 0;
76
-
77
-
78
-    /**
79
-     * This is set via the `do_messenger_hooks` method and contains the messenger being used to send the message of
80
-     * this message type at time of sending.
81
-     *
82
-     * @var EE_messenger
83
-     */
84
-    protected $_active_messenger;
85
-
86
-
87
-    /**
88
-     * This will hold the shortcode_replace instance for handling replacement of shortcodes in the various templates
89
-     *
90
-     * @var object
91
-     */
92
-    protected $_shortcode_replace;
93
-
94
-
95
-    /**
96
-     * The purpose for this property is to simply allow message types to indicate if the message generated is intended
97
-     * for only single context.  Child message types should redefine this variable (if necessary) in the
98
-     * _set_data_Handler() method.
99
-     *
100
-     * @var boolean
101
-     */
102
-    protected $_single_message = false;
103
-
104
-
105
-    /**
106
-     * This will hold an array of specific reg_ids that are receiving messages.
107
-     *
108
-     * @since 4.7.x
109
-     * @var array
110
-     */
111
-    protected $_regs_for_sending = array();
112
-
113
-
114
-    /**
115
-     * This holds the data passed to this class from the controller and also the final processed data.
116
-     *
117
-     * @var object
118
-     */
119
-    protected $_data;
120
-
121
-
122
-    /**
123
-     * this is just a flag indicating whether we're in preview mode or not.
124
-     *
125
-     * @var bool
126
-     */
127
-    protected $_preview = false;
128
-
129
-
130
-    /**
131
-     * This just holds defaults for addressee data that children merge with their data array setup
132
-     *
133
-     * @var array
134
-     */
135
-    protected $_default_addressee_data;
136
-
137
-
138
-    /**
139
-     * Child classes declare through this property what handler they want to use for the incoming data and this string
140
-     * is used to instantiate the EE_Messages_incoming_data child class for that handler.
141
-     *
142
-     * @var string
143
-     */
144
-    protected $_data_handler;
145
-
146
-
147
-    /**
148
-     * This holds any specific fields for holding any settings related to a message type (if any needed)
149
-     *
150
-     * @var array
151
-     */
152
-    protected $_admin_settings_fields = array();
153
-
154
-    /**
155
-     * this property will hold any existing setting that may have been set in the admin.
156
-     *
157
-     * @var array
158
-     */
159
-    protected $_existing_admin_settings = array();
160
-
161
-
162
-    /**
163
-     * This is used to designate the generating and alternative sending messengers for a message type.  It is set via
164
-     * set_with_messengers() on construct. Note, generating messenger also acts as a sending messenger for this message
165
-     * type.  However ONLY the generating messengers are used for creating templates for this message type. Should be
166
-     * in this format:
167
-     * {
168
-     *
169
-     * @type string $generating_messenger the name of the generating messenger.  Generating
170
-     *                                          messengers are used for generating templates,
171
-     *                                          doing validation and defining valid shortcodes.
172
-     *      {
173
-     * @type string $sending_messenger    values are the name(s) for the sending
174
-     *                                              messengers.  sending messengers are
175
-     *                                              just valid delivery vehicles that will utilize
176
-     *                                              the templates (and generated EE_message
177
-     *                                              objects from the generating messengers).
178
-     *      }
179
-     * }
180
-     * @since                             4.5.0
181
-     * @var array
182
-     */
183
-    protected $_with_messengers = array();
184
-
185
-
186
-    /**
187
-     * This holds the addressees in an array indexed by context for later retrieval when assembling the message objects.
188
-     *
189
-     * @access protected
190
-     * @var array
191
-     */
192
-    protected $_addressees = array();
193
-
194
-
195
-    /**
196
-     * This allows each message type to set what alternate messenger&message type combination can be used for fallback
197
-     * default templates if there are no specific ones defined for this messenger and message type.  Should be in the
198
-     * format:
199
-     * array(
200
-     *      'messenger' => 'message_type',
201
-     *      'another_messenger' => another_message_type
202
-     * );
203
-     * This is set in the message type constructor.
204
-     *
205
-     * @var array
206
-     */
207
-    protected $_master_templates = array();
208
-
209
-
210
-    /**
211
-     * This holds whatever the set template pack is for a message template group when generating messages.
212
-     *
213
-     * @since 4.5.0
214
-     * @var EE_Messages_Template_Pack
215
-     */
216
-    protected $_template_pack;
217
-
218
-
219
-    /**
220
-     * This holds whatever the set variation is for a message template group when generating messages.
221
-     *
222
-     * @since 4.5.0
223
-     * @var string
224
-     */
225
-    protected $_variation;
226
-
227
-
228
-    /**
229
-     * EE_message_type constructor.
230
-     */
231
-    public function __construct()
232
-    {
233
-        $this->_messages_item_type = 'message_type';
234
-        $this->_set_contexts();
235
-        $this->_set_with_messengers();
236
-        parent::__construct();
237
-    }
238
-
239
-
240
-    /**
241
-     * This sets the data handler for the message type.  It must be used to define the _data_handler property.  It is
242
-     * called when messages are setup.
243
-     *
244
-     * @abstract
245
-     * @access protected
246
-     * @return void
247
-     */
248
-    abstract protected function _set_data_handler();
249
-
250
-
251
-    /**
252
-     * This method should return a EE_Base_Class object (or array of EE_Base_Class objects) for the given context and
253
-     * ID (which should be the primary key id for the base class).  Client code doesn't have to know what a message
254
-     * type's data handler is.
255
-     *
256
-     * @since 4.5.0
257
-     * @param string          $context      This should be a string matching a valid context for the message type.
258
-     * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
259
-     *                                      guessing a url).
260
-     * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
261
-     *                                      EE_Base_Class_Object
262
-     * @return mixed ( EE_Base_Class||EE_Base_Class[] )
263
-     */
264
-    abstract protected function _get_data_for_context($context, EE_Registration $registration, $id);
265
-
266
-
267
-    /**
268
-     * _set_contexts
269
-     * This sets up the contexts associated with the message_type
270
-     *
271
-     * @abstract
272
-     * @access  protected
273
-     * @return  void
274
-     */
275
-    abstract protected function _set_contexts();
276
-
277
-
278
-    /**
279
-     * This is used to get the "id" value fo the msg_trigger_url generated by get_url_trigger().
280
-     * In most cases, child classes don't need anything, (hence the default of 0), however if there is a specific
281
-     * EE_Base_Class that is required in generating a message for a message type recipient then the message
282
-     * type should override this method and use the given params to generate the correct ID.
283
-     *
284
-     * @param string          $context      The message type context.
285
-     * @param EE_Registration $registration Registration object
286
-     * @deprecated 4.9.0
287
-     * @return int
288
-     */
289
-    protected function _get_id_for_msg_url($context, EE_Registration $registration)
290
-    {
291
-        return 0;
292
-    }
293
-
294
-
295
-    /**
296
-     * This sets up any action/filter hooks this message type puts in place for a specific messenger.  Note that by
297
-     * default this does nothing.  Child classes will need to override if they want to add specific hooks for a
298
-     * messenger.
299
-     *
300
-     * @since 1.0.0
301
-     * @return void
302
-     */
303
-    protected function _do_messenger_hooks()
304
-    {
305
-        return;
306
-    }
307
-
308
-
309
-    /**
310
-     * This is a public wrapper for the protected _do_messenger_hooks() method.
311
-     * For backward compat reasons, this was done rather than making the protected method public.
312
-     *
313
-     * @param   EE_messenger $messenger This is used to set the $_active_messenger property, so message types are able
314
-     *                                  to know what messenger is being used to send the message at the time of
315
-     *                                  sending.
316
-     * @since 4.9.0
317
-     */
318
-    public function do_messenger_hooks($messenger = null)
319
-    {
320
-        $this->_active_messenger = $messenger;
321
-        $this->_do_messenger_hooks();
322
-    }
323
-
324
-
325
-    /**
326
-     * This method returns whether this message type should always generate a new copy
327
-     * when requested, or if links can be to the already generated copy.
328
-     * Note: this does NOT affect viewing/resending already generated messages in the EE_Message list table.
329
-     * Child classes should override this if different from the default of false.
330
-     *
331
-     * @return bool     false means can link to generated EE_Message.  true must regenerate.
332
-     */
333
-    public function always_generate()
334
-    {
335
-        return false;
336
-    }
337
-
338
-
339
-    /**
340
-     * Returns the priority for the message type.
341
-     * Priorities are defined as constants on EEM_Message.  Currently there are three priorities:
342
-     * - EEM_Message::priority_high
343
-     * - EEM_Message::priority_medium
344
-     * - EEM_Message::priority_low
345
-     * Priority is used to determine the weight the message type is given when queuing for generation and/or sending.
346
-     *
347
-     * @see    EEM_Message for more phpdocs on priority.
348
-     *         The default priority for all message_types is EEM_Message::priority_low.  Message Types wanting to give
349
-     *         a higher priority must override this method. Also note, messengers are able to override priorities
350
-     *         queuing instructions if their "send_now" flag is set to true. An example of this is the HTML messenger
351
-     *         which displays things in the browser.
352
-     * @since  4.9.0
353
-     * @return int
354
-     */
355
-    public function get_priority()
356
-    {
357
-        return EEM_Message::priority_low;
358
-    }
359
-
360
-
361
-    /**
362
-     * This runs the _set_data_handler() method for message types and then returns what got set.
363
-     *
364
-     * @param mixed $data This sets the data property for the message type with the incoming data used for generating.
365
-     * @return string (the reference for the data handler) (will be an empty string if could not be determined).
366
-     */
367
-    public function get_data_handler($data)
368
-    {
369
-        $this->_data = $data;
370
-        $this->_set_data_handler();
371
-        return apply_filters('FHEE__EE_message_type__get_data_handler', $this->_data_handler, $this);
372
-    }
373
-
374
-
375
-    /**
376
-     * This is called externally to reset the value of the $_data property for the message type.
377
-     * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
378
-     * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called
379
-     * (and for back compat reasons). This particular method is used in
380
-     * EE_Messages_Generator::_reset_current_properties to ensure that the internal _data on the message type is
381
-     * cleaned before subsequent EE_Message generation in the same request.
382
-     *
383
-     * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
384
-     *            ensure that there is no manipulation of the _data property during run time so there's a clear
385
-     *            expectation of what it is.  Likely we need to ensure that _data is not persisted IN the message type
386
-     *            at all.
387
-     * @internal  Plugin authors, do not implement this method, it is subject to change.
388
-     * @since     4.9
389
-     */
390
-    public function reset_data()
391
-    {
392
-        $this->_data = null;
393
-    }
394
-
395
-
396
-    /**
397
-     * This does some validation of incoming params gets the url trigger from the defined method in the specific child
398
-     * class and then filters the results.
399
-     *
400
-     * @param string          $context           The message type context
401
-     * @param string          $sending_messenger The sending messenger
402
-     * @param EE_Registration $registration      Registration object
403
-     * @throws EE_Error
404
-     * @deprecated  4.9.0  Likely 4.9.10 or 4.10.0 will remove this method completely
405
-     * @return string          generated url
406
-     */
407
-    public function get_url_trigger($context, $sending_messenger, EE_Registration $registration)
408
-    {
409
-        // validate context
410
-        // valid context?
411
-        if (! isset($this->_contexts[ $context ])) {
412
-            throw new EE_Error(
413
-                sprintf(
414
-                    esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
415
-                    $context,
416
-                    get_class($this)
417
-                )
418
-            );
419
-        }
420
-        // valid sending_messenger?
421
-        $not_valid_msgr = false;
422
-        foreach ($this->_with_messengers as $generating => $sendings) {
423
-            if (empty($sendings) || array_search($sending_messenger, $sendings) === false) {
424
-                $not_valid_msgr = true;
425
-            }
426
-        }
427
-        if ($not_valid_msgr) {
428
-            throw new EE_Error(
429
-                sprintf(
430
-                    esc_html__(
431
-                        'The given sending messenger string (%s) does not match a valid sending messenger with the %s.  If this is incorrect, make sure that the message type has defined this messenger as a sending messenger in its $_with_messengers array.',
432
-                        'event_espresso'
433
-                    ),
434
-                    $sending_messenger,
435
-                    get_class($this)
436
-                )
437
-            );
438
-        }
439
-        return EEH_MSG_Template::generate_url_trigger(
440
-            $sending_messenger,
441
-            $this->_active_messenger->name,
442
-            $context,
443
-            $this->name,
444
-            $registration,
445
-            $this->_GRP_ID,
446
-            $this->_get_id_for_msg_url($context, $registration)
447
-        );
448
-    }
449
-
450
-
451
-    /**
452
-     * Wrapper for _get_data_for_context() that handles some validation before calling the main class and also allows
453
-     * for filtering. This is (currently) called by the EED_Messages module.
454
-     *
455
-     * @since 4.5.0
456
-     * @throws EE_Error
457
-     * @param string          $context      This should be a string matching a valid context for the message type.
458
-     * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
459
-     *                                      guessing a url).
460
-     * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
461
-     *                                      EE_Base_Class_Object
462
-     * @return mixed (EE_Base_Class||EE_Base_Class[])
463
-     */
464
-    public function get_data_for_context($context, EE_Registration $registration, $id = 0)
465
-    {
466
-        // valid context?
467
-        if (! isset($this->_contexts[ $context ])) {
468
-            throw new EE_Error(
469
-                sprintf(
470
-                    esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
471
-                    $context,
472
-                    get_class($this)
473
-                )
474
-            );
475
-        }
476
-        // get data and apply global and class specific filters on it.
477
-        $data = apply_filters(
478
-            'FHEE__EE_message_type__get_data_for_context__data',
479
-            $this->_get_data_for_context($context, $registration, $id),
480
-            $this
481
-        );
482
-        $data = apply_filters('FHEE__' . get_class($this) . '__get_data_for_context__data', $data, $this);
483
-        // if empty then something went wrong!
484
-        if (empty($data)) {
485
-            throw new EE_Error(
486
-                sprintf(
487
-                    esc_html__(
488
-                        'There is no data retrieved, it is possible that the id given (%d) does not match any value in the database for the corresponding EE_Base_Class used by the data handler for the %s message type.',
489
-                        'event_espresso'
490
-                    ),
491
-                    $id,
492
-                    $this->name
493
-                )
494
-            );
495
-        }
496
-        return $data;
497
-    }
498
-
499
-
500
-    /**
501
-     * This returns the contents of the _data property.
502
-     * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
503
-     * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called.
504
-     *
505
-     * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
506
-     *            ensure that there is no manipulation of the _data property during run time so there's a clear
507
-     *            expectation of what it is.
508
-     * @internal  Plugin authors, do not implement this method, it is subject to change.
509
-     * @return mixed
510
-     */
511
-    public function get_data()
512
-    {
513
-        return $this->_data;
514
-    }
515
-
516
-
517
-    /**
518
-     * used to set the $_with_messengers property. (this is a default, child classes SHOULD override)
519
-     *
520
-     * @see   property definition for description of setup.
521
-     * @since 4.5.0
522
-     * @abstract
523
-     * @return void
524
-     */
525
-    protected function _set_with_messengers()
526
-    {
527
-        $this->_with_messengers = array(
528
-            'email' => array('html'),
529
-        );
530
-    }
531
-
532
-
533
-    /**
534
-     * Return the value of the _with_messengers property
535
-     *
536
-     * @since 4.5.0
537
-     * @return array
538
-     */
539
-    public function with_messengers()
540
-    {
541
-        return apply_filters(
542
-            'FHEE__EE_message_type__get_with_messengers__with_messengers__' . get_class($this),
543
-            $this->_with_messengers
544
-        );
545
-    }
546
-
547
-
548
-    /**
549
-     * this public method accepts a page slug (for an EE_admin page) and will return the response from the child class
550
-     * callback function if that page is registered via the `_admin_registered_page` property set by the child class.
551
-     * *
552
-     *
553
-     * @param string $page       the slug of the EE admin page
554
-     * @param array  $messengers an array of active messenger objects
555
-     * @param string $action     the page action (to allow for more specific handling - i.e. edit vs. add pages)
556
-     * @param array  $extra      This is just an extra argument that can be used to pass additional data for setting up
557
-     *                           page content.
558
-     * @access public
559
-     * @return string
560
-     */
561
-    public function get_message_type_admin_page_content(
562
-        $page,
563
-        $action = null,
564
-        $extra = array(),
565
-        $messengers = array()
566
-    ) {
567
-        // we can also further refine the context by action (if present).
568
-        return $this->_get_admin_page_content($page, $action, $extra, $messengers);
569
-    }
570
-
571
-
572
-    /**
573
-     * @return array
574
-     */
575
-    public function get_contexts()
576
-    {
577
-        return $this->_contexts;
578
-    }
579
-
580
-
581
-    /**
582
-     * This just returns the context label for a given context (as set in $_context_label property)
583
-     *
584
-     * @access public
585
-     * @return array
586
-     */
587
-    public function get_context_label()
588
-    {
589
-        return $this->_context_label;
590
-    }
591
-
592
-
593
-    /**
594
-     * This just returns the (filtered) _master_templates property.
595
-     *
596
-     * @see property definition for documentation.
597
-     * @return array
598
-     */
599
-    public function get_master_templates()
600
-    {
601
-        // first class specific filter then filter that by the global filter.
602
-        $master_templates = apply_filters(
603
-            'FHEE__' . get_class($this) . '__get_master_templates',
604
-            $this->_master_templates
605
-        );
606
-        return apply_filters('FHEE__EE_message_type__get_master_templates', $master_templates, $this);
607
-    }
608
-
609
-
610
-    /**
611
-     * Accepts an incoming data handler which contains data for processing, and returns an array of
612
-     * EE_Messages_Addressee objects.
613
-     *
614
-     * @param EE_Messages_incoming_data $data
615
-     * @param string                    $context Limit addressees to specific context.
616
-     * @return array An array indexed by context where each context is an array of EE_Messages_Addressee objects for
617
-     *                                           that context
618
-     * @throws EE_Error
619
-     */
620
-    public function get_addressees(EE_Messages_incoming_data $data, $context = '')
621
-    {
622
-        // override _data
623
-        $this->_data       = $data;
624
-        $addressees        = array();
625
-        $original_contexts = $this->_contexts;
626
-        // if incoming context then limit to that context
627
-        if (! empty($context)) {
628
-            $cntxt = ! empty($this->_contexts[ $context ]) ? $this->_contexts[ $context ] : '';
629
-            if (! empty($cntxt)) {
630
-                $this->_contexts           = array();
631
-                $this->_contexts[ $context ] = $cntxt;
632
-            }
633
-        }
634
-        $this->_set_default_addressee_data();
635
-        if ($this->_process_data()) {
636
-            $addressees = $this->_addressees;
637
-        }
638
-
639
-        // reset contexts and addressees
640
-        $this->_contexts   = $original_contexts;
641
-        $this->_addressees = array();
642
-        return $addressees;
643
-    }
644
-
645
-
646
-    /**
647
-     * processes the data object so we get
648
-     *
649
-     * @throws EE_Error
650
-     * @return bool  true means data was processed successfully, false means not.
651
-     */
652
-    protected function _process_data()
653
-    {
654
-        // at a minimum, we NEED EE_Attendee objects.
655
-        if (empty($this->_data->attendees)) {
656
-            return false;  // there's no data to process!
657
-        }
658
-        // process addressees for each context.  Child classes will have to have methods for
659
-        // each context defined to handle the processing of the data object within them
660
-        foreach ($this->_contexts as $context => $details) {
661
-            $xpctd_method = '_' . $context . '_addressees';
662
-            if (! method_exists($this, $xpctd_method)) {
663
-                throw new EE_Error(
664
-                    sprintf(
665
-                        esc_html__(
666
-                            'The data for %1$s message type cannot be prepared because there is no set method for doing so.  The expected method name is "%2$s" please doublecheck the %1$s message type class and make sure that method is present',
667
-                            'event_espresso'
668
-                        ),
669
-                        $this->label['singular'],
670
-                        $xpctd_method
671
-                    )
672
-                );
673
-            }
674
-            $this->_addressees[ $context ] = call_user_func(array($this, $xpctd_method));
675
-        }
676
-        return true; // data was processed successfully.
677
-    }
678
-
679
-
680
-    /**
681
-     * sets the default_addressee_data property,
682
-     *
683
-     * @access private
684
-     * @return void
685
-     */
686
-    private function _set_default_addressee_data()
687
-    {
688
-        $this->_default_addressee_data = array(
689
-            'billing'                  => $this->_data->billing,
690
-            'taxes'                    => $this->_data->taxes,
691
-            'tax_line_items'           => $this->_data->tax_line_items,
692
-            'additional_line_items'    => $this->_data->additional_line_items,
693
-            'grand_total_line_item'    => $this->_data->grand_total_line_item,
694
-            'txn'                      => $this->_data->txn,
695
-            'payments'                 => $this->_data->payments,
696
-            'payment'                  => isset($this->_data->payment) && $this->_data->payment instanceof EE_Payment
697
-                ? $this->_data->payment
698
-                : null,
699
-            'reg_objs'                 => $this->_data->reg_objs,
700
-            'registrations'            => $this->_data->registrations,
701
-            'datetimes'                => $this->_data->datetimes,
702
-            'tickets'                  => $this->_data->tickets,
703
-            'line_items_with_children' => $this->_data->line_items_with_children,
704
-            'questions'                => $this->_data->questions,
705
-            'answers'                  => $this->_data->answers,
706
-            'txn_status'               => $this->_data->txn_status,
707
-            'total_ticket_count'       => $this->_data->total_ticket_count,
708
-        );
709
-        if (is_array($this->_data->primary_attendee_data)) {
710
-            $this->_default_addressee_data                    = array_merge(
711
-                $this->_default_addressee_data,
712
-                $this->_data->primary_attendee_data
713
-            );
714
-            $this->_default_addressee_data['primary_att_obj'] = $this->_data->primary_attendee_data['att_obj'];
715
-            $this->_default_addressee_data['primary_reg_obj'] = $this->_data->primary_attendee_data['reg_obj'];
716
-        }
717
-    }
718
-
719
-
720
-
721
-    /********************
20
+	/**
21
+	 * message type child classes will set what contexts are associated with the message type via this array.
22
+	 * format:
23
+	 * array(
24
+	 * 'context' => array(
25
+	 *        'label' => esc_html__('Context Label', 'event_espresso'),
26
+	 *        'description' => esc_html__('Context description (for help popups)', 'event_espresso')
27
+	 *    ));
28
+	 *
29
+	 * @var array
30
+	 */
31
+	protected $_contexts = array();
32
+
33
+
34
+	/**
35
+	 * This property is used to define what the display label will be for contexts (eg. "Recipients", "Themes" etc.)
36
+	 * Format:
37
+	 * array( 'label' => 'something', 'plural' => 'somethings', 'description' => 'something' );
38
+	 *
39
+	 * @var array
40
+	 */
41
+	protected $_context_label;
42
+
43
+
44
+	/** MESSAGE ASSEMBLING PROPERTIES **/
45
+	/**
46
+	 * This parameter simply holds all the message objects for retrieval by the controller and sending to the messenger.
47
+	 *
48
+	 * @var array of message objects.
49
+	 */
50
+	public $messages = array();
51
+
52
+	/**
53
+	 * The following holds the templates that will be used to assemble the message object for the messenger.
54
+	 *
55
+	 * @var array
56
+	 */
57
+	protected $_templates;
58
+
59
+
60
+	/**
61
+	 * If a specific template is being parsed, this will hold the message template group GRP_ID for that template.
62
+	 *
63
+	 * @var int.
64
+	 */
65
+	protected $_GRP_ID;
66
+
67
+
68
+	/** OTHER INFO PROPERTIES **/
69
+	/**
70
+	 * This will hold the count of the message objects in the messages array. This could be used for determining if
71
+	 * batching/queueing is needed.
72
+	 *
73
+	 * @var int
74
+	 */
75
+	public $count = 0;
76
+
77
+
78
+	/**
79
+	 * This is set via the `do_messenger_hooks` method and contains the messenger being used to send the message of
80
+	 * this message type at time of sending.
81
+	 *
82
+	 * @var EE_messenger
83
+	 */
84
+	protected $_active_messenger;
85
+
86
+
87
+	/**
88
+	 * This will hold the shortcode_replace instance for handling replacement of shortcodes in the various templates
89
+	 *
90
+	 * @var object
91
+	 */
92
+	protected $_shortcode_replace;
93
+
94
+
95
+	/**
96
+	 * The purpose for this property is to simply allow message types to indicate if the message generated is intended
97
+	 * for only single context.  Child message types should redefine this variable (if necessary) in the
98
+	 * _set_data_Handler() method.
99
+	 *
100
+	 * @var boolean
101
+	 */
102
+	protected $_single_message = false;
103
+
104
+
105
+	/**
106
+	 * This will hold an array of specific reg_ids that are receiving messages.
107
+	 *
108
+	 * @since 4.7.x
109
+	 * @var array
110
+	 */
111
+	protected $_regs_for_sending = array();
112
+
113
+
114
+	/**
115
+	 * This holds the data passed to this class from the controller and also the final processed data.
116
+	 *
117
+	 * @var object
118
+	 */
119
+	protected $_data;
120
+
121
+
122
+	/**
123
+	 * this is just a flag indicating whether we're in preview mode or not.
124
+	 *
125
+	 * @var bool
126
+	 */
127
+	protected $_preview = false;
128
+
129
+
130
+	/**
131
+	 * This just holds defaults for addressee data that children merge with their data array setup
132
+	 *
133
+	 * @var array
134
+	 */
135
+	protected $_default_addressee_data;
136
+
137
+
138
+	/**
139
+	 * Child classes declare through this property what handler they want to use for the incoming data and this string
140
+	 * is used to instantiate the EE_Messages_incoming_data child class for that handler.
141
+	 *
142
+	 * @var string
143
+	 */
144
+	protected $_data_handler;
145
+
146
+
147
+	/**
148
+	 * This holds any specific fields for holding any settings related to a message type (if any needed)
149
+	 *
150
+	 * @var array
151
+	 */
152
+	protected $_admin_settings_fields = array();
153
+
154
+	/**
155
+	 * this property will hold any existing setting that may have been set in the admin.
156
+	 *
157
+	 * @var array
158
+	 */
159
+	protected $_existing_admin_settings = array();
160
+
161
+
162
+	/**
163
+	 * This is used to designate the generating and alternative sending messengers for a message type.  It is set via
164
+	 * set_with_messengers() on construct. Note, generating messenger also acts as a sending messenger for this message
165
+	 * type.  However ONLY the generating messengers are used for creating templates for this message type. Should be
166
+	 * in this format:
167
+	 * {
168
+	 *
169
+	 * @type string $generating_messenger the name of the generating messenger.  Generating
170
+	 *                                          messengers are used for generating templates,
171
+	 *                                          doing validation and defining valid shortcodes.
172
+	 *      {
173
+	 * @type string $sending_messenger    values are the name(s) for the sending
174
+	 *                                              messengers.  sending messengers are
175
+	 *                                              just valid delivery vehicles that will utilize
176
+	 *                                              the templates (and generated EE_message
177
+	 *                                              objects from the generating messengers).
178
+	 *      }
179
+	 * }
180
+	 * @since                             4.5.0
181
+	 * @var array
182
+	 */
183
+	protected $_with_messengers = array();
184
+
185
+
186
+	/**
187
+	 * This holds the addressees in an array indexed by context for later retrieval when assembling the message objects.
188
+	 *
189
+	 * @access protected
190
+	 * @var array
191
+	 */
192
+	protected $_addressees = array();
193
+
194
+
195
+	/**
196
+	 * This allows each message type to set what alternate messenger&message type combination can be used for fallback
197
+	 * default templates if there are no specific ones defined for this messenger and message type.  Should be in the
198
+	 * format:
199
+	 * array(
200
+	 *      'messenger' => 'message_type',
201
+	 *      'another_messenger' => another_message_type
202
+	 * );
203
+	 * This is set in the message type constructor.
204
+	 *
205
+	 * @var array
206
+	 */
207
+	protected $_master_templates = array();
208
+
209
+
210
+	/**
211
+	 * This holds whatever the set template pack is for a message template group when generating messages.
212
+	 *
213
+	 * @since 4.5.0
214
+	 * @var EE_Messages_Template_Pack
215
+	 */
216
+	protected $_template_pack;
217
+
218
+
219
+	/**
220
+	 * This holds whatever the set variation is for a message template group when generating messages.
221
+	 *
222
+	 * @since 4.5.0
223
+	 * @var string
224
+	 */
225
+	protected $_variation;
226
+
227
+
228
+	/**
229
+	 * EE_message_type constructor.
230
+	 */
231
+	public function __construct()
232
+	{
233
+		$this->_messages_item_type = 'message_type';
234
+		$this->_set_contexts();
235
+		$this->_set_with_messengers();
236
+		parent::__construct();
237
+	}
238
+
239
+
240
+	/**
241
+	 * This sets the data handler for the message type.  It must be used to define the _data_handler property.  It is
242
+	 * called when messages are setup.
243
+	 *
244
+	 * @abstract
245
+	 * @access protected
246
+	 * @return void
247
+	 */
248
+	abstract protected function _set_data_handler();
249
+
250
+
251
+	/**
252
+	 * This method should return a EE_Base_Class object (or array of EE_Base_Class objects) for the given context and
253
+	 * ID (which should be the primary key id for the base class).  Client code doesn't have to know what a message
254
+	 * type's data handler is.
255
+	 *
256
+	 * @since 4.5.0
257
+	 * @param string          $context      This should be a string matching a valid context for the message type.
258
+	 * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
259
+	 *                                      guessing a url).
260
+	 * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
261
+	 *                                      EE_Base_Class_Object
262
+	 * @return mixed ( EE_Base_Class||EE_Base_Class[] )
263
+	 */
264
+	abstract protected function _get_data_for_context($context, EE_Registration $registration, $id);
265
+
266
+
267
+	/**
268
+	 * _set_contexts
269
+	 * This sets up the contexts associated with the message_type
270
+	 *
271
+	 * @abstract
272
+	 * @access  protected
273
+	 * @return  void
274
+	 */
275
+	abstract protected function _set_contexts();
276
+
277
+
278
+	/**
279
+	 * This is used to get the "id" value fo the msg_trigger_url generated by get_url_trigger().
280
+	 * In most cases, child classes don't need anything, (hence the default of 0), however if there is a specific
281
+	 * EE_Base_Class that is required in generating a message for a message type recipient then the message
282
+	 * type should override this method and use the given params to generate the correct ID.
283
+	 *
284
+	 * @param string          $context      The message type context.
285
+	 * @param EE_Registration $registration Registration object
286
+	 * @deprecated 4.9.0
287
+	 * @return int
288
+	 */
289
+	protected function _get_id_for_msg_url($context, EE_Registration $registration)
290
+	{
291
+		return 0;
292
+	}
293
+
294
+
295
+	/**
296
+	 * This sets up any action/filter hooks this message type puts in place for a specific messenger.  Note that by
297
+	 * default this does nothing.  Child classes will need to override if they want to add specific hooks for a
298
+	 * messenger.
299
+	 *
300
+	 * @since 1.0.0
301
+	 * @return void
302
+	 */
303
+	protected function _do_messenger_hooks()
304
+	{
305
+		return;
306
+	}
307
+
308
+
309
+	/**
310
+	 * This is a public wrapper for the protected _do_messenger_hooks() method.
311
+	 * For backward compat reasons, this was done rather than making the protected method public.
312
+	 *
313
+	 * @param   EE_messenger $messenger This is used to set the $_active_messenger property, so message types are able
314
+	 *                                  to know what messenger is being used to send the message at the time of
315
+	 *                                  sending.
316
+	 * @since 4.9.0
317
+	 */
318
+	public function do_messenger_hooks($messenger = null)
319
+	{
320
+		$this->_active_messenger = $messenger;
321
+		$this->_do_messenger_hooks();
322
+	}
323
+
324
+
325
+	/**
326
+	 * This method returns whether this message type should always generate a new copy
327
+	 * when requested, or if links can be to the already generated copy.
328
+	 * Note: this does NOT affect viewing/resending already generated messages in the EE_Message list table.
329
+	 * Child classes should override this if different from the default of false.
330
+	 *
331
+	 * @return bool     false means can link to generated EE_Message.  true must regenerate.
332
+	 */
333
+	public function always_generate()
334
+	{
335
+		return false;
336
+	}
337
+
338
+
339
+	/**
340
+	 * Returns the priority for the message type.
341
+	 * Priorities are defined as constants on EEM_Message.  Currently there are three priorities:
342
+	 * - EEM_Message::priority_high
343
+	 * - EEM_Message::priority_medium
344
+	 * - EEM_Message::priority_low
345
+	 * Priority is used to determine the weight the message type is given when queuing for generation and/or sending.
346
+	 *
347
+	 * @see    EEM_Message for more phpdocs on priority.
348
+	 *         The default priority for all message_types is EEM_Message::priority_low.  Message Types wanting to give
349
+	 *         a higher priority must override this method. Also note, messengers are able to override priorities
350
+	 *         queuing instructions if their "send_now" flag is set to true. An example of this is the HTML messenger
351
+	 *         which displays things in the browser.
352
+	 * @since  4.9.0
353
+	 * @return int
354
+	 */
355
+	public function get_priority()
356
+	{
357
+		return EEM_Message::priority_low;
358
+	}
359
+
360
+
361
+	/**
362
+	 * This runs the _set_data_handler() method for message types and then returns what got set.
363
+	 *
364
+	 * @param mixed $data This sets the data property for the message type with the incoming data used for generating.
365
+	 * @return string (the reference for the data handler) (will be an empty string if could not be determined).
366
+	 */
367
+	public function get_data_handler($data)
368
+	{
369
+		$this->_data = $data;
370
+		$this->_set_data_handler();
371
+		return apply_filters('FHEE__EE_message_type__get_data_handler', $this->_data_handler, $this);
372
+	}
373
+
374
+
375
+	/**
376
+	 * This is called externally to reset the value of the $_data property for the message type.
377
+	 * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
378
+	 * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called
379
+	 * (and for back compat reasons). This particular method is used in
380
+	 * EE_Messages_Generator::_reset_current_properties to ensure that the internal _data on the message type is
381
+	 * cleaned before subsequent EE_Message generation in the same request.
382
+	 *
383
+	 * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
384
+	 *            ensure that there is no manipulation of the _data property during run time so there's a clear
385
+	 *            expectation of what it is.  Likely we need to ensure that _data is not persisted IN the message type
386
+	 *            at all.
387
+	 * @internal  Plugin authors, do not implement this method, it is subject to change.
388
+	 * @since     4.9
389
+	 */
390
+	public function reset_data()
391
+	{
392
+		$this->_data = null;
393
+	}
394
+
395
+
396
+	/**
397
+	 * This does some validation of incoming params gets the url trigger from the defined method in the specific child
398
+	 * class and then filters the results.
399
+	 *
400
+	 * @param string          $context           The message type context
401
+	 * @param string          $sending_messenger The sending messenger
402
+	 * @param EE_Registration $registration      Registration object
403
+	 * @throws EE_Error
404
+	 * @deprecated  4.9.0  Likely 4.9.10 or 4.10.0 will remove this method completely
405
+	 * @return string          generated url
406
+	 */
407
+	public function get_url_trigger($context, $sending_messenger, EE_Registration $registration)
408
+	{
409
+		// validate context
410
+		// valid context?
411
+		if (! isset($this->_contexts[ $context ])) {
412
+			throw new EE_Error(
413
+				sprintf(
414
+					esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
415
+					$context,
416
+					get_class($this)
417
+				)
418
+			);
419
+		}
420
+		// valid sending_messenger?
421
+		$not_valid_msgr = false;
422
+		foreach ($this->_with_messengers as $generating => $sendings) {
423
+			if (empty($sendings) || array_search($sending_messenger, $sendings) === false) {
424
+				$not_valid_msgr = true;
425
+			}
426
+		}
427
+		if ($not_valid_msgr) {
428
+			throw new EE_Error(
429
+				sprintf(
430
+					esc_html__(
431
+						'The given sending messenger string (%s) does not match a valid sending messenger with the %s.  If this is incorrect, make sure that the message type has defined this messenger as a sending messenger in its $_with_messengers array.',
432
+						'event_espresso'
433
+					),
434
+					$sending_messenger,
435
+					get_class($this)
436
+				)
437
+			);
438
+		}
439
+		return EEH_MSG_Template::generate_url_trigger(
440
+			$sending_messenger,
441
+			$this->_active_messenger->name,
442
+			$context,
443
+			$this->name,
444
+			$registration,
445
+			$this->_GRP_ID,
446
+			$this->_get_id_for_msg_url($context, $registration)
447
+		);
448
+	}
449
+
450
+
451
+	/**
452
+	 * Wrapper for _get_data_for_context() that handles some validation before calling the main class and also allows
453
+	 * for filtering. This is (currently) called by the EED_Messages module.
454
+	 *
455
+	 * @since 4.5.0
456
+	 * @throws EE_Error
457
+	 * @param string          $context      This should be a string matching a valid context for the message type.
458
+	 * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
459
+	 *                                      guessing a url).
460
+	 * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
461
+	 *                                      EE_Base_Class_Object
462
+	 * @return mixed (EE_Base_Class||EE_Base_Class[])
463
+	 */
464
+	public function get_data_for_context($context, EE_Registration $registration, $id = 0)
465
+	{
466
+		// valid context?
467
+		if (! isset($this->_contexts[ $context ])) {
468
+			throw new EE_Error(
469
+				sprintf(
470
+					esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
471
+					$context,
472
+					get_class($this)
473
+				)
474
+			);
475
+		}
476
+		// get data and apply global and class specific filters on it.
477
+		$data = apply_filters(
478
+			'FHEE__EE_message_type__get_data_for_context__data',
479
+			$this->_get_data_for_context($context, $registration, $id),
480
+			$this
481
+		);
482
+		$data = apply_filters('FHEE__' . get_class($this) . '__get_data_for_context__data', $data, $this);
483
+		// if empty then something went wrong!
484
+		if (empty($data)) {
485
+			throw new EE_Error(
486
+				sprintf(
487
+					esc_html__(
488
+						'There is no data retrieved, it is possible that the id given (%d) does not match any value in the database for the corresponding EE_Base_Class used by the data handler for the %s message type.',
489
+						'event_espresso'
490
+					),
491
+					$id,
492
+					$this->name
493
+				)
494
+			);
495
+		}
496
+		return $data;
497
+	}
498
+
499
+
500
+	/**
501
+	 * This returns the contents of the _data property.
502
+	 * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
503
+	 * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called.
504
+	 *
505
+	 * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
506
+	 *            ensure that there is no manipulation of the _data property during run time so there's a clear
507
+	 *            expectation of what it is.
508
+	 * @internal  Plugin authors, do not implement this method, it is subject to change.
509
+	 * @return mixed
510
+	 */
511
+	public function get_data()
512
+	{
513
+		return $this->_data;
514
+	}
515
+
516
+
517
+	/**
518
+	 * used to set the $_with_messengers property. (this is a default, child classes SHOULD override)
519
+	 *
520
+	 * @see   property definition for description of setup.
521
+	 * @since 4.5.0
522
+	 * @abstract
523
+	 * @return void
524
+	 */
525
+	protected function _set_with_messengers()
526
+	{
527
+		$this->_with_messengers = array(
528
+			'email' => array('html'),
529
+		);
530
+	}
531
+
532
+
533
+	/**
534
+	 * Return the value of the _with_messengers property
535
+	 *
536
+	 * @since 4.5.0
537
+	 * @return array
538
+	 */
539
+	public function with_messengers()
540
+	{
541
+		return apply_filters(
542
+			'FHEE__EE_message_type__get_with_messengers__with_messengers__' . get_class($this),
543
+			$this->_with_messengers
544
+		);
545
+	}
546
+
547
+
548
+	/**
549
+	 * this public method accepts a page slug (for an EE_admin page) and will return the response from the child class
550
+	 * callback function if that page is registered via the `_admin_registered_page` property set by the child class.
551
+	 * *
552
+	 *
553
+	 * @param string $page       the slug of the EE admin page
554
+	 * @param array  $messengers an array of active messenger objects
555
+	 * @param string $action     the page action (to allow for more specific handling - i.e. edit vs. add pages)
556
+	 * @param array  $extra      This is just an extra argument that can be used to pass additional data for setting up
557
+	 *                           page content.
558
+	 * @access public
559
+	 * @return string
560
+	 */
561
+	public function get_message_type_admin_page_content(
562
+		$page,
563
+		$action = null,
564
+		$extra = array(),
565
+		$messengers = array()
566
+	) {
567
+		// we can also further refine the context by action (if present).
568
+		return $this->_get_admin_page_content($page, $action, $extra, $messengers);
569
+	}
570
+
571
+
572
+	/**
573
+	 * @return array
574
+	 */
575
+	public function get_contexts()
576
+	{
577
+		return $this->_contexts;
578
+	}
579
+
580
+
581
+	/**
582
+	 * This just returns the context label for a given context (as set in $_context_label property)
583
+	 *
584
+	 * @access public
585
+	 * @return array
586
+	 */
587
+	public function get_context_label()
588
+	{
589
+		return $this->_context_label;
590
+	}
591
+
592
+
593
+	/**
594
+	 * This just returns the (filtered) _master_templates property.
595
+	 *
596
+	 * @see property definition for documentation.
597
+	 * @return array
598
+	 */
599
+	public function get_master_templates()
600
+	{
601
+		// first class specific filter then filter that by the global filter.
602
+		$master_templates = apply_filters(
603
+			'FHEE__' . get_class($this) . '__get_master_templates',
604
+			$this->_master_templates
605
+		);
606
+		return apply_filters('FHEE__EE_message_type__get_master_templates', $master_templates, $this);
607
+	}
608
+
609
+
610
+	/**
611
+	 * Accepts an incoming data handler which contains data for processing, and returns an array of
612
+	 * EE_Messages_Addressee objects.
613
+	 *
614
+	 * @param EE_Messages_incoming_data $data
615
+	 * @param string                    $context Limit addressees to specific context.
616
+	 * @return array An array indexed by context where each context is an array of EE_Messages_Addressee objects for
617
+	 *                                           that context
618
+	 * @throws EE_Error
619
+	 */
620
+	public function get_addressees(EE_Messages_incoming_data $data, $context = '')
621
+	{
622
+		// override _data
623
+		$this->_data       = $data;
624
+		$addressees        = array();
625
+		$original_contexts = $this->_contexts;
626
+		// if incoming context then limit to that context
627
+		if (! empty($context)) {
628
+			$cntxt = ! empty($this->_contexts[ $context ]) ? $this->_contexts[ $context ] : '';
629
+			if (! empty($cntxt)) {
630
+				$this->_contexts           = array();
631
+				$this->_contexts[ $context ] = $cntxt;
632
+			}
633
+		}
634
+		$this->_set_default_addressee_data();
635
+		if ($this->_process_data()) {
636
+			$addressees = $this->_addressees;
637
+		}
638
+
639
+		// reset contexts and addressees
640
+		$this->_contexts   = $original_contexts;
641
+		$this->_addressees = array();
642
+		return $addressees;
643
+	}
644
+
645
+
646
+	/**
647
+	 * processes the data object so we get
648
+	 *
649
+	 * @throws EE_Error
650
+	 * @return bool  true means data was processed successfully, false means not.
651
+	 */
652
+	protected function _process_data()
653
+	{
654
+		// at a minimum, we NEED EE_Attendee objects.
655
+		if (empty($this->_data->attendees)) {
656
+			return false;  // there's no data to process!
657
+		}
658
+		// process addressees for each context.  Child classes will have to have methods for
659
+		// each context defined to handle the processing of the data object within them
660
+		foreach ($this->_contexts as $context => $details) {
661
+			$xpctd_method = '_' . $context . '_addressees';
662
+			if (! method_exists($this, $xpctd_method)) {
663
+				throw new EE_Error(
664
+					sprintf(
665
+						esc_html__(
666
+							'The data for %1$s message type cannot be prepared because there is no set method for doing so.  The expected method name is "%2$s" please doublecheck the %1$s message type class and make sure that method is present',
667
+							'event_espresso'
668
+						),
669
+						$this->label['singular'],
670
+						$xpctd_method
671
+					)
672
+				);
673
+			}
674
+			$this->_addressees[ $context ] = call_user_func(array($this, $xpctd_method));
675
+		}
676
+		return true; // data was processed successfully.
677
+	}
678
+
679
+
680
+	/**
681
+	 * sets the default_addressee_data property,
682
+	 *
683
+	 * @access private
684
+	 * @return void
685
+	 */
686
+	private function _set_default_addressee_data()
687
+	{
688
+		$this->_default_addressee_data = array(
689
+			'billing'                  => $this->_data->billing,
690
+			'taxes'                    => $this->_data->taxes,
691
+			'tax_line_items'           => $this->_data->tax_line_items,
692
+			'additional_line_items'    => $this->_data->additional_line_items,
693
+			'grand_total_line_item'    => $this->_data->grand_total_line_item,
694
+			'txn'                      => $this->_data->txn,
695
+			'payments'                 => $this->_data->payments,
696
+			'payment'                  => isset($this->_data->payment) && $this->_data->payment instanceof EE_Payment
697
+				? $this->_data->payment
698
+				: null,
699
+			'reg_objs'                 => $this->_data->reg_objs,
700
+			'registrations'            => $this->_data->registrations,
701
+			'datetimes'                => $this->_data->datetimes,
702
+			'tickets'                  => $this->_data->tickets,
703
+			'line_items_with_children' => $this->_data->line_items_with_children,
704
+			'questions'                => $this->_data->questions,
705
+			'answers'                  => $this->_data->answers,
706
+			'txn_status'               => $this->_data->txn_status,
707
+			'total_ticket_count'       => $this->_data->total_ticket_count,
708
+		);
709
+		if (is_array($this->_data->primary_attendee_data)) {
710
+			$this->_default_addressee_data                    = array_merge(
711
+				$this->_default_addressee_data,
712
+				$this->_data->primary_attendee_data
713
+			);
714
+			$this->_default_addressee_data['primary_att_obj'] = $this->_data->primary_attendee_data['att_obj'];
715
+			$this->_default_addressee_data['primary_reg_obj'] = $this->_data->primary_attendee_data['reg_obj'];
716
+		}
717
+	}
718
+
719
+
720
+
721
+	/********************
722 722
      * setup default shared addressee object/contexts
723 723
      * These can be utilized simply by defining the context in the child message type.
724 724
      * They can also be overridden if a specific message type needs to do something different for that context.
725 725
      ****************/
726
-    /**
727
-     * see abstract declaration in parent class for details, children message types can
728
-     * override these valid shortcodes if desired (we include all for all contexts by default).
729
-     */
730
-    protected function _set_valid_shortcodes()
731
-    {
732
-        $all_shortcodes = array(
733
-            'attendee_list',
734
-            'attendee',
735
-            'datetime_list',
736
-            'datetime',
737
-            'event_list',
738
-            'event_meta',
739
-            'event',
740
-            'organization',
741
-            'recipient_details',
742
-            'recipient_list',
743
-            'ticket_list',
744
-            'ticket',
745
-            'transaction',
746
-            'venue',
747
-            'primary_registration_details',
748
-            'primary_registration_list',
749
-            'event_author',
750
-            'email',
751
-            'messenger',
752
-        );
753
-        $contexts       = $this->get_contexts();
754
-        foreach ($contexts as $context => $details) {
755
-            $this->_valid_shortcodes[ $context ] = $all_shortcodes;
756
-            // make sure non admin context does not include the event_author shortcodes
757
-            if ($context != 'admin') {
758
-                if (($key = array_search('event_author', $this->_valid_shortcodes[ $context ])) !== false) {
759
-                    unset($this->_valid_shortcodes[ $context ][ $key ]);
760
-                }
761
-            }
762
-        }
763
-        // make sure admin context does not include the recipient_details shortcodes
764
-        // IF we have admin context hooked in message types might not have that context.
765
-        if (! empty($this->_valid_shortcodes['admin'])) {
766
-            if (($key = array_search('recipient_details', $this->_valid_shortcodes['admin'])) !== false) {
767
-                unset($this->_valid_shortcodes['admin'][ $key ]);
768
-            }
769
-            // make sure admin context does not include the recipient_details shortcodes
770
-            if (($key = array_search('recipient_list', $this->_valid_shortcodes['admin'])) !== false) {
771
-                unset($this->_valid_shortcodes['admin'][ $key ]);
772
-            }
773
-        }
774
-    }
775
-
776
-
777
-    /**
778
-     * Used by Validators to modify the valid shortcodes.
779
-     *
780
-     * @param  array $new_config array of valid shortcodes (by context)
781
-     * @return void               sets valid_shortcodes property
782
-     */
783
-    public function reset_valid_shortcodes_config($new_config)
784
-    {
785
-        foreach ($new_config as $context => $shortcodes) {
786
-            $this->_valid_shortcodes[ $context ] = $shortcodes;
787
-        }
788
-    }
789
-
790
-
791
-    /**
792
-     * returns an array of addressee objects for event_admins
793
-     *
794
-     * @access protected
795
-     * @return array array of EE_Messages_Addressee objects
796
-     * @throws EE_Error
797
-     * @throws InvalidArgumentException
798
-     * @throws InvalidDataTypeException
799
-     * @throws InvalidInterfaceException
800
-     */
801
-    protected function _admin_addressees()
802
-    {
803
-        $admin_events = array();
804
-        $addressees   = array();
805
-        // first we need to get the event admin user id for all the events
806
-        // and setup an addressee object for each unique admin user.
807
-        foreach ($this->_data->events as $line_ref => $event) {
808
-            $admin_id = $this->_get_event_admin_id($event['ID']);
809
-            // make sure we are just including the events that belong to this admin!
810
-            $admin_events[ $admin_id ][ $line_ref ] = $event;
811
-        }
812
-        // k now we can loop through the event_admins and setup the addressee data.
813
-        foreach ($admin_events as $admin_id => $event_details) {
814
-            $aee          = array(
815
-                'user_id'        => $admin_id,
816
-                'events'         => $event_details,
817
-                'attendees'      => $this->_data->attendees,
818
-                'recipient_id'   => $admin_id,
819
-                'recipient_type' => 'WP_User',
820
-            );
821
-            $aee          = array_merge($this->_default_addressee_data, $aee);
822
-            $addressees[] = new EE_Messages_Addressee($aee);
823
-        }
824
-        return $addressees;
825
-    }
826
-
827
-
828
-    /**
829
-     * Takes care of setting up the addressee object(s) for the primary attendee.
830
-     *
831
-     * @access protected
832
-     * @return array of EE_Addressee objects
833
-     * @throws EE_Error
834
-     */
835
-    protected function _primary_attendee_addressees()
836
-    {
837
-        $aee                   = $this->_default_addressee_data;
838
-        $aee['events']         = $this->_data->events;
839
-        $aee['attendees']      = $this->_data->attendees;
840
-        $aee['recipient_id']   = $aee['primary_att_obj'] instanceof EE_Attendee ? $aee['primary_att_obj']->ID() : 0;
841
-        $aee['recipient_type'] = 'Attendee';
842
-        // great now we can instantiate the $addressee object and return (as an array);
843
-        $add[] = new EE_Messages_Addressee($aee);
844
-        return $add;
845
-    }
846
-
847
-
848
-    /**
849
-     * Takes care of setting up the addressee object(s) for the registered attendees
850
-     *
851
-     * @access protected
852
-     * @return array of EE_Addressee objects
853
-     */
854
-    protected function _attendee_addressees()
855
-    {
856
-        $add = array();
857
-        // we just have to loop through the attendees.  We'll also set the attached events for each attendee.
858
-        // use to verify unique attendee emails... we don't want to sent multiple copies to the same attendee do we?
859
-        $already_processed = array();
860
-        foreach ($this->_data->attendees as $att_id => $details) {
861
-            // set the attendee array to blank on each loop;
862
-            $aee = array();
863
-            if (
864
-                isset($this->_data->reg_obj)
865
-                && ($this->_data->reg_obj->attendee_ID() != $att_id)
866
-                && $this->_single_message
867
-            ) {
868
-                continue;
869
-            }
870
-            // is $this->_regs_for_sending present?
871
-            // If so, let's make sure we ONLY generate addressee for registrations in that array.
872
-            if (! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
873
-                $regs_allowed = array_intersect_key(array_flip($this->_regs_for_sending), $details['reg_objs']);
874
-                if (empty($regs_allowed)) {
875
-                    continue;
876
-                }
877
-            }
878
-            if (
879
-                apply_filters(
880
-                    'FHEE__EE_message_type___attendee_addressees__prevent_duplicate_email_sends',
881
-                    true,
882
-                    $this->_data,
883
-                    $this
884
-                )
885
-                && in_array($att_id, $already_processed, true)
886
-            ) {
887
-                continue;
888
-            }
889
-            $already_processed[] = $att_id;
890
-            foreach ($details as $item => $value) {
891
-                $aee[ $item ] = $value;
892
-                if ($item === 'line_ref') {
893
-                    foreach ($value as $event_id) {
894
-                        $aee['events'][ $event_id ] = $this->_data->events[ $event_id ];
895
-                    }
896
-                }
897
-                if ($item === 'attendee_email') {
898
-                    $aee['attendee_email'] = $value;
899
-                }
900
-                /*if ( $item == 'registration_id' ) {
726
+	/**
727
+	 * see abstract declaration in parent class for details, children message types can
728
+	 * override these valid shortcodes if desired (we include all for all contexts by default).
729
+	 */
730
+	protected function _set_valid_shortcodes()
731
+	{
732
+		$all_shortcodes = array(
733
+			'attendee_list',
734
+			'attendee',
735
+			'datetime_list',
736
+			'datetime',
737
+			'event_list',
738
+			'event_meta',
739
+			'event',
740
+			'organization',
741
+			'recipient_details',
742
+			'recipient_list',
743
+			'ticket_list',
744
+			'ticket',
745
+			'transaction',
746
+			'venue',
747
+			'primary_registration_details',
748
+			'primary_registration_list',
749
+			'event_author',
750
+			'email',
751
+			'messenger',
752
+		);
753
+		$contexts       = $this->get_contexts();
754
+		foreach ($contexts as $context => $details) {
755
+			$this->_valid_shortcodes[ $context ] = $all_shortcodes;
756
+			// make sure non admin context does not include the event_author shortcodes
757
+			if ($context != 'admin') {
758
+				if (($key = array_search('event_author', $this->_valid_shortcodes[ $context ])) !== false) {
759
+					unset($this->_valid_shortcodes[ $context ][ $key ]);
760
+				}
761
+			}
762
+		}
763
+		// make sure admin context does not include the recipient_details shortcodes
764
+		// IF we have admin context hooked in message types might not have that context.
765
+		if (! empty($this->_valid_shortcodes['admin'])) {
766
+			if (($key = array_search('recipient_details', $this->_valid_shortcodes['admin'])) !== false) {
767
+				unset($this->_valid_shortcodes['admin'][ $key ]);
768
+			}
769
+			// make sure admin context does not include the recipient_details shortcodes
770
+			if (($key = array_search('recipient_list', $this->_valid_shortcodes['admin'])) !== false) {
771
+				unset($this->_valid_shortcodes['admin'][ $key ]);
772
+			}
773
+		}
774
+	}
775
+
776
+
777
+	/**
778
+	 * Used by Validators to modify the valid shortcodes.
779
+	 *
780
+	 * @param  array $new_config array of valid shortcodes (by context)
781
+	 * @return void               sets valid_shortcodes property
782
+	 */
783
+	public function reset_valid_shortcodes_config($new_config)
784
+	{
785
+		foreach ($new_config as $context => $shortcodes) {
786
+			$this->_valid_shortcodes[ $context ] = $shortcodes;
787
+		}
788
+	}
789
+
790
+
791
+	/**
792
+	 * returns an array of addressee objects for event_admins
793
+	 *
794
+	 * @access protected
795
+	 * @return array array of EE_Messages_Addressee objects
796
+	 * @throws EE_Error
797
+	 * @throws InvalidArgumentException
798
+	 * @throws InvalidDataTypeException
799
+	 * @throws InvalidInterfaceException
800
+	 */
801
+	protected function _admin_addressees()
802
+	{
803
+		$admin_events = array();
804
+		$addressees   = array();
805
+		// first we need to get the event admin user id for all the events
806
+		// and setup an addressee object for each unique admin user.
807
+		foreach ($this->_data->events as $line_ref => $event) {
808
+			$admin_id = $this->_get_event_admin_id($event['ID']);
809
+			// make sure we are just including the events that belong to this admin!
810
+			$admin_events[ $admin_id ][ $line_ref ] = $event;
811
+		}
812
+		// k now we can loop through the event_admins and setup the addressee data.
813
+		foreach ($admin_events as $admin_id => $event_details) {
814
+			$aee          = array(
815
+				'user_id'        => $admin_id,
816
+				'events'         => $event_details,
817
+				'attendees'      => $this->_data->attendees,
818
+				'recipient_id'   => $admin_id,
819
+				'recipient_type' => 'WP_User',
820
+			);
821
+			$aee          = array_merge($this->_default_addressee_data, $aee);
822
+			$addressees[] = new EE_Messages_Addressee($aee);
823
+		}
824
+		return $addressees;
825
+	}
826
+
827
+
828
+	/**
829
+	 * Takes care of setting up the addressee object(s) for the primary attendee.
830
+	 *
831
+	 * @access protected
832
+	 * @return array of EE_Addressee objects
833
+	 * @throws EE_Error
834
+	 */
835
+	protected function _primary_attendee_addressees()
836
+	{
837
+		$aee                   = $this->_default_addressee_data;
838
+		$aee['events']         = $this->_data->events;
839
+		$aee['attendees']      = $this->_data->attendees;
840
+		$aee['recipient_id']   = $aee['primary_att_obj'] instanceof EE_Attendee ? $aee['primary_att_obj']->ID() : 0;
841
+		$aee['recipient_type'] = 'Attendee';
842
+		// great now we can instantiate the $addressee object and return (as an array);
843
+		$add[] = new EE_Messages_Addressee($aee);
844
+		return $add;
845
+	}
846
+
847
+
848
+	/**
849
+	 * Takes care of setting up the addressee object(s) for the registered attendees
850
+	 *
851
+	 * @access protected
852
+	 * @return array of EE_Addressee objects
853
+	 */
854
+	protected function _attendee_addressees()
855
+	{
856
+		$add = array();
857
+		// we just have to loop through the attendees.  We'll also set the attached events for each attendee.
858
+		// use to verify unique attendee emails... we don't want to sent multiple copies to the same attendee do we?
859
+		$already_processed = array();
860
+		foreach ($this->_data->attendees as $att_id => $details) {
861
+			// set the attendee array to blank on each loop;
862
+			$aee = array();
863
+			if (
864
+				isset($this->_data->reg_obj)
865
+				&& ($this->_data->reg_obj->attendee_ID() != $att_id)
866
+				&& $this->_single_message
867
+			) {
868
+				continue;
869
+			}
870
+			// is $this->_regs_for_sending present?
871
+			// If so, let's make sure we ONLY generate addressee for registrations in that array.
872
+			if (! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
873
+				$regs_allowed = array_intersect_key(array_flip($this->_regs_for_sending), $details['reg_objs']);
874
+				if (empty($regs_allowed)) {
875
+					continue;
876
+				}
877
+			}
878
+			if (
879
+				apply_filters(
880
+					'FHEE__EE_message_type___attendee_addressees__prevent_duplicate_email_sends',
881
+					true,
882
+					$this->_data,
883
+					$this
884
+				)
885
+				&& in_array($att_id, $already_processed, true)
886
+			) {
887
+				continue;
888
+			}
889
+			$already_processed[] = $att_id;
890
+			foreach ($details as $item => $value) {
891
+				$aee[ $item ] = $value;
892
+				if ($item === 'line_ref') {
893
+					foreach ($value as $event_id) {
894
+						$aee['events'][ $event_id ] = $this->_data->events[ $event_id ];
895
+					}
896
+				}
897
+				if ($item === 'attendee_email') {
898
+					$aee['attendee_email'] = $value;
899
+				}
900
+				/*if ( $item == 'registration_id' ) {
901 901
                     $aee['attendee_registration_id'] = $value;
902 902
                 }/**/
903
-            }
904
-            // note the FIRST reg object in this array is the one
905
-            // we'll use for this attendee as the primary registration for this attendee.
906
-            $aee['reg_obj']        = reset($this->_data->attendees[ $att_id ]['reg_objs']);
907
-            $aee['attendees']      = $this->_data->attendees;
908
-            $aee['recipient_id']   = $att_id;
909
-            $aee['recipient_type'] = 'Attendee';
910
-            // merge in the primary attendee data
911
-            $aee   = array_merge($this->_default_addressee_data, $aee);
912
-            $add[] = new EE_Messages_Addressee($aee);
913
-        }
914
-        return $add;
915
-    }
916
-
917
-
918
-    /**
919
-     * @param $event_id
920
-     * @return int
921
-     * @throws EE_Error
922
-     * @throws InvalidArgumentException
923
-     * @throws InvalidDataTypeException
924
-     * @throws InvalidInterfaceException
925
-     */
926
-    protected function _get_event_admin_id($event_id)
927
-    {
928
-        $event = EEM_Event::instance()->get_one_by_ID($event_id);
929
-        return $event instanceof EE_Event ? $event->wp_user() : 0;
930
-    }
903
+			}
904
+			// note the FIRST reg object in this array is the one
905
+			// we'll use for this attendee as the primary registration for this attendee.
906
+			$aee['reg_obj']        = reset($this->_data->attendees[ $att_id ]['reg_objs']);
907
+			$aee['attendees']      = $this->_data->attendees;
908
+			$aee['recipient_id']   = $att_id;
909
+			$aee['recipient_type'] = 'Attendee';
910
+			// merge in the primary attendee data
911
+			$aee   = array_merge($this->_default_addressee_data, $aee);
912
+			$add[] = new EE_Messages_Addressee($aee);
913
+		}
914
+		return $add;
915
+	}
916
+
917
+
918
+	/**
919
+	 * @param $event_id
920
+	 * @return int
921
+	 * @throws EE_Error
922
+	 * @throws InvalidArgumentException
923
+	 * @throws InvalidDataTypeException
924
+	 * @throws InvalidInterfaceException
925
+	 */
926
+	protected function _get_event_admin_id($event_id)
927
+	{
928
+		$event = EEM_Event::instance()->get_one_by_ID($event_id);
929
+		return $event instanceof EE_Event ? $event->wp_user() : 0;
930
+	}
931 931
 }
Please login to merge, or discard this patch.
Spacing   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -408,7 +408,7 @@  discard block
 block discarded – undo
408 408
     {
409 409
         // validate context
410 410
         // valid context?
411
-        if (! isset($this->_contexts[ $context ])) {
411
+        if ( ! isset($this->_contexts[$context])) {
412 412
             throw new EE_Error(
413 413
                 sprintf(
414 414
                     esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
@@ -464,7 +464,7 @@  discard block
 block discarded – undo
464 464
     public function get_data_for_context($context, EE_Registration $registration, $id = 0)
465 465
     {
466 466
         // valid context?
467
-        if (! isset($this->_contexts[ $context ])) {
467
+        if ( ! isset($this->_contexts[$context])) {
468 468
             throw new EE_Error(
469 469
                 sprintf(
470 470
                     esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
@@ -479,7 +479,7 @@  discard block
 block discarded – undo
479 479
             $this->_get_data_for_context($context, $registration, $id),
480 480
             $this
481 481
         );
482
-        $data = apply_filters('FHEE__' . get_class($this) . '__get_data_for_context__data', $data, $this);
482
+        $data = apply_filters('FHEE__'.get_class($this).'__get_data_for_context__data', $data, $this);
483 483
         // if empty then something went wrong!
484 484
         if (empty($data)) {
485 485
             throw new EE_Error(
@@ -539,7 +539,7 @@  discard block
 block discarded – undo
539 539
     public function with_messengers()
540 540
     {
541 541
         return apply_filters(
542
-            'FHEE__EE_message_type__get_with_messengers__with_messengers__' . get_class($this),
542
+            'FHEE__EE_message_type__get_with_messengers__with_messengers__'.get_class($this),
543 543
             $this->_with_messengers
544 544
         );
545 545
     }
@@ -600,7 +600,7 @@  discard block
 block discarded – undo
600 600
     {
601 601
         // first class specific filter then filter that by the global filter.
602 602
         $master_templates = apply_filters(
603
-            'FHEE__' . get_class($this) . '__get_master_templates',
603
+            'FHEE__'.get_class($this).'__get_master_templates',
604 604
             $this->_master_templates
605 605
         );
606 606
         return apply_filters('FHEE__EE_message_type__get_master_templates', $master_templates, $this);
@@ -624,11 +624,11 @@  discard block
 block discarded – undo
624 624
         $addressees        = array();
625 625
         $original_contexts = $this->_contexts;
626 626
         // if incoming context then limit to that context
627
-        if (! empty($context)) {
628
-            $cntxt = ! empty($this->_contexts[ $context ]) ? $this->_contexts[ $context ] : '';
629
-            if (! empty($cntxt)) {
630
-                $this->_contexts           = array();
631
-                $this->_contexts[ $context ] = $cntxt;
627
+        if ( ! empty($context)) {
628
+            $cntxt = ! empty($this->_contexts[$context]) ? $this->_contexts[$context] : '';
629
+            if ( ! empty($cntxt)) {
630
+                $this->_contexts = array();
631
+                $this->_contexts[$context] = $cntxt;
632 632
             }
633 633
         }
634 634
         $this->_set_default_addressee_data();
@@ -653,13 +653,13 @@  discard block
 block discarded – undo
653 653
     {
654 654
         // at a minimum, we NEED EE_Attendee objects.
655 655
         if (empty($this->_data->attendees)) {
656
-            return false;  // there's no data to process!
656
+            return false; // there's no data to process!
657 657
         }
658 658
         // process addressees for each context.  Child classes will have to have methods for
659 659
         // each context defined to handle the processing of the data object within them
660 660
         foreach ($this->_contexts as $context => $details) {
661
-            $xpctd_method = '_' . $context . '_addressees';
662
-            if (! method_exists($this, $xpctd_method)) {
661
+            $xpctd_method = '_'.$context.'_addressees';
662
+            if ( ! method_exists($this, $xpctd_method)) {
663 663
                 throw new EE_Error(
664 664
                     sprintf(
665 665
                         esc_html__(
@@ -671,7 +671,7 @@  discard block
 block discarded – undo
671 671
                     )
672 672
                 );
673 673
             }
674
-            $this->_addressees[ $context ] = call_user_func(array($this, $xpctd_method));
674
+            $this->_addressees[$context] = call_user_func(array($this, $xpctd_method));
675 675
         }
676 676
         return true; // data was processed successfully.
677 677
     }
@@ -707,7 +707,7 @@  discard block
 block discarded – undo
707 707
             'total_ticket_count'       => $this->_data->total_ticket_count,
708 708
         );
709 709
         if (is_array($this->_data->primary_attendee_data)) {
710
-            $this->_default_addressee_data                    = array_merge(
710
+            $this->_default_addressee_data = array_merge(
711 711
                 $this->_default_addressee_data,
712 712
                 $this->_data->primary_attendee_data
713 713
             );
@@ -750,25 +750,25 @@  discard block
 block discarded – undo
750 750
             'email',
751 751
             'messenger',
752 752
         );
753
-        $contexts       = $this->get_contexts();
753
+        $contexts = $this->get_contexts();
754 754
         foreach ($contexts as $context => $details) {
755
-            $this->_valid_shortcodes[ $context ] = $all_shortcodes;
755
+            $this->_valid_shortcodes[$context] = $all_shortcodes;
756 756
             // make sure non admin context does not include the event_author shortcodes
757 757
             if ($context != 'admin') {
758
-                if (($key = array_search('event_author', $this->_valid_shortcodes[ $context ])) !== false) {
759
-                    unset($this->_valid_shortcodes[ $context ][ $key ]);
758
+                if (($key = array_search('event_author', $this->_valid_shortcodes[$context])) !== false) {
759
+                    unset($this->_valid_shortcodes[$context][$key]);
760 760
                 }
761 761
             }
762 762
         }
763 763
         // make sure admin context does not include the recipient_details shortcodes
764 764
         // IF we have admin context hooked in message types might not have that context.
765
-        if (! empty($this->_valid_shortcodes['admin'])) {
765
+        if ( ! empty($this->_valid_shortcodes['admin'])) {
766 766
             if (($key = array_search('recipient_details', $this->_valid_shortcodes['admin'])) !== false) {
767
-                unset($this->_valid_shortcodes['admin'][ $key ]);
767
+                unset($this->_valid_shortcodes['admin'][$key]);
768 768
             }
769 769
             // make sure admin context does not include the recipient_details shortcodes
770 770
             if (($key = array_search('recipient_list', $this->_valid_shortcodes['admin'])) !== false) {
771
-                unset($this->_valid_shortcodes['admin'][ $key ]);
771
+                unset($this->_valid_shortcodes['admin'][$key]);
772 772
             }
773 773
         }
774 774
     }
@@ -783,7 +783,7 @@  discard block
 block discarded – undo
783 783
     public function reset_valid_shortcodes_config($new_config)
784 784
     {
785 785
         foreach ($new_config as $context => $shortcodes) {
786
-            $this->_valid_shortcodes[ $context ] = $shortcodes;
786
+            $this->_valid_shortcodes[$context] = $shortcodes;
787 787
         }
788 788
     }
789 789
 
@@ -807,11 +807,11 @@  discard block
 block discarded – undo
807 807
         foreach ($this->_data->events as $line_ref => $event) {
808 808
             $admin_id = $this->_get_event_admin_id($event['ID']);
809 809
             // make sure we are just including the events that belong to this admin!
810
-            $admin_events[ $admin_id ][ $line_ref ] = $event;
810
+            $admin_events[$admin_id][$line_ref] = $event;
811 811
         }
812 812
         // k now we can loop through the event_admins and setup the addressee data.
813 813
         foreach ($admin_events as $admin_id => $event_details) {
814
-            $aee          = array(
814
+            $aee = array(
815 815
                 'user_id'        => $admin_id,
816 816
                 'events'         => $event_details,
817 817
                 'attendees'      => $this->_data->attendees,
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
             }
870 870
             // is $this->_regs_for_sending present?
871 871
             // If so, let's make sure we ONLY generate addressee for registrations in that array.
872
-            if (! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
872
+            if ( ! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
873 873
                 $regs_allowed = array_intersect_key(array_flip($this->_regs_for_sending), $details['reg_objs']);
874 874
                 if (empty($regs_allowed)) {
875 875
                     continue;
@@ -888,10 +888,10 @@  discard block
 block discarded – undo
888 888
             }
889 889
             $already_processed[] = $att_id;
890 890
             foreach ($details as $item => $value) {
891
-                $aee[ $item ] = $value;
891
+                $aee[$item] = $value;
892 892
                 if ($item === 'line_ref') {
893 893
                     foreach ($value as $event_id) {
894
-                        $aee['events'][ $event_id ] = $this->_data->events[ $event_id ];
894
+                        $aee['events'][$event_id] = $this->_data->events[$event_id];
895 895
                     }
896 896
                 }
897 897
                 if ($item === 'attendee_email') {
@@ -903,7 +903,7 @@  discard block
 block discarded – undo
903 903
             }
904 904
             // note the FIRST reg object in this array is the one
905 905
             // we'll use for this attendee as the primary registration for this attendee.
906
-            $aee['reg_obj']        = reset($this->_data->attendees[ $att_id ]['reg_objs']);
906
+            $aee['reg_obj']        = reset($this->_data->attendees[$att_id]['reg_objs']);
907 907
             $aee['attendees']      = $this->_data->attendees;
908 908
             $aee['recipient_id']   = $att_id;
909 909
             $aee['recipient_type'] = 'Attendee';
Please login to merge, or discard this patch.
core/libraries/messages/EE_Message_Type_Collection_Loader.lib.php 2 patches
Indentation   +101 added lines, -101 removed lines patch added patch discarded remove patch
@@ -15,105 +15,105 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * @type EE_Message_Type_Collection $_message_type_collection
20
-     */
21
-    protected $_message_type_collection = null;
22
-
23
-
24
-
25
-    /**
26
-     * EE_Message_Type_Collection_Loader constructor.
27
-     *
28
-     * @param EE_Message_Type_Collection $message_types
29
-     */
30
-    public function __construct(EE_Message_Type_Collection $message_types)
31
-    {
32
-        $this->set_message_type_collection($message_types);
33
-    }
34
-
35
-
36
-
37
-    /**
38
-     * @return EE_Message_Type_Collection
39
-     */
40
-    public function message_type_collection()
41
-    {
42
-        return $this->_message_type_collection;
43
-    }
44
-
45
-
46
-
47
-    /**
48
-     * @param mixed $message_types
49
-     */
50
-    public function set_message_type_collection(EE_Message_Type_Collection $message_types)
51
-    {
52
-        $this->_message_type_collection = $message_types;
53
-    }
54
-
55
-
56
-
57
-    /**
58
-     * load_message_types
59
-     * globs the supplied filepath and adds any found
60
-     *
61
-     * @param  string $folder
62
-     * @throws \EE_Error
63
-     */
64
-    public function load_message_types_from_folder($folder = '')
65
-    {
66
-        // make sure autoloaders are set (fail-safe)
67
-        EED_Messages::set_autoloaders();
68
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/message_type';
69
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
70
-        // get all the files in that folder that end in ".class.php
71
-        $filepaths = apply_filters(
72
-            'FHEE__EE_messages__get_installed__messagetype_files',
73
-            glob($folder . '*.class.php')
74
-        );
75
-        if (empty($filepaths)) {
76
-            return;
77
-        }
78
-        foreach ((array) $filepaths as $file_path) {
79
-            // extract filename from path
80
-            $file_path = basename($file_path);
81
-            // now remove any file extensions
82
-            $message_type_class_name = substr($file_path, 0, strpos($file_path, '.'));
83
-
84
-            // if this class name doesn't represent a message type class, then we just skip.
85
-            if (strpos(strtolower($message_type_class_name), 'message_type') === false) {
86
-                continue;
87
-            }
88
-
89
-            if (! class_exists($message_type_class_name)) {
90
-                throw new EE_Error(
91
-                    sprintf(
92
-                        esc_html__('The "%1$s" message type class can\'t be loaded from %2$s. Likely there is a typo in the class name or the file name.', 'event_espresso'),
93
-                        $message_type_class_name,
94
-                        $file_path
95
-                    )
96
-                );
97
-            }
98
-
99
-            $this->_load_message_type(new $message_type_class_name());
100
-        }
101
-    }
102
-
103
-
104
-    /**
105
-     * Loads the given message type into the message type collection if it doesn't already exist.
106
-     * @param EE_message_type $message_type
107
-     * @return bool
108
-     */
109
-    protected function _load_message_type(EE_message_type $message_type)
110
-    {
111
-        if ($this->message_type_collection()->has_by_name($message_type->name)) {
112
-            return true;
113
-        }
114
-        return $this->message_type_collection()->add(
115
-            $message_type,
116
-            $message_type->name
117
-        );
118
-    }
18
+	/**
19
+	 * @type EE_Message_Type_Collection $_message_type_collection
20
+	 */
21
+	protected $_message_type_collection = null;
22
+
23
+
24
+
25
+	/**
26
+	 * EE_Message_Type_Collection_Loader constructor.
27
+	 *
28
+	 * @param EE_Message_Type_Collection $message_types
29
+	 */
30
+	public function __construct(EE_Message_Type_Collection $message_types)
31
+	{
32
+		$this->set_message_type_collection($message_types);
33
+	}
34
+
35
+
36
+
37
+	/**
38
+	 * @return EE_Message_Type_Collection
39
+	 */
40
+	public function message_type_collection()
41
+	{
42
+		return $this->_message_type_collection;
43
+	}
44
+
45
+
46
+
47
+	/**
48
+	 * @param mixed $message_types
49
+	 */
50
+	public function set_message_type_collection(EE_Message_Type_Collection $message_types)
51
+	{
52
+		$this->_message_type_collection = $message_types;
53
+	}
54
+
55
+
56
+
57
+	/**
58
+	 * load_message_types
59
+	 * globs the supplied filepath and adds any found
60
+	 *
61
+	 * @param  string $folder
62
+	 * @throws \EE_Error
63
+	 */
64
+	public function load_message_types_from_folder($folder = '')
65
+	{
66
+		// make sure autoloaders are set (fail-safe)
67
+		EED_Messages::set_autoloaders();
68
+		$folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/message_type';
69
+		$folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
70
+		// get all the files in that folder that end in ".class.php
71
+		$filepaths = apply_filters(
72
+			'FHEE__EE_messages__get_installed__messagetype_files',
73
+			glob($folder . '*.class.php')
74
+		);
75
+		if (empty($filepaths)) {
76
+			return;
77
+		}
78
+		foreach ((array) $filepaths as $file_path) {
79
+			// extract filename from path
80
+			$file_path = basename($file_path);
81
+			// now remove any file extensions
82
+			$message_type_class_name = substr($file_path, 0, strpos($file_path, '.'));
83
+
84
+			// if this class name doesn't represent a message type class, then we just skip.
85
+			if (strpos(strtolower($message_type_class_name), 'message_type') === false) {
86
+				continue;
87
+			}
88
+
89
+			if (! class_exists($message_type_class_name)) {
90
+				throw new EE_Error(
91
+					sprintf(
92
+						esc_html__('The "%1$s" message type class can\'t be loaded from %2$s. Likely there is a typo in the class name or the file name.', 'event_espresso'),
93
+						$message_type_class_name,
94
+						$file_path
95
+					)
96
+				);
97
+			}
98
+
99
+			$this->_load_message_type(new $message_type_class_name());
100
+		}
101
+	}
102
+
103
+
104
+	/**
105
+	 * Loads the given message type into the message type collection if it doesn't already exist.
106
+	 * @param EE_message_type $message_type
107
+	 * @return bool
108
+	 */
109
+	protected function _load_message_type(EE_message_type $message_type)
110
+	{
111
+		if ($this->message_type_collection()->has_by_name($message_type->name)) {
112
+			return true;
113
+		}
114
+		return $this->message_type_collection()->add(
115
+			$message_type,
116
+			$message_type->name
117
+		);
118
+	}
119 119
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -65,12 +65,12 @@  discard block
 block discarded – undo
65 65
     {
66 66
         // make sure autoloaders are set (fail-safe)
67 67
         EED_Messages::set_autoloaders();
68
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/message_type';
69
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
68
+        $folder = ! empty($folder) ? $folder : EE_LIBRARIES.'messages/message_type';
69
+        $folder .= $folder[strlen($folder) - 1] != '/' ? '/' : '';
70 70
         // get all the files in that folder that end in ".class.php
71 71
         $filepaths = apply_filters(
72 72
             'FHEE__EE_messages__get_installed__messagetype_files',
73
-            glob($folder . '*.class.php')
73
+            glob($folder.'*.class.php')
74 74
         );
75 75
         if (empty($filepaths)) {
76 76
             return;
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
                 continue;
87 87
             }
88 88
 
89
-            if (! class_exists($message_type_class_name)) {
89
+            if ( ! class_exists($message_type_class_name)) {
90 90
                 throw new EE_Error(
91 91
                     sprintf(
92 92
                         esc_html__('The "%1$s" message type class can\'t be loaded from %2$s. Likely there is a typo in the class name or the file name.', 'event_espresso'),
Please login to merge, or discard this patch.
core/libraries/messages/EE_Messenger_Collection_Loader.lib.php 2 patches
Indentation   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -16,127 +16,127 @@
 block discarded – undo
16 16
 
17 17
 
18 18
 
19
-    /**
20
-     * @type EE_Messenger_Collection $_messenger_collection
21
-     */
22
-    protected $_messenger_collection = null;
23
-
24
-
25
-
26
-    /**
27
-     * EE_Messenger_Collection_Loader constructor.
28
-     *
29
-     * @param EE_Messenger_Collection $messengers
30
-     */
31
-    public function __construct(EE_Messenger_Collection $messengers)
32
-    {
33
-        $this->set_messenger_collection($messengers);
34
-    }
35
-
36
-
37
-
38
-    /**
39
-     * @return EE_Messenger_Collection
40
-     */
41
-    public function messenger_collection()
42
-    {
43
-        return $this->_messenger_collection;
44
-    }
45
-
46
-
47
-
48
-    /**
49
-     * @param mixed $messengers
50
-     */
51
-    public function set_messenger_collection(EE_Messenger_Collection $messengers)
52
-    {
53
-        $this->_messenger_collection = $messengers;
54
-    }
55
-
56
-
57
-
58
-    /**
59
-     * load_messengers
60
-     * globs the supplied filepath and adds any found
61
-     *
62
-     * @param  string $folder
63
-     * @throws \EE_Error
64
-     */
65
-    public function load_messengers_from_folder($folder = '')
66
-    {
67
-        // make sure autoloaders are set (fail-safe)
68
-        EED_Messages::set_autoloaders();
69
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/messenger';
70
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
71
-        // get all the files in that folder that end in ".class.php
72
-        $filepaths = apply_filters(
73
-            'FHEE__EE_messages__get_installed__messenger_files',
74
-            glob($folder . '*.class.php')
75
-        );
76
-        if (empty($filepaths)) {
77
-            return;
78
-        }
79
-        foreach ((array) $filepaths as $file_path) {
80
-            // extract filename from path
81
-            $file_path = basename($file_path);
82
-            // now remove any file extensions
83
-            $messenger_class_name = substr($file_path, 0, strpos($file_path, '.'));
84
-
85
-            // first check to see if the class name represents an actual messenger class.
86
-            if (strpos(strtolower($messenger_class_name), 'messenger') === false) {
87
-                continue;
88
-            }
89
-
90
-            if (! class_exists($messenger_class_name)) {
91
-                throw new EE_Error(
92
-                    sprintf(
93
-                        esc_html__('The "%1$s" messenger class can\'t be loaded from %2$s.  Likely there is a typo in the class name or the file name.', 'event_espresso'),
94
-                        $messenger_class_name,
95
-                        $file_path
96
-                    )
97
-                );
98
-            }
99
-
100
-            $this->_load_messenger(new $messenger_class_name());
101
-        }
102
-    }
103
-
104
-
105
-    /**
106
-     * load_messengers
107
-     * globs the supplied filepath and adds any found
108
-     *
109
-     * @return array
110
-     */
111
-    public function load_active_messengers_from_db()
112
-    {
113
-        // make sure autoloaders are set (fail-safe)
114
-        EED_Messages::set_autoloaders();
115
-        $active_messengers = apply_filters(
116
-            'FHEE__EEH_MSG_Template__get_active_messengers_in_db',
117
-            get_option('ee_active_messengers', array())
118
-        );
119
-        foreach ((array) $active_messengers as $active_messenger_classname => $active_messenger) {
120
-            $this->_load_messenger($active_messenger);
121
-        }
122
-    }
123
-
124
-
125
-
126
-    /**
127
-     * load_messenger
128
-     *
129
-     * @param \EE_messenger $messenger
130
-     * @return bool
131
-     */
132
-    protected function _load_messenger(EE_messenger $messenger)
133
-    {
134
-        if ($this->messenger_collection()->has_by_name($messenger->name)) {
135
-            return true;
136
-        }
137
-        return $this->messenger_collection()->add(
138
-            $messenger,
139
-            $messenger->name
140
-        );
141
-    }
19
+	/**
20
+	 * @type EE_Messenger_Collection $_messenger_collection
21
+	 */
22
+	protected $_messenger_collection = null;
23
+
24
+
25
+
26
+	/**
27
+	 * EE_Messenger_Collection_Loader constructor.
28
+	 *
29
+	 * @param EE_Messenger_Collection $messengers
30
+	 */
31
+	public function __construct(EE_Messenger_Collection $messengers)
32
+	{
33
+		$this->set_messenger_collection($messengers);
34
+	}
35
+
36
+
37
+
38
+	/**
39
+	 * @return EE_Messenger_Collection
40
+	 */
41
+	public function messenger_collection()
42
+	{
43
+		return $this->_messenger_collection;
44
+	}
45
+
46
+
47
+
48
+	/**
49
+	 * @param mixed $messengers
50
+	 */
51
+	public function set_messenger_collection(EE_Messenger_Collection $messengers)
52
+	{
53
+		$this->_messenger_collection = $messengers;
54
+	}
55
+
56
+
57
+
58
+	/**
59
+	 * load_messengers
60
+	 * globs the supplied filepath and adds any found
61
+	 *
62
+	 * @param  string $folder
63
+	 * @throws \EE_Error
64
+	 */
65
+	public function load_messengers_from_folder($folder = '')
66
+	{
67
+		// make sure autoloaders are set (fail-safe)
68
+		EED_Messages::set_autoloaders();
69
+		$folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/messenger';
70
+		$folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
71
+		// get all the files in that folder that end in ".class.php
72
+		$filepaths = apply_filters(
73
+			'FHEE__EE_messages__get_installed__messenger_files',
74
+			glob($folder . '*.class.php')
75
+		);
76
+		if (empty($filepaths)) {
77
+			return;
78
+		}
79
+		foreach ((array) $filepaths as $file_path) {
80
+			// extract filename from path
81
+			$file_path = basename($file_path);
82
+			// now remove any file extensions
83
+			$messenger_class_name = substr($file_path, 0, strpos($file_path, '.'));
84
+
85
+			// first check to see if the class name represents an actual messenger class.
86
+			if (strpos(strtolower($messenger_class_name), 'messenger') === false) {
87
+				continue;
88
+			}
89
+
90
+			if (! class_exists($messenger_class_name)) {
91
+				throw new EE_Error(
92
+					sprintf(
93
+						esc_html__('The "%1$s" messenger class can\'t be loaded from %2$s.  Likely there is a typo in the class name or the file name.', 'event_espresso'),
94
+						$messenger_class_name,
95
+						$file_path
96
+					)
97
+				);
98
+			}
99
+
100
+			$this->_load_messenger(new $messenger_class_name());
101
+		}
102
+	}
103
+
104
+
105
+	/**
106
+	 * load_messengers
107
+	 * globs the supplied filepath and adds any found
108
+	 *
109
+	 * @return array
110
+	 */
111
+	public function load_active_messengers_from_db()
112
+	{
113
+		// make sure autoloaders are set (fail-safe)
114
+		EED_Messages::set_autoloaders();
115
+		$active_messengers = apply_filters(
116
+			'FHEE__EEH_MSG_Template__get_active_messengers_in_db',
117
+			get_option('ee_active_messengers', array())
118
+		);
119
+		foreach ((array) $active_messengers as $active_messenger_classname => $active_messenger) {
120
+			$this->_load_messenger($active_messenger);
121
+		}
122
+	}
123
+
124
+
125
+
126
+	/**
127
+	 * load_messenger
128
+	 *
129
+	 * @param \EE_messenger $messenger
130
+	 * @return bool
131
+	 */
132
+	protected function _load_messenger(EE_messenger $messenger)
133
+	{
134
+		if ($this->messenger_collection()->has_by_name($messenger->name)) {
135
+			return true;
136
+		}
137
+		return $this->messenger_collection()->add(
138
+			$messenger,
139
+			$messenger->name
140
+		);
141
+	}
142 142
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -66,12 +66,12 @@  discard block
 block discarded – undo
66 66
     {
67 67
         // make sure autoloaders are set (fail-safe)
68 68
         EED_Messages::set_autoloaders();
69
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/messenger';
70
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
69
+        $folder = ! empty($folder) ? $folder : EE_LIBRARIES.'messages/messenger';
70
+        $folder .= $folder[strlen($folder) - 1] != '/' ? '/' : '';
71 71
         // get all the files in that folder that end in ".class.php
72 72
         $filepaths = apply_filters(
73 73
             'FHEE__EE_messages__get_installed__messenger_files',
74
-            glob($folder . '*.class.php')
74
+            glob($folder.'*.class.php')
75 75
         );
76 76
         if (empty($filepaths)) {
77 77
             return;
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
                 continue;
88 88
             }
89 89
 
90
-            if (! class_exists($messenger_class_name)) {
90
+            if ( ! class_exists($messenger_class_name)) {
91 91
                 throw new EE_Error(
92 92
                     sprintf(
93 93
                         esc_html__('The "%1$s" messenger class can\'t be loaded from %2$s.  Likely there is a typo in the class name or the file name.', 'event_espresso'),
Please login to merge, or discard this patch.
core/libraries/messages/defaults/EE_Messages_Template_Defaults.lib.php 2 patches
Indentation   +228 added lines, -228 removed lines patch added patch discarded remove patch
@@ -15,232 +15,232 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * Used for holding the EE_Message_Template GRP_ID field value.
20
-     * @var [type]
21
-     */
22
-    protected $_GRP_ID;
23
-
24
-    /**
25
-     * holds the messenger object
26
-     *
27
-     * @var EE_messenger
28
-     */
29
-    protected $_messenger;
30
-
31
-    /**
32
-     * holds the message type object
33
-     *
34
-     * @var EE_message_type
35
-     */
36
-    protected $_message_type;
37
-
38
-    /**
39
-     * holds the fields used (this is retrieved from the messenger)
40
-     *
41
-     * @var array
42
-     */
43
-    protected $_fields;
44
-
45
-    /**
46
-     * holds the assembled template (with defaults) for creation in the database
47
-     *
48
-     * @var array
49
-     */
50
-    protected $_templates;
51
-
52
-    /**
53
-     * holds the contexts used (this is retrieved from the message type)
54
-     *
55
-     * @var array
56
-     */
57
-    protected $_contexts;
58
-
59
-
60
-    /**
61
-     *  @var EEM_Message_Template_Group
62
-     */
63
-    protected $_message_template_group_model;
64
-
65
-
66
-    /**
67
-     * @var EEM_Message_Template
68
-     */
69
-    protected $_message_template_model;
70
-
71
-
72
-    /**
73
-     * EE_Messages_Template_Defaults constructor.
74
-     *
75
-     * @param EE_messenger               $messenger
76
-     * @param EE_message_type            $message_type
77
-     * @param int                        $GRP_ID                      Optional.  If included then we're just regenerating
78
-     *                                                                the template fields for the given group not the
79
-     *                                                                message template group itself
80
-     * @param EEM_Message_Template_Group $message_template_group_model
81
-     * @param EEM_Message_Template       $message_template_model
82
-     * @throws EE_Error
83
-     */
84
-    public function __construct(
85
-        EE_messenger $messenger,
86
-        EE_message_type $message_type,
87
-        $GRP_ID = 0,
88
-        EEM_Message_Template_Group $message_template_group_model,
89
-        EEM_Message_Template $message_template_model
90
-    ) {
91
-        $this->_messenger = $messenger;
92
-        $this->_message_type = $message_type;
93
-        $this->_GRP_ID = $GRP_ID;
94
-        // set the model object
95
-        $this->_message_template_group_model = $message_template_group_model;
96
-        $this->_message_template_model = $message_template_model;
97
-        $this->_fields = $this->_messenger->get_template_fields();
98
-        $this->_contexts = $this->_message_type->get_contexts();
99
-    }
100
-
101
-
102
-    /**
103
-     * Setup the _template_data property.
104
-     * This method sets the _templates property array before templates are created.
105
-     *
106
-     * @param string $template_pack This corresponds to a template pack class reference which will contain information
107
-     *                              about where to obtain the templates.
108
-     *
109
-     */
110
-    final private function _set_templates($template_pack)
111
-    {
112
-
113
-        // get the corresponding template pack object (if present.  If not then we just load the default and add a
114
-        // notice).  The class name should be something like 'EE_Messages_Template_Pack_Default' where "default' would be
115
-        // the incoming template pack reference.
116
-        $class_name = 'EE_Messages_Template_Pack_' . str_replace(' ', '_', ucwords(str_replace('_', ' ', $template_pack)));
117
-
118
-        if (! class_exists($class_name)) {
119
-            EE_Error::add_error(
120
-                sprintf(
121
-                    esc_html__(
122
-                        'The template pack represented by a class corresponding to "%1$s" does not exist. Likely the autoloader for this class has the wrong path or the incoming reference is misspelled. The default template pack has been used to generate the templates instead.',
123
-                        'event_espresso'
124
-                    ),
125
-                    $class_name
126
-                ),
127
-                __FILE__,
128
-                __FUNCTION__,
129
-                __LINE__
130
-            );
131
-            $class_name = 'EE_Messages_Template_Pack_Default';
132
-        }
133
-        /** @type EE_Messages_Template_Pack $template_pack */
134
-        $template_pack = new $class_name();
135
-
136
-        // get all the templates from the template pack.
137
-        $this->_templates = $template_pack->get_templates($this->_messenger, $this->_message_type);
138
-    }
139
-
140
-
141
-    /**
142
-     * Return the contexts for the message type as cached on this instance.
143
-     * @return array
144
-     */
145
-    public function get_contexts()
146
-    {
147
-        return $this->_contexts;
148
-    }
149
-
150
-
151
-
152
-
153
-
154
-    /**
155
-     * public facing create new templates method
156
-     *
157
-     * @return mixed (array|bool)            success array or false.
158
-     */
159
-    public function create_new_templates()
160
-    {
161
-        $template_pack = 'default';
162
-        // if we have the GRP_ID then let's use that to see if there is a set template pack and use that for the new templates.
163
-        if (! empty($this->_GRP_ID)) {
164
-            $message_template_group = $this->_message_template_group_model->get_one_by_ID($this->_GRP_ID);
165
-            $template_pack = $message_template_group instanceof EE_Message_Template_Group
166
-                ? $message_template_group->get_template_pack_name()
167
-                : 'default';
168
-            // we also need to reset the template variation to default
169
-            $message_template_group->set_template_pack_variation('default');
170
-        }
171
-        return $this->_create_new_templates($template_pack);
172
-    }
173
-
174
-
175
-
176
-
177
-
178
-    /**
179
-     *  Handles creating new default templates.
180
-     *
181
-     * @param string $template_pack This corresponds to a template pack class reference
182
-     *                              which will contain information about where to obtain the templates.
183
-     * @return mixed (array|bool)   success array or false.
184
-     */
185
-    protected function _create_new_templates($template_pack)
186
-    {
187
-
188
-        $this->_set_templates($template_pack);
189
-
190
-        // necessary properties are set, let's save the default templates
191
-        if (empty($this->_GRP_ID)) {
192
-            $main_template_data = array(
193
-                'MTP_messenger'    => $this->_messenger->name,
194
-                'MTP_message_type' => $this->_message_type->name,
195
-                'MTP_is_override'  => 0,
196
-                'MTP_deleted'      => 0,
197
-                'MTP_is_global'    => 1,
198
-                'MTP_user_id'      => EEH_Activation::get_default_creator_id(),
199
-                'MTP_is_active'    => 1,
200
-            );
201
-            // let's insert the above and get our GRP_ID, then reset the template data array to just include the GRP_ID
202
-            $grp_id = $this->_message_template_group_model->insert($main_template_data);
203
-            if (empty($grp_id)) {
204
-                return $grp_id;
205
-            }
206
-            $this->_GRP_ID = $grp_id;
207
-        }
208
-
209
-        $template_data = array( 'GRP_ID' => $this->_GRP_ID );
210
-
211
-        foreach ($this->_contexts as $context => $details) {
212
-            foreach ($this->_fields as $field => $field_type) {
213
-                if ($field != 'extra') {
214
-                    $template_data['MTP_context'] = $context;
215
-                    $template_data['MTP_template_field'] = $field;
216
-                    $template_data['MTP_content'] = $this->_templates[ $context ][ $field ];
217
-
218
-                    $MTP = $this->_message_template_model->insert($template_data);
219
-                    if (! $MTP) {
220
-                        EE_Error::add_error(
221
-                            sprintf(
222
-                                esc_html__(
223
-                                    'There was an error in saving new template data for %1$s messenger, %2$s message type, %3$s context and %4$s template field.',
224
-                                    'event_espresso'
225
-                                ),
226
-                                $this->_messenger->name,
227
-                                $this->_message_type->name,
228
-                                $context,
229
-                                $field
230
-                            ),
231
-                            __FILE__,
232
-                            __FUNCTION__,
233
-                            __LINE__
234
-                        );
235
-                        return false;
236
-                    }
237
-                }
238
-            }
239
-        }
240
-
241
-        return array(
242
-            'GRP_ID'      => $this->_GRP_ID,
243
-            'MTP_context' => key($this->_contexts)
244
-        );
245
-    }
18
+	/**
19
+	 * Used for holding the EE_Message_Template GRP_ID field value.
20
+	 * @var [type]
21
+	 */
22
+	protected $_GRP_ID;
23
+
24
+	/**
25
+	 * holds the messenger object
26
+	 *
27
+	 * @var EE_messenger
28
+	 */
29
+	protected $_messenger;
30
+
31
+	/**
32
+	 * holds the message type object
33
+	 *
34
+	 * @var EE_message_type
35
+	 */
36
+	protected $_message_type;
37
+
38
+	/**
39
+	 * holds the fields used (this is retrieved from the messenger)
40
+	 *
41
+	 * @var array
42
+	 */
43
+	protected $_fields;
44
+
45
+	/**
46
+	 * holds the assembled template (with defaults) for creation in the database
47
+	 *
48
+	 * @var array
49
+	 */
50
+	protected $_templates;
51
+
52
+	/**
53
+	 * holds the contexts used (this is retrieved from the message type)
54
+	 *
55
+	 * @var array
56
+	 */
57
+	protected $_contexts;
58
+
59
+
60
+	/**
61
+	 *  @var EEM_Message_Template_Group
62
+	 */
63
+	protected $_message_template_group_model;
64
+
65
+
66
+	/**
67
+	 * @var EEM_Message_Template
68
+	 */
69
+	protected $_message_template_model;
70
+
71
+
72
+	/**
73
+	 * EE_Messages_Template_Defaults constructor.
74
+	 *
75
+	 * @param EE_messenger               $messenger
76
+	 * @param EE_message_type            $message_type
77
+	 * @param int                        $GRP_ID                      Optional.  If included then we're just regenerating
78
+	 *                                                                the template fields for the given group not the
79
+	 *                                                                message template group itself
80
+	 * @param EEM_Message_Template_Group $message_template_group_model
81
+	 * @param EEM_Message_Template       $message_template_model
82
+	 * @throws EE_Error
83
+	 */
84
+	public function __construct(
85
+		EE_messenger $messenger,
86
+		EE_message_type $message_type,
87
+		$GRP_ID = 0,
88
+		EEM_Message_Template_Group $message_template_group_model,
89
+		EEM_Message_Template $message_template_model
90
+	) {
91
+		$this->_messenger = $messenger;
92
+		$this->_message_type = $message_type;
93
+		$this->_GRP_ID = $GRP_ID;
94
+		// set the model object
95
+		$this->_message_template_group_model = $message_template_group_model;
96
+		$this->_message_template_model = $message_template_model;
97
+		$this->_fields = $this->_messenger->get_template_fields();
98
+		$this->_contexts = $this->_message_type->get_contexts();
99
+	}
100
+
101
+
102
+	/**
103
+	 * Setup the _template_data property.
104
+	 * This method sets the _templates property array before templates are created.
105
+	 *
106
+	 * @param string $template_pack This corresponds to a template pack class reference which will contain information
107
+	 *                              about where to obtain the templates.
108
+	 *
109
+	 */
110
+	final private function _set_templates($template_pack)
111
+	{
112
+
113
+		// get the corresponding template pack object (if present.  If not then we just load the default and add a
114
+		// notice).  The class name should be something like 'EE_Messages_Template_Pack_Default' where "default' would be
115
+		// the incoming template pack reference.
116
+		$class_name = 'EE_Messages_Template_Pack_' . str_replace(' ', '_', ucwords(str_replace('_', ' ', $template_pack)));
117
+
118
+		if (! class_exists($class_name)) {
119
+			EE_Error::add_error(
120
+				sprintf(
121
+					esc_html__(
122
+						'The template pack represented by a class corresponding to "%1$s" does not exist. Likely the autoloader for this class has the wrong path or the incoming reference is misspelled. The default template pack has been used to generate the templates instead.',
123
+						'event_espresso'
124
+					),
125
+					$class_name
126
+				),
127
+				__FILE__,
128
+				__FUNCTION__,
129
+				__LINE__
130
+			);
131
+			$class_name = 'EE_Messages_Template_Pack_Default';
132
+		}
133
+		/** @type EE_Messages_Template_Pack $template_pack */
134
+		$template_pack = new $class_name();
135
+
136
+		// get all the templates from the template pack.
137
+		$this->_templates = $template_pack->get_templates($this->_messenger, $this->_message_type);
138
+	}
139
+
140
+
141
+	/**
142
+	 * Return the contexts for the message type as cached on this instance.
143
+	 * @return array
144
+	 */
145
+	public function get_contexts()
146
+	{
147
+		return $this->_contexts;
148
+	}
149
+
150
+
151
+
152
+
153
+
154
+	/**
155
+	 * public facing create new templates method
156
+	 *
157
+	 * @return mixed (array|bool)            success array or false.
158
+	 */
159
+	public function create_new_templates()
160
+	{
161
+		$template_pack = 'default';
162
+		// if we have the GRP_ID then let's use that to see if there is a set template pack and use that for the new templates.
163
+		if (! empty($this->_GRP_ID)) {
164
+			$message_template_group = $this->_message_template_group_model->get_one_by_ID($this->_GRP_ID);
165
+			$template_pack = $message_template_group instanceof EE_Message_Template_Group
166
+				? $message_template_group->get_template_pack_name()
167
+				: 'default';
168
+			// we also need to reset the template variation to default
169
+			$message_template_group->set_template_pack_variation('default');
170
+		}
171
+		return $this->_create_new_templates($template_pack);
172
+	}
173
+
174
+
175
+
176
+
177
+
178
+	/**
179
+	 *  Handles creating new default templates.
180
+	 *
181
+	 * @param string $template_pack This corresponds to a template pack class reference
182
+	 *                              which will contain information about where to obtain the templates.
183
+	 * @return mixed (array|bool)   success array or false.
184
+	 */
185
+	protected function _create_new_templates($template_pack)
186
+	{
187
+
188
+		$this->_set_templates($template_pack);
189
+
190
+		// necessary properties are set, let's save the default templates
191
+		if (empty($this->_GRP_ID)) {
192
+			$main_template_data = array(
193
+				'MTP_messenger'    => $this->_messenger->name,
194
+				'MTP_message_type' => $this->_message_type->name,
195
+				'MTP_is_override'  => 0,
196
+				'MTP_deleted'      => 0,
197
+				'MTP_is_global'    => 1,
198
+				'MTP_user_id'      => EEH_Activation::get_default_creator_id(),
199
+				'MTP_is_active'    => 1,
200
+			);
201
+			// let's insert the above and get our GRP_ID, then reset the template data array to just include the GRP_ID
202
+			$grp_id = $this->_message_template_group_model->insert($main_template_data);
203
+			if (empty($grp_id)) {
204
+				return $grp_id;
205
+			}
206
+			$this->_GRP_ID = $grp_id;
207
+		}
208
+
209
+		$template_data = array( 'GRP_ID' => $this->_GRP_ID );
210
+
211
+		foreach ($this->_contexts as $context => $details) {
212
+			foreach ($this->_fields as $field => $field_type) {
213
+				if ($field != 'extra') {
214
+					$template_data['MTP_context'] = $context;
215
+					$template_data['MTP_template_field'] = $field;
216
+					$template_data['MTP_content'] = $this->_templates[ $context ][ $field ];
217
+
218
+					$MTP = $this->_message_template_model->insert($template_data);
219
+					if (! $MTP) {
220
+						EE_Error::add_error(
221
+							sprintf(
222
+								esc_html__(
223
+									'There was an error in saving new template data for %1$s messenger, %2$s message type, %3$s context and %4$s template field.',
224
+									'event_espresso'
225
+								),
226
+								$this->_messenger->name,
227
+								$this->_message_type->name,
228
+								$context,
229
+								$field
230
+							),
231
+							__FILE__,
232
+							__FUNCTION__,
233
+							__LINE__
234
+						);
235
+						return false;
236
+					}
237
+				}
238
+			}
239
+		}
240
+
241
+		return array(
242
+			'GRP_ID'      => $this->_GRP_ID,
243
+			'MTP_context' => key($this->_contexts)
244
+		);
245
+	}
246 246
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -113,9 +113,9 @@  discard block
 block discarded – undo
113 113
         // get the corresponding template pack object (if present.  If not then we just load the default and add a
114 114
         // notice).  The class name should be something like 'EE_Messages_Template_Pack_Default' where "default' would be
115 115
         // the incoming template pack reference.
116
-        $class_name = 'EE_Messages_Template_Pack_' . str_replace(' ', '_', ucwords(str_replace('_', ' ', $template_pack)));
116
+        $class_name = 'EE_Messages_Template_Pack_'.str_replace(' ', '_', ucwords(str_replace('_', ' ', $template_pack)));
117 117
 
118
-        if (! class_exists($class_name)) {
118
+        if ( ! class_exists($class_name)) {
119 119
             EE_Error::add_error(
120 120
                 sprintf(
121 121
                     esc_html__(
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
     {
161 161
         $template_pack = 'default';
162 162
         // if we have the GRP_ID then let's use that to see if there is a set template pack and use that for the new templates.
163
-        if (! empty($this->_GRP_ID)) {
163
+        if ( ! empty($this->_GRP_ID)) {
164 164
             $message_template_group = $this->_message_template_group_model->get_one_by_ID($this->_GRP_ID);
165 165
             $template_pack = $message_template_group instanceof EE_Message_Template_Group
166 166
                 ? $message_template_group->get_template_pack_name()
@@ -206,17 +206,17 @@  discard block
 block discarded – undo
206 206
             $this->_GRP_ID = $grp_id;
207 207
         }
208 208
 
209
-        $template_data = array( 'GRP_ID' => $this->_GRP_ID );
209
+        $template_data = array('GRP_ID' => $this->_GRP_ID);
210 210
 
211 211
         foreach ($this->_contexts as $context => $details) {
212 212
             foreach ($this->_fields as $field => $field_type) {
213 213
                 if ($field != 'extra') {
214 214
                     $template_data['MTP_context'] = $context;
215 215
                     $template_data['MTP_template_field'] = $field;
216
-                    $template_data['MTP_content'] = $this->_templates[ $context ][ $field ];
216
+                    $template_data['MTP_content'] = $this->_templates[$context][$field];
217 217
 
218 218
                     $MTP = $this->_message_template_model->insert($template_data);
219
-                    if (! $MTP) {
219
+                    if ( ! $MTP) {
220 220
                         EE_Error::add_error(
221 221
                             sprintf(
222 222
                                 esc_html__(
Please login to merge, or discard this patch.
messages/defaults/default/html_receipt_ticket_line_item_pms.template.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@
 block discarded – undo
8 8
 <tr class="item">
9 9
     <td>[LINE_ITEM_NAME][LINE_ITEM_TAXABLE_*]</td>
10 10
     <td colspan="2">[LINE_ITEM_DESCRIPTION]
11
-        <p class="ticket-note"><?php echo sprintf(esc_html__('This ticket can be used once at %s of the dates/times below.', 'event_espresso'), '[TKT_USES_* schema=' . esc_html__('any', 'event_espresso') . ']'); ?></p>
11
+        <p class="ticket-note"><?php echo sprintf(esc_html__('This ticket can be used once at %s of the dates/times below.', 'event_espresso'), '[TKT_USES_* schema='.esc_html__('any', 'event_espresso').']'); ?></p>
12 12
     </td>
13 13
     <td class="item_c">[LINE_ITEM_QUANTITY]</td>
14 14
     <td class="item_c">[LINE_ITEM_AMOUNT]</td>
Please login to merge, or discard this patch.
core/libraries/messages/defaults/EE_Messages_Template_Pack.core.php 2 patches
Indentation   +469 added lines, -469 removed lines patch added patch discarded remove patch
@@ -14,511 +14,511 @@
 block discarded – undo
14 14
 {
15 15
 
16 16
 
17
-    /**
18
-     * This defines the base_path where the templates are located.
19
-     *
20
-     * @since            4.5.0
21
-     *
22
-     * @var string
23
-     */
24
-    protected $_base_path;
17
+	/**
18
+	 * This defines the base_path where the templates are located.
19
+	 *
20
+	 * @since            4.5.0
21
+	 *
22
+	 * @var string
23
+	 */
24
+	protected $_base_path;
25 25
 
26 26
 
27 27
 
28 28
 
29
-    /**
30
-     * This defines the base_url where things are found for this template pack (possibly variations).
31
-     *
32
-     * @since 4.5.0
33
-     *
34
-     * @var string
35
-     */
36
-    protected $_base_url;
29
+	/**
30
+	 * This defines the base_url where things are found for this template pack (possibly variations).
31
+	 *
32
+	 * @since 4.5.0
33
+	 *
34
+	 * @var string
35
+	 */
36
+	protected $_base_url;
37 37
 
38 38
 
39 39
 
40
-    /**
41
-     * localized label for this template pack
42
-     *
43
-     * @since            4.5.0
44
-     *
45
-     * @var string
46
-     */
47
-    public $label;
40
+	/**
41
+	 * localized label for this template pack
42
+	 *
43
+	 * @since            4.5.0
44
+	 *
45
+	 * @var string
46
+	 */
47
+	public $label;
48 48
 
49 49
 
50 50
 
51 51
 
52
-    /**
53
-     * used to contain a description for the template pack.
54
-     *
55
-     * @since 4.5.0
56
-     *
57
-     * @var string
58
-     */
59
-    public $description;
52
+	/**
53
+	 * used to contain a description for the template pack.
54
+	 *
55
+	 * @since 4.5.0
56
+	 *
57
+	 * @var string
58
+	 */
59
+	public $description;
60 60
 
61 61
 
62 62
 
63 63
 
64
-    /**
65
-     * How this template is referenced in the db
66
-     *
67
-     * @since 4.5.0
68
-     *
69
-     * @var string
70
-     */
71
-    public $dbref;
64
+	/**
65
+	 * How this template is referenced in the db
66
+	 *
67
+	 * @since 4.5.0
68
+	 *
69
+	 * @var string
70
+	 */
71
+	public $dbref;
72 72
 
73 73
 
74 74
 
75 75
 
76
-    /**
77
-     * This is an array indexed by messenger and with an array of message types as values that indicate what messenger and message type this template pack supports by default.  It is possible for this to be modified by plugins via filters, but out of the box, this is what the template pack supports.
78
-     *
79
-     * @since 4.5.0
80
-     *
81
-     * @var array.
82
-     */
83
-    protected $_supports = array();
76
+	/**
77
+	 * This is an array indexed by messenger and with an array of message types as values that indicate what messenger and message type this template pack supports by default.  It is possible for this to be modified by plugins via filters, but out of the box, this is what the template pack supports.
78
+	 *
79
+	 * @since 4.5.0
80
+	 *
81
+	 * @var array.
82
+	 */
83
+	protected $_supports = array();
84 84
 
85 85
 
86 86
 
87 87
 
88 88
 
89
-    /**
90
-     * Holds the retrieved default templates for this template pack in a multidimensional array indexed by context and field, for a given messenger and message type.  Example format:
91
-     *
92
-     * $templates = array(
93
-     *  'email' => array(
94
-     *      'registration' => array(
95
-     *          'admin' => array(
96
-     *              'to' => 'contents',
97
-     *              'from' => 'contents',
98
-     *              'subject' => 'contents',
99
-     *              'content' => 'contents',
100
-     *              'event_list' => 'contents',
101
-     *              'attendee_list' => 'contents'
102
-     *          ),
103
-     *          'attendee' => array(
104
-     *              'to' => 'contents',
105
-     *              'from' => 'contents',
106
-     *              'subject' => 'contents',
107
-     *              'content' => 'contents',
108
-     *              'event_list' => 'contents',
109
-     *              'attendee_list' => 'contents',
110
-     *          ),
111
-     *      )
112
-     *  )
113
-     * )
114
-     *
115
-     * @since 4.5.0
116
-     *
117
-     * @var array
118
-     */
119
-    protected $_templates = array();
89
+	/**
90
+	 * Holds the retrieved default templates for this template pack in a multidimensional array indexed by context and field, for a given messenger and message type.  Example format:
91
+	 *
92
+	 * $templates = array(
93
+	 *  'email' => array(
94
+	 *      'registration' => array(
95
+	 *          'admin' => array(
96
+	 *              'to' => 'contents',
97
+	 *              'from' => 'contents',
98
+	 *              'subject' => 'contents',
99
+	 *              'content' => 'contents',
100
+	 *              'event_list' => 'contents',
101
+	 *              'attendee_list' => 'contents'
102
+	 *          ),
103
+	 *          'attendee' => array(
104
+	 *              'to' => 'contents',
105
+	 *              'from' => 'contents',
106
+	 *              'subject' => 'contents',
107
+	 *              'content' => 'contents',
108
+	 *              'event_list' => 'contents',
109
+	 *              'attendee_list' => 'contents',
110
+	 *          ),
111
+	 *      )
112
+	 *  )
113
+	 * )
114
+	 *
115
+	 * @since 4.5.0
116
+	 *
117
+	 * @var array
118
+	 */
119
+	protected $_templates = array();
120 120
 
121 121
 
122 122
 
123 123
 
124 124
 
125 125
 
126
-    /**
127
-     * Template Packs must ALWAYS have a default variation defined.  This property allow one to override the default variation labels per messenger.
128
-     * example:
129
-     * $this->_default_variation_labels = array( 'email' =>  esc_html__('Default', 'event_espresso' ) );
130
-     *
131
-     * @var array
132
-     */
133
-    protected $_default_variation_labels = array();
126
+	/**
127
+	 * Template Packs must ALWAYS have a default variation defined.  This property allow one to override the default variation labels per messenger.
128
+	 * example:
129
+	 * $this->_default_variation_labels = array( 'email' =>  esc_html__('Default', 'event_espresso' ) );
130
+	 *
131
+	 * @var array
132
+	 */
133
+	protected $_default_variation_labels = array();
134 134
 
135 135
 
136 136
 
137 137
 
138
-    /**
139
-     * This is an array of extra css variations for message templates indexed by messenger with the values as an array or message types the variations apply to as the key  and then values are an array with variation slugs as the key and label as the value. Note the default variation is not included in this array.  So the structure is:
140
-     * array(
141
-     *  'email' => array(
142
-     *  )
143
-     * )
144
-     *
145
-     * Keep in mind that this property is used both for indicating valid variations for a given message type and messenger but the variation files themselves are ONLY unique to the messenger.  So if you have a variation for the html messenger referenced by the slug "sunset_red" Then the variation file for the main type will be html_main_sunset_red.css.  All the array in this property allows you to do, is indicate that with certain message types the sunset_red variation is available but for other message types its not.  But you could NOT have a sunset_red variation file for one messenger/message_type and a different one for another messenger/message_type.  If you want different css looks then you can define a different structural layout for the template , messenger, message type combination and in the same sunset_red.css variation file just add css specific to that layout.
146
-     *
147
-     * @since 4.5.0
148
-     *
149
-     * @var array
150
-     */
151
-    public $_variations = array();
152
-
153
-
154
-
155
-
156
-    /**
157
-     * Template pack constructor
158
-     *
159
-     * @since 4.5.0
160
-     */
161
-    public function __construct()
162
-    {
163
-        $this->_set_props();
164
-        // make sure classname is correct
165
-        $classname = get_class($this);
166
-        // make sure required props have been set
167
-
168
-        // if label is empty then throw an error because we should have it defined by now.
169
-        if (! isset($this->label)) {
170
-            throw new EE_Error(sprintf(esc_html__('The label property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
171
-        }
172
-
173
-
174
-        // the reference for this template pack
175
-        if (! isset($this->dbref)) {
176
-            throw new EE_Error(sprintf(esc_html__('The dbref property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
177
-        }
178
-
179
-        // make sure dbref is safe
180
-        $this->dbref = str_replace('-', '_', sanitize_key($this->dbref));
181
-
182
-        $should_be = 'EE_Messages_Template_Pack_' . str_replace(' ', '_', ucwords(str_replace('_', ' ', $this->dbref)));
183
-
184
-        if ($should_be !== $classname) {
185
-            throw new EE_Error(sprintf(esc_html__('The name of the template pack instantiated class is "%s".  It should be "%s".  Make sure that the name of the template pack class matches is prepended with "EE_Messages_Template_Pack_" and appended with a sentence case iteration of the value for your template pack\'s dbref property.', 'event_espresso'), $classname, $should_be));
186
-        }
187
-
188
-        // if _base_path is not set then throw an error because a base path string is needed.
189
-        if (empty($this->_base_path)) {
190
-            throw new EE_Error(sprintf(esc_html__('The _base_path property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
191
-        }
192
-
193
-
194
-        // if _base_url is not set then throw an error because a  string is needed for variations.
195
-        if (empty($this->_base_url)) {
196
-            throw new EE_Error(sprintf(esc_html__('The _base_url property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
197
-        }
198
-
199
-
200
-        // if $supports is not set then throw an error because that effectively means this template_pack does not have any templates!
201
-        if (empty($this->_supports)) {
202
-            throw new EE_Error(sprintf(esc_html__('The supports property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
203
-        }
204
-    }
205
-
206
-
207
-
208
-    /**
209
-     * This method should be used to define the following properties:
210
-     * - label
211
-     * - dbref
212
-     * - description
213
-     * - _base_path
214
-     * - _base_url
215
-     * - supports
216
-     * - variations
217
-     *
218
-     * @since 4.5.0
219
-     * @return void.
220
-     * @abstract
221
-     */
222
-    abstract protected function _set_props();
223
-
224
-
225
-
226
-
227
-    /**
228
-     * Wrapper for get_templates() ( @see get_templates() for documentation)
229
-     *
230
-     * @since 4.5.0
231
-     *
232
-     * @param EE_messenger    $messenger
233
-     * @param EE_message_type $message_type
234
-     *
235
-     * @return array
236
-     */
237
-    public function get_templates(EE_messenger $messenger, EE_message_type $message_type)
238
-    {
239
-        return isset($this->_templates[ $messenger->name ][ $message_type->name ]) ? $this->_templates[ $messenger->name ][ $message_type->name ] : $this->_get_templates($messenger, $message_type);
240
-    }
241
-
242
-
243
-
244
-
245
-    /**
246
-     * This takes the incoming messenger and message type objects, uses them to get the set fields and contexts, then attempts to retrieve the templates matching those for this given template pack.
247
-     *
248
-     * @since 4.5.0
249
-     *
250
-     * @param EE_messenger    $messenger
251
-     * @param EE_message_type $message_type
252
-     *
253
-     * @return array          Returns an multi-level associative array indexed by template context and field in the format:
254
-     *                                array( 'context' => array( 'field' => 'value', 'another-field', 'value' ) );
255
-     */
256
-    protected function _get_templates(EE_messenger $messenger, EE_message_type $message_type)
257
-    {
258
-        $templates = array();
259
-
260
-        /**
261
-         * Retrieving the default pack for later usage of default templates for template packs that
262
-         * are NOT the default pack ( or an extension of the default pack ).
263
-         * We ONLY set this variable to be the default pack IF the loaded class is NOT the default
264
-         * pack.  This prevents recursion in _get_specific_template().  The intention is that for
265
-         * template packs that are NOT default packs, we use the default template pack to provide
266
-         * the final fallback templates if there aren't any defined for the called template pack.
267
-         *
268
-         * @type EE_Messages_Template_Pack_Default | null $default_pack
269
-         */
270
-        $default_pack = ! $this instanceof EE_Messages_Template_Pack_Default ? new EE_Messages_Template_Pack_Default() : null;
271
-
272
-        $fields = $messenger->get_template_fields();
273
-        $contexts = $message_type->get_contexts();
274
-
275
-
276
-        foreach ($contexts as $context => $details) {
277
-            foreach ($fields as $field => $field_details) {
278
-                if (empty($field_details)) {
279
-                    continue;
280
-                }
281
-                /**
282
-                 * is this a field array (linked to a main field)?
283
-                 */
284
-                if ($field == 'extra') {
285
-                    foreach ($field_details as $main_field => $sub_fields) {
286
-                        foreach ($sub_fields as $sub_field => $sub_field_details) {
287
-                            // make sure that the template_field_ref matches what the main template field is for this template group.
288
-                            $template_field_ref = $sub_field == 'main' ? $main_field : $sub_field;
289
-                            $templates[ $context ][ $main_field ][ $sub_field ] = $this->_get_specific_template($default_pack, $messenger, $message_type, $template_field_ref, $context);
290
-                        }
291
-                    }
292
-                } else {
293
-                    $templates[ $context ][ $field ] = $this->_get_specific_template($default_pack, $messenger, $message_type, $field, $context);
294
-                }
295
-            }
296
-        }
297
-
298
-        $templates = apply_filters('FHEE__EE_Template_Pack___get_templates__templates', $templates, $messenger, $message_type, $this);
299
-
300
-        $this->_templates[ $messenger->name ][ $message_type->name ] = $templates;
301
-         return $templates;
302
-    }
303
-
304
-
305
-    /**
306
-     * Utility method for retrieving a specific template matching the given parameters
307
-     *
308
-     * @param null | EE_Messages_Template_Pack_Default $default_pack
309
-     * @param EE_messenger                             $messenger
310
-     * @param EE_message_type                          $message_type
311
-     * @param string                                   $field          The field reference for the specific template being looked up.
312
-     * @param string                                   $context      The context reference for the specific template being looked up
313
-     *
314
-     * @return string          The template contents.
315
-     */
316
-    protected function _get_specific_template($default_pack, EE_messenger $messenger, EE_message_type $message_type, $field, $context)
317
-    {
318
-
319
-        // default templates
320
-        $default_templates = $default_pack instanceof EE_Messages_Template_Pack_Default ? $default_pack->get_templates($messenger, $message_type) : array();
321
-
322
-        // first we allow for the $_base_path to be filtered.  However, we assign this to a new variable so that we have the original base_path as a fallback.
323
-        $filtered_base_path = apply_filters('FHEE__EE_Template_Pack___get_specific_template__filtered_base_path', $this->_base_path, $messenger, $message_type, $field, $context, $this);
324
-
325
-        $master_templates = $message_type->get_master_templates();
326
-        $master_templates_mt = isset($master_templates[ $messenger->name ]) ? $master_templates[ $messenger->name ] : $message_type->name;
327
-        $full_path = $filtered_base_path . $messenger->name . '_' . $message_type->name . '_' . $field . '_' . $context . '.template.php';
328
-        $fallback_path = $filtered_base_path . $messenger->name . '_' . $message_type->name . '_' . $field . '.template.php';
329
-        $mt_defined_full_path = $filtered_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '_' . $context . '.template.php';
330
-        $mt_defined_fallback_path = $filtered_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '.template.php';
331
-        $base_defined_full_path = $this->_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '_' . $context . '.template.php';
332
-        $base_defined_fallback_path = $this->_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '.template.php';
333
-
334
-        /**
335
-         * Template checks are done hierarchically in the following order:
336
-         *
337
-         * - a match for the full messenger name, message type, context and field in the full path for the given template pack.
338
-         * - a match for the full messenger name, message type, field in the full path for the given template pack.
339
-         * - a match for the full messenger name, message type, field, context in the path grabbed for the related message type defined in the _master_templates property for the message type (i.e. all registration message types share the same template as the main registration message type).
340
-         * - match for the full messenger name, message type, field for the related message type defined in the _master templates property for the message type
341
-         * - a match for a default template matching the messenger, name, context, field (as set by the default template packs).
342
-         * - empty string.
343
-         */
344
-
345
-
346
-        if (is_readable($full_path)) {
347
-            $actual_path = $full_path;
348
-        } elseif (is_readable($fallback_path)) {
349
-            $actual_path = $fallback_path;
350
-        } elseif (is_readable($mt_defined_full_path)) {
351
-            $actual_path = $mt_defined_full_path;
352
-        } elseif (is_readable($mt_defined_fallback_path)) {
353
-            $actual_path = $mt_defined_fallback_path;
354
-        } elseif (is_readable($base_defined_full_path)) {
355
-            $actual_path = $base_defined_full_path;
356
-        } elseif (is_readable($base_defined_fallback_path)) {
357
-            $actual_path = $base_defined_fallback_path;
358
-        } else {
359
-            $actual_path = '';
360
-        }
361
-        if (empty($actual_path)) {
362
-            $contents = isset($default_templates[ $context ][ $field ]) ? $default_templates[ $context ][ $field ] : '';
363
-        } else {
364
-            $contents = EEH_Template::display_template($actual_path, array(), true);
365
-        }
366
-
367
-        return apply_filters('FHEE__EE_Messages_Template_Pack__get_specific_template__contents', $contents, $actual_path, $messenger, $message_type, $field, $context, $this);
368
-    }
369
-
370
-
371
-
372
-
373
-
374
-    /**
375
-     * Return filtered _supports property.
376
-     *
377
-     * @since 4.5.0
378
-     *
379
-     * @return array
380
-     */
381
-    public function get_supports()
382
-    {
383
-        $supports = apply_filters('FHEE__' . get_class($this) . '__get_supports', $this->_supports);
384
-        return apply_filters('FHEE__EE_Messages_Template_Pack__get_supports', $supports, $this);
385
-    }
386
-
387
-
388
-
389
-
390
-    /**
391
-     * This simply returns the $_default_variation_labels property value.
392
-     *
393
-     * @since 4.5.0
394
-     *
395
-     * @param string $messenger if the messenger slug is returned then the default label for the specific messenger is retrieved.  If it doesn't exist then the esc_html__('Default', 'event_espresso') is returned.  If NO value is provided then whatever is set on the _default_variation_labels property is returned.
396
-     *
397
-     * @return array|string
398
-     */
399
-    public function get_default_variation_labels($messenger = '')
400
-    {
401
-        $label = empty($messenger) ? $this->_default_variation_labels : array();
402
-        $label = empty($label) && ! empty($this->_default_variation_labels[ $messenger ]) ? $this->_default_variation_labels[ $messenger ] : esc_html__('Default', 'event_espresso');
403
-
404
-        return apply_filters('FHEE__EE_Messages_Template_Pack__get_default_variation_labels', $label, $this->_default_variation_labels, $messenger);
405
-    }
406
-
407
-
408
-
409
-
410
-
411
-    /**
412
-     * This simply returns the _variations property.
413
-     *
414
-     * @since 4.5.0
415
-     *
416
-     * @param string $messenger if included then css variations matching the messenger are returned.  Otherwise, just the default variation is included.  If both message type AND messenger are empty then all variations are returned.
417
-     * @param string $message_type if included then css variations matching the message_type are returned (must have $messenger set).  Otherwise the array of variations per message type are returned.  If message_type is provided but NOT the messenger, then just all variations for all messengers are returned.
418
-     * @return array
419
-     */
420
-    public function get_variations($messenger = '', $message_type = '')
421
-    {
422
-        $messenger_variations = ! empty($messenger) && isset($this->_variations[ $messenger ]) ? $this->_variations[ $messenger ] : array();
423
-
424
-        // message_type provided? IF so, then we've requested a specific set of variations, so we need to make sure we set it as empty if that's not present.
425
-        $variations = !empty($messenger) && !empty($message_type) && isset($messenger_variations[ $message_type ]) ? $messenger_variations[ $message_type ] : array();
426
-
427
-        // now let's account for the possibility we just want all the variations for a messenger (which is indicated by providing the messenger but not the message type).
428
-        $variations = empty($variations) && !empty($messenger) && empty($message_type) ? $messenger_variations : $variations;
429
-
430
-        // filter per template pack and globally.
431
-        $variations = apply_filters('FHEE__' . get_class($this) . '__get_variations', $variations, $messenger, $message_type);
432
-        $variations = apply_filters('FHEE__EE_Messages_Template_Pack__get_variations', $variations, $messenger, $message_type, $this);
433
-
434
-        // prepend the _default_variation, but ONLY if we're returning the fully validated array.
435
-        if (!empty($messenger) && !empty($message_type) && ! empty($variations)) {
436
-            $variations = array( 'default' => $this->get_default_variation_labels($messenger) ) + $variations;
437
-        }
438
-
439
-        return empty($variations) ? array( 'default' => $this->get_default_variation_labels('dft') ) : $variations;
440
-    }
441
-
442
-
443
-
444
-
445
-    /**
446
-     * This is typically called by EE_messenger objects to get the specific css variation defined for the messenger, message_type and type (i.e. inline, wpeditor, preview etc.)
447
-     *
448
-     * @since 4.5.0
449
-     *
450
-     * @param string $messenger messenger slug
451
-     * @param string $message_type message_type slug
452
-     * @param string $type           variation type (i.e. inline, base, wpeditor, preview etc. //this varies per messenger).
453
-     * @param string $variation    this should match one of the defined variations in the _variations property on this class.
454
-     * @param string $file_extension  What type of file the variation file is (defaults to css)
455
-     * @param bool   $url          if true then return the url otherwise path.
456
-     * @param bool   $skip_filters This should not be set directly, its used internally to skip filters when the default template pack is called internally as the fallback.
457
-     *
458
-     * @return string The variation path or url (typically css reference)
459
-     */
460
-    public function get_variation($messenger, $message_type, $type, $variation, $url = true, $file_extension = '.css', $skip_filters = false)
461
-    {
138
+	/**
139
+	 * This is an array of extra css variations for message templates indexed by messenger with the values as an array or message types the variations apply to as the key  and then values are an array with variation slugs as the key and label as the value. Note the default variation is not included in this array.  So the structure is:
140
+	 * array(
141
+	 *  'email' => array(
142
+	 *  )
143
+	 * )
144
+	 *
145
+	 * Keep in mind that this property is used both for indicating valid variations for a given message type and messenger but the variation files themselves are ONLY unique to the messenger.  So if you have a variation for the html messenger referenced by the slug "sunset_red" Then the variation file for the main type will be html_main_sunset_red.css.  All the array in this property allows you to do, is indicate that with certain message types the sunset_red variation is available but for other message types its not.  But you could NOT have a sunset_red variation file for one messenger/message_type and a different one for another messenger/message_type.  If you want different css looks then you can define a different structural layout for the template , messenger, message type combination and in the same sunset_red.css variation file just add css specific to that layout.
146
+	 *
147
+	 * @since 4.5.0
148
+	 *
149
+	 * @var array
150
+	 */
151
+	public $_variations = array();
152
+
153
+
154
+
155
+
156
+	/**
157
+	 * Template pack constructor
158
+	 *
159
+	 * @since 4.5.0
160
+	 */
161
+	public function __construct()
162
+	{
163
+		$this->_set_props();
164
+		// make sure classname is correct
165
+		$classname = get_class($this);
166
+		// make sure required props have been set
167
+
168
+		// if label is empty then throw an error because we should have it defined by now.
169
+		if (! isset($this->label)) {
170
+			throw new EE_Error(sprintf(esc_html__('The label property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
171
+		}
172
+
173
+
174
+		// the reference for this template pack
175
+		if (! isset($this->dbref)) {
176
+			throw new EE_Error(sprintf(esc_html__('The dbref property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
177
+		}
178
+
179
+		// make sure dbref is safe
180
+		$this->dbref = str_replace('-', '_', sanitize_key($this->dbref));
181
+
182
+		$should_be = 'EE_Messages_Template_Pack_' . str_replace(' ', '_', ucwords(str_replace('_', ' ', $this->dbref)));
183
+
184
+		if ($should_be !== $classname) {
185
+			throw new EE_Error(sprintf(esc_html__('The name of the template pack instantiated class is "%s".  It should be "%s".  Make sure that the name of the template pack class matches is prepended with "EE_Messages_Template_Pack_" and appended with a sentence case iteration of the value for your template pack\'s dbref property.', 'event_espresso'), $classname, $should_be));
186
+		}
187
+
188
+		// if _base_path is not set then throw an error because a base path string is needed.
189
+		if (empty($this->_base_path)) {
190
+			throw new EE_Error(sprintf(esc_html__('The _base_path property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
191
+		}
192
+
193
+
194
+		// if _base_url is not set then throw an error because a  string is needed for variations.
195
+		if (empty($this->_base_url)) {
196
+			throw new EE_Error(sprintf(esc_html__('The _base_url property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
197
+		}
198
+
199
+
200
+		// if $supports is not set then throw an error because that effectively means this template_pack does not have any templates!
201
+		if (empty($this->_supports)) {
202
+			throw new EE_Error(sprintf(esc_html__('The supports property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
203
+		}
204
+	}
205
+
206
+
207
+
208
+	/**
209
+	 * This method should be used to define the following properties:
210
+	 * - label
211
+	 * - dbref
212
+	 * - description
213
+	 * - _base_path
214
+	 * - _base_url
215
+	 * - supports
216
+	 * - variations
217
+	 *
218
+	 * @since 4.5.0
219
+	 * @return void.
220
+	 * @abstract
221
+	 */
222
+	abstract protected function _set_props();
223
+
224
+
225
+
226
+
227
+	/**
228
+	 * Wrapper for get_templates() ( @see get_templates() for documentation)
229
+	 *
230
+	 * @since 4.5.0
231
+	 *
232
+	 * @param EE_messenger    $messenger
233
+	 * @param EE_message_type $message_type
234
+	 *
235
+	 * @return array
236
+	 */
237
+	public function get_templates(EE_messenger $messenger, EE_message_type $message_type)
238
+	{
239
+		return isset($this->_templates[ $messenger->name ][ $message_type->name ]) ? $this->_templates[ $messenger->name ][ $message_type->name ] : $this->_get_templates($messenger, $message_type);
240
+	}
241
+
242
+
243
+
244
+
245
+	/**
246
+	 * This takes the incoming messenger and message type objects, uses them to get the set fields and contexts, then attempts to retrieve the templates matching those for this given template pack.
247
+	 *
248
+	 * @since 4.5.0
249
+	 *
250
+	 * @param EE_messenger    $messenger
251
+	 * @param EE_message_type $message_type
252
+	 *
253
+	 * @return array          Returns an multi-level associative array indexed by template context and field in the format:
254
+	 *                                array( 'context' => array( 'field' => 'value', 'another-field', 'value' ) );
255
+	 */
256
+	protected function _get_templates(EE_messenger $messenger, EE_message_type $message_type)
257
+	{
258
+		$templates = array();
259
+
260
+		/**
261
+		 * Retrieving the default pack for later usage of default templates for template packs that
262
+		 * are NOT the default pack ( or an extension of the default pack ).
263
+		 * We ONLY set this variable to be the default pack IF the loaded class is NOT the default
264
+		 * pack.  This prevents recursion in _get_specific_template().  The intention is that for
265
+		 * template packs that are NOT default packs, we use the default template pack to provide
266
+		 * the final fallback templates if there aren't any defined for the called template pack.
267
+		 *
268
+		 * @type EE_Messages_Template_Pack_Default | null $default_pack
269
+		 */
270
+		$default_pack = ! $this instanceof EE_Messages_Template_Pack_Default ? new EE_Messages_Template_Pack_Default() : null;
271
+
272
+		$fields = $messenger->get_template_fields();
273
+		$contexts = $message_type->get_contexts();
274
+
275
+
276
+		foreach ($contexts as $context => $details) {
277
+			foreach ($fields as $field => $field_details) {
278
+				if (empty($field_details)) {
279
+					continue;
280
+				}
281
+				/**
282
+				 * is this a field array (linked to a main field)?
283
+				 */
284
+				if ($field == 'extra') {
285
+					foreach ($field_details as $main_field => $sub_fields) {
286
+						foreach ($sub_fields as $sub_field => $sub_field_details) {
287
+							// make sure that the template_field_ref matches what the main template field is for this template group.
288
+							$template_field_ref = $sub_field == 'main' ? $main_field : $sub_field;
289
+							$templates[ $context ][ $main_field ][ $sub_field ] = $this->_get_specific_template($default_pack, $messenger, $message_type, $template_field_ref, $context);
290
+						}
291
+					}
292
+				} else {
293
+					$templates[ $context ][ $field ] = $this->_get_specific_template($default_pack, $messenger, $message_type, $field, $context);
294
+				}
295
+			}
296
+		}
297
+
298
+		$templates = apply_filters('FHEE__EE_Template_Pack___get_templates__templates', $templates, $messenger, $message_type, $this);
299
+
300
+		$this->_templates[ $messenger->name ][ $message_type->name ] = $templates;
301
+		 return $templates;
302
+	}
303
+
304
+
305
+	/**
306
+	 * Utility method for retrieving a specific template matching the given parameters
307
+	 *
308
+	 * @param null | EE_Messages_Template_Pack_Default $default_pack
309
+	 * @param EE_messenger                             $messenger
310
+	 * @param EE_message_type                          $message_type
311
+	 * @param string                                   $field          The field reference for the specific template being looked up.
312
+	 * @param string                                   $context      The context reference for the specific template being looked up
313
+	 *
314
+	 * @return string          The template contents.
315
+	 */
316
+	protected function _get_specific_template($default_pack, EE_messenger $messenger, EE_message_type $message_type, $field, $context)
317
+	{
318
+
319
+		// default templates
320
+		$default_templates = $default_pack instanceof EE_Messages_Template_Pack_Default ? $default_pack->get_templates($messenger, $message_type) : array();
321
+
322
+		// first we allow for the $_base_path to be filtered.  However, we assign this to a new variable so that we have the original base_path as a fallback.
323
+		$filtered_base_path = apply_filters('FHEE__EE_Template_Pack___get_specific_template__filtered_base_path', $this->_base_path, $messenger, $message_type, $field, $context, $this);
324
+
325
+		$master_templates = $message_type->get_master_templates();
326
+		$master_templates_mt = isset($master_templates[ $messenger->name ]) ? $master_templates[ $messenger->name ] : $message_type->name;
327
+		$full_path = $filtered_base_path . $messenger->name . '_' . $message_type->name . '_' . $field . '_' . $context . '.template.php';
328
+		$fallback_path = $filtered_base_path . $messenger->name . '_' . $message_type->name . '_' . $field . '.template.php';
329
+		$mt_defined_full_path = $filtered_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '_' . $context . '.template.php';
330
+		$mt_defined_fallback_path = $filtered_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '.template.php';
331
+		$base_defined_full_path = $this->_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '_' . $context . '.template.php';
332
+		$base_defined_fallback_path = $this->_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '.template.php';
333
+
334
+		/**
335
+		 * Template checks are done hierarchically in the following order:
336
+		 *
337
+		 * - a match for the full messenger name, message type, context and field in the full path for the given template pack.
338
+		 * - a match for the full messenger name, message type, field in the full path for the given template pack.
339
+		 * - a match for the full messenger name, message type, field, context in the path grabbed for the related message type defined in the _master_templates property for the message type (i.e. all registration message types share the same template as the main registration message type).
340
+		 * - match for the full messenger name, message type, field for the related message type defined in the _master templates property for the message type
341
+		 * - a match for a default template matching the messenger, name, context, field (as set by the default template packs).
342
+		 * - empty string.
343
+		 */
344
+
345
+
346
+		if (is_readable($full_path)) {
347
+			$actual_path = $full_path;
348
+		} elseif (is_readable($fallback_path)) {
349
+			$actual_path = $fallback_path;
350
+		} elseif (is_readable($mt_defined_full_path)) {
351
+			$actual_path = $mt_defined_full_path;
352
+		} elseif (is_readable($mt_defined_fallback_path)) {
353
+			$actual_path = $mt_defined_fallback_path;
354
+		} elseif (is_readable($base_defined_full_path)) {
355
+			$actual_path = $base_defined_full_path;
356
+		} elseif (is_readable($base_defined_fallback_path)) {
357
+			$actual_path = $base_defined_fallback_path;
358
+		} else {
359
+			$actual_path = '';
360
+		}
361
+		if (empty($actual_path)) {
362
+			$contents = isset($default_templates[ $context ][ $field ]) ? $default_templates[ $context ][ $field ] : '';
363
+		} else {
364
+			$contents = EEH_Template::display_template($actual_path, array(), true);
365
+		}
366
+
367
+		return apply_filters('FHEE__EE_Messages_Template_Pack__get_specific_template__contents', $contents, $actual_path, $messenger, $message_type, $field, $context, $this);
368
+	}
369
+
370
+
371
+
372
+
373
+
374
+	/**
375
+	 * Return filtered _supports property.
376
+	 *
377
+	 * @since 4.5.0
378
+	 *
379
+	 * @return array
380
+	 */
381
+	public function get_supports()
382
+	{
383
+		$supports = apply_filters('FHEE__' . get_class($this) . '__get_supports', $this->_supports);
384
+		return apply_filters('FHEE__EE_Messages_Template_Pack__get_supports', $supports, $this);
385
+	}
386
+
387
+
388
+
389
+
390
+	/**
391
+	 * This simply returns the $_default_variation_labels property value.
392
+	 *
393
+	 * @since 4.5.0
394
+	 *
395
+	 * @param string $messenger if the messenger slug is returned then the default label for the specific messenger is retrieved.  If it doesn't exist then the esc_html__('Default', 'event_espresso') is returned.  If NO value is provided then whatever is set on the _default_variation_labels property is returned.
396
+	 *
397
+	 * @return array|string
398
+	 */
399
+	public function get_default_variation_labels($messenger = '')
400
+	{
401
+		$label = empty($messenger) ? $this->_default_variation_labels : array();
402
+		$label = empty($label) && ! empty($this->_default_variation_labels[ $messenger ]) ? $this->_default_variation_labels[ $messenger ] : esc_html__('Default', 'event_espresso');
403
+
404
+		return apply_filters('FHEE__EE_Messages_Template_Pack__get_default_variation_labels', $label, $this->_default_variation_labels, $messenger);
405
+	}
406
+
407
+
408
+
409
+
410
+
411
+	/**
412
+	 * This simply returns the _variations property.
413
+	 *
414
+	 * @since 4.5.0
415
+	 *
416
+	 * @param string $messenger if included then css variations matching the messenger are returned.  Otherwise, just the default variation is included.  If both message type AND messenger are empty then all variations are returned.
417
+	 * @param string $message_type if included then css variations matching the message_type are returned (must have $messenger set).  Otherwise the array of variations per message type are returned.  If message_type is provided but NOT the messenger, then just all variations for all messengers are returned.
418
+	 * @return array
419
+	 */
420
+	public function get_variations($messenger = '', $message_type = '')
421
+	{
422
+		$messenger_variations = ! empty($messenger) && isset($this->_variations[ $messenger ]) ? $this->_variations[ $messenger ] : array();
423
+
424
+		// message_type provided? IF so, then we've requested a specific set of variations, so we need to make sure we set it as empty if that's not present.
425
+		$variations = !empty($messenger) && !empty($message_type) && isset($messenger_variations[ $message_type ]) ? $messenger_variations[ $message_type ] : array();
426
+
427
+		// now let's account for the possibility we just want all the variations for a messenger (which is indicated by providing the messenger but not the message type).
428
+		$variations = empty($variations) && !empty($messenger) && empty($message_type) ? $messenger_variations : $variations;
429
+
430
+		// filter per template pack and globally.
431
+		$variations = apply_filters('FHEE__' . get_class($this) . '__get_variations', $variations, $messenger, $message_type);
432
+		$variations = apply_filters('FHEE__EE_Messages_Template_Pack__get_variations', $variations, $messenger, $message_type, $this);
433
+
434
+		// prepend the _default_variation, but ONLY if we're returning the fully validated array.
435
+		if (!empty($messenger) && !empty($message_type) && ! empty($variations)) {
436
+			$variations = array( 'default' => $this->get_default_variation_labels($messenger) ) + $variations;
437
+		}
438
+
439
+		return empty($variations) ? array( 'default' => $this->get_default_variation_labels('dft') ) : $variations;
440
+	}
441
+
442
+
443
+
444
+
445
+	/**
446
+	 * This is typically called by EE_messenger objects to get the specific css variation defined for the messenger, message_type and type (i.e. inline, wpeditor, preview etc.)
447
+	 *
448
+	 * @since 4.5.0
449
+	 *
450
+	 * @param string $messenger messenger slug
451
+	 * @param string $message_type message_type slug
452
+	 * @param string $type           variation type (i.e. inline, base, wpeditor, preview etc. //this varies per messenger).
453
+	 * @param string $variation    this should match one of the defined variations in the _variations property on this class.
454
+	 * @param string $file_extension  What type of file the variation file is (defaults to css)
455
+	 * @param bool   $url          if true then return the url otherwise path.
456
+	 * @param bool   $skip_filters This should not be set directly, its used internally to skip filters when the default template pack is called internally as the fallback.
457
+	 *
458
+	 * @return string The variation path or url (typically css reference)
459
+	 */
460
+	public function get_variation($messenger, $message_type, $type, $variation, $url = true, $file_extension = '.css', $skip_filters = false)
461
+	{
462 462
 
463
-        $base = $url ? $this->_base_url : $this->_base_path;
464
-        $base_path = $this->_base_path;
463
+		$base = $url ? $this->_base_url : $this->_base_path;
464
+		$base_path = $this->_base_path;
465 465
 
466
-        if (! $skip_filters) {
467
-            $base =  apply_filters('FHEE__EE_Messages_Template_Pack__get_variation__base_path_or_url', $base, $messenger, $message_type, $type, $variation, $url, $file_extension, $this);
468
-            $base_path = apply_filters('FHEE__EE_Messages_Template_Pack__get_variation__base_path', $base_path, $messenger, $message_type, $type, $variation, false, $file_extension, $this);
469
-        }
466
+		if (! $skip_filters) {
467
+			$base =  apply_filters('FHEE__EE_Messages_Template_Pack__get_variation__base_path_or_url', $base, $messenger, $message_type, $type, $variation, $url, $file_extension, $this);
468
+			$base_path = apply_filters('FHEE__EE_Messages_Template_Pack__get_variation__base_path', $base_path, $messenger, $message_type, $type, $variation, false, $file_extension, $this);
469
+		}
470 470
 
471
-        $default_pack = get_class($this) != 'EE_Messages_Template_Pack_Default' ? new EE_Messages_Template_Pack_Default() : $this;
472
-
473
-        // possible variation paths considering whether message type is present or not in the file name.
474
-        $path_string = 'variations/' . $messenger . '_' . $message_type . '_'  . $type . '_' . $variation . $file_extension;
475
-        $default_path_string = 'variations/' . $messenger . '_' . $type . '_' . $variation . $file_extension;
476
-
477
-        // first see if fully validated file exists.
478
-        if (is_readable($base_path . $path_string)) {
479
-            $variation_path = $base . $path_string;
480
-        // otherwise see if default exists.
481
-        } elseif (is_readable($base_path . $default_path_string)) {
482
-            $variation_path = $base . $default_path_string;
483
-        } else {
484
-            $variation_path = $default_pack instanceof EE_Messages_Template_Pack_Default ? $default_pack->get_default_variation($messenger, $message_type, $type, $url, $file_extension) : '';
485
-        }
471
+		$default_pack = get_class($this) != 'EE_Messages_Template_Pack_Default' ? new EE_Messages_Template_Pack_Default() : $this;
472
+
473
+		// possible variation paths considering whether message type is present or not in the file name.
474
+		$path_string = 'variations/' . $messenger . '_' . $message_type . '_'  . $type . '_' . $variation . $file_extension;
475
+		$default_path_string = 'variations/' . $messenger . '_' . $type . '_' . $variation . $file_extension;
476
+
477
+		// first see if fully validated file exists.
478
+		if (is_readable($base_path . $path_string)) {
479
+			$variation_path = $base . $path_string;
480
+		// otherwise see if default exists.
481
+		} elseif (is_readable($base_path . $default_path_string)) {
482
+			$variation_path = $base . $default_path_string;
483
+		} else {
484
+			$variation_path = $default_pack instanceof EE_Messages_Template_Pack_Default ? $default_pack->get_default_variation($messenger, $message_type, $type, $url, $file_extension) : '';
485
+		}
486 486
 
487
-        if ($skip_filters) {
488
-            return $variation_path;
489
-        }
490
-
491
-        // filter result
492
-        $variation_path = apply_filters('FHEE__' . get_class($this) . '__get_variation', $variation_path, $messenger, $message_type, $type, $variation, $file_extension, $url);
493
-        return apply_filters('FHEE__EE_Messages_Template_Pack__get_variation', $variation_path, $messenger, $message_type, $type, $variation, $file_extension, $url, $this);
494
-    }
495
-
496
-
497
-
498
-
499
-
500
-    /**
501
-     * This method is used to return the wrapper template for the given template pack.  If the given template pack does not include any wrapper templates then the default is used.
502
-     *
503
-     * @param string $messenger What messenger the wrapper is for.
504
-     * @param string $type           What type of wrapper is being returned ( for messengers that may have more than one wrapper )
505
-     *
506
-     * @return string returns the path for the requested wrapper template.
507
-     */
508
-    public function get_wrapper($messenger, $type = 'main')
509
-    {
510
-        $default_pack = get_class($this) !== 'EE_Messages_Template_Pack_Default' ? new EE_Messages_Template_Pack_Default() : null;
511
-
512
-        $path_string = $this->_base_path . $messenger . '_' . $type . '_wrapper.template.php';
513
-
514
-        if (is_readable($path_string)) {
515
-            $template = $path_string;
516
-        } else {
517
-            $template = $default_pack instanceof EE_Messages_Template_Pack_Default ? $default_pack->get_wrapper($messenger, $type) : '';
518
-        }
519
-
520
-        // filter
521
-        $template = apply_filters('FHEE__' . get_class($this) . '__get_wrapper', $template, $messenger, $type);
522
-        return apply_filters('FHEE__EE_Messages_Template_Pack__get_wrapper', $template, $messenger, $type, $this);
523
-    }
487
+		if ($skip_filters) {
488
+			return $variation_path;
489
+		}
490
+
491
+		// filter result
492
+		$variation_path = apply_filters('FHEE__' . get_class($this) . '__get_variation', $variation_path, $messenger, $message_type, $type, $variation, $file_extension, $url);
493
+		return apply_filters('FHEE__EE_Messages_Template_Pack__get_variation', $variation_path, $messenger, $message_type, $type, $variation, $file_extension, $url, $this);
494
+	}
495
+
496
+
497
+
498
+
499
+
500
+	/**
501
+	 * This method is used to return the wrapper template for the given template pack.  If the given template pack does not include any wrapper templates then the default is used.
502
+	 *
503
+	 * @param string $messenger What messenger the wrapper is for.
504
+	 * @param string $type           What type of wrapper is being returned ( for messengers that may have more than one wrapper )
505
+	 *
506
+	 * @return string returns the path for the requested wrapper template.
507
+	 */
508
+	public function get_wrapper($messenger, $type = 'main')
509
+	{
510
+		$default_pack = get_class($this) !== 'EE_Messages_Template_Pack_Default' ? new EE_Messages_Template_Pack_Default() : null;
511
+
512
+		$path_string = $this->_base_path . $messenger . '_' . $type . '_wrapper.template.php';
513
+
514
+		if (is_readable($path_string)) {
515
+			$template = $path_string;
516
+		} else {
517
+			$template = $default_pack instanceof EE_Messages_Template_Pack_Default ? $default_pack->get_wrapper($messenger, $type) : '';
518
+		}
519
+
520
+		// filter
521
+		$template = apply_filters('FHEE__' . get_class($this) . '__get_wrapper', $template, $messenger, $type);
522
+		return apply_filters('FHEE__EE_Messages_Template_Pack__get_wrapper', $template, $messenger, $type, $this);
523
+	}
524 524
 }
Please login to merge, or discard this patch.
Spacing   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -166,20 +166,20 @@  discard block
 block discarded – undo
166 166
         // make sure required props have been set
167 167
 
168 168
         // if label is empty then throw an error because we should have it defined by now.
169
-        if (! isset($this->label)) {
169
+        if ( ! isset($this->label)) {
170 170
             throw new EE_Error(sprintf(esc_html__('The label property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
171 171
         }
172 172
 
173 173
 
174 174
         // the reference for this template pack
175
-        if (! isset($this->dbref)) {
175
+        if ( ! isset($this->dbref)) {
176 176
             throw new EE_Error(sprintf(esc_html__('The dbref property is not set for %s.  Please ensure that is set for the class.', 'event_espresso'), $classname));
177 177
         }
178 178
 
179 179
         // make sure dbref is safe
180 180
         $this->dbref = str_replace('-', '_', sanitize_key($this->dbref));
181 181
 
182
-        $should_be = 'EE_Messages_Template_Pack_' . str_replace(' ', '_', ucwords(str_replace('_', ' ', $this->dbref)));
182
+        $should_be = 'EE_Messages_Template_Pack_'.str_replace(' ', '_', ucwords(str_replace('_', ' ', $this->dbref)));
183 183
 
184 184
         if ($should_be !== $classname) {
185 185
             throw new EE_Error(sprintf(esc_html__('The name of the template pack instantiated class is "%s".  It should be "%s".  Make sure that the name of the template pack class matches is prepended with "EE_Messages_Template_Pack_" and appended with a sentence case iteration of the value for your template pack\'s dbref property.', 'event_espresso'), $classname, $should_be));
@@ -236,7 +236,7 @@  discard block
 block discarded – undo
236 236
      */
237 237
     public function get_templates(EE_messenger $messenger, EE_message_type $message_type)
238 238
     {
239
-        return isset($this->_templates[ $messenger->name ][ $message_type->name ]) ? $this->_templates[ $messenger->name ][ $message_type->name ] : $this->_get_templates($messenger, $message_type);
239
+        return isset($this->_templates[$messenger->name][$message_type->name]) ? $this->_templates[$messenger->name][$message_type->name] : $this->_get_templates($messenger, $message_type);
240 240
     }
241 241
 
242 242
 
@@ -286,18 +286,18 @@  discard block
 block discarded – undo
286 286
                         foreach ($sub_fields as $sub_field => $sub_field_details) {
287 287
                             // make sure that the template_field_ref matches what the main template field is for this template group.
288 288
                             $template_field_ref = $sub_field == 'main' ? $main_field : $sub_field;
289
-                            $templates[ $context ][ $main_field ][ $sub_field ] = $this->_get_specific_template($default_pack, $messenger, $message_type, $template_field_ref, $context);
289
+                            $templates[$context][$main_field][$sub_field] = $this->_get_specific_template($default_pack, $messenger, $message_type, $template_field_ref, $context);
290 290
                         }
291 291
                     }
292 292
                 } else {
293
-                    $templates[ $context ][ $field ] = $this->_get_specific_template($default_pack, $messenger, $message_type, $field, $context);
293
+                    $templates[$context][$field] = $this->_get_specific_template($default_pack, $messenger, $message_type, $field, $context);
294 294
                 }
295 295
             }
296 296
         }
297 297
 
298 298
         $templates = apply_filters('FHEE__EE_Template_Pack___get_templates__templates', $templates, $messenger, $message_type, $this);
299 299
 
300
-        $this->_templates[ $messenger->name ][ $message_type->name ] = $templates;
300
+        $this->_templates[$messenger->name][$message_type->name] = $templates;
301 301
          return $templates;
302 302
     }
303 303
 
@@ -323,13 +323,13 @@  discard block
 block discarded – undo
323 323
         $filtered_base_path = apply_filters('FHEE__EE_Template_Pack___get_specific_template__filtered_base_path', $this->_base_path, $messenger, $message_type, $field, $context, $this);
324 324
 
325 325
         $master_templates = $message_type->get_master_templates();
326
-        $master_templates_mt = isset($master_templates[ $messenger->name ]) ? $master_templates[ $messenger->name ] : $message_type->name;
327
-        $full_path = $filtered_base_path . $messenger->name . '_' . $message_type->name . '_' . $field . '_' . $context . '.template.php';
328
-        $fallback_path = $filtered_base_path . $messenger->name . '_' . $message_type->name . '_' . $field . '.template.php';
329
-        $mt_defined_full_path = $filtered_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '_' . $context . '.template.php';
330
-        $mt_defined_fallback_path = $filtered_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '.template.php';
331
-        $base_defined_full_path = $this->_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '_' . $context . '.template.php';
332
-        $base_defined_fallback_path = $this->_base_path . $messenger->name . '_' . $master_templates_mt . '_' . $field . '.template.php';
326
+        $master_templates_mt = isset($master_templates[$messenger->name]) ? $master_templates[$messenger->name] : $message_type->name;
327
+        $full_path = $filtered_base_path.$messenger->name.'_'.$message_type->name.'_'.$field.'_'.$context.'.template.php';
328
+        $fallback_path = $filtered_base_path.$messenger->name.'_'.$message_type->name.'_'.$field.'.template.php';
329
+        $mt_defined_full_path = $filtered_base_path.$messenger->name.'_'.$master_templates_mt.'_'.$field.'_'.$context.'.template.php';
330
+        $mt_defined_fallback_path = $filtered_base_path.$messenger->name.'_'.$master_templates_mt.'_'.$field.'.template.php';
331
+        $base_defined_full_path = $this->_base_path.$messenger->name.'_'.$master_templates_mt.'_'.$field.'_'.$context.'.template.php';
332
+        $base_defined_fallback_path = $this->_base_path.$messenger->name.'_'.$master_templates_mt.'_'.$field.'.template.php';
333 333
 
334 334
         /**
335 335
          * Template checks are done hierarchically in the following order:
@@ -359,7 +359,7 @@  discard block
 block discarded – undo
359 359
             $actual_path = '';
360 360
         }
361 361
         if (empty($actual_path)) {
362
-            $contents = isset($default_templates[ $context ][ $field ]) ? $default_templates[ $context ][ $field ] : '';
362
+            $contents = isset($default_templates[$context][$field]) ? $default_templates[$context][$field] : '';
363 363
         } else {
364 364
             $contents = EEH_Template::display_template($actual_path, array(), true);
365 365
         }
@@ -380,7 +380,7 @@  discard block
 block discarded – undo
380 380
      */
381 381
     public function get_supports()
382 382
     {
383
-        $supports = apply_filters('FHEE__' . get_class($this) . '__get_supports', $this->_supports);
383
+        $supports = apply_filters('FHEE__'.get_class($this).'__get_supports', $this->_supports);
384 384
         return apply_filters('FHEE__EE_Messages_Template_Pack__get_supports', $supports, $this);
385 385
     }
386 386
 
@@ -399,7 +399,7 @@  discard block
 block discarded – undo
399 399
     public function get_default_variation_labels($messenger = '')
400 400
     {
401 401
         $label = empty($messenger) ? $this->_default_variation_labels : array();
402
-        $label = empty($label) && ! empty($this->_default_variation_labels[ $messenger ]) ? $this->_default_variation_labels[ $messenger ] : esc_html__('Default', 'event_espresso');
402
+        $label = empty($label) && ! empty($this->_default_variation_labels[$messenger]) ? $this->_default_variation_labels[$messenger] : esc_html__('Default', 'event_espresso');
403 403
 
404 404
         return apply_filters('FHEE__EE_Messages_Template_Pack__get_default_variation_labels', $label, $this->_default_variation_labels, $messenger);
405 405
     }
@@ -419,24 +419,24 @@  discard block
 block discarded – undo
419 419
      */
420 420
     public function get_variations($messenger = '', $message_type = '')
421 421
     {
422
-        $messenger_variations = ! empty($messenger) && isset($this->_variations[ $messenger ]) ? $this->_variations[ $messenger ] : array();
422
+        $messenger_variations = ! empty($messenger) && isset($this->_variations[$messenger]) ? $this->_variations[$messenger] : array();
423 423
 
424 424
         // message_type provided? IF so, then we've requested a specific set of variations, so we need to make sure we set it as empty if that's not present.
425
-        $variations = !empty($messenger) && !empty($message_type) && isset($messenger_variations[ $message_type ]) ? $messenger_variations[ $message_type ] : array();
425
+        $variations = ! empty($messenger) && ! empty($message_type) && isset($messenger_variations[$message_type]) ? $messenger_variations[$message_type] : array();
426 426
 
427 427
         // now let's account for the possibility we just want all the variations for a messenger (which is indicated by providing the messenger but not the message type).
428
-        $variations = empty($variations) && !empty($messenger) && empty($message_type) ? $messenger_variations : $variations;
428
+        $variations = empty($variations) && ! empty($messenger) && empty($message_type) ? $messenger_variations : $variations;
429 429
 
430 430
         // filter per template pack and globally.
431
-        $variations = apply_filters('FHEE__' . get_class($this) . '__get_variations', $variations, $messenger, $message_type);
431
+        $variations = apply_filters('FHEE__'.get_class($this).'__get_variations', $variations, $messenger, $message_type);
432 432
         $variations = apply_filters('FHEE__EE_Messages_Template_Pack__get_variations', $variations, $messenger, $message_type, $this);
433 433
 
434 434
         // prepend the _default_variation, but ONLY if we're returning the fully validated array.
435
-        if (!empty($messenger) && !empty($message_type) && ! empty($variations)) {
436
-            $variations = array( 'default' => $this->get_default_variation_labels($messenger) ) + $variations;
435
+        if ( ! empty($messenger) && ! empty($message_type) && ! empty($variations)) {
436
+            $variations = array('default' => $this->get_default_variation_labels($messenger)) + $variations;
437 437
         }
438 438
 
439
-        return empty($variations) ? array( 'default' => $this->get_default_variation_labels('dft') ) : $variations;
439
+        return empty($variations) ? array('default' => $this->get_default_variation_labels('dft')) : $variations;
440 440
     }
441 441
 
442 442
 
@@ -463,23 +463,23 @@  discard block
 block discarded – undo
463 463
         $base = $url ? $this->_base_url : $this->_base_path;
464 464
         $base_path = $this->_base_path;
465 465
 
466
-        if (! $skip_filters) {
467
-            $base =  apply_filters('FHEE__EE_Messages_Template_Pack__get_variation__base_path_or_url', $base, $messenger, $message_type, $type, $variation, $url, $file_extension, $this);
466
+        if ( ! $skip_filters) {
467
+            $base = apply_filters('FHEE__EE_Messages_Template_Pack__get_variation__base_path_or_url', $base, $messenger, $message_type, $type, $variation, $url, $file_extension, $this);
468 468
             $base_path = apply_filters('FHEE__EE_Messages_Template_Pack__get_variation__base_path', $base_path, $messenger, $message_type, $type, $variation, false, $file_extension, $this);
469 469
         }
470 470
 
471 471
         $default_pack = get_class($this) != 'EE_Messages_Template_Pack_Default' ? new EE_Messages_Template_Pack_Default() : $this;
472 472
 
473 473
         // possible variation paths considering whether message type is present or not in the file name.
474
-        $path_string = 'variations/' . $messenger . '_' . $message_type . '_'  . $type . '_' . $variation . $file_extension;
475
-        $default_path_string = 'variations/' . $messenger . '_' . $type . '_' . $variation . $file_extension;
474
+        $path_string = 'variations/'.$messenger.'_'.$message_type.'_'.$type.'_'.$variation.$file_extension;
475
+        $default_path_string = 'variations/'.$messenger.'_'.$type.'_'.$variation.$file_extension;
476 476
 
477 477
         // first see if fully validated file exists.
478
-        if (is_readable($base_path . $path_string)) {
479
-            $variation_path = $base . $path_string;
478
+        if (is_readable($base_path.$path_string)) {
479
+            $variation_path = $base.$path_string;
480 480
         // otherwise see if default exists.
481
-        } elseif (is_readable($base_path . $default_path_string)) {
482
-            $variation_path = $base . $default_path_string;
481
+        } elseif (is_readable($base_path.$default_path_string)) {
482
+            $variation_path = $base.$default_path_string;
483 483
         } else {
484 484
             $variation_path = $default_pack instanceof EE_Messages_Template_Pack_Default ? $default_pack->get_default_variation($messenger, $message_type, $type, $url, $file_extension) : '';
485 485
         }
@@ -489,7 +489,7 @@  discard block
 block discarded – undo
489 489
         }
490 490
 
491 491
         // filter result
492
-        $variation_path = apply_filters('FHEE__' . get_class($this) . '__get_variation', $variation_path, $messenger, $message_type, $type, $variation, $file_extension, $url);
492
+        $variation_path = apply_filters('FHEE__'.get_class($this).'__get_variation', $variation_path, $messenger, $message_type, $type, $variation, $file_extension, $url);
493 493
         return apply_filters('FHEE__EE_Messages_Template_Pack__get_variation', $variation_path, $messenger, $message_type, $type, $variation, $file_extension, $url, $this);
494 494
     }
495 495
 
@@ -509,7 +509,7 @@  discard block
 block discarded – undo
509 509
     {
510 510
         $default_pack = get_class($this) !== 'EE_Messages_Template_Pack_Default' ? new EE_Messages_Template_Pack_Default() : null;
511 511
 
512
-        $path_string = $this->_base_path . $messenger . '_' . $type . '_wrapper.template.php';
512
+        $path_string = $this->_base_path.$messenger.'_'.$type.'_wrapper.template.php';
513 513
 
514 514
         if (is_readable($path_string)) {
515 515
             $template = $path_string;
@@ -518,7 +518,7 @@  discard block
 block discarded – undo
518 518
         }
519 519
 
520 520
         // filter
521
-        $template = apply_filters('FHEE__' . get_class($this) . '__get_wrapper', $template, $messenger, $type);
521
+        $template = apply_filters('FHEE__'.get_class($this).'__get_wrapper', $template, $messenger, $type);
522 522
         return apply_filters('FHEE__EE_Messages_Template_Pack__get_wrapper', $template, $messenger, $type, $this);
523 523
     }
524 524
 }
Please login to merge, or discard this patch.
libraries/messages/defaults/EE_Messages_Template_Pack_Default.class.php 2 patches
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -11,71 +11,71 @@
 block discarded – undo
11 11
 class EE_Messages_Template_Pack_Default extends EE_Messages_Template_Pack
12 12
 {
13 13
 
14
-    public function _set_props()
15
-    {
16
-        $this->label = esc_html__('Default', 'event_espresso');
17
-        $this->dbref = 'default';
18
-        $this->description = esc_html__('This is the default template pack included with Event Espresso core messages system.', 'event_espresso');
19
-        $this->_base_url = EE_PLUGIN_DIR_URL . 'core/libraries/messages/defaults/default/';
20
-        $this->_base_path = EE_LIBRARIES . 'messages/defaults/default/';
21
-        $this->_supports = array(
22
-            'email' => array(
23
-                'cancelled_registration', 'declined_registration', 'not_approved_registration', 'pending_approval', 'registration',
24
-                    'registration_summary',
25
-                'payment_declined', 'payment', 'payment_refund', 'payment_reminder'
26
-                ),
27
-            'html' => array(
28
-                'receipt', 'invoice'
29
-                )
30
-            );
31
-        $this->_default_variation_labels = array(
32
-            'email' => esc_html__('Default', 'event_espresso'),
33
-            'html' =>  esc_html__('Simple', 'event_espresso')
34
-             );
35
-        $this->_variations = array(
36
-            'html' => array(
37
-                'receipt' =>
38
-                    array(
39
-                    'bauhaus' => esc_html__('Bauhaus', 'event_espresso'),
40
-                    'ejs' => esc_html__('Elliot Jay Stocks', 'event_espresso'),
41
-                    'horizon' => esc_html__('Horizon', 'event_espresso'),
42
-                    'lola' => esc_html__('Lola', 'event_espresso'),
43
-                    'tranquility' => esc_html__('Tranquility', 'event_espresso'),
44
-                    'union' => esc_html__('Union', 'event_espresso'),
45
-                    ),
46
-                'invoice' =>
47
-                    array(
48
-                    'bauhaus' => esc_html__('Bauhaus', 'event_espresso'),
49
-                    'ejs' => esc_html__('Elliot Jay Stocks', 'event_espresso'),
50
-                    'horizon' => esc_html__('Horizon', 'event_espresso'),
51
-                    'lola' => esc_html__('Lola', 'event_espresso'),
52
-                    'tranquility' => esc_html__('Tranquility', 'event_espresso'),
53
-                    'union' => esc_html__('Union', 'event_espresso'),
54
-                    )
55
-                )
56
-            );
57
-    }
14
+	public function _set_props()
15
+	{
16
+		$this->label = esc_html__('Default', 'event_espresso');
17
+		$this->dbref = 'default';
18
+		$this->description = esc_html__('This is the default template pack included with Event Espresso core messages system.', 'event_espresso');
19
+		$this->_base_url = EE_PLUGIN_DIR_URL . 'core/libraries/messages/defaults/default/';
20
+		$this->_base_path = EE_LIBRARIES . 'messages/defaults/default/';
21
+		$this->_supports = array(
22
+			'email' => array(
23
+				'cancelled_registration', 'declined_registration', 'not_approved_registration', 'pending_approval', 'registration',
24
+					'registration_summary',
25
+				'payment_declined', 'payment', 'payment_refund', 'payment_reminder'
26
+				),
27
+			'html' => array(
28
+				'receipt', 'invoice'
29
+				)
30
+			);
31
+		$this->_default_variation_labels = array(
32
+			'email' => esc_html__('Default', 'event_espresso'),
33
+			'html' =>  esc_html__('Simple', 'event_espresso')
34
+			 );
35
+		$this->_variations = array(
36
+			'html' => array(
37
+				'receipt' =>
38
+					array(
39
+					'bauhaus' => esc_html__('Bauhaus', 'event_espresso'),
40
+					'ejs' => esc_html__('Elliot Jay Stocks', 'event_espresso'),
41
+					'horizon' => esc_html__('Horizon', 'event_espresso'),
42
+					'lola' => esc_html__('Lola', 'event_espresso'),
43
+					'tranquility' => esc_html__('Tranquility', 'event_espresso'),
44
+					'union' => esc_html__('Union', 'event_espresso'),
45
+					),
46
+				'invoice' =>
47
+					array(
48
+					'bauhaus' => esc_html__('Bauhaus', 'event_espresso'),
49
+					'ejs' => esc_html__('Elliot Jay Stocks', 'event_espresso'),
50
+					'horizon' => esc_html__('Horizon', 'event_espresso'),
51
+					'lola' => esc_html__('Lola', 'event_espresso'),
52
+					'tranquility' => esc_html__('Tranquility', 'event_espresso'),
53
+					'union' => esc_html__('Union', 'event_espresso'),
54
+					)
55
+				)
56
+			);
57
+	}
58 58
 
59 59
 
60 60
 
61
-    public function get_default_variation($messenger, $message_type, $type, $url, $file_extension)
62
-    {
63
-        $base = $url ? $this->_base_url : $this->_base_path;
64
-        $base_path = $this->_base_path;
65
-        // possible variation paths considering whether message type is present or not in the file name.
66
-        $path_string = 'variations/' . $messenger . '_' . $message_type . '_'  . $type . '_default' . $file_extension;
67
-        $default_path_string = 'variations/' . $messenger . '_' . $type . '_default' . $file_extension;
68
-        // first see if fully validated file exists.
69
-        if (is_readable($base_path . $path_string)) {
70
-            $variation_path = $base . $path_string;
71
-        // otherwise see if default exists.
72
-        } elseif (is_readable($base_path . $default_path_string)) {
73
-            $variation_path = $base . $default_path_string;
74
-        } else {
75
-            // no matches found so nothing is present.
76
-            $variation_path = '';
77
-        }
61
+	public function get_default_variation($messenger, $message_type, $type, $url, $file_extension)
62
+	{
63
+		$base = $url ? $this->_base_url : $this->_base_path;
64
+		$base_path = $this->_base_path;
65
+		// possible variation paths considering whether message type is present or not in the file name.
66
+		$path_string = 'variations/' . $messenger . '_' . $message_type . '_'  . $type . '_default' . $file_extension;
67
+		$default_path_string = 'variations/' . $messenger . '_' . $type . '_default' . $file_extension;
68
+		// first see if fully validated file exists.
69
+		if (is_readable($base_path . $path_string)) {
70
+			$variation_path = $base . $path_string;
71
+		// otherwise see if default exists.
72
+		} elseif (is_readable($base_path . $default_path_string)) {
73
+			$variation_path = $base . $default_path_string;
74
+		} else {
75
+			// no matches found so nothing is present.
76
+			$variation_path = '';
77
+		}
78 78
 
79
-        return $variation_path;
80
-    }
79
+		return $variation_path;
80
+	}
81 81
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -16,8 +16,8 @@  discard block
 block discarded – undo
16 16
         $this->label = esc_html__('Default', 'event_espresso');
17 17
         $this->dbref = 'default';
18 18
         $this->description = esc_html__('This is the default template pack included with Event Espresso core messages system.', 'event_espresso');
19
-        $this->_base_url = EE_PLUGIN_DIR_URL . 'core/libraries/messages/defaults/default/';
20
-        $this->_base_path = EE_LIBRARIES . 'messages/defaults/default/';
19
+        $this->_base_url = EE_PLUGIN_DIR_URL.'core/libraries/messages/defaults/default/';
20
+        $this->_base_path = EE_LIBRARIES.'messages/defaults/default/';
21 21
         $this->_supports = array(
22 22
             'email' => array(
23 23
                 'cancelled_registration', 'declined_registration', 'not_approved_registration', 'pending_approval', 'registration',
@@ -63,14 +63,14 @@  discard block
 block discarded – undo
63 63
         $base = $url ? $this->_base_url : $this->_base_path;
64 64
         $base_path = $this->_base_path;
65 65
         // possible variation paths considering whether message type is present or not in the file name.
66
-        $path_string = 'variations/' . $messenger . '_' . $message_type . '_'  . $type . '_default' . $file_extension;
67
-        $default_path_string = 'variations/' . $messenger . '_' . $type . '_default' . $file_extension;
66
+        $path_string = 'variations/'.$messenger.'_'.$message_type.'_'.$type.'_default'.$file_extension;
67
+        $default_path_string = 'variations/'.$messenger.'_'.$type.'_default'.$file_extension;
68 68
         // first see if fully validated file exists.
69
-        if (is_readable($base_path . $path_string)) {
70
-            $variation_path = $base . $path_string;
69
+        if (is_readable($base_path.$path_string)) {
70
+            $variation_path = $base.$path_string;
71 71
         // otherwise see if default exists.
72
-        } elseif (is_readable($base_path . $default_path_string)) {
73
-            $variation_path = $base . $default_path_string;
72
+        } elseif (is_readable($base_path.$default_path_string)) {
73
+            $variation_path = $base.$default_path_string;
74 74
         } else {
75 75
             // no matches found so nothing is present.
76 76
             $variation_path = '';
Please login to merge, or discard this patch.