Completed
Branch BUG/required-message-fields (8f9492)
by
unknown
10:53 queued 20s
created
core/services/shortcodes/ShortcodeInterface.php 1 patch
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -4,50 +4,50 @@
 block discarded – undo
4 4
 interface ShortcodeInterface
5 5
 {
6 6
 
7
-    /**
8
-     * the actual shortcode tag that gets registered with WordPress
9
-     *
10
-     * @return string
11
-     */
12
-    public function getTag();
13
-
14
-    /**
15
-     * the length of time in seconds to cache the results of the processShortcode() method
16
-     * 0 means the processShortcode() results will NOT be cached at all
17
-     *
18
-     * @return int
19
-     */
20
-    public function cacheExpiration();
21
-
22
-    /**
23
-     * a place for adding any initialization code that needs to run prior to wp_header().
24
-     * this may be required for shortcodes that utilize a corresponding module,
25
-     * and need to enqueue assets for that module
26
-     *
27
-     * !!! IMPORTANT !!!
28
-     * After performing any logic within this method required for initialization
29
-     *         $this->shortcodeHasBeenInitialized();
30
-     * should be called to ensure that the shortcode is setup correctly.
31
-     *
32
-     * @return void
33
-     */
34
-    public function initializeShortcode();
35
-
36
-    /**
37
-     * callback that runs when the shortcode is encountered in post content.
38
-     * IMPORTANT !!!
39
-     * remember that shortcode content should be RETURNED and NOT echoed out
40
-     *
41
-     * @param array $attributes
42
-     * @return string
43
-     */
44
-    public function processShortcode($attributes = array());
45
-
46
-
47
-
48
-    /**
49
-     * Returns whether or not this shortcode class has already been initialized
50
-     * @return boolean
51
-     */
52
-    public function initialized();
7
+	/**
8
+	 * the actual shortcode tag that gets registered with WordPress
9
+	 *
10
+	 * @return string
11
+	 */
12
+	public function getTag();
13
+
14
+	/**
15
+	 * the length of time in seconds to cache the results of the processShortcode() method
16
+	 * 0 means the processShortcode() results will NOT be cached at all
17
+	 *
18
+	 * @return int
19
+	 */
20
+	public function cacheExpiration();
21
+
22
+	/**
23
+	 * a place for adding any initialization code that needs to run prior to wp_header().
24
+	 * this may be required for shortcodes that utilize a corresponding module,
25
+	 * and need to enqueue assets for that module
26
+	 *
27
+	 * !!! IMPORTANT !!!
28
+	 * After performing any logic within this method required for initialization
29
+	 *         $this->shortcodeHasBeenInitialized();
30
+	 * should be called to ensure that the shortcode is setup correctly.
31
+	 *
32
+	 * @return void
33
+	 */
34
+	public function initializeShortcode();
35
+
36
+	/**
37
+	 * callback that runs when the shortcode is encountered in post content.
38
+	 * IMPORTANT !!!
39
+	 * remember that shortcode content should be RETURNED and NOT echoed out
40
+	 *
41
+	 * @param array $attributes
42
+	 * @return string
43
+	 */
44
+	public function processShortcode($attributes = array());
45
+
46
+
47
+
48
+	/**
49
+	 * Returns whether or not this shortcode class has already been initialized
50
+	 * @return boolean
51
+	 */
52
+	public function initialized();
53 53
 }
Please login to merge, or discard this patch.
core/services/shortcodes/EspressoShortcode.php 2 patches
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -104,7 +104,7 @@  discard block
 block discarded – undo
104 104
             // serialized attributes
105 105
             wp_json_encode($attributes),
106 106
             // Closure for generating content if cache is expired
