Completed
Branch fix/escaping-2 (5dcb9a)
by
unknown
13:02 queued 10:26
created
public/Espresso_Arabica_2014/loop-espresso_events.php 2 patches
Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -11,48 +11,48 @@
 block discarded – undo
11 11
  * @version     4+
12 12
  */
13 13
 if (have_posts()) :
14
-    if (apply_filters('FHEE__archive_espresso_events_template__show_header', true)) : ?>
14
+	if (apply_filters('FHEE__archive_espresso_events_template__show_header', true)) : ?>
15 15
         <header class="page-header">
16 16
             <h1 class="page-title">
17 17
                 <?php
18
-                if (is_day()) :
19
-                    printf(esc_html__('Today\'s Events: %s', 'event_espresso'), get_the_date());
20
-                elseif (is_month()) :
21
-                    printf(
22
-                        esc_html__('Events This Month: %s', 'event_espresso'),
23
-                        get_the_date(_x('F Y', 'monthly archives date format', 'event_espresso'))
24
-                    );
25
-                elseif (is_year()) :
26
-                    printf(
27
-                        esc_html__('Events This Year: %s', 'event_espresso'),
28
-                        get_the_date(_x('Y', 'yearly archives date format', 'event_espresso'))
29
-                    );
30
-                else :
31
-                    echo apply_filters(
32
-                        'FHEE__archive_espresso_events_template__upcoming_events_h1',
33
-                        esc_html__('Upcoming Events', 'event_espresso')
34
-                    );
35
-                endif;
36
-                ?>
18
+				if (is_day()) :
19
+					printf(esc_html__('Today\'s Events: %s', 'event_espresso'), get_the_date());
20
+				elseif (is_month()) :
21
+					printf(
22
+						esc_html__('Events This Month: %s', 'event_espresso'),
23
+						get_the_date(_x('F Y', 'monthly archives date format', 'event_espresso'))
24
+					);
25
+				elseif (is_year()) :
26
+					printf(
27
+						esc_html__('Events This Year: %s', 'event_espresso'),
28
+						get_the_date(_x('Y', 'yearly archives date format', 'event_espresso'))
29
+					);
30
+				else :
31
+					echo apply_filters(
32
+						'FHEE__archive_espresso_events_template__upcoming_events_h1',
33
+						esc_html__('Upcoming Events', 'event_espresso')
34
+					);
35
+				endif;
36
+				?>
37 37
             </h1>
38 38
 
39 39
         </header><!-- .page-header -->
40 40
 
41 41
         <?php
42
-    endif;
43
-    // allow other stuff
44
-    do_action('AHEE__archive_espresso_events_template__before_loop');
45
-    // Start the Loop.
46
-    while (have_posts()) : the_post();
47
-        // Include the post TYPE-specific template for the content.
48
-        espresso_get_template_part('content', 'espresso_events-shortcode');
49
-    endwhile;
50
-    // Previous/next page navigation.
51
-    espresso_pagination();
52
-    // allow moar other stuff
53
-    do_action('AHEE__archive_espresso_events_template__after_loop');
42
+	endif;
43
+	// allow other stuff
44
+	do_action('AHEE__archive_espresso_events_template__before_loop');
45
+	// Start the Loop.
46
+	while (have_posts()) : the_post();
47
+		// Include the post TYPE-specific template for the content.
48
+		espresso_get_template_part('content', 'espresso_events-shortcode');
49
+	endwhile;
50
+	// Previous/next page navigation.
51
+	espresso_pagination();
52
+	// allow moar other stuff
53
+	do_action('AHEE__archive_espresso_events_template__after_loop');
54 54
 else :
55
-    // If no content, include the "No posts found" template.
56
-    espresso_get_template_part('content', 'none');
55
+	// If no content, include the "No posts found" template.
56
+	espresso_get_template_part('content', 'none');
57 57
 endif;
58 58
 
Please login to merge, or discard this patch.
Braces   +6 added lines, -2 removed lines patch added patch discarded remove patch
@@ -27,11 +27,13 @@  discard block
 block discarded – undo
27 27
                         esc_html__('Events This Year: %s', 'event_espresso'),
28 28
                         get_the_date(_x('Y', 'yearly archives date format', 'event_espresso'))
29 29
                     );
30
-                else :
30
+                else {
31
+                	:
31 32
                     echo apply_filters(
32 33
                         'FHEE__archive_espresso_events_template__upcoming_events_h1',
33 34
                         esc_html__('Upcoming Events', 'event_espresso')
34 35
                     );
36
+                }
35 37
                 endif;
36 38
                 ?>
37 39
             </h1>
@@ -51,8 +53,10 @@  discard block
 block discarded – undo
51 53
     espresso_pagination();
52 54
     // allow moar other stuff
53 55
     do_action('AHEE__archive_espresso_events_template__after_loop');
54
-else :
56
+else {
57
+	:
55 58
     // If no content, include the "No posts found" template.
56 59
     espresso_get_template_part('content', 'none');
60
+}
57 61
 endif;
58 62
 
Please login to merge, or discard this patch.
public/Espresso_Arabica_2014/functions.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -9,9 +9,9 @@  discard block
 block discarded – undo
9 9
  * @ link			http://www.eventespresso.com
10 10
  * @ version		4+
11 11
  */
12
-define( 'EE_THEME_FUNCTIONS_LOADED', TRUE );
12
+define('EE_THEME_FUNCTIONS_LOADED', TRUE);
13 13
 
