Completed
Branch ENH/optimize-reset-reservation... (ea022f)
by
unknown
06:52 queued 04:53
created
4_3_0_stages/EE_DMS_4_3_0_question_option_order.dmsstage.php 2 patches
Indentation   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -7,39 +7,39 @@
 block discarded – undo
7 7
 
8 8
 class EE_DMS_4_3_0_question_option_order extends EE_Data_Migration_Script_Stage_Table
9 9
 {
10
-    public function __construct()
11
-    {
12
-        global $wpdb;
13
-        $this->_pretty_name = __("Question Options", "event_espresso");
14
-        $this->_old_table = $wpdb->prefix."esp_question_option";
15
-        parent::__construct();
16
-    }
17
-    protected function _migrate_old_row($old_row)
18
-    {
19
-        // foreach question_group_question entry with this QST_ID, we want to set its
20
-        // QSG_order equal to this question's QST_order
21
-        global $wpdb;
22
-        $updated = $wpdb->update(
23
-            $this->_old_table,
24
-            array('QSO_order'=>$old_row['QSO_ID']),
25
-            array('QSO_ID'=>$old_row['QSO_ID']),
26
-            array('%d',// QSO_order
27
-                    ),
28
-            array('%d',// QSO_ID
29
-                    )
30
-        );
31
-        if (false === $updated) {
32
-            $this->add_error(
33
-                sprintf(
34
-                    __(
35
-                        "Error in updating table %s setting QSO_order = %d where QSO_ID = %d",
36
-                        'event_espresso'
37
-                    ),
38
-                    $this->_old_table,
39
-                    $old_row['QSO_ID'],
40
-                    $old_row['QSO_ID']
41
-                )
42
-            );
43
-        }
44
-    }
10
+	public function __construct()
11
+	{
12
+		global $wpdb;
13
+		$this->_pretty_name = __("Question Options", "event_espresso");
14
+		$this->_old_table = $wpdb->prefix."esp_question_option";
15
+		parent::__construct();
16
+	}
17
+	protected function _migrate_old_row($old_row)
18
+	{
19
+		// foreach question_group_question entry with this QST_ID, we want to set its
20
+		// QSG_order equal to this question's QST_order
21
+		global $wpdb;
22
+		$updated = $wpdb->update(
23
+			$this->_old_table,
24
+			array('QSO_order'=>$old_row['QSO_ID']),
25
+			array('QSO_ID'=>$old_row['QSO_ID']),
26
+			array('%d',// QSO_order
27
+					),
28
+			array('%d',// QSO_ID
29
+					)
30
+		);
31
+		if (false === $updated) {
32
+			$this->add_error(
33
+				sprintf(
34
+					__(
35
+						"Error in updating table %s setting QSO_order = %d where QSO_ID = %d",
36
+						'event_espresso'
37
+					),
38
+					$this->_old_table,
39
+					$old_row['QSO_ID'],
40
+					$old_row['QSO_ID']
41
+				)
42
+			);
43
+		}
44
+	}
45 45
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -23,9 +23,9 @@
 block discarded – undo
23 23
             $this->_old_table,
24 24
             array('QSO_order'=>$old_row['QSO_ID']),
25 25
             array('QSO_ID'=>$old_row['QSO_ID']),
26
-            array('%d',// QSO_order
26
+            array('%d', // QSO_order
27 27
                     ),
28
-            array('%d',// QSO_ID
28
+            array('%d', // QSO_ID
29 29
                     )
30 30
         );
31 31
         if (false === $updated) {
Please login to merge, or discard this patch.
core/EE_Front_Controller.core.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -344,7 +344,7 @@  discard block
 block discarded – undo
344 344
         print(
345 345
         apply_filters(
346 346
             'FHEE__EE_Front_Controller__header_meta_tag',
347
-            '<meta name="generator" content="Event Espresso Version ' . EVENT_ESPRESSO_VERSION . "\" />\n"
347
+            '<meta name="generator" content="Event Espresso Version '.EVENT_ESPRESSO_VERSION."\" />\n"
348 348
         )
349 349
         );
350 350
 
@@ -360,7 +360,7 @@  discard block
 block discarded – undo
360 360
             print(
361 361
             apply_filters(
362 362
                 'FHEE__EE_Front_Controller__header_meta_tag__noindex_for_event_type',
363
-                '<meta name="robots" content="noindex,follow" />' . "\n"
363
+                '<meta name="robots" content="noindex,follow" />'."\n"
364 364
             )
365 365
             );
366 366
         }
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
     {
414 414
         static $shown_already = false;
415 415
         do_action('AHEE__EE_Front_Controller__display_errors__begin');
416
-        if (! $shown_already
416
+        if ( ! $shown_already
417 417
             && apply_filters('FHEE__EE_Front_Controller__display_errors', true)
418 418
             && is_main_query()
419 419
             && ! is_feed()
@@ -422,7 +422,7 @@  discard block
 block discarded – undo
422 422
         ) {
423 423
             echo EE_Error::get_notices();
424 424
             $shown_already = true;
425
-            EEH_Template::display_template(EE_TEMPLATES . 'espresso-ajax-notices.template.php');
425
+            EEH_Template::display_template(EE_TEMPLATES.'espresso-ajax-notices.template.php');
426 426
         }
427 427
         do_action('AHEE__EE_Front_Controller__display_errors__end');
428 428
     }
Please login to merge, or discard this patch.
Indentation   +463 added lines, -463 removed lines patch added patch discarded remove patch
@@ -26,467 +26,467 @@
 block discarded – undo
26 26
 final class EE_Front_Controller
27 27
 {
28 28
 
29
-    /**
30
-     * @var string $_template_path
31
-     */
32
-    private $_template_path;
33
-
34
-    /**
35
-     * @var string $_template
36
-     */
37
-    private $_template;
38
-
39
-    /**
40
-     * @type EE_Registry $Registry
41
-     */
42
-    protected $Registry;
43
-
44
-    /**
45
-     * @type EE_Request_Handler $Request_Handler
46
-     */
47
-    protected $Request_Handler;
48
-
49
-    /**
50
-     * @type EE_Module_Request_Router $Module_Request_Router
51
-     */
52
-    protected $Module_Request_Router;
53
-
54
-
55
-    /**
56
-     *    class constructor
57
-     *    should fire after shortcode, module, addon, or other plugin's default priority init phases have run
58
-     *
59
-     * @access    public
60
-     * @param \EE_Registry              $Registry
61
-     * @param \EE_Request_Handler       $Request_Handler
62
-     * @param \EE_Module_Request_Router $Module_Request_Router
63
-     */
64
-    public function __construct(
65
-        EE_Registry $Registry,
66
-        EE_Request_Handler $Request_Handler,
67
-        EE_Module_Request_Router $Module_Request_Router
68
-    ) {
69
-        $this->Registry = $Registry;
70
-        $this->Request_Handler = $Request_Handler;
71
-        $this->Module_Request_Router = $Module_Request_Router;
72
-        // load other resources and begin to actually run shortcodes and modules
73
-        add_action('wp_loaded', array($this, 'wp_loaded'), 5);
74
-        // analyse the incoming WP request
75
-        add_action('parse_request', array($this, 'get_request'), 1, 1);
76
-        // process request with module factory
77
-        add_action('pre_get_posts', array($this, 'pre_get_posts'), 10, 1);
78
-        // before headers sent
79
-        add_action('wp', array($this, 'wp'), 5);
80
-        // primarily used to process any content shortcodes
81
-        add_action('template_redirect', array($this, 'templateRedirect'), 999);
82
-        // header
83
-        add_action('wp_head', array($this, 'header_meta_tag'), 5);
84
-        add_action('wp_print_scripts', array($this, 'wp_print_scripts'), 10);
85
-        add_filter('template_include', array($this, 'template_include'), 1);
86
-        // display errors
87
-        add_action('loop_start', array($this, 'display_errors'), 2);
88
-        // the content
89
-        // add_filter( 'the_content', array( $this, 'the_content' ), 5, 1 );
90
-        // exclude our private cpt comments
91
-        add_filter('comments_clauses', array($this, 'filter_wp_comments'), 10, 1);
92
-        // make sure any ajax requests will respect the url schema when requests are made against admin-ajax.php (http:// or https://)
93
-        add_filter('admin_url', array($this, 'maybe_force_admin_ajax_ssl'), 200, 1);
94
-        // action hook EE
95
-        do_action('AHEE__EE_Front_Controller__construct__done', $this);
96
-    }
97
-
98
-
99
-    /**
100
-     * @return EE_Request_Handler
101
-     */
102
-    public function Request_Handler()
103
-    {
104
-        return $this->Request_Handler;
105
-    }
106
-
107
-
108
-    /**
109
-     * @return EE_Module_Request_Router
110
-     */
111
-    public function Module_Request_Router()
112
-    {
113
-        return $this->Module_Request_Router;
114
-    }
115
-
116
-
117
-    /**
118
-     * @return LegacyShortcodesManager
119
-     */
120
-    public function getLegacyShortcodesManager()
121
-    {
122
-        return EE_Config::getLegacyShortcodesManager();
123
-    }
124
-
125
-
126
-
127
-
128
-
129
-    /***********************************************        INIT ACTION HOOK         ***********************************************/
130
-    /**
131
-     * filter_wp_comments
132
-     * This simply makes sure that any "private" EE CPTs do not have their comments show up in any wp comment
133
-     * widgets/queries done on frontend
134
-     *
135
-     * @param  array $clauses array of comment clauses setup by WP_Comment_Query
136
-     * @return array array of comment clauses with modifications.
137
-     * @throws InvalidArgumentException
138
-     * @throws InvalidDataTypeException
139
-     * @throws InvalidInterfaceException
140
-     */
141
-    public function filter_wp_comments($clauses)
142
-    {
143
-        global $wpdb;
144
-        if (strpos($clauses['join'], $wpdb->posts) !== false) {
145
-            /** @var EventEspresso\core\domain\entities\custom_post_types\CustomPostTypeDefinitions $custom_post_types */
146
-            $custom_post_types = LoaderFactory::getLoader()->getShared(
147
-                'EventEspresso\core\domain\entities\custom_post_types\CustomPostTypeDefinitions'
148
-            );
149
-            $cpts = $custom_post_types->getPrivateCustomPostTypes();
150
-            foreach ($cpts as $cpt => $details) {
151
-                $clauses['where'] .= $wpdb->prepare(" AND $wpdb->posts.post_type != %s", $cpt);
152
-            }
153
-        }
154
-        return $clauses;
155
-    }
156
-
157
-
158
-    /**
159
-     * this just makes sure that if the site is using ssl that we force that for any admin ajax calls from frontend
160
-     *
161
-     * @param  string $url incoming url
162
-     * @return string         final assembled url
163
-     */
164
-    public function maybe_force_admin_ajax_ssl($url)
165
-    {
166
-        if (is_ssl() && preg_match('/admin-ajax.php/', $url)) {
167
-            $url = str_replace('http://', 'https://', $url);
168
-        }
169
-        return $url;
170
-    }
171
-
172
-
173
-
174
-
175
-
176
-
177
-    /***********************************************        WP_LOADED ACTION HOOK         ***********************************************/
178
-
179
-
180
-    /**
181
-     *    wp_loaded - should fire after shortcode, module, addon, or other plugin's have been registered and their
182
-     *    default priority init phases have run
183
-     *
184
-     * @access    public
185
-     * @return    void
186
-     */
187
-    public function wp_loaded()
188
-    {
189
-    }
190
-
191
-
192
-
193
-
194
-
195
-    /***********************************************        PARSE_REQUEST HOOK         ***********************************************/
196
-    /**
197
-     *    _get_request
198
-     *
199
-     * @access public
200
-     * @param WP $WP
201
-     * @return void
202
-     */
203
-    public function get_request(WP $WP)
204
-    {
205
-        do_action('AHEE__EE_Front_Controller__get_request__start');
206
-        $this->Request_Handler->parse_request($WP);
207
-        do_action('AHEE__EE_Front_Controller__get_request__complete');
208
-    }
209
-
210
-
211
-    /**
212
-     *    pre_get_posts - basically a module factory for instantiating modules and selecting the final view template
213
-     *
214
-     * @access    public
215
-     * @param   WP_Query $WP_Query
216
-     * @return    void
217
-     */
218
-    public function pre_get_posts($WP_Query)
219
-    {
220
-        // only load Module_Request_Router if this is the main query
221
-        if ($this->Module_Request_Router instanceof EE_Module_Request_Router
222
-            && $WP_Query->is_main_query()
223
-        ) {
224
-            // cycle thru module routes
225
-            while ($route = $this->Module_Request_Router->get_route($WP_Query)) {
226
-                // determine module and method for route
227
-                $module = $this->Module_Request_Router->resolve_route($route[0], $route[1]);
228
-                if ($module instanceof EED_Module) {
229
-                    // get registered view for route
230
-                    $this->_template_path = $this->Module_Request_Router->get_view($route);
231
-                    // grab module name
232
-                    $module_name = $module->module_name();
233
-                    // map the module to the module objects
234
-                    $this->Registry->modules->{$module_name} = $module;
235
-                }
236
-            }
237
-        }
238
-    }
239
-
240
-
241
-
242
-
243
-
244
-    /***********************************************        WP HOOK         ***********************************************/
245
-
246
-
247
-    /**
248
-     *    wp - basically last chance to do stuff before headers sent
249
-     *
250
-     * @access    public
251
-     * @return    void
252
-     */
253
-    public function wp()
254
-    {
255
-    }
256
-
257
-
258
-
259
-    /***********************     GET_HEADER && WP_HEAD HOOK     ***********************/
260
-
261
-
262
-    /**
263
-     * callback for the "template_redirect" hook point
264
-     * checks sidebars for EE widgets
265
-     * loads resources and assets accordingly
266
-     *
267
-     * @return void
268
-     */
269
-    public function templateRedirect()
270
-    {
271
-        global $wp_query;
272
-        if (empty($wp_query->posts)) {
273
-            return;
274
-        }
275
-        // if we already know this is an espresso page, then load assets
276
-        $load_assets = $this->Request_Handler->is_espresso_page();
277
-        // if we are already loading assets then just move along, otherwise check for widgets
278
-        $load_assets = $load_assets ? $load_assets : $this->espresso_widgets_in_active_sidebars();
279
-        if ($load_assets) {
280
-            add_action('wp_enqueue_scripts', array($this, 'enqueueStyle'), 10);
281
-            add_action('wp_print_footer_scripts', array($this, 'enqueueScripts'), 10);
282
-        }
283
-    }
284
-
285
-
286
-    /**
287
-     * builds list of active widgets then scans active sidebars looking for them
288
-     * returns true is an EE widget is found in an active sidebar
289
-     * Please Note: this does NOT mean that the sidebar or widget
290
-     * is actually in use in a given template, as that is unfortunately not known
291
-     * until a sidebar and it's widgets are actually loaded
292
-     *
293
-     * @return boolean
294
-     */
295
-    private function espresso_widgets_in_active_sidebars()
296
-    {
297
-        $espresso_widgets = array();
298
-        foreach ($this->Registry->widgets as $widget_class => $widget) {
299
-            $id_base = EspressoWidget::getIdBase($widget_class);
300
-            if (is_active_widget(false, false, $id_base)) {
301
-                $espresso_widgets[] = $id_base;
302
-            }
303
-        }
304
-        $all_sidebar_widgets = wp_get_sidebars_widgets();
305
-        foreach ($all_sidebar_widgets as $sidebar_name => $sidebar_widgets) {
306
-            if (is_array($sidebar_widgets) && ! empty($sidebar_widgets)) {
307
-                foreach ($sidebar_widgets as $sidebar_widget) {
308
-                    foreach ($espresso_widgets as $espresso_widget) {
309
-                        if (strpos($sidebar_widget, $espresso_widget) !== false) {
310
-                            return true;
311
-                        }
312
-                    }
313
-                }
314
-            }
315
-        }
316
-        return false;
317
-    }
318
-
319
-
320
-    /**
321
-     *    header_meta_tag
322
-     *
323
-     * @access    public
324
-     * @return    void
325
-     */
326
-    public function header_meta_tag()
327
-    {
328
-        print(
329
-        apply_filters(
330
-            'FHEE__EE_Front_Controller__header_meta_tag',
331
-            '<meta name="generator" content="Event Espresso Version ' . EVENT_ESPRESSO_VERSION . "\" />\n"
332
-        )
333
-        );
334
-
335
-        // let's exclude all event type taxonomy term archive pages from search engine indexing
336
-        // @see https://events.codebasehq.com/projects/event-espresso/tickets/10249
337
-        // also exclude all critical pages from indexing
338
-        if ((
339
-                is_tax('espresso_event_type')
340
-                && get_option('blog_public') !== '0'
341
-            )
342
-            || is_page(EE_Registry::instance()->CFG->core->get_critical_pages_array())
343
-        ) {
344
-            print(
345
-            apply_filters(
346
-                'FHEE__EE_Front_Controller__header_meta_tag__noindex_for_event_type',
347
-                '<meta name="robots" content="noindex,follow" />' . "\n"
348
-            )
349
-            );
350
-        }
351
-    }
352
-
353
-
354
-    /**
355
-     * wp_print_scripts
356
-     *
357
-     * @return void
358
-     */
359
-    public function wp_print_scripts()
360
-    {
361
-        global $post;
362
-        if (isset($post->EE_Event)
363
-            && $post->EE_Event instanceof EE_Event
364
-            && get_post_type() === 'espresso_events'
365
-            && is_singular()
366
-        ) {
367
-            \EEH_Schema::add_json_linked_data_for_event($post->EE_Event);
368
-        }
369
-    }
370
-
371
-
372
-    public function enqueueStyle()
373
-    {
374
-        wp_enqueue_style('espresso_default');
375
-        wp_enqueue_style('espresso_custom_css');
376
-    }
377
-
378
-
379
-
380
-    /***********************************************        WP_FOOTER         ***********************************************/
381
-
382
-
383
-    public function enqueueScripts()
384
-    {
385
-        wp_enqueue_script('espresso_core');
386
-    }
387
-
388
-
389
-    /**
390
-     * display_errors
391
-     *
392
-     * @access public
393
-     * @return void
394
-     * @throws DomainException
395
-     */
396
-    public function display_errors()
397
-    {
398
-        static $shown_already = false;
399
-        do_action('AHEE__EE_Front_Controller__display_errors__begin');
400
-        if (! $shown_already
401
-            && apply_filters('FHEE__EE_Front_Controller__display_errors', true)
402
-            && is_main_query()
403
-            && ! is_feed()
404
-            && in_the_loop()
405
-            && did_action('wp_head')
406
-            && $this->Request_Handler->is_espresso_page()
407
-        ) {
408
-            echo EE_Error::get_notices();
409
-            $shown_already = true;
410
-            EEH_Template::display_template(EE_TEMPLATES . 'espresso-ajax-notices.template.php');
411
-        }
412
-        do_action('AHEE__EE_Front_Controller__display_errors__end');
413
-    }
414
-
415
-
416
-
417
-
418
-
419
-    /***********************************************        UTILITIES         ***********************************************/
420
-    /**
421
-     *    template_include
422
-     *
423
-     * @access    public
424
-     * @param   string $template_include_path
425
-     * @return    string
426
-     */
427
-    public function template_include($template_include_path = null)
428
-    {
429
-        if ($this->Request_Handler->is_espresso_page()) {
430
-            $this->_template_path = ! empty($this->_template_path)
431
-                ? basename($this->_template_path)
432
-                : basename(
433
-                    $template_include_path
434
-                );
435
-            $template_path = EEH_Template::locate_template($this->_template_path, array(), false);
436
-            $this->_template_path = ! empty($template_path) ? $template_path : $template_include_path;
437
-            $this->_template = basename($this->_template_path);
438
-            return $this->_template_path;
439
-        }
440
-        return $template_include_path;
441
-    }
442
-
443
-
444
-    /**
445
-     *    get_selected_template
446
-     *
447
-     * @access    public
448
-     * @param bool $with_path
449
-     * @return    string
450
-     */
451
-    public function get_selected_template($with_path = false)
452
-    {
453
-        return $with_path ? $this->_template_path : $this->_template;
454
-    }
455
-
456
-
457
-    /**
458
-     * @deprecated 4.9.26
459
-     * @param string $shortcode_class
460
-     * @param \WP    $wp
461
-     */
462
-    public function initialize_shortcode($shortcode_class = '', WP $wp = null)
463
-    {
464
-        \EE_Error::doing_it_wrong(
465
-            __METHOD__,
466
-            __(
467
-                'Usage is deprecated. Please use \EventEspresso\core\services\shortcodes\LegacyShortcodesManager::initializeShortcode() instead.',
468
-                'event_espresso'
469
-            ),
470
-            '4.9.26'
471
-        );
472
-        $this->getLegacyShortcodesManager()->initializeShortcode($shortcode_class, $wp);
473
-    }
474
-
475
-
476
-    /**
477
-     * @return void
478
-     * @deprecated 4.9.57.p
479
-     */
480
-    public function loadPersistentAdminNoticeManager()
481
-    {
482
-    }
483
-
484
-
485
-    /**
486
-     * @return void
487
-     * @deprecated 4.9.64.p
488
-     */
489
-    public function employ_CPT_Strategy()
490
-    {
491
-    }
29
+	/**
30
+	 * @var string $_template_path
31
+	 */
32
+	private $_template_path;
33
+
34
+	/**
35
+	 * @var string $_template
36
+	 */
37
+	private $_template;
38
+
39
+	/**
40
+	 * @type EE_Registry $Registry
41
+	 */
42
+	protected $Registry;
43
+
44
+	/**
45
+	 * @type EE_Request_Handler $Request_Handler
46
+	 */
47
+	protected $Request_Handler;
48
+
49
+	/**
50
+	 * @type EE_Module_Request_Router $Module_Request_Router
51
+	 */
52
+	protected $Module_Request_Router;
53
+
54
+
55
+	/**
56
+	 *    class constructor
57
+	 *    should fire after shortcode, module, addon, or other plugin's default priority init phases have run
58
+	 *
59
+	 * @access    public
60
+	 * @param \EE_Registry              $Registry
61
+	 * @param \EE_Request_Handler       $Request_Handler
62
+	 * @param \EE_Module_Request_Router $Module_Request_Router
63
+	 */
64
+	public function __construct(
65
+		EE_Registry $Registry,
66
+		EE_Request_Handler $Request_Handler,
67
+		EE_Module_Request_Router $Module_Request_Router
68
+	) {
69
+		$this->Registry = $Registry;
70
+		$this->Request_Handler = $Request_Handler;
71
+		$this->Module_Request_Router = $Module_Request_Router;
72
+		// load other resources and begin to actually run shortcodes and modules
73
+		add_action('wp_loaded', array($this, 'wp_loaded'), 5);
74
+		// analyse the incoming WP request
75
+		add_action('parse_request', array($this, 'get_request'), 1, 1);
76
+		// process request with module factory
77
+		add_action('pre_get_posts', array($this, 'pre_get_posts'), 10, 1);
78
+		// before headers sent
79
+		add_action('wp', array($this, 'wp'), 5);
80
+		// primarily used to process any content shortcodes
81
+		add_action('template_redirect', array($this, 'templateRedirect'), 999);
82
+		// header
83
+		add_action('wp_head', array($this, 'header_meta_tag'), 5);
84
+		add_action('wp_print_scripts', array($this, 'wp_print_scripts'), 10);
85
+		add_filter('template_include', array($this, 'template_include'), 1);
86
+		// display errors
87
+		add_action('loop_start', array($this, 'display_errors'), 2);
88
+		// the content
89
+		// add_filter( 'the_content', array( $this, 'the_content' ), 5, 1 );
90
+		// exclude our private cpt comments
91
+		add_filter('comments_clauses', array($this, 'filter_wp_comments'), 10, 1);
92
+		// make sure any ajax requests will respect the url schema when requests are made against admin-ajax.php (http:// or https://)
93
+		add_filter('admin_url', array($this, 'maybe_force_admin_ajax_ssl'), 200, 1);
94
+		// action hook EE
95
+		do_action('AHEE__EE_Front_Controller__construct__done', $this);
96
+	}
97
+
98
+
99
+	/**
100
+	 * @return EE_Request_Handler
101
+	 */
102
+	public function Request_Handler()
103
+	{
104
+		return $this->Request_Handler;
105
+	}
106
+
107
+
108
+	/**
109
+	 * @return EE_Module_Request_Router
110
+	 */
111
+	public function Module_Request_Router()
112
+	{
113
+		return $this->Module_Request_Router;
114
+	}
115
+
116
+
117
+	/**
118
+	 * @return LegacyShortcodesManager
119
+	 */
120
+	public function getLegacyShortcodesManager()
121
+	{
122
+		return EE_Config::getLegacyShortcodesManager();
123
+	}
124
+
125
+
126
+
127
+
128
+
129
+	/***********************************************        INIT ACTION HOOK         ***********************************************/
130
+	/**
131
+	 * filter_wp_comments
132
+	 * This simply makes sure that any "private" EE CPTs do not have their comments show up in any wp comment
133
+	 * widgets/queries done on frontend
134
+	 *
135
+	 * @param  array $clauses array of comment clauses setup by WP_Comment_Query
136
+	 * @return array array of comment clauses with modifications.
137
+	 * @throws InvalidArgumentException
138
+	 * @throws InvalidDataTypeException
139
+	 * @throws InvalidInterfaceException
140
+	 */
141
+	public function filter_wp_comments($clauses)
142
+	{
143
+		global $wpdb;
144
+		if (strpos($clauses['join'], $wpdb->posts) !== false) {
145
+			/** @var EventEspresso\core\domain\entities\custom_post_types\CustomPostTypeDefinitions $custom_post_types */
146
+			$custom_post_types = LoaderFactory::getLoader()->getShared(
147
+				'EventEspresso\core\domain\entities\custom_post_types\CustomPostTypeDefinitions'
148
+			);
149
+			$cpts = $custom_post_types->getPrivateCustomPostTypes();
150
+			foreach ($cpts as $cpt => $details) {
151
+				$clauses['where'] .= $wpdb->prepare(" AND $wpdb->posts.post_type != %s", $cpt);
152
+			}
153
+		}
154
+		return $clauses;
155
+	}
156
+
157
+
158
+	/**
159
+	 * this just makes sure that if the site is using ssl that we force that for any admin ajax calls from frontend
160
+	 *
161
+	 * @param  string $url incoming url
162
+	 * @return string         final assembled url
163
+	 */
164
+	public function maybe_force_admin_ajax_ssl($url)
165
+	{
166
+		if (is_ssl() && preg_match('/admin-ajax.php/', $url)) {
167
+			$url = str_replace('http://', 'https://', $url);
168
+		}
169
+		return $url;
170
+	}
171
+
172
+
173
+
174
+
175
+
176
+
177
+	/***********************************************        WP_LOADED ACTION HOOK         ***********************************************/
178
+
179
+
180
+	/**
181
+	 *    wp_loaded - should fire after shortcode, module, addon, or other plugin's have been registered and their
182
+	 *    default priority init phases have run
183
+	 *
184
+	 * @access    public
185
+	 * @return    void
186
+	 */
187
+	public function wp_loaded()
188
+	{
189
+	}
190
+
191
+
192
+
193
+
194
+
195
+	/***********************************************        PARSE_REQUEST HOOK         ***********************************************/
196
+	/**
197
+	 *    _get_request
198
+	 *
199
+	 * @access public
200
+	 * @param WP $WP
201
+	 * @return void
202
+	 */
203
+	public function get_request(WP $WP)
204
+	{
205
+		do_action('AHEE__EE_Front_Controller__get_request__start');
206
+		$this->Request_Handler->parse_request($WP);
207
+		do_action('AHEE__EE_Front_Controller__get_request__complete');
208
+	}
209
+
210
+
211
+	/**
212
+	 *    pre_get_posts - basically a module factory for instantiating modules and selecting the final view template
213
+	 *
214
+	 * @access    public
215
+	 * @param   WP_Query $WP_Query
216
+	 * @return    void
217
+	 */
218
+	public function pre_get_posts($WP_Query)
219
+	{
220
+		// only load Module_Request_Router if this is the main query
221
+		if ($this->Module_Request_Router instanceof EE_Module_Request_Router
222
+			&& $WP_Query->is_main_query()
223
+		) {
224
+			// cycle thru module routes
225
+			while ($route = $this->Module_Request_Router->get_route($WP_Query)) {
226
+				// determine module and method for route
227
+				$module = $this->Module_Request_Router->resolve_route($route[0], $route[1]);
228
+				if ($module instanceof EED_Module) {
229
+					// get registered view for route
230
+					$this->_template_path = $this->Module_Request_Router->get_view($route);
231
+					// grab module name
232
+					$module_name = $module->module_name();
233
+					// map the module to the module objects
234
+					$this->Registry->modules->{$module_name} = $module;
235
+				}
236
+			}
237
+		}
238
+	}
239
+
240
+
241
+
242
+
243
+
244
+	/***********************************************        WP HOOK         ***********************************************/
245
+
246
+
247
+	/**
248
+	 *    wp - basically last chance to do stuff before headers sent
249
+	 *
250
+	 * @access    public
251
+	 * @return    void
252
+	 */
253
+	public function wp()
254
+	{
255
+	}
256
+
257
+
258
+
259
+	/***********************     GET_HEADER && WP_HEAD HOOK     ***********************/
260
+
261
+
262
+	/**
263
+	 * callback for the "template_redirect" hook point
264
+	 * checks sidebars for EE widgets
265
+	 * loads resources and assets accordingly
266
+	 *
267
+	 * @return void
268
+	 */
269
+	public function templateRedirect()
270
+	{
271
+		global $wp_query;
272
+		if (empty($wp_query->posts)) {
273
+			return;
274
+		}
275
+		// if we already know this is an espresso page, then load assets
276
+		$load_assets = $this->Request_Handler->is_espresso_page();
277
+		// if we are already loading assets then just move along, otherwise check for widgets
278
+		$load_assets = $load_assets ? $load_assets : $this->espresso_widgets_in_active_sidebars();
279
+		if ($load_assets) {
280
+			add_action('wp_enqueue_scripts', array($this, 'enqueueStyle'), 10);
281
+			add_action('wp_print_footer_scripts', array($this, 'enqueueScripts'), 10);
282
+		}
283
+	}
284
+
285
+
286
+	/**
287
+	 * builds list of active widgets then scans active sidebars looking for them
288
+	 * returns true is an EE widget is found in an active sidebar
289
+	 * Please Note: this does NOT mean that the sidebar or widget
290
+	 * is actually in use in a given template, as that is unfortunately not known
291
+	 * until a sidebar and it's widgets are actually loaded
292
+	 *
293
+	 * @return boolean
294
+	 */
295
+	private function espresso_widgets_in_active_sidebars()
296
+	{
297
+		$espresso_widgets = array();
298
+		foreach ($this->Registry->widgets as $widget_class => $widget) {
299
+			$id_base = EspressoWidget::getIdBase($widget_class);
300
+			if (is_active_widget(false, false, $id_base)) {
301
+				$espresso_widgets[] = $id_base;
302
+			}
303
+		}
304
+		$all_sidebar_widgets = wp_get_sidebars_widgets();
305
+		foreach ($all_sidebar_widgets as $sidebar_name => $sidebar_widgets) {
306
+			if (is_array($sidebar_widgets) && ! empty($sidebar_widgets)) {
307
+				foreach ($sidebar_widgets as $sidebar_widget) {
308
+					foreach ($espresso_widgets as $espresso_widget) {
309
+						if (strpos($sidebar_widget, $espresso_widget) !== false) {
310
+							return true;
311
+						}
312
+					}
313
+				}
314
+			}
315
+		}
316
+		return false;
317
+	}
318
+
319
+
320
+	/**
321
+	 *    header_meta_tag
322
+	 *
323
+	 * @access    public
324
+	 * @return    void
325
+	 */
326
+	public function header_meta_tag()
327
+	{
328
+		print(
329
+		apply_filters(
330
+			'FHEE__EE_Front_Controller__header_meta_tag',
331
+			'<meta name="generator" content="Event Espresso Version ' . EVENT_ESPRESSO_VERSION . "\" />\n"
332
+		)
333
+		);
334
+
335
+		// let's exclude all event type taxonomy term archive pages from search engine indexing
336
+		// @see https://events.codebasehq.com/projects/event-espresso/tickets/10249
337
+		// also exclude all critical pages from indexing
338
+		if ((
339
+				is_tax('espresso_event_type')
340
+				&& get_option('blog_public') !== '0'
341
+			)
342
+			|| is_page(EE_Registry::instance()->CFG->core->get_critical_pages_array())
343
+		) {
344
+			print(
345
+			apply_filters(
346
+				'FHEE__EE_Front_Controller__header_meta_tag__noindex_for_event_type',
347
+				'<meta name="robots" content="noindex,follow" />' . "\n"
348
+			)
349
+			);
350
+		}
351
+	}
352
+
353
+
354
+	/**
355
+	 * wp_print_scripts
356
+	 *
357
+	 * @return void
358
+	 */
359
+	public function wp_print_scripts()
360
+	{
361
+		global $post;
362
+		if (isset($post->EE_Event)
363
+			&& $post->EE_Event instanceof EE_Event
364
+			&& get_post_type() === 'espresso_events'
365
+			&& is_singular()
366
+		) {
367
+			\EEH_Schema::add_json_linked_data_for_event($post->EE_Event);
368
+		}
369
+	}
370
+
371
+
372
+	public function enqueueStyle()
373
+	{
374
+		wp_enqueue_style('espresso_default');
375
+		wp_enqueue_style('espresso_custom_css');
376
+	}
377
+
378
+
379
+
380
+	/***********************************************        WP_FOOTER         ***********************************************/
381
+
382
+
383
+	public function enqueueScripts()
384
+	{
385
+		wp_enqueue_script('espresso_core');
386
+	}
387
+
388
+
389
+	/**
390
+	 * display_errors
391
+	 *
392
+	 * @access public
393
+	 * @return void
394
+	 * @throws DomainException
395
+	 */
396
+	public function display_errors()
397
+	{
398
+		static $shown_already = false;
399
+		do_action('AHEE__EE_Front_Controller__display_errors__begin');
400
+		if (! $shown_already
401
+			&& apply_filters('FHEE__EE_Front_Controller__display_errors', true)
402
+			&& is_main_query()
403
+			&& ! is_feed()
404
+			&& in_the_loop()
405
+			&& did_action('wp_head')
406
+			&& $this->Request_Handler->is_espresso_page()
407
+		) {
408
+			echo EE_Error::get_notices();
409
+			$shown_already = true;
410
+			EEH_Template::display_template(EE_TEMPLATES . 'espresso-ajax-notices.template.php');
411
+		}
412
+		do_action('AHEE__EE_Front_Controller__display_errors__end');
413
+	}
414
+
415
+
416
+
417
+
418
+
419
+	/***********************************************        UTILITIES         ***********************************************/
420
+	/**
421
+	 *    template_include
422
+	 *
423
+	 * @access    public
424
+	 * @param   string $template_include_path
425
+	 * @return    string
426
+	 */
427
+	public function template_include($template_include_path = null)
428
+	{
429
+		if ($this->Request_Handler->is_espresso_page()) {
430
+			$this->_template_path = ! empty($this->_template_path)
431
+				? basename($this->_template_path)
432
+				: basename(
433
+					$template_include_path
434
+				);
435
+			$template_path = EEH_Template::locate_template($this->_template_path, array(), false);
436
+			$this->_template_path = ! empty($template_path) ? $template_path : $template_include_path;
437
+			$this->_template = basename($this->_template_path);
438
+			return $this->_template_path;
439
+		}
440
+		return $template_include_path;
441
+	}
442
+
443
+
444
+	/**
445
+	 *    get_selected_template
446
+	 *
447
+	 * @access    public
448
+	 * @param bool $with_path
449
+	 * @return    string
450
+	 */
451
+	public function get_selected_template($with_path = false)
452
+	{
453
+		return $with_path ? $this->_template_path : $this->_template;
454
+	}
455
+
456
+
457
+	/**
458
+	 * @deprecated 4.9.26
459
+	 * @param string $shortcode_class
460
+	 * @param \WP    $wp
461
+	 */
462
+	public function initialize_shortcode($shortcode_class = '', WP $wp = null)
463
+	{
464
+		\EE_Error::doing_it_wrong(
465
+			__METHOD__,
466
+			__(
467
+				'Usage is deprecated. Please use \EventEspresso\core\services\shortcodes\LegacyShortcodesManager::initializeShortcode() instead.',
468
+				'event_espresso'
469
+			),
470
+			'4.9.26'
471
+		);
472
+		$this->getLegacyShortcodesManager()->initializeShortcode($shortcode_class, $wp);
473
+	}
474
+
475
+
476
+	/**
477
+	 * @return void
478
+	 * @deprecated 4.9.57.p
479
+	 */
480
+	public function loadPersistentAdminNoticeManager()
481
+	{
482
+	}
483
+
484
+
485
+	/**
486
+	 * @return void
487
+	 * @deprecated 4.9.64.p
488
+	 */
489
+	public function employ_CPT_Strategy()
490
+	{
491
+	}
492 492
 }
Please login to merge, or discard this patch.
core/EE_Psr4AutoloaderInit.core.php 2 patches
Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -17,38 +17,38 @@
 block discarded – undo
17 17
 {
18 18
 
19 19
 
20
-    /**
21
-     * @type \EventEspresso\core\Psr4Autoloader
22
-     */
23
-    protected static $psr4_loader;
24
-
25
-
26
-    /**
27
-     * @return \EventEspresso\core\Psr4Autoloader
28
-     */
29
-    public function initializeAutoloader()
30
-    {
31
-        static $initialized = false;
32
-        if (! $initialized) {
33
-            // instantiate PSR4 autoloader
34
-            espresso_load_required('Psr4Autoloader', EE_CORE . 'Psr4Autoloader.php');
35
-            EE_Psr4AutoloaderInit::$psr4_loader = new Psr4Autoloader();
36
-            // register the autoloader
37
-            EE_Psr4AutoloaderInit::$psr4_loader->register();
38
-            // register the base directories for the namespace prefix
39
-            EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspresso', EE_PLUGIN_DIR_PATH);
40
-            EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspressoBatchRequest', EE_LIBRARIES . 'batch');
41
-            EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspressoVendor', EE_THIRD_PARTY);
42
-            $initialized = true;
43
-        }
44
-    }
45
-
46
-
47
-    /**
48
-     * @return \EventEspresso\core\Psr4Autoloader
49
-     */
50
-    public static function psr4_loader()
51
-    {
52
-        return self::$psr4_loader;
53
-    }
20
+	/**
21
+	 * @type \EventEspresso\core\Psr4Autoloader
22
+	 */
23
+	protected static $psr4_loader;
24
+
25
+
26
+	/**
27
+	 * @return \EventEspresso\core\Psr4Autoloader
28
+	 */
29
+	public function initializeAutoloader()
30
+	{
31
+		static $initialized = false;
32
+		if (! $initialized) {
33
+			// instantiate PSR4 autoloader
34
+			espresso_load_required('Psr4Autoloader', EE_CORE . 'Psr4Autoloader.php');
35
+			EE_Psr4AutoloaderInit::$psr4_loader = new Psr4Autoloader();
36
+			// register the autoloader
37
+			EE_Psr4AutoloaderInit::$psr4_loader->register();
38
+			// register the base directories for the namespace prefix
39
+			EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspresso', EE_PLUGIN_DIR_PATH);
40
+			EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspressoBatchRequest', EE_LIBRARIES . 'batch');
41
+			EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspressoVendor', EE_THIRD_PARTY);
42
+			$initialized = true;
43
+		}
44
+	}
45
+
46
+
47
+	/**
48
+	 * @return \EventEspresso\core\Psr4Autoloader
49
+	 */
50
+	public static function psr4_loader()
51
+	{
52
+		return self::$psr4_loader;
53
+	}
54 54
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -29,15 +29,15 @@
 block discarded – undo
29 29
     public function initializeAutoloader()
30 30
     {
31 31
         static $initialized = false;
32
-        if (! $initialized) {
32
+        if ( ! $initialized) {
33 33
             // instantiate PSR4 autoloader
34
-            espresso_load_required('Psr4Autoloader', EE_CORE . 'Psr4Autoloader.php');
34
+            espresso_load_required('Psr4Autoloader', EE_CORE.'Psr4Autoloader.php');
35 35
             EE_Psr4AutoloaderInit::$psr4_loader = new Psr4Autoloader();
36 36
             // register the autoloader
37 37
             EE_Psr4AutoloaderInit::$psr4_loader->register();
38 38
             // register the base directories for the namespace prefix
39 39
             EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspresso', EE_PLUGIN_DIR_PATH);
40
-            EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspressoBatchRequest', EE_LIBRARIES . 'batch');
40
+            EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspressoBatchRequest', EE_LIBRARIES.'batch');
41 41
             EE_Psr4AutoloaderInit::$psr4_loader->addNamespace('EventEspressoVendor', EE_THIRD_PARTY);
42 42
             $initialized = true;
43 43
         }
Please login to merge, or discard this patch.
core/EE_Object_Repository.core.php 1 patch
Indentation   +86 added lines, -86 removed lines patch added patch discarded remove patch
@@ -16,98 +16,98 @@
 block discarded – undo
16 16
 abstract class EE_Object_Repository extends EE_Object_Collection implements EEI_Repository
17 17
 {
18 18
 
19
-    /**
20
-     * default persist method called on repository objects if none supplied
21
-     *
22
-     * @type string $persist_method
23
-     */
24
-    protected $persist_method;
19
+	/**
20
+	 * default persist method called on repository objects if none supplied
21
+	 *
22
+	 * @type string $persist_method
23
+	 */
24
+	protected $persist_method;
25 25
 
26 26
 
27
-    /**
28
-     * _call_user_func_array_on_current
29
-     *
30
-     * calls the supplied callback method name on the current repository object,
31
-     * an array of arguments can also be supplied that will be passed along to the callback method,
32
-     * where each element of the $arguments array corresponds to a parameter for the callback method
33
-     * PLZ NOTE: if the first argument of the callback requires an array, for example array( 'key' => 'value' )
34
-     * then $arguments needs to be a DOUBLE array ie: array( array( 'key' => 'value' ) )
35
-     *
36
-     * @access public
37
-     * @param string $callback  name of method found on object to be called.
38
-     * @param array  $arguments arrays of arguments that will be passed to the object's callback method
39
-     * @return bool | int
40
-     */
41
-    protected function _call_user_func_array_on_current($callback = '', $arguments = array())
42
-    {
43
-        if ($callback !== '' && method_exists($this->current(), $callback)) {
44
-            return call_user_func_array(array($this->current(), $callback), $arguments);
45
-        }
46
-        return false;
47
-    }
27
+	/**
28
+	 * _call_user_func_array_on_current
29
+	 *
30
+	 * calls the supplied callback method name on the current repository object,
31
+	 * an array of arguments can also be supplied that will be passed along to the callback method,
32
+	 * where each element of the $arguments array corresponds to a parameter for the callback method
33
+	 * PLZ NOTE: if the first argument of the callback requires an array, for example array( 'key' => 'value' )
34
+	 * then $arguments needs to be a DOUBLE array ie: array( array( 'key' => 'value' ) )
35
+	 *
36
+	 * @access public
37
+	 * @param string $callback  name of method found on object to be called.
38
+	 * @param array  $arguments arrays of arguments that will be passed to the object's callback method
39
+	 * @return bool | int
40
+	 */
41
+	protected function _call_user_func_array_on_current($callback = '', $arguments = array())
42
+	{
43
+		if ($callback !== '' && method_exists($this->current(), $callback)) {
44
+			return call_user_func_array(array($this->current(), $callback), $arguments);
45
+		}
46
+		return false;
47
+	}
48 48
 
49 49
 
50
-    /**
51
-     * _call_user_func_on_all
52
-     *
53
-     * calls the supplied callback method name on ALL repository objects,
54
-     *
55
-     * @access public
56
-     * @param string $callback name of method found on repository objects to be called
57
-     * @return bool | int
58
-     */
59
-    protected function _call_user_func_on_all($callback = '')
60
-    {
61
-        $success = true;
62
-        if ($this->valid()) {
63
-            $this->rewind();
64
-            while ($this->valid()) {
65
-                // any negative result will toggle success to false
66
-                $success = $this->_call_user_func_array_on_current($callback) ? $success : false;
67
-                $this->next();
68
-            }
69
-            $this->rewind();
70
-        }
71
-        return $success;
72
-    }
50
+	/**
51
+	 * _call_user_func_on_all
52
+	 *
53
+	 * calls the supplied callback method name on ALL repository objects,
54
+	 *
55
+	 * @access public
56
+	 * @param string $callback name of method found on repository objects to be called
57
+	 * @return bool | int
58
+	 */
59
+	protected function _call_user_func_on_all($callback = '')
60
+	{
61
+		$success = true;
62
+		if ($this->valid()) {
63
+			$this->rewind();
64
+			while ($this->valid()) {
65
+				// any negative result will toggle success to false
66
+				$success = $this->_call_user_func_array_on_current($callback) ? $success : false;
67
+				$this->next();
68
+			}
69
+			$this->rewind();
70
+		}
71
+		return $success;
72
+	}
73 73
 
74 74
 
75
-    /**
76
-     * persist
77
-     *
78
-     * primarily used for saving EE_Base_Class classes to the database,
79
-     * but can be supplied with a "persistence callback" that can be used for classes that are not instances of
80
-     * EE_Base_Class, or for providing alternate ways to persist an object such as session caching, etc... an array of
81
-     * arguments can also be supplied that will be passed along to the object's persistence method
82
-     *
83
-     * @access public
84
-     * @param string $persistence_callback                                    name of method found on object that can
85
-     *                                                                        be used for persisting the object
86
-     *                                                                        defaults to
87
-     *                                                                        EE_Object_Repository::$persist_method
88
-     * @param array  $persistence_arguments                                   arrays of arguments that will be passed
89
-     *                                                                        to the object's persistence method
90
-     * @return bool | int
91
-     */
92
-    public function persist($persistence_callback = '', $persistence_arguments = array())
93
-    {
94
-        $persistence_callback = ! empty($persistence_callback) ? $persistence_callback : $this->persist_method;
95
-        return $this->_call_user_func_array_on_current($persistence_callback, $persistence_arguments);
96
-    }
75
+	/**
76
+	 * persist
77
+	 *
78
+	 * primarily used for saving EE_Base_Class classes to the database,
79
+	 * but can be supplied with a "persistence callback" that can be used for classes that are not instances of
80
+	 * EE_Base_Class, or for providing alternate ways to persist an object such as session caching, etc... an array of
81
+	 * arguments can also be supplied that will be passed along to the object's persistence method
82
+	 *
83
+	 * @access public
84
+	 * @param string $persistence_callback                                    name of method found on object that can
85
+	 *                                                                        be used for persisting the object
86
+	 *                                                                        defaults to
87
+	 *                                                                        EE_Object_Repository::$persist_method
88
+	 * @param array  $persistence_arguments                                   arrays of arguments that will be passed
89
+	 *                                                                        to the object's persistence method
90
+	 * @return bool | int
91
+	 */
92
+	public function persist($persistence_callback = '', $persistence_arguments = array())
93
+	{
94
+		$persistence_callback = ! empty($persistence_callback) ? $persistence_callback : $this->persist_method;
95
+		return $this->_call_user_func_array_on_current($persistence_callback, $persistence_arguments);
96
+	}
97 97
 
98 98
 
99
-    /**
100
-     * persist_all
101
-     *
102
-     * calls \EE_Object_Repository::persist() on all objects within the repository
103
-     *
104
-     * @access public
105
-     * @param string $persistence_callback name of method found on object that can be used for persisting the object
106
-     * @return bool | int
107
-     */
108
-    public function persist_all($persistence_callback = '')
109
-    {
110
-        $persistence_callback = ! empty($persistence_callback) ? $persistence_callback : $this->persist_method;
111
-        return $this->_call_user_func_on_all($persistence_callback);
112
-    }
99
+	/**
100
+	 * persist_all
101
+	 *
102
+	 * calls \EE_Object_Repository::persist() on all objects within the repository
103
+	 *
104
+	 * @access public
105
+	 * @param string $persistence_callback name of method found on object that can be used for persisting the object
106
+	 * @return bool | int
107
+	 */
108
+	public function persist_all($persistence_callback = '')
109
+	{
110
+		$persistence_callback = ! empty($persistence_callback) ? $persistence_callback : $this->persist_method;
111
+		return $this->_call_user_func_on_all($persistence_callback);
112
+	}
113 113
 }
Please login to merge, or discard this patch.
core/EED_Module.module.php 2 patches
Indentation   +106 added lines, -106 removed lines patch added patch discarded remove patch
@@ -12,110 +12,110 @@
 block discarded – undo
12 12
 abstract class EED_Module extends EE_Configurable implements ResettableInterface
13 13
 {
14 14
 
15
-    /**
16
-     * rendered output to be returned to WP
17
-     *
18
-     * @var    string $output
19
-     */
20
-    protected $output = '';
21
-
22
-    /**
23
-     * the current active espresso template theme
24
-     *
25
-     * @var    string $theme
26
-     */
27
-    protected $theme = '';
28
-
29
-
30
-    /**
31
-     * @return void
32
-     */
33
-    public static function reset()
34
-    {
35
-        $module_name = get_called_class();
36
-        new $module_name();
37
-    }
38
-
39
-
40
-    /**
41
-     *    set_hooks - for hooking into EE Core, other modules, etc
42
-     *
43
-     * @access    public
44
-     * @return    void
45
-     */
46
-    public static function set_hooks()
47
-    {
48
-    }
49
-
50
-
51
-    /**
52
-     *    set_hooks_admin - for hooking into EE Admin Core, other modules, etc
53
-     *
54
-     * @access    public
55
-     * @return    void
56
-     */
57
-    public static function set_hooks_admin()
58
-    {
59
-    }
60
-
61
-
62
-    /**
63
-     *    run - initial module setup
64
-     *    this method is primarily used for activating resources in the EE_Front_Controller thru the use of filters
65
-     *
66
-     * @access    public
67
-     * @var            WP $WP
68
-     * @return    void
69
-     */
70
-    abstract public function run($WP);
71
-
72
-
73
-    /**
74
-     * EED_Module constructor.
75
-     */
76
-    final public function __construct()
77
-    {
78
-        $this->theme = EE_Config::get_current_theme();
79
-        $module_name = $this->module_name();
80
-        EE_Registry::instance()->modules->{$module_name} = $this;
81
-    }
82
-
83
-
84
-    /**
85
-     * @param $module_name
86
-     * @return EED_Module
87
-     */
88
-    protected static function get_instance($module_name = '')
89
-    {
90
-        $module_name = ! empty($module_name)
91
-            ? $module_name
92
-            : get_called_class();
93
-        if (! isset(EE_Registry::instance()->modules->{$module_name})
94
-            || ! EE_Registry::instance()->modules->{$module_name} instanceof EED_Module
95
-        ) {
96
-            EE_Registry::instance()->add_module($module_name);
97
-        }
98
-        return EE_Registry::instance()->get_module($module_name);
99
-    }
100
-
101
-
102
-    /**
103
-     *    module_name
104
-     *
105
-     * @access    public
106
-     * @return    string
107
-     */
108
-    public function module_name()
109
-    {
110
-        return get_class($this);
111
-    }
112
-
113
-
114
-    /**
115
-     * @return string
116
-     */
117
-    public function theme()
118
-    {
119
-        return $this->theme;
120
-    }
15
+	/**
16
+	 * rendered output to be returned to WP
17
+	 *
18
+	 * @var    string $output
19
+	 */
20
+	protected $output = '';
21
+
22
+	/**
23
+	 * the current active espresso template theme
24
+	 *
25
+	 * @var    string $theme
26
+	 */
27
+	protected $theme = '';
28
+
29
+
30
+	/**
31
+	 * @return void
32
+	 */
33
+	public static function reset()
34
+	{
35
+		$module_name = get_called_class();
36
+		new $module_name();
37
+	}
38
+
39
+
40
+	/**
41
+	 *    set_hooks - for hooking into EE Core, other modules, etc
42
+	 *
43
+	 * @access    public
44
+	 * @return    void
45
+	 */
46
+	public static function set_hooks()
47
+	{
48
+	}
49
+
50
+
51
+	/**
52
+	 *    set_hooks_admin - for hooking into EE Admin Core, other modules, etc
53
+	 *
54
+	 * @access    public
55
+	 * @return    void
56
+	 */
57
+	public static function set_hooks_admin()
58
+	{
59
+	}
60
+
61
+
62
+	/**
63
+	 *    run - initial module setup
64
+	 *    this method is primarily used for activating resources in the EE_Front_Controller thru the use of filters
65
+	 *
66
+	 * @access    public
67
+	 * @var            WP $WP
68
+	 * @return    void
69
+	 */
70
+	abstract public function run($WP);
71
+
72
+
73
+	/**
74
+	 * EED_Module constructor.
75
+	 */
76
+	final public function __construct()
77
+	{
78
+		$this->theme = EE_Config::get_current_theme();
79
+		$module_name = $this->module_name();
80
+		EE_Registry::instance()->modules->{$module_name} = $this;
81
+	}
82
+
83
+
84
+	/**
85
+	 * @param $module_name
86
+	 * @return EED_Module
87
+	 */
88
+	protected static function get_instance($module_name = '')
89
+	{
90
+		$module_name = ! empty($module_name)
91
+			? $module_name
92
+			: get_called_class();
93
+		if (! isset(EE_Registry::instance()->modules->{$module_name})
94
+			|| ! EE_Registry::instance()->modules->{$module_name} instanceof EED_Module
95
+		) {
96
+			EE_Registry::instance()->add_module($module_name);
97
+		}
98
+		return EE_Registry::instance()->get_module($module_name);
99
+	}
100
+
101
+
102
+	/**
103
+	 *    module_name
104
+	 *
105
+	 * @access    public
106
+	 * @return    string
107
+	 */
108
+	public function module_name()
109
+	{
110
+		return get_class($this);
111
+	}
112
+
113
+
114
+	/**
115
+	 * @return string
116
+	 */
117
+	public function theme()
118
+	{
119
+		return $this->theme;
120
+	}
121 121
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -90,7 +90,7 @@
 block discarded – undo
90 90
         $module_name = ! empty($module_name)
91 91
             ? $module_name
92 92
             : get_called_class();
93
-        if (! isset(EE_Registry::instance()->modules->{$module_name})
93
+        if ( ! isset(EE_Registry::instance()->modules->{$module_name})
94 94
             || ! EE_Registry::instance()->modules->{$module_name} instanceof EED_Module
95 95
         ) {
96 96
             EE_Registry::instance()->add_module($module_name);
Please login to merge, or discard this patch.
core/EE_Base.core.php 1 patch
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -11,42 +11,42 @@
 block discarded – undo
11 11
 class EE_Base
12 12
 {
13 13
 
14
-    /**
15
-     *        @ override magic methods
16
-     *        @ return void
17
-     */
18
-    public function __get($a)
19
-    {
20
-        return false;
21
-    }
14
+	/**
15
+	 *        @ override magic methods
16
+	 *        @ return void
17
+	 */
18
+	public function __get($a)
19
+	{
20
+		return false;
21
+	}
22 22
 
23
-    public function __set($a, $b)
24
-    {
25
-        return false;
26
-    }
23
+	public function __set($a, $b)
24
+	{
25
+		return false;
26
+	}
27 27
 
28
-    public function __isset($a)
29
-    {
30
-        return false;
31
-    }
28
+	public function __isset($a)
29
+	{
30
+		return false;
31
+	}
32 32
 
33
-    public function __unset($a)
34
-    {
35
-        return false;
36
-    }
33
+	public function __unset($a)
34
+	{
35
+		return false;
36
+	}
37 37
 
38
-    public function __clone()
39
-    {
40
-        return false;
41
-    }
38
+	public function __clone()
39
+	{
40
+		return false;
41
+	}
42 42
 
43
-    public function __wakeup()
44
-    {
45
-        return false;
46
-    }
43
+	public function __wakeup()
44
+	{
45
+		return false;
46
+	}
47 47
 
48
-    public function __destruct()
49
-    {
50
-        return false;
51
-    }
48
+	public function __destruct()
49
+	{
50
+		return false;
51
+	}
52 52
 }
Please login to merge, or discard this patch.
core/EE_Request_Handler.core.php 2 patches
Indentation   +365 added lines, -365 removed lines patch added patch discarded remove patch
@@ -12,369 +12,369 @@
 block discarded – undo
12 12
 final class EE_Request_Handler implements InterminableInterface
13 13
 {
14 14
 
15
-    /**
16
-     * @var EE_Request $request
17
-     */
18
-    private $request;
19
-
20
-    /**
21
-     * @var array $_notice
22
-     */
23
-    private $_notice = array();
24
-
25
-    /**
26
-     * rendered output to be returned to WP
27
-     *
28
-     * @var string $_output
29
-     */
30
-    private $_output = '';
31
-
32
-    /**
33
-     * whether current request is via AJAX
34
-     *
35
-     * @var boolean $ajax
36
-     */
37
-    public $ajax = false;
38
-
39
-    /**
40
-     * whether current request is via AJAX from the frontend of the site
41
-     *
42
-     * @var boolean $front_ajax
43
-     */
44
-    public $front_ajax = false;
45
-
46
-
47
-    /**
48
-     * @param  EE_Request $request
49
-     */
50
-    public function __construct(EE_Request $request)
51
-    {
52
-        $this->request = $request;
53
-        $this->ajax = $this->request->ajax;
54
-        $this->front_ajax = $this->request->front_ajax;
55
-        do_action('AHEE__EE_Request_Handler__construct__complete');
56
-    }
57
-
58
-
59
-    /**
60
-     * @param WP $wp
61
-     * @return void
62
-     * @throws EE_Error
63
-     * @throws ReflectionException
64
-     */
65
-    public function parse_request($wp = null)
66
-    {
67
-        // if somebody forgot to provide us with WP, that's ok because its global
68
-        if (! $wp instanceof WP) {
69
-            global $wp;
70
-        }
71
-        $this->set_request_vars($wp);
72
-    }
73
-
74
-
75
-    /**
76
-     * @param WP $wp
77
-     * @return void
78
-     * @throws EE_Error
79
-     * @throws ReflectionException
80
-     */
81
-    public function set_request_vars($wp = null)
82
-    {
83
-        if (! is_admin()) {
84
-            // set request post_id
85
-            $this->request->set('post_id', $this->get_post_id_from_request($wp));
86
-            // set request post name
87
-            $this->request->set('post_name', $this->get_post_name_from_request($wp));
88
-            // set request post_type
89
-            $this->request->set('post_type', $this->get_post_type_from_request($wp));
90
-            // true or false ? is this page being used by EE ?
91
-            $this->set_espresso_page();
92
-        }
93
-    }
94
-
95
-
96
-    /**
97
-     * @param WP $wp
98
-     * @return int
99
-     */
100
-    public function get_post_id_from_request($wp = null)
101
-    {
102
-        if (! $wp instanceof WP) {
103
-            global $wp;
104
-        }
105
-        $post_id = null;
106
-        if (isset($wp->query_vars['p'])) {
107
-            $post_id = $wp->query_vars['p'];
108
-        }
109
-        if (! $post_id && isset($wp->query_vars['page_id'])) {
110
-            $post_id = $wp->query_vars['page_id'];
111
-        }
112
-        if (! $post_id && $wp->request !== null && is_numeric(basename($wp->request))) {
113
-            $post_id = basename($wp->request);
114
-        }
115
-        return $post_id;
116
-    }
117
-
118
-
119
-    /**
120
-     * @param WP $wp
121
-     * @return string
122
-     */
123
-    public function get_post_name_from_request($wp = null)
124
-    {
125
-        if (! $wp instanceof WP) {
126
-            global $wp;
127
-        }
128
-        $post_name = null;
129
-        if (isset($wp->query_vars['name']) && ! empty($wp->query_vars['name'])) {
130
-            $post_name = $wp->query_vars['name'];
131
-        }
132
-        if (! $post_name && isset($wp->query_vars['pagename']) && ! empty($wp->query_vars['pagename'])) {
133
-            $post_name = $wp->query_vars['pagename'];
134
-        }
135
-        if (! $post_name && $wp->request !== null && ! empty($wp->request)) {
136
-            $possible_post_name = basename($wp->request);
137
-            if (! is_numeric($possible_post_name)) {
138
-                /** @type WPDB $wpdb */
139
-                global $wpdb;
140
-                $SQL =
141
-                    "SELECT ID from {$wpdb->posts} WHERE post_status NOT IN ('auto-draft', 'inherit', 'trash') AND post_name=%s";
142
-                $possible_post_name = $wpdb->get_var($wpdb->prepare($SQL, $possible_post_name));
143
-                if ($possible_post_name) {
144
-                    $post_name = $possible_post_name;
145
-                }
146
-            }
147
-        }
148
-        if (! $post_name && $this->get('post_id')) {
149
-            /** @type WPDB $wpdb */
150
-            global $wpdb;
151
-            $SQL =
152
-                "SELECT post_name from {$wpdb->posts} WHERE post_status NOT IN ('auto-draft', 'inherit', 'trash') AND ID=%d";
153
-            $possible_post_name = $wpdb->get_var($wpdb->prepare($SQL, $this->get('post_id')));
154
-            if ($possible_post_name) {
155
-                $post_name = $possible_post_name;
156
-            }
157
-        }
158
-        return $post_name;
159
-    }
160
-
161
-
162
-    /**
163
-     * @param WP $wp
164
-     * @return mixed
165
-     */
166
-    public function get_post_type_from_request($wp = null)
167
-    {
168
-        if (! $wp instanceof WP) {
169
-            global $wp;
170
-        }
171
-        return isset($wp->query_vars['post_type'])
172
-            ? $wp->query_vars['post_type']
173
-            : null;
174
-    }
175
-
176
-
177
-    /**
178
-     * Just a helper method for getting the url for the displayed page.
179
-     *
180
-     * @param  WP $wp
181
-     * @return string
182
-     */
183
-    public function get_current_page_permalink($wp = null)
184
-    {
185
-        $post_id = $this->get_post_id_from_request($wp);
186
-        if ($post_id) {
187
-            $current_page_permalink = get_permalink($post_id);
188
-        } else {
189
-            if (! $wp instanceof WP) {
190
-                global $wp;
191
-            }
192
-            if ($wp->request) {
193
-                $current_page_permalink = site_url($wp->request);
194
-            } else {
195
-                $current_page_permalink = esc_url(site_url($_SERVER['REQUEST_URI']));
196
-            }
197
-        }
198
-        return $current_page_permalink;
199
-    }
200
-
201
-
202
-    /**
203
-     * @return bool
204
-     * @throws EE_Error
205
-     * @throws ReflectionException
206
-     */
207
-    public function test_for_espresso_page()
208
-    {
209
-        global $wp;
210
-        /** @type EE_CPT_Strategy $EE_CPT_Strategy */
211
-        $EE_CPT_Strategy = EE_Registry::instance()->load_core('CPT_Strategy');
212
-        $espresso_CPT_taxonomies = $EE_CPT_Strategy->get_CPT_taxonomies();
213
-        if (is_array($espresso_CPT_taxonomies)) {
214
-            foreach ($espresso_CPT_taxonomies as $espresso_CPT_taxonomy => $details) {
215
-                if (isset($wp->query_vars, $wp->query_vars[ $espresso_CPT_taxonomy ])) {
216
-                    return true;
217
-                }
218
-            }
219
-        }
220
-        // load espresso CPT endpoints
221
-        $espresso_CPT_endpoints = $EE_CPT_Strategy->get_CPT_endpoints();
222
-        $post_type_CPT_endpoints = array_flip($espresso_CPT_endpoints);
223
-        $post_types = (array) $this->get('post_type');
224
-        foreach ($post_types as $post_type) {
225
-            // was a post name passed ?
226
-            if (isset($post_type_CPT_endpoints[ $post_type ])) {
227
-                // kk we know this is an espresso page, but is it a specific post ?
228
-                if (! $this->get('post_name')) {
229
-                    // there's no specific post name set, so maybe it's one of our endpoints like www.domain.com/events
230
-                    $post_name = isset($post_type_CPT_endpoints[ $this->get('post_type') ])
231
-                        ? $post_type_CPT_endpoints[ $this->get('post_type') ]
232
-                        : '';
233
-                    // if the post type matches on of our then set the endpoint
234
-                    if ($post_name) {
235
-                        $this->set('post_name', $post_name);
236
-                    }
237
-                }
238
-                return true;
239
-            }
240
-        }
241
-        return false;
242
-    }
243
-
244
-    /**
245
-     * @param $key
246
-     * @param $value
247
-     * @return    void
248
-     */
249
-    public function set_notice($key, $value)
250
-    {
251
-        $this->_notice[ $key ] = $value;
252
-    }
253
-
254
-
255
-    /**
256
-     * @param $key
257
-     * @return    mixed
258
-     */
259
-    public function get_notice($key)
260
-    {
261
-        return isset($this->_notice[ $key ])
262
-            ? $this->_notice[ $key ]
263
-            : null;
264
-    }
265
-
266
-
267
-    /**
268
-     * @param $string
269
-     * @return void
270
-     */
271
-    public function add_output($string)
272
-    {
273
-        $this->_output .= $string;
274
-    }
275
-
276
-
277
-    /**
278
-     * @return string
279
-     */
280
-    public function get_output()
281
-    {
282
-        return $this->_output;
283
-    }
284
-
285
-
286
-    /**
287
-     * @param $item
288
-     * @param $key
289
-     */
290
-    public function sanitize_text_field_for_array_walk(&$item, &$key)
291
-    {
292
-        $item = strpos($item, 'email') !== false
293
-            ? sanitize_email($item)
294
-            : sanitize_text_field($item);
295
-    }
296
-
297
-
298
-    /**
299
-     * @param null|bool $value
300
-     * @return void
301
-     * @throws EE_Error
302
-     * @throws ReflectionException
303
-     */
304
-    public function set_espresso_page($value = null)
305
-    {
306
-        $this->request->set(
307
-            'is_espresso_page',
308
-            ! empty($value)
309
-                ? $value
310
-                : $this->test_for_espresso_page()
311
-        );
312
-    }
313
-
314
-
315
-    /**
316
-     * @return    mixed
317
-     */
318
-    public function is_espresso_page()
319
-    {
320
-        return $this->request->is_set('is_espresso_page');
321
-    }
322
-
323
-
324
-    /**
325
-     * returns contents of $_REQUEST
326
-     *
327
-     * @return array
328
-     */
329
-    public function params()
330
-    {
331
-        return $this->request->params();
332
-    }
333
-
334
-
335
-    /**
336
-     * @param      $key
337
-     * @param      $value
338
-     * @param bool $override_ee
339
-     * @return    void
340
-     */
341
-    public function set($key, $value, $override_ee = false)
342
-    {
343
-        $this->request->set($key, $value, $override_ee);
344
-    }
345
-
346
-
347
-    /**
348
-     * @param      $key
349
-     * @param null $default
350
-     * @return    mixed
351
-     */
352
-    public function get($key, $default = null)
353
-    {
354
-        return $this->request->get($key, $default);
355
-    }
356
-
357
-
358
-    /**
359
-     * check if param exists
360
-     *
361
-     * @param $key
362
-     * @return    boolean
363
-     */
364
-    public function is_set($key)
365
-    {
366
-        return $this->request->is_set($key);
367
-    }
368
-
369
-
370
-    /**
371
-     * remove param
372
-     *
373
-     * @param $key
374
-     * @return    void
375
-     */
376
-    public function un_set($key)
377
-    {
378
-        $this->request->un_set($key);
379
-    }
15
+	/**
16
+	 * @var EE_Request $request
17
+	 */
18
+	private $request;
19
+
20
+	/**
21
+	 * @var array $_notice
22
+	 */
23
+	private $_notice = array();
24
+
25
+	/**
26
+	 * rendered output to be returned to WP
27
+	 *
28
+	 * @var string $_output
29
+	 */
30
+	private $_output = '';
31
+
32
+	/**
33
+	 * whether current request is via AJAX
34
+	 *
35
+	 * @var boolean $ajax
36
+	 */
37
+	public $ajax = false;
38
+
39
+	/**
40
+	 * whether current request is via AJAX from the frontend of the site
41
+	 *
42
+	 * @var boolean $front_ajax
43
+	 */
44
+	public $front_ajax = false;
45
+
46
+
47
+	/**
48
+	 * @param  EE_Request $request
49
+	 */
50
+	public function __construct(EE_Request $request)
51
+	{
52
+		$this->request = $request;
53
+		$this->ajax = $this->request->ajax;
54
+		$this->front_ajax = $this->request->front_ajax;
55
+		do_action('AHEE__EE_Request_Handler__construct__complete');
56
+	}
57
+
58
+
59
+	/**
60
+	 * @param WP $wp
61
+	 * @return void
62
+	 * @throws EE_Error
63
+	 * @throws ReflectionException
64
+	 */
65
+	public function parse_request($wp = null)
66
+	{
67
+		// if somebody forgot to provide us with WP, that's ok because its global
68
+		if (! $wp instanceof WP) {
69
+			global $wp;
70
+		}
71
+		$this->set_request_vars($wp);
72
+	}
73
+
74
+
75
+	/**
76
+	 * @param WP $wp
77
+	 * @return void
78
+	 * @throws EE_Error
79
+	 * @throws ReflectionException
80
+	 */
81
+	public function set_request_vars($wp = null)
82
+	{
83
+		if (! is_admin()) {
84
+			// set request post_id
85
+			$this->request->set('post_id', $this->get_post_id_from_request($wp));
86
+			// set request post name
87
+			$this->request->set('post_name', $this->get_post_name_from_request($wp));
88
+			// set request post_type
89
+			$this->request->set('post_type', $this->get_post_type_from_request($wp));
90
+			// true or false ? is this page being used by EE ?
91
+			$this->set_espresso_page();
92
+		}
93
+	}
94
+
95
+
96
+	/**
97
+	 * @param WP $wp
98
+	 * @return int
99
+	 */
100
+	public function get_post_id_from_request($wp = null)
101
+	{
102
+		if (! $wp instanceof WP) {
103
+			global $wp;
104
+		}
105
+		$post_id = null;
106
+		if (isset($wp->query_vars['p'])) {
107
+			$post_id = $wp->query_vars['p'];
108
+		}
109
+		if (! $post_id && isset($wp->query_vars['page_id'])) {
110
+			$post_id = $wp->query_vars['page_id'];
111
+		}
112
+		if (! $post_id && $wp->request !== null && is_numeric(basename($wp->request))) {
113
+			$post_id = basename($wp->request);
114
+		}
115
+		return $post_id;
116
+	}
117
+
118
+
119
+	/**
120
+	 * @param WP $wp
121
+	 * @return string
122
+	 */
123
+	public function get_post_name_from_request($wp = null)
124
+	{
125
+		if (! $wp instanceof WP) {
126
+			global $wp;
127
+		}
128
+		$post_name = null;
129
+		if (isset($wp->query_vars['name']) && ! empty($wp->query_vars['name'])) {
130
+			$post_name = $wp->query_vars['name'];
131
+		}
132
+		if (! $post_name && isset($wp->query_vars['pagename']) && ! empty($wp->query_vars['pagename'])) {
133
+			$post_name = $wp->query_vars['pagename'];
134
+		}
135
+		if (! $post_name && $wp->request !== null && ! empty($wp->request)) {
136
+			$possible_post_name = basename($wp->request);
137
+			if (! is_numeric($possible_post_name)) {
138
+				/** @type WPDB $wpdb */
139
+				global $wpdb;
140
+				$SQL =
141
+					"SELECT ID from {$wpdb->posts} WHERE post_status NOT IN ('auto-draft', 'inherit', 'trash') AND post_name=%s";
142
+				$possible_post_name = $wpdb->get_var($wpdb->prepare($SQL, $possible_post_name));
143
+				if ($possible_post_name) {
144
+					$post_name = $possible_post_name;
145
+				}
146
+			}
147
+		}
148
+		if (! $post_name && $this->get('post_id')) {
149
+			/** @type WPDB $wpdb */
150
+			global $wpdb;
151
+			$SQL =
152
+				"SELECT post_name from {$wpdb->posts} WHERE post_status NOT IN ('auto-draft', 'inherit', 'trash') AND ID=%d";
153
+			$possible_post_name = $wpdb->get_var($wpdb->prepare($SQL, $this->get('post_id')));
154
+			if ($possible_post_name) {
155
+				$post_name = $possible_post_name;
156
+			}
157
+		}
158
+		return $post_name;
159
+	}
160
+
161
+
162
+	/**
163
+	 * @param WP $wp
164
+	 * @return mixed
165
+	 */
166
+	public function get_post_type_from_request($wp = null)
167
+	{
168
+		if (! $wp instanceof WP) {
169
+			global $wp;
170
+		}
171
+		return isset($wp->query_vars['post_type'])
172
+			? $wp->query_vars['post_type']
173
+			: null;
174
+	}
175
+
176
+
177
+	/**
178
+	 * Just a helper method for getting the url for the displayed page.
179
+	 *
180
+	 * @param  WP $wp
181
+	 * @return string
182
+	 */
183
+	public function get_current_page_permalink($wp = null)
184
+	{
185
+		$post_id = $this->get_post_id_from_request($wp);
186
+		if ($post_id) {
187
+			$current_page_permalink = get_permalink($post_id);
188
+		} else {
189
+			if (! $wp instanceof WP) {
190
+				global $wp;
191
+			}
192
+			if ($wp->request) {
193
+				$current_page_permalink = site_url($wp->request);
194
+			} else {
195
+				$current_page_permalink = esc_url(site_url($_SERVER['REQUEST_URI']));
196
+			}
197
+		}
198
+		return $current_page_permalink;
199
+	}
200
+
201
+
202
+	/**
203
+	 * @return bool
204
+	 * @throws EE_Error
205
+	 * @throws ReflectionException
206
+	 */
207
+	public function test_for_espresso_page()
208
+	{
209
+		global $wp;
210
+		/** @type EE_CPT_Strategy $EE_CPT_Strategy */
211
+		$EE_CPT_Strategy = EE_Registry::instance()->load_core('CPT_Strategy');
212
+		$espresso_CPT_taxonomies = $EE_CPT_Strategy->get_CPT_taxonomies();
213
+		if (is_array($espresso_CPT_taxonomies)) {
214
+			foreach ($espresso_CPT_taxonomies as $espresso_CPT_taxonomy => $details) {
215
+				if (isset($wp->query_vars, $wp->query_vars[ $espresso_CPT_taxonomy ])) {
216
+					return true;
217
+				}
218
+			}
219
+		}
220
+		// load espresso CPT endpoints
221
+		$espresso_CPT_endpoints = $EE_CPT_Strategy->get_CPT_endpoints();
222
+		$post_type_CPT_endpoints = array_flip($espresso_CPT_endpoints);
223
+		$post_types = (array) $this->get('post_type');
224
+		foreach ($post_types as $post_type) {
225
+			// was a post name passed ?
226
+			if (isset($post_type_CPT_endpoints[ $post_type ])) {
227
+				// kk we know this is an espresso page, but is it a specific post ?
228
+				if (! $this->get('post_name')) {
229
+					// there's no specific post name set, so maybe it's one of our endpoints like www.domain.com/events
230
+					$post_name = isset($post_type_CPT_endpoints[ $this->get('post_type') ])
231
+						? $post_type_CPT_endpoints[ $this->get('post_type') ]
232
+						: '';
233
+					// if the post type matches on of our then set the endpoint
234
+					if ($post_name) {
235
+						$this->set('post_name', $post_name);
236
+					}
237
+				}
238
+				return true;
239
+			}
240
+		}
241
+		return false;
242
+	}
243
+
244
+	/**
245
+	 * @param $key
246
+	 * @param $value
247
+	 * @return    void
248
+	 */
249
+	public function set_notice($key, $value)
250
+	{
251
+		$this->_notice[ $key ] = $value;
252
+	}
253
+
254
+
255
+	/**
256
+	 * @param $key
257
+	 * @return    mixed
258
+	 */
259
+	public function get_notice($key)
260
+	{
261
+		return isset($this->_notice[ $key ])
262
+			? $this->_notice[ $key ]
263
+			: null;
264
+	}
265
+
266
+
267
+	/**
268
+	 * @param $string
269
+	 * @return void
270
+	 */
271
+	public function add_output($string)
272
+	{
273
+		$this->_output .= $string;
274
+	}
275
+
276
+
277
+	/**
278
+	 * @return string
279
+	 */
280
+	public function get_output()
281
+	{
282
+		return $this->_output;
283
+	}
284
+
285
+
286
+	/**
287
+	 * @param $item
288
+	 * @param $key
289
+	 */
290
+	public function sanitize_text_field_for_array_walk(&$item, &$key)
291
+	{
292
+		$item = strpos($item, 'email') !== false
293
+			? sanitize_email($item)
294
+			: sanitize_text_field($item);
295
+	}
296
+
297
+
298
+	/**
299
+	 * @param null|bool $value
300
+	 * @return void
301
+	 * @throws EE_Error
302
+	 * @throws ReflectionException
303
+	 */
304
+	public function set_espresso_page($value = null)
305
+	{
306
+		$this->request->set(
307
+			'is_espresso_page',
308
+			! empty($value)
309
+				? $value
310
+				: $this->test_for_espresso_page()
311
+		);
312
+	}
313
+
314
+
315
+	/**
316
+	 * @return    mixed
317
+	 */
318
+	public function is_espresso_page()
319
+	{
320
+		return $this->request->is_set('is_espresso_page');
321
+	}
322
+
323
+
324
+	/**
325
+	 * returns contents of $_REQUEST
326
+	 *
327
+	 * @return array
328
+	 */
329
+	public function params()
330
+	{
331
+		return $this->request->params();
332
+	}
333
+
334
+
335
+	/**
336
+	 * @param      $key
337
+	 * @param      $value
338
+	 * @param bool $override_ee
339
+	 * @return    void
340
+	 */
341
+	public function set($key, $value, $override_ee = false)
342
+	{
343
+		$this->request->set($key, $value, $override_ee);
344
+	}
345
+
346
+
347
+	/**
348
+	 * @param      $key
349
+	 * @param null $default
350
+	 * @return    mixed
351
+	 */
352
+	public function get($key, $default = null)
353
+	{
354
+		return $this->request->get($key, $default);
355
+	}
356
+
357
+
358
+	/**
359
+	 * check if param exists
360
+	 *
361
+	 * @param $key
362
+	 * @return    boolean
363
+	 */
364
+	public function is_set($key)
365
+	{
366
+		return $this->request->is_set($key);
367
+	}
368
+
369
+
370
+	/**
371
+	 * remove param
372
+	 *
373
+	 * @param $key
374
+	 * @return    void
375
+	 */
376
+	public function un_set($key)
377
+	{
378
+		$this->request->un_set($key);
379
+	}
380 380
 }
Please login to merge, or discard this patch.
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
     public function parse_request($wp = null)
66 66
     {
67 67
         // if somebody forgot to provide us with WP, that's ok because its global
68
-        if (! $wp instanceof WP) {
68
+        if ( ! $wp instanceof WP) {
69 69
             global $wp;
70 70
         }
71 71
         $this->set_request_vars($wp);
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
      */
81 81
     public function set_request_vars($wp = null)
82 82
     {
83
-        if (! is_admin()) {
83
+        if ( ! is_admin()) {
84 84
             // set request post_id
85 85
             $this->request->set('post_id', $this->get_post_id_from_request($wp));
86 86
             // set request post name
@@ -99,17 +99,17 @@  discard block
 block discarded – undo
99 99
      */
100 100
     public function get_post_id_from_request($wp = null)
101 101
     {
102
-        if (! $wp instanceof WP) {
102
+        if ( ! $wp instanceof WP) {
103 103
             global $wp;
104 104
         }
105 105
         $post_id = null;
106 106
         if (isset($wp->query_vars['p'])) {
107 107
             $post_id = $wp->query_vars['p'];
108 108
         }
109
-        if (! $post_id && isset($wp->query_vars['page_id'])) {
109
+        if ( ! $post_id && isset($wp->query_vars['page_id'])) {
110 110
             $post_id = $wp->query_vars['page_id'];
111 111
         }
112
-        if (! $post_id && $wp->request !== null && is_numeric(basename($wp->request))) {
112
+        if ( ! $post_id && $wp->request !== null && is_numeric(basename($wp->request))) {
113 113
             $post_id = basename($wp->request);
114 114
         }
115 115
         return $post_id;
@@ -122,19 +122,19 @@  discard block
 block discarded – undo
122 122
      */
123 123
     public function get_post_name_from_request($wp = null)
124 124
     {
125
-        if (! $wp instanceof WP) {
125
+        if ( ! $wp instanceof WP) {
126 126
             global $wp;
127 127
         }
128 128
         $post_name = null;
129 129
         if (isset($wp->query_vars['name']) && ! empty($wp->query_vars['name'])) {
130 130
             $post_name = $wp->query_vars['name'];
131 131
         }
132
-        if (! $post_name && isset($wp->query_vars['pagename']) && ! empty($wp->query_vars['pagename'])) {
132
+        if ( ! $post_name && isset($wp->query_vars['pagename']) && ! empty($wp->query_vars['pagename'])) {
133 133
             $post_name = $wp->query_vars['pagename'];
134 134
         }
135
-        if (! $post_name && $wp->request !== null && ! empty($wp->request)) {
135
+        if ( ! $post_name && $wp->request !== null && ! empty($wp->request)) {
136 136
             $possible_post_name = basename($wp->request);
137
-            if (! is_numeric($possible_post_name)) {
137
+            if ( ! is_numeric($possible_post_name)) {
138 138
                 /** @type WPDB $wpdb */
139 139
                 global $wpdb;
140 140
                 $SQL =
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
                 }
146 146
             }
147 147
         }
148
-        if (! $post_name && $this->get('post_id')) {
148
+        if ( ! $post_name && $this->get('post_id')) {
149 149
             /** @type WPDB $wpdb */
150 150
             global $wpdb;
151 151
             $SQL =
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
      */
166 166
     public function get_post_type_from_request($wp = null)
167 167
     {
168
-        if (! $wp instanceof WP) {
168
+        if ( ! $wp instanceof WP) {
169 169
             global $wp;
170 170
         }
171 171
         return isset($wp->query_vars['post_type'])
@@ -186,7 +186,7 @@  discard block
 block discarded – undo
186 186
         if ($post_id) {
187 187
             $current_page_permalink = get_permalink($post_id);
188 188
         } else {
189
-            if (! $wp instanceof WP) {
189
+            if ( ! $wp instanceof WP) {
190 190
                 global $wp;
191 191
             }
192 192
             if ($wp->request) {
@@ -212,7 +212,7 @@  discard block
 block discarded – undo
212 212
         $espresso_CPT_taxonomies = $EE_CPT_Strategy->get_CPT_taxonomies();
213 213
         if (is_array($espresso_CPT_taxonomies)) {
214 214
             foreach ($espresso_CPT_taxonomies as $espresso_CPT_taxonomy => $details) {
215
-                if (isset($wp->query_vars, $wp->query_vars[ $espresso_CPT_taxonomy ])) {
215
+                if (isset($wp->query_vars, $wp->query_vars[$espresso_CPT_taxonomy])) {
216 216
                     return true;
217 217
                 }
218 218
             }
@@ -223,12 +223,12 @@  discard block
 block discarded – undo
223 223
         $post_types = (array) $this->get('post_type');
224 224
         foreach ($post_types as $post_type) {
225 225
             // was a post name passed ?
226
-            if (isset($post_type_CPT_endpoints[ $post_type ])) {
226
+            if (isset($post_type_CPT_endpoints[$post_type])) {
227 227
                 // kk we know this is an espresso page, but is it a specific post ?
228
-                if (! $this->get('post_name')) {
228
+                if ( ! $this->get('post_name')) {
229 229
                     // there's no specific post name set, so maybe it's one of our endpoints like www.domain.com/events
230
-                    $post_name = isset($post_type_CPT_endpoints[ $this->get('post_type') ])
231
-                        ? $post_type_CPT_endpoints[ $this->get('post_type') ]
230
+                    $post_name = isset($post_type_CPT_endpoints[$this->get('post_type')])
231
+                        ? $post_type_CPT_endpoints[$this->get('post_type')]
232 232
                         : '';
233 233
                     // if the post type matches on of our then set the endpoint
234 234
                     if ($post_name) {
@@ -248,7 +248,7 @@  discard block
 block discarded – undo
248 248
      */
249 249
     public function set_notice($key, $value)
250 250
     {
251
-        $this->_notice[ $key ] = $value;
251
+        $this->_notice[$key] = $value;
252 252
     }
253 253
 
254 254
 
@@ -258,8 +258,8 @@  discard block
 block discarded – undo
258 258
      */
259 259
     public function get_notice($key)
260 260
     {
261
-        return isset($this->_notice[ $key ])
262
-            ? $this->_notice[ $key ]
261
+        return isset($this->_notice[$key])
262
+            ? $this->_notice[$key]
263 263
             : null;
264 264
     }
265 265
 
Please login to merge, or discard this patch.
core/EE_Maintenance_Mode.core.php 2 patches
Indentation   +327 added lines, -327 removed lines patch added patch discarded remove patch
@@ -14,333 +14,333 @@
 block discarded – undo
14 14
 class EE_Maintenance_Mode implements ResettableInterface
15 15
 {
16 16
 
17
-    /**
18
-     * constants available to client code for interpreting the values of EE_Maintenance_Mode::level().
19
-     * level_0_not_in_maintenance means the site is NOT in maintenance mode (so everything's normal)
20
-     */
21
-    const level_0_not_in_maintenance = 0;
22
-
23
-    /**
24
-     * level_1_frontend_only_maintenance means that the site's frontend EE code should be completely disabled
25
-     * but the admin backend should be running as normal. Maybe an admin can view the frontend though
26
-     */
27
-    const level_1_frontend_only_maintenance = 1;
28
-
29
-    /**
30
-     * level_2_complete_maintenance means the frontend AND EE backend code are disabled. The only system running
31
-     * is the maintenance mode stuff, which will require users to update all addons, and then finish running all
32
-     * migration scripts before taking the site out of maintenance mode
33
-     */
34
-    const level_2_complete_maintenance = 2;
35
-
36
-    /**
37
-     * the name of the option which stores the current level of maintenance mode
38
-     */
39
-    const option_name_maintenance_mode = 'ee_maintenance_mode';
40
-
41
-
42
-    /**
43
-     * @var EE_Maintenance_Mode $_instance
44
-     */
45
-    private static $_instance;
46
-
47
-    /**
48
-     * @var EE_Registry $EE
49
-     */
50
-    protected $EE;
51
-
52
-
53
-    /**
54
-     * @singleton method used to instantiate class object
55
-     * @return EE_Maintenance_Mode
56
-     */
57
-    public static function instance()
58
-    {
59
-        // check if class object is instantiated
60
-        if (! self::$_instance instanceof EE_Maintenance_Mode) {
61
-            self::$_instance = new self();
62
-        }
63
-        return self::$_instance;
64
-    }
65
-
66
-
67
-    /**
68
-     * Resets maintenance mode (mostly just re-checks whether or not we should be in maintenance mode)
69
-     *
70
-     * @return EE_Maintenance_Mode
71
-     */
72
-    public static function reset()
73
-    {
74
-        self::instance()->set_maintenance_mode_if_db_old();
75
-        return self::instance();
76
-    }
77
-
78
-
79
-    /**
80
-     *private constructor to prevent direct creation
81
-     */
82
-    private function __construct()
83
-    {
84
-        // if M-Mode level 2 is engaged, we still need basic assets loaded
85
-        add_action('wp_enqueue_scripts', array($this, 'load_assets_required_for_m_mode'));
86
-        // shut 'er down down for maintenance ?
87
-        add_filter('the_content', array($this, 'the_content'), 2);
88
-        // add powered by EE msg
89
-        add_action('shutdown', array($this, 'display_maintenance_mode_notice'), 10);
90
-    }
91
-
92
-
93
-    /**
94
-     * retrieves the maintenance mode option value from the db
95
-     *
96
-     * @return int
97
-     */
98
-    public function real_level()
99
-    {
100
-        return (int) get_option(self::option_name_maintenance_mode, EE_Maintenance_Mode::level_0_not_in_maintenance);
101
-    }
102
-
103
-
104
-    /**
105
-     * Returns whether or not the models reportedly are able to run queries or not
106
-     * (ie, if the system thinks their tables are present and up-to-date).
107
-     *
108
-     * @return boolean
109
-     */
110
-    public function models_can_query()
111
-    {
112
-        return $this->real_level() !== EE_Maintenance_Mode::level_2_complete_maintenance;
113
-    }
114
-
115
-
116
-    /**
117
-     * Determines whether or not we're in maintenance mode and what level. However, while the site
118
-     * is in level 1 maintenance, and an admin visits the frontend, this function makes it appear
119
-     * to them as if teh site isn't in maintenance mode.
120
-     * EE_Maintenance_Mode::level_0_not_in_maintenance => not in maintenance mode (in normal mode)
121
-     * EE_Maintenance_Mode::level_1_frontend_only_maintenance=> frontend-only maintenance mode
122
-     * EE_Maintenance_Mode::level_2_complete_maintenance => frontend and backend maintenance mode
123
-     *
124
-     * @return int
125
-     */
126
-    public function level()
127
-    {
128
-        $maintenance_mode_level = $this->real_level();
129
-        // if this is an admin request, we'll be honest... except if it's ajax, because that might be from the frontend
130
-        if ($maintenance_mode_level === EE_Maintenance_Mode::level_1_frontend_only_maintenance// we're in level 1
131
-            && ((defined('DOING_AJAX') && DOING_AJAX) || ! is_admin()) // on non-ajax frontend requests
132
-            && current_user_can('administrator') // when the user is an admin
133
-        ) {
134
-            $maintenance_mode_level = EE_Maintenance_Mode::level_0_not_in_maintenance;
135
-        }
136
-        return $maintenance_mode_level;
137
-    }
138
-
139
-
140
-    /**
141
-     * Determines if we need to put EE in maintenance mode because the database needs updating
142
-     *
143
-     * @return boolean true if DB is old and maintenance mode was triggered; false otherwise
144
-     */
145
-    public function set_maintenance_mode_if_db_old()
146
-    {
147
-        EE_Registry::instance()->load_core('Data_Migration_Manager');
148
-        if (EE_Data_Migration_Manager::instance()->check_for_applicable_data_migration_scripts()) {
149
-            update_option(self::option_name_maintenance_mode, self::level_2_complete_maintenance);
150
-            return true;
151
-        }
152
-        if ($this->level() === self::level_2_complete_maintenance) {
153
-            // we also want to handle the opposite: if the site is mm2, but there aren't any migrations to run
154
-            // then we shouldn't be in mm2. (Maybe an addon got deactivated?)
155
-            update_option(self::option_name_maintenance_mode, self::level_0_not_in_maintenance);
156
-            return false;
157
-        }
158
-        return false;
159
-    }
160
-
161
-
162
-    /**
163
-     * Updates the maintenance level on the site
164
-     *
165
-     * @param int $level
166
-     * @return void
167
-     */
168
-    public function set_maintenance_level($level)
169
-    {
170
-        do_action('AHEE__EE_Maintenance_Mode__set_maintenance_level', $level);
171
-        update_option(self::option_name_maintenance_mode, (int) $level);
172
-    }
173
-
174
-
175
-    /**
176
-     * returns TRUE if M-Mode is engaged and the current request is not for the admin
177
-     *
178
-     * @return    string
179
-     */
180
-    public static function disable_frontend_for_maintenance()
181
-    {
182
-        return (! is_admin() && EE_Maintenance_Mode::instance()->level());
183
-    }
184
-
185
-
186
-    /**
187
-     * @return void
188
-     */
189
-    public function load_assets_required_for_m_mode()
190
-    {
191
-        if ($this->real_level() === EE_Maintenance_Mode::level_2_complete_maintenance
192
-            && ! wp_script_is('espresso_core')
193
-        ) {
194
-            wp_register_style(
195
-                'espresso_default',
196
-                EE_GLOBAL_ASSETS_URL . 'css/espresso_default.css',
197
-                array('dashicons'),
198
-                EVENT_ESPRESSO_VERSION
199
-            );
200
-            wp_enqueue_style('espresso_default');
201
-            wp_register_script(
202
-                'espresso_core',
203
-                EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js',
204
-                array('jquery'),
205
-                EVENT_ESPRESSO_VERSION,
206
-                true
207
-            );
208
-            wp_enqueue_script('espresso_core');
209
-        }
210
-    }
211
-
212
-
213
-    /**
214
-     * replacement EE CPT template that displays message notifying site visitors
215
-     * that EE has been temporarily placed into maintenance mode
216
-     * does NOT get called on non-EE-CPT requests
217
-     *
218
-     * @return    string
219
-     */
220
-    public static function template_include()
221
-    {
222
-        // shut 'er down down for maintenance ? then don't use any of our templates for our endpoints
223
-        return get_template_directory() . '/index.php';
224
-    }
225
-
226
-
227
-    /**
228
-     * displays message notifying site visitors that EE has been temporarily
229
-     * placed into maintenance mode when post_type != EE CPT
230
-     *
231
-     * @param string $the_content
232
-     * @return string
233
-     */
234
-    public function the_content($the_content)
235
-    {
236
-        // check if M-mode is engaged and for EE shortcode
237
-        if ($this->level() && strpos($the_content, '[ESPRESSO_') !== false) {
238
-            // this can eventually be moved to a template, or edited via admin. But for now...
239
-            $the_content = sprintf(
240
-                esc_html__(
241
-                    '%sMaintenance Mode%sEvent Registration has been temporarily closed while system maintenance is being performed. We\'re sorry for any inconveniences this may have caused. Please try back again later.%s',
242
-                    'event_espresso'
243
-                ),
244
-                '<h3>',
245
-                '</h3><p>',
246
-                '</p>'
247
-            );
248
-        }
249
-        return $the_content;
250
-    }
251
-
252
-
253
-    /**
254
-     * displays message on frontend of site notifying admin that EE has been temporarily placed into maintenance mode
255
-     */
256
-    public function display_maintenance_mode_notice()
257
-    {
258
-        // check if M-mode is engaged and for EE shortcode
259
-        if (! (defined('DOING_AJAX') && DOING_AJAX)
260
-            && $this->real_level()
261
-            && ! is_admin()
262
-            && current_user_can('administrator')
263
-            && EE_Registry::instance()->REQ->is_espresso_page()
264
-        ) {
265
-            printf(
266
-                esc_html__(
267
-                    '%sclose%sEvent Registration is currently disabled because Event Espresso has been placed into Maintenance Mode. To change Maintenance Mode settings, click here %sEE Maintenance Mode Admin Page%s',
268
-                    'event_espresso'
269
-                ),
270
-                '<div id="ee-m-mode-admin-notice-dv" class="ee-really-important-notice-dv"><a class="close-espresso-notice" title="',
271
-                '"><span class="dashicons dashicons-no"></span></a><p>',
272
-                ' &raquo; <a href="' . add_query_arg(
273
-                    array('page' => 'espresso_maintenance_settings'),
274
-                    admin_url('admin.php')
275
-                ) . '">',
276
-                '</a></p></div>'
277
-            );
278
-        }
279
-    }
280
-    // espresso-notices important-notice ee-attention
281
-
282
-
283
-    /**
284
-     * override magic methods
285
-     */
286
-    final public function __destruct()
287
-    {
288
-    }
289
-
290
-
291
-    final public function __call($a, $b)
292
-    {
293
-    }
294
-
295
-
296
-    final public function __get($a)
297
-    {
298
-    }
299
-
300
-
301
-    final public function __set($a, $b)
302
-    {
303
-    }
304
-
305
-
306
-    final public function __isset($a)
307
-    {
308
-    }
309
-
310
-
311
-    final public function __unset($a)
312
-    {
313
-    }
314
-
315
-
316
-    final public function __sleep()
317
-    {
318
-        return array();
319
-    }
320
-
321
-
322
-    final public function __wakeup()
323
-    {
324
-    }
325
-
326
-
327
-    final public function __invoke()
328
-    {
329
-    }
330
-
331
-
332
-    final public static function __set_state($a = null)
333
-    {
334
-        return EE_Maintenance_Mode::instance();
335
-    }
336
-
337
-
338
-    final public function __clone()
339
-    {
340
-    }
17
+	/**
18
+	 * constants available to client code for interpreting the values of EE_Maintenance_Mode::level().
19
+	 * level_0_not_in_maintenance means the site is NOT in maintenance mode (so everything's normal)
20
+	 */
21
+	const level_0_not_in_maintenance = 0;
22
+
23
+	/**
24
+	 * level_1_frontend_only_maintenance means that the site's frontend EE code should be completely disabled
25
+	 * but the admin backend should be running as normal. Maybe an admin can view the frontend though
26
+	 */
27
+	const level_1_frontend_only_maintenance = 1;
28
+
29
+	/**
30
+	 * level_2_complete_maintenance means the frontend AND EE backend code are disabled. The only system running
31
+	 * is the maintenance mode stuff, which will require users to update all addons, and then finish running all
32
+	 * migration scripts before taking the site out of maintenance mode
33
+	 */
34
+	const level_2_complete_maintenance = 2;
35
+
36
+	/**
37
+	 * the name of the option which stores the current level of maintenance mode
38
+	 */
39
+	const option_name_maintenance_mode = 'ee_maintenance_mode';
40
+
41
+
42
+	/**
43
+	 * @var EE_Maintenance_Mode $_instance
44
+	 */
45
+	private static $_instance;
46
+
47
+	/**
48
+	 * @var EE_Registry $EE
49
+	 */
50
+	protected $EE;
51
+
52
+
53
+	/**
54
+	 * @singleton method used to instantiate class object
55
+	 * @return EE_Maintenance_Mode
56
+	 */
57
+	public static function instance()
58
+	{
59
+		// check if class object is instantiated
60
+		if (! self::$_instance instanceof EE_Maintenance_Mode) {
61
+			self::$_instance = new self();
62
+		}
63
+		return self::$_instance;
64
+	}
65
+
66
+
67
+	/**
68
+	 * Resets maintenance mode (mostly just re-checks whether or not we should be in maintenance mode)
69
+	 *
70
+	 * @return EE_Maintenance_Mode
71
+	 */
72
+	public static function reset()
73
+	{
74
+		self::instance()->set_maintenance_mode_if_db_old();
75
+		return self::instance();
76
+	}
77
+
78
+
79
+	/**
80
+	 *private constructor to prevent direct creation
81
+	 */
82
+	private function __construct()
83
+	{
84
+		// if M-Mode level 2 is engaged, we still need basic assets loaded
85
+		add_action('wp_enqueue_scripts', array($this, 'load_assets_required_for_m_mode'));
86
+		// shut 'er down down for maintenance ?
87
+		add_filter('the_content', array($this, 'the_content'), 2);
88
+		// add powered by EE msg
89
+		add_action('shutdown', array($this, 'display_maintenance_mode_notice'), 10);
90
+	}
91
+
92
+
93
+	/**
94
+	 * retrieves the maintenance mode option value from the db
95
+	 *
96
+	 * @return int
97
+	 */
98
+	public function real_level()
99
+	{
100
+		return (int) get_option(self::option_name_maintenance_mode, EE_Maintenance_Mode::level_0_not_in_maintenance);
101
+	}
102
+
103
+
104
+	/**
105
+	 * Returns whether or not the models reportedly are able to run queries or not
106
+	 * (ie, if the system thinks their tables are present and up-to-date).
107
+	 *
108
+	 * @return boolean
109
+	 */
110
+	public function models_can_query()
111
+	{
112
+		return $this->real_level() !== EE_Maintenance_Mode::level_2_complete_maintenance;
113
+	}
114
+
115
+
116
+	/**
117
+	 * Determines whether or not we're in maintenance mode and what level. However, while the site
118
+	 * is in level 1 maintenance, and an admin visits the frontend, this function makes it appear
119
+	 * to them as if teh site isn't in maintenance mode.
120
+	 * EE_Maintenance_Mode::level_0_not_in_maintenance => not in maintenance mode (in normal mode)
121
+	 * EE_Maintenance_Mode::level_1_frontend_only_maintenance=> frontend-only maintenance mode
122
+	 * EE_Maintenance_Mode::level_2_complete_maintenance => frontend and backend maintenance mode
123
+	 *
124
+	 * @return int
125
+	 */
126
+	public function level()
127
+	{
128
+		$maintenance_mode_level = $this->real_level();
129
+		// if this is an admin request, we'll be honest... except if it's ajax, because that might be from the frontend
130
+		if ($maintenance_mode_level === EE_Maintenance_Mode::level_1_frontend_only_maintenance// we're in level 1
131
+			&& ((defined('DOING_AJAX') && DOING_AJAX) || ! is_admin()) // on non-ajax frontend requests
132
+			&& current_user_can('administrator') // when the user is an admin
133
+		) {
134
+			$maintenance_mode_level = EE_Maintenance_Mode::level_0_not_in_maintenance;
135
+		}
136
+		return $maintenance_mode_level;
137
+	}
138
+
139
+
140
+	/**
141
+	 * Determines if we need to put EE in maintenance mode because the database needs updating
142
+	 *
143
+	 * @return boolean true if DB is old and maintenance mode was triggered; false otherwise
144
+	 */
145
+	public function set_maintenance_mode_if_db_old()
146
+	{
147
+		EE_Registry::instance()->load_core('Data_Migration_Manager');
148
+		if (EE_Data_Migration_Manager::instance()->check_for_applicable_data_migration_scripts()) {
149
+			update_option(self::option_name_maintenance_mode, self::level_2_complete_maintenance);
150
+			return true;
151
+		}
152
+		if ($this->level() === self::level_2_complete_maintenance) {
153
+			// we also want to handle the opposite: if the site is mm2, but there aren't any migrations to run
154
+			// then we shouldn't be in mm2. (Maybe an addon got deactivated?)
155
+			update_option(self::option_name_maintenance_mode, self::level_0_not_in_maintenance);
156
+			return false;
157
+		}
158
+		return false;
159
+	}
160
+
161
+
162
+	/**
163
+	 * Updates the maintenance level on the site
164
+	 *
165
+	 * @param int $level
166
+	 * @return void
167
+	 */
168
+	public function set_maintenance_level($level)
169
+	{
170
+		do_action('AHEE__EE_Maintenance_Mode__set_maintenance_level', $level);
171
+		update_option(self::option_name_maintenance_mode, (int) $level);
172
+	}
173
+
174
+
175
+	/**
176
+	 * returns TRUE if M-Mode is engaged and the current request is not for the admin
177
+	 *
178
+	 * @return    string
179
+	 */
180
+	public static function disable_frontend_for_maintenance()
181
+	{
182
+		return (! is_admin() && EE_Maintenance_Mode::instance()->level());
183
+	}
184
+
185
+
186
+	/**
187
+	 * @return void
188
+	 */
189
+	public function load_assets_required_for_m_mode()
190
+	{
191
+		if ($this->real_level() === EE_Maintenance_Mode::level_2_complete_maintenance
192
+			&& ! wp_script_is('espresso_core')
193
+		) {
194
+			wp_register_style(
195
+				'espresso_default',
196
+				EE_GLOBAL_ASSETS_URL . 'css/espresso_default.css',
197
+				array('dashicons'),
198
+				EVENT_ESPRESSO_VERSION
199
+			);
200
+			wp_enqueue_style('espresso_default');
201
+			wp_register_script(
202
+				'espresso_core',
203
+				EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js',
204
+				array('jquery'),
205
+				EVENT_ESPRESSO_VERSION,
206
+				true
207
+			);
208
+			wp_enqueue_script('espresso_core');
209
+		}
210
+	}
211
+
212
+
213
+	/**
214
+	 * replacement EE CPT template that displays message notifying site visitors
215
+	 * that EE has been temporarily placed into maintenance mode
216
+	 * does NOT get called on non-EE-CPT requests
217
+	 *
218
+	 * @return    string
219
+	 */
220
+	public static function template_include()
221
+	{
222
+		// shut 'er down down for maintenance ? then don't use any of our templates for our endpoints
223
+		return get_template_directory() . '/index.php';
224
+	}
225
+
226
+
227
+	/**
228
+	 * displays message notifying site visitors that EE has been temporarily
229
+	 * placed into maintenance mode when post_type != EE CPT
230
+	 *
231
+	 * @param string $the_content
232
+	 * @return string
233
+	 */
234
+	public function the_content($the_content)
235
+	{
236
+		// check if M-mode is engaged and for EE shortcode
237
+		if ($this->level() && strpos($the_content, '[ESPRESSO_') !== false) {
238
+			// this can eventually be moved to a template, or edited via admin. But for now...
239
+			$the_content = sprintf(
240
+				esc_html__(
241
+					'%sMaintenance Mode%sEvent Registration has been temporarily closed while system maintenance is being performed. We\'re sorry for any inconveniences this may have caused. Please try back again later.%s',
242
+					'event_espresso'
243
+				),
244
+				'<h3>',
245
+				'</h3><p>',
246
+				'</p>'
247
+			);
248
+		}
249
+		return $the_content;
250
+	}
251
+
252
+
253
+	/**
254
+	 * displays message on frontend of site notifying admin that EE has been temporarily placed into maintenance mode
255
+	 */
256
+	public function display_maintenance_mode_notice()
257
+	{
258
+		// check if M-mode is engaged and for EE shortcode
259
+		if (! (defined('DOING_AJAX') && DOING_AJAX)
260
+			&& $this->real_level()
261
+			&& ! is_admin()
262
+			&& current_user_can('administrator')
263
+			&& EE_Registry::instance()->REQ->is_espresso_page()
264
+		) {
265
+			printf(
266
+				esc_html__(
267
+					'%sclose%sEvent Registration is currently disabled because Event Espresso has been placed into Maintenance Mode. To change Maintenance Mode settings, click here %sEE Maintenance Mode Admin Page%s',
268
+					'event_espresso'
269
+				),
270
+				'<div id="ee-m-mode-admin-notice-dv" class="ee-really-important-notice-dv"><a class="close-espresso-notice" title="',
271
+				'"><span class="dashicons dashicons-no"></span></a><p>',
272
+				' &raquo; <a href="' . add_query_arg(
273
+					array('page' => 'espresso_maintenance_settings'),
274
+					admin_url('admin.php')
275
+				) . '">',
276
+				'</a></p></div>'
277
+			);
278
+		}
279
+	}
280
+	// espresso-notices important-notice ee-attention
281
+
282
+
283
+	/**
284
+	 * override magic methods
285
+	 */
286
+	final public function __destruct()
287
+	{
288
+	}
289
+
290
+
291
+	final public function __call($a, $b)
292
+	{
293
+	}
294
+
295
+
296
+	final public function __get($a)
297
+	{
298
+	}
299
+
300
+
301
+	final public function __set($a, $b)
302
+	{
303
+	}
304
+
305
+
306
+	final public function __isset($a)
307
+	{
308
+	}
309
+
310
+
311
+	final public function __unset($a)
312
+	{
313
+	}
314
+
315
+
316
+	final public function __sleep()
317
+	{
318
+		return array();
319
+	}
320
+
321
+
322
+	final public function __wakeup()
323
+	{
324
+	}
325
+
326
+
327
+	final public function __invoke()
328
+	{
329
+	}
330
+
331
+
332
+	final public static function __set_state($a = null)
333
+	{
334
+		return EE_Maintenance_Mode::instance();
335
+	}
336
+
337
+
338
+	final public function __clone()
339
+	{
340
+	}
341 341
 
342 342
 
343
-    final public static function __callStatic($a, $b)
344
-    {
345
-    }
343
+	final public static function __callStatic($a, $b)
344
+	{
345
+	}
346 346
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
     public static function instance()
58 58
     {
59 59
         // check if class object is instantiated
60
-        if (! self::$_instance instanceof EE_Maintenance_Mode) {
60
+        if ( ! self::$_instance instanceof EE_Maintenance_Mode) {
61 61
             self::$_instance = new self();
62 62
         }
63 63
         return self::$_instance;
@@ -179,7 +179,7 @@  discard block
 block discarded – undo
179 179
      */
180 180
     public static function disable_frontend_for_maintenance()
181 181
     {
182
-        return (! is_admin() && EE_Maintenance_Mode::instance()->level());
182
+        return ( ! is_admin() && EE_Maintenance_Mode::instance()->level());
183 183
     }
184 184
 
185 185
 
@@ -193,14 +193,14 @@  discard block
 block discarded – undo
193 193
         ) {
194 194
             wp_register_style(
195 195
                 'espresso_default',
196
-                EE_GLOBAL_ASSETS_URL . 'css/espresso_default.css',
196
+                EE_GLOBAL_ASSETS_URL.'css/espresso_default.css',
197 197
                 array('dashicons'),
198 198
                 EVENT_ESPRESSO_VERSION
199 199
             );
200 200
             wp_enqueue_style('espresso_default');
201 201
             wp_register_script(
202 202
                 'espresso_core',
203
-                EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js',
203
+                EE_GLOBAL_ASSETS_URL.'scripts/espresso_core.js',
204 204
                 array('jquery'),
205 205
                 EVENT_ESPRESSO_VERSION,
206 206
                 true
@@ -220,7 +220,7 @@  discard block
 block discarded – undo
220 220
     public static function template_include()
221 221
     {
222 222
         // shut 'er down down for maintenance ? then don't use any of our templates for our endpoints
223
-        return get_template_directory() . '/index.php';
223
+        return get_template_directory().'/index.php';
224 224
     }
225 225
 
226 226
 
@@ -256,7 +256,7 @@  discard block
 block discarded – undo
256 256
     public function display_maintenance_mode_notice()
257 257
     {
258 258
         // check if M-mode is engaged and for EE shortcode
259
-        if (! (defined('DOING_AJAX') && DOING_AJAX)
259
+        if ( ! (defined('DOING_AJAX') && DOING_AJAX)
260 260
             && $this->real_level()
261 261
             && ! is_admin()
262 262
             && current_user_can('administrator')
@@ -269,10 +269,10 @@  discard block
 block discarded – undo
269 269
                 ),
270 270
                 '<div id="ee-m-mode-admin-notice-dv" class="ee-really-important-notice-dv"><a class="close-espresso-notice" title="',
271 271
                 '"><span class="dashicons dashicons-no"></span></a><p>',
272
-                ' &raquo; <a href="' . add_query_arg(
272
+                ' &raquo; <a href="'.add_query_arg(
273 273
                     array('page' => 'espresso_maintenance_settings'),
274 274
                     admin_url('admin.php')
275
-                ) . '">',
275
+                ).'">',
276 276
                 '</a></p></div>'
277 277
             );
278 278
         }
Please login to merge, or discard this patch.
core/admin/EE_Admin_Page_Menu_Map.core.php 2 patches
Indentation   +357 added lines, -357 removed lines patch added patch discarded remove patch
@@ -11,257 +11,257 @@  discard block
 block discarded – undo
11 11
 {
12 12
 
13 13
 
14
-    /**
15
-     * The title for the menu page. (the page the menu links to)
16
-     *
17
-     * @since  4.4.0
18
-     * @var string
19
-     */
20
-    public $title;
21
-
22
-
23
-    /**
24
-     * The label for the menu item. (What shows up in the actual menu).
25
-     *
26
-     * @since 4.4.0
27
-     * @var string
28
-     */
29
-    public $menu_label;
30
-
31
-
32
-    /**
33
-     * What menu item is the parent of this menu item.
34
-     *
35
-     * @since 4.4.0
36
-     * @var string
37
-     */
38
-    public $parent_slug;
39
-
40
-
41
-    /**
42
-     * What capability is required to access this page.
43
-     *
44
-     * @since 4.4.0
45
-     * @var string
46
-     */
47
-    public $capability = 'administrator';
48
-
49
-
50
-    /**
51
-     * What slug should be used to reference this menu item.
52
-     *
53
-     * @since 4.4.0
54
-     * @var string
55
-     */
56
-    public $menu_slug;
57
-
58
-
59
-    /**
60
-     * The callback for displaying the page that the menu references.
61
-     *
62
-     * @since 4.4.0
63
-     * @var string
64
-     */
65
-    public $menu_callback;
66
-
67
-
68
-    /**
69
-     * The EE_Admin_Page_Init attached to this map.
70
-     *
71
-     * @var EE_Admin_Page_Init
72
-     */
73
-    public $admin_init_page;
74
-
75
-
76
-    /**
77
-     * The EE specific group this menu item belongs in (group slug).
78
-     *
79
-     * @since 4.4.0
80
-     * @var string
81
-     */
82
-    public $menu_group;
83
-
84
-
85
-    /**
86
-     * What order this item should be in the menu.
87
-     *
88
-     * @since 4.4.0
89
-     * @var int
90
-     */
91
-    public $menu_order;
92
-
93
-
94
-    const NONE = 0;
95
-    const BLOG_ADMIN_ONLY = 1;
96
-    const BLOG_AND_NETWORK_ADMIN = 2;
97
-    const NETWORK_ADMIN_ONLY = 3;
98
-
99
-
100
-    /**
101
-     * Whether this item is displayed in the menu or not.
102
-     * Sometimes an EE Admin Page needs to register itself but is not accessible via the WordPress
103
-     * admin menu.
104
-     *
105
-     * @since 4.4.0
106
-     * @var int
107
-     */
108
-    public $show_on_menu = self::BLOG_ADMIN_ONLY;
109
-
110
-
111
-    /**
112
-     * Menu maps can define a parent slug that gets used instead of the main parent slug for the menu when
113
-     * EE_Maintenance_Mode::level_2_complete_maintenance is active.
114
-     *
115
-     * @var bool
116
-     */
117
-    public $maintenance_mode_parent = '';
118
-
119
-
120
-    /**
121
-     * Constructor.
122
-     *
123
-     * @since 4.4.0
124
-     *
125
-     * @param  array $menu_args           An array of arguments used to setup the menu
126
-     *                                    properties on construct.
127
-     * @param  array $required            An array of keys that should be in the $menu_args, this
128
-     *                                    is used to validate that the items that should be defined
129
-     *                                    are present.
130
-     * @return void
131
-     */
132
-    public function __construct($menu_args, $required)
133
-    {
134
-        // filter all args before processing so plugins can manipulate various settings for menus.
135
-        $menu_args = apply_filters(
136
-            'FHEE__EE_Admin_Page_Menu_Map__construct__menu_args',
137
-            $menu_args,
138
-            $required,
139
-            get_class($this)
140
-        );
141
-
142
-
143
-        // verify that required keys are present in the incoming array.
144
-        $missing = array_diff((array) $required, array_keys((array) $menu_args));
145
-
146
-        if (! empty($missing)) {
147
-            throw new EE_Error(
148
-                sprintf(
149
-                    __(
150
-                        '%s is missing some expected keys in the argument array.  The following keys are missing: %s',
151
-                        'event_espresso'
152
-                    ),
153
-                    get_class($this),
154
-                    implode(', ', $missing)
155
-                )
156
-            );
157
-        }
158
-
159
-        // made it here okay, so let's set the properties!
160
-        foreach ($menu_args as $prop => $value) {
161
-            switch ($prop) {
162
-                case 'show_on_menu':
163
-                    $value = (int) $value;
164
-                    break;
165
-                case 'admin_init_page':
166
-                    if (in_array('admin_init_page', $required) && ! $value instanceof EE_Admin_Page_Init) {
167
-                        throw new EE_Error(
168
-                            sprintf(
169
-                                __(
170
-                                    'The value for the "admin_init_page" argument must be an instance of an EE_Admin_Page_Init object.  Instead %s was given as the value.',
171
-                                    'event_espresso'
172
-                                ),
173
-                                print_r($value, true)
174
-                            )
175
-                        );
176
-                    }
177
-                    break;
178
-                case 'menu_callback':
179
-                    break;
180
-
181
-                default:
182
-                    $value = (string) $value;
183
-                    break;
184
-            }
185
-            if (! EEH_Class_Tools::has_property($this, $prop)) {
186
-                throw new EE_Error(
187
-                    sprintf(
188
-                        __(
189
-                            'The $menu_args coming into %s has a index key (%s) representing a property that is not defined by the class.  Perhaps there is a typo?',
190
-                            'event_espresso'
191
-                        ),
192
-                        get_class($this),
193
-                        $prop
194
-                    )
195
-                );
196
-            }
197
-            $this->{$prop} = $value;
198
-        }
199
-
200
-        // filter capabilities (both static and dynamic)
201
-        $this->capability = apply_filters('FHEE_management_capability', $this->capability, null);
202
-        $this->capability = apply_filters('FHEE_' . $this->menu_slug . '_capability', $this->capability, null);
203
-
204
-        // Might need to change parent slug depending on maintenance mode.
205
-        if (! empty($this->maintenance_mode_parent)
206
-            && EE_Maintenance_Mode::instance()->level() == EE_Maintenance_Mode::level_2_complete_maintenance
207
-        ) {
208
-            $this->parent_slug = $this->maintenance_mode_parent;
209
-        }
210
-
211
-        // if empty menu_callback let's set default (but only if we have admin page init object)
212
-        if (empty($this->menu_callback) && $this->admin_init_page instanceof EE_Admin_Page_Init) {
213
-            $this->menu_callback = array($this->admin_init_page, 'initialize_admin_page');
214
-        }
215
-    }
216
-
217
-
218
-    /**
219
-     * This method should define how the menu page gets added for this particular item
220
-     * and go ahead and define it.  Note that child classes MUST also return the result of
221
-     * the function used to register the WordPress admin page (the wp_page_slug string)
222
-     *
223
-     * @since  4.4.0
224
-     * @return string wp_page_slug.
225
-     */
226
-    abstract protected function _add_menu_page();
227
-
228
-
229
-    /**
230
-     * Called by client code to use this menu map for registering a WordPress admin page
231
-     *
232
-     * @param boolean $network_admin whether this is being added to the network admin page or not
233
-     * @since  4.4.0
234
-     */
235
-    public function add_menu_page($network_admin = false)
236
-    {
237
-
238
-        $show_on_menu_int = (int) $this->show_on_menu;
239
-        if (($network_admin
240
-             && in_array(
241
-                 $show_on_menu_int,
242
-                 array(self::BLOG_AND_NETWORK_ADMIN, self::NETWORK_ADMIN_ONLY),
243
-                 true
244
-             ))
245
-            ||
246
-            (! $network_admin
247
-             && in_array(
248
-                 $show_on_menu_int,
249
-                 array(self::BLOG_AND_NETWORK_ADMIN, self::BLOG_ADMIN_ONLY),
250
-                 true
251
-             ))) {
252
-            $wp_page_slug = $this->_add_menu_page();
253
-        } else {
254
-            $wp_page_slug = '';
255
-        }
256
-
257
-        if (! empty($wp_page_slug) && $this->admin_init_page instanceof EE_Admin_Page_Init) {
258
-            try {
259
-                $this->admin_init_page->set_page_dependencies($wp_page_slug);
260
-            } catch (EE_Error $e) {
261
-                $e->get_error();
262
-            }
263
-        }
264
-    }
14
+	/**
15
+	 * The title for the menu page. (the page the menu links to)
16
+	 *
17
+	 * @since  4.4.0
18
+	 * @var string
19
+	 */
20
+	public $title;
21
+
22
+
23
+	/**
24
+	 * The label for the menu item. (What shows up in the actual menu).
25
+	 *
26
+	 * @since 4.4.0
27
+	 * @var string
28
+	 */
29
+	public $menu_label;
30
+
31
+
32
+	/**
33
+	 * What menu item is the parent of this menu item.
34
+	 *
35
+	 * @since 4.4.0
36
+	 * @var string
37
+	 */
38
+	public $parent_slug;
39
+
40
+
41
+	/**
42
+	 * What capability is required to access this page.
43
+	 *
44
+	 * @since 4.4.0
45
+	 * @var string
46
+	 */
47
+	public $capability = 'administrator';
48
+
49
+
50
+	/**
51
+	 * What slug should be used to reference this menu item.
52
+	 *
53
+	 * @since 4.4.0
54
+	 * @var string
55
+	 */
56
+	public $menu_slug;
57
+
58
+
59
+	/**
60
+	 * The callback for displaying the page that the menu references.
61
+	 *
62
+	 * @since 4.4.0
63
+	 * @var string
64
+	 */
65
+	public $menu_callback;
66
+
67
+
68
+	/**
69
+	 * The EE_Admin_Page_Init attached to this map.
70
+	 *
71
+	 * @var EE_Admin_Page_Init
72
+	 */
73
+	public $admin_init_page;
74
+
75
+
76
+	/**
77
+	 * The EE specific group this menu item belongs in (group slug).
78
+	 *
79
+	 * @since 4.4.0
80
+	 * @var string
81
+	 */
82
+	public $menu_group;
83
+
84
+
85
+	/**
86
+	 * What order this item should be in the menu.
87
+	 *
88
+	 * @since 4.4.0
89
+	 * @var int
90
+	 */
91
+	public $menu_order;
92
+
93
+
94
+	const NONE = 0;
95
+	const BLOG_ADMIN_ONLY = 1;
96
+	const BLOG_AND_NETWORK_ADMIN = 2;
97
+	const NETWORK_ADMIN_ONLY = 3;
98
+
99
+
100
+	/**
101
+	 * Whether this item is displayed in the menu or not.
102
+	 * Sometimes an EE Admin Page needs to register itself but is not accessible via the WordPress
103
+	 * admin menu.
104
+	 *
105
+	 * @since 4.4.0
106
+	 * @var int
107
+	 */
108
+	public $show_on_menu = self::BLOG_ADMIN_ONLY;
109
+
110
+
111
+	/**
112
+	 * Menu maps can define a parent slug that gets used instead of the main parent slug for the menu when
113
+	 * EE_Maintenance_Mode::level_2_complete_maintenance is active.
114
+	 *
115
+	 * @var bool
116
+	 */
117
+	public $maintenance_mode_parent = '';
118
+
119
+
120
+	/**
121
+	 * Constructor.
122
+	 *
123
+	 * @since 4.4.0
124
+	 *
125
+	 * @param  array $menu_args           An array of arguments used to setup the menu
126
+	 *                                    properties on construct.
127
+	 * @param  array $required            An array of keys that should be in the $menu_args, this
128
+	 *                                    is used to validate that the items that should be defined
129
+	 *                                    are present.
130
+	 * @return void
131
+	 */
132
+	public function __construct($menu_args, $required)
133
+	{
134
+		// filter all args before processing so plugins can manipulate various settings for menus.
135
+		$menu_args = apply_filters(
136
+			'FHEE__EE_Admin_Page_Menu_Map__construct__menu_args',
137
+			$menu_args,
138
+			$required,
139
+			get_class($this)
140
+		);
141
+
142
+
143
+		// verify that required keys are present in the incoming array.
144
+		$missing = array_diff((array) $required, array_keys((array) $menu_args));
145
+
146
+		if (! empty($missing)) {
147
+			throw new EE_Error(
148
+				sprintf(
149
+					__(
150
+						'%s is missing some expected keys in the argument array.  The following keys are missing: %s',
151
+						'event_espresso'
152
+					),
153
+					get_class($this),
154
+					implode(', ', $missing)
155
+				)
156
+			);
157
+		}
158
+
159
+		// made it here okay, so let's set the properties!
160
+		foreach ($menu_args as $prop => $value) {
161
+			switch ($prop) {
162
+				case 'show_on_menu':
163
+					$value = (int) $value;
164
+					break;
165
+				case 'admin_init_page':
166
+					if (in_array('admin_init_page', $required) && ! $value instanceof EE_Admin_Page_Init) {
167
+						throw new EE_Error(
168
+							sprintf(
169
+								__(
170
+									'The value for the "admin_init_page" argument must be an instance of an EE_Admin_Page_Init object.  Instead %s was given as the value.',
171
+									'event_espresso'
172
+								),
173
+								print_r($value, true)
174
+							)
175
+						);
176
+					}
177
+					break;
178
+				case 'menu_callback':
179
+					break;
180
+
181
+				default:
182
+					$value = (string) $value;
183
+					break;
184
+			}
185
+			if (! EEH_Class_Tools::has_property($this, $prop)) {
186
+				throw new EE_Error(
187
+					sprintf(
188
+						__(
189
+							'The $menu_args coming into %s has a index key (%s) representing a property that is not defined by the class.  Perhaps there is a typo?',
190
+							'event_espresso'
191
+						),
192
+						get_class($this),
193
+						$prop
194
+					)
195
+				);
196
+			}
197
+			$this->{$prop} = $value;
198
+		}
199
+
200
+		// filter capabilities (both static and dynamic)
201
+		$this->capability = apply_filters('FHEE_management_capability', $this->capability, null);
202
+		$this->capability = apply_filters('FHEE_' . $this->menu_slug . '_capability', $this->capability, null);
203
+
204
+		// Might need to change parent slug depending on maintenance mode.
205
+		if (! empty($this->maintenance_mode_parent)
206
+			&& EE_Maintenance_Mode::instance()->level() == EE_Maintenance_Mode::level_2_complete_maintenance
207
+		) {
208
+			$this->parent_slug = $this->maintenance_mode_parent;
209
+		}
210
+
211
+		// if empty menu_callback let's set default (but only if we have admin page init object)
212
+		if (empty($this->menu_callback) && $this->admin_init_page instanceof EE_Admin_Page_Init) {
213
+			$this->menu_callback = array($this->admin_init_page, 'initialize_admin_page');
214
+		}
215
+	}
216
+
217
+
218
+	/**
219
+	 * This method should define how the menu page gets added for this particular item
220
+	 * and go ahead and define it.  Note that child classes MUST also return the result of
221
+	 * the function used to register the WordPress admin page (the wp_page_slug string)
222
+	 *
223
+	 * @since  4.4.0
224
+	 * @return string wp_page_slug.
225
+	 */
226
+	abstract protected function _add_menu_page();
227
+
228
+
229
+	/**
230
+	 * Called by client code to use this menu map for registering a WordPress admin page
231
+	 *
232
+	 * @param boolean $network_admin whether this is being added to the network admin page or not
233
+	 * @since  4.4.0
234
+	 */
235
+	public function add_menu_page($network_admin = false)
236
+	{
237
+
238
+		$show_on_menu_int = (int) $this->show_on_menu;
239
+		if (($network_admin
240
+			 && in_array(
241
+				 $show_on_menu_int,
242
+				 array(self::BLOG_AND_NETWORK_ADMIN, self::NETWORK_ADMIN_ONLY),
243
+				 true
244
+			 ))
245
+			||
246
+			(! $network_admin
247
+			 && in_array(
248
+				 $show_on_menu_int,
249
+				 array(self::BLOG_AND_NETWORK_ADMIN, self::BLOG_ADMIN_ONLY),
250
+				 true
251
+			 ))) {
252
+			$wp_page_slug = $this->_add_menu_page();
253
+		} else {
254
+			$wp_page_slug = '';
255
+		}
256
+
257
+		if (! empty($wp_page_slug) && $this->admin_init_page instanceof EE_Admin_Page_Init) {
258
+			try {
259
+				$this->admin_init_page->set_page_dependencies($wp_page_slug);
260
+			} catch (EE_Error $e) {
261
+				$e->get_error();
262
+			}
263
+		}
264
+	}
265 265
 }
266 266
 
267 267
 
@@ -275,75 +275,75 @@  discard block
 block discarded – undo
275 275
 class EE_Admin_Page_Main_Menu extends EE_Admin_Page_Menu_Map
276 276
 {
277 277
 
278
-    /**
279
-     * If included int incoming params, then this class will also register a Sub Menue Admin page with a different
280
-     * subtitle than the main menu item.
281
-     *
282
-     * @since 4.4.0
283
-     *
284
-     * @var string
285
-     */
286
-    public $subtitle;
287
-
288
-    /**
289
-     * The page to a icon used for this menu.
290
-     *
291
-     * @since  4.4.0
292
-     * @see    http://codex.wordpress.org/Function_Reference/add_menu_page#Parameters
293
-     *        for what can be set for this property.
294
-     * @var string
295
-     */
296
-    public $icon_url;
297
-
298
-
299
-    /**
300
-     * What position in the main menu order for the WP admin menu this menu item
301
-     * should show.
302
-     *
303
-     * @since  4.4.0
304
-     * @see    http://codex.wordpress.org/Function_Reference/add_menu_page#Parameters
305
-     *        for what can be set for this property.
306
-     * @var integer
307
-     */
308
-    public $position;
309
-
310
-
311
-    public function __construct($menu_args)
312
-    {
313
-        $required = array('menu_label', 'parent_slug', 'menu_slug', 'menu_group', 'menu_order', 'admin_init_page');
314
-
315
-        parent::__construct($menu_args, $required);
316
-
317
-        $this->position = ! empty($this->position) ? (int) $this->position : $this->position;
318
-    }
319
-
320
-
321
-    /**
322
-     * Uses the proper WP utility for registering a menu page for the main WP pages.
323
-     */
324
-    protected function _add_menu_page()
325
-    {
326
-        $main = add_menu_page(
327
-            $this->title,
328
-            $this->menu_label,
329
-            $this->capability,
330
-            $this->parent_slug,
331
-            $this->menu_callback,
332
-            $this->icon_url,
333
-            $this->position
334
-        );
335
-        if (! empty($this->subtitle)) {
336
-            add_submenu_page(
337
-                $this->parent_slug,
338
-                $this->subtitle,
339
-                $this->subtitle,
340
-                $this->capability,
341
-                $this->menu_slug,
342
-                $this->menu_callback
343
-            );
344
-        }
345
-        return $main;
346
-    }
278
+	/**
279
+	 * If included int incoming params, then this class will also register a Sub Menue Admin page with a different
280
+	 * subtitle than the main menu item.
281
+	 *
282
+	 * @since 4.4.0
283
+	 *
284
+	 * @var string
285
+	 */
286
+	public $subtitle;
287
+
288
+	/**
289
+	 * The page to a icon used for this menu.
290
+	 *
291
+	 * @since  4.4.0
292
+	 * @see    http://codex.wordpress.org/Function_Reference/add_menu_page#Parameters
293
+	 *        for what can be set for this property.
294
+	 * @var string
295
+	 */
296
+	public $icon_url;
297
+
298
+
299
+	/**
300
+	 * What position in the main menu order for the WP admin menu this menu item
301
+	 * should show.
302
+	 *
303
+	 * @since  4.4.0
304
+	 * @see    http://codex.wordpress.org/Function_Reference/add_menu_page#Parameters
305
+	 *        for what can be set for this property.
306
+	 * @var integer
307
+	 */
308
+	public $position;
309
+
310
+
311
+	public function __construct($menu_args)
312
+	{
313
+		$required = array('menu_label', 'parent_slug', 'menu_slug', 'menu_group', 'menu_order', 'admin_init_page');
314
+
315
+		parent::__construct($menu_args, $required);
316
+
317
+		$this->position = ! empty($this->position) ? (int) $this->position : $this->position;
318
+	}
319
+
320
+
321
+	/**
322
+	 * Uses the proper WP utility for registering a menu page for the main WP pages.
323
+	 */
324
+	protected function _add_menu_page()
325
+	{
326
+		$main = add_menu_page(
327
+			$this->title,
328
+			$this->menu_label,
329
+			$this->capability,
330
+			$this->parent_slug,
331
+			$this->menu_callback,
332
+			$this->icon_url,
333
+			$this->position
334
+		);
335
+		if (! empty($this->subtitle)) {
336
+			add_submenu_page(
337
+				$this->parent_slug,
338
+				$this->subtitle,
339
+				$this->subtitle,
340
+				$this->capability,
341
+				$this->menu_slug,
342
+				$this->menu_callback
343
+			);
344
+		}
345
+		return $main;
346
+	}
347 347
 } //end EE_Admin_Page_Main_Menu
348 348
 
349 349
 
@@ -357,23 +357,23 @@  discard block
 block discarded – undo
357 357
 class EE_Admin_Page_Sub_Menu extends EE_Admin_Page_Main_Menu
358 358
 {
359 359
 
360
-    public function __construct($menu_args)
361
-    {
362
-        parent::__construct($menu_args);
363
-    }
364
-
365
-
366
-    protected function _add_menu_page()
367
-    {
368
-        return add_submenu_page(
369
-            $this->parent_slug,
370
-            $this->title,
371
-            $this->menu_label,
372
-            $this->capability,
373
-            $this->menu_slug,
374
-            $this->menu_callback
375
-        );
376
-    }
360
+	public function __construct($menu_args)
361
+	{
362
+		parent::__construct($menu_args);
363
+	}
364
+
365
+
366
+	protected function _add_menu_page()
367
+	{
368
+		return add_submenu_page(
369
+			$this->parent_slug,
370
+			$this->title,
371
+			$this->menu_label,
372
+			$this->capability,
373
+			$this->menu_slug,
374
+			$this->menu_callback
375
+		);
376
+	}
377 377
 }
378 378
 
379 379
 
@@ -392,28 +392,28 @@  discard block
 block discarded – undo
392 392
 {
393 393
 
394 394
 
395
-    public function __construct($menu_args = array())
396
-    {
397
-        $required = array('menu_label', 'menu_slug', 'menu_order', 'parent_slug');
398
-        parent::__construct($menu_args, $required);
399
-    }
395
+	public function __construct($menu_args = array())
396
+	{
397
+		$required = array('menu_label', 'menu_slug', 'menu_order', 'parent_slug');
398
+		parent::__construct($menu_args, $required);
399
+	}
400 400
 
401 401
 
402
-    protected function _add_menu_page()
403
-    {
404
-        return add_submenu_page(
405
-            $this->parent_slug,
406
-            $this->menu_label,
407
-            $this->_group_link(),
408
-            $this->capability,
409
-            $this->menu_slug,
410
-            '__return_false'
411
-        );
412
-    }
402
+	protected function _add_menu_page()
403
+	{
404
+		return add_submenu_page(
405
+			$this->parent_slug,
406
+			$this->menu_label,
407
+			$this->_group_link(),
408
+			$this->capability,
409
+			$this->menu_slug,
410
+			'__return_false'
411
+		);
412
+	}
413 413
 
414 414
 
415
-    private function _group_link()
416
-    {
417
-        return '<span class="ee_menu_group"  onclick="return false;">' . $this->menu_label . '</span>';
418
-    }
415
+	private function _group_link()
416
+	{
417
+		return '<span class="ee_menu_group"  onclick="return false;">' . $this->menu_label . '</span>';
418
+	}
419 419
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -143,7 +143,7 @@  discard block
 block discarded – undo
143 143
         // verify that required keys are present in the incoming array.
144 144
         $missing = array_diff((array) $required, array_keys((array) $menu_args));
145 145
 
146
-        if (! empty($missing)) {
146
+        if ( ! empty($missing)) {
147 147
             throw new EE_Error(
148 148
                 sprintf(
149 149
                     __(
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
                     $value = (string) $value;
183 183
                     break;
184 184
             }
185
-            if (! EEH_Class_Tools::has_property($this, $prop)) {
185
+            if ( ! EEH_Class_Tools::has_property($this, $prop)) {
186 186
                 throw new EE_Error(
187 187
                     sprintf(
188 188
                         __(
@@ -199,10 +199,10 @@  discard block
 block discarded – undo
199 199
 
200 200
         // filter capabilities (both static and dynamic)
201 201
         $this->capability = apply_filters('FHEE_management_capability', $this->capability, null);
202
-        $this->capability = apply_filters('FHEE_' . $this->menu_slug . '_capability', $this->capability, null);
202
+        $this->capability = apply_filters('FHEE_'.$this->menu_slug.'_capability', $this->capability, null);
203 203
 
204 204
         // Might need to change parent slug depending on maintenance mode.
205
-        if (! empty($this->maintenance_mode_parent)
205
+        if ( ! empty($this->maintenance_mode_parent)
206 206
             && EE_Maintenance_Mode::instance()->level() == EE_Maintenance_Mode::level_2_complete_maintenance
207 207
         ) {
208 208
             $this->parent_slug = $this->maintenance_mode_parent;
@@ -243,7 +243,7 @@  discard block
 block discarded – undo
243 243
                  true
244 244
              ))
245 245
             ||
246
-            (! $network_admin
246
+            ( ! $network_admin
247 247
              && in_array(
248 248
                  $show_on_menu_int,
249 249
                  array(self::BLOG_AND_NETWORK_ADMIN, self::BLOG_ADMIN_ONLY),
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
             $wp_page_slug = '';
255 255
         }
256 256
 
257
-        if (! empty($wp_page_slug) && $this->admin_init_page instanceof EE_Admin_Page_Init) {
257
+        if ( ! empty($wp_page_slug) && $this->admin_init_page instanceof EE_Admin_Page_Init) {
258 258
             try {
259 259
                 $this->admin_init_page->set_page_dependencies($wp_page_slug);
260 260
             } catch (EE_Error $e) {
@@ -332,7 +332,7 @@  discard block
 block discarded – undo
332 332
             $this->icon_url,
333 333
             $this->position
334 334
         );
335
-        if (! empty($this->subtitle)) {
335
+        if ( ! empty($this->subtitle)) {
336 336
             add_submenu_page(
337 337
                 $this->parent_slug,
338 338
                 $this->subtitle,
@@ -414,6 +414,6 @@  discard block
 block discarded – undo
414 414
 
415 415
     private function _group_link()
416 416
     {
417
-        return '<span class="ee_menu_group"  onclick="return false;">' . $this->menu_label . '</span>';
417
+        return '<span class="ee_menu_group"  onclick="return false;">'.$this->menu_label.'</span>';
418 418
     }
419 419
 }
Please login to merge, or discard this patch.