107
-            function () use ($shortcode, $attributes) {
107
+            function() use ($shortcode, $attributes) {
108 108
                 if ($shortcode->initialized() === false) {
109 109
                     $shortcode->initializeShortcode();
110 110
                 }
@@ -191,14 +191,14 @@  discard block
 block discarded – undo
191 191
         $custom_sanitization = $this->customAttributeSanitizationMap();
192 192
         foreach ($attributes as $key => $value) {
193 193
             // is a custom sanitization callback specified ?
194
-            if (isset($custom_sanitization[ $key ])) {
195
-                $callback = $custom_sanitization[ $key ];
194
+            if (isset($custom_sanitization[$key])) {
195
+                $callback = $custom_sanitization[$key];
196 196
                 if ($callback === 'skip_sanitization') {
197
-                    $attributes[ $key ] = $value;
197
+                    $attributes[$key] = $value;
198 198
                     continue;
199 199
                 }
200 200
                 if (function_exists($callback)) {
201
-                    $attributes[ $key ] = $callback($value);
201
+                    $attributes[$key] = $callback($value);
202 202
                     continue;
203 203
                 }
204 204
             }
@@ -208,18 +208,18 @@  discard block
 block discarded – undo
208 208
                 case is_float($value):
209 209
                     // typical booleans
210 210
                 case in_array($value, array(true, 'true', '1', 'on', 'yes', false, 'false', '0', 'off', 'no'), true):
211
-                    $attributes[ $key ] = $value;
211
+                    $attributes[$key] = $value;
212 212
                     break;
213 213
                 case is_string($value):
214
-                    $attributes[ $key ] = sanitize_text_field($value);
214
+                    $attributes[$key] = sanitize_text_field($value);
215 215
                     break;
216 216
                 case is_array($value):
217
-                    $attributes[ $key ] = $this->sanitizeAttributes($value);
217
+                    $attributes[$key] = $this->sanitizeAttributes($value);
218 218
                     break;
219 219
                 default:
220 220
                     // only remaining data types are Object and Resource
221 221
                     // which are not allowed as shortcode attributes
222
-                    $attributes[ $key ] = null;
222
+                    $attributes[$key] = null;
223 223
                     break;
224 224
             }
225 225
         }
Please login to merge, or discard this patch.
Indentation   +219 added lines, -219 removed lines patch added patch discarded remove patch
@@ -19,223 +19,223 @@
 block discarded – undo
19 19
  */
20 20
 abstract class EspressoShortcode implements ShortcodeInterface
21 21
 {
22
-    /**
23
-     * transient prefix
24
-     *
25
-     * @type string
26
-     */
27
-    const CACHE_TRANSIENT_PREFIX = 'ee_sc_';
28
-
29
-    /**
30
-     * @var PostRelatedCacheManager $cache_manager
31
-     */
32
-    private $cache_manager;
33
-
34
-    /**
35
-     * true if ShortcodeInterface::initializeShortcode() has been called
36
-     * if false, then that will get called before processing
37
-     *
38
-     * @var boolean $initialized
39
-     */
40
-    private $initialized = false;
41
-
42
-
43
-    /**
44
-     * EspressoShortcode constructor
45
-     *
46
-     * @param PostRelatedCacheManager $cache_manager
47
-     */
48
-    public function __construct(PostRelatedCacheManager $cache_manager)
49
-    {
50
-        $this->cache_manager = $cache_manager;
51
-    }
52
-
53
-
54
-    /**
55
-     * @return void
56
-     */
57
-    public function shortcodeHasBeenInitialized()
58
-    {
59
-        $this->initialized = true;
60
-    }
61
-
62
-
63
-    /**
64
-     * enqueues scripts then processes the shortcode
65
-     *
66
-     * @param array $attributes
67
-     * @return string
68
-     * @throws EE_Error
69
-     * @throws ReflectionException
70
-     */
71
-    final public function processShortcodeCallback($attributes = array())
72
-    {
73
-        if ($this instanceof EnqueueAssetsInterface) {
74
-            if (is_admin()) {
75
-                $this->enqueueAdminScripts();
76
-            } else {
77
-                $this->enqueueScripts();
78
-            }
79
-        }
80
-        return $this->shortcodeContent(
81
-            $this->sanitizeAttributes((array) $attributes)
82
-        );
83
-    }
84
-
85
-
86
-    /**
87
-     * If shortcode caching is enabled for the shortcode,
88
-     * and cached results exist, then that will be returned
89
-     * else new content will be generated.
90
-     * If caching is enabled, then the new content will be cached for later.
91
-     *
92
-     * @param array $attributes
93
-     * @return mixed|string
94
-     * @throws EE_Error
95
-     * @throws ReflectionException
96
-     */
97
-    private function shortcodeContent(array $attributes)
98
-    {
99
-        $shortcode = $this;
100
-        $post_ID = $this->currentPostID();
101
-        // something like "SC_EVENTS-123"
102
-        $cache_ID = $this->shortcodeCacheID($post_ID);
103
-        $this->cache_manager->clearPostRelatedCacheOnUpdate($post_ID, $cache_ID);
104
-        return $this->cache_manager->get(
105
-            $cache_ID,
106
-            // serialized attributes
107
-            wp_json_encode($attributes),
108
-            // Closure for generating content if cache is expired
109
-            function () use ($shortcode, $attributes) {
110
-                if ($shortcode->initialized() === false) {
111
-                    $shortcode->initializeShortcode();
112
-                }
113
-                return $shortcode->processShortcode($attributes);
114
-            },
115
-            // filterable cache expiration set by each shortcode
116
-            apply_filters(
117
-                'FHEE__EventEspresso_core_services_shortcodes_EspressoShortcode__shortcodeContent__cache_expiration',
118
-                $this->cacheExpiration(),
119
-                $this->getTag(),
120
-                $this
121
-            )
122
-        );
123
-    }
124
-
125
-
126
-    /**
127
-     * @return int
128
-     * @throws EE_Error
129
-     * @throws ReflectionException
130
-     */
131
-    private function currentPostID()
132
-    {
133
-        // try to get EE_Event any way we can
134
-        $event = EEH_Event_View::get_event();
135
-        // then get some kind of ID
136
-        if ($event instanceof EE_Event) {
137
-            return $event->ID();
138
-        }
139
-        global $post;
140
-        if ($post instanceof WP_Post) {
141
-            return $post->ID;
142
-        }
143
-        return 0;
144
-    }
145
-
146
-
147
-    /**
148
-     * @param int $post_ID
149
-     * @return string
150
-     */
151
-    private function shortcodeCacheID($post_ID)
152
-    {
153
-        $tag = str_replace('ESPRESSO_', '', $this->getTag());
154
-        return "SC_{$tag}-{$post_ID}";
155
-    }
156
-
157
-
158
-    /**
159
-     * array for defining custom attribute sanitization callbacks,
160
-     * where keys match keys in your attributes array,
161
-     * and values represent the sanitization function you wish to be applied to that attribute.
162
-     * So for example, if you had an integer attribute named "event_id"
163
-     * that you wanted to be sanitized using absint(),
164
-     * then you would return the following:
165
-     *      array('event_id' => 'absint')
166
-     * Entering 'skip_sanitization' for the callback value
167
-     * means that no sanitization will be applied
168
-     * on the assumption that the attribute
169
-     * will be sanitized at some point... right?
170
-     * You wouldn't pass around unsanitized attributes would you?
171
-     * That would be very Tom Foolery of you!!!
172
-     *
173
-     * @return array
174
-     */
175
-    protected function customAttributeSanitizationMap()
176
-    {
177
-        return array();
178
-    }
179
-
180
-
181
-    /**
182
-     * Performs basic sanitization on shortcode attributes
183
-     * Since incoming attributes from the shortcode usage in the WP editor will all be strings,
184
-     * most attributes will by default be sanitized using the sanitize_text_field() function.
185
-     * This can be overridden using the customAttributeSanitizationMap() method (see above),
186
-     * all other attributes would be sanitized using the defaults in the switch statement below
187
-     *
188
-     * @param array $attributes
189
-     * @return array
190
-     */
191
-    private function sanitizeAttributes(array $attributes)
192
-    {
193
-        $custom_sanitization = $this->customAttributeSanitizationMap();
194
-        foreach ($attributes as $key => $value) {
195
-            // is a custom sanitization callback specified ?
196
-            if (isset($custom_sanitization[ $key ])) {
197
-                $callback = $custom_sanitization[ $key ];
198
-                if ($callback === 'skip_sanitization') {
199
-                    $attributes[ $key ] = $value;
200
-                    continue;
201
-                }
202
-                if (function_exists($callback)) {
203
-                    $attributes[ $key ] = $callback($value);
204
-                    continue;
205
-                }
206
-            }
207
-            switch (true) {
208
-                case $value === null:
209
-                case is_int($value):
210
-                case is_float($value):
211
-                    // typical booleans
212
-                case in_array($value, array(true, 'true', '1', 'on', 'yes', false, 'false', '0', 'off', 'no'), true):
213
-                    $attributes[ $key ] = $value;
214
-                    break;
215
-                case is_string($value):
216
-                    $attributes[ $key ] = sanitize_text_field($value);
217
-                    break;
218
-                case is_array($value):
219
-                    $attributes[ $key ] = $this->sanitizeAttributes($value);
220
-                    break;
221
-                default:
222
-                    // only remaining data types are Object and Resource
223
-                    // which are not allowed as shortcode attributes
224
-                    $attributes[ $key ] = null;
225
-                    break;
226
-            }
227
-        }
228
-        return $attributes;
229
-    }
230
-
231
-
232
-    /**
233
-     * Returns whether or not this shortcode has been initialized
234
-     *
235
-     * @return boolean
236
-     */
237
-    public function initialized()
238
-    {
239
-        return $this->initialized;
240
-    }
22
+	/**
23
+	 * transient prefix
24
+	 *
25
+	 * @type string
26
+	 */
27
+	const CACHE_TRANSIENT_PREFIX = 'ee_sc_';
28
+
29
+	/**
30
+	 * @var PostRelatedCacheManager $cache_manager
31
+	 */
32
+	private $cache_manager;
33
+
34
+	/**
35
+	 * true if ShortcodeInterface::initializeShortcode() has been called
36
+	 * if false, then that will get called before processing
37
+	 *
38
+	 * @var boolean $initialized
39
+	 */
40
+	private $initialized = false;
41
+
42
+
43
+	/**
44
+	 * EspressoShortcode constructor
45
+	 *
46
+	 * @param PostRelatedCacheManager $cache_manager
47
+	 */
48
+	public function __construct(PostRelatedCacheManager $cache_manager)
49
+	{
50
+		$this->cache_manager = $cache_manager;
51
+	}
52
+
53
+
54
+	/**
55
+	 * @return void
56
+	 */
57
+	public function shortcodeHasBeenInitialized()
58
+	{
59
+		$this->initialized = true;
60
+	}
61
+
62
+
63
+	/**
64
+	 * enqueues scripts then processes the shortcode
65
+	 *
66
+	 * @param array $attributes
67
+	 * @return string
68
+	 * @throws EE_Error
69
+	 * @throws ReflectionException
70
+	 */
71
+	final public function processShortcodeCallback($attributes = array())
72
+	{
73
+		if ($this instanceof EnqueueAssetsInterface) {
74
+			if (is_admin()) {
75
+				$this->enqueueAdminScripts();
76
+			} else {
77
+				$this->enqueueScripts();
78
+			}
79
+		}
80
+		return $this->shortcodeContent(
81
+			$this->sanitizeAttributes((array) $attributes)
82
+		);
83
+	}
84
+
85
+
86
+	/**
87
+	 * If shortcode caching is enabled for the shortcode,
88
+	 * and cached results exist, then that will be returned
89
+	 * else new content will be generated.
90
+	 * If caching is enabled, then the new content will be cached for later.
91
+	 *
92
+	 * @param array $attributes
93
+	 * @return mixed|string
94
+	 * @throws EE_Error
95
+	 * @throws ReflectionException
96
+	 */
97
+	private function shortcodeContent(array $attributes)
98
+	{
99
+		$shortcode = $this;
100
+		$post_ID = $this->currentPostID();
101
+		// something like "SC_EVENTS-123"
102
+		$cache_ID = $this->shortcodeCacheID($post_ID);
103
+		$this->cache_manager->clearPostRelatedCacheOnUpdate($post_ID, $cache_ID);
104
+		return $this->cache_manager->get(
105
+			$cache_ID,
106
+			// serialized attributes
107
+			wp_json_encode($attributes),
108
+			// Closure for generating content if cache is expired
109
+			function () use ($shortcode, $attributes) {
110
+				if ($shortcode->initialized() === false) {
111
+					$shortcode->initializeShortcode();
112
+				}
113
+				return $shortcode->processShortcode($attributes);
114
+			},
115
+			// filterable cache expiration set by each shortcode
116
+			apply_filters(
117
+				'FHEE__EventEspresso_core_services_shortcodes_EspressoShortcode__shortcodeContent__cache_expiration',
118
+				$this->cacheExpiration(),
119
+				$this->getTag(),
120
+				$this
121
+			)
122
+		);
123
+	}
124
+
125
+
126
+	/**
127
+	 * @return int
128
+	 * @throws EE_Error
129
+	 * @throws ReflectionException
130
+	 */
131
+	private function currentPostID()
132
+	{
133
+		// try to get EE_Event any way we can
134
+		$event = EEH_Event_View::get_event();
135
+		// then get some kind of ID
136
+		if ($event instanceof EE_Event) {
137
+			return $event->ID();
138
+		}
139
+		global $post;
140
+		if ($post instanceof WP_Post) {
141
+			return $post->ID;
142
+		}
143
+		return 0;
144
+	}
145
+
146
+
147
+	/**
148
+	 * @param int $post_ID
149
+	 * @return string
150
+	 */
151
+	private function shortcodeCacheID($post_ID)
152
+	{
153
+		$tag = str_replace('ESPRESSO_', '', $this->getTag());
154
+		return "SC_{$tag}-{$post_ID}";
155
+	}
156
+
157
+
158
+	/**
159
+	 * array for defining custom attribute sanitization callbacks,
160
+	 * where keys match keys in your attributes array,
161
+	 * and values represent the sanitization function you wish to be applied to that attribute.
162
+	 * So for example, if you had an integer attribute named "event_id"
163
+	 * that you wanted to be sanitized using absint(),
164
+	 * then you would return the following:
165
+	 *      array('event_id' => 'absint')
166
+	 * Entering 'skip_sanitization' for the callback value
167
+	 * means that no sanitization will be applied
168
+	 * on the assumption that the attribute
169
+	 * will be sanitized at some point... right?
170
+	 * You wouldn't pass around unsanitized attributes would you?
171
+	 * That would be very Tom Foolery of you!!!
172
+	 *
173
+	 * @return array
174
+	 */
175
+	protected function customAttributeSanitizationMap()
176
+	{
177
+		return array();
178
+	}
179
+
180
+
181
+	/**
182
+	 * Performs basic sanitization on shortcode attributes
183
+	 * Since incoming attributes from the shortcode usage in the WP editor will all be strings,
184
+	 * most attributes will by default be sanitized using the sanitize_text_field() function.
185
+	 * This can be overridden using the customAttributeSanitizationMap() method (see above),
186
+	 * all other attributes would be sanitized using the defaults in the switch statement below
187
+	 *
188
+	 * @param array $attributes
189
+	 * @return array
190
+	 */
191
+	private function sanitizeAttributes(array $attributes)
192
+	{
193
+		$custom_sanitization = $this->customAttributeSanitizationMap();
194
+		foreach ($attributes as $key => $value) {
195
+			// is a custom sanitization callback specified ?
196
+			if (isset($custom_sanitization[ $key ])) {
197
+				$callback = $custom_sanitization[ $key ];
198
+				if ($callback === 'skip_sanitization') {
199
+					$attributes[ $key ] = $value;
200
+					continue;
201
+				}
202
+				if (function_exists($callback)) {
203
+					$attributes[ $key ] = $callback($value);
204
+					continue;
205
+				}
206
+			}
207
+			switch (true) {
208
+				case $value === null:
209
+				case is_int($value):
210
+				case is_float($value):
211
+					// typical booleans
212
+				case in_array($value, array(true, 'true', '1', 'on', 'yes', false, 'false', '0', 'off', 'no'), true):
213
+					$attributes[ $key ] = $value;
214
+					break;
215
+				case is_string($value):
216
+					$attributes[ $key ] = sanitize_text_field($value);
217
+					break;
218
+				case is_array($value):
219
+					$attributes[ $key ] = $this->sanitizeAttributes($value);
220
+					break;
221
+				default:
222
+					// only remaining data types are Object and Resource
223
+					// which are not allowed as shortcode attributes
224
+					$attributes[ $key ] = null;
225
+					break;
226
+			}
227
+		}
228
+		return $attributes;
229
+	}
230
+
231
+
232
+	/**
233
+	 * Returns whether or not this shortcode has been initialized
234
+	 *
235
+	 * @return boolean
236
+	 */
237
+	public function initialized()
238
+	{
239
+		return $this->initialized;
240
+	}
241 241
 }
Please login to merge, or discard this patch.
core/services/loaders/LoaderDecoratorInterface.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -5,18 +5,18 @@
 block discarded – undo
5 5
 interface LoaderDecoratorInterface
6 6
 {
7 7
 
8
-    /**
9
-     * @param string $fqcn
10
-     * @param array  $arguments
11
-     * @param bool   $shared
12
-     * @return mixed
13
-     */
14
-    public function load($fqcn, $arguments = array(), $shared = true);
8
+	/**
9
+	 * @param string $fqcn
10
+	 * @param array  $arguments
11
+	 * @param bool   $shared
12
+	 * @return mixed
13
+	 */
14
+	public function load($fqcn, $arguments = array(), $shared = true);
15 15
 
16 16
 
17 17
 
18
-    /**
19
-     * calls reset() on loader if method exists
20
-     */
21
-    public function reset();
18
+	/**
19
+	 * calls reset() on loader if method exists
20
+	 */
21
+	public function reset();
22 22
 }
Please login to merge, or discard this patch.
core/services/helpers/datetime/PhpCompatLessFiveSixHelper.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -59,7 +59,7 @@
 block discarded – undo
59 59
         // although we don't know the TZ abbreviation, we know the UTC offset
60 60
         $timezone_string = timezone_name_from_abbr(null, $gmt_offset);
61 61
         // only use this timezone_string IF it's current offset matches the given offset
62
-        if (! empty($timezone_string)) {
62
+        if ( ! empty($timezone_string)) {
63 63
             $offset = null;
64 64
             try {
65 65
                 $offset = $this->getTimezoneOffset(new DateTimeZone($timezone_string));
Please login to merge, or discard this patch.
Indentation   +212 added lines, -212 removed lines patch added patch discarded remove patch
@@ -18,221 +18,221 @@
 block discarded – undo
18 18
  */
19 19
 class PhpCompatLessFiveSixHelper extends AbstractHelper
20 20
 {
21
-    /**
22
-     * PhpCompatLessFiveSixHelper constructor.
23
-     *
24
-     * @throws DomainException
25
-     */
26
-    public function __construct()
27
-    {
28
-        if (PHP_VERSION_ID >= 50600) {
29
-            throw new DomainException(
30
-                sprintf(
31
-                    esc_html__(
32
-                        'The %1$s is only usable on php versions less than 5.6.  You\'ll want to use %2$s instead.',
33
-                        'event_espresso'
34
-                    ),
35
-                    __CLASS__,
36
-                    'EventEspresso\core\services\helpers\datetime\PhpCompatGreaterFiveSixHelper'
37
-                )
38
-            );
39
-        }
40
-    }
21
+	/**
22
+	 * PhpCompatLessFiveSixHelper constructor.
23
+	 *
24
+	 * @throws DomainException
25
+	 */
26
+	public function __construct()
27
+	{
28
+		if (PHP_VERSION_ID >= 50600) {
29
+			throw new DomainException(
30
+				sprintf(
31
+					esc_html__(
32
+						'The %1$s is only usable on php versions less than 5.6.  You\'ll want to use %2$s instead.',
33
+						'event_espresso'
34
+					),
35
+					__CLASS__,
36
+					'EventEspresso\core\services\helpers\datetime\PhpCompatGreaterFiveSixHelper'
37
+				)
38
+			);
39
+		}
40
+	}
41 41
 
42
-    /**
43
-     * Returns a timezone string for the provided gmt_offset.
44
-     *
45
-     * @param float|string $gmt_offset
46
-     * @return string
47
-     * @throws EE_Error
48
-     */
49
-    public function getTimezoneStringFromGmtOffset($gmt_offset = '')
50
-    {
51
-        $gmt_offset_or_timezone_string = $this->sanitizeInitialIncomingGmtOffsetForGettingTimezoneString($gmt_offset);
52
-        if (is_string($gmt_offset_or_timezone_string)) {
53
-            return $gmt_offset_or_timezone_string;
54
-        }
55
-        // well we know its a float, so let's roll with it.
56
-        $gmt_offset = $gmt_offset_or_timezone_string;
57
-        // convert GMT offset to seconds
58
-        $gmt_offset *= HOUR_IN_SECONDS;
59
-        // although we don't know the TZ abbreviation, we know the UTC offset
60
-        $timezone_string = timezone_name_from_abbr(null, $gmt_offset);
61
-        // only use this timezone_string IF it's current offset matches the given offset
62
-        if (! empty($timezone_string)) {
63
-            $offset = null;
64
-            try {
65
-                $offset = $this->getTimezoneOffset(new DateTimeZone($timezone_string));
66
-                if ($offset !== $gmt_offset) {
67
-                    $timezone_string = false;
68
-                }
69
-            } catch (Exception $e) {
70
-                $timezone_string = false;
71
-            }
72
-        }
73
-        // better have a valid timezone string by now, but if not, sigh... loop thru  the timezone_abbreviations_list()
74
-        // ...
75
-        $timezone_string = $timezone_string !== false
76
-            ? $timezone_string
77
-            : $this->getTimezoneStringFromAbbreviationsList($gmt_offset);
78
-        return $timezone_string;
79
-    }
42
+	/**
43
+	 * Returns a timezone string for the provided gmt_offset.
44
+	 *
45
+	 * @param float|string $gmt_offset
46
+	 * @return string
47
+	 * @throws EE_Error
48
+	 */
49
+	public function getTimezoneStringFromGmtOffset($gmt_offset = '')
50
+	{
51
+		$gmt_offset_or_timezone_string = $this->sanitizeInitialIncomingGmtOffsetForGettingTimezoneString($gmt_offset);
52
+		if (is_string($gmt_offset_or_timezone_string)) {
53
+			return $gmt_offset_or_timezone_string;
54
+		}
55
+		// well we know its a float, so let's roll with it.
56
+		$gmt_offset = $gmt_offset_or_timezone_string;
57
+		// convert GMT offset to seconds
58
+		$gmt_offset *= HOUR_IN_SECONDS;
59
+		// although we don't know the TZ abbreviation, we know the UTC offset
60
+		$timezone_string = timezone_name_from_abbr(null, $gmt_offset);
61
+		// only use this timezone_string IF it's current offset matches the given offset
62
+		if (! empty($timezone_string)) {
63
+			$offset = null;
64
+			try {
65
+				$offset = $this->getTimezoneOffset(new DateTimeZone($timezone_string));
66
+				if ($offset !== $gmt_offset) {
67
+					$timezone_string = false;
68
+				}
69
+			} catch (Exception $e) {
70
+				$timezone_string = false;
71
+			}
72
+		}
73
+		// better have a valid timezone string by now, but if not, sigh... loop thru  the timezone_abbreviations_list()
74
+		// ...
75
+		$timezone_string = $timezone_string !== false
76
+			? $timezone_string
77
+			: $this->getTimezoneStringFromAbbreviationsList($gmt_offset);
78
+		return $timezone_string;
79
+	}
80 80
 
81 81
 
82
-    /**
83
-     * @param int  $gmt_offset
84
-     * @param bool $coerce If true, we attempt to coerce with our adjustment table
85
-     * @see self::adjustInvalidGmtOffset
86
-     * @return string
87
-     * @throws EE_Error
88
-     */
89
-    protected function getTimezoneStringFromAbbreviationsList($gmt_offset = 0, $coerce = true)
90
-    {
91
-        $gmt_offset = (int) $gmt_offset;
92
-        /** @var array[] $abbreviations */
93
-        $abbreviations = DateTimeZone::listAbbreviations();
94
-        foreach ($abbreviations as $abbreviation) {
95
-            foreach ($abbreviation as $timezone) {
96
-                if ((int) $timezone['offset'] === $gmt_offset && (bool) $timezone['dst'] === false) {
97
-                    try {
98
-                        $offset = $this->getTimezoneOffset(new DateTimeZone($timezone['timezone_id']));
99
-                        if ($offset !== $gmt_offset) {
100
-                            continue;
101
-                        }
102
-                        return $timezone['timezone_id'];
103
-                    } catch (Exception $e) {
104
-                        continue;
105
-                    }
106
-                }
107
-            }
108
-        }
109
-        // if $coerce is true, let's see if we can get a timezone string after the offset is adjusted
110
-        if ($coerce === true) {
111
-            $timezone_string = $this->getTimezoneStringFromAbbreviationsList(
112
-                $this->adjustInvalidGmtOffsets($gmt_offset),
113
-                false
114
-            );
115
-            if ($timezone_string) {
116
-                return $timezone_string;
117
-            }
118
-        }
119
-        throw new EE_Error(
120
-            sprintf(
121
-                esc_html__(
122
-                    'The provided GMT offset (%1$s), is invalid, please check with %2$sthis list%3$s for what valid timezones can be used',
123
-                    'event_espresso'
124
-                ),
125
-                $gmt_offset / HOUR_IN_SECONDS,
126
-                '<a href="http://www.php.net/manual/en/timezones.php">',
127
-                '</a>'
128
-            )
129
-        );
130
-    }
82
+	/**
83
+	 * @param int  $gmt_offset
84
+	 * @param bool $coerce If true, we attempt to coerce with our adjustment table
85
+	 * @see self::adjustInvalidGmtOffset
86
+	 * @return string
87
+	 * @throws EE_Error
88
+	 */
89
+	protected function getTimezoneStringFromAbbreviationsList($gmt_offset = 0, $coerce = true)
90
+	{
91
+		$gmt_offset = (int) $gmt_offset;
92
+		/** @var array[] $abbreviations */
93
+		$abbreviations = DateTimeZone::listAbbreviations();
94
+		foreach ($abbreviations as $abbreviation) {
95
+			foreach ($abbreviation as $timezone) {
96
+				if ((int) $timezone['offset'] === $gmt_offset && (bool) $timezone['dst'] === false) {
97
+					try {
98
+						$offset = $this->getTimezoneOffset(new DateTimeZone($timezone['timezone_id']));
99
+						if ($offset !== $gmt_offset) {
100
+							continue;
101
+						}
102
+						return $timezone['timezone_id'];
103
+					} catch (Exception $e) {
104
+						continue;
105
+					}
106
+				}
107
+			}
108
+		}
109
+		// if $coerce is true, let's see if we can get a timezone string after the offset is adjusted
110
+		if ($coerce === true) {
111
+			$timezone_string = $this->getTimezoneStringFromAbbreviationsList(
112
+				$this->adjustInvalidGmtOffsets($gmt_offset),
113
+				false
114
+			);
115
+			if ($timezone_string) {
116
+				return $timezone_string;
117
+			}
118
+		}
119
+		throw new EE_Error(
120
+			sprintf(
121
+				esc_html__(
122
+					'The provided GMT offset (%1$s), is invalid, please check with %2$sthis list%3$s for what valid timezones can be used',
123
+					'event_espresso'
124
+				),
125
+				$gmt_offset / HOUR_IN_SECONDS,
126
+				'<a href="http://www.php.net/manual/en/timezones.php">',
127
+				'</a>'
128
+			)
129
+		);
130
+	}
131 131
 
132 132
 
133
-    /**
134
-     * Depending on PHP version,
135
-     * there might not be valid current timezone strings to match these gmt_offsets in its timezone tables.
136
-     * To get around that, for these fringe timezones we bump them to a known valid offset.
137
-     * This method should ONLY be called after first verifying an timezone_string cannot be retrieved for the offset.
138
-     *
139
-     * @param int $gmt_offset
140
-     * @return int
141
-     */
142
-    public function adjustInvalidGmtOffsets($gmt_offset = 0)
143
-    {
144
-        // make sure $gmt_offset is int
145
-        $gmt_offset = (int) $gmt_offset;
146
-        switch ($gmt_offset) {
147
-            // -12
148
-            case -43200:
149
-                $gmt_offset = -39600;
150
-                break;
151
-            // -11.5
152
-            case -41400:
153
-                $gmt_offset = -39600;
154
-                break;
155
-            // -10.5
156
-            case -37800:
157
-                $gmt_offset = -39600;
158
-                break;
159
-            // -8.5
160
-            case -30600:
161
-                $gmt_offset = -28800;
162
-                break;
163
-            // -7.5
164
-            case -27000:
165
-                $gmt_offset = -25200;
166
-                break;
167
-            // -6.5
168
-            case -23400:
169
-                $gmt_offset = -21600;
170
-                break;
171
-            // -5.5
172
-            case -19800:
173
-                $gmt_offset = -18000;
174
-                break;
175
-            // -4.5
176
-            case -16200:
177
-                $gmt_offset = -14400;
178
-                break;
179
-            // -3.5
180
-            case -12600:
181
-                $gmt_offset = -10800;
182
-                break;
183
-            // -2.5
184
-            case -9000:
185
-                $gmt_offset = -7200;
186
-                break;
187
-            // -1.5
188
-            case -5400:
189
-                $gmt_offset = -3600;
190
-                break;
191
-            // -0.5
192
-            case -1800:
193
-                $gmt_offset = 0;
194
-                break;
195
-            // .5
196
-            case 1800:
197
-                $gmt_offset = 3600;
198
-                break;
199
-            // 1.5
200
-            case 5400:
201
-                $gmt_offset = 7200;
202
-                break;
203
-            // 2.5
204
-            case 9000:
205
-                $gmt_offset = 10800;
206
-                break;
207
-            // 3.5
208
-            case 12600:
209
-                $gmt_offset = 14400;
210
-                break;
211
-            // 7.5
212
-            case 27000:
213
-                $gmt_offset = 28800;
214
-                break;
215
-            // 8.5
216
-            case 30600:
217
-                $gmt_offset = 31500;
218
-                break;
219
-            // 10.5
220
-            case 37800:
221
-                $gmt_offset = 39600;
222
-                break;
223
-            // 11.5
224
-            case 41400:
225
-                $gmt_offset = 43200;
226
-                break;
227
-            // 12.75
228
-            case 45900:
229
-                $gmt_offset = 46800;
230
-                break;
231
-            // 13.75
232
-            case 49500:
233
-                $gmt_offset = 50400;
234
-                break;
235
-        }
236
-        return $gmt_offset;
237
-    }
133
+	/**
134
+	 * Depending on PHP version,
135
+	 * there might not be valid current timezone strings to match these gmt_offsets in its timezone tables.
136
+	 * To get around that, for these fringe timezones we bump them to a known valid offset.
137
+	 * This method should ONLY be called after first verifying an timezone_string cannot be retrieved for the offset.
138
+	 *
139
+	 * @param int $gmt_offset
140
+	 * @return int
141
+	 */
142
+	public function adjustInvalidGmtOffsets($gmt_offset = 0)
143
+	{
144
+		// make sure $gmt_offset is int
145
+		$gmt_offset = (int) $gmt_offset;
146
+		switch ($gmt_offset) {
147
+			// -12
148
+			case -43200:
149
+				$gmt_offset = -39600;
150
+				break;
151
+			// -11.5
152
+			case -41400:
153
+				$gmt_offset = -39600;
154
+				break;
155
+			// -10.5
156
+			case -37800:
157
+				$gmt_offset = -39600;
158
+				break;
159
+			// -8.5
160
+			case -30600:
161
+				$gmt_offset = -28800;
162
+				break;
163
+			// -7.5
164
+			case -27000:
165
+				$gmt_offset = -25200;
166
+				break;
167
+			// -6.5
168
+			case -23400:
169
+				$gmt_offset = -21600;
170
+				break;
171
+			// -5.5
172
+			case -19800:
173
+				$gmt_offset = -18000;
174
+				break;
175
+			// -4.5
176
+			case -16200:
177
+				$gmt_offset = -14400;
178
+				break;
179
+			// -3.5
180
+			case -12600:
181
+				$gmt_offset = -10800;
182
+				break;
183
+			// -2.5
184
+			case -9000:
185
+				$gmt_offset = -7200;
186
+				break;
187
+			// -1.5
188
+			case -5400:
189
+				$gmt_offset = -3600;
190
+				break;
191
+			// -0.5
192
+			case -1800:
193
+				$gmt_offset = 0;
194
+				break;
195
+			// .5
196
+			case 1800:
197
+				$gmt_offset = 3600;
198
+				break;
199
+			// 1.5
200
+			case 5400:
201
+				$gmt_offset = 7200;
202
+				break;
203
+			// 2.5
204
+			case 9000:
205
+				$gmt_offset = 10800;
206
+				break;
207
+			// 3.5
208
+			case 12600:
209
+				$gmt_offset = 14400;
210
+				break;
211
+			// 7.5
212
+			case 27000:
213
+				$gmt_offset = 28800;
214
+				break;
215
+			// 8.5
216
+			case 30600:
217
+				$gmt_offset = 31500;
218
+				break;
219
+			// 10.5
220
+			case 37800:
221
+				$gmt_offset = 39600;
222
+				break;
223
+			// 11.5
224
+			case 41400:
225
+				$gmt_offset = 43200;
226
+				break;
227
+			// 12.75
228
+			case 45900:
229
+				$gmt_offset = 46800;
230
+				break;
231
+			// 13.75
232
+			case 49500:
233
+				$gmt_offset = 50400;
234
+				break;
235
+		}
236
+		return $gmt_offset;
237
+	}
238 238
 }
Please login to merge, or discard this patch.
core/services/helpers/datetime/PhpCompatGreaterFiveSixHelper.php 2 patches
Indentation   +79 added lines, -79 removed lines patch added patch discarded remove patch
@@ -8,91 +8,91 @@
 block discarded – undo
8 8
 
9 9
 class PhpCompatGreaterFiveSixHelper extends AbstractHelper
10 10
 {
11
-    /**
12
-     * PhpCompatLessFiveSixHelper constructor.
13
-     *
14
-     * @throws DomainException
15
-     */
16
-    public function __construct()
17
-    {
18
-        if (PHP_VERSION_ID < 50600) {
19
-            throw new DomainException(
20
-                sprintf(
21
-                    esc_html__(
22
-                        'The %1$s is only usable on php versions greater than 5.6.  You\'ll want to use %2$s instead.',
23
-                        'event_espresso'
24
-                    ),
25
-                    __CLASS__,
26
-                    'EventEspresso\core\services\helpers\datetime\PhpCompatLessFiveSixHelper'
27
-                )
28
-            );
29
-        }
30
-    }
11
+	/**
12
+	 * PhpCompatLessFiveSixHelper constructor.
13
+	 *
14
+	 * @throws DomainException
15
+	 */
16
+	public function __construct()
17
+	{
18
+		if (PHP_VERSION_ID < 50600) {
19
+			throw new DomainException(
20
+				sprintf(
21
+					esc_html__(
22
+						'The %1$s is only usable on php versions greater than 5.6.  You\'ll want to use %2$s instead.',
23
+						'event_espresso'
24
+					),
25
+					__CLASS__,
26
+					'EventEspresso\core\services\helpers\datetime\PhpCompatLessFiveSixHelper'
27
+				)
28
+			);
29
+		}
30
+	}
31 31
 
32
-    /**
33
-     * Returns a timezone string for the provided gmt_offset.
34
-     * This is a valid timezone string that can be sent into DateTimeZone
35
-     *
36
-     * @param float|string $gmt_offset
37
-     * @return string
38
-     */
39
-    public function getTimezoneStringFromGmtOffset($gmt_offset = '')
40
-    {
41
-        $gmt_offset_or_timezone_string = $this->sanitizeInitialIncomingGmtOffsetForGettingTimezoneString($gmt_offset);
42
-        return is_float($gmt_offset_or_timezone_string)
43
-            ? $this->convertWpGmtOffsetForDateTimeZone($gmt_offset_or_timezone_string)
44
-            : $gmt_offset_or_timezone_string;
45
-    }
32
+	/**
33
+	 * Returns a timezone string for the provided gmt_offset.
34
+	 * This is a valid timezone string that can be sent into DateTimeZone
35
+	 *
36
+	 * @param float|string $gmt_offset
37
+	 * @return string
38
+	 */
39
+	public function getTimezoneStringFromGmtOffset($gmt_offset = '')
40
+	{
41
+		$gmt_offset_or_timezone_string = $this->sanitizeInitialIncomingGmtOffsetForGettingTimezoneString($gmt_offset);
42
+		return is_float($gmt_offset_or_timezone_string)
43
+			? $this->convertWpGmtOffsetForDateTimeZone($gmt_offset_or_timezone_string)
44
+			: $gmt_offset_or_timezone_string;
45
+	}
46 46
 
47 47
 
48 48
 
49
-    /**
50
-     * Returns a formatted offset for use as an argument for constructing DateTimeZone
51
-     * @param float $gmt_offset This should be a float representing the gmt_offset.
52
-     * @return string
53
-     */
54
-    protected function convertWpGmtOffsetForDateTimeZone($gmt_offset)
55
-    {
56
-        $gmt_offset = (float) $gmt_offset;
57
-        $is_negative = $gmt_offset < 0;
58
-        $gmt_offset *= 100;
59
-        $gmt_offset = absint($gmt_offset);
60
-        // negative and need zero padding?
61
-        if (strlen($gmt_offset) < 4) {
62
-            $gmt_offset = str_pad($gmt_offset, 4, '0', STR_PAD_LEFT);
63
-        }
64
-        $gmt_offset = $this->convertToTimeFraction($gmt_offset);
65
-        // return something like -1300, -0200 or +1300, +0200
66
-        return $is_negative ? '-' . $gmt_offset : '+' . $gmt_offset;
67
-    }
49
+	/**
50
+	 * Returns a formatted offset for use as an argument for constructing DateTimeZone
51
+	 * @param float $gmt_offset This should be a float representing the gmt_offset.
52
+	 * @return string
53
+	 */
54
+	protected function convertWpGmtOffsetForDateTimeZone($gmt_offset)
55
+	{
56
+		$gmt_offset = (float) $gmt_offset;
57
+		$is_negative = $gmt_offset < 0;
58
+		$gmt_offset *= 100;
59
+		$gmt_offset = absint($gmt_offset);
60
+		// negative and need zero padding?
61
+		if (strlen($gmt_offset) < 4) {
62
+			$gmt_offset = str_pad($gmt_offset, 4, '0', STR_PAD_LEFT);
63
+		}
64
+		$gmt_offset = $this->convertToTimeFraction($gmt_offset);
65
+		// return something like -1300, -0200 or +1300, +0200
66
+		return $is_negative ? '-' . $gmt_offset : '+' . $gmt_offset;
67
+	}
68 68
 
69 69
 
70
-    /**
71
-     * Converts something like `1550` to `1530` or `0275` to `0245`
72
-     * Incoming offset should be a positive value, this will mutate negative values. Be aware!
73
-     * @param int $offset
74
-     * @return mixed
75
-     */
76
-    protected function convertToTimeFraction($offset)
77
-    {
78
-        $first_part = substr($offset, 0, 2);
79
-        $second_part = substr($offset, 2, 2);
80
-        $second_part = str_replace(array('25', '50', '75'), array('15', '30', '45'), $second_part);
81
-        return $first_part . $second_part;
82
-    }
70
+	/**
71
+	 * Converts something like `1550` to `1530` or `0275` to `0245`
72
+	 * Incoming offset should be a positive value, this will mutate negative values. Be aware!
73
+	 * @param int $offset
74
+	 * @return mixed
75
+	 */
76
+	protected function convertToTimeFraction($offset)
77
+	{
78
+		$first_part = substr($offset, 0, 2);
79
+		$second_part = substr($offset, 2, 2);
80
+		$second_part = str_replace(array('25', '50', '75'), array('15', '30', '45'), $second_part);
81
+		return $first_part . $second_part;
82
+	}
83 83
 
84 84
 
85
-    /**
86
-     * Get Timezone offset for given timezone object
87
-     *
88
-     * @param DateTimeZone $date_time_zone
89
-     * @param null|int     $time
90
-     * @return int
91
-     */
92
-    public function getTimezoneOffset(DateTimezone $date_time_zone, $time = null)
93
-    {
94
-        $time = is_int($time) || $time === null ? $time : (int) strtotime($time);
95
-        $time = preg_match(EE_Datetime_Field::unix_timestamp_regex, $time) ? $time : time();
96
-        return $date_time_zone->getOffset(new DateTime('@' . $time));
97
-    }
85
+	/**
86
+	 * Get Timezone offset for given timezone object
87
+	 *
88
+	 * @param DateTimeZone $date_time_zone
89
+	 * @param null|int     $time
90
+	 * @return int
91
+	 */
92
+	public function getTimezoneOffset(DateTimezone $date_time_zone, $time = null)
93
+	{
94
+		$time = is_int($time) || $time === null ? $time : (int) strtotime($time);
95
+		$time = preg_match(EE_Datetime_Field::unix_timestamp_regex, $time) ? $time : time();
96
+		return $date_time_zone->getOffset(new DateTime('@' . $time));
97
+	}
98 98
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -63,7 +63,7 @@  discard block
 block discarded – undo
63 63
         }
64 64
         $gmt_offset = $this->convertToTimeFraction($gmt_offset);
65 65
         // return something like -1300, -0200 or +1300, +0200
66
-        return $is_negative ? '-' . $gmt_offset : '+' . $gmt_offset;
66
+        return $is_negative ? '-'.$gmt_offset : '+'.$gmt_offset;
67 67
     }
68 68
 
69 69
 
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
         $first_part = substr($offset, 0, 2);
79 79
         $second_part = substr($offset, 2, 2);
80 80
         $second_part = str_replace(array('25', '50', '75'), array('15', '30', '45'), $second_part);
81
-        return $first_part . $second_part;
81
+        return $first_part.$second_part;
82 82
     }
83 83
 
84 84
 
@@ -93,6 +93,6 @@  discard block
 block discarded – undo
93 93
     {
94 94
         $time = is_int($time) || $time === null ? $time : (int) strtotime($time);
95 95
         $time = preg_match(EE_Datetime_Field::unix_timestamp_regex, $time) ? $time : time();
96
-        return $date_time_zone->getOffset(new DateTime('@' . $time));
96
+        return $date_time_zone->getOffset(new DateTime('@'.$time));
97 97
     }
98 98
 }
Please login to merge, or discard this patch.
data_migration_scripts/4_6_0_stages/EE_DMS_4_6_0_billing_info.dmsstage.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -25,9 +25,9 @@  discard block
 block discarded – undo
25 25
         $old_billing_info = maybe_unserialize($old_row['meta_value']);
26 26
         $gateway_name = str_replace("billing_info_", '', $old_row['meta_key']);
27 27
         $repetitive_prefix = '_reg-page-billing-';
28
-        $repetitive_suffix = "-" . $gateway_name;
28
+        $repetitive_suffix = "-".$gateway_name;
29 29
         foreach ($old_billing_info as $old_input_name => $input_value) {
30
-            $old_input_name_important_part = str_replace(array( $repetitive_prefix, $repetitive_suffix ), array( '', ''), $old_input_name);
30
+            $old_input_name_important_part = str_replace(array($repetitive_prefix, $repetitive_suffix), array('', ''), $old_input_name);
31 31
 
32 32
             switch ($old_input_name_important_part) {
33 33
                 case 'fname':
@@ -61,7 +61,7 @@  discard block
 block discarded – undo
61 61
                 default:
62 62
                     $new_input_name = $old_input_name_important_part;
63 63
             }
64
-            $new_billing_info[ $new_input_name ] = $input_value;
64
+            $new_billing_info[$new_input_name] = $input_value;
65 65
         }
66 66
         update_post_meta($old_row['post_id'], $old_row['meta_key'], $new_billing_info);
67 67
     }
@@ -74,6 +74,6 @@  discard block
 block discarded – undo
74 74
     protected function _get_state_name_by_ID($id)
75 75
     {
76 76
         global $wpdb;
77
-        return $wpdb->get_var($wpdb->prepare("SELECT STA_name FROM " . $wpdb->prefix . "esp_state WHERE STA_ID = %d", $id));
77
+        return $wpdb->get_var($wpdb->prepare("SELECT STA_name FROM ".$wpdb->prefix."esp_state WHERE STA_ID = %d", $id));
78 78
     }
79 79
 }