14
-if ( ! function_exists( 'espresso_pagination' ) ) {
14
+if ( ! function_exists('espresso_pagination')) {
15 15
 	/**
16 16
 	 *    espresso_pagination
17 17
 	 *
@@ -23,21 +23,21 @@  discard block
 block discarded – undo
23 23
 		$big = 999999999; // need an unlikely integer
24 24
 		$pagination = paginate_links(
25 25
 			array(
26
-				'base'         => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
26
+				'base'         => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
27 27
 				'format'       => '?paged=%#%',
28
-				'current'      => max( 1, get_query_var( 'paged' ) ),
28
+				'current'      => max(1, get_query_var('paged')),
29 29
 				'total'        => $wp_query->max_num_pages,
30 30
 				'show_all'     => true,
31 31
 				'end_size'     => 10,
32 32
 				'mid_size'     => 6,
33 33
 				'prev_next'    => true,
34
-				'prev_text'    => esc_html__( '&lsaquo; PREV', 'event_espresso' ),
35
-				'next_text'    => esc_html__( 'NEXT &rsaquo;', 'event_espresso' ),
34
+				'prev_text'    => esc_html__('&lsaquo; PREV', 'event_espresso'),
35
+				'next_text'    => esc_html__('NEXT &rsaquo;', 'event_espresso'),
36 36
 				'type'         => 'plain',
37 37
 				'add_args'     => false,
38 38
 				'add_fragment' => ''
39 39
 			)
40 40
 		);
41
-		echo ! empty( $pagination ) ? '<div class="ee-pagination-dv ee-clear-float">' . $pagination . '</div>' : '';
41
+		echo ! empty($pagination) ? '<div class="ee-pagination-dv ee-clear-float">'.$pagination.'</div>' : '';
42 42
 	}
43 43
 }
44 44
\ No newline at end of file
Please login to merge, or discard this patch.
core/libraries/line_item_filters/EE_Line_Item_Filter_Processor.class.php 1 patch
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -36,88 +36,88 @@
 block discarded – undo
36 36
 class EE_Line_Item_Filter_Processor
37 37
 {
38 38
 
39
-    /**
40
-     * @type EE_Line_Item_Filter_Collection $line_item_filters
41
-     */
42
-    protected $line_item_filters;
39
+	/**
40
+	 * @type EE_Line_Item_Filter_Collection $line_item_filters
41
+	 */
42
+	protected $line_item_filters;
43 43
 
44
-    /**
45
-     * @type EEI_Line_Item $grand_total_line_item
46
-     */
47
-    protected $grand_total_line_item;
44
+	/**
45
+	 * @type EEI_Line_Item $grand_total_line_item
46
+	 */
47
+	protected $grand_total_line_item;
48 48
 
49 49
 
50
-    /**
51
-     * EE_Line_Item_Filter_Processor constructor.
52
-     *
53
-     * @param \EE_Line_Item_Filter_Collection $line_item_filters
54
-     * @param \EEI_Line_Item                  $grand_total_line_item
55
-     * @throws \EE_Error
56
-     */
57
-    public function __construct(EE_Line_Item_Filter_Collection $line_item_filters, EEI_Line_Item $grand_total_line_item)
58
-    {
59
-        $this->line_item_filters = $line_item_filters;
60
-        if ($grand_total_line_item->type() !== EEM_Line_Item::type_total) {
61
-            throw new EE_Error(esc_html__('A Line Item of the type total is required', 'event_espresso'));
62
-        }
63
-        $this->grand_total_line_item = $this->clone_and_reset_line_item_tree($grand_total_line_item);
64
-    }
50
+	/**
51
+	 * EE_Line_Item_Filter_Processor constructor.
52
+	 *
53
+	 * @param \EE_Line_Item_Filter_Collection $line_item_filters
54
+	 * @param \EEI_Line_Item                  $grand_total_line_item
55
+	 * @throws \EE_Error
56
+	 */
57
+	public function __construct(EE_Line_Item_Filter_Collection $line_item_filters, EEI_Line_Item $grand_total_line_item)
58
+	{
59
+		$this->line_item_filters = $line_item_filters;
60
+		if ($grand_total_line_item->type() !== EEM_Line_Item::type_total) {
61
+			throw new EE_Error(esc_html__('A Line Item of the type total is required', 'event_espresso'));
62
+		}
63
+		$this->grand_total_line_item = $this->clone_and_reset_line_item_tree($grand_total_line_item);
64
+	}
65 65
 
66 66
 
67
-    /**
68
-     * clone_and_reset_line_item_tree
69
-     *
70
-     * @param \EEI_Line_Item $line_item
71
-     * @return \EEI_Line_Item
72
-     */
73
-    protected function clone_and_reset_line_item_tree(EEI_Line_Item $line_item)
74
-    {
75
-        $cloned_line_item = $this->clone_and_reset_line_item($line_item);
76
-        foreach ($line_item->children() as $child_line_item) {
77
-            $cloned_line_item->add_child_line_item($this->clone_and_reset_line_item_tree($child_line_item));
78
-        }
79
-        return $cloned_line_item;
80
-    }
67
+	/**
68
+	 * clone_and_reset_line_item_tree
69
+	 *
70
+	 * @param \EEI_Line_Item $line_item
71
+	 * @return \EEI_Line_Item
72
+	 */
73
+	protected function clone_and_reset_line_item_tree(EEI_Line_Item $line_item)
74
+	{
75
+		$cloned_line_item = $this->clone_and_reset_line_item($line_item);
76
+		foreach ($line_item->children() as $child_line_item) {
77
+			$cloned_line_item->add_child_line_item($this->clone_and_reset_line_item_tree($child_line_item));
78
+		}
79
+		return $cloned_line_item;
80
+	}
81 81
 
82 82
 
83
-    /**
84
-     * clone_and_reset_line_item
85
-     *
86
-     * clones the incoming object
87
-     * resets any fields that represent database primary keys
88
-     * resets total
89
-     *
90
-     * @param \EEI_Line_Item $line_item
91
-     * @return \EEI_Line_Item
92
-     */
93
-    protected function clone_and_reset_line_item(EEI_Line_Item $line_item)
94
-    {
95
-        // we don't actually want to work with the original line item, so clone it
96
-        $cloned_line_item = clone $line_item;
97
-        $cloned_line_item->set('LIN_ID', null);
98
-        $cloned_line_item->set('LIN_parent', null);
99
-        $cloned_line_item->clear_related_line_item_cache();
100
-        foreach (array_keys(EEM_Line_Item::instance()->relation_settings()) as $relation_name) {
101
-            $cloned_line_item->clear_cache($relation_name, null, true);
102
-        }
103
-        $cloned_line_item->set_allow_persist(false);
104
-        return $cloned_line_item;
105
-    }
83
+	/**
84
+	 * clone_and_reset_line_item
85
+	 *
86
+	 * clones the incoming object
87
+	 * resets any fields that represent database primary keys
88
+	 * resets total
89
+	 *
90
+	 * @param \EEI_Line_Item $line_item
91
+	 * @return \EEI_Line_Item
92
+	 */
93
+	protected function clone_and_reset_line_item(EEI_Line_Item $line_item)
94
+	{
95
+		// we don't actually want to work with the original line item, so clone it
96
+		$cloned_line_item = clone $line_item;
97
+		$cloned_line_item->set('LIN_ID', null);
98
+		$cloned_line_item->set('LIN_parent', null);
99
+		$cloned_line_item->clear_related_line_item_cache();
100
+		foreach (array_keys(EEM_Line_Item::instance()->relation_settings()) as $relation_name) {
101
+			$cloned_line_item->clear_cache($relation_name, null, true);
102
+		}
103
+		$cloned_line_item->set_allow_persist(false);
104
+		return $cloned_line_item;
105
+	}
106 106
 
107 107
 
108
-    /**
109
-     * process
110
-     *
111
-     * @return EEI_Line_Item
112
-     */
113
-    public function process()
114
-    {
115
-        $this->line_item_filters->rewind();
116
-        while ($this->line_item_filters->valid()) {
117
-            $this->grand_total_line_item = $this->line_item_filters->current()->process($this->grand_total_line_item);
118
-            $this->line_item_filters->next();
119
-        }
120
-        $this->grand_total_line_item->recalculate_total_including_taxes();
121
-        return $this->grand_total_line_item;
122
-    }
108
+	/**
109
+	 * process
110
+	 *
111
+	 * @return EEI_Line_Item
112
+	 */
113
+	public function process()
114
+	{
115
+		$this->line_item_filters->rewind();
116
+		while ($this->line_item_filters->valid()) {
117
+			$this->grand_total_line_item = $this->line_item_filters->current()->process($this->grand_total_line_item);
118
+			$this->line_item_filters->next();
119
+		}
120
+		$this->grand_total_line_item->recalculate_total_including_taxes();
121
+		return $this->grand_total_line_item;
122
+	}
123 123
 }
Please login to merge, or discard this patch.
core/libraries/messages/data_class/EE_Messages_REG_incoming_data.class.php 2 patches
Indentation   +133 added lines, -133 removed lines patch added patch discarded remove patch
@@ -18,137 +18,137 @@
 block discarded – undo
18 18
 
19 19
 
20 20
 
21
-    /**
22
-     * For the constructor of this special preview class.
23
-     *
24
-     * The data is expected to be an array that came from the request data
25
-     * and should have at least one property from the list looked for.
26
-     *
27
-     * @param EE_Registration|array $data
28
-     * @throws \EE_Error
29
-     */
30
-    public function __construct($data)
31
-    {
32
-        $filtered_reg_status = null;
33
-
34
-        if (! is_array($data) && $data instanceof EE_Registration) {
35
-            $this->reg_obj = $data;
36
-        } else {
37
-            $this->reg_obj = is_array($data) && isset($data[0]) && $data[0] instanceof EE_Registration ? $data[0] : null;
38
-            $filtered_reg_status = is_array($data) && ! empty($data[1]) ? $data[1] : null;
39
-        }
40
-
41
-        if (! $this->reg_obj instanceof EE_Registration) {
42
-            throw new EE_Error(
43
-                sprintf(
44
-                    esc_html__('%1$s requires the incoming data argument to be an instance of %2$s or an array where the first value is an instance of %2$s', 'event_espresso'),
45
-                    'EE_Messages_REG_incoming_data',
46
-                    'EE_Registration'
47
-                )
48
-            );
49
-        }
50
-
51
-        $data = array(
52
-            'reg_obj' => $this->reg_obj,
53
-            'filtered_reg_status' => $filtered_reg_status
54
-            );
55
-
56
-        parent::__construct($data);
57
-    }
58
-
59
-    /**
60
-     * Returns database safe representation of the data later used to when instantiating this object.
61
-     *
62
-     * @param mixed $data The incoming data to be prepped.
63
-     *
64
-     * @return array   The prepped data for db
65
-     */
66
-    public static function convert_data_for_persistent_storage($data)
67
-    {
68
-        $prepped_data = array();
69
-        if (! is_array($data) && $data instanceof EE_Registration) {
70
-            $prepped_data['Registration'] = $data->ID();
71
-            return $prepped_data;
72
-        } elseif (! is_array($data)) {
73
-            return array();
74
-        } else {
75
-            if ($data[0] instanceof EE_Registration) {
76
-                $prepped_data['Registration'] = $data[0];
77
-            }
78
-            if (! empty($data[1])) {
79
-                $prepped_data['filter'] = $data[1];
80
-            }
81
-        }
82
-
83
-        return $prepped_data;
84
-    }
85
-
86
-    /**
87
-     * Data that has been stored in persistent storage that was prepped by _convert_data_for_persistent_storage
88
-     * can be sent into this method and converted back into the format used for instantiating with this data handler.
89
-     *
90
-     * @param $data
91
-     *
92
-     * @return mixed
93
-     */
94
-    public static function convert_data_from_persistent_storage($data)
95
-    {
96
-        $registration = null;
97
-        // $data['Registration'] could be either an ID (back compat) or a registration object (prepped using old system).
98
-        if (isset($data['Registration'])) {
99
-            $registration = $data['Registration'] instanceof EE_Registration
100
-                ? $data['Registration']
101
-                : EEM_Registration::instance()->get_one_by_ID($data['Registration']);
102
-        }
103
-        $prepped_data = array(
104
-            0 => $registration,
105
-            1 => isset($data['filter']) ? $data['filter'] : null
106
-        );
107
-        return $prepped_data;
108
-    }
109
-
110
-
111
-    /**
112
-     * This will just setup the _events property in the expected format.
113
-     * @return void
114
-     */
115
-    protected function _setup_data()
116
-    {
117
-
118
-        // now let's loop and set up the _events property.  At the same time we'll set up attendee properties.
119
-        $this->filtered_reg_status = $this->_data['filtered_reg_status'];
120
-        // get txn
121
-        $this->txn = $this->reg_obj->transaction();
122
-        // possible session stuff?
123
-        $session = $this->txn->session_data();
124
-        $session_data =  $session instanceof EE_Session ? $session->get_session_data() : array();
125
-
126
-        // other data from the session (if possible)
127
-        $this->user_id = isset($session_data['user_id']) ? $session_data['user_id'] : '';
128
-        $this->ip_address = isset($session_data['ip_address']) ? $session_data['ip_address'] : '';
129
-        $this->user_agent = isset($session_data['user_agent']) ? $session_data['user_agent'] : '';
130
-        $this->init_access = $this->last_access = '';
131
-
132
-        $this->payment = $this->txn->get_first_related('Payment');
133
-        // if there is no payments associated with the transaction
134
-        // then we just create a default payment object for potential parsing.
135
-        $this->payment = empty($this->payment)
136
-            ? EE_Payment::new_instance(
137
-                array(
138
-                    'STS_ID'               => EEM_Payment::status_id_pending,
139
-                    'PAY_timestamp'        => time(),
140
-                    'PMD_ID'               => $this->txn->payment_method_ID(),
141
-                    'PAY_gateway_response' => $this->txn->gateway_response_on_transaction(),
142
-                )
143
-            )
144
-            : $this->payment;
145
-
146
-
147
-        // get reg_objs for txn
148
-        $this->reg_objs = $this->txn->registrations();
149
-
150
-        // now we can set things up like we do for other handlers
151
-
152
-        $this->_assemble_data();
153
-    }
21
+	/**
22
+	 * For the constructor of this special preview class.
23
+	 *
24
+	 * The data is expected to be an array that came from the request data
25
+	 * and should have at least one property from the list looked for.
26
+	 *
27
+	 * @param EE_Registration|array $data
28
+	 * @throws \EE_Error
29
+	 */
30
+	public function __construct($data)
31
+	{
32
+		$filtered_reg_status = null;
33
+
34
+		if (! is_array($data) && $data instanceof EE_Registration) {
35
+			$this->reg_obj = $data;
36
+		} else {
37
+			$this->reg_obj = is_array($data) && isset($data[0]) && $data[0] instanceof EE_Registration ? $data[0] : null;
38
+			$filtered_reg_status = is_array($data) && ! empty($data[1]) ? $data[1] : null;
39
+		}
40
+
41
+		if (! $this->reg_obj instanceof EE_Registration) {
42
+			throw new EE_Error(
43
+				sprintf(
44
+					esc_html__('%1$s requires the incoming data argument to be an instance of %2$s or an array where the first value is an instance of %2$s', 'event_espresso'),
45
+					'EE_Messages_REG_incoming_data',
46
+					'EE_Registration'
47
+				)
48
+			);
49
+		}
50
+
51
+		$data = array(
52
+			'reg_obj' => $this->reg_obj,
53
+			'filtered_reg_status' => $filtered_reg_status
54
+			);
55
+
56
+		parent::__construct($data);
57
+	}
58
+
59
+	/**
60
+	 * Returns database safe representation of the data later used to when instantiating this object.
61
+	 *
62
+	 * @param mixed $data The incoming data to be prepped.
63
+	 *
64
+	 * @return array   The prepped data for db
65
+	 */
66
+	public static function convert_data_for_persistent_storage($data)
67
+	{
68
+		$prepped_data = array();
69
+		if (! is_array($data) && $data instanceof EE_Registration) {
70
+			$prepped_data['Registration'] = $data->ID();
71
+			return $prepped_data;
72
+		} elseif (! is_array($data)) {
73
+			return array();
74
+		} else {
75
+			if ($data[0] instanceof EE_Registration) {
76
+				$prepped_data['Registration'] = $data[0];
77
+			}
78
+			if (! empty($data[1])) {
79
+				$prepped_data['filter'] = $data[1];
80
+			}
81
+		}
82
+
83
+		return $prepped_data;
84
+	}
85
+
86
+	/**
87
+	 * Data that has been stored in persistent storage that was prepped by _convert_data_for_persistent_storage
88
+	 * can be sent into this method and converted back into the format used for instantiating with this data handler.
89
+	 *
90
+	 * @param $data
91
+	 *
92
+	 * @return mixed
93
+	 */
94
+	public static function convert_data_from_persistent_storage($data)
95
+	{
96
+		$registration = null;
97
+		// $data['Registration'] could be either an ID (back compat) or a registration object (prepped using old system).
98
+		if (isset($data['Registration'])) {
99
+			$registration = $data['Registration'] instanceof EE_Registration
100
+				? $data['Registration']
101
+				: EEM_Registration::instance()->get_one_by_ID($data['Registration']);
102
+		}
103
+		$prepped_data = array(
104
+			0 => $registration,
105
+			1 => isset($data['filter']) ? $data['filter'] : null
106
+		);
107
+		return $prepped_data;
108
+	}
109
+
110
+
111
+	/**
112
+	 * This will just setup the _events property in the expected format.
113
+	 * @return void
114
+	 */
115
+	protected function _setup_data()
116
+	{
117
+
118
+		// now let's loop and set up the _events property.  At the same time we'll set up attendee properties.
119
+		$this->filtered_reg_status = $this->_data['filtered_reg_status'];
120
+		// get txn
121
+		$this->txn = $this->reg_obj->transaction();
122
+		// possible session stuff?
123
+		$session = $this->txn->session_data();
124
+		$session_data =  $session instanceof EE_Session ? $session->get_session_data() : array();
125
+
126
+		// other data from the session (if possible)
127
+		$this->user_id = isset($session_data['user_id']) ? $session_data['user_id'] : '';
128
+		$this->ip_address = isset($session_data['ip_address']) ? $session_data['ip_address'] : '';
129
+		$this->user_agent = isset($session_data['user_agent']) ? $session_data['user_agent'] : '';
130
+		$this->init_access = $this->last_access = '';
131
+
132
+		$this->payment = $this->txn->get_first_related('Payment');
133
+		// if there is no payments associated with the transaction
134
+		// then we just create a default payment object for potential parsing.
135
+		$this->payment = empty($this->payment)
136
+			? EE_Payment::new_instance(
137
+				array(
138
+					'STS_ID'               => EEM_Payment::status_id_pending,
139
+					'PAY_timestamp'        => time(),
140
+					'PMD_ID'               => $this->txn->payment_method_ID(),
141
+					'PAY_gateway_response' => $this->txn->gateway_response_on_transaction(),
142
+				)
143
+			)
144
+			: $this->payment;
145
+
146
+
147
+		// get reg_objs for txn
148
+		$this->reg_objs = $this->txn->registrations();
149
+
150
+		// now we can set things up like we do for other handlers
151
+
152
+		$this->_assemble_data();
153
+	}
154 154
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -31,14 +31,14 @@  discard block
 block discarded – undo
31 31
     {
32 32
         $filtered_reg_status = null;
33 33
 
34
-        if (! is_array($data) && $data instanceof EE_Registration) {
34
+        if ( ! is_array($data) && $data instanceof EE_Registration) {
35 35
             $this->reg_obj = $data;
36 36
         } else {
37 37
             $this->reg_obj = is_array($data) && isset($data[0]) && $data[0] instanceof EE_Registration ? $data[0] : null;
38 38
             $filtered_reg_status = is_array($data) && ! empty($data[1]) ? $data[1] : null;
39 39
         }
40 40
 
41
-        if (! $this->reg_obj instanceof EE_Registration) {
41
+        if ( ! $this->reg_obj instanceof EE_Registration) {
42 42
             throw new EE_Error(
43 43
                 sprintf(
44 44
                     esc_html__('%1$s requires the incoming data argument to be an instance of %2$s or an array where the first value is an instance of %2$s', 'event_espresso'),
@@ -66,16 +66,16 @@  discard block
 block discarded – undo
66 66
     public static function convert_data_for_persistent_storage($data)
67 67
     {
68 68
         $prepped_data = array();
69
-        if (! is_array($data) && $data instanceof EE_Registration) {
69
+        if ( ! is_array($data) && $data instanceof EE_Registration) {
70 70
             $prepped_data['Registration'] = $data->ID();
71 71
             return $prepped_data;
72
-        } elseif (! is_array($data)) {
72
+        } elseif ( ! is_array($data)) {
73 73
             return array();
74 74
         } else {
75 75
             if ($data[0] instanceof EE_Registration) {
76 76
                 $prepped_data['Registration'] = $data[0];
77 77
             }
78
-            if (! empty($data[1])) {
78
+            if ( ! empty($data[1])) {
79 79
                 $prepped_data['filter'] = $data[1];
80 80
             }
81 81
         }
@@ -121,7 +121,7 @@  discard block
 block discarded – undo
121 121
         $this->txn = $this->reg_obj->transaction();
122 122
         // possible session stuff?
123 123
         $session = $this->txn->session_data();
124
-        $session_data =  $session instanceof EE_Session ? $session->get_session_data() : array();
124
+        $session_data = $session instanceof EE_Session ? $session->get_session_data() : array();
125 125
 
126 126
         // other data from the session (if possible)
127 127
         $this->user_id = isset($session_data['user_id']) ? $session_data['user_id'] : '';
Please login to merge, or discard this patch.
libraries/messages/data_class/EE_Messages_Gateways_incoming_data.class.php 2 patches
Indentation   +136 added lines, -136 removed lines patch added patch discarded remove patch
@@ -14,141 +14,141 @@
 block discarded – undo
14 14
 class EE_Messages_Gateways_incoming_data extends EE_Messages_incoming_data
15 15
 {
16 16
 
17
-    /**
18
-     * This holds the incoming payment object
19
-     * @var EE_Payment
20
-     */
21
-    public $payment;
22
-
23
-
24
-
25
-    /**
26
-     * incoming data is expected to be a EE_Transaction object and (possibly) EE_Payment object in an array.
27
-     *
28
-     * @param array $data
29
-     * @throws EE_Error
30
-     */
31
-    public function __construct($data)
32
-    {
33
-
34
-        // test for valid params
35
-        if (! ( $data[0] instanceof EE_Transaction )) {
36
-            throw new EE_Error(esc_html__('Incoming data for the Gateways data handler must have an EE_Transaction object as the value for the first array index.', 'event_espresso'));
37
-        }
38
-
39
-        if (empty($data[1]) || ! $data[1] instanceof  EE_Payment) {
40
-            $pmt_obj = $this->_get_empty_payment_obj($data[0]);
41
-        }
42
-
43
-        if (! empty($data[2])) {
44
-            $filtered_reg_status = $data[2];
45
-        }
17
+	/**
18
+	 * This holds the incoming payment object
19
+	 * @var EE_Payment
20
+	 */
21
+	public $payment;
22
+
23
+
24
+
25
+	/**
26
+	 * incoming data is expected to be a EE_Transaction object and (possibly) EE_Payment object in an array.
27
+	 *
28
+	 * @param array $data
29
+	 * @throws EE_Error
30
+	 */
31
+	public function __construct($data)
32
+	{
33
+
34
+		// test for valid params
35
+		if (! ( $data[0] instanceof EE_Transaction )) {
36
+			throw new EE_Error(esc_html__('Incoming data for the Gateways data handler must have an EE_Transaction object as the value for the first array index.', 'event_espresso'));
37
+		}
38
+
39
+		if (empty($data[1]) || ! $data[1] instanceof  EE_Payment) {
40
+			$pmt_obj = $this->_get_empty_payment_obj($data[0]);
41
+		}
42
+
43
+		if (! empty($data[2])) {
44
+			$filtered_reg_status = $data[2];
45
+		}
46 46
 
47
-        $data = array(
48
-            'txn_obj' => $data[0],
49
-            'pmt_obj' => isset($pmt_obj) ? $pmt_obj : $data[1],
50
-            'filtered_reg_status' => isset($filtered_reg_status) ? $filtered_reg_status : null
51
-            );
52
-        parent::__construct($data);
53
-    }
54
-
55
-
56
-
57
-
58
-
59
-    /**
60
-     * Returns database safe representation of the data later used to when instantiating this object.
61
-     *
62
-     * @param array $data The incoming data to be prepped.
63
-     *
64
-     * @return array   The prepped data for db
65
-     */
66
-    public static function convert_data_for_persistent_storage($data)
67
-    {
68
-        $prepped_data = array();
69
-
70
-        if ($data[0] instanceof EE_Transaction) {
71
-            $prepped_data['Transaction'] = $data[0]->ID();
72
-        }
73
-
74
-        if (isset($data[1]) && $data[1] instanceof EE_Payment) {
75
-            $prepped_data['Payment'] = $data[1]->ID();
76
-        }
77
-
78
-        if (! empty($data[2])) {
79
-            $prepped_data['filter'] = $data[2];
80
-        }
81
-
82
-        return $prepped_data;
83
-    }
84
-
85
-
86
-
87
-
88
-
89
-
90
-    /**
91
-     * Data that has been stored in persistent storage that was prepped by _convert_data_for_persistent_storage
92
-     * can be sent into this method and converted back into the format used for instantiating with this data handler.
93
-     *
94
-     * @param array  $data
95
-     *
96
-     * @return array
97
-     */
98
-    public static function convert_data_from_persistent_storage($data)
99
-    {
100
-        $prepped_data = array(
101
-            0 => isset($data['Transaction']) ? EEM_Transaction::instance()->get_one_by_ID($data['Transaction']) : null,
102
-            1 => isset($data['Payment']) ? EEM_Payment::instance()->get_one_by_ID($data['Payment']) : null,
103
-            2 => isset($data['filter']) ? $data['filter'] : null
104
-        );
105
-        return $prepped_data;
106
-    }
107
-
108
-
109
-    /**
110
-     * This sets up an empty EE_Payment object for the purpose of shortcode parsing.  Note that this doesn't actually get saved to the db.
111
-     * @param \EE_Transaction $txn
112
-     * @return \EE_Payment
113
-     */
114
-    private function _get_empty_payment_obj(EE_Transaction $txn)
115
-    {
116
-        $PMT = EE_Payment::new_instance(array(
117
-            'STS_ID' => EEM_Payment::status_id_pending,
118
-            'PAY_timestamp' => time(),
119
-            'PMD_ID' => $txn->payment_method_ID(),
120
-            'PAY_gateway_response' => $txn->gateway_response_on_transaction(),
121
-            ));
122
-        return $PMT;
123
-    }
124
-
125
-
126
-
127
-    /**
128
-     * _setup_data
129
-     *
130
-     * @throws EE_Error
131
-     */
132
-    protected function _setup_data()
133
-    {
134
-
135
-        $this->reg_info = array();
136
-
137
-        $this->txn = $this->_data['txn_obj'];
138
-        $this->payment = $this->_data['pmt_obj'];
139
-        $this->filtered_reg_status = $this->_data['filtered_reg_status'];
140
-        $this->incoming_data = $this->_data;
141
-
142
-        $session_data = $this->txn->session_data();
143
-
144
-
145
-        // other data from the session (if possible)
146
-        $this->user_id = isset($session_data['user_id']) ? $session_data['user_id'] : '';
147
-        $this->ip_address = isset($session_data['ip_address']) ? $session_data['ip_address'] : '';
148
-        $this->user_agent = isset($session_data['user_agent']) ? $session_data['user_agent'] : '';
149
-        $this->init_access = $this->last_access = '';
150
-        // get all non-trashed registrations
151
-        $this->reg_objs = $this->txn->registrations(array(array('REG_deleted' => false)));
152
-        $this->_assemble_data();
153
-    }
47
+		$data = array(
48
+			'txn_obj' => $data[0],
49
+			'pmt_obj' => isset($pmt_obj) ? $pmt_obj : $data[1],
50
+			'filtered_reg_status' => isset($filtered_reg_status) ? $filtered_reg_status : null
51
+			);
52
+		parent::__construct($data);
53
+	}
54
+
55
+
56
+
57
+
58
+
59
+	/**
60
+	 * Returns database safe representation of the data later used to when instantiating this object.
61
+	 *
62
+	 * @param array $data The incoming data to be prepped.
63
+	 *
64
+	 * @return array   The prepped data for db
65
+	 */
66
+	public static function convert_data_for_persistent_storage($data)
67
+	{
68
+		$prepped_data = array();
69
+
70
+		if ($data[0] instanceof EE_Transaction) {
71
+			$prepped_data['Transaction'] = $data[0]->ID();
72
+		}
73
+
74
+		if (isset($data[1]) && $data[1] instanceof EE_Payment) {
75
+			$prepped_data['Payment'] = $data[1]->ID();
76
+		}
77
+
78
+		if (! empty($data[2])) {
79
+			$prepped_data['filter'] = $data[2];
80
+		}
81
+
82
+		return $prepped_data;
83
+	}
84
+
85
+
86
+
87
+
88
+
89
+
90
+	/**
91
+	 * Data that has been stored in persistent storage that was prepped by _convert_data_for_persistent_storage
92
+	 * can be sent into this method and converted back into the format used for instantiating with this data handler.
93
+	 *
94
+	 * @param array  $data
95
+	 *
96
+	 * @return array
97
+	 */
98
+	public static function convert_data_from_persistent_storage($data)
99
+	{
100
+		$prepped_data = array(
101
+			0 => isset($data['Transaction']) ? EEM_Transaction::instance()->get_one_by_ID($data['Transaction']) : null,
102
+			1 => isset($data['Payment']) ? EEM_Payment::instance()->get_one_by_ID($data['Payment']) : null,
103
+			2 => isset($data['filter']) ? $data['filter'] : null
104
+		);
105
+		return $prepped_data;
106
+	}
107
+
108
+
109
+	/**
110
+	 * This sets up an empty EE_Payment object for the purpose of shortcode parsing.  Note that this doesn't actually get saved to the db.
111
+	 * @param \EE_Transaction $txn
112
+	 * @return \EE_Payment
113
+	 */
114
+	private function _get_empty_payment_obj(EE_Transaction $txn)
115
+	{
116
+		$PMT = EE_Payment::new_instance(array(
117
+			'STS_ID' => EEM_Payment::status_id_pending,
118
+			'PAY_timestamp' => time(),
119
+			'PMD_ID' => $txn->payment_method_ID(),
120
+			'PAY_gateway_response' => $txn->gateway_response_on_transaction(),
121
+			));
122
+		return $PMT;
123
+	}
124
+
125
+
126
+
127
+	/**
128
+	 * _setup_data
129
+	 *
130
+	 * @throws EE_Error
131
+	 */
132
+	protected function _setup_data()
133
+	{
134
+
135
+		$this->reg_info = array();
136
+
137
+		$this->txn = $this->_data['txn_obj'];
138
+		$this->payment = $this->_data['pmt_obj'];
139
+		$this->filtered_reg_status = $this->_data['filtered_reg_status'];
140
+		$this->incoming_data = $this->_data;
141
+
142
+		$session_data = $this->txn->session_data();
143
+
144
+
145
+		// other data from the session (if possible)
146
+		$this->user_id = isset($session_data['user_id']) ? $session_data['user_id'] : '';
147
+		$this->ip_address = isset($session_data['ip_address']) ? $session_data['ip_address'] : '';
148
+		$this->user_agent = isset($session_data['user_agent']) ? $session_data['user_agent'] : '';
149
+		$this->init_access = $this->last_access = '';
150
+		// get all non-trashed registrations
151
+		$this->reg_objs = $this->txn->registrations(array(array('REG_deleted' => false)));
152
+		$this->_assemble_data();
153
+	}
154 154
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
     {
33 33
 
34 34
         // test for valid params
35
-        if (! ( $data[0] instanceof EE_Transaction )) {
35
+        if ( ! ($data[0] instanceof EE_Transaction)) {
36 36
             throw new EE_Error(esc_html__('Incoming data for the Gateways data handler must have an EE_Transaction object as the value for the first array index.', 'event_espresso'));
37 37
         }
38 38
 
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
             $pmt_obj = $this->_get_empty_payment_obj($data[0]);
41 41
         }
42 42
 
43
-        if (! empty($data[2])) {
43
+        if ( ! empty($data[2])) {
44 44
             $filtered_reg_status = $data[2];
45 45
         }
46 46
 
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
             $prepped_data['Payment'] = $data[1]->ID();
76 76
         }
77 77
 
78
-        if (! empty($data[2])) {
78
+        if ( ! empty($data[2])) {
79 79
             $prepped_data['filter'] = $data[2];
80 80
         }
81 81
 
Please login to merge, or discard this patch.
core/libraries/messages/EE_Message_To_Generate_From_Request.php 2 patches
Indentation   +109 added lines, -109 removed lines patch added patch discarded remove patch
@@ -20,113 +20,113 @@
 block discarded – undo
20 20
 {
21 21
 
22 22
 
23
-    /**
24
-     * This messenger is used to send the generated message.
25
-     *
26
-     * @type EE_messenger
27
-     */
28
-    protected $_sending_messenger = '';
29
-
30
-
31
-    /**
32
-     * Holds the token from the request.
33
-     *
34
-     * @type string
35
-     */
36
-    public $token = '';
37
-
38
-
39
-    /**
40
-     * Constructor
41
-     * This instantiates the object using arguments from the given request and calling the parent constructor.
42
-     *
43
-     * @param EE_Message_Resource_Manager $message_resource_manager
44
-     * @param RequestInterface            $request
45
-     * @throws EE_Error
46
-     */
47
-    public function __construct(EE_Message_Resource_Manager $message_resource_manager, RequestInterface $request)
48
-    {
49
-        parent::__construct(
50
-            $request->getRequestParam('gen_msgr'),
51
-            $request->getRequestParam('message_type'),
52
-            [],
53
-            $request->getRequestParam('context')
54
-        );
55
-        if (! $this->valid()) {
56
-            return;
57
-        }
58
-        $this->token              = $request->getRequestParam('token');
59
-        $this->_sending_messenger = $message_resource_manager->get_active_messenger(
60
-            $request->getRequestParam('snd_msgr')
61
-        );
62
-        $this->_validate_request();
63
-        $this->_data = $this->_get_data_from_request($request->getRequestParam('id'));
64
-    }
65
-
66
-
67
-    /**
68
-     * @return EE_messenger
69
-     */
70
-    public function sending_messenger()
71
-    {
72
-        return $this->_sending_messenger;
73
-    }
74
-
75
-
76
-    /**
77
-     * This validates set properties from the incoming request.
78
-     *
79
-     * @throws EE_Error
80
-     */
81
-    protected function _validate_request()
82
-    {
83
-        if (
84
-            ! $this->_sending_messenger instanceof EE_messenger
85
-            || ! $this->_messenger instanceof EE_messenger
86
-            || ! $this->_message_type instanceof EE_message_type
87
-            || empty($this->_context)
88
-            || empty($this->token)
89
-        ) {
90
-            throw new EE_Error(esc_html__(
91
-                'The request for the "msg_url_trigger" route has a malformed url.',
92
-                'event_espresso'
93
-            ));
94
-        }
95
-    }
96
-
97
-
98
-    /**
99
-     * This returns the data property according to what is expected from the request.
100
-     *
101
-     * @param $id
102
-     * @return mixed (whatever the data is returned from the message type).
103
-     * @throws EE_Error
104
-     */
105
-    protected function _get_data_from_request($id)
106
-    {
107
-        // get the EE_Registration from the token
108
-        /** @type EE_Registration $registration */
109
-        $registration = EEM_Registration::instance()->get_one([['REG_url_link' => $this->token]]);
110
-        // if no registration then bail early.
111
-        if (! $registration instanceof EE_Registration) {
112
-            throw new EE_Error(esc_html__('Unable to complete the request because the token is invalid.', 'event_espresso'));
113
-        }
114
-
115
-        return $this->_get_data_to_use($registration, $id);
116
-    }
117
-
118
-
119
-    /**
120
-     * This uses the set message type to retrieve the data in the correct format as it came from the url.
121
-     *
122
-     * @param EE_Registration $registration
123
-     * @param int             $data_id This is sometimes used for secondary data a message type requires.
124
-     * @return mixed   Data prepared as needed for generating this message.
125
-     * @throws EE_Error
126
-     */
127
-    protected function _get_data_to_use($registration, $data_id)
128
-    {
129
-        // use incoming data from url to setup data for the message type requirements
130
-        return $this->_message_type->get_data_for_context($this->_context, $registration, $data_id);
131
-    }
23
+	/**
24
+	 * This messenger is used to send the generated message.
25
+	 *
26
+	 * @type EE_messenger
27
+	 */
28
+	protected $_sending_messenger = '';
29
+
30
+
31
+	/**
32
+	 * Holds the token from the request.
33
+	 *
34
+	 * @type string
35
+	 */
36
+	public $token = '';
37
+
38
+
39
+	/**
40
+	 * Constructor
41
+	 * This instantiates the object using arguments from the given request and calling the parent constructor.
42
+	 *
43
+	 * @param EE_Message_Resource_Manager $message_resource_manager
44
+	 * @param RequestInterface            $request
45
+	 * @throws EE_Error
46
+	 */
47
+	public function __construct(EE_Message_Resource_Manager $message_resource_manager, RequestInterface $request)
48
+	{
49
+		parent::__construct(
50
+			$request->getRequestParam('gen_msgr'),
51
+			$request->getRequestParam('message_type'),
52
+			[],
53
+			$request->getRequestParam('context')
54
+		);
55
+		if (! $this->valid()) {
56
+			return;
57
+		}
58
+		$this->token              = $request->getRequestParam('token');
59
+		$this->_sending_messenger = $message_resource_manager->get_active_messenger(
60
+			$request->getRequestParam('snd_msgr')
61
+		);
62
+		$this->_validate_request();
63
+		$this->_data = $this->_get_data_from_request($request->getRequestParam('id'));
64
+	}
65
+
66
+
67
+	/**
68
+	 * @return EE_messenger
69
+	 */
70
+	public function sending_messenger()
71
+	{
72
+		return $this->_sending_messenger;
73
+	}
74
+
75
+
76
+	/**
77
+	 * This validates set properties from the incoming request.
78
+	 *
79
+	 * @throws EE_Error
80
+	 */
81
+	protected function _validate_request()
82
+	{
83
+		if (
84
+			! $this->_sending_messenger instanceof EE_messenger
85
+			|| ! $this->_messenger instanceof EE_messenger
86
+			|| ! $this->_message_type instanceof EE_message_type
87
+			|| empty($this->_context)
88
+			|| empty($this->token)
89
+		) {
90
+			throw new EE_Error(esc_html__(
91
+				'The request for the "msg_url_trigger" route has a malformed url.',
92
+				'event_espresso'
93
+			));
94
+		}
95
+	}
96
+
97
+
98
+	/**
99
+	 * This returns the data property according to what is expected from the request.
100
+	 *
101
+	 * @param $id
102
+	 * @return mixed (whatever the data is returned from the message type).
103
+	 * @throws EE_Error
104
+	 */
105
+	protected function _get_data_from_request($id)
106
+	{
107
+		// get the EE_Registration from the token
108
+		/** @type EE_Registration $registration */
109
+		$registration = EEM_Registration::instance()->get_one([['REG_url_link' => $this->token]]);
110
+		// if no registration then bail early.
111
+		if (! $registration instanceof EE_Registration) {
112
+			throw new EE_Error(esc_html__('Unable to complete the request because the token is invalid.', 'event_espresso'));
113
+		}
114
+
115
+		return $this->_get_data_to_use($registration, $id);
116
+	}
117
+
118
+
119
+	/**
120
+	 * This uses the set message type to retrieve the data in the correct format as it came from the url.
121
+	 *
122
+	 * @param EE_Registration $registration
123
+	 * @param int             $data_id This is sometimes used for secondary data a message type requires.
124
+	 * @return mixed   Data prepared as needed for generating this message.
125
+	 * @throws EE_Error
126
+	 */
127
+	protected function _get_data_to_use($registration, $data_id)
128
+	{
129
+		// use incoming data from url to setup data for the message type requirements
130
+		return $this->_message_type->get_data_for_context($this->_context, $registration, $data_id);
131
+	}
132 132
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -52,7 +52,7 @@  discard block
 block discarded – undo
52 52
             [],
53 53
             $request->getRequestParam('context')
54 54
         );
55
-        if (! $this->valid()) {
55
+        if ( ! $this->valid()) {
56 56
             return;
57 57
         }
58 58
         $this->token              = $request->getRequestParam('token');
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
         /** @type EE_Registration $registration */
109 109
         $registration = EEM_Registration::instance()->get_one([['REG_url_link' => $this->token]]);
110 110
         // if no registration then bail early.
111
-        if (! $registration instanceof EE_Registration) {
111
+        if ( ! $registration instanceof EE_Registration) {
112 112
             throw new EE_Error(esc_html__('Unable to complete the request because the token is invalid.', 'event_espresso'));
113 113
         }
114 114
 
Please login to merge, or discard this patch.
core/libraries/messages/EE_message_type.lib.php 2 patches
Indentation   +905 added lines, -905 removed lines patch added patch discarded remove patch
@@ -17,915 +17,915 @@
 block discarded – undo
17 17
 {
18 18
 
19 19
 
20
-    /**
21
-     * message type child classes will set what contexts are associated with the message type via this array.
22
-     * format:
23
-     * array(
24
-     * 'context' => array(
25
-     *        'label' => esc_html__('Context Label', 'event_espresso'),
26
-     *        'description' => esc_html__('Context description (for help popups)', 'event_espresso')
27
-     *    ));
28
-     *
29
-     * @var array
30
-     */
31
-    protected $_contexts = array();
32
-
33
-
34
-    /**
35
-     * This property is used to define what the display label will be for contexts (eg. "Recipients", "Themes" etc.)
36
-     * Format:
37
-     * array( 'label' => 'something', 'plural' => 'somethings', 'description' => 'something' );
38
-     *
39
-     * @var array
40
-     */
41
-    protected $_context_label;
42
-
43
-
44
-    /** MESSAGE ASSEMBLING PROPERTIES **/
45
-    /**
46
-     * This parameter simply holds all the message objects for retrieval by the controller and sending to the messenger.
47
-     *
48
-     * @var array of message objects.
49
-     */
50
-    public $messages = array();
51
-
52
-    /**
53
-     * The following holds the templates that will be used to assemble the message object for the messenger.
54
-     *
55
-     * @var array
56
-     */
57
-    protected $_templates;
58
-
59
-
60
-    /**
61
-     * If a specific template is being parsed, this will hold the message template group GRP_ID for that template.
62
-     *
63
-     * @var int.
64
-     */
65
-    protected $_GRP_ID;
66
-
67
-
68
-    /** OTHER INFO PROPERTIES **/
69
-    /**
70
-     * This will hold the count of the message objects in the messages array. This could be used for determining if
71
-     * batching/queueing is needed.
72
-     *
73
-     * @var int
74
-     */
75
-    public $count = 0;
76
-
77
-
78
-    /**
79
-     * This is set via the `do_messenger_hooks` method and contains the messenger being used to send the message of
80
-     * this message type at time of sending.
81
-     *
82
-     * @var EE_messenger
83
-     */
84
-    protected $_active_messenger;
85
-
86
-
87
-    /**
88
-     * This will hold the shortcode_replace instance for handling replacement of shortcodes in the various templates
89
-     *
90
-     * @var object
91
-     */
92
-    protected $_shortcode_replace;
93
-
94
-
95
-    /**
96
-     * The purpose for this property is to simply allow message types to indicate if the message generated is intended
97
-     * for only single context.  Child message types should redefine this variable (if necessary) in the
98
-     * _set_data_Handler() method.
99
-     *
100
-     * @var boolean
101
-     */
102
-    protected $_single_message = false;
103
-
104
-
105
-    /**
106
-     * This will hold an array of specific reg_ids that are receiving messages.
107
-     *
108
-     * @since 4.7.x
109
-     * @var array
110
-     */
111
-    protected $_regs_for_sending = array();
112
-
113
-
114
-    /**
115
-     * This holds the data passed to this class from the controller and also the final processed data.
116
-     *
117
-     * @var object
118
-     */
119
-    protected $_data;
120
-
121
-
122
-    /**
123
-     * this is just a flag indicating whether we're in preview mode or not.
124
-     *
125
-     * @var bool
126
-     */
127
-    protected $_preview = false;
128
-
129
-
130
-    /**
131
-     * This just holds defaults for addressee data that children merge with their data array setup
132
-     *
133
-     * @var array
134
-     */
135
-    protected $_default_addressee_data;
136
-
137
-
138
-    /**
139
-     * Child classes declare through this property what handler they want to use for the incoming data and this string
140
-     * is used to instantiate the EE_Messages_incoming_data child class for that handler.
141
-     *
142
-     * @var string
143
-     */
144
-    protected $_data_handler;
145
-
146
-
147
-    /**
148
-     * This holds any specific fields for holding any settings related to a message type (if any needed)
149
-     *
150
-     * @var array
151
-     */
152
-    protected $_admin_settings_fields = array();
153
-
154
-    /**
155
-     * this property will hold any existing setting that may have been set in the admin.
156
-     *
157
-     * @var array
158
-     */
159
-    protected $_existing_admin_settings = array();
160
-
161
-
162
-    /**
163
-     * This is used to designate the generating and alternative sending messengers for a message type.  It is set via
164
-     * set_with_messengers() on construct. Note, generating messenger also acts as a sending messenger for this message
165
-     * type.  However ONLY the generating messengers are used for creating templates for this message type. Should be
166
-     * in this format:
167
-     * {
168
-     *
169
-     * @type string $generating_messenger the name of the generating messenger.  Generating
170
-     *                                          messengers are used for generating templates,
171
-     *                                          doing validation and defining valid shortcodes.
172
-     *      {
173
-     * @type string $sending_messenger    values are the name(s) for the sending
174
-     *                                              messengers.  sending messengers are
175
-     *                                              just valid delivery vehicles that will utilize
176
-     *                                              the templates (and generated EE_message
177
-     *                                              objects from the generating messengers).
178
-     *      }
179
-     * }
180
-     * @since                             4.5.0
181
-     * @var array
182
-     */
183
-    protected $_with_messengers = array();
184
-
185
-
186
-    /**
187
-     * This holds the addressees in an array indexed by context for later retrieval when assembling the message objects.
188
-     *
189
-     * @access protected
190
-     * @var array
191
-     */
192
-    protected $_addressees = array();
193
-
194
-
195
-    /**
196
-     * This allows each message type to set what alternate messenger&message type combination can be used for fallback
197
-     * default templates if there are no specific ones defined for this messenger and message type.  Should be in the
198
-     * format:
199
-     * array(
200
-     *      'messenger' => 'message_type',
201
-     *      'another_messenger' => another_message_type
202
-     * );
203
-     * This is set in the message type constructor.
204
-     *
205
-     * @var array
206
-     */
207
-    protected $_master_templates = array();
208
-
209
-
210
-    /**
211
-     * This holds whatever the set template pack is for a message template group when generating messages.
212
-     *
213
-     * @since 4.5.0
214
-     * @var EE_Messages_Template_Pack
215
-     */
216
-    protected $_template_pack;
217
-
218
-
219
-    /**
220
-     * This holds whatever the set variation is for a message template group when generating messages.
221
-     *
222
-     * @since 4.5.0
223
-     * @var string
224
-     */
225
-    protected $_variation;
226
-
227
-
228
-    /**
229
-     * EE_message_type constructor.
230
-     */
231
-    public function __construct()
232
-    {
233
-        $this->_messages_item_type = 'message_type';
234
-        $this->_set_contexts();
235
-        $this->_set_with_messengers();
236
-        parent::__construct();
237
-    }
238
-
239
-
240
-    /**
241
-     * This sets the data handler for the message type.  It must be used to define the _data_handler property.  It is
242
-     * called when messages are setup.
243
-     *
244
-     * @abstract
245
-     * @access protected
246
-     * @return void
247
-     */
248
-    abstract protected function _set_data_handler();
249
-
250
-
251
-    /**
252
-     * This method should return a EE_Base_Class object (or array of EE_Base_Class objects) for the given context and
253
-     * ID (which should be the primary key id for the base class).  Client code doesn't have to know what a message
254
-     * type's data handler is.
255
-     *
256
-     * @since 4.5.0
257
-     * @param string          $context      This should be a string matching a valid context for the message type.
258
-     * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
259
-     *                                      guessing a url).
260
-     * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
261
-     *                                      EE_Base_Class_Object
262
-     * @return mixed ( EE_Base_Class||EE_Base_Class[] )
263
-     */
264
-    abstract protected function _get_data_for_context($context, EE_Registration $registration, $id);
265
-
266
-
267
-    /**
268
-     * _set_contexts
269
-     * This sets up the contexts associated with the message_type
270
-     *
271
-     * @abstract
272
-     * @access  protected
273
-     * @return  void
274
-     */
275
-    abstract protected function _set_contexts();
276
-
277
-
278
-    /**
279
-     * This is used to get the "id" value fo the msg_trigger_url generated by get_url_trigger().
280
-     * In most cases, child classes don't need anything, (hence the default of 0), however if there is a specific
281
-     * EE_Base_Class that is required in generating a message for a message type recipient then the message
282
-     * type should override this method and use the given params to generate the correct ID.
283
-     *
284
-     * @param string          $context      The message type context.
285
-     * @param EE_Registration $registration Registration object
286
-     * @deprecated 4.9.0
287
-     * @return int
288
-     */
289
-    protected function _get_id_for_msg_url($context, EE_Registration $registration)
290
-    {
291
-        return 0;
292
-    }
293
-
294
-
295
-    /**
296
-     * This sets up any action/filter hooks this message type puts in place for a specific messenger.  Note that by
297
-     * default this does nothing.  Child classes will need to override if they want to add specific hooks for a
298
-     * messenger.
299
-     *
300
-     * @since 1.0.0
301
-     * @return void
302
-     */
303
-    protected function _do_messenger_hooks()
304
-    {
305
-        return;
306
-    }
307
-
308
-
309
-    /**
310
-     * This is a public wrapper for the protected _do_messenger_hooks() method.
311
-     * For backward compat reasons, this was done rather than making the protected method public.
312
-     *
313
-     * @param   EE_messenger $messenger This is used to set the $_active_messenger property, so message types are able
314
-     *                                  to know what messenger is being used to send the message at the time of
315
-     *                                  sending.
316
-     * @since 4.9.0
317
-     */
318
-    public function do_messenger_hooks($messenger = null)
319
-    {
320
-        $this->_active_messenger = $messenger;
321
-        $this->_do_messenger_hooks();
322
-    }
323
-
324
-
325
-    /**
326
-     * This method returns whether this message type should always generate a new copy
327
-     * when requested, or if links can be to the already generated copy.
328
-     * Note: this does NOT affect viewing/resending already generated messages in the EE_Message list table.
329
-     * Child classes should override this if different from the default of false.
330
-     *
331
-     * @return bool     false means can link to generated EE_Message.  true must regenerate.
332
-     */
333
-    public function always_generate()
334
-    {
335
-        return false;
336
-    }
337
-
338
-
339
-    /**
340
-     * Returns the priority for the message type.
341
-     * Priorities are defined as constants on EEM_Message.  Currently there are three priorities:
342
-     * - EEM_Message::priority_high
343
-     * - EEM_Message::priority_medium
344
-     * - EEM_Message::priority_low
345
-     * Priority is used to determine the weight the message type is given when queuing for generation and/or sending.
346
-     *
347
-     * @see    EEM_Message for more phpdocs on priority.
348
-     *         The default priority for all message_types is EEM_Message::priority_low.  Message Types wanting to give
349
-     *         a higher priority must override this method. Also note, messengers are able to override priorities
350
-     *         queuing instructions if their "send_now" flag is set to true. An example of this is the HTML messenger
351
-     *         which displays things in the browser.
352
-     * @since  4.9.0
353
-     * @return int
354
-     */
355
-    public function get_priority()
356
-    {
357
-        return EEM_Message::priority_low;
358
-    }
359
-
360
-
361
-    /**
362
-     * This runs the _set_data_handler() method for message types and then returns what got set.
363
-     *
364
-     * @param mixed $data This sets the data property for the message type with the incoming data used for generating.
365
-     * @return string (the reference for the data handler) (will be an empty string if could not be determined).
366
-     */
367
-    public function get_data_handler($data)
368
-    {
369
-        $this->_data = $data;
370
-        $this->_set_data_handler();
371
-        return apply_filters('FHEE__EE_message_type__get_data_handler', $this->_data_handler, $this);
372
-    }
373
-
374
-
375
-    /**
376
-     * This is called externally to reset the value of the $_data property for the message type.
377
-     * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
378
-     * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called
379
-     * (and for back compat reasons). This particular method is used in
380
-     * EE_Messages_Generator::_reset_current_properties to ensure that the internal _data on the message type is
381
-     * cleaned before subsequent EE_Message generation in the same request.
382
-     *
383
-     * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
384
-     *            ensure that there is no manipulation of the _data property during run time so there's a clear
385
-     *            expectation of what it is.  Likely we need to ensure that _data is not persisted IN the message type
386
-     *            at all.
387
-     * @internal  Plugin authors, do not implement this method, it is subject to change.
388
-     * @since     4.9
389
-     */
390
-    public function reset_data()
391
-    {
392
-        $this->_data = null;
393
-    }
394
-
395
-
396
-    /**
397
-     * This does some validation of incoming params gets the url trigger from the defined method in the specific child
398
-     * class and then filters the results.
399
-     *
400
-     * @param string          $context           The message type context
401
-     * @param string          $sending_messenger The sending messenger
402
-     * @param EE_Registration $registration      Registration object
403
-     * @throws EE_Error
404
-     * @deprecated  4.9.0  Likely 4.9.10 or 4.10.0 will remove this method completely
405
-     * @return string          generated url
406
-     */
407
-    public function get_url_trigger($context, $sending_messenger, EE_Registration $registration)
408
-    {
409
-        // validate context
410
-        // valid context?
411
-        if (! isset($this->_contexts[ $context ])) {
412
-            throw new EE_Error(
413
-                sprintf(
414
-                    esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
415
-                    $context,
416
-                    get_class($this)
417
-                )
418
-            );
419
-        }
420
-        // valid sending_messenger?
421
-        $not_valid_msgr = false;
422
-        foreach ($this->_with_messengers as $generating => $sendings) {
423
-            if (empty($sendings) || array_search($sending_messenger, $sendings) === false) {
424
-                $not_valid_msgr = true;
425
-            }
426
-        }
427
-        if ($not_valid_msgr) {
428
-            throw new EE_Error(
429
-                sprintf(
430
-                    esc_html__(
431
-                        'The given sending messenger string (%s) does not match a valid sending messenger with the %s.  If this is incorrect, make sure that the message type has defined this messenger as a sending messenger in its $_with_messengers array.',
432
-                        'event_espresso'
433
-                    ),
434
-                    $sending_messenger,
435
-                    get_class($this)
436
-                )
437
-            );
438
-        }
439
-        return EEH_MSG_Template::generate_url_trigger(
440
-            $sending_messenger,
441
-            $this->_active_messenger->name,
442
-            $context,
443
-            $this->name,
444
-            $registration,
445
-            $this->_GRP_ID,
446
-            $this->_get_id_for_msg_url($context, $registration)
447
-        );
448
-    }
449
-
450
-
451
-    /**
452
-     * Wrapper for _get_data_for_context() that handles some validation before calling the main class and also allows
453
-     * for filtering. This is (currently) called by the EED_Messages module.
454
-     *
455
-     * @since 4.5.0
456
-     * @throws EE_Error
457
-     * @param string          $context      This should be a string matching a valid context for the message type.
458
-     * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
459
-     *                                      guessing a url).
460
-     * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
461
-     *                                      EE_Base_Class_Object
462
-     * @return mixed (EE_Base_Class||EE_Base_Class[])
463
-     */
464
-    public function get_data_for_context($context, EE_Registration $registration, $id = 0)
465
-    {
466
-        // valid context?
467
-        if (! isset($this->_contexts[ $context ])) {
468
-            throw new EE_Error(
469
-                sprintf(
470
-                    esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
471
-                    $context,
472
-                    get_class($this)
473
-                )
474
-            );
475
-        }
476
-        // get data and apply global and class specific filters on it.
477
-        $data = apply_filters(
478
-            'FHEE__EE_message_type__get_data_for_context__data',
479
-            $this->_get_data_for_context($context, $registration, $id),
480
-            $this
481
-        );
482
-        $data = apply_filters('FHEE__' . get_class($this) . '__get_data_for_context__data', $data, $this);
483
-        // if empty then something went wrong!
484
-        if (empty($data)) {
485
-            throw new EE_Error(
486
-                sprintf(
487
-                    esc_html__(
488
-                        'There is no data retrieved, it is possible that the id given (%d) does not match any value in the database for the corresponding EE_Base_Class used by the data handler for the %s message type.',
489
-                        'event_espresso'
490
-                    ),
491
-                    $id,
492
-                    $this->name
493
-                )
494
-            );
495
-        }
496
-        return $data;
497
-    }
498
-
499
-
500
-    /**
501
-     * This returns the contents of the _data property.
502
-     * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
503
-     * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called.
504
-     *
505
-     * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
506
-     *            ensure that there is no manipulation of the _data property during run time so there's a clear
507
-     *            expectation of what it is.
508
-     * @internal  Plugin authors, do not implement this method, it is subject to change.
509
-     * @return mixed
510
-     */
511
-    public function get_data()
512
-    {
513
-        return $this->_data;
514
-    }
515
-
516
-
517
-    /**
518
-     * used to set the $_with_messengers property. (this is a default, child classes SHOULD override)
519
-     *
520
-     * @see   property definition for description of setup.
521
-     * @since 4.5.0
522
-     * @abstract
523
-     * @return void
524
-     */
525
-    protected function _set_with_messengers()
526
-    {
527
-        $this->_with_messengers = array(
528
-            'email' => array('html'),
529
-        );
530
-    }
531
-
532
-
533
-    /**
534
-     * Return the value of the _with_messengers property
535
-     *
536
-     * @since 4.5.0
537
-     * @return array
538
-     */
539
-    public function with_messengers()
540
-    {
541
-        return apply_filters(
542
-            'FHEE__EE_message_type__get_with_messengers__with_messengers__' . get_class($this),
543
-            $this->_with_messengers
544
-        );
545
-    }
546
-
547
-
548
-    /**
549
-     * this public method accepts a page slug (for an EE_admin page) and will return the response from the child class
550
-     * callback function if that page is registered via the `_admin_registered_page` property set by the child class.
551
-     * *
552
-     *
553
-     * @param string $page       the slug of the EE admin page
554
-     * @param array  $messengers an array of active messenger objects
555
-     * @param string $action     the page action (to allow for more specific handling - i.e. edit vs. add pages)
556
-     * @param array  $extra      This is just an extra argument that can be used to pass additional data for setting up
557
-     *                           page content.
558
-     * @access public
559
-     * @return string
560
-     */
561
-    public function get_message_type_admin_page_content(
562
-        $page,
563
-        $action = null,
564
-        $extra = array(),
565
-        $messengers = array()
566
-    ) {
567
-        // we can also further refine the context by action (if present).
568
-        return $this->_get_admin_page_content($page, $action, $extra, $messengers);
569
-    }
570
-
571
-
572
-    /**
573
-     * @return array
574
-     */
575
-    public function get_contexts()
576
-    {
577
-        return $this->_contexts;
578
-    }
579
-
580
-
581
-    /**
582
-     * This just returns the context label for a given context (as set in $_context_label property)
583
-     *
584
-     * @access public
585
-     * @return array
586
-     */
587
-    public function get_context_label()
588
-    {
589
-        return $this->_context_label;
590
-    }
591
-
592
-
593
-    /**
594
-     * This just returns the (filtered) _master_templates property.
595
-     *
596
-     * @see property definition for documentation.
597
-     * @return array
598
-     */
599
-    public function get_master_templates()
600
-    {
601
-        // first class specific filter then filter that by the global filter.
602
-        $master_templates = apply_filters(
603
-            'FHEE__' . get_class($this) . '__get_master_templates',
604
-            $this->_master_templates
605
-        );
606
-        return apply_filters('FHEE__EE_message_type__get_master_templates', $master_templates, $this);
607
-    }
608
-
609
-
610
-    /**
611
-     * Accepts an incoming data handler which contains data for processing, and returns an array of
612
-     * EE_Messages_Addressee objects.
613
-     *
614
-     * @param EE_Messages_incoming_data $data
615
-     * @param string                    $context Limit addressees to specific context.
616
-     * @return array An array indexed by context where each context is an array of EE_Messages_Addressee objects for
617
-     *                                           that context
618
-     * @throws EE_Error
619
-     */
620
-    public function get_addressees(EE_Messages_incoming_data $data, $context = '')
621
-    {
622
-        // override _data
623
-        $this->_data       = $data;
624
-        $addressees        = array();
625
-        $original_contexts = $this->_contexts;
626
-        // if incoming context then limit to that context
627
-        if (! empty($context)) {
628
-            $cntxt = ! empty($this->_contexts[ $context ]) ? $this->_contexts[ $context ] : '';
629
-            if (! empty($cntxt)) {
630
-                $this->_contexts           = array();
631
-                $this->_contexts[ $context ] = $cntxt;
632
-            }
633
-        }
634
-        $this->_set_default_addressee_data();
635
-        if ($this->_process_data()) {
636
-            $addressees = $this->_addressees;
637
-        }
638
-
639
-        // reset contexts and addressees
640
-        $this->_contexts   = $original_contexts;
641
-        $this->_addressees = array();
642
-        return $addressees;
643
-    }
644
-
645
-
646
-    /**
647
-     * processes the data object so we get
648
-     *
649
-     * @throws EE_Error
650
-     * @return bool  true means data was processed successfully, false means not.
651
-     */
652
-    protected function _process_data()
653
-    {
654
-        // at a minimum, we NEED EE_Attendee objects.
655
-        if (empty($this->_data->attendees)) {
656
-            return false;  // there's no data to process!
657
-        }
658
-        // process addressees for each context.  Child classes will have to have methods for
659
-        // each context defined to handle the processing of the data object within them
660
-        foreach ($this->_contexts as $context => $details) {
661
-            $xpctd_method = '_' . $context . '_addressees';
662
-            if (! method_exists($this, $xpctd_method)) {
663
-                throw new EE_Error(
664
-                    sprintf(
665
-                        esc_html__(
666
-                            'The data for %1$s message type cannot be prepared because there is no set method for doing so.  The expected method name is "%2$s" please doublecheck the %1$s message type class and make sure that method is present',
667
-                            'event_espresso'
668
-                        ),
669
-                        $this->label['singular'],
670
-                        $xpctd_method
671
-                    )
672
-                );
673
-            }
674
-            $this->_addressees[ $context ] = call_user_func(array($this, $xpctd_method));
675
-        }
676
-        return true; // data was processed successfully.
677
-    }
678
-
679
-
680
-    /**
681
-     * sets the default_addressee_data property,
682
-     *
683
-     * @access private
684
-     * @return void
685
-     */
686
-    private function _set_default_addressee_data()
687
-    {
688
-        $this->_default_addressee_data = array(
689
-            'billing'                  => $this->_data->billing,
690
-            'taxes'                    => $this->_data->taxes,
691
-            'tax_line_items'           => $this->_data->tax_line_items,
692
-            'additional_line_items'    => $this->_data->additional_line_items,
693
-            'grand_total_line_item'    => $this->_data->grand_total_line_item,
694
-            'txn'                      => $this->_data->txn,
695
-            'payments'                 => $this->_data->payments,
696
-            'payment'                  => isset($this->_data->payment) && $this->_data->payment instanceof EE_Payment
697
-                ? $this->_data->payment
698
-                : null,
699
-            'reg_objs'                 => $this->_data->reg_objs,
700
-            'registrations'            => $this->_data->registrations,
701
-            'datetimes'                => $this->_data->datetimes,
702
-            'tickets'                  => $this->_data->tickets,
703
-            'line_items_with_children' => $this->_data->line_items_with_children,
704
-            'questions'                => $this->_data->questions,
705
-            'answers'                  => $this->_data->answers,
706
-            'txn_status'               => $this->_data->txn_status,
707
-            'total_ticket_count'       => $this->_data->total_ticket_count,
708
-        );
709
-        if (is_array($this->_data->primary_attendee_data)) {
710
-            $this->_default_addressee_data                    = array_merge(
711
-                $this->_default_addressee_data,
712
-                $this->_data->primary_attendee_data
713
-            );
714
-            $this->_default_addressee_data['primary_att_obj'] = $this->_data->primary_attendee_data['att_obj'];
715
-            $this->_default_addressee_data['primary_reg_obj'] = $this->_data->primary_attendee_data['reg_obj'];
716
-        }
717
-    }
718
-
719
-
720
-
721
-    /********************
20
+	/**
21
+	 * message type child classes will set what contexts are associated with the message type via this array.
22
+	 * format:
23
+	 * array(
24
+	 * 'context' => array(
25
+	 *        'label' => esc_html__('Context Label', 'event_espresso'),
26
+	 *        'description' => esc_html__('Context description (for help popups)', 'event_espresso')
27
+	 *    ));
28
+	 *
29
+	 * @var array
30
+	 */
31
+	protected $_contexts = array();
32
+
33
+
34
+	/**
35
+	 * This property is used to define what the display label will be for contexts (eg. "Recipients", "Themes" etc.)
36
+	 * Format:
37
+	 * array( 'label' => 'something', 'plural' => 'somethings', 'description' => 'something' );
38
+	 *
39
+	 * @var array
40
+	 */
41
+	protected $_context_label;
42
+
43
+
44
+	/** MESSAGE ASSEMBLING PROPERTIES **/
45
+	/**
46
+	 * This parameter simply holds all the message objects for retrieval by the controller and sending to the messenger.
47
+	 *
48
+	 * @var array of message objects.
49
+	 */
50
+	public $messages = array();
51
+
52
+	/**
53
+	 * The following holds the templates that will be used to assemble the message object for the messenger.
54
+	 *
55
+	 * @var array
56
+	 */
57
+	protected $_templates;
58
+
59
+
60
+	/**
61
+	 * If a specific template is being parsed, this will hold the message template group GRP_ID for that template.
62
+	 *
63
+	 * @var int.
64
+	 */
65
+	protected $_GRP_ID;
66
+
67
+
68
+	/** OTHER INFO PROPERTIES **/
69
+	/**
70
+	 * This will hold the count of the message objects in the messages array. This could be used for determining if
71
+	 * batching/queueing is needed.
72
+	 *
73
+	 * @var int
74
+	 */
75
+	public $count = 0;
76
+
77
+
78
+	/**
79
+	 * This is set via the `do_messenger_hooks` method and contains the messenger being used to send the message of
80
+	 * this message type at time of sending.
81
+	 *
82
+	 * @var EE_messenger
83
+	 */
84
+	protected $_active_messenger;
85
+
86
+
87
+	/**
88
+	 * This will hold the shortcode_replace instance for handling replacement of shortcodes in the various templates
89
+	 *
90
+	 * @var object
91
+	 */
92
+	protected $_shortcode_replace;
93
+
94
+
95
+	/**
96
+	 * The purpose for this property is to simply allow message types to indicate if the message generated is intended
97
+	 * for only single context.  Child message types should redefine this variable (if necessary) in the
98
+	 * _set_data_Handler() method.
99
+	 *
100
+	 * @var boolean
101
+	 */
102
+	protected $_single_message = false;
103
+
104
+
105
+	/**
106
+	 * This will hold an array of specific reg_ids that are receiving messages.
107
+	 *
108
+	 * @since 4.7.x
109
+	 * @var array
110
+	 */
111
+	protected $_regs_for_sending = array();
112
+
113
+
114
+	/**
115
+	 * This holds the data passed to this class from the controller and also the final processed data.
116
+	 *
117
+	 * @var object
118
+	 */
119
+	protected $_data;
120
+
121
+
122
+	/**
123
+	 * this is just a flag indicating whether we're in preview mode or not.
124
+	 *
125
+	 * @var bool
126
+	 */
127
+	protected $_preview = false;
128
+
129
+
130
+	/**
131
+	 * This just holds defaults for addressee data that children merge with their data array setup
132
+	 *
133
+	 * @var array
134
+	 */
135
+	protected $_default_addressee_data;
136
+
137
+
138
+	/**
139
+	 * Child classes declare through this property what handler they want to use for the incoming data and this string
140
+	 * is used to instantiate the EE_Messages_incoming_data child class for that handler.
141
+	 *
142
+	 * @var string
143
+	 */
144
+	protected $_data_handler;
145
+
146
+
147
+	/**
148
+	 * This holds any specific fields for holding any settings related to a message type (if any needed)
149
+	 *
150
+	 * @var array
151
+	 */
152
+	protected $_admin_settings_fields = array();
153
+
154
+	/**
155
+	 * this property will hold any existing setting that may have been set in the admin.
156
+	 *
157
+	 * @var array
158
+	 */
159
+	protected $_existing_admin_settings = array();
160
+
161
+
162
+	/**
163
+	 * This is used to designate the generating and alternative sending messengers for a message type.  It is set via
164
+	 * set_with_messengers() on construct. Note, generating messenger also acts as a sending messenger for this message
165
+	 * type.  However ONLY the generating messengers are used for creating templates for this message type. Should be
166
+	 * in this format:
167
+	 * {
168
+	 *
169
+	 * @type string $generating_messenger the name of the generating messenger.  Generating
170
+	 *                                          messengers are used for generating templates,
171
+	 *                                          doing validation and defining valid shortcodes.
172
+	 *      {
173
+	 * @type string $sending_messenger    values are the name(s) for the sending
174
+	 *                                              messengers.  sending messengers are
175
+	 *                                              just valid delivery vehicles that will utilize
176
+	 *                                              the templates (and generated EE_message
177
+	 *                                              objects from the generating messengers).
178
+	 *      }
179
+	 * }
180
+	 * @since                             4.5.0
181
+	 * @var array
182
+	 */
183
+	protected $_with_messengers = array();
184
+
185
+
186
+	/**
187
+	 * This holds the addressees in an array indexed by context for later retrieval when assembling the message objects.
188
+	 *
189
+	 * @access protected
190
+	 * @var array
191
+	 */
192
+	protected $_addressees = array();
193
+
194
+
195
+	/**
196
+	 * This allows each message type to set what alternate messenger&message type combination can be used for fallback
197
+	 * default templates if there are no specific ones defined for this messenger and message type.  Should be in the
198
+	 * format:
199
+	 * array(
200
+	 *      'messenger' => 'message_type',
201
+	 *      'another_messenger' => another_message_type
202
+	 * );
203
+	 * This is set in the message type constructor.
204
+	 *
205
+	 * @var array
206
+	 */
207
+	protected $_master_templates = array();
208
+
209
+
210
+	/**
211
+	 * This holds whatever the set template pack is for a message template group when generating messages.
212
+	 *
213
+	 * @since 4.5.0
214
+	 * @var EE_Messages_Template_Pack
215
+	 */
216
+	protected $_template_pack;
217
+
218
+
219
+	/**
220
+	 * This holds whatever the set variation is for a message template group when generating messages.
221
+	 *
222
+	 * @since 4.5.0
223
+	 * @var string
224
+	 */
225
+	protected $_variation;
226
+
227
+
228
+	/**
229
+	 * EE_message_type constructor.
230
+	 */
231
+	public function __construct()
232
+	{
233
+		$this->_messages_item_type = 'message_type';
234
+		$this->_set_contexts();
235
+		$this->_set_with_messengers();
236
+		parent::__construct();
237
+	}
238
+
239
+
240
+	/**
241
+	 * This sets the data handler for the message type.  It must be used to define the _data_handler property.  It is
242
+	 * called when messages are setup.
243
+	 *
244
+	 * @abstract
245
+	 * @access protected
246
+	 * @return void
247
+	 */
248
+	abstract protected function _set_data_handler();
249
+
250
+
251
+	/**
252
+	 * This method should return a EE_Base_Class object (or array of EE_Base_Class objects) for the given context and
253
+	 * ID (which should be the primary key id for the base class).  Client code doesn't have to know what a message
254
+	 * type's data handler is.
255
+	 *
256
+	 * @since 4.5.0
257
+	 * @param string          $context      This should be a string matching a valid context for the message type.
258
+	 * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
259
+	 *                                      guessing a url).
260
+	 * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
261
+	 *                                      EE_Base_Class_Object
262
+	 * @return mixed ( EE_Base_Class||EE_Base_Class[] )
263
+	 */
264
+	abstract protected function _get_data_for_context($context, EE_Registration $registration, $id);
265
+
266
+
267
+	/**
268
+	 * _set_contexts
269
+	 * This sets up the contexts associated with the message_type
270
+	 *
271
+	 * @abstract
272
+	 * @access  protected
273
+	 * @return  void
274
+	 */
275
+	abstract protected function _set_contexts();
276
+
277
+
278
+	/**
279
+	 * This is used to get the "id" value fo the msg_trigger_url generated by get_url_trigger().
280
+	 * In most cases, child classes don't need anything, (hence the default of 0), however if there is a specific
281
+	 * EE_Base_Class that is required in generating a message for a message type recipient then the message
282
+	 * type should override this method and use the given params to generate the correct ID.
283
+	 *
284
+	 * @param string          $context      The message type context.
285
+	 * @param EE_Registration $registration Registration object
286
+	 * @deprecated 4.9.0
287
+	 * @return int
288
+	 */
289
+	protected function _get_id_for_msg_url($context, EE_Registration $registration)
290
+	{
291
+		return 0;
292
+	}
293
+
294
+
295
+	/**
296
+	 * This sets up any action/filter hooks this message type puts in place for a specific messenger.  Note that by
297
+	 * default this does nothing.  Child classes will need to override if they want to add specific hooks for a
298
+	 * messenger.
299
+	 *
300
+	 * @since 1.0.0
301
+	 * @return void
302
+	 */
303
+	protected function _do_messenger_hooks()
304
+	{
305
+		return;
306
+	}
307
+
308
+
309
+	/**
310
+	 * This is a public wrapper for the protected _do_messenger_hooks() method.
311
+	 * For backward compat reasons, this was done rather than making the protected method public.
312
+	 *
313
+	 * @param   EE_messenger $messenger This is used to set the $_active_messenger property, so message types are able
314
+	 *                                  to know what messenger is being used to send the message at the time of
315
+	 *                                  sending.
316
+	 * @since 4.9.0
317
+	 */
318
+	public function do_messenger_hooks($messenger = null)
319
+	{
320
+		$this->_active_messenger = $messenger;
321
+		$this->_do_messenger_hooks();
322
+	}
323
+
324
+
325
+	/**
326
+	 * This method returns whether this message type should always generate a new copy
327
+	 * when requested, or if links can be to the already generated copy.
328
+	 * Note: this does NOT affect viewing/resending already generated messages in the EE_Message list table.
329
+	 * Child classes should override this if different from the default of false.
330
+	 *
331
+	 * @return bool     false means can link to generated EE_Message.  true must regenerate.
332
+	 */
333
+	public function always_generate()
334
+	{
335
+		return false;
336
+	}
337
+
338
+
339
+	/**
340
+	 * Returns the priority for the message type.
341
+	 * Priorities are defined as constants on EEM_Message.  Currently there are three priorities:
342
+	 * - EEM_Message::priority_high
343
+	 * - EEM_Message::priority_medium
344
+	 * - EEM_Message::priority_low
345
+	 * Priority is used to determine the weight the message type is given when queuing for generation and/or sending.
346
+	 *
347
+	 * @see    EEM_Message for more phpdocs on priority.
348
+	 *         The default priority for all message_types is EEM_Message::priority_low.  Message Types wanting to give
349
+	 *         a higher priority must override this method. Also note, messengers are able to override priorities
350
+	 *         queuing instructions if their "send_now" flag is set to true. An example of this is the HTML messenger
351
+	 *         which displays things in the browser.
352
+	 * @since  4.9.0
353
+	 * @return int
354
+	 */
355
+	public function get_priority()
356
+	{
357
+		return EEM_Message::priority_low;
358
+	}
359
+
360
+
361
+	/**
362
+	 * This runs the _set_data_handler() method for message types and then returns what got set.
363
+	 *
364
+	 * @param mixed $data This sets the data property for the message type with the incoming data used for generating.
365
+	 * @return string (the reference for the data handler) (will be an empty string if could not be determined).
366
+	 */
367
+	public function get_data_handler($data)
368
+	{
369
+		$this->_data = $data;
370
+		$this->_set_data_handler();
371
+		return apply_filters('FHEE__EE_message_type__get_data_handler', $this->_data_handler, $this);
372
+	}
373
+
374
+
375
+	/**
376
+	 * This is called externally to reset the value of the $_data property for the message type.
377
+	 * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
378
+	 * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called
379
+	 * (and for back compat reasons). This particular method is used in
380
+	 * EE_Messages_Generator::_reset_current_properties to ensure that the internal _data on the message type is
381
+	 * cleaned before subsequent EE_Message generation in the same request.
382
+	 *
383
+	 * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
384
+	 *            ensure that there is no manipulation of the _data property during run time so there's a clear
385
+	 *            expectation of what it is.  Likely we need to ensure that _data is not persisted IN the message type
386
+	 *            at all.
387
+	 * @internal  Plugin authors, do not implement this method, it is subject to change.
388
+	 * @since     4.9
389
+	 */
390
+	public function reset_data()
391
+	{
392
+		$this->_data = null;
393
+	}
394
+
395
+
396
+	/**
397
+	 * This does some validation of incoming params gets the url trigger from the defined method in the specific child
398
+	 * class and then filters the results.
399
+	 *
400
+	 * @param string          $context           The message type context
401
+	 * @param string          $sending_messenger The sending messenger
402
+	 * @param EE_Registration $registration      Registration object
403
+	 * @throws EE_Error
404
+	 * @deprecated  4.9.0  Likely 4.9.10 or 4.10.0 will remove this method completely
405
+	 * @return string          generated url
406
+	 */
407
+	public function get_url_trigger($context, $sending_messenger, EE_Registration $registration)
408
+	{
409
+		// validate context
410
+		// valid context?
411
+		if (! isset($this->_contexts[ $context ])) {
412
+			throw new EE_Error(
413
+				sprintf(
414
+					esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
415
+					$context,
416
+					get_class($this)
417
+				)
418
+			);
419
+		}
420
+		// valid sending_messenger?
421
+		$not_valid_msgr = false;
422
+		foreach ($this->_with_messengers as $generating => $sendings) {
423
+			if (empty($sendings) || array_search($sending_messenger, $sendings) === false) {
424
+				$not_valid_msgr = true;
425
+			}
426
+		}
427
+		if ($not_valid_msgr) {
428
+			throw new EE_Error(
429
+				sprintf(
430
+					esc_html__(
431
+						'The given sending messenger string (%s) does not match a valid sending messenger with the %s.  If this is incorrect, make sure that the message type has defined this messenger as a sending messenger in its $_with_messengers array.',
432
+						'event_espresso'
433
+					),
434
+					$sending_messenger,
435
+					get_class($this)
436
+				)
437
+			);
438
+		}
439
+		return EEH_MSG_Template::generate_url_trigger(
440
+			$sending_messenger,
441
+			$this->_active_messenger->name,
442
+			$context,
443
+			$this->name,
444
+			$registration,
445
+			$this->_GRP_ID,
446
+			$this->_get_id_for_msg_url($context, $registration)
447
+		);
448
+	}
449
+
450
+
451
+	/**
452
+	 * Wrapper for _get_data_for_context() that handles some validation before calling the main class and also allows
453
+	 * for filtering. This is (currently) called by the EED_Messages module.
454
+	 *
455
+	 * @since 4.5.0
456
+	 * @throws EE_Error
457
+	 * @param string          $context      This should be a string matching a valid context for the message type.
458
+	 * @param EE_Registration $registration Need a registration to ensure that the data is valid (prevents people
459
+	 *                                      guessing a url).
460
+	 * @param int             $id           Optional. Integer corresponding to the value for the primary key of a
461
+	 *                                      EE_Base_Class_Object
462
+	 * @return mixed (EE_Base_Class||EE_Base_Class[])
463
+	 */
464
+	public function get_data_for_context($context, EE_Registration $registration, $id = 0)
465
+	{
466
+		// valid context?
467
+		if (! isset($this->_contexts[ $context ])) {
468
+			throw new EE_Error(
469
+				sprintf(
470
+					esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
471
+					$context,
472
+					get_class($this)
473
+				)
474
+			);
475
+		}
476
+		// get data and apply global and class specific filters on it.
477
+		$data = apply_filters(
478
+			'FHEE__EE_message_type__get_data_for_context__data',
479
+			$this->_get_data_for_context($context, $registration, $id),
480
+			$this
481
+		);
482
+		$data = apply_filters('FHEE__' . get_class($this) . '__get_data_for_context__data', $data, $this);
483
+		// if empty then something went wrong!
484
+		if (empty($data)) {
485
+			throw new EE_Error(
486
+				sprintf(
487
+					esc_html__(
488
+						'There is no data retrieved, it is possible that the id given (%d) does not match any value in the database for the corresponding EE_Base_Class used by the data handler for the %s message type.',
489
+						'event_espresso'
490
+					),
491
+					$id,
492
+					$this->name
493
+				)
494
+			);
495
+		}
496
+		return $data;
497
+	}
498
+
499
+
500
+	/**
501
+	 * This returns the contents of the _data property.
502
+	 * Please note the value of the _data is highly volatile.  It was added as an interim measure ensuring
503
+	 * EE_Message_To_Generate objects have any changes to the _data property when `_set_data_handler` method is called.
504
+	 *
505
+	 * @todo      This needs refactored along with the whole _set_data_handler() method in EE_message_types. Need to
506
+	 *            ensure that there is no manipulation of the _data property during run time so there's a clear
507
+	 *            expectation of what it is.
508
+	 * @internal  Plugin authors, do not implement this method, it is subject to change.
509
+	 * @return mixed
510
+	 */
511
+	public function get_data()
512
+	{
513
+		return $this->_data;
514
+	}
515
+
516
+
517
+	/**
518
+	 * used to set the $_with_messengers property. (this is a default, child classes SHOULD override)
519
+	 *
520
+	 * @see   property definition for description of setup.
521
+	 * @since 4.5.0
522
+	 * @abstract
523
+	 * @return void
524
+	 */
525
+	protected function _set_with_messengers()
526
+	{
527
+		$this->_with_messengers = array(
528
+			'email' => array('html'),
529
+		);
530
+	}
531
+
532
+
533
+	/**
534
+	 * Return the value of the _with_messengers property
535
+	 *
536
+	 * @since 4.5.0
537
+	 * @return array
538
+	 */
539
+	public function with_messengers()
540
+	{
541
+		return apply_filters(
542
+			'FHEE__EE_message_type__get_with_messengers__with_messengers__' . get_class($this),
543
+			$this->_with_messengers
544
+		);
545
+	}
546
+
547
+
548
+	/**
549
+	 * this public method accepts a page slug (for an EE_admin page) and will return the response from the child class
550
+	 * callback function if that page is registered via the `_admin_registered_page` property set by the child class.
551
+	 * *
552
+	 *
553
+	 * @param string $page       the slug of the EE admin page
554
+	 * @param array  $messengers an array of active messenger objects
555
+	 * @param string $action     the page action (to allow for more specific handling - i.e. edit vs. add pages)
556
+	 * @param array  $extra      This is just an extra argument that can be used to pass additional data for setting up
557
+	 *                           page content.
558
+	 * @access public
559
+	 * @return string
560
+	 */
561
+	public function get_message_type_admin_page_content(
562
+		$page,
563
+		$action = null,
564
+		$extra = array(),
565
+		$messengers = array()
566
+	) {
567
+		// we can also further refine the context by action (if present).
568
+		return $this->_get_admin_page_content($page, $action, $extra, $messengers);
569
+	}
570
+
571
+
572
+	/**
573
+	 * @return array
574
+	 */
575
+	public function get_contexts()
576
+	{
577
+		return $this->_contexts;
578
+	}
579
+
580
+
581
+	/**
582
+	 * This just returns the context label for a given context (as set in $_context_label property)
583
+	 *
584
+	 * @access public
585
+	 * @return array
586
+	 */
587
+	public function get_context_label()
588
+	{
589
+		return $this->_context_label;
590
+	}
591
+
592
+
593
+	/**
594
+	 * This just returns the (filtered) _master_templates property.
595
+	 *
596
+	 * @see property definition for documentation.
597
+	 * @return array
598
+	 */
599
+	public function get_master_templates()
600
+	{
601
+		// first class specific filter then filter that by the global filter.
602
+		$master_templates = apply_filters(
603
+			'FHEE__' . get_class($this) . '__get_master_templates',
604
+			$this->_master_templates
605
+		);
606
+		return apply_filters('FHEE__EE_message_type__get_master_templates', $master_templates, $this);
607
+	}
608
+
609
+
610
+	/**
611
+	 * Accepts an incoming data handler which contains data for processing, and returns an array of
612
+	 * EE_Messages_Addressee objects.
613
+	 *
614
+	 * @param EE_Messages_incoming_data $data
615
+	 * @param string                    $context Limit addressees to specific context.
616
+	 * @return array An array indexed by context where each context is an array of EE_Messages_Addressee objects for
617
+	 *                                           that context
618
+	 * @throws EE_Error
619
+	 */
620
+	public function get_addressees(EE_Messages_incoming_data $data, $context = '')
621
+	{
622
+		// override _data
623
+		$this->_data       = $data;
624
+		$addressees        = array();
625
+		$original_contexts = $this->_contexts;
626
+		// if incoming context then limit to that context
627
+		if (! empty($context)) {
628
+			$cntxt = ! empty($this->_contexts[ $context ]) ? $this->_contexts[ $context ] : '';
629
+			if (! empty($cntxt)) {
630
+				$this->_contexts           = array();
631
+				$this->_contexts[ $context ] = $cntxt;
632
+			}
633
+		}
634
+		$this->_set_default_addressee_data();
635
+		if ($this->_process_data()) {
636
+			$addressees = $this->_addressees;
637
+		}
638
+
639
+		// reset contexts and addressees
640
+		$this->_contexts   = $original_contexts;
641
+		$this->_addressees = array();
642
+		return $addressees;
643
+	}
644
+
645
+
646
+	/**
647
+	 * processes the data object so we get
648
+	 *
649
+	 * @throws EE_Error
650
+	 * @return bool  true means data was processed successfully, false means not.
651
+	 */
652
+	protected function _process_data()
653
+	{
654
+		// at a minimum, we NEED EE_Attendee objects.
655
+		if (empty($this->_data->attendees)) {
656
+			return false;  // there's no data to process!
657
+		}
658
+		// process addressees for each context.  Child classes will have to have methods for
659
+		// each context defined to handle the processing of the data object within them
660
+		foreach ($this->_contexts as $context => $details) {
661
+			$xpctd_method = '_' . $context . '_addressees';
662
+			if (! method_exists($this, $xpctd_method)) {
663
+				throw new EE_Error(
664
+					sprintf(
665
+						esc_html__(
666
+							'The data for %1$s message type cannot be prepared because there is no set method for doing so.  The expected method name is "%2$s" please doublecheck the %1$s message type class and make sure that method is present',
667
+							'event_espresso'
668
+						),
669
+						$this->label['singular'],
670
+						$xpctd_method
671
+					)
672
+				);
673
+			}
674
+			$this->_addressees[ $context ] = call_user_func(array($this, $xpctd_method));
675
+		}
676
+		return true; // data was processed successfully.
677
+	}
678
+
679
+
680
+	/**
681
+	 * sets the default_addressee_data property,
682
+	 *
683
+	 * @access private
684
+	 * @return void
685
+	 */
686
+	private function _set_default_addressee_data()
687
+	{
688
+		$this->_default_addressee_data = array(
689
+			'billing'                  => $this->_data->billing,
690
+			'taxes'                    => $this->_data->taxes,
691
+			'tax_line_items'           => $this->_data->tax_line_items,
692
+			'additional_line_items'    => $this->_data->additional_line_items,
693
+			'grand_total_line_item'    => $this->_data->grand_total_line_item,
694
+			'txn'                      => $this->_data->txn,
695
+			'payments'                 => $this->_data->payments,
696
+			'payment'                  => isset($this->_data->payment) && $this->_data->payment instanceof EE_Payment
697
+				? $this->_data->payment
698
+				: null,
699
+			'reg_objs'                 => $this->_data->reg_objs,
700
+			'registrations'            => $this->_data->registrations,
701
+			'datetimes'                => $this->_data->datetimes,
702
+			'tickets'                  => $this->_data->tickets,
703
+			'line_items_with_children' => $this->_data->line_items_with_children,
704
+			'questions'                => $this->_data->questions,
705
+			'answers'                  => $this->_data->answers,
706
+			'txn_status'               => $this->_data->txn_status,
707
+			'total_ticket_count'       => $this->_data->total_ticket_count,
708
+		);
709
+		if (is_array($this->_data->primary_attendee_data)) {
710
+			$this->_default_addressee_data                    = array_merge(
711
+				$this->_default_addressee_data,
712
+				$this->_data->primary_attendee_data
713
+			);
714
+			$this->_default_addressee_data['primary_att_obj'] = $this->_data->primary_attendee_data['att_obj'];
715
+			$this->_default_addressee_data['primary_reg_obj'] = $this->_data->primary_attendee_data['reg_obj'];
716
+		}
717
+	}
718
+
719
+
720
+
721
+	/********************
722 722
      * setup default shared addressee object/contexts
723 723
      * These can be utilized simply by defining the context in the child message type.
724 724
      * They can also be overridden if a specific message type needs to do something different for that context.
725 725
      ****************/
726
-    /**
727
-     * see abstract declaration in parent class for details, children message types can
728
-     * override these valid shortcodes if desired (we include all for all contexts by default).
729
-     */
730
-    protected function _set_valid_shortcodes()
731
-    {
732
-        $all_shortcodes = array(
733
-            'attendee_list',
734
-            'attendee',
735
-            'datetime_list',
736
-            'datetime',
737
-            'event_list',
738
-            'event_meta',
739
-            'event',
740
-            'organization',
741
-            'recipient_details',
742
-            'recipient_list',
743
-            'ticket_list',
744
-            'ticket',
745
-            'transaction',
746
-            'venue',
747
-            'primary_registration_details',
748
-            'primary_registration_list',
749
-            'event_author',
750
-            'email',
751
-            'messenger',
752
-        );
753
-        $contexts       = $this->get_contexts();
754
-        foreach ($contexts as $context => $details) {
755
-            $this->_valid_shortcodes[ $context ] = $all_shortcodes;
756
-            // make sure non admin context does not include the event_author shortcodes
757
-            if ($context != 'admin') {
758
-                if (($key = array_search('event_author', $this->_valid_shortcodes[ $context ])) !== false) {
759
-                    unset($this->_valid_shortcodes[ $context ][ $key ]);
760
-                }
761
-            }
762
-        }
763
-        // make sure admin context does not include the recipient_details shortcodes
764
-        // IF we have admin context hooked in message types might not have that context.
765
-        if (! empty($this->_valid_shortcodes['admin'])) {
766
-            if (($key = array_search('recipient_details', $this->_valid_shortcodes['admin'])) !== false) {
767
-                unset($this->_valid_shortcodes['admin'][ $key ]);
768
-            }
769
-            // make sure admin context does not include the recipient_details shortcodes
770
-            if (($key = array_search('recipient_list', $this->_valid_shortcodes['admin'])) !== false) {
771
-                unset($this->_valid_shortcodes['admin'][ $key ]);
772
-            }
773
-        }
774
-    }
775
-
776
-
777
-    /**
778
-     * Used by Validators to modify the valid shortcodes.
779
-     *
780
-     * @param  array $new_config array of valid shortcodes (by context)
781
-     * @return void               sets valid_shortcodes property
782
-     */
783
-    public function reset_valid_shortcodes_config($new_config)
784
-    {
785
-        foreach ($new_config as $context => $shortcodes) {
786
-            $this->_valid_shortcodes[ $context ] = $shortcodes;
787
-        }
788
-    }
789
-
790
-
791
-    /**
792
-     * returns an array of addressee objects for event_admins
793
-     *
794
-     * @access protected
795
-     * @return array array of EE_Messages_Addressee objects
796
-     * @throws EE_Error
797
-     * @throws InvalidArgumentException
798
-     * @throws InvalidDataTypeException
799
-     * @throws InvalidInterfaceException
800
-     */
801
-    protected function _admin_addressees()
802
-    {
803
-        $admin_events = array();
804
-        $addressees   = array();
805
-        // first we need to get the event admin user id for all the events
806
-        // and setup an addressee object for each unique admin user.
807
-        foreach ($this->_data->events as $line_ref => $event) {
808
-            $admin_id = $this->_get_event_admin_id($event['ID']);
809
-            // make sure we are just including the events that belong to this admin!
810
-            $admin_events[ $admin_id ][ $line_ref ] = $event;
811
-        }
812
-        // k now we can loop through the event_admins and setup the addressee data.
813
-        foreach ($admin_events as $admin_id => $event_details) {
814
-            $aee          = array(
815
-                'user_id'        => $admin_id,
816
-                'events'         => $event_details,
817
-                'attendees'      => $this->_data->attendees,
818
-                'recipient_id'   => $admin_id,
819
-                'recipient_type' => 'WP_User',
820
-            );
821
-            $aee          = array_merge($this->_default_addressee_data, $aee);
822
-            $addressees[] = new EE_Messages_Addressee($aee);
823
-        }
824
-        return $addressees;
825
-    }
826
-
827
-
828
-    /**
829
-     * Takes care of setting up the addressee object(s) for the primary attendee.
830
-     *
831
-     * @access protected
832
-     * @return array of EE_Addressee objects
833
-     * @throws EE_Error
834
-     */
835
-    protected function _primary_attendee_addressees()
836
-    {
837
-        $aee                   = $this->_default_addressee_data;
838
-        $aee['events']         = $this->_data->events;
839
-        $aee['attendees']      = $this->_data->attendees;
840
-        $aee['recipient_id']   = $aee['primary_att_obj'] instanceof EE_Attendee ? $aee['primary_att_obj']->ID() : 0;
841
-        $aee['recipient_type'] = 'Attendee';
842
-        // great now we can instantiate the $addressee object and return (as an array);
843
-        $add[] = new EE_Messages_Addressee($aee);
844
-        return $add;
845
-    }
846
-
847
-
848
-    /**
849
-     * Takes care of setting up the addressee object(s) for the registered attendees
850
-     *
851
-     * @access protected
852
-     * @return array of EE_Addressee objects
853
-     */
854
-    protected function _attendee_addressees()
855
-    {
856
-        $add = array();
857
-        // we just have to loop through the attendees.  We'll also set the attached events for each attendee.
858
-        // use to verify unique attendee emails... we don't want to sent multiple copies to the same attendee do we?
859
-        $already_processed = array();
860
-        foreach ($this->_data->attendees as $att_id => $details) {
861
-            // set the attendee array to blank on each loop;
862
-            $aee = array();
863
-            if (
864
-                isset($this->_data->reg_obj)
865
-                && ($this->_data->reg_obj->attendee_ID() != $att_id)
866
-                && $this->_single_message
867
-            ) {
868
-                continue;
869
-            }
870
-            // is $this->_regs_for_sending present?
871
-            // If so, let's make sure we ONLY generate addressee for registrations in that array.
872
-            if (! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
873
-                $regs_allowed = array_intersect_key(array_flip($this->_regs_for_sending), $details['reg_objs']);
874
-                if (empty($regs_allowed)) {
875
-                    continue;
876
-                }
877
-            }
878
-            if (
879
-                apply_filters(
880
-                    'FHEE__EE_message_type___attendee_addressees__prevent_duplicate_email_sends',
881
-                    true,
882
-                    $this->_data,
883
-                    $this
884
-                )
885
-                && in_array($att_id, $already_processed, true)
886
-            ) {
887
-                continue;
888
-            }
889
-            $already_processed[] = $att_id;
890
-            foreach ($details as $item => $value) {
891
-                $aee[ $item ] = $value;
892
-                if ($item === 'line_ref') {
893
-                    foreach ($value as $event_id) {
894
-                        $aee['events'][ $event_id ] = $this->_data->events[ $event_id ];
895
-                    }
896
-                }
897
-                if ($item === 'attendee_email') {
898
-                    $aee['attendee_email'] = $value;
899
-                }
900
-                /*if ( $item == 'registration_id' ) {
726
+	/**
727
+	 * see abstract declaration in parent class for details, children message types can
728
+	 * override these valid shortcodes if desired (we include all for all contexts by default).
729
+	 */
730
+	protected function _set_valid_shortcodes()
731
+	{
732
+		$all_shortcodes = array(
733
+			'attendee_list',
734
+			'attendee',
735
+			'datetime_list',
736
+			'datetime',
737
+			'event_list',
738
+			'event_meta',
739
+			'event',
740
+			'organization',
741
+			'recipient_details',
742
+			'recipient_list',
743
+			'ticket_list',
744
+			'ticket',
745
+			'transaction',
746
+			'venue',
747
+			'primary_registration_details',
748
+			'primary_registration_list',
749
+			'event_author',
750
+			'email',
751
+			'messenger',
752
+		);
753
+		$contexts       = $this->get_contexts();
754
+		foreach ($contexts as $context => $details) {
755
+			$this->_valid_shortcodes[ $context ] = $all_shortcodes;
756
+			// make sure non admin context does not include the event_author shortcodes
757
+			if ($context != 'admin') {
758
+				if (($key = array_search('event_author', $this->_valid_shortcodes[ $context ])) !== false) {
759
+					unset($this->_valid_shortcodes[ $context ][ $key ]);
760
+				}
761
+			}
762
+		}
763
+		// make sure admin context does not include the recipient_details shortcodes
764
+		// IF we have admin context hooked in message types might not have that context.
765
+		if (! empty($this->_valid_shortcodes['admin'])) {
766
+			if (($key = array_search('recipient_details', $this->_valid_shortcodes['admin'])) !== false) {
767
+				unset($this->_valid_shortcodes['admin'][ $key ]);
768
+			}
769
+			// make sure admin context does not include the recipient_details shortcodes
770
+			if (($key = array_search('recipient_list', $this->_valid_shortcodes['admin'])) !== false) {
771
+				unset($this->_valid_shortcodes['admin'][ $key ]);
772
+			}
773
+		}
774
+	}
775
+
776
+
777
+	/**
778
+	 * Used by Validators to modify the valid shortcodes.
779
+	 *
780
+	 * @param  array $new_config array of valid shortcodes (by context)
781
+	 * @return void               sets valid_shortcodes property
782
+	 */
783
+	public function reset_valid_shortcodes_config($new_config)
784
+	{
785
+		foreach ($new_config as $context => $shortcodes) {
786
+			$this->_valid_shortcodes[ $context ] = $shortcodes;
787
+		}
788
+	}
789
+
790
+
791
+	/**
792
+	 * returns an array of addressee objects for event_admins
793
+	 *
794
+	 * @access protected
795
+	 * @return array array of EE_Messages_Addressee objects
796
+	 * @throws EE_Error
797
+	 * @throws InvalidArgumentException
798
+	 * @throws InvalidDataTypeException
799
+	 * @throws InvalidInterfaceException
800
+	 */
801
+	protected function _admin_addressees()
802
+	{
803
+		$admin_events = array();
804
+		$addressees   = array();
805
+		// first we need to get the event admin user id for all the events
806
+		// and setup an addressee object for each unique admin user.
807
+		foreach ($this->_data->events as $line_ref => $event) {
808
+			$admin_id = $this->_get_event_admin_id($event['ID']);
809
+			// make sure we are just including the events that belong to this admin!
810
+			$admin_events[ $admin_id ][ $line_ref ] = $event;
811
+		}
812
+		// k now we can loop through the event_admins and setup the addressee data.
813
+		foreach ($admin_events as $admin_id => $event_details) {
814
+			$aee          = array(
815
+				'user_id'        => $admin_id,
816
+				'events'         => $event_details,
817
+				'attendees'      => $this->_data->attendees,
818
+				'recipient_id'   => $admin_id,
819
+				'recipient_type' => 'WP_User',
820
+			);
821
+			$aee          = array_merge($this->_default_addressee_data, $aee);
822
+			$addressees[] = new EE_Messages_Addressee($aee);
823
+		}
824
+		return $addressees;
825
+	}
826
+
827
+
828
+	/**
829
+	 * Takes care of setting up the addressee object(s) for the primary attendee.
830
+	 *
831
+	 * @access protected
832
+	 * @return array of EE_Addressee objects
833
+	 * @throws EE_Error
834
+	 */
835
+	protected function _primary_attendee_addressees()
836
+	{
837
+		$aee                   = $this->_default_addressee_data;
838
+		$aee['events']         = $this->_data->events;
839
+		$aee['attendees']      = $this->_data->attendees;
840
+		$aee['recipient_id']   = $aee['primary_att_obj'] instanceof EE_Attendee ? $aee['primary_att_obj']->ID() : 0;
841
+		$aee['recipient_type'] = 'Attendee';
842
+		// great now we can instantiate the $addressee object and return (as an array);
843
+		$add[] = new EE_Messages_Addressee($aee);
844
+		return $add;
845
+	}
846
+
847
+
848
+	/**
849
+	 * Takes care of setting up the addressee object(s) for the registered attendees
850
+	 *
851
+	 * @access protected
852
+	 * @return array of EE_Addressee objects
853
+	 */
854
+	protected function _attendee_addressees()
855
+	{
856
+		$add = array();
857
+		// we just have to loop through the attendees.  We'll also set the attached events for each attendee.
858
+		// use to verify unique attendee emails... we don't want to sent multiple copies to the same attendee do we?
859
+		$already_processed = array();
860
+		foreach ($this->_data->attendees as $att_id => $details) {
861
+			// set the attendee array to blank on each loop;
862
+			$aee = array();
863
+			if (
864
+				isset($this->_data->reg_obj)
865
+				&& ($this->_data->reg_obj->attendee_ID() != $att_id)
866
+				&& $this->_single_message
867
+			) {
868
+				continue;
869
+			}
870
+			// is $this->_regs_for_sending present?
871
+			// If so, let's make sure we ONLY generate addressee for registrations in that array.
872
+			if (! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
873
+				$regs_allowed = array_intersect_key(array_flip($this->_regs_for_sending), $details['reg_objs']);
874
+				if (empty($regs_allowed)) {
875
+					continue;
876
+				}
877
+			}
878
+			if (
879
+				apply_filters(
880
+					'FHEE__EE_message_type___attendee_addressees__prevent_duplicate_email_sends',
881
+					true,
882
+					$this->_data,
883
+					$this
884
+				)
885
+				&& in_array($att_id, $already_processed, true)
886
+			) {
887
+				continue;
888
+			}
889
+			$already_processed[] = $att_id;
890
+			foreach ($details as $item => $value) {
891
+				$aee[ $item ] = $value;
892
+				if ($item === 'line_ref') {
893
+					foreach ($value as $event_id) {
894
+						$aee['events'][ $event_id ] = $this->_data->events[ $event_id ];
895
+					}
896
+				}
897
+				if ($item === 'attendee_email') {
898
+					$aee['attendee_email'] = $value;
899
+				}
900
+				/*if ( $item == 'registration_id' ) {
901 901
                     $aee['attendee_registration_id'] = $value;
902 902
                 }/**/
903
-            }
904
-            // note the FIRST reg object in this array is the one
905
-            // we'll use for this attendee as the primary registration for this attendee.
906
-            $aee['reg_obj']        = reset($this->_data->attendees[ $att_id ]['reg_objs']);
907
-            $aee['attendees']      = $this->_data->attendees;
908
-            $aee['recipient_id']   = $att_id;
909
-            $aee['recipient_type'] = 'Attendee';
910
-            // merge in the primary attendee data
911
-            $aee   = array_merge($this->_default_addressee_data, $aee);
912
-            $add[] = new EE_Messages_Addressee($aee);
913
-        }
914
-        return $add;
915
-    }
916
-
917
-
918
-    /**
919
-     * @param $event_id
920
-     * @return int
921
-     * @throws EE_Error
922
-     * @throws InvalidArgumentException
923
-     * @throws InvalidDataTypeException
924
-     * @throws InvalidInterfaceException
925
-     */
926
-    protected function _get_event_admin_id($event_id)
927
-    {
928
-        $event = EEM_Event::instance()->get_one_by_ID($event_id);
929
-        return $event instanceof EE_Event ? $event->wp_user() : 0;
930
-    }
903
+			}
904
+			// note the FIRST reg object in this array is the one
905
+			// we'll use for this attendee as the primary registration for this attendee.
906
+			$aee['reg_obj']        = reset($this->_data->attendees[ $att_id ]['reg_objs']);
907
+			$aee['attendees']      = $this->_data->attendees;
908
+			$aee['recipient_id']   = $att_id;
909
+			$aee['recipient_type'] = 'Attendee';
910
+			// merge in the primary attendee data
911
+			$aee   = array_merge($this->_default_addressee_data, $aee);
912
+			$add[] = new EE_Messages_Addressee($aee);
913
+		}
914
+		return $add;
915
+	}
916
+
917
+
918
+	/**
919
+	 * @param $event_id
920
+	 * @return int
921
+	 * @throws EE_Error
922
+	 * @throws InvalidArgumentException
923
+	 * @throws InvalidDataTypeException
924
+	 * @throws InvalidInterfaceException
925
+	 */
926
+	protected function _get_event_admin_id($event_id)
927
+	{
928
+		$event = EEM_Event::instance()->get_one_by_ID($event_id);
929
+		return $event instanceof EE_Event ? $event->wp_user() : 0;
930
+	}
931 931
 }
Please login to merge, or discard this patch.
Spacing   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -408,7 +408,7 @@  discard block
 block discarded – undo
408 408
     {
409 409
         // validate context
410 410
         // valid context?
411
-        if (! isset($this->_contexts[ $context ])) {
411
+        if ( ! isset($this->_contexts[$context])) {
412 412
             throw new EE_Error(
413 413
                 sprintf(
414 414
                     esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
@@ -464,7 +464,7 @@  discard block
 block discarded – undo
464 464
     public function get_data_for_context($context, EE_Registration $registration, $id = 0)
465 465
     {
466 466
         // valid context?
467
-        if (! isset($this->_contexts[ $context ])) {
467
+        if ( ! isset($this->_contexts[$context])) {
468 468
             throw new EE_Error(
469 469
                 sprintf(
470 470
                     esc_html__('The context %s is not a valid context for %s.', 'event_espresso'),
@@ -479,7 +479,7 @@  discard block
 block discarded – undo
479 479
             $this->_get_data_for_context($context, $registration, $id),
480 480
             $this
481 481
         );
482
-        $data = apply_filters('FHEE__' . get_class($this) . '__get_data_for_context__data', $data, $this);
482
+        $data = apply_filters('FHEE__'.get_class($this).'__get_data_for_context__data', $data, $this);
483 483
         // if empty then something went wrong!
484 484
         if (empty($data)) {
485 485
             throw new EE_Error(
@@ -539,7 +539,7 @@  discard block
 block discarded – undo
539 539
     public function with_messengers()
540 540
     {
541 541
         return apply_filters(
542
-            'FHEE__EE_message_type__get_with_messengers__with_messengers__' . get_class($this),
542
+            'FHEE__EE_message_type__get_with_messengers__with_messengers__'.get_class($this),
543 543
             $this->_with_messengers
544 544
         );
545 545
     }
@@ -600,7 +600,7 @@  discard block
 block discarded – undo
600 600
     {
601 601
         // first class specific filter then filter that by the global filter.
602 602
         $master_templates = apply_filters(
603
-            'FHEE__' . get_class($this) . '__get_master_templates',
603
+            'FHEE__'.get_class($this).'__get_master_templates',
604 604
             $this->_master_templates
605 605
         );
606 606
         return apply_filters('FHEE__EE_message_type__get_master_templates', $master_templates, $this);
@@ -624,11 +624,11 @@  discard block
 block discarded – undo
624 624
         $addressees        = array();
625 625
         $original_contexts = $this->_contexts;
626 626
         // if incoming context then limit to that context
627
-        if (! empty($context)) {
628
-            $cntxt = ! empty($this->_contexts[ $context ]) ? $this->_contexts[ $context ] : '';
629
-            if (! empty($cntxt)) {
630
-                $this->_contexts           = array();
631
-                $this->_contexts[ $context ] = $cntxt;
627
+        if ( ! empty($context)) {
628
+            $cntxt = ! empty($this->_contexts[$context]) ? $this->_contexts[$context] : '';
629
+            if ( ! empty($cntxt)) {
630
+                $this->_contexts = array();
631
+                $this->_contexts[$context] = $cntxt;
632 632
             }
633 633
         }
634 634
         $this->_set_default_addressee_data();
@@ -653,13 +653,13 @@  discard block
 block discarded – undo
653 653
     {
654 654
         // at a minimum, we NEED EE_Attendee objects.
655 655
         if (empty($this->_data->attendees)) {
656
-            return false;  // there's no data to process!
656
+            return false; // there's no data to process!
657 657
         }
658 658
         // process addressees for each context.  Child classes will have to have methods for
659 659
         // each context defined to handle the processing of the data object within them
660 660
         foreach ($this->_contexts as $context => $details) {
661
-            $xpctd_method = '_' . $context . '_addressees';
662
-            if (! method_exists($this, $xpctd_method)) {
661
+            $xpctd_method = '_'.$context.'_addressees';
662
+            if ( ! method_exists($this, $xpctd_method)) {
663 663
                 throw new EE_Error(
664 664
                     sprintf(
665 665
                         esc_html__(
@@ -671,7 +671,7 @@  discard block
 block discarded – undo
671 671
                     )
672 672
                 );
673 673
             }
674
-            $this->_addressees[ $context ] = call_user_func(array($this, $xpctd_method));
674
+            $this->_addressees[$context] = call_user_func(array($this, $xpctd_method));
675 675
         }
676 676
         return true; // data was processed successfully.
677 677
     }
@@ -707,7 +707,7 @@  discard block
 block discarded – undo
707 707
             'total_ticket_count'       => $this->_data->total_ticket_count,
708 708
         );
709 709
         if (is_array($this->_data->primary_attendee_data)) {
710
-            $this->_default_addressee_data                    = array_merge(
710
+            $this->_default_addressee_data = array_merge(
711 711
                 $this->_default_addressee_data,
712 712
                 $this->_data->primary_attendee_data
713 713
             );
@@ -750,25 +750,25 @@  discard block
 block discarded – undo
750 750
             'email',
751 751
             'messenger',
752 752
         );
753
-        $contexts       = $this->get_contexts();
753
+        $contexts = $this->get_contexts();
754 754
         foreach ($contexts as $context => $details) {
755
-            $this->_valid_shortcodes[ $context ] = $all_shortcodes;
755
+            $this->_valid_shortcodes[$context] = $all_shortcodes;
756 756
             // make sure non admin context does not include the event_author shortcodes
757 757
             if ($context != 'admin') {
758
-                if (($key = array_search('event_author', $this->_valid_shortcodes[ $context ])) !== false) {
759
-                    unset($this->_valid_shortcodes[ $context ][ $key ]);
758
+                if (($key = array_search('event_author', $this->_valid_shortcodes[$context])) !== false) {
759
+                    unset($this->_valid_shortcodes[$context][$key]);
760 760
                 }
761 761
             }
762 762
         }
763 763
         // make sure admin context does not include the recipient_details shortcodes
764 764
         // IF we have admin context hooked in message types might not have that context.
765
-        if (! empty($this->_valid_shortcodes['admin'])) {
765
+        if ( ! empty($this->_valid_shortcodes['admin'])) {
766 766
             if (($key = array_search('recipient_details', $this->_valid_shortcodes['admin'])) !== false) {
767
-                unset($this->_valid_shortcodes['admin'][ $key ]);
767
+                unset($this->_valid_shortcodes['admin'][$key]);
768 768
             }
769 769
             // make sure admin context does not include the recipient_details shortcodes
770 770
             if (($key = array_search('recipient_list', $this->_valid_shortcodes['admin'])) !== false) {
771
-                unset($this->_valid_shortcodes['admin'][ $key ]);
771
+                unset($this->_valid_shortcodes['admin'][$key]);
772 772
             }
773 773
         }
774 774
     }
@@ -783,7 +783,7 @@  discard block
 block discarded – undo
783 783
     public function reset_valid_shortcodes_config($new_config)
784 784
     {
785 785
         foreach ($new_config as $context => $shortcodes) {
786
-            $this->_valid_shortcodes[ $context ] = $shortcodes;
786
+            $this->_valid_shortcodes[$context] = $shortcodes;
787 787
         }
788 788
     }
789 789
 
@@ -807,11 +807,11 @@  discard block
 block discarded – undo
807 807
         foreach ($this->_data->events as $line_ref => $event) {
808 808
             $admin_id = $this->_get_event_admin_id($event['ID']);
809 809
             // make sure we are just including the events that belong to this admin!
810
-            $admin_events[ $admin_id ][ $line_ref ] = $event;
810
+            $admin_events[$admin_id][$line_ref] = $event;
811 811
         }
812 812
         // k now we can loop through the event_admins and setup the addressee data.
813 813
         foreach ($admin_events as $admin_id => $event_details) {
814
-            $aee          = array(
814
+            $aee = array(
815 815
                 'user_id'        => $admin_id,
816 816
                 'events'         => $event_details,
817 817
                 'attendees'      => $this->_data->attendees,
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
             }
870 870
             // is $this->_regs_for_sending present?
871 871
             // If so, let's make sure we ONLY generate addressee for registrations in that array.
872
-            if (! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
872
+            if ( ! empty($this->_regs_for_sending) && is_array($this->_regs_for_sending)) {
873 873
                 $regs_allowed = array_intersect_key(array_flip($this->_regs_for_sending), $details['reg_objs']);
874 874
                 if (empty($regs_allowed)) {
875 875
                     continue;
@@ -888,10 +888,10 @@  discard block
 block discarded – undo
888 888
             }
889 889
             $already_processed[] = $att_id;
890 890
             foreach ($details as $item => $value) {
891
-                $aee[ $item ] = $value;
891
+                $aee[$item] = $value;
892 892
                 if ($item === 'line_ref') {
893 893
                     foreach ($value as $event_id) {
894
-                        $aee['events'][ $event_id ] = $this->_data->events[ $event_id ];
894
+                        $aee['events'][$event_id] = $this->_data->events[$event_id];
895 895
                     }
896 896
                 }
897 897
                 if ($item === 'attendee_email') {
@@ -903,7 +903,7 @@  discard block
 block discarded – undo
903 903
             }
904 904
             // note the FIRST reg object in this array is the one
905 905
             // we'll use for this attendee as the primary registration for this attendee.
906
-            $aee['reg_obj']        = reset($this->_data->attendees[ $att_id ]['reg_objs']);
906
+            $aee['reg_obj']        = reset($this->_data->attendees[$att_id]['reg_objs']);
907 907
             $aee['attendees']      = $this->_data->attendees;
908 908
             $aee['recipient_id']   = $att_id;
909 909
             $aee['recipient_type'] = 'Attendee';
Please login to merge, or discard this patch.
core/libraries/messages/EE_Message_Type_Collection_Loader.lib.php 2 patches
Indentation   +101 added lines, -101 removed lines patch added patch discarded remove patch
@@ -15,105 +15,105 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * @type EE_Message_Type_Collection $_message_type_collection
20
-     */
21
-    protected $_message_type_collection = null;
22
-
23
-
24
-
25
-    /**
26
-     * EE_Message_Type_Collection_Loader constructor.
27
-     *
28
-     * @param EE_Message_Type_Collection $message_types
29
-     */
30
-    public function __construct(EE_Message_Type_Collection $message_types)
31
-    {
32
-        $this->set_message_type_collection($message_types);
33
-    }
34
-
35
-
36
-
37
-    /**
38
-     * @return EE_Message_Type_Collection
39
-     */
40
-    public function message_type_collection()
41
-    {
42
-        return $this->_message_type_collection;
43
-    }
44
-
45
-
46
-
47
-    /**
48
-     * @param mixed $message_types
49
-     */
50
-    public function set_message_type_collection(EE_Message_Type_Collection $message_types)
51
-    {
52
-        $this->_message_type_collection = $message_types;
53
-    }
54
-
55
-
56
-
57
-    /**
58
-     * load_message_types
59
-     * globs the supplied filepath and adds any found
60
-     *
61
-     * @param  string $folder
62
-     * @throws \EE_Error
63
-     */
64
-    public function load_message_types_from_folder($folder = '')
65
-    {
66
-        // make sure autoloaders are set (fail-safe)
67
-        EED_Messages::set_autoloaders();
68
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/message_type';
69
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
70
-        // get all the files in that folder that end in ".class.php
71
-        $filepaths = apply_filters(
72
-            'FHEE__EE_messages__get_installed__messagetype_files',
73
-            glob($folder . '*.class.php')
74
-        );
75
-        if (empty($filepaths)) {
76
-            return;
77
-        }
78
-        foreach ((array) $filepaths as $file_path) {
79
-            // extract filename from path
80
-            $file_path = basename($file_path);
81
-            // now remove any file extensions
82
-            $message_type_class_name = substr($file_path, 0, strpos($file_path, '.'));
83
-
84
-            // if this class name doesn't represent a message type class, then we just skip.
85
-            if (strpos(strtolower($message_type_class_name), 'message_type') === false) {
86
-                continue;
87
-            }
88
-
89
-            if (! class_exists($message_type_class_name)) {
90
-                throw new EE_Error(
91
-                    sprintf(
92
-                        esc_html__('The "%1$s" message type class can\'t be loaded from %2$s. Likely there is a typo in the class name or the file name.', 'event_espresso'),
93
-                        $message_type_class_name,
94
-                        $file_path
95
-                    )
96
-                );
97
-            }
98
-
99
-            $this->_load_message_type(new $message_type_class_name());
100
-        }
101
-    }
102
-
103
-
104
-    /**
105
-     * Loads the given message type into the message type collection if it doesn't already exist.
106
-     * @param EE_message_type $message_type
107
-     * @return bool
108
-     */
109
-    protected function _load_message_type(EE_message_type $message_type)
110
-    {
111
-        if ($this->message_type_collection()->has_by_name($message_type->name)) {
112
-            return true;
113
-        }
114
-        return $this->message_type_collection()->add(
115
-            $message_type,
116
-            $message_type->name
117
-        );
118
-    }
18
+	/**
19
+	 * @type EE_Message_Type_Collection $_message_type_collection
20
+	 */
21
+	protected $_message_type_collection = null;
22
+
23
+
24
+
25
+	/**
26
+	 * EE_Message_Type_Collection_Loader constructor.
27
+	 *
28
+	 * @param EE_Message_Type_Collection $message_types
29
+	 */
30
+	public function __construct(EE_Message_Type_Collection $message_types)
31
+	{
32
+		$this->set_message_type_collection($message_types);
33
+	}
34
+
35
+
36
+
37
+	/**
38
+	 * @return EE_Message_Type_Collection
39
+	 */
40
+	public function message_type_collection()
41
+	{
42
+		return $this->_message_type_collection;
43
+	}
44
+
45
+
46
+
47
+	/**
48
+	 * @param mixed $message_types
49
+	 */
50
+	public function set_message_type_collection(EE_Message_Type_Collection $message_types)
51
+	{
52
+		$this->_message_type_collection = $message_types;
53
+	}
54
+
55
+
56
+
57
+	/**
58
+	 * load_message_types
59
+	 * globs the supplied filepath and adds any found
60
+	 *
61
+	 * @param  string $folder
62
+	 * @throws \EE_Error
63
+	 */
64
+	public function load_message_types_from_folder($folder = '')
65
+	{
66
+		// make sure autoloaders are set (fail-safe)
67
+		EED_Messages::set_autoloaders();
68
+		$folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/message_type';
69
+		$folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
70
+		// get all the files in that folder that end in ".class.php
71
+		$filepaths = apply_filters(
72
+			'FHEE__EE_messages__get_installed__messagetype_files',
73
+			glob($folder . '*.class.php')
74
+		);
75
+		if (empty($filepaths)) {
76
+			return;
77
+		}
78
+		foreach ((array) $filepaths as $file_path) {
79
+			// extract filename from path
80
+			$file_path = basename($file_path);
81
+			// now remove any file extensions
82
+			$message_type_class_name = substr($file_path, 0, strpos($file_path, '.'));
83
+
84
+			// if this class name doesn't represent a message type class, then we just skip.
85
+			if (strpos(strtolower($message_type_class_name), 'message_type') === false) {
86
+				continue;
87
+			}
88
+
89
+			if (! class_exists($message_type_class_name)) {
90
+				throw new EE_Error(
91
+					sprintf(
92
+						esc_html__('The "%1$s" message type class can\'t be loaded from %2$s. Likely there is a typo in the class name or the file name.', 'event_espresso'),
93
+						$message_type_class_name,
94
+						$file_path
95
+					)
96
+				);
97
+			}
98
+
99
+			$this->_load_message_type(new $message_type_class_name());
100
+		}
101
+	}
102
+
103
+
104
+	/**
105
+	 * Loads the given message type into the message type collection if it doesn't already exist.
106
+	 * @param EE_message_type $message_type
107
+	 * @return bool
108
+	 */
109
+	protected function _load_message_type(EE_message_type $message_type)
110
+	{
111
+		if ($this->message_type_collection()->has_by_name($message_type->name)) {
112
+			return true;
113
+		}
114
+		return $this->message_type_collection()->add(
115
+			$message_type,
116
+			$message_type->name
117
+		);
118
+	}
119 119
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -65,12 +65,12 @@  discard block
 block discarded – undo
65 65
     {
66 66
         // make sure autoloaders are set (fail-safe)
67 67
         EED_Messages::set_autoloaders();
68
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/message_type';
69
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
68
+        $folder = ! empty($folder) ? $folder : EE_LIBRARIES.'messages/message_type';
69
+        $folder .= $folder[strlen($folder) - 1] != '/' ? '/' : '';
70 70
         // get all the files in that folder that end in ".class.php
71 71
         $filepaths = apply_filters(
72 72
             'FHEE__EE_messages__get_installed__messagetype_files',
73
-            glob($folder . '*.class.php')
73
+            glob($folder.'*.class.php')
74 74
         );
75 75
         if (empty($filepaths)) {
76 76
             return;
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
                 continue;
87 87
             }
88 88
 
89
-            if (! class_exists($message_type_class_name)) {
89
+            if ( ! class_exists($message_type_class_name)) {
90 90
                 throw new EE_Error(
91 91
                     sprintf(
92 92
                         esc_html__('The "%1$s" message type class can\'t be loaded from %2$s. Likely there is a typo in the class name or the file name.', 'event_espresso'),
Please login to merge, or discard this patch.
core/libraries/messages/EE_Messenger_Collection_Loader.lib.php 2 patches
Indentation   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -16,127 +16,127 @@
 block discarded – undo
16 16
 
17 17
 
18 18
 
19
-    /**
20
-     * @type EE_Messenger_Collection $_messenger_collection
21
-     */
22
-    protected $_messenger_collection = null;
23
-
24
-
25
-
26
-    /**
27
-     * EE_Messenger_Collection_Loader constructor.
28
-     *
29
-     * @param EE_Messenger_Collection $messengers
30
-     */
31
-    public function __construct(EE_Messenger_Collection $messengers)
32
-    {
33
-        $this->set_messenger_collection($messengers);
34
-    }
35
-
36
-
37
-
38
-    /**
39
-     * @return EE_Messenger_Collection
40
-     */
41
-    public function messenger_collection()
42
-    {
43
-        return $this->_messenger_collection;
44
-    }
45
-
46
-
47
-
48
-    /**
49
-     * @param mixed $messengers
50
-     */
51
-    public function set_messenger_collection(EE_Messenger_Collection $messengers)
52
-    {
53
-        $this->_messenger_collection = $messengers;
54
-    }
55
-
56
-
57
-
58
-    /**
59
-     * load_messengers
60
-     * globs the supplied filepath and adds any found
61
-     *
62
-     * @param  string $folder
63
-     * @throws \EE_Error
64
-     */
65
-    public function load_messengers_from_folder($folder = '')
66
-    {
67
-        // make sure autoloaders are set (fail-safe)
68
-        EED_Messages::set_autoloaders();
69
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/messenger';
70
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
71
-        // get all the files in that folder that end in ".class.php
72
-        $filepaths = apply_filters(
73
-            'FHEE__EE_messages__get_installed__messenger_files',
74
-            glob($folder . '*.class.php')
75
-        );
76
-        if (empty($filepaths)) {
77
-            return;
78
-        }
79
-        foreach ((array) $filepaths as $file_path) {
80
-            // extract filename from path
81
-            $file_path = basename($file_path);
82
-            // now remove any file extensions
83
-            $messenger_class_name = substr($file_path, 0, strpos($file_path, '.'));
84
-
85
-            // first check to see if the class name represents an actual messenger class.
86
-            if (strpos(strtolower($messenger_class_name), 'messenger') === false) {
87
-                continue;
88
-            }
89
-
90
-            if (! class_exists($messenger_class_name)) {
91
-                throw new EE_Error(
92
-                    sprintf(
93
-                        esc_html__('The "%1$s" messenger class can\'t be loaded from %2$s.  Likely there is a typo in the class name or the file name.', 'event_espresso'),
94
-                        $messenger_class_name,
95
-                        $file_path
96
-                    )
97
-                );
98
-            }
99
-
100
-            $this->_load_messenger(new $messenger_class_name());
101
-        }
102
-    }
103
-
104
-
105
-    /**
106
-     * load_messengers
107
-     * globs the supplied filepath and adds any found
108
-     *
109
-     * @return array
110
-     */
111
-    public function load_active_messengers_from_db()
112
-    {
113
-        // make sure autoloaders are set (fail-safe)
114
-        EED_Messages::set_autoloaders();
115
-        $active_messengers = apply_filters(
116
-            'FHEE__EEH_MSG_Template__get_active_messengers_in_db',
117
-            get_option('ee_active_messengers', array())
118
-        );
119
-        foreach ((array) $active_messengers as $active_messenger_classname => $active_messenger) {
120
-            $this->_load_messenger($active_messenger);
121
-        }
122
-    }
123
-
124
-
125
-
126
-    /**
127
-     * load_messenger
128
-     *
129
-     * @param \EE_messenger $messenger
130
-     * @return bool
131
-     */
132
-    protected function _load_messenger(EE_messenger $messenger)
133
-    {
134
-        if ($this->messenger_collection()->has_by_name($messenger->name)) {
135
-            return true;
136
-        }
137
-        return $this->messenger_collection()->add(
138
-            $messenger,
139
-            $messenger->name
140
-        );
141
-    }
19
+	/**
20
+	 * @type EE_Messenger_Collection $_messenger_collection
21
+	 */
22
+	protected $_messenger_collection = null;
23
+
24
+
25
+
26
+	/**
27
+	 * EE_Messenger_Collection_Loader constructor.
28
+	 *
29
+	 * @param EE_Messenger_Collection $messengers
30
+	 */
31
+	public function __construct(EE_Messenger_Collection $messengers)
32
+	{
33
+		$this->set_messenger_collection($messengers);
34
+	}
35
+
36
+
37
+
38
+	/**
39
+	 * @return EE_Messenger_Collection
40
+	 */
41
+	public function messenger_collection()
42
+	{
43
+		return $this->_messenger_collection;
44
+	}
45
+
46
+
47
+
48
+	/**
49
+	 * @param mixed $messengers
50
+	 */
51
+	public function set_messenger_collection(EE_Messenger_Collection $messengers)
52
+	{
53
+		$this->_messenger_collection = $messengers;
54
+	}
55
+
56
+
57
+
58
+	/**
59
+	 * load_messengers
60
+	 * globs the supplied filepath and adds any found
61
+	 *
62
+	 * @param  string $folder
63
+	 * @throws \EE_Error
64
+	 */
65
+	public function load_messengers_from_folder($folder = '')
66
+	{
67
+		// make sure autoloaders are set (fail-safe)
68
+		EED_Messages::set_autoloaders();
69
+		$folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/messenger';
70
+		$folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
71
+		// get all the files in that folder that end in ".class.php
72
+		$filepaths = apply_filters(
73
+			'FHEE__EE_messages__get_installed__messenger_files',
74
+			glob($folder . '*.class.php')
75
+		);
76
+		if (empty($filepaths)) {
77
+			return;
78
+		}
79
+		foreach ((array) $filepaths as $file_path) {
80
+			// extract filename from path
81
+			$file_path = basename($file_path);
82
+			// now remove any file extensions
83
+			$messenger_class_name = substr($file_path, 0, strpos($file_path, '.'));
84
+
85
+			// first check to see if the class name represents an actual messenger class.
86
+			if (strpos(strtolower($messenger_class_name), 'messenger') === false) {
87
+				continue;
88
+			}
89
+
90
+			if (! class_exists($messenger_class_name)) {
91
+				throw new EE_Error(
92
+					sprintf(
93
+						esc_html__('The "%1$s" messenger class can\'t be loaded from %2$s.  Likely there is a typo in the class name or the file name.', 'event_espresso'),
94
+						$messenger_class_name,
95
+						$file_path
96
+					)
97
+				);
98
+			}
99
+
100
+			$this->_load_messenger(new $messenger_class_name());
101
+		}
102
+	}
103
+
104
+
105
+	/**
106
+	 * load_messengers
107
+	 * globs the supplied filepath and adds any found
108
+	 *
109
+	 * @return array
110
+	 */
111
+	public function load_active_messengers_from_db()
112
+	{
113
+		// make sure autoloaders are set (fail-safe)
114
+		EED_Messages::set_autoloaders();
115
+		$active_messengers = apply_filters(
116
+			'FHEE__EEH_MSG_Template__get_active_messengers_in_db',
117
+			get_option('ee_active_messengers', array())
118
+		);
119
+		foreach ((array) $active_messengers as $active_messenger_classname => $active_messenger) {
120
+			$this->_load_messenger($active_messenger);
121
+		}
122
+	}
123
+
124
+
125
+
126
+	/**
127
+	 * load_messenger
128
+	 *
129
+	 * @param \EE_messenger $messenger
130
+	 * @return bool
131
+	 */
132
+	protected function _load_messenger(EE_messenger $messenger)
133
+	{
134
+		if ($this->messenger_collection()->has_by_name($messenger->name)) {
135
+			return true;
136
+		}
137
+		return $this->messenger_collection()->add(
138
+			$messenger,
139
+			$messenger->name
140
+		);
141
+	}
142 142
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -66,12 +66,12 @@  discard block
 block discarded – undo
66 66
     {
67 67
         // make sure autoloaders are set (fail-safe)
68 68
         EED_Messages::set_autoloaders();
69
-        $folder = ! empty($folder) ? $folder : EE_LIBRARIES . 'messages/messenger';
70
-        $folder .= $folder[ strlen($folder) - 1 ] != '/' ? '/' : '';
69
+        $folder = ! empty($folder) ? $folder : EE_LIBRARIES.'messages/messenger';
70
+        $folder .= $folder[strlen($folder) - 1] != '/' ? '/' : '';
71 71
         // get all the files in that folder that end in ".class.php
72 72
         $filepaths = apply_filters(
73 73
             'FHEE__EE_messages__get_installed__messenger_files',
74
-            glob($folder . '*.class.php')
74
+            glob($folder.'*.class.php')
75 75
         );
76 76
         if (empty($filepaths)) {
77 77
             return;
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
                 continue;
88 88
             }
89 89
 
90
-            if (! class_exists($messenger_class_name)) {
90
+            if ( ! class_exists($messenger_class_name)) {
91 91
                 throw new EE_Error(
92 92
                     sprintf(
93 93
                         esc_html__('The "%1$s" messenger class can\'t be loaded from %2$s.  Likely there is a typo in the class name or the file name.', 'event_espresso'),
Please login to merge, or discard this patch.