Completed
Pull Request — master (#378)
by Darren
15:26
created
core/domain/RequiresRegistryInterface.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -15,8 +15,8 @@
 block discarded – undo
15 15
 interface RequiresRegistryInterface
16 16
 {
17 17
 
18
-    /**
19
-     * @param EE_Registry $registry
20
-     */
21
-    public function setRegistry($registry);
18
+	/**
19
+	 * @param EE_Registry $registry
20
+	 */
21
+	public function setRegistry($registry);
22 22
 }
Please login to merge, or discard this patch.
core/domain/entities/DbSafeDateTime.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -71,7 +71,7 @@  discard block
 block discarded – undo
71 71
             DbSafeDateTime::db_safe_timestamp_format,
72 72
             $this->_datetime_string
73 73
         );
74
-        if (! $date instanceof DateTime) {
74
+        if ( ! $date instanceof DateTime) {
75 75
             try {
76 76
                 // we want a stack trace to determine where the malformed date came from, so...
77 77
                 throw new DomainException('');
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
             DbSafeDateTime::db_safe_timestamp_format,
119 119
             $this->_datetime_string
120 120
         );
121
-        if (! $date instanceof DateTime) {
121
+        if ( ! $date instanceof DateTime) {
122 122
             $this->writeToErrorLog(
123 123
                 sprintf(
124 124
                     __(
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
      */
161 161
     private function writeToErrorLog($message)
162 162
     {
163
-        if (! empty($this->_error_log_dir)) {
163
+        if ( ! empty($this->_error_log_dir)) {
164 164
             /** @noinspection ForgottenDebugOutputInspection */
165 165
             error_log($message, 3, $this->_error_log_dir);
166 166
         } else {
Please login to merge, or discard this patch.
Indentation   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -18,156 +18,156 @@
 block discarded – undo
18 18
 class DbSafeDateTime extends DateTime
19 19
 {
20 20
 
21
-    // phpcs:disable Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase
22
-    /**
23
-     * @type string db_safe_timestamp_format
24
-     */
25
-    const db_safe_timestamp_format = 'Y-m-d H:i:s O e';
26
-    // phpcs:enable
27
-
28
-    // phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore
29
-    /**
30
-     * DateTime object converted to a string that includes the date, time, UTC offset, and timezone identifier
31
-     *
32
-     * @type string $_datetime_string
33
-     */
34
-    protected $_datetime_string = '';
35
-
36
-    /**
37
-     * where to write the error log to
38
-     *
39
-     * @type string $_error_log_dir
40
-     */
41
-    protected $_error_log_dir = '';
42
-    // phpcs:enable
43
-
44
-
45
-    /**
46
-     * @param string $error_log_dir
47
-     */
48
-    public function setErrorLogDir($error_log_dir)
49
-    {
50
-        // if the folder path is writable, then except the path + filename, else keep empty
51
-        $this->_error_log_dir = is_writable(str_replace(basename($error_log_dir), '', $error_log_dir))
52
-            ? $error_log_dir
53
-            : '';
54
-    }
55
-
56
-
57
-    /**
58
-     * @return string
59
-     */
60
-    public function __toString()
61
-    {
62
-        return $this->format(DbSafeDateTime::db_safe_timestamp_format);
63
-    }
64
-
65
-
66
-    /**
67
-     * @return array
68
-     */
69
-    public function __sleep()
70
-    {
71
-        $this->_datetime_string = $this->format(DbSafeDateTime::db_safe_timestamp_format);
72
-        $date = DateTime::createFromFormat(
73
-            DbSafeDateTime::db_safe_timestamp_format,
74
-            $this->_datetime_string
75
-        );
76
-        if (! $date instanceof DateTime) {
77
-            try {
78
-                // we want a stack trace to determine where the malformed date came from, so...
79
-                throw new DomainException('');
80
-            } catch (DomainException $e) {
81
-                $stack_trace = $e->getTraceAsString();
82
-            }
83
-            $this->writeToErrorLog(
84
-                sprintf(
85
-                    __(
86
-                        'A valid DateTime could not be generated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s %2$s Stack Trace: %5$s',
87
-                        'event_espresso'
88
-                    ),
89
-                    $this->_datetime_string,
90
-                    '<br />',
91
-                    print_r(DateTime::getLastErrors(), true),
92
-                    PHP_VERSION,
93
-                    $stack_trace
94
-                )
95
-            );
96
-        }
97
-        return array('_datetime_string');
98
-    }
99
-
100
-
101
-    /**
102
-     * if an empty or null value got saved to the db for a datetime,
103
-     * then some servers and/or PHP itself will incorrectly convert that date string
104
-     * resulting in "-0001-11-30" for the year-month-day.
105
-     * see the Notes section
106
-     *
107
-     * @link http://php.net/manual/en/datetime.formats.date.php
108
-     * We'll replace those with "0000-00-00" which will allow a valid DateTime object to be created,
109
-     * but still result in the internal date for that object being set to "-0001-11-30 10:00:00.000000".
110
-     * so we're no better off, but at least things won't go fatal on us.
111
-     */
112
-    public function __wakeup()
113
-    {
114
-        $this->_datetime_string = str_replace(
115
-            array('-0001-11-29', '-0001-11-30'),
116
-            '0000-00-00',
117
-            $this->_datetime_string
118
-        );
119
-        $date = DateTime::createFromFormat(
120
-            DbSafeDateTime::db_safe_timestamp_format,
121
-            $this->_datetime_string
122
-        );
123
-        if (! $date instanceof DateTime) {
124
-            $this->writeToErrorLog(
125
-                sprintf(
126
-                    __(
127
-                        'A valid DateTime could not be recreated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s',
128
-                        'event_espresso'
129
-                    ),
130
-                    $this->_datetime_string,
131
-                    '<br />',
132
-                    print_r(DateTime::getLastErrors(), true),
133
-                    PHP_VERSION
134
-                )
135
-            );
136
-        } else {
137
-            $this->__construct(
138
-                $date->format(\EE_Datetime_Field::mysql_timestamp_format),
139
-                new DateTimeZone($date->format('e'))
140
-            );
141
-        }
142
-    }
143
-
144
-
145
-    /**
146
-     * Creates a DbSafeDateTime from ye old DateTime
147
-     *
148
-     * @param DateTime $datetime
149
-     * @return \EventEspresso\core\domain\entities\DbSafeDateTime
150
-     */
151
-    public static function createFromDateTime(DateTime $datetime)
152
-    {
153
-        return new DbSafeDateTime(
154
-            $datetime->format(\EE_Datetime_Field::mysql_timestamp_format),
155
-            new DateTimeZone($datetime->format('e'))
156
-        );
157
-    }
158
-
159
-
160
-    /**
161
-     * @param string $message
162
-     */
163
-    private function writeToErrorLog($message)
164
-    {
165
-        if (! empty($this->_error_log_dir)) {
166
-            /** @noinspection ForgottenDebugOutputInspection */
167
-            error_log($message, 3, $this->_error_log_dir);
168
-        } else {
169
-            /** @noinspection ForgottenDebugOutputInspection */
170
-            error_log($message);
171
-        }
172
-    }
21
+	// phpcs:disable Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase
22
+	/**
23
+	 * @type string db_safe_timestamp_format
24
+	 */
25
+	const db_safe_timestamp_format = 'Y-m-d H:i:s O e';
26
+	// phpcs:enable
27
+
28
+	// phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore
29
+	/**
30
+	 * DateTime object converted to a string that includes the date, time, UTC offset, and timezone identifier
31
+	 *
32
+	 * @type string $_datetime_string
33
+	 */
34
+	protected $_datetime_string = '';
35
+
36
+	/**
37
+	 * where to write the error log to
38
+	 *
39
+	 * @type string $_error_log_dir
40
+	 */
41
+	protected $_error_log_dir = '';
42
+	// phpcs:enable
43
+
44
+
45
+	/**
46
+	 * @param string $error_log_dir
47
+	 */
48
+	public function setErrorLogDir($error_log_dir)
49
+	{
50
+		// if the folder path is writable, then except the path + filename, else keep empty
51
+		$this->_error_log_dir = is_writable(str_replace(basename($error_log_dir), '', $error_log_dir))
52
+			? $error_log_dir
53
+			: '';
54
+	}
55
+
56
+
57
+	/**
58
+	 * @return string
59
+	 */
60
+	public function __toString()
61
+	{
62
+		return $this->format(DbSafeDateTime::db_safe_timestamp_format);
63
+	}
64
+
65
+
66
+	/**
67
+	 * @return array
68
+	 */
69
+	public function __sleep()
70
+	{
71
+		$this->_datetime_string = $this->format(DbSafeDateTime::db_safe_timestamp_format);
72
+		$date = DateTime::createFromFormat(
73
+			DbSafeDateTime::db_safe_timestamp_format,
74
+			$this->_datetime_string
75
+		);
76
+		if (! $date instanceof DateTime) {
77
+			try {
78
+				// we want a stack trace to determine where the malformed date came from, so...
79
+				throw new DomainException('');
80
+			} catch (DomainException $e) {
81
+				$stack_trace = $e->getTraceAsString();
82
+			}
83
+			$this->writeToErrorLog(
84
+				sprintf(
85
+					__(
86
+						'A valid DateTime could not be generated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s %2$s Stack Trace: %5$s',
87
+						'event_espresso'
88
+					),
89
+					$this->_datetime_string,
90
+					'<br />',
91
+					print_r(DateTime::getLastErrors(), true),
92
+					PHP_VERSION,
93
+					$stack_trace
94
+				)
95
+			);
96
+		}
97
+		return array('_datetime_string');
98
+	}
99
+
100
+
101
+	/**
102
+	 * if an empty or null value got saved to the db for a datetime,
103
+	 * then some servers and/or PHP itself will incorrectly convert that date string
104
+	 * resulting in "-0001-11-30" for the year-month-day.
105
+	 * see the Notes section
106
+	 *
107
+	 * @link http://php.net/manual/en/datetime.formats.date.php
108
+	 * We'll replace those with "0000-00-00" which will allow a valid DateTime object to be created,
109
+	 * but still result in the internal date for that object being set to "-0001-11-30 10:00:00.000000".
110
+	 * so we're no better off, but at least things won't go fatal on us.
111
+	 */
112
+	public function __wakeup()
113
+	{
114
+		$this->_datetime_string = str_replace(
115
+			array('-0001-11-29', '-0001-11-30'),
116
+			'0000-00-00',
117
+			$this->_datetime_string
118
+		);
119
+		$date = DateTime::createFromFormat(
120
+			DbSafeDateTime::db_safe_timestamp_format,
121
+			$this->_datetime_string
122
+		);
123
+		if (! $date instanceof DateTime) {
124
+			$this->writeToErrorLog(
125
+				sprintf(
126
+					__(
127
+						'A valid DateTime could not be recreated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s',
128
+						'event_espresso'
129
+					),
130
+					$this->_datetime_string,
131
+					'<br />',
132
+					print_r(DateTime::getLastErrors(), true),
133
+					PHP_VERSION
134
+				)
135
+			);
136
+		} else {
137
+			$this->__construct(
138
+				$date->format(\EE_Datetime_Field::mysql_timestamp_format),
139
+				new DateTimeZone($date->format('e'))
140
+			);
141
+		}
142
+	}
143
+
144
+
145
+	/**
146
+	 * Creates a DbSafeDateTime from ye old DateTime
147
+	 *
148
+	 * @param DateTime $datetime
149
+	 * @return \EventEspresso\core\domain\entities\DbSafeDateTime
150
+	 */
151
+	public static function createFromDateTime(DateTime $datetime)
152
+	{
153
+		return new DbSafeDateTime(
154
+			$datetime->format(\EE_Datetime_Field::mysql_timestamp_format),
155
+			new DateTimeZone($datetime->format('e'))
156
+		);
157
+	}
158
+
159
+
160
+	/**
161
+	 * @param string $message
162
+	 */
163
+	private function writeToErrorLog($message)
164
+	{
165
+		if (! empty($this->_error_log_dir)) {
166
+			/** @noinspection ForgottenDebugOutputInspection */
167
+			error_log($message, 3, $this->_error_log_dir);
168
+		} else {
169
+			/** @noinspection ForgottenDebugOutputInspection */
170
+			error_log($message);
171
+		}
172
+	}
173 173
 }
Please login to merge, or discard this patch.
core/domain/entities/notifications/PersistentAdminNotice.php 1 patch
Indentation   +311 added lines, -311 removed lines patch added patch discarded remove patch
@@ -24,315 +24,315 @@
 block discarded – undo
24 24
 class PersistentAdminNotice implements RequiresCapCheckInterface
25 25
 {
26 26
 
27
-    /**
28
-     * @var string $name
29
-     */
30
-    protected $name = '';
31
-
32
-    /**
33
-     * @var string $message
34
-     */
35
-    protected $message = '';
36
-
37
-    /**
38
-     * @var boolean $force_update
39
-     */
40
-    protected $force_update = false;
41
-
42
-    /**
43
-     * @var string $capability
44
-     */
45
-    protected $capability = 'manage_options';
46
-
47
-    /**
48
-     * @var string $cap_context
49
-     */
50
-    protected $cap_context = 'view persistent admin notice';
51
-
52
-    /**
53
-     * @var boolean $dismissed
54
-     */
55
-    protected $dismissed = false;
56
-
57
-    /**
58
-     * @var CapCheckInterface $cap_check
59
-     */
60
-    protected $cap_check;
61
-
62
-    /**
63
-     * if true, then this notice will be deleted from the database
64
-     *
65
-     * @var boolean $purge
66
-     */
67
-    protected $purge = false;
68
-
69
-    /**
70
-     * gets set to true if notice is successfully registered with the PersistentAdminNoticeManager
71
-     * if false, and WP_DEBUG is on, then an exception will be thrown in the admin footer
72
-     *
73
-     * @var boolean $registered
74
-     */
75
-    private $registered = false;
76
-
77
-
78
-    /**
79
-     * PersistentAdminNotice constructor
80
-     *
81
-     * @param string $name         [required] the name, or key of the Persistent Admin Notice to be stored
82
-     * @param string $message      [required] the message to be stored persistently until dismissed
83
-     * @param bool   $force_update enforce the reappearance of a persistent message
84
-     * @param string $capability   user capability required to view this notice
85
-     * @param string $cap_context  description for why the cap check is being performed
86
-     * @param bool   $dismissed    whether or not the user has already dismissed/viewed this notice
87
-     * @throws InvalidDataTypeException
88
-     */
89
-    public function __construct(
90
-        $name,
91
-        $message,
92
-        $force_update = false,
93
-        $capability = 'manage_options',
94
-        $cap_context = 'view persistent admin notice',
95
-        $dismissed = false
96
-    ) {
97
-        $this->setName($name);
98
-        $this->setMessage($message);
99
-        $this->setForceUpdate($force_update);
100
-        $this->setCapability($capability);
101
-        $this->setCapContext($cap_context);
102
-        $this->setDismissed($dismissed);
103
-        add_action(
104
-            'AHEE__EventEspresso_core_services_notifications_PersistentAdminNoticeManager__registerNotices',
105
-            array($this, 'registerPersistentAdminNotice')
106
-        );
107
-        add_action('shutdown', array($this, 'confirmRegistered'), 999);
108
-    }
109
-
110
-
111
-    /**
112
-     * @return string
113
-     */
114
-    public function getName()
115
-    {
116
-        return $this->name;
117
-    }
118
-
119
-
120
-    /**
121
-     * @param string $name
122
-     * @throws InvalidDataTypeException
123
-     */
124
-    private function setName($name)
125
-    {
126
-        if (! is_string($name)) {
127
-            throw new InvalidDataTypeException('$name', $name, 'string');
128
-        }
129
-        $this->name = sanitize_key($name);
130
-    }
131
-
132
-
133
-    /**
134
-     * @return string
135
-     */
136
-    public function getMessage()
137
-    {
138
-        return $this->message;
139
-    }
140
-
141
-
142
-    /**
143
-     * @param string $message
144
-     * @throws InvalidDataTypeException
145
-     */
146
-    private function setMessage($message)
147
-    {
148
-        if (! is_string($message)) {
149
-            throw new InvalidDataTypeException('$message', $message, 'string');
150
-        }
151
-        global $allowedtags;
152
-        $allowedtags['br'] = array();
153
-        $this->message = wp_kses($message, $allowedtags);
154
-    }
155
-
156
-
157
-    /**
158
-     * @return bool
159
-     */
160
-    public function getForceUpdate()
161
-    {
162
-        return $this->force_update;
163
-    }
164
-
165
-
166
-    /**
167
-     * @param bool $force_update
168
-     */
169
-    private function setForceUpdate($force_update)
170
-    {
171
-        $this->force_update = filter_var($force_update, FILTER_VALIDATE_BOOLEAN);
172
-    }
173
-
174
-
175
-    /**
176
-     * @return string
177
-     */
178
-    public function getCapability()
179
-    {
180
-        return $this->capability;
181
-    }
182
-
183
-
184
-    /**
185
-     * @param string $capability
186
-     * @throws InvalidDataTypeException
187
-     */
188
-    private function setCapability($capability)
189
-    {
190
-        if (! is_string($capability)) {
191
-            throw new InvalidDataTypeException('$capability', $capability, 'string');
192
-        }
193
-        $this->capability = ! empty($capability) ? $capability : 'manage_options';
194
-    }
195
-
196
-
197
-    /**
198
-     * @return string
199
-     */
200
-    public function getCapContext()
201
-    {
202
-        return $this->cap_context;
203
-    }
204
-
205
-
206
-    /**
207
-     * @param string $cap_context
208
-     * @throws InvalidDataTypeException
209
-     */
210
-    private function setCapContext($cap_context)
211
-    {
212
-        if (! is_string($cap_context)) {
213
-            throw new InvalidDataTypeException('$cap_context', $cap_context, 'string');
214
-        }
215
-        $this->cap_context = ! empty($cap_context) ? $cap_context : 'view persistent admin notice';
216
-    }
217
-
218
-
219
-    /**
220
-     * @return bool
221
-     */
222
-    public function getDismissed()
223
-    {
224
-        return $this->dismissed;
225
-    }
226
-
227
-
228
-    /**
229
-     * @param bool $dismissed
230
-     */
231
-    public function setDismissed($dismissed)
232
-    {
233
-        $this->dismissed = filter_var($dismissed, FILTER_VALIDATE_BOOLEAN);
234
-    }
235
-
236
-
237
-    /**
238
-     * @return CapCheckInterface
239
-     * @throws InvalidDataTypeException
240
-     */
241
-    public function getCapCheck()
242
-    {
243
-        if (! $this->cap_check instanceof CapCheckInterface) {
244
-            $this->setCapCheck(
245
-                new CapCheck(
246
-                    $this->capability,
247
-                    $this->cap_context
248
-                )
249
-            );
250
-        }
251
-        return $this->cap_check;
252
-    }
253
-
254
-
255
-    /**
256
-     * @param CapCheckInterface $cap_check
257
-     */
258
-    private function setCapCheck(CapCheckInterface $cap_check)
259
-    {
260
-        $this->cap_check = $cap_check;
261
-    }
262
-
263
-
264
-    /**
265
-     * @return bool
266
-     */
267
-    public function getPurge()
268
-    {
269
-        return $this->purge;
270
-    }
271
-
272
-
273
-    /**
274
-     * @param bool $purge
275
-     */
276
-    public function setPurge($purge)
277
-    {
278
-        $this->purge = filter_var($purge, FILTER_VALIDATE_BOOLEAN);
279
-    }
280
-
281
-
282
-    /**
283
-     * given a valid PersistentAdminNotice Collection,
284
-     * this notice will be added if it is not already found in the collection (using its name as the identifier)
285
-     * if an existing notice is found that has already been dismissed,
286
-     * but we are overriding with a forced update, then we will toggle its dismissed state,
287
-     * so that the notice is displayed again
288
-     *
289
-     * @param Collection $persistent_admin_notice_collection
290
-     * @throws InvalidEntityException
291
-     * @throws InvalidDataTypeException
292
-     */
293
-    public function registerPersistentAdminNotice(Collection $persistent_admin_notice_collection)
294
-    {
295
-        if ($this->registered) {
296
-            return;
297
-        }
298
-        // first check if this notice has already been added to the collection
299
-        if ($persistent_admin_notice_collection->has($this->name)) {
300
-            /** @var PersistentAdminNotice $existing */
301
-            $existing = $persistent_admin_notice_collection->get($this->name);
302
-            // we don't need to add it again (we can't actually)
303
-            // but if it has already been dismissed, and we are overriding with a forced update
304
-            if ($existing->getDismissed() && $this->getForceUpdate()) {
305
-                // then toggle the notice's dismissed state to true
306
-                // so that it gets displayed again
307
-                $existing->setDismissed(false);
308
-                // and make sure the message is set
309
-                $existing->setMessage($this->message);
310
-            }
311
-        } else {
312
-            $persistent_admin_notice_collection->add($this, $this->name);
313
-        }
314
-        $this->registered = true;
315
-    }
316
-
317
-
318
-    /**
319
-     * @throws Exception
320
-     */
321
-    public function confirmRegistered()
322
-    {
323
-        if (! apply_filters('PersistentAdminNoticeManager__registerAndSaveNotices__complete', false)) {
324
-            PersistentAdminNoticeManager::loadRegisterAndSaveNotices();
325
-        }
326
-        if (! $this->registered && WP_DEBUG) {
327
-            throw new DomainException(
328
-                sprintf(
329
-                    esc_html__(
330
-                        'The "%1$s" PersistentAdminNotice was not successfully registered. Please ensure that it is being created prior to either the "admin_notices" or "network_admin_notices" hooks being triggered.',
331
-                        'event_espresso'
332
-                    ),
333
-                    $this->name
334
-                )
335
-            );
336
-        }
337
-    }
27
+	/**
28
+	 * @var string $name
29
+	 */
30
+	protected $name = '';
31
+
32
+	/**
33
+	 * @var string $message
34
+	 */
35
+	protected $message = '';
36
+
37
+	/**
38
+	 * @var boolean $force_update
39
+	 */
40
+	protected $force_update = false;
41
+
42
+	/**
43
+	 * @var string $capability
44
+	 */
45
+	protected $capability = 'manage_options';
46
+
47
+	/**
48
+	 * @var string $cap_context
49
+	 */
50
+	protected $cap_context = 'view persistent admin notice';
51
+
52
+	/**
53
+	 * @var boolean $dismissed
54
+	 */
55
+	protected $dismissed = false;
56
+
57
+	/**
58
+	 * @var CapCheckInterface $cap_check
59
+	 */
60
+	protected $cap_check;
61
+
62
+	/**
63
+	 * if true, then this notice will be deleted from the database
64
+	 *
65
+	 * @var boolean $purge
66
+	 */
67
+	protected $purge = false;
68
+
69
+	/**
70
+	 * gets set to true if notice is successfully registered with the PersistentAdminNoticeManager
71
+	 * if false, and WP_DEBUG is on, then an exception will be thrown in the admin footer
72
+	 *
73
+	 * @var boolean $registered
74
+	 */
75
+	private $registered = false;
76
+
77
+
78
+	/**
79
+	 * PersistentAdminNotice constructor
80
+	 *
81
+	 * @param string $name         [required] the name, or key of the Persistent Admin Notice to be stored
82
+	 * @param string $message      [required] the message to be stored persistently until dismissed
83
+	 * @param bool   $force_update enforce the reappearance of a persistent message
84
+	 * @param string $capability   user capability required to view this notice
85
+	 * @param string $cap_context  description for why the cap check is being performed
86
+	 * @param bool   $dismissed    whether or not the user has already dismissed/viewed this notice
87
+	 * @throws InvalidDataTypeException
88
+	 */
89
+	public function __construct(
90
+		$name,
91
+		$message,
92
+		$force_update = false,
93
+		$capability = 'manage_options',
94
+		$cap_context = 'view persistent admin notice',
95
+		$dismissed = false
96
+	) {
97
+		$this->setName($name);
98
+		$this->setMessage($message);
99
+		$this->setForceUpdate($force_update);
100
+		$this->setCapability($capability);
101
+		$this->setCapContext($cap_context);
102
+		$this->setDismissed($dismissed);
103
+		add_action(
104
+			'AHEE__EventEspresso_core_services_notifications_PersistentAdminNoticeManager__registerNotices',
105
+			array($this, 'registerPersistentAdminNotice')
106
+		);
107
+		add_action('shutdown', array($this, 'confirmRegistered'), 999);
108
+	}
109
+
110
+
111
+	/**
112
+	 * @return string
113
+	 */
114
+	public function getName()
115
+	{
116
+		return $this->name;
117
+	}
118
+
119
+
120
+	/**
121
+	 * @param string $name
122
+	 * @throws InvalidDataTypeException
123
+	 */
124
+	private function setName($name)
125
+	{
126
+		if (! is_string($name)) {
127
+			throw new InvalidDataTypeException('$name', $name, 'string');
128
+		}
129
+		$this->name = sanitize_key($name);
130
+	}
131
+
132
+
133
+	/**
134
+	 * @return string
135
+	 */
136
+	public function getMessage()
137
+	{
138
+		return $this->message;
139
+	}
140
+
141
+
142
+	/**
143
+	 * @param string $message
144
+	 * @throws InvalidDataTypeException
145
+	 */
146
+	private function setMessage($message)
147
+	{
148
+		if (! is_string($message)) {
149
+			throw new InvalidDataTypeException('$message', $message, 'string');
150
+		}
151
+		global $allowedtags;
152
+		$allowedtags['br'] = array();
153
+		$this->message = wp_kses($message, $allowedtags);
154
+	}
155
+
156
+
157
+	/**
158
+	 * @return bool
159
+	 */
160
+	public function getForceUpdate()
161
+	{
162
+		return $this->force_update;
163
+	}
164
+
165
+
166
+	/**
167
+	 * @param bool $force_update
168
+	 */
169
+	private function setForceUpdate($force_update)
170
+	{
171
+		$this->force_update = filter_var($force_update, FILTER_VALIDATE_BOOLEAN);
172
+	}
173
+
174
+
175
+	/**
176
+	 * @return string
177
+	 */
178
+	public function getCapability()
179
+	{
180
+		return $this->capability;
181
+	}
182
+
183
+
184
+	/**
185
+	 * @param string $capability
186
+	 * @throws InvalidDataTypeException
187
+	 */
188
+	private function setCapability($capability)
189
+	{
190
+		if (! is_string($capability)) {
191
+			throw new InvalidDataTypeException('$capability', $capability, 'string');
192
+		}
193
+		$this->capability = ! empty($capability) ? $capability : 'manage_options';
194
+	}
195
+
196
+
197
+	/**
198
+	 * @return string
199
+	 */
200
+	public function getCapContext()
201
+	{
202
+		return $this->cap_context;
203
+	}
204
+
205
+
206
+	/**
207
+	 * @param string $cap_context
208
+	 * @throws InvalidDataTypeException
209
+	 */
210
+	private function setCapContext($cap_context)
211
+	{
212
+		if (! is_string($cap_context)) {
213
+			throw new InvalidDataTypeException('$cap_context', $cap_context, 'string');
214
+		}
215
+		$this->cap_context = ! empty($cap_context) ? $cap_context : 'view persistent admin notice';
216
+	}
217
+
218
+
219
+	/**
220
+	 * @return bool
221
+	 */
222
+	public function getDismissed()
223
+	{
224
+		return $this->dismissed;
225
+	}
226
+
227
+
228
+	/**
229
+	 * @param bool $dismissed
230
+	 */
231
+	public function setDismissed($dismissed)
232
+	{
233
+		$this->dismissed = filter_var($dismissed, FILTER_VALIDATE_BOOLEAN);
234
+	}
235
+
236
+
237
+	/**
238
+	 * @return CapCheckInterface
239
+	 * @throws InvalidDataTypeException
240
+	 */
241
+	public function getCapCheck()
242
+	{
243
+		if (! $this->cap_check instanceof CapCheckInterface) {
244
+			$this->setCapCheck(
245
+				new CapCheck(
246
+					$this->capability,
247
+					$this->cap_context
248
+				)
249
+			);
250
+		}
251
+		return $this->cap_check;
252
+	}
253
+
254
+
255
+	/**
256
+	 * @param CapCheckInterface $cap_check
257
+	 */
258
+	private function setCapCheck(CapCheckInterface $cap_check)
259
+	{
260
+		$this->cap_check = $cap_check;
261
+	}
262
+
263
+
264
+	/**
265
+	 * @return bool
266
+	 */
267
+	public function getPurge()
268
+	{
269
+		return $this->purge;
270
+	}
271
+
272
+
273
+	/**
274
+	 * @param bool $purge
275
+	 */
276
+	public function setPurge($purge)
277
+	{
278
+		$this->purge = filter_var($purge, FILTER_VALIDATE_BOOLEAN);
279
+	}
280
+
281
+
282
+	/**
283
+	 * given a valid PersistentAdminNotice Collection,
284
+	 * this notice will be added if it is not already found in the collection (using its name as the identifier)
285
+	 * if an existing notice is found that has already been dismissed,
286
+	 * but we are overriding with a forced update, then we will toggle its dismissed state,
287
+	 * so that the notice is displayed again
288
+	 *
289
+	 * @param Collection $persistent_admin_notice_collection
290
+	 * @throws InvalidEntityException
291
+	 * @throws InvalidDataTypeException
292
+	 */
293
+	public function registerPersistentAdminNotice(Collection $persistent_admin_notice_collection)
294
+	{
295
+		if ($this->registered) {
296
+			return;
297
+		}
298
+		// first check if this notice has already been added to the collection
299
+		if ($persistent_admin_notice_collection->has($this->name)) {
300
+			/** @var PersistentAdminNotice $existing */
301
+			$existing = $persistent_admin_notice_collection->get($this->name);
302
+			// we don't need to add it again (we can't actually)
303
+			// but if it has already been dismissed, and we are overriding with a forced update
304
+			if ($existing->getDismissed() && $this->getForceUpdate()) {
305
+				// then toggle the notice's dismissed state to true
306
+				// so that it gets displayed again
307
+				$existing->setDismissed(false);
308
+				// and make sure the message is set
309
+				$existing->setMessage($this->message);
310
+			}
311
+		} else {
312
+			$persistent_admin_notice_collection->add($this, $this->name);
313
+		}
314
+		$this->registered = true;
315
+	}
316
+
317
+
318
+	/**
319
+	 * @throws Exception
320
+	 */
321
+	public function confirmRegistered()
322
+	{
323
+		if (! apply_filters('PersistentAdminNoticeManager__registerAndSaveNotices__complete', false)) {
324
+			PersistentAdminNoticeManager::loadRegisterAndSaveNotices();
325
+		}
326
+		if (! $this->registered && WP_DEBUG) {
327
+			throw new DomainException(
328
+				sprintf(
329
+					esc_html__(
330
+						'The "%1$s" PersistentAdminNotice was not successfully registered. Please ensure that it is being created prior to either the "admin_notices" or "network_admin_notices" hooks being triggered.',
331
+						'event_espresso'
332
+					),
333
+					$this->name
334
+				)
335
+			);
336
+		}
337
+	}
338 338
 }
Please login to merge, or discard this patch.
core/domain/entities/contexts/RequestTypeContext.php 1 patch
Indentation   +133 added lines, -133 removed lines patch added patch discarded remove patch
@@ -16,137 +16,137 @@
 block discarded – undo
16 16
 class RequestTypeContext extends Context
17 17
 {
18 18
 
19
-    /**
20
-     * indicates that the current request involves some form of activation
21
-     */
22
-    const ACTIVATION = 'activation-request';
23
-
24
-    /**
25
-     * indicates that the current request is for the admin but is not being made via AJAX
26
-     */
27
-    const ADMIN = 'non-ajax-admin-request';
28
-
29
-    /**
30
-     * indicates that the current request is for the admin AND is being made via AJAX
31
-     */
32
-    const AJAX_ADMIN = 'admin-ajax-request';
33
-
34
-    /**
35
-     * indicates that the current request is for the frontend AND is being made via AJAX
36
-     */
37
-    const AJAX_FRONT = 'frontend-ajax-request';
38
-
39
-    /**
40
-     * indicates that the current request is being made via AJAX, but is NOT for EE
41
-     */
42
-    const AJAX_OTHER = 'other-ajax-request';
43
-
44
-    /**
45
-     * indicates that the current request is for the EE REST API
46
-     */
47
-    const API = 'rest-api';
48
-
49
-    /**
50
-     * indicates that the current request is from the command line
51
-     */
52
-    const CLI = 'command-line';
53
-
54
-    /**
55
-     * indicates that the current request is for a WP_Cron
56
-     */
57
-    const CRON = 'wp-cron';
58
-
59
-    /**
60
-     * indicates that the current request is for a feed (ie: RSS)
61
-     */
62
-    const FEED = 'feed-request';
63
-
64
-    /**
65
-     * indicates that the current request is for the frontend but is not being made via AJAX
66
-     */
67
-    const FRONTEND = 'non-ajax-frontend-request';
68
-
69
-    /**
70
-     * indicates that the current request is for content that is to be displayed within an iframe
71
-     */
72
-    const IFRAME = 'iframe-request';
73
-
74
-    /**
75
-     * @var boolean $is_activation
76
-     */
77
-    private $is_activation = false;
78
-
79
-    /**
80
-     * @var array $valid_request_types
81
-     */
82
-    private $valid_request_types = array();
83
-
84
-
85
-    /**
86
-     * RequestTypeContext constructor.
87
-     *
88
-     * @param string $slug
89
-     * @param string $description
90
-     * @throws InvalidArgumentException
91
-     */
92
-    public function __construct($slug, $description)
93
-    {
94
-        parent::__construct($slug, $description);
95
-        if (! in_array($this->slug(), $this->validRequestTypes(), true)) {
96
-            throw new InvalidArgumentException(
97
-                sprintf(
98
-                    esc_html__(
99
-                        'The RequestTypeContext slug must be one of the following values: %1$s %2$s',
100
-                        'event_espresso'
101
-                    ),
102
-                    var_export($this->validRequestTypes(), true)
103
-                )
104
-            );
105
-        }
106
-    }
107
-
108
-
109
-    /**
110
-     * @return array
111
-     */
112
-    public function validRequestTypes()
113
-    {
114
-        if (empty($this->valid_request_types)) {
115
-            $this->valid_request_types = apply_filters(
116
-                'FHEE__EventEspresso_core_domain_entities_contexts_RequestTypeContext__validRequestTypes',
117
-                array(
118
-                    RequestTypeContext::ACTIVATION,
119
-                    RequestTypeContext::ADMIN,
120
-                    RequestTypeContext::AJAX_ADMIN,
121
-                    RequestTypeContext::AJAX_FRONT,
122
-                    RequestTypeContext::AJAX_OTHER,
123
-                    RequestTypeContext::API,
124
-                    RequestTypeContext::CLI,
125
-                    RequestTypeContext::CRON,
126
-                    RequestTypeContext::FEED,
127
-                    RequestTypeContext::FRONTEND,
128
-                    RequestTypeContext::IFRAME,
129
-                )
130
-            );
131
-        }
132
-        return $this->valid_request_types;
133
-    }
134
-
135
-
136
-    /**
137
-     * @return bool
138
-     */
139
-    public function isActivation()
140
-    {
141
-        return $this->is_activation;
142
-    }
143
-
144
-
145
-    /**
146
-     * @param bool $is_activation
147
-     */
148
-    public function setIsActivation($is_activation)
149
-    {
150
-        $this->is_activation = filter_var($is_activation, FILTER_VALIDATE_BOOLEAN);
151
-    }
19
+	/**
20
+	 * indicates that the current request involves some form of activation
21
+	 */
22
+	const ACTIVATION = 'activation-request';
23
+
24
+	/**
25
+	 * indicates that the current request is for the admin but is not being made via AJAX
26
+	 */
27
+	const ADMIN = 'non-ajax-admin-request';
28
+
29
+	/**
30
+	 * indicates that the current request is for the admin AND is being made via AJAX
31
+	 */
32
+	const AJAX_ADMIN = 'admin-ajax-request';
33
+
34
+	/**
35
+	 * indicates that the current request is for the frontend AND is being made via AJAX
36
+	 */
37
+	const AJAX_FRONT = 'frontend-ajax-request';
38
+
39
+	/**
40
+	 * indicates that the current request is being made via AJAX, but is NOT for EE
41
+	 */
42
+	const AJAX_OTHER = 'other-ajax-request';
43
+
44
+	/**
45
+	 * indicates that the current request is for the EE REST API
46
+	 */
47
+	const API = 'rest-api';
48
+
49
+	/**
50
+	 * indicates that the current request is from the command line
51
+	 */
52
+	const CLI = 'command-line';
53
+
54
+	/**
55
+	 * indicates that the current request is for a WP_Cron
56
+	 */
57
+	const CRON = 'wp-cron';
58
+
59
+	/**
60
+	 * indicates that the current request is for a feed (ie: RSS)
61
+	 */
62
+	const FEED = 'feed-request';
63
+
64
+	/**
65
+	 * indicates that the current request is for the frontend but is not being made via AJAX
66
+	 */
67
+	const FRONTEND = 'non-ajax-frontend-request';
68
+
69
+	/**
70
+	 * indicates that the current request is for content that is to be displayed within an iframe
71
+	 */
72
+	const IFRAME = 'iframe-request';
73
+
74
+	/**
75
+	 * @var boolean $is_activation
76
+	 */
77
+	private $is_activation = false;
78
+
79
+	/**
80
+	 * @var array $valid_request_types
81
+	 */
82
+	private $valid_request_types = array();
83
+
84
+
85
+	/**
86
+	 * RequestTypeContext constructor.
87
+	 *
88
+	 * @param string $slug
89
+	 * @param string $description
90
+	 * @throws InvalidArgumentException
91
+	 */
92
+	public function __construct($slug, $description)
93
+	{
94
+		parent::__construct($slug, $description);
95
+		if (! in_array($this->slug(), $this->validRequestTypes(), true)) {
96
+			throw new InvalidArgumentException(
97
+				sprintf(
98
+					esc_html__(
99
+						'The RequestTypeContext slug must be one of the following values: %1$s %2$s',
100
+						'event_espresso'
101
+					),
102
+					var_export($this->validRequestTypes(), true)
103
+				)
104
+			);
105
+		}
106
+	}
107
+
108
+
109
+	/**
110
+	 * @return array
111
+	 */
112
+	public function validRequestTypes()
113
+	{
114
+		if (empty($this->valid_request_types)) {
115
+			$this->valid_request_types = apply_filters(
116
+				'FHEE__EventEspresso_core_domain_entities_contexts_RequestTypeContext__validRequestTypes',
117
+				array(
118
+					RequestTypeContext::ACTIVATION,
119
+					RequestTypeContext::ADMIN,
120
+					RequestTypeContext::AJAX_ADMIN,
121
+					RequestTypeContext::AJAX_FRONT,
122
+					RequestTypeContext::AJAX_OTHER,
123
+					RequestTypeContext::API,
124
+					RequestTypeContext::CLI,
125
+					RequestTypeContext::CRON,
126
+					RequestTypeContext::FEED,
127
+					RequestTypeContext::FRONTEND,
128
+					RequestTypeContext::IFRAME,
129
+				)
130
+			);
131
+		}
132
+		return $this->valid_request_types;
133
+	}
134
+
135
+
136
+	/**
137
+	 * @return bool
138
+	 */
139
+	public function isActivation()
140
+	{
141
+		return $this->is_activation;
142
+	}
143
+
144
+
145
+	/**
146
+	 * @param bool $is_activation
147
+	 */
148
+	public function setIsActivation($is_activation)
149
+	{
150
+		$this->is_activation = filter_var($is_activation, FILTER_VALIDATE_BOOLEAN);
151
+	}
152 152
 }
Please login to merge, or discard this patch.
core/domain/entities/contexts/Context.php 1 patch
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -14,62 +14,62 @@
 block discarded – undo
14 14
 class Context implements ContextInterface
15 15
 {
16 16
 
17
-    /**
18
-     * @var string $slug
19
-     */
20
-    private $slug;
17
+	/**
18
+	 * @var string $slug
19
+	 */
20
+	private $slug;
21 21
 
22
-    /**
23
-     * @var string $description
24
-     */
25
-    private $description;
22
+	/**
23
+	 * @var string $description
24
+	 */
25
+	private $description;
26 26
 
27 27
 
28
-    /**
29
-     * Context constructor.
30
-     *
31
-     * @param string $slug
32
-     * @param string $description
33
-     */
34
-    public function __construct($slug, $description)
35
-    {
36
-        $this->setSlug($slug);
37
-        $this->setDescription($description);
38
-    }
28
+	/**
29
+	 * Context constructor.
30
+	 *
31
+	 * @param string $slug
32
+	 * @param string $description
33
+	 */
34
+	public function __construct($slug, $description)
35
+	{
36
+		$this->setSlug($slug);
37
+		$this->setDescription($description);
38
+	}
39 39
 
40 40
 
41
-    /**
42
-     * @return string
43
-     */
44
-    public function slug()
45
-    {
46
-        return $this->slug;
47
-    }
41
+	/**
42
+	 * @return string
43
+	 */
44
+	public function slug()
45
+	{
46
+		return $this->slug;
47
+	}
48 48
 
49 49
 
50
-    /**
51
-     * @param string $slug
52
-     */
53
-    private function setSlug($slug)
54
-    {
55
-        $this->slug = sanitize_key($slug);
56
-    }
50
+	/**
51
+	 * @param string $slug
52
+	 */
53
+	private function setSlug($slug)
54
+	{
55
+		$this->slug = sanitize_key($slug);
56
+	}
57 57
 
58 58
 
59
-    /**
60
-     * @return string
61
-     */
62
-    public function description()
63
-    {
64
-        return $this->description;
65
-    }
59
+	/**
60
+	 * @return string
61
+	 */
62
+	public function description()
63
+	{
64
+		return $this->description;
65
+	}
66 66
 
67 67
 
68
-    /**
69
-     * @param string $description
70
-     */
71
-    private function setDescription($description)
72
-    {
73
-        $this->description = sanitize_text_field($description);
74
-    }
68
+	/**
69
+	 * @param string $description
70
+	 */
71
+	private function setDescription($description)
72
+	{
73
+		$this->description = sanitize_text_field($description);
74
+	}
75 75
 }
Please login to merge, or discard this patch.
core/domain/entities/custom_post_types/CustomTaxonomyTerm.php 1 patch
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -13,60 +13,60 @@
 block discarded – undo
13 13
 class CustomTaxonomyTerm
14 14
 {
15 15
 
16
-    /**
17
-     * @var string $taxonomy_slug
18
-     */
19
-    public $taxonomy_slug;
16
+	/**
17
+	 * @var string $taxonomy_slug
18
+	 */
19
+	public $taxonomy_slug;
20 20
 
21
-    /**
22
-     * @var string $term_slug
23
-     */
24
-    public $term_slug;
21
+	/**
22
+	 * @var string $term_slug
23
+	 */
24
+	public $term_slug;
25 25
 
26
-    /**
27
-     * @var array $custom_post_type_slugs
28
-     */
29
-    public $custom_post_type_slugs;
26
+	/**
27
+	 * @var array $custom_post_type_slugs
28
+	 */
29
+	public $custom_post_type_slugs;
30 30
 
31 31
 
32
-    /**
33
-     * CustomTaxonomyTerm constructor.
34
-     *
35
-     * @param string $taxonomy_slug
36
-     * @param string $term_slug
37
-     * @param array  $custom_post_type_slugs
38
-     */
39
-    public function __construct($taxonomy_slug, $term_slug, array $custom_post_type_slugs = array())
40
-    {
41
-        $this->taxonomy_slug = $taxonomy_slug;
42
-        $this->term_slug = $term_slug;
43
-        $this->custom_post_type_slugs = $custom_post_type_slugs;
44
-    }
32
+	/**
33
+	 * CustomTaxonomyTerm constructor.
34
+	 *
35
+	 * @param string $taxonomy_slug
36
+	 * @param string $term_slug
37
+	 * @param array  $custom_post_type_slugs
38
+	 */
39
+	public function __construct($taxonomy_slug, $term_slug, array $custom_post_type_slugs = array())
40
+	{
41
+		$this->taxonomy_slug = $taxonomy_slug;
42
+		$this->term_slug = $term_slug;
43
+		$this->custom_post_type_slugs = $custom_post_type_slugs;
44
+	}
45 45
 
46 46
 
47
-    /**
48
-     * @return string
49
-     */
50
-    public function taxonomySlug()
51
-    {
52
-        return $this->taxonomy_slug;
53
-    }
47
+	/**
48
+	 * @return string
49
+	 */
50
+	public function taxonomySlug()
51
+	{
52
+		return $this->taxonomy_slug;
53
+	}
54 54
 
55 55
 
56
-    /**
57
-     * @return string
58
-     */
59
-    public function termSlug()
60
-    {
61
-        return $this->term_slug;
62
-    }
56
+	/**
57
+	 * @return string
58
+	 */
59
+	public function termSlug()
60
+	{
61
+		return $this->term_slug;
62
+	}
63 63
 
64 64
 
65
-    /**
66
-     * @return array
67
-     */
68
-    public function customPostTypeSlugs()
69
-    {
70
-        return $this->custom_post_type_slugs;
71
-    }
65
+	/**
66
+	 * @return array
67
+	 */
68
+	public function customPostTypeSlugs()
69
+	{
70
+		return $this->custom_post_type_slugs;
71
+	}
72 72
 }
Please login to merge, or discard this patch.
core/domain/entities/custom_post_types/CustomTaxonomyDefinitions.php 1 patch
Indentation   +116 added lines, -116 removed lines patch added patch discarded remove patch
@@ -13,130 +13,130 @@
 block discarded – undo
13 13
 class CustomTaxonomyDefinitions
14 14
 {
15 15
 
16
-    /**
17
-     * @var array $taxonomies
18
-     */
19
-    private $taxonomies;
16
+	/**
17
+	 * @var array $taxonomies
18
+	 */
19
+	private $taxonomies;
20 20
 
21 21
 
22
-    /**
23
-     * EspressoCustomPostTypeDefinitions constructor.
24
-     */
25
-    public function __construct()
26
-    {
27
-        $this->setTaxonomies();
28
-        add_filter('pre_term_description', array($this, 'filterCustomTermDescription'), 1, 2);
29
-    }
22
+	/**
23
+	 * EspressoCustomPostTypeDefinitions constructor.
24
+	 */
25
+	public function __construct()
26
+	{
27
+		$this->setTaxonomies();
28
+		add_filter('pre_term_description', array($this, 'filterCustomTermDescription'), 1, 2);
29
+	}
30 30
 
31 31
 
32
-    private function setTaxonomies()
33
-    {
34
-        $this->taxonomies = array(
35
-            'espresso_event_categories' => array(
36
-                'singular_name' => esc_html__('Event Category', 'event_espresso'),
37
-                'plural_name'   => esc_html__('Event Categories', 'event_espresso'),
38
-                'args'          => array(
39
-                    'public'            => true,
40
-                    'show_in_nav_menus' => true,
41
-                    'show_in_rest'      => true,
42
-                    'capabilities'      => array(
43
-                        'manage_terms' => 'ee_manage_event_categories',
44
-                        'edit_terms'   => 'ee_edit_event_category',
45
-                        'delete_terms' => 'ee_delete_event_category',
46
-                        'assign_terms' => 'ee_assign_event_category',
47
-                    ),
48
-                    'rewrite'           => array('slug' => esc_html__('event-category', 'event_espresso')),
49
-                ),
50
-            ),
51
-            'espresso_venue_categories' => array(
52
-                'singular_name' => esc_html__('Venue Category', 'event_espresso'),
53
-                'plural_name'   => esc_html__('Venue Categories', 'event_espresso'),
54
-                'args'          => array(
55
-                    'public'            => true,
56
-                    'show_in_nav_menus' => false, // by default this doesn't show for decaf
57
-                    'show_in_rest'      => true,
58
-                    'capabilities'      => array(
59
-                        'manage_terms' => 'ee_manage_venue_categories',
60
-                        'edit_terms'   => 'ee_edit_venue_category',
61
-                        'delete_terms' => 'ee_delete_venue_category',
62
-                        'assign_terms' => 'ee_assign_venue_category',
63
-                    ),
64
-                    'rewrite'           => array('slug' => esc_html__('venue-category', 'event_espresso')),
65
-                ),
66
-            ),
67
-            'espresso_event_type'       => array(
68
-                'singular_name' => esc_html__('Event Type', 'event_espresso'),
69
-                'plural_name'   => esc_html__('Event Types', 'event_espresso'),
70
-                'args'          => array(
71
-                    'public'       => true,
72
-                    'show_ui'      => false,
73
-                    'show_in_rest' => true,
74
-                    'capabilities' => array(
75
-                        'manage_terms' => 'ee_read_event_type',
76
-                        'edit_terms'   => 'ee_edit_event_type',
77
-                        'delete_terms' => 'ee_delete_event_type',
78
-                        'assign_terms' => 'ee_assign_event_type',
79
-                    ),
80
-                    'rewrite'      => array('slug' => esc_html__('event-type', 'event_espresso')),
81
-                    'hierarchical' => true,
82
-                ),
83
-            ),
84
-        );
85
-    }
32
+	private function setTaxonomies()
33
+	{
34
+		$this->taxonomies = array(
35
+			'espresso_event_categories' => array(
36
+				'singular_name' => esc_html__('Event Category', 'event_espresso'),
37
+				'plural_name'   => esc_html__('Event Categories', 'event_espresso'),
38
+				'args'          => array(
39
+					'public'            => true,
40
+					'show_in_nav_menus' => true,
41
+					'show_in_rest'      => true,
42
+					'capabilities'      => array(
43
+						'manage_terms' => 'ee_manage_event_categories',
44
+						'edit_terms'   => 'ee_edit_event_category',
45
+						'delete_terms' => 'ee_delete_event_category',
46
+						'assign_terms' => 'ee_assign_event_category',
47
+					),
48
+					'rewrite'           => array('slug' => esc_html__('event-category', 'event_espresso')),
49
+				),
50
+			),
51
+			'espresso_venue_categories' => array(
52
+				'singular_name' => esc_html__('Venue Category', 'event_espresso'),
53
+				'plural_name'   => esc_html__('Venue Categories', 'event_espresso'),
54
+				'args'          => array(
55
+					'public'            => true,
56
+					'show_in_nav_menus' => false, // by default this doesn't show for decaf
57
+					'show_in_rest'      => true,
58
+					'capabilities'      => array(
59
+						'manage_terms' => 'ee_manage_venue_categories',
60
+						'edit_terms'   => 'ee_edit_venue_category',
61
+						'delete_terms' => 'ee_delete_venue_category',
62
+						'assign_terms' => 'ee_assign_venue_category',
63
+					),
64
+					'rewrite'           => array('slug' => esc_html__('venue-category', 'event_espresso')),
65
+				),
66
+			),
67
+			'espresso_event_type'       => array(
68
+				'singular_name' => esc_html__('Event Type', 'event_espresso'),
69
+				'plural_name'   => esc_html__('Event Types', 'event_espresso'),
70
+				'args'          => array(
71
+					'public'       => true,
72
+					'show_ui'      => false,
73
+					'show_in_rest' => true,
74
+					'capabilities' => array(
75
+						'manage_terms' => 'ee_read_event_type',
76
+						'edit_terms'   => 'ee_edit_event_type',
77
+						'delete_terms' => 'ee_delete_event_type',
78
+						'assign_terms' => 'ee_assign_event_type',
79
+					),
80
+					'rewrite'      => array('slug' => esc_html__('event-type', 'event_espresso')),
81
+					'hierarchical' => true,
82
+				),
83
+			),
84
+		);
85
+	}
86 86
 
87 87
 
88
-    /**
89
-     * @return array
90
-     */
91
-    public function getCustomTaxonomyDefinitions()
92
-    {
93
-        return (array) apply_filters(
94
-            'FHEE__EventEspresso_core_domain_entities_custom_post_types_TaxonomyDefinitions__getTaxonomies',
95
-            // legacy filter applied for now,
96
-            // later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
97
-            apply_filters(
98
-                'FHEE__EE_Register_CPTs__get_taxonomies__taxonomies',
99
-                $this->taxonomies
100
-            )
101
-        );
102
-    }
88
+	/**
89
+	 * @return array
90
+	 */
91
+	public function getCustomTaxonomyDefinitions()
92
+	{
93
+		return (array) apply_filters(
94
+			'FHEE__EventEspresso_core_domain_entities_custom_post_types_TaxonomyDefinitions__getTaxonomies',
95
+			// legacy filter applied for now,
96
+			// later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
97
+			apply_filters(
98
+				'FHEE__EE_Register_CPTs__get_taxonomies__taxonomies',
99
+				$this->taxonomies
100
+			)
101
+		);
102
+	}
103 103
 
104 104
 
105
-    /**
106
-     * @return array
107
-     */
108
-    public function getCustomTaxonomySlugs()
109
-    {
110
-        return array_keys($this->getCustomTaxonomyDefinitions());
111
-    }
105
+	/**
106
+	 * @return array
107
+	 */
108
+	public function getCustomTaxonomySlugs()
109
+	{
110
+		return array_keys($this->getCustomTaxonomyDefinitions());
111
+	}
112 112
 
113 113
 
114
-    /**
115
-     * By default, WordPress strips all html from term taxonomy description content.
116
-     * The purpose of this method is to remove that restriction
117
-     * and ensure that we still run ee term taxonomy descriptions
118
-     * through some full html sanitization equivalent to the post content field.
119
-     * So first we remove default filter for term description
120
-     * but we have to do this earlier before wp sets their own filter
121
-     * because they just set a global filter on all term descriptions
122
-     * before the custom term description filter.
123
-     * Really sux.
124
-     *
125
-     * @param string $description The description content.
126
-     * @param string $taxonomy    The taxonomy name for the taxonomy being filtered.
127
-     * @return string
128
-     */
129
-    public function filterCustomTermDescription($description, $taxonomy)
130
-    {
131
-        // get a list of EE taxonomies
132
-        $custom_taxonomies = $this->getCustomTaxonomySlugs();
133
-        // only do our own thing if the taxonomy listed is an ee taxonomy.
134
-        if (in_array($taxonomy, $custom_taxonomies, true)) {
135
-            // remove default wp filter
136
-            remove_filter('pre_term_description', 'wp_filter_kses');
137
-            // sanitize THIS content.
138
-            $description = wp_kses($description, wp_kses_allowed_html('post'));
139
-        }
140
-        return $description;
141
-    }
114
+	/**
115
+	 * By default, WordPress strips all html from term taxonomy description content.
116
+	 * The purpose of this method is to remove that restriction
117
+	 * and ensure that we still run ee term taxonomy descriptions
118
+	 * through some full html sanitization equivalent to the post content field.
119
+	 * So first we remove default filter for term description
120
+	 * but we have to do this earlier before wp sets their own filter
121
+	 * because they just set a global filter on all term descriptions
122
+	 * before the custom term description filter.
123
+	 * Really sux.
124
+	 *
125
+	 * @param string $description The description content.
126
+	 * @param string $taxonomy    The taxonomy name for the taxonomy being filtered.
127
+	 * @return string
128
+	 */
129
+	public function filterCustomTermDescription($description, $taxonomy)
130
+	{
131
+		// get a list of EE taxonomies
132
+		$custom_taxonomies = $this->getCustomTaxonomySlugs();
133
+		// only do our own thing if the taxonomy listed is an ee taxonomy.
134
+		if (in_array($taxonomy, $custom_taxonomies, true)) {
135
+			// remove default wp filter
136
+			remove_filter('pre_term_description', 'wp_filter_kses');
137
+			// sanitize THIS content.
138
+			$description = wp_kses($description, wp_kses_allowed_html('post'));
139
+		}
140
+		return $description;
141
+	}
142 142
 }
Please login to merge, or discard this patch.
core/domain/entities/RegCode.php 1 patch
Indentation   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -14,49 +14,49 @@
 block discarded – undo
14 14
 {
15 15
 
16 16
 
17
-    /*
17
+	/*
18 18
      * @var string $reg_code
19 19
      */
20
-    private $reg_code;
21
-
22
-
23
-    /**
24
-     * RegCode constructor.
25
-     *
26
-     * @param RegUrlLink      $reg_url_link
27
-     * @param \EE_Transaction $transaction
28
-     * @param \EE_Ticket      $ticket
29
-     */
30
-    public function __construct(
31
-        RegUrlLink $reg_url_link,
32
-        \EE_Transaction $transaction,
33
-        \EE_Ticket $ticket
34
-    ) {
35
-        // figure out where to start parsing the reg code
36
-        $chars = strpos($reg_url_link, '-') + 5;
37
-        // TXN_ID + TKT_ID + first 3 and last 3 chars of reg_url_link
38
-        $this->reg_code = array(
39
-            $transaction->ID(),
40
-            $ticket->ID(),
41
-            substr($reg_url_link, 0, $chars),
42
-        );
43
-        // now put it all together
44
-        $this->reg_code = apply_filters(
45
-            'FHEE__Create__regCode__new_reg_code',
46
-            implode('-', $this->reg_code),
47
-            $transaction,
48
-            $ticket
49
-        );
50
-    }
51
-
52
-
53
-    /**
54
-     * Return the object as a string
55
-     *
56
-     * @return string
57
-     */
58
-    public function __toString()
59
-    {
60
-        return $this->reg_code;
61
-    }
20
+	private $reg_code;
21
+
22
+
23
+	/**
24
+	 * RegCode constructor.
25
+	 *
26
+	 * @param RegUrlLink      $reg_url_link
27
+	 * @param \EE_Transaction $transaction
28
+	 * @param \EE_Ticket      $ticket
29
+	 */
30
+	public function __construct(
31
+		RegUrlLink $reg_url_link,
32
+		\EE_Transaction $transaction,
33
+		\EE_Ticket $ticket
34
+	) {
35
+		// figure out where to start parsing the reg code
36
+		$chars = strpos($reg_url_link, '-') + 5;
37
+		// TXN_ID + TKT_ID + first 3 and last 3 chars of reg_url_link
38
+		$this->reg_code = array(
39
+			$transaction->ID(),
40
+			$ticket->ID(),
41
+			substr($reg_url_link, 0, $chars),
42
+		);
43
+		// now put it all together
44
+		$this->reg_code = apply_filters(
45
+			'FHEE__Create__regCode__new_reg_code',
46
+			implode('-', $this->reg_code),
47
+			$transaction,
48
+			$ticket
49
+		);
50
+	}
51
+
52
+
53
+	/**
54
+	 * Return the object as a string
55
+	 *
56
+	 * @return string
57
+	 */
58
+	public function __toString()
59
+	{
60
+		return $this->reg_code;
61
+	}
62 62
 }
Please login to merge, or discard this patch.
core/domain/entities/shortcodes/EspressoThankYou.php 2 patches
Indentation   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -16,71 +16,71 @@
 block discarded – undo
16 16
 class EspressoThankYou extends EspressoShortcode
17 17
 {
18 18
 
19
-    /**
20
-     * @var boolean $is_thank_you_page
21
-     */
22
-    private $is_thank_you_page = false;
19
+	/**
20
+	 * @var boolean $is_thank_you_page
21
+	 */
22
+	private $is_thank_you_page = false;
23 23
 
24
-    /**
25
-     * the actual shortcode tag that gets registered with WordPress
26
-     *
27
-     * @return string
28
-     */
29
-    public function getTag()
30
-    {
31
-        return 'ESPRESSO_THANK_YOU';
32
-    }
24
+	/**
25
+	 * the actual shortcode tag that gets registered with WordPress
26
+	 *
27
+	 * @return string
28
+	 */
29
+	public function getTag()
30
+	{
31
+		return 'ESPRESSO_THANK_YOU';
32
+	}
33 33
 
34 34
 
35
-    /**
36
-     * the time in seconds to cache the results of the processShortcode() method
37
-     * 0 means the processShortcode() results will NOT be cached at all
38
-     *
39
-     * @return int
40
-     */
41
-    public function cacheExpiration()
42
-    {
43
-        return 0;
44
-    }
35
+	/**
36
+	 * the time in seconds to cache the results of the processShortcode() method
37
+	 * 0 means the processShortcode() results will NOT be cached at all
38
+	 *
39
+	 * @return int
40
+	 */
41
+	public function cacheExpiration()
42
+	{
43
+		return 0;
44
+	}
45 45
 
46 46
 
47
-    /**
48
-     * a place for adding any initialization code that needs to run prior to wp_header().
49
-     * this may be required for shortcodes that utilize a corresponding module,
50
-     * and need to enqueue assets for that module
51
-     *
52
-     * @return void
53
-     * @throws \EE_Error
54
-     */
55
-    public function initializeShortcode()
56
-    {
57
-        global $wp_query;
58
-        if (empty($wp_query->posts) || count($wp_query->posts) > 1) {
59
-            return;
60
-        }
61
-        $post = reset($wp_query->posts);
62
-        if (! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) {
63
-            return;
64
-        }
65
-        $this->is_thank_you_page = true;
66
-        \EED_Thank_You_Page::instance()->load_resources();
67
-        $this->shortcodeHasBeenInitialized();
68
-    }
47
+	/**
48
+	 * a place for adding any initialization code that needs to run prior to wp_header().
49
+	 * this may be required for shortcodes that utilize a corresponding module,
50
+	 * and need to enqueue assets for that module
51
+	 *
52
+	 * @return void
53
+	 * @throws \EE_Error
54
+	 */
55
+	public function initializeShortcode()
56
+	{
57
+		global $wp_query;
58
+		if (empty($wp_query->posts) || count($wp_query->posts) > 1) {
59
+			return;
60
+		}
61
+		$post = reset($wp_query->posts);
62
+		if (! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) {
63
+			return;
64
+		}
65
+		$this->is_thank_you_page = true;
66
+		\EED_Thank_You_Page::instance()->load_resources();
67
+		$this->shortcodeHasBeenInitialized();
68
+	}
69 69
 
70 70
 
71
-    /**
72
-     * callback that runs when the shortcode is encountered in post content.
73
-     * IMPORTANT !!!
74
-     * remember that shortcode content should be RETURNED and NOT echoed out
75
-     *
76
-     * @param array $attributes
77
-     * @return string
78
-     * @throws \EE_Error
79
-     */
80
-    public function processShortcode($attributes = array())
81
-    {
82
-        return $this->is_thank_you_page
83
-            ? \EED_Thank_You_Page::instance()->thank_you_page_results()
84
-            : '';
85
-    }
71
+	/**
72
+	 * callback that runs when the shortcode is encountered in post content.
73
+	 * IMPORTANT !!!
74
+	 * remember that shortcode content should be RETURNED and NOT echoed out
75
+	 *
76
+	 * @param array $attributes
77
+	 * @return string
78
+	 * @throws \EE_Error
79
+	 */
80
+	public function processShortcode($attributes = array())
81
+	{
82
+		return $this->is_thank_you_page
83
+			? \EED_Thank_You_Page::instance()->thank_you_page_results()
84
+			: '';
85
+	}
86 86
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -59,7 +59,7 @@
 block discarded – undo
59 59
             return;
60 60
         }
61 61
         $post = reset($wp_query->posts);
62
-        if (! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) {
62
+        if ( ! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) {
63 63
             return;
64 64
         }
65 65
         $this->is_thank_you_page = true;
Please login to merge, or discard this patch.