Please login to merge, or discard this patch.
Indentation   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -11,69 +11,69 @@
 block discarded – undo
11 11
  */
12 12
 class EE_DMS_4_6_0_billing_info extends EE_Data_Migration_Script_Stage_Table
13 13
 {
14
-    public function __construct()
15
-    {
16
-        global $wpdb;
17
-        $this->_old_table = $wpdb->postmeta;
18
-        $this->_pretty_name = esc_html__('Billing Info', 'event_espresso');
19
-        $this->_extra_where_sql = "WHERE meta_key LIKE 'billing_info_%'";
20
-        parent::__construct();
21
-    }
22
-    protected function _migrate_old_row($old_row)
23
-    {
24
-        $new_billing_info = array();
25
-        $old_billing_info = maybe_unserialize($old_row['meta_value']);
26
-        $gateway_name = str_replace("billing_info_", '', $old_row['meta_key']);
27
-        $repetitive_prefix = '_reg-page-billing-';
28
-        $repetitive_suffix = "-" . $gateway_name;
29
-        foreach ($old_billing_info as $old_input_name => $input_value) {
30
-            $old_input_name_important_part = str_replace(array( $repetitive_prefix, $repetitive_suffix ), array( '', ''), $old_input_name);
14
+	public function __construct()
15
+	{
16
+		global $wpdb;
17
+		$this->_old_table = $wpdb->postmeta;
18
+		$this->_pretty_name = esc_html__('Billing Info', 'event_espresso');
19
+		$this->_extra_where_sql = "WHERE meta_key LIKE 'billing_info_%'";
20
+		parent::__construct();
21
+	}
22
+	protected function _migrate_old_row($old_row)
23
+	{
24
+		$new_billing_info = array();
25
+		$old_billing_info = maybe_unserialize($old_row['meta_value']);
26
+		$gateway_name = str_replace("billing_info_", '', $old_row['meta_key']);
27
+		$repetitive_prefix = '_reg-page-billing-';
28
+		$repetitive_suffix = "-" . $gateway_name;
29
+		foreach ($old_billing_info as $old_input_name => $input_value) {
30
+			$old_input_name_important_part = str_replace(array( $repetitive_prefix, $repetitive_suffix ), array( '', ''), $old_input_name);
31 31
 
32
-            switch ($old_input_name_important_part) {
33
-                case 'fname':
34
-                    $new_input_name = 'first_name';
35
-                    break;
36
-                case 'lname':
37
-                    $new_input_name = 'last_name';
38
-                    break;
39
-                case 'state':
40
-                    // we used to store the state's id ,but now we just store the name
41
-                    $new_input_name = $old_input_name_important_part;
42
-                    $input_value = $this->_get_state_name_by_ID($input_value);
43
-                    break;
44
-                case 'card-nmbr':
45
-                    $new_input_name = 'credit_card';
46
-                    break;
47
-                case 'card-type':// paypal pro only
48
-                    $new_input_name = 'credit_card_type';
49
-                    break;
50
-                case 'card-exp-date-mnth':
51
-                    $new_input_name = 'exp_month';
52
-                    $input_value = '';
53
-                    break;
54
-                case 'card-exp-date-year':
55
-                    $new_input_name = 'exp_year';
56
-                    $input_value = 0;
57
-                    break;
58
-                case 'ccv-code':
59
-                    $new_input_name = 'cvv';
60
-                    break;
61
-                default:
62
-                    $new_input_name = $old_input_name_important_part;
63
-            }
64
-            $new_billing_info[ $new_input_name ] = $input_value;
65
-        }
66
-        update_post_meta($old_row['post_id'], $old_row['meta_key'], $new_billing_info);
67
-    }
68
-    /**
69
-     *
70
-     * @global type $wpdb
71
-     * @param int $id
72
-     * @return string
73
-     */
74
-    protected function _get_state_name_by_ID($id)
75
-    {
76
-        global $wpdb;
77
-        return $wpdb->get_var($wpdb->prepare("SELECT STA_name FROM " . $wpdb->prefix . "esp_state WHERE STA_ID = %d", $id));
78
-    }
32
+			switch ($old_input_name_important_part) {
33
+				case 'fname':
34
+					$new_input_name = 'first_name';
35
+					break;
36
+				case 'lname':
37
+					$new_input_name = 'last_name';
38
+					break;
39
+				case 'state':
40
+					// we used to store the state's id ,but now we just store the name
41
+					$new_input_name = $old_input_name_important_part;
42
+					$input_value = $this->_get_state_name_by_ID($input_value);
43
+					break;
44
+				case 'card-nmbr':
45
+					$new_input_name = 'credit_card';
46
+					break;
47
+				case 'card-type':// paypal pro only
48
+					$new_input_name = 'credit_card_type';
49
+					break;
50
+				case 'card-exp-date-mnth':
51
+					$new_input_name = 'exp_month';
52
+					$input_value = '';
53
+					break;
54
+				case 'card-exp-date-year':
55
+					$new_input_name = 'exp_year';
56
+					$input_value = 0;
57
+					break;
58
+				case 'ccv-code':
59
+					$new_input_name = 'cvv';
60
+					break;
61
+				default:
62
+					$new_input_name = $old_input_name_important_part;
63
+			}
64
+			$new_billing_info[ $new_input_name ] = $input_value;
65
+		}
66
+		update_post_meta($old_row['post_id'], $old_row['meta_key'], $new_billing_info);
67
+	}
68
+	/**
69
+	 *
70
+	 * @global type $wpdb
71
+	 * @param int $id
72
+	 * @return string
73
+	 */
74
+	protected function _get_state_name_by_ID($id)
75
+	{
76
+		global $wpdb;
77
+		return $wpdb->get_var($wpdb->prepare("SELECT STA_name FROM " . $wpdb->prefix . "esp_state WHERE STA_ID = %d", $id));
78
+	}
79 79
 }
Please login to merge, or discard this patch.
4_9_0_stages/EE_DMS_4_9_0_Answers_With_No_Registration.dmsstage.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -48,9 +48,9 @@
 block discarded – undo
48 48
     {
49 49
         global $wpdb;
50 50
         $wpdb->delete(
51
-            $wpdb->prefix . 'esp_answer',
52
-            array( 'REG_ID' => 0 ),
53
-            array( '%d' )
51
+            $wpdb->prefix.'esp_answer',
52
+            array('REG_ID' => 0),
53
+            array('%d')
54 54
         );
55 55
         $this->set_completed();
56 56
         return 1;
Please login to merge, or discard this patch.
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -12,44 +12,44 @@
 block discarded – undo
12 12
  */
13 13
 class EE_DMS_4_9_0_Answers_With_No_Registration extends EE_Data_Migration_Script_Stage
14 14
 {
15
-    /**
16
-     * Just initializes the status of the migration
17
-     *
18
-     * @return EE_DMS_4_9_0_Answers_With_No_Registration
19
-     */
20
-    public function __construct()
21
-    {
22
-        $this->_pretty_name = esc_html__('Answer Cleanup', 'event_espresso');
23
-        parent::__construct();
24
-    }
15
+	/**
16
+	 * Just initializes the status of the migration
17
+	 *
18
+	 * @return EE_DMS_4_9_0_Answers_With_No_Registration
19
+	 */
20
+	public function __construct()
21
+	{
22
+		$this->_pretty_name = esc_html__('Answer Cleanup', 'event_espresso');
23
+		parent::__construct();
24
+	}
25 25
 
26
-    /**
27
-     * Counts the records to migrate; the public version may cache it
28
-     * @return int
29
-     */
30
-    protected function _count_records_to_migrate()
31
-    {
32
-        return 1;
33
-    }
26
+	/**
27
+	 * Counts the records to migrate; the public version may cache it
28
+	 * @return int
29
+	 */
30
+	protected function _count_records_to_migrate()
31
+	{
32
+		return 1;
33
+	}
34 34
 
35
-    /**
36
-     * IMPORTANT: if an error is encountered, or everything is finished, this stage should update its status property accordingly.
37
-     * Note: it should not alter the count of items migrated. That is done in the public function that calls this.
38
-     * IMPORTANT: The count of items migrated should ONLY be less than $num_items_to_migrate when it's the last migration step, otherwise it
39
-     * should always return $num_items_to_migrate. (Eg, if we're migrating attendees rows from the database, and $num_items_to_migrate is set to 50,
40
-     * then we SHOULD actually migrate 50 rows,but at very least we MUST report/return 50 items migrated)
41
-     * @param int $num_items_to_migrate
42
-     * @return int number of items ACTUALLY migrated
43
-     */
44
-    protected function _migration_step($num_items_to_migrate = 50)
45
-    {
46
-        global $wpdb;
47
-        $wpdb->delete(
48
-            $wpdb->prefix . 'esp_answer',
49
-            array( 'REG_ID' => 0 ),
50
-            array( '%d' )
51
-        );
52
-        $this->set_completed();
53
-        return 1;
54
-    }
35
+	/**
36
+	 * IMPORTANT: if an error is encountered, or everything is finished, this stage should update its status property accordingly.
37
+	 * Note: it should not alter the count of items migrated. That is done in the public function that calls this.
38
+	 * IMPORTANT: The count of items migrated should ONLY be less than $num_items_to_migrate when it's the last migration step, otherwise it
39
+	 * should always return $num_items_to_migrate. (Eg, if we're migrating attendees rows from the database, and $num_items_to_migrate is set to 50,
40
+	 * then we SHOULD actually migrate 50 rows,but at very least we MUST report/return 50 items migrated)
41
+	 * @param int $num_items_to_migrate
42
+	 * @return int number of items ACTUALLY migrated
43
+	 */
44
+	protected function _migration_step($num_items_to_migrate = 50)
45
+	{
46
+		global $wpdb;
47
+		$wpdb->delete(
48
+			$wpdb->prefix . 'esp_answer',
49
+			array( 'REG_ID' => 0 ),
50
+			array( '%d' )
51
+		);
52
+		$this->set_completed();
53
+		return 1;
54
+	}
55 55
 }
Please login to merge, or discard this patch.
core/data_migration_scripts/EE_Data_Migration_Script_Stage.core.php 1 patch
Indentation   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -37,103 +37,103 @@
 block discarded – undo
37 37
  */
38 38
 abstract class EE_Data_Migration_Script_Stage extends EE_Data_Migration_Class_Base
39 39
 {
40
-    /**
41
-     * The migration script this is a stage of
42
-     *
43
-     * @var EE_Data_Migration_Script_Base
44
-     */
45
-    protected $_migration_script;
40
+	/**
41
+	 * The migration script this is a stage of
42
+	 *
43
+	 * @var EE_Data_Migration_Script_Base
44
+	 */
45
+	protected $_migration_script;
46 46
 
47
-    /**
48
-     * This should eb called to essentially 'finalize' construction of the stage.
49
-     * This isn't done on the main constructor in order to avoid repetitive code. Instead, this is
50
-     * called by EE_Data_Migration_Script_Base's __construct() method so children don't have to
51
-     *
52
-     * @param EE_Data_Migration_Script_Base $migration_script
53
-     */
54
-    public function _construct_finalize($migration_script)
55
-    {
56
-        $this->_migration_script = $migration_script;
57
-    }
47
+	/**
48
+	 * This should eb called to essentially 'finalize' construction of the stage.
49
+	 * This isn't done on the main constructor in order to avoid repetitive code. Instead, this is
50
+	 * called by EE_Data_Migration_Script_Base's __construct() method so children don't have to
51
+	 *
52
+	 * @param EE_Data_Migration_Script_Base $migration_script
53
+	 */
54
+	public function _construct_finalize($migration_script)
55
+	{
56
+		$this->_migration_script = $migration_script;
57
+	}
58 58
 
59
-    /**
60
-     * Migrates X old records to the new format. If a fatal error is encountered it is NOT caught here,
61
-     * but is propagated upwards for catching. So basically, the _migration_step() function implemented by children
62
-     * needs to catch exceptions and decide what's a fatal error and what isn't.
63
-     *
64
-     * @param int $num_items_to_migrate
65
-     * @return int
66
-     */
67
-    public function migration_step($num_items_to_migrate = 50)
68
-    {
69
-        // before we run the migration step, we want ot take note of warnings that get outputted
70
-        ob_start();
71
-        $items_migrated = $this->_migration_step($num_items_to_migrate);
72
-        $output = ob_get_contents();
73
-        ob_end_clean();
74
-        if ($output) {
75
-            $this->add_error($output);
76
-        }
77
-        $this->_records_migrated += $items_migrated;
78
-        return $items_migrated;
79
-    }
59
+	/**
60
+	 * Migrates X old records to the new format. If a fatal error is encountered it is NOT caught here,
61
+	 * but is propagated upwards for catching. So basically, the _migration_step() function implemented by children
62
+	 * needs to catch exceptions and decide what's a fatal error and what isn't.
63
+	 *
64
+	 * @param int $num_items_to_migrate
65
+	 * @return int
66
+	 */
67
+	public function migration_step($num_items_to_migrate = 50)
68
+	{
69
+		// before we run the migration step, we want ot take note of warnings that get outputted
70
+		ob_start();
71
+		$items_migrated = $this->_migration_step($num_items_to_migrate);
72
+		$output = ob_get_contents();
73
+		ob_end_clean();
74
+		if ($output) {
75
+			$this->add_error($output);
76
+		}
77
+		$this->_records_migrated += $items_migrated;
78
+		return $items_migrated;
79
+	}
80 80
 
81 81
 
82
-    /**
83
-     * IMPORTANT: if an error is encountered, or everything is finished, this stage should update its status property
84
-     * accordingly. Note: it should not alter the count of items migrated. That is done in the public function that
85
-     * calls this. IMPORTANT: The count of items migrated should ONLY be less than $num_items_to_migrate when it's the
86
-     * last migration step, otherwise it should always return $num_items_to_migrate. (Eg, if we're migrating attendees
87
-     * rows from the database, and $num_items_to_migrate is set to 50, then we SHOULD actually migrate 50 rows,but at
88
-     * very least we MUST report/return 50 items migrated)
89
-     *
90
-     * @param int $num_items_to_migrate
91
-     * @return int number of items ACTUALLY migrated
92
-     */
93
-    abstract protected function _migration_step($num_items_to_migrate = 50);
82
+	/**
83
+	 * IMPORTANT: if an error is encountered, or everything is finished, this stage should update its status property
84
+	 * accordingly. Note: it should not alter the count of items migrated. That is done in the public function that
85
+	 * calls this. IMPORTANT: The count of items migrated should ONLY be less than $num_items_to_migrate when it's the
86
+	 * last migration step, otherwise it should always return $num_items_to_migrate. (Eg, if we're migrating attendees
87
+	 * rows from the database, and $num_items_to_migrate is set to 50, then we SHOULD actually migrate 50 rows,but at
88
+	 * very least we MUST report/return 50 items migrated)
89
+	 *
90
+	 * @param int $num_items_to_migrate
91
+	 * @return int number of items ACTUALLY migrated
92
+	 */
93
+	abstract protected function _migration_step($num_items_to_migrate = 50);
94 94
 
95
-    /**
96
-     * Counts the records that have been migrated so far
97
-     *
98
-     * @return int
99
-     */
100
-    public function count_records_migrated()
101
-    {
102
-        return $this->_records_migrated;
103
-    }
95
+	/**
96
+	 * Counts the records that have been migrated so far
97
+	 *
98
+	 * @return int
99
+	 */
100
+	public function count_records_migrated()
101
+	{
102
+		return $this->_records_migrated;
103
+	}
104 104
 
105
-    /**
106
-     * returns an array of strings describing errors
107
-     *
108
-     * @return array
109
-     */
110
-    public function get_errors()
111
-    {
112
-        return $this->_errors;
113
-    }
105
+	/**
106
+	 * returns an array of strings describing errors
107
+	 *
108
+	 * @return array
109
+	 */
110
+	public function get_errors()
111
+	{
112
+		return $this->_errors;
113
+	}
114 114
 
115 115
 
116
-    /**
117
-     * Sets all of the properties of this script stage to match what's in the array, which is assumed
118
-     * to have been made from the properties_as_array() function.
119
-     *
120
-     * @param array $array_of_properties like what's produced from properties_as_array() method
121
-     */
122
-    public function instantiate_from_array_of_properties($array_of_properties)
123
-    {
124
-        unset($array_of_properties['class']);
125
-        foreach ($array_of_properties as $property_name => $property_value) {
126
-            $this->{$property_name} = $property_value;
127
-        }
128
-    }
116
+	/**
117
+	 * Sets all of the properties of this script stage to match what's in the array, which is assumed
118
+	 * to have been made from the properties_as_array() function.
119
+	 *
120
+	 * @param array $array_of_properties like what's produced from properties_as_array() method
121
+	 */
122
+	public function instantiate_from_array_of_properties($array_of_properties)
123
+	{
124
+		unset($array_of_properties['class']);
125
+		foreach ($array_of_properties as $property_name => $property_value) {
126
+			$this->{$property_name} = $property_value;
127
+		}
128
+	}
129 129
 
130
-    /**
131
-     * Gets the script this is a stage of
132
-     *
133
-     * @return EE_Data_Migration_Script_Base
134
-     */
135
-    protected function get_migration_script()
136
-    {
137
-        return $this->_migration_script;
138
-    }
130
+	/**
131
+	 * Gets the script this is a stage of
132
+	 *
133
+	 * @return EE_Data_Migration_Script_Base
134
+	 */
135
+	protected function get_migration_script()
136
+	{
137
+		return $this->_migration_script;
138
+	}
139 139
 }
Please login to merge, or discard this patch.
core/admin/EE_Help_Tour.core.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -256,8 +256,8 @@  discard block
 block discarded – undo
256 256
     public function get_stops()
257 257
     {
258 258
         foreach ($this->_stops as $ind => $stop) {
259
-            if (! isset($stop['button_text'])) {
260
-                $this->_stops[ $ind ]['button_text'] = $this->_options['button_text'];
259
+            if ( ! isset($stop['button_text'])) {
260
+                $this->_stops[$ind]['button_text'] = $this->_options['button_text'];
261 261
             }
262 262
         }
263 263
         return $this->_stops;
@@ -277,6 +277,6 @@  discard block
 block discarded – undo
277 277
                 $this->_options['pauseAfter'][] = $ind;
278 278
             }
279 279
         }
280
-        return apply_filters('FHEE__' . get_class($this) . '__get_options', $this->_options, $this);
280
+        return apply_filters('FHEE__'.get_class($this).'__get_options', $this->_options, $this);
281 281
     }
282 282
 }
Please login to merge, or discard this patch.
Indentation   +267 added lines, -267 removed lines patch added patch discarded remove patch
@@ -17,271 +17,271 @@
 block discarded – undo
17 17
  */
18 18
 abstract class EE_Help_Tour extends EE_Base
19 19
 {
20
-    /**
21
-     * This is the label for the tour. It is used when regenerating restart buttons for the tour. Set this in the
22
-     * constructor of the child class.
23
-     *
24
-     * @access protected
25
-     * @var string
26
-     */
27
-    protected $_label = '';
28
-
29
-
30
-    /**
31
-     * This is the slug for the tour.  It should be unique from all tours and is used for starting a tour and setting
32
-     * cookies for the tour. Set this in the constructor of the child class.
33
-     *
34
-     * @access protected
35
-     * @var string
36
-     */
37
-    protected $_slug = '';
38
-
39
-
40
-    /**
41
-     * This will contain the formatted array for the stops that gets used by EE_Admin_Page->_add_help_tour() for
42
-     * setting up a tour on a given page. format for array is: array(
43
-     *        0 => array(
44
-     *            'id' => 'id_element', //if attached to an css id for an element then use this param. id's will take
45
-     *            precendence even if you also set class.
46
-     *            'class' => 'class_element', //if attached to a css class for an element anchoring the stop then use
47
-     *            this param. The first element for that class is the anchor. If the class or the id are empty then the
48
-     *            stop will be a modal on the page anchored to the main body.
49
-     *            'custom_class' => 'some_custom_class', //optional custom class to add for this stop.
50
-     *            'button_text' => 'custom text for button', //optional
51
-     *            'content' => 'The content for the stop', //required
52
-     *            'pause_after' => false, //indicate if you want the tour to pause after this stop and it will get
53
-     *            added to the pauseAfter global option array setup for the joyride instance. This is only applicable
54
-     *            when this tour has been set to run on timer.
55
-     *            'options' => array(
56
-     *                //override any of the global options set via the help_tour "option_callback" for the joyride
57
-     *                instance on this specific stop.
58
-     *                )
59
-     *            )
60
-     *        );
61
-     *
62
-     * @access protected
63
-     * @var array
64
-     */
65
-    protected $_stops = array();
66
-
67
-
68
-    /**
69
-     * This contains any stop specific options for the tour.
70
-     * defaults are set but child classes can override.
71
-     *
72
-     * @access protected
73
-     * @var array
74
-     */
75
-    protected $_options = array();
76
-
77
-
78
-    /**
79
-     * holds anything found in the request object (however we override any _gets with _post data).
80
-     *
81
-     * @access protected
82
-     * @var array
83
-     */
84
-    protected $_req_data = array();
85
-
86
-
87
-    /**
88
-     * a flag that is set on init for whether this help_tour is happening on a caf install or not.
89
-     *
90
-     * @var boolean
91
-     */
92
-    protected $_is_caf = false;
93
-
94
-
95
-    /**
96
-     * _constructor
97
-     * initialized the tour object and sets up important properties required to setup the tour.
98
-     *
99
-     * @access public
100
-     * @param boolean $caf used to indicate if this tour is happening on caf install or not.
101
-     * @return void
102
-     */
103
-    public function __construct($caf = false)
104
-    {
105
-        $this->_is_caf = $caf;
106
-        /** @var RequestInterface $request */
107
-        $request = LoaderFactory::getLoader()->getShared(RequestInterface::class);
108
-        $this->_req_data = $request->requestParams();
109
-        $this->_set_tour_properties();
110
-        $this->_set_tour_stops();
111
-        $this->_set_tour_options();
112
-
113
-        // make sure the last tour stop has "end tour" for its button
114
-        $end = array_pop($this->_stops);
115
-        $end['button_text'] = esc_html__('End Tour', 'event_espresso');
116
-        // add back to stops
117
-        $this->_stops[] = $end;
118
-    }
119
-
120
-
121
-    /**
122
-     * required method that has the sole purpose of setting up the tour $_label and $_slug properties
123
-     *
124
-     * @abstract
125
-     * @access protected
126
-     * @return void
127
-     */
128
-    abstract protected function _set_tour_properties();
129
-
130
-
131
-    /**
132
-     * required method that's sole purpose is to setup the $_stops property
133
-     *
134
-     * @abstract
135
-     * @access protected
136
-     * @return void
137
-     */
138
-    abstract protected function _set_tour_stops();
139
-
140
-
141
-    /**
142
-     * The method can optionally be overridden by child classes to set the _options array if there are any default
143
-     * options the child wishes to override for a this tour. See property definition for more info
144
-     *
145
-     * @access protected
146
-     * @return void
147
-     */
148
-    protected function _set_tour_options($options = array())
149
-    {
150
-        $defaults = array(
151
-            'tipLocation'           => 'bottom',
152
-            // 'top', 'bottom', 'right', 'left' in relation to parent
153
-            'nubPosition'           => 'auto',
154
-            // override on a per tooltip bases. can be "auto", "right", "top", "bottom", "left"
155
-            'tipAdjustmentY'        => 0,
156
-            // allow for adjustment of tip
157
-            'tipAdjustmentX'        => 0,
158
-            // allow for adjustment of tip
159
-            'scroll'                => true,
160
-            // whether to scrollTo the next step or not
161
-            'scrollSpeed'           => 300,
162
-            // Page scrolling speed in ms
163
-            'timer'                 => 0,
164
-            // 0 = off, all other numbers = time(ms)
165
-            'autoStart'             => true,
166
-            // true or false - false tour starts when restart called
167
-            'startTimerOnClick'     => true,
168
-            // true/false to start timer on first click
169
-            'nextButton'            => true,
170
-            // true/false for next button visibility
171
-            'button_text'           => esc_html__('Next', 'event_espresso'),
172
-            'tipAnimation'          => 'fade',
173
-            // 'pop' or 'fade' in each tip
174
-            'pauseAfter'            => array(),
175
-            // array of indexes where to pause the tour after
176
-            'tipAnimationFadeSpeed' => 300,
177
-            // if 'fade'- speed in ms of transition
178
-            'cookieMonster'         => true,
179
-            // true/false for whether cookies are used
180
-            'cookieName'            => $this->get_slug(),
181
-            // choose your own cookie name (setup will add the prefix for the specific page joyride)
182
-            // set to false or yoursite.com
183
-            'cookieDomain'          => false,
184
-            // Where the tip be attached if not inline
185
-            // 'tipContainer' => 'body',
186
-            'modal'                 => false,
187
-            // Whether to cover page with modal during the tour
188
-            'expose'                => false,
189
-            // Whether to expose the elements at each step in the tour (requires modal:true),
190
-            'postExposeCallback'    => 'EEHelpTour.postExposeCallback',
191
-            // A method to call after an element has been exposed
192
-            'preRideCallback'       => 'EEHelpTour_preRideCallback',
193
-            // A method to call before the tour starts (passed index, tip, and cloned exposed element)
194
-            'postRideCallback'      => 'EEHelpTour_postRideCallback',
195
-            // a method to call once the tour closes.  This will correspond to the name of a js method that will have to be defined in loaded js.
196
-            'preStepCallback'       => 'EEHelpTour_preStepCallback',
197
-            // A method to call before each step
198
-            'postStepCallback'      => 'EEHelpTour_postStepCallback',
199
-            // A method to call after each step (remember this will correspond with a js method that you will have to define in a js file BEFORE ee-help-tour.js loads, if the default methods do not exist, then ee-help-tour.js just substitues empty functions $.noop)/**/
200
-        );
201
-
202
-        $options = ! empty($options) && is_array($options) ? array_merge($defaults, $options) : $defaults;
203
-        $this->_options = $options;
204
-    }
205
-
206
-
207
-    /**
208
-     * getter functions to return all the properties for the tour.
209
-     */
210
-
211
-
212
-    /**
213
-     * get_slug
214
-     *
215
-     * @return string slug for the tour
216
-     */
217
-    public function get_slug()
218
-    {
219
-        if (empty($this->_slug)) {
220
-            throw new EE_Error(
221
-                sprintf(
222
-                    esc_html__(
223
-                        'There is no slug set for the help tour class (%s). Make sure that the $_slug property is set in the class constructor',
224
-                        'event_espresso'
225
-                    ),
226
-                    get_class($this)
227
-                )
228
-            );
229
-        }
230
-        return $this->_slug;
231
-    }
232
-
233
-
234
-    /**
235
-     * get_label
236
-     *
237
-     * @return string
238
-     */
239
-    public function get_label()
240
-    {
241
-        if (empty($this->_label)) {
242
-            throw new EE_Error(
243
-                sprintf(
244
-                    esc_html__(
245
-                        'There is no label set for the help tour class (%s). Make sure that the $_label property is set in the class constructor',
246
-                        'event_espresso'
247
-                    ),
248
-                    get_class($this)
249
-                )
250
-            );
251
-        }
252
-        return $this->_label;
253
-    }
254
-
255
-
256
-    /**
257
-     * get_stops
258
-     *
259
-     * @return array
260
-     */
261
-    public function get_stops()
262
-    {
263
-        foreach ($this->_stops as $ind => $stop) {
264
-            if (! isset($stop['button_text'])) {
265
-                $this->_stops[ $ind ]['button_text'] = $this->_options['button_text'];
266
-            }
267
-        }
268
-        return $this->_stops;
269
-    }
270
-
271
-
272
-    /**
273
-     * get options
274
-     *
275
-     * @return array
276
-     */
277
-    public function get_options()
278
-    {
279
-        // let's make sure there are not pauses set
280
-        foreach ($this->_stops as $ind => $stop) {
281
-            if (isset($stop['pause_after']) && $stop['pause_after']) {
282
-                $this->_options['pauseAfter'][] = $ind;
283
-            }
284
-        }
285
-        return apply_filters('FHEE__' . get_class($this) . '__get_options', $this->_options, $this);
286
-    }
20
+	/**
21
+	 * This is the label for the tour. It is used when regenerating restart buttons for the tour. Set this in the
22
+	 * constructor of the child class.
23
+	 *
24
+	 * @access protected
25
+	 * @var string
26
+	 */
27
+	protected $_label = '';
28
+
29
+
30
+	/**
31
+	 * This is the slug for the tour.  It should be unique from all tours and is used for starting a tour and setting
32
+	 * cookies for the tour. Set this in the constructor of the child class.
33
+	 *
34
+	 * @access protected
35
+	 * @var string
36
+	 */
37
+	protected $_slug = '';
38
+
39
+
40
+	/**
41
+	 * This will contain the formatted array for the stops that gets used by EE_Admin_Page->_add_help_tour() for
42
+	 * setting up a tour on a given page. format for array is: array(
43
+	 *        0 => array(
44
+	 *            'id' => 'id_element', //if attached to an css id for an element then use this param. id's will take
45
+	 *            precendence even if you also set class.
46
+	 *            'class' => 'class_element', //if attached to a css class for an element anchoring the stop then use
47
+	 *            this param. The first element for that class is the anchor. If the class or the id are empty then the
48
+	 *            stop will be a modal on the page anchored to the main body.
49
+	 *            'custom_class' => 'some_custom_class', //optional custom class to add for this stop.
50
+	 *            'button_text' => 'custom text for button', //optional
51
+	 *            'content' => 'The content for the stop', //required
52
+	 *            'pause_after' => false, //indicate if you want the tour to pause after this stop and it will get
53
+	 *            added to the pauseAfter global option array setup for the joyride instance. This is only applicable
54
+	 *            when this tour has been set to run on timer.
55
+	 *            'options' => array(
56
+	 *                //override any of the global options set via the help_tour "option_callback" for the joyride
57
+	 *                instance on this specific stop.
58
+	 *                )
59
+	 *            )
60
+	 *        );
61
+	 *
62
+	 * @access protected
63
+	 * @var array
64
+	 */
65
+	protected $_stops = array();
66
+
67
+
68
+	/**
69
+	 * This contains any stop specific options for the tour.
70
+	 * defaults are set but child classes can override.
71
+	 *
72
+	 * @access protected
73
+	 * @var array
74
+	 */
75
+	protected $_options = array();
76
+
77
+
78
+	/**
79
+	 * holds anything found in the request object (however we override any _gets with _post data).
80
+	 *
81
+	 * @access protected
82
+	 * @var array
83
+	 */
84
+	protected $_req_data = array();
85
+
86
+
87
+	/**
88
+	 * a flag that is set on init for whether this help_tour is happening on a caf install or not.
89
+	 *
90
+	 * @var boolean
91
+	 */
92
+	protected $_is_caf = false;
93
+
94
+
95
+	/**
96
+	 * _constructor
97
+	 * initialized the tour object and sets up important properties required to setup the tour.
98
+	 *
99
+	 * @access public
100
+	 * @param boolean $caf used to indicate if this tour is happening on caf install or not.
101
+	 * @return void
102
+	 */
103
+	public function __construct($caf = false)
104
+	{
105
+		$this->_is_caf = $caf;
106
+		/** @var RequestInterface $request */
107
+		$request = LoaderFactory::getLoader()->getShared(RequestInterface::class);
108
+		$this->_req_data = $request->requestParams();
109
+		$this->_set_tour_properties();
110
+		$this->_set_tour_stops();
111
+		$this->_set_tour_options();
112
+
113
+		// make sure the last tour stop has "end tour" for its button
114
+		$end = array_pop($this->_stops);
115
+		$end['button_text'] = esc_html__('End Tour', 'event_espresso');
116
+		// add back to stops
117
+		$this->_stops[] = $end;
118
+	}
119
+
120
+
121
+	/**
122
+	 * required method that has the sole purpose of setting up the tour $_label and $_slug properties
123
+	 *
124
+	 * @abstract
125
+	 * @access protected
126
+	 * @return void
127
+	 */
128
+	abstract protected function _set_tour_properties();
129
+
130
+
131
+	/**
132
+	 * required method that's sole purpose is to setup the $_stops property
133
+	 *
134
+	 * @abstract
135
+	 * @access protected
136
+	 * @return void
137
+	 */
138
+	abstract protected function _set_tour_stops();
139
+
140
+
141
+	/**
142
+	 * The method can optionally be overridden by child classes to set the _options array if there are any default
143
+	 * options the child wishes to override for a this tour. See property definition for more info
144
+	 *
145
+	 * @access protected
146
+	 * @return void
147
+	 */
148
+	protected function _set_tour_options($options = array())
149
+	{
150
+		$defaults = array(
151
+			'tipLocation'           => 'bottom',
152
+			// 'top', 'bottom', 'right', 'left' in relation to parent
153
+			'nubPosition'           => 'auto',
154
+			// override on a per tooltip bases. can be "auto", "right", "top", "bottom", "left"
155
+			'tipAdjustmentY'        => 0,
156
+			// allow for adjustment of tip
157
+			'tipAdjustmentX'        => 0,
158
+			// allow for adjustment of tip
159
+			'scroll'                => true,
160
+			// whether to scrollTo the next step or not
161
+			'scrollSpeed'           => 300,
162
+			// Page scrolling speed in ms
163
+			'timer'                 => 0,
164
+			// 0 = off, all other numbers = time(ms)
165
+			'autoStart'             => true,
166
+			// true or false - false tour starts when restart called
167
+			'startTimerOnClick'     => true,
168
+			// true/false to start timer on first click
169
+			'nextButton'            => true,
170
+			// true/false for next button visibility
171
+			'button_text'           => esc_html__('Next', 'event_espresso'),
172
+			'tipAnimation'          => 'fade',
173
+			// 'pop' or 'fade' in each tip
174
+			'pauseAfter'            => array(),
175
+			// array of indexes where to pause the tour after
176
+			'tipAnimationFadeSpeed' => 300,
177
+			// if 'fade'- speed in ms of transition
178
+			'cookieMonster'         => true,
179
+			// true/false for whether cookies are used
180
+			'cookieName'            => $this->get_slug(),
181
+			// choose your own cookie name (setup will add the prefix for the specific page joyride)
182
+			// set to false or yoursite.com
183
+			'cookieDomain'          => false,
184
+			// Where the tip be attached if not inline
185
+			// 'tipContainer' => 'body',
186
+			'modal'                 => false,
187
+			// Whether to cover page with modal during the tour
188
+			'expose'                => false,
189
+			// Whether to expose the elements at each step in the tour (requires modal:true),
190
+			'postExposeCallback'    => 'EEHelpTour.postExposeCallback',
191
+			// A method to call after an element has been exposed
192
+			'preRideCallback'       => 'EEHelpTour_preRideCallback',
193
+			// A method to call before the tour starts (passed index, tip, and cloned exposed element)
194
+			'postRideCallback'      => 'EEHelpTour_postRideCallback',
195
+			// a method to call once the tour closes.  This will correspond to the name of a js method that will have to be defined in loaded js.
196
+			'preStepCallback'       => 'EEHelpTour_preStepCallback',
197
+			// A method to call before each step
198
+			'postStepCallback'      => 'EEHelpTour_postStepCallback',
199
+			// A method to call after each step (remember this will correspond with a js method that you will have to define in a js file BEFORE ee-help-tour.js loads, if the default methods do not exist, then ee-help-tour.js just substitues empty functions $.noop)/**/
200
+		);
201
+
202
+		$options = ! empty($options) && is_array($options) ? array_merge($defaults, $options) : $defaults;
203
+		$this->_options = $options;
204
+	}
205
+
206
+
207
+	/**
208
+	 * getter functions to return all the properties for the tour.
209
+	 */
210
+
211
+
212
+	/**
213
+	 * get_slug
214
+	 *
215
+	 * @return string slug for the tour
216
+	 */
217
+	public function get_slug()
218
+	{
219
+		if (empty($this->_slug)) {
220
+			throw new EE_Error(
221
+				sprintf(
222
+					esc_html__(
223
+						'There is no slug set for the help tour class (%s). Make sure that the $_slug property is set in the class constructor',
224
+						'event_espresso'
225
+					),
226
+					get_class($this)
227
+				)
228
+			);
229
+		}
230
+		return $this->_slug;
231
+	}
232
+
233
+
234
+	/**
235
+	 * get_label
236
+	 *
237
+	 * @return string
238
+	 */
239
+	public function get_label()
240
+	{
241
+		if (empty($this->_label)) {
242
+			throw new EE_Error(
243
+				sprintf(
244
+					esc_html__(
245
+						'There is no label set for the help tour class (%s). Make sure that the $_label property is set in the class constructor',
246
+						'event_espresso'
247
+					),
248
+					get_class($this)
249
+				)
250
+			);
251
+		}
252
+		return $this->_label;
253
+	}
254
+
255
+
256
+	/**
257
+	 * get_stops
258
+	 *
259
+	 * @return array
260
+	 */
261
+	public function get_stops()
262
+	{
263
+		foreach ($this->_stops as $ind => $stop) {
264
+			if (! isset($stop['button_text'])) {
265
+				$this->_stops[ $ind ]['button_text'] = $this->_options['button_text'];
266
+			}
267
+		}
268
+		return $this->_stops;
269
+	}
270
+
271
+
272
+	/**
273
+	 * get options
274
+	 *
275
+	 * @return array
276
+	 */
277
+	public function get_options()
278
+	{
279
+		// let's make sure there are not pauses set
280
+		foreach ($this->_stops as $ind => $stop) {
281
+			if (isset($stop['pause_after']) && $stop['pause_after']) {
282
+				$this->_options['pauseAfter'][] = $ind;
283
+			}
284
+		}
285
+		return apply_filters('FHEE__' . get_class($this) . '__get_options', $this->_options, $this);
286
+	}
287 287
 }
Please login to merge, or discard this patch.