Completed
Branch release-gh-workflow (107bf7)
by
unknown
06:53 queued 05:10
created
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(__('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(__('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/line_item_filters/EE_Non_Zero_Line_Item_Filter.class.php 2 patches
Indentation   +86 added lines, -86 removed lines patch added patch discarded remove patch
@@ -14,96 +14,96 @@
 block discarded – undo
14 14
 class EE_Non_Zero_Line_Item_Filter extends EE_Line_Item_Filter_Base
15 15
 {
16 16
 
17
-    /**
18
-     * EE_Non_Zero_Line_Item_Filter constructor.
19
-     */
20
-    public function __construct()
21
-    {
22
-    }
17
+	/**
18
+	 * EE_Non_Zero_Line_Item_Filter constructor.
19
+	 */
20
+	public function __construct()
21
+	{
22
+	}
23 23
 
24 24
 
25
-    /**
26
-     * Creates a duplicate of the line item tree, except only includes billable items
27
-     * and the portion of line items attributed to billable things
28
-     *
29
-     * @param EEI_Line_Item $line_item
30
-     * @return EEI_Line_Item
31
-     */
32
-    public function process(EEI_Line_Item $line_item)
33
-    {
34
-        $non_zero_line_item = $this->_filter_zero_line_item($line_item);
35
-        if (! $non_zero_line_item instanceof EEI_Line_Item) {
36
-            return null;
37
-        }
38
-        // if this is an event subtotal, we want to only include it if it
39
-        // has a non-zero total and at least one ticket line item child
40
-        if ($line_item->children()) {
41
-            $ticket_or_subtotals_with_tkt_children_count = 0;
42
-            foreach ($line_item->children() as $child_line_item) {
43
-                $code = $child_line_item->code();
44
-                $child_line_item = $this->process($child_line_item);
45
-                if (! $child_line_item instanceof EEI_Line_Item) {
46
-                    $line_item->delete_child_line_item($code);
47
-                    continue;
48
-                }
49
-                if ((
50
-                        $child_line_item instanceof EEI_Line_Item
51
-                        && $child_line_item->type() === EEM_Line_Item::type_sub_total
52
-                    )
53
-                    || (
54
-                        $child_line_item instanceof EEI_Line_Item
55
-                        && $child_line_item->type() === EEM_Line_Item::type_line_item
56
-                        && $child_line_item->OBJ_type() === 'Ticket'
57
-                    )
58
-                ) {
59
-                    $ticket_or_subtotals_with_tkt_children_count++;
60
-                }
61
-            }
62
-            // if this is an event subtotal with NO ticket children
63
-            // we basically want to ignore it
64
-            return $this->_filter_zero_subtotal_line_item(
65
-                $non_zero_line_item,
66
-                $ticket_or_subtotals_with_tkt_children_count
67
-            );
68
-        }
69
-        return $non_zero_line_item;
70
-    }
25
+	/**
26
+	 * Creates a duplicate of the line item tree, except only includes billable items
27
+	 * and the portion of line items attributed to billable things
28
+	 *
29
+	 * @param EEI_Line_Item $line_item
30
+	 * @return EEI_Line_Item
31
+	 */
32
+	public function process(EEI_Line_Item $line_item)
33
+	{
34
+		$non_zero_line_item = $this->_filter_zero_line_item($line_item);
35
+		if (! $non_zero_line_item instanceof EEI_Line_Item) {
36
+			return null;
37
+		}
38
+		// if this is an event subtotal, we want to only include it if it
39
+		// has a non-zero total and at least one ticket line item child
40
+		if ($line_item->children()) {
41
+			$ticket_or_subtotals_with_tkt_children_count = 0;
42
+			foreach ($line_item->children() as $child_line_item) {
43
+				$code = $child_line_item->code();
44
+				$child_line_item = $this->process($child_line_item);
45
+				if (! $child_line_item instanceof EEI_Line_Item) {
46
+					$line_item->delete_child_line_item($code);
47
+					continue;
48
+				}
49
+				if ((
50
+						$child_line_item instanceof EEI_Line_Item
51
+						&& $child_line_item->type() === EEM_Line_Item::type_sub_total
52
+					)
53
+					|| (
54
+						$child_line_item instanceof EEI_Line_Item
55
+						&& $child_line_item->type() === EEM_Line_Item::type_line_item
56
+						&& $child_line_item->OBJ_type() === 'Ticket'
57
+					)
58
+				) {
59
+					$ticket_or_subtotals_with_tkt_children_count++;
60
+				}
61
+			}
62
+			// if this is an event subtotal with NO ticket children
63
+			// we basically want to ignore it
64
+			return $this->_filter_zero_subtotal_line_item(
65
+				$non_zero_line_item,
66
+				$ticket_or_subtotals_with_tkt_children_count
67
+			);
68
+		}
69
+		return $non_zero_line_item;
70
+	}
71 71
 
72 72
 
73
-    /**
74
-     * Creates a new, unsaved line item, but if it's a ticket line item
75
-     * with a total of 0, or a subtotal of 0, returns null instead
76
-     *
77
-     * @param EEI_Line_Item $line_item
78
-     * @return EEI_Line_Item
79
-     */
80
-    protected function _filter_zero_line_item(EEI_Line_Item $line_item)
81
-    {
82
-        if ($line_item->type() === EEM_Line_Item::type_line_item
83
-            && $line_item->OBJ_type() === 'Ticket'
84
-            && (int) $line_item->quantity() === 0
85
-        ) {
86
-            return null;
87
-        }
88
-        return $line_item;
89
-    }
73
+	/**
74
+	 * Creates a new, unsaved line item, but if it's a ticket line item
75
+	 * with a total of 0, or a subtotal of 0, returns null instead
76
+	 *
77
+	 * @param EEI_Line_Item $line_item
78
+	 * @return EEI_Line_Item
79
+	 */
80
+	protected function _filter_zero_line_item(EEI_Line_Item $line_item)
81
+	{
82
+		if ($line_item->type() === EEM_Line_Item::type_line_item
83
+			&& $line_item->OBJ_type() === 'Ticket'
84
+			&& (int) $line_item->quantity() === 0
85
+		) {
86
+			return null;
87
+		}
88
+		return $line_item;
89
+	}
90 90
 
91 91
 
92
-    /**
93
-     * Creates a new, unsaved line item, but if it's a ticket line item
94
-     * with a total of 0, or a subtotal of 0, returns null instead
95
-     *
96
-     * @param EEI_Line_Item $line_item
97
-     * @param int           $ticket_children
98
-     * @return EEI_Line_Item
99
-     */
100
-    protected function _filter_zero_subtotal_line_item(EEI_Line_Item $line_item, $ticket_children = 0)
101
-    {
102
-        if ((int) $ticket_children === 0
103
-            && $line_item->type() === EEM_Line_Item::type_sub_total
104
-        ) {
105
-            return null;
106
-        }
107
-        return $line_item;
108
-    }
92
+	/**
93
+	 * Creates a new, unsaved line item, but if it's a ticket line item
94
+	 * with a total of 0, or a subtotal of 0, returns null instead
95
+	 *
96
+	 * @param EEI_Line_Item $line_item
97
+	 * @param int           $ticket_children
98
+	 * @return EEI_Line_Item
99
+	 */
100
+	protected function _filter_zero_subtotal_line_item(EEI_Line_Item $line_item, $ticket_children = 0)
101
+	{
102
+		if ((int) $ticket_children === 0
103
+			&& $line_item->type() === EEM_Line_Item::type_sub_total
104
+		) {
105
+			return null;
106
+		}
107
+		return $line_item;
108
+	}
109 109
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
     public function process(EEI_Line_Item $line_item)
33 33
     {
34 34
         $non_zero_line_item = $this->_filter_zero_line_item($line_item);
35
-        if (! $non_zero_line_item instanceof EEI_Line_Item) {
35
+        if ( ! $non_zero_line_item instanceof EEI_Line_Item) {
36 36
             return null;
37 37
         }
38 38
         // if this is an event subtotal, we want to only include it if it
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
             foreach ($line_item->children() as $child_line_item) {
43 43
                 $code = $child_line_item->code();
44 44
                 $child_line_item = $this->process($child_line_item);
45
-                if (! $child_line_item instanceof EEI_Line_Item) {
45
+                if ( ! $child_line_item instanceof EEI_Line_Item) {
46 46
                     $line_item->delete_child_line_item($code);
47 47
                     continue;
48 48
                 }
Please login to merge, or discard this patch.
core/libraries/line_item_filters/EE_Line_Item_Filter_Collection.class.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -18,11 +18,11 @@
 block discarded – undo
18 18
 {
19 19
 
20 20
 
21
-    /**
22
-     * EE_Line_Item_Filter_Collection constructor.
23
-     */
24
-    public function __construct()
25
-    {
26
-        $this->interface = 'EEI_Line_Item_Filter';
27
-    }
21
+	/**
22
+	 * EE_Line_Item_Filter_Collection constructor.
23
+	 */
24
+	public function __construct()
25
+	{
26
+		$this->interface = 'EEI_Line_Item_Filter';
27
+	}
28 28
 }
Please login to merge, or discard this patch.
core/libraries/line_item_filters/EE_Billable_Line_Item_Filter.class.php 2 patches
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -18,48 +18,48 @@
 block discarded – undo
18 18
 {
19 19
 
20 20
 
21
-    /**
22
-     * EE_Billable_Line_Item_Filter constructor.
23
-     *
24
-     * @param EE_Registration[] $registrations
25
-     */
26
-    public function __construct($registrations)
27
-    {
28
-        parent::__construct($this->_remove_unbillable_registrations($registrations));
29
-    }
21
+	/**
22
+	 * EE_Billable_Line_Item_Filter constructor.
23
+	 *
24
+	 * @param EE_Registration[] $registrations
25
+	 */
26
+	public function __construct($registrations)
27
+	{
28
+		parent::__construct($this->_remove_unbillable_registrations($registrations));
29
+	}
30 30
 
31 31
 
32
-    /**
33
-     *    _calculate_billable_ticket_quantities_from_registrations
34
-     * compiles a list of EE_Tickets for each event in the passed array
35
-     *
36
-     * @access protected
37
-     * @param EE_Registration[] $registrations
38
-     * @return mixed
39
-     */
40
-    protected function _remove_unbillable_registrations($registrations = array())
41
-    {
42
-        if (! empty($registrations)) {
43
-            // these reg statuses require payment (if event is not free)
44
-            $requires_payment = EEM_Registration::reg_statuses_that_allow_payment();
45
-            foreach ($registrations as $key => $registration) {
46
-                if (! $registration instanceof EE_Registration) {
47
-                    continue;
48
-                }
49
-                // are we billing for this registration at this moment ?
50
-                if (!
51
-                    $registration->owes_monies_and_can_pay($requires_payment) &&
52
-                    ! (
53
-                        // free registration with valid reg status
54
-                        $registration->final_price() == 0 &&
55
-                        in_array($registration->status_ID(), $requires_payment)
56
-                    )
57
-                ) {
58
-                    // not billable. remove it
59
-                    unset($registrations[ $key ]);
60
-                }
61
-            }
62
-        }
63
-        return $registrations;
64
-    }
32
+	/**
33
+	 *    _calculate_billable_ticket_quantities_from_registrations
34
+	 * compiles a list of EE_Tickets for each event in the passed array
35
+	 *
36
+	 * @access protected
37
+	 * @param EE_Registration[] $registrations
38
+	 * @return mixed
39
+	 */
40
+	protected function _remove_unbillable_registrations($registrations = array())
41
+	{
42
+		if (! empty($registrations)) {
43
+			// these reg statuses require payment (if event is not free)
44
+			$requires_payment = EEM_Registration::reg_statuses_that_allow_payment();
45
+			foreach ($registrations as $key => $registration) {
46
+				if (! $registration instanceof EE_Registration) {
47
+					continue;
48
+				}
49
+				// are we billing for this registration at this moment ?
50
+				if (!
51
+					$registration->owes_monies_and_can_pay($requires_payment) &&
52
+					! (
53
+						// free registration with valid reg status
54
+						$registration->final_price() == 0 &&
55
+						in_array($registration->status_ID(), $requires_payment)
56
+					)
57
+				) {
58
+					// not billable. remove it
59
+					unset($registrations[ $key ]);
60
+				}
61
+			}
62
+		}
63
+		return $registrations;
64
+	}
65 65
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -5 removed lines patch added patch discarded remove patch
@@ -39,16 +39,15 @@  discard block
 block discarded – undo
39 39
      */
40 40
     protected function _remove_unbillable_registrations($registrations = array())
41 41
     {
42
-        if (! empty($registrations)) {
42
+        if ( ! empty($registrations)) {
43 43
             // these reg statuses require payment (if event is not free)
44 44
             $requires_payment = EEM_Registration::reg_statuses_that_allow_payment();
45 45
             foreach ($registrations as $key => $registration) {
46
-                if (! $registration instanceof EE_Registration) {
46
+                if ( ! $registration instanceof EE_Registration) {
47 47
                     continue;
48 48
                 }
49 49
                 // are we billing for this registration at this moment ?
50
-                if (!
51
-                    $registration->owes_monies_and_can_pay($requires_payment) &&
50
+                if ( ! $registration->owes_monies_and_can_pay($requires_payment) &&
52 51
                     ! (
53 52
                         // free registration with valid reg status
54 53
                         $registration->final_price() == 0 &&
@@ -56,7 +55,7 @@  discard block
 block discarded – undo
56 55
                     )
57 56
                 ) {
58 57
                     // not billable. remove it
59
-                    unset($registrations[ $key ]);
58
+                    unset($registrations[$key]);
60 59
                 }
61 60
             }
62 61
         }
Please login to merge, or discard this patch.
core/libraries/line_item_filters/EE_Line_Item_Filter_Base.class.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -16,14 +16,14 @@
 block discarded – undo
16 16
 {
17 17
 
18 18
 
19
-    /**
20
-     * process
21
-     *
22
-     * @param \EEI_Line_Item $line_item
23
-     * @return \EEI_Line_Item
24
-     */
25
-    public function process(EEI_Line_Item $line_item)
26
-    {
27
-        return $line_item;
28
-    }
19
+	/**
20
+	 * process
21
+	 *
22
+	 * @param \EEI_Line_Item $line_item
23
+	 * @return \EEI_Line_Item
24
+	 */
25
+	public function process(EEI_Line_Item $line_item)
26
+	{
27
+		return $line_item;
28
+	}
29 29
 }
Please login to merge, or discard this patch.
line_item_filters/EE_Single_Registration_Line_Item_Filter.class.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -16,12 +16,12 @@
 block discarded – undo
16 16
 class EE_Single_Registration_Line_Item_Filter extends EE_Specific_Registrations_Line_Item_Filter
17 17
 {
18 18
 
19
-    /**
20
-     *
21
-     * @param EE_Registration $registration
22
-     */
23
-    public function __construct($registration)
24
-    {
25
-        parent::__construct(array($registration));
26
-    }
19
+	/**
20
+	 *
21
+	 * @param EE_Registration $registration
22
+	 */
23
+	public function __construct($registration)
24
+	{
25
+		parent::__construct(array($registration));
26
+	}
27 27
 }
Please login to merge, or discard this patch.
line_item_filters/EE_Specific_Registrations_Line_Item_Filter.class.php 2 patches
Indentation   +167 added lines, -167 removed lines patch added patch discarded remove patch
@@ -13,182 +13,182 @@
 block discarded – undo
13 13
 class EE_Specific_Registrations_Line_Item_Filter extends EE_Line_Item_Filter_Base
14 14
 {
15 15
 
16
-    /**
17
-     * array of line item codes and their corresponding quantities for registrations
18
-     *
19
-     * @type array $_line_item_registrations
20
-     */
21
-    protected $_line_item_registrations = array();
16
+	/**
17
+	 * array of line item codes and their corresponding quantities for registrations
18
+	 *
19
+	 * @type array $_line_item_registrations
20
+	 */
21
+	protected $_line_item_registrations = array();
22 22
 
23
-    /**
24
-     * Just kept in case we want it someday. Currently unused
25
-     *
26
-     * @var EE_Registration[]
27
-     */
28
-    protected $_registrations = array();
23
+	/**
24
+	 * Just kept in case we want it someday. Currently unused
25
+	 *
26
+	 * @var EE_Registration[]
27
+	 */
28
+	protected $_registrations = array();
29 29
 
30
-    /**
31
-     * @var EE_Registration
32
-     */
33
-    protected $_current_registration;
30
+	/**
31
+	 * @var EE_Registration
32
+	 */
33
+	protected $_current_registration;
34 34
 
35
-    /**
36
-     * these reg statuses should NOT increment the line item quantity
37
-     *
38
-     * @var array
39
-     */
40
-    protected $_closed_reg_statuses = array();
35
+	/**
36
+	 * these reg statuses should NOT increment the line item quantity
37
+	 *
38
+	 * @var array
39
+	 */
40
+	protected $_closed_reg_statuses = array();
41 41
 
42 42
 
43
-    /**
44
-     * EE_Billable_Line_Item_Filter constructor.
45
-     *
46
-     * @param EE_Registration[] $registrations
47
-     * @throws EE_Error
48
-     */
49
-    public function __construct($registrations)
50
-    {
51
-        $this->_registrations = $registrations;
52
-        $this->_calculate_registrations_per_line_item_code($registrations);
53
-        // these reg statuses should NOT increment the line item quantity
54
-        $this->_closed_reg_statuses = EEM_Registration::closed_reg_statuses();
55
-    }
43
+	/**
44
+	 * EE_Billable_Line_Item_Filter constructor.
45
+	 *
46
+	 * @param EE_Registration[] $registrations
47
+	 * @throws EE_Error
48
+	 */
49
+	public function __construct($registrations)
50
+	{
51
+		$this->_registrations = $registrations;
52
+		$this->_calculate_registrations_per_line_item_code($registrations);
53
+		// these reg statuses should NOT increment the line item quantity
54
+		$this->_closed_reg_statuses = EEM_Registration::closed_reg_statuses();
55
+	}
56 56
 
57 57
 
58
-    /**
59
-     * sets the _line_item_registrations from the provided registrations
60
-     *
61
-     * @param EE_Registration[] $registrations
62
-     * @return void
63
-     * @throws EE_Error
64
-     */
65
-    protected function _calculate_registrations_per_line_item_code($registrations)
66
-    {
67
-        foreach ($registrations as $registration) {
68
-            $line_item_code = EEM_Line_Item::instance()->get_var(
69
-                EEM_Line_Item::instance()->line_item_for_registration_query_params(
70
-                    $registration,
71
-                    array('limit' => 1)
72
-                ),
73
-                'LIN_code'
74
-            );
75
-            if ($line_item_code) {
76
-                if (! isset($this->_line_item_registrations[ $line_item_code ])) {
77
-                    $this->_line_item_registrations[ $line_item_code ] = array();
78
-                }
79
-                $this->_line_item_registrations[ $line_item_code ][ $registration->ID() ] = $registration;
80
-            }
81
-        }
82
-    }
58
+	/**
59
+	 * sets the _line_item_registrations from the provided registrations
60
+	 *
61
+	 * @param EE_Registration[] $registrations
62
+	 * @return void
63
+	 * @throws EE_Error
64
+	 */
65
+	protected function _calculate_registrations_per_line_item_code($registrations)
66
+	{
67
+		foreach ($registrations as $registration) {
68
+			$line_item_code = EEM_Line_Item::instance()->get_var(
69
+				EEM_Line_Item::instance()->line_item_for_registration_query_params(
70
+					$registration,
71
+					array('limit' => 1)
72
+				),
73
+				'LIN_code'
74
+			);
75
+			if ($line_item_code) {
76
+				if (! isset($this->_line_item_registrations[ $line_item_code ])) {
77
+					$this->_line_item_registrations[ $line_item_code ] = array();
78
+				}
79
+				$this->_line_item_registrations[ $line_item_code ][ $registration->ID() ] = $registration;
80
+			}
81
+		}
82
+	}
83 83
 
84 84
 
85
-    /**
86
-     * Creates a duplicate of the line item tree, except only includes billable items
87
-     * and the portion of line items attributed to billable things
88
-     *
89
-     * @param EEI_Line_Item $line_item
90
-     * @return EEI_Line_Item
91
-     * @throws EE_Error
92
-     */
93
-    public function process(EEI_Line_Item $line_item)
94
-    {
95
-        $this->_adjust_line_item_quantity($line_item);
96
-        if (! $line_item->children()) {
97
-            return $line_item;
98
-        }
99
-        // the original running total (taking ALL tickets into account)
100
-        $running_total_of_children = 0;
101
-        // the new running total (only taking the specified ticket quantities into account)
102
-        $running_total_of_children_under_consideration = 0;
103
-        // let's also track the quantity of tickets that pertain to the registrations
104
-        $total_child_ticket_quantity = 0;
105
-        foreach ($line_item->children() as $child_line_item) {
106
-            $original_li_total = $child_line_item->is_percent()
107
-                ? $running_total_of_children * $child_line_item->percent() / 100
108
-                : $child_line_item->unit_price() * $child_line_item->quantity();
109
-            $this->process($child_line_item);
110
-            // If this line item is a normal line item that isn't for a ticket,
111
-            // we want to modify its total (and unit price if not a percentage line item)
112
-            // so it reflects only that portion of the surcharge/discount shared by these registrations
113
-            if ($child_line_item->type() === EEM_Line_Item::type_line_item
114
-                && $child_line_item->OBJ_type() !== 'Ticket'
115
-            ) {
116
-                $percent_of_running_total = $running_total_of_children
117
-                    ? $original_li_total / $running_total_of_children
118
-                    : 0;
119
-                $child_line_item->set_total(
120
-                    $running_total_of_children_under_consideration * $percent_of_running_total
121
-                );
122
-                if (! $child_line_item->is_percent()) {
123
-                    $child_line_item->set_unit_price($child_line_item->total() / $child_line_item->quantity());
124
-                }
125
-            } elseif (// make sure this item's quantity and total matches its parent
126
-                $line_item->type() === EEM_Line_Item::type_line_item
127
-                && $line_item->OBJ_type() === 'Ticket'
128
-                // but not if it's a percentage modifier
129
-                && ! $child_line_item->is_percent()
130
-                && ! (
131
-                    // or a cancellation
132
-                    $child_line_item->is_cancelled()
133
-                    && ! (
134
-                        // unless it IS a cancellation and the current registration is cancelled
135
-                        $child_line_item->is_cancelled()
136
-                        && $this->_current_registration instanceof EE_Registration
137
-                        && in_array($this->_current_registration->status_ID(), $this->_closed_reg_statuses, true)
138
-                    )
139
-                )
140
-            ) {
141
-                $child_line_item->set_quantity($line_item->quantity());
142
-                $child_line_item->set_total($child_line_item->unit_price() * $child_line_item->quantity());
143
-            }
144
-            $running_total_of_children += $original_li_total;
145
-            $running_total_of_children_under_consideration += $child_line_item->total();
146
-            if ($child_line_item->OBJ_type() === 'Ticket') {
147
-                $total_child_ticket_quantity += $child_line_item->quantity();
148
-            }
149
-        }
150
-        $line_item->set_total($running_total_of_children_under_consideration);
151
-        if ($line_item->quantity()) {
152
-            $line_item->set_unit_price($running_total_of_children_under_consideration / $line_item->quantity());
153
-        } else {
154
-            $line_item->set_unit_price(0);
155
-        }
156
-        if ($line_item->OBJ_type() === 'Event') {
157
-            $line_item->set_quantity($total_child_ticket_quantity);
158
-        }
159
-        return $line_item;
160
-    }
85
+	/**
86
+	 * Creates a duplicate of the line item tree, except only includes billable items
87
+	 * and the portion of line items attributed to billable things
88
+	 *
89
+	 * @param EEI_Line_Item $line_item
90
+	 * @return EEI_Line_Item
91
+	 * @throws EE_Error
92
+	 */
93
+	public function process(EEI_Line_Item $line_item)
94
+	{
95
+		$this->_adjust_line_item_quantity($line_item);
96
+		if (! $line_item->children()) {
97
+			return $line_item;
98
+		}
99
+		// the original running total (taking ALL tickets into account)
100
+		$running_total_of_children = 0;
101
+		// the new running total (only taking the specified ticket quantities into account)
102
+		$running_total_of_children_under_consideration = 0;
103
+		// let's also track the quantity of tickets that pertain to the registrations
104
+		$total_child_ticket_quantity = 0;
105
+		foreach ($line_item->children() as $child_line_item) {
106
+			$original_li_total = $child_line_item->is_percent()
107
+				? $running_total_of_children * $child_line_item->percent() / 100
108
+				: $child_line_item->unit_price() * $child_line_item->quantity();
109
+			$this->process($child_line_item);
110
+			// If this line item is a normal line item that isn't for a ticket,
111
+			// we want to modify its total (and unit price if not a percentage line item)
112
+			// so it reflects only that portion of the surcharge/discount shared by these registrations
113
+			if ($child_line_item->type() === EEM_Line_Item::type_line_item
114
+				&& $child_line_item->OBJ_type() !== 'Ticket'
115
+			) {
116
+				$percent_of_running_total = $running_total_of_children
117
+					? $original_li_total / $running_total_of_children
118
+					: 0;
119
+				$child_line_item->set_total(
120
+					$running_total_of_children_under_consideration * $percent_of_running_total
121
+				);
122
+				if (! $child_line_item->is_percent()) {
123
+					$child_line_item->set_unit_price($child_line_item->total() / $child_line_item->quantity());
124
+				}
125
+			} elseif (// make sure this item's quantity and total matches its parent
126
+				$line_item->type() === EEM_Line_Item::type_line_item
127
+				&& $line_item->OBJ_type() === 'Ticket'
128
+				// but not if it's a percentage modifier
129
+				&& ! $child_line_item->is_percent()
130
+				&& ! (
131
+					// or a cancellation
132
+					$child_line_item->is_cancelled()
133
+					&& ! (
134
+						// unless it IS a cancellation and the current registration is cancelled
135
+						$child_line_item->is_cancelled()
136
+						&& $this->_current_registration instanceof EE_Registration
137
+						&& in_array($this->_current_registration->status_ID(), $this->_closed_reg_statuses, true)
138
+					)
139
+				)
140
+			) {
141
+				$child_line_item->set_quantity($line_item->quantity());
142
+				$child_line_item->set_total($child_line_item->unit_price() * $child_line_item->quantity());
143
+			}
144
+			$running_total_of_children += $original_li_total;
145
+			$running_total_of_children_under_consideration += $child_line_item->total();
146
+			if ($child_line_item->OBJ_type() === 'Ticket') {
147
+				$total_child_ticket_quantity += $child_line_item->quantity();
148
+			}
149
+		}
150
+		$line_item->set_total($running_total_of_children_under_consideration);
151
+		if ($line_item->quantity()) {
152
+			$line_item->set_unit_price($running_total_of_children_under_consideration / $line_item->quantity());
153
+		} else {
154
+			$line_item->set_unit_price(0);
155
+		}
156
+		if ($line_item->OBJ_type() === 'Event') {
157
+			$line_item->set_quantity($total_child_ticket_quantity);
158
+		}
159
+		return $line_item;
160
+	}
161 161
 
162 162
 
163
-    /**
164
-     * Adjusts quantities for line items for tickets according to the registrations provided
165
-     * in the constructor
166
-     *
167
-     * @param EEI_Line_Item $line_item
168
-     * @return EEI_Line_Item
169
-     */
170
-    protected function _adjust_line_item_quantity(EEI_Line_Item $line_item)
171
-    {
172
-        // is this a ticket ?
173
-        if ($line_item->type() === EEM_Line_Item::type_line_item && $line_item->OBJ_type() === 'Ticket') {
174
-            $this->_current_registration = null;
175
-            $quantity = 0;
176
-            // if this ticket is billable at this moment, then we should have a positive quantity
177
-            if (isset($this->_line_item_registrations[ $line_item->code() ])
178
-                && is_array($this->_line_item_registrations[ $line_item->code() ])
179
-            ) {
180
-                // set quantity based on number of open registrations for this ticket
181
-                foreach ($this->_line_item_registrations[ $line_item->code() ] as $registration) {
182
-                    if ($registration instanceof EE_Registration
183
-                    ) {
184
-                        $quantity++;
185
-                        $this->_current_registration = $registration;
186
-                    }
187
-                }
188
-            }
189
-            $line_item->set_quantity($quantity);
190
-            $line_item->set_total($line_item->unit_price() * $line_item->quantity());
191
-        }
192
-        return $line_item;
193
-    }
163
+	/**
164
+	 * Adjusts quantities for line items for tickets according to the registrations provided
165
+	 * in the constructor
166
+	 *
167
+	 * @param EEI_Line_Item $line_item
168
+	 * @return EEI_Line_Item
169
+	 */
170
+	protected function _adjust_line_item_quantity(EEI_Line_Item $line_item)
171
+	{
172
+		// is this a ticket ?
173
+		if ($line_item->type() === EEM_Line_Item::type_line_item && $line_item->OBJ_type() === 'Ticket') {
174
+			$this->_current_registration = null;
175
+			$quantity = 0;
176
+			// if this ticket is billable at this moment, then we should have a positive quantity
177
+			if (isset($this->_line_item_registrations[ $line_item->code() ])
178
+				&& is_array($this->_line_item_registrations[ $line_item->code() ])
179
+			) {
180
+				// set quantity based on number of open registrations for this ticket
181
+				foreach ($this->_line_item_registrations[ $line_item->code() ] as $registration) {
182
+					if ($registration instanceof EE_Registration
183
+					) {
184
+						$quantity++;
185
+						$this->_current_registration = $registration;
186
+					}
187
+				}
188
+			}
189
+			$line_item->set_quantity($quantity);
190
+			$line_item->set_total($line_item->unit_price() * $line_item->quantity());
191
+		}
192
+		return $line_item;
193
+	}
194 194
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -73,10 +73,10 @@  discard block
 block discarded – undo
73 73
                 'LIN_code'
74 74
             );
75 75
             if ($line_item_code) {
76
-                if (! isset($this->_line_item_registrations[ $line_item_code ])) {
77
-                    $this->_line_item_registrations[ $line_item_code ] = array();
76
+                if ( ! isset($this->_line_item_registrations[$line_item_code])) {
77
+                    $this->_line_item_registrations[$line_item_code] = array();
78 78
                 }
79
-                $this->_line_item_registrations[ $line_item_code ][ $registration->ID() ] = $registration;
79
+                $this->_line_item_registrations[$line_item_code][$registration->ID()] = $registration;
80 80
             }
81 81
         }
82 82
     }
@@ -93,7 +93,7 @@  discard block
 block discarded – undo
93 93
     public function process(EEI_Line_Item $line_item)
94 94
     {
95 95
         $this->_adjust_line_item_quantity($line_item);
96
-        if (! $line_item->children()) {
96
+        if ( ! $line_item->children()) {
97 97
             return $line_item;
98 98
         }
99 99
         // the original running total (taking ALL tickets into account)
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
                 $child_line_item->set_total(
120 120
                     $running_total_of_children_under_consideration * $percent_of_running_total
121 121
                 );
122
-                if (! $child_line_item->is_percent()) {
122
+                if ( ! $child_line_item->is_percent()) {
123 123
                     $child_line_item->set_unit_price($child_line_item->total() / $child_line_item->quantity());
124 124
                 }
125 125
             } elseif (// make sure this item's quantity and total matches its parent
@@ -174,11 +174,11 @@  discard block
 block discarded – undo
174 174
             $this->_current_registration = null;
175 175
             $quantity = 0;
176 176
             // if this ticket is billable at this moment, then we should have a positive quantity
177
-            if (isset($this->_line_item_registrations[ $line_item->code() ])
178
-                && is_array($this->_line_item_registrations[ $line_item->code() ])
177
+            if (isset($this->_line_item_registrations[$line_item->code()])
178
+                && is_array($this->_line_item_registrations[$line_item->code()])
179 179
             ) {
180 180
                 // set quantity based on number of open registrations for this ticket
181
-                foreach ($this->_line_item_registrations[ $line_item->code() ] as $registration) {
181
+                foreach ($this->_line_item_registrations[$line_item->code()] as $registration) {
182 182
                     if ($registration instanceof EE_Registration
183 183
                     ) {
184 184
                         $quantity++;
Please login to merge, or discard this patch.
core/libraries/line_item_display/EE_Line_Item_Display.class.php 2 patches
Indentation   +51 added lines, -51 removed lines patch added patch discarded remove patch
@@ -14,62 +14,62 @@
 block discarded – undo
14 14
 class EE_Line_Item_Display
15 15
 {
16 16
 
17
-    private $strategy = null;
17
+	private $strategy = null;
18 18
 
19 19
 
20
-    /**
21
-     * @param string $context - where/how the line items are being displayed
22
-     * @param string $other_line_item_display_strategy
23
-     */
24
-    public function __construct($context = '', $other_line_item_display_strategy = '')
25
-    {
26
-        $context = strtolower($context);
27
-        switch ($context) {
28
-            case 'invoice':
29
-                $this->strategy = new EE_Invoice_Line_Item_Display_Strategy();
30
-                break;
31
-            case 'receipt':
32
-                $this->strategy = new EE_Receipt_Line_Item_Display_Strategy();
33
-                break;
34
-            case 'spco':
35
-                $this->strategy = new EE_SPCO_Line_Item_Display_Strategy();
36
-                break;
37
-            default:
38
-                if (! empty($other_line_item_display_strategy) &&
39
-                    class_exists($other_line_item_display_strategy)
40
-                ) {
41
-                    $this->strategy = new  $other_line_item_display_strategy();
42
-                } else {
43
-                    $this->strategy = new EE_Default_Line_Item_Display_Strategy();
44
-                }
45
-        }
46
-    }
20
+	/**
21
+	 * @param string $context - where/how the line items are being displayed
22
+	 * @param string $other_line_item_display_strategy
23
+	 */
24
+	public function __construct($context = '', $other_line_item_display_strategy = '')
25
+	{
26
+		$context = strtolower($context);
27
+		switch ($context) {
28
+			case 'invoice':
29
+				$this->strategy = new EE_Invoice_Line_Item_Display_Strategy();
30
+				break;
31
+			case 'receipt':
32
+				$this->strategy = new EE_Receipt_Line_Item_Display_Strategy();
33
+				break;
34
+			case 'spco':
35
+				$this->strategy = new EE_SPCO_Line_Item_Display_Strategy();
36
+				break;
37
+			default:
38
+				if (! empty($other_line_item_display_strategy) &&
39
+					class_exists($other_line_item_display_strategy)
40
+				) {
41
+					$this->strategy = new  $other_line_item_display_strategy();
42
+				} else {
43
+					$this->strategy = new EE_Default_Line_Item_Display_Strategy();
44
+				}
45
+		}
46
+	}
47 47
 
48
-    /**
49
-     * @param EE_Line_Item $line_item
50
-     * @param array        $options
51
-     * @return mixed
52
-     */
53
-    public function display_line_item(EE_Line_Item $line_item, $options = array())
54
-    {
55
-        return $this->strategy->display_line_item($line_item, $options);
56
-    }
48
+	/**
49
+	 * @param EE_Line_Item $line_item
50
+	 * @param array        $options
51
+	 * @return mixed
52
+	 */
53
+	public function display_line_item(EE_Line_Item $line_item, $options = array())
54
+	{
55
+		return $this->strategy->display_line_item($line_item, $options);
56
+	}
57 57
 
58 58
 
59
-    /**
60
-     * @return float
61
-     */
62
-    public function grand_total()
63
-    {
64
-        return $this->strategy->grand_total();
65
-    }
59
+	/**
60
+	 * @return float
61
+	 */
62
+	public function grand_total()
63
+	{
64
+		return $this->strategy->grand_total();
65
+	}
66 66
 
67 67
 
68
-    /**
69
-     * @return float
70
-     */
71
-    public function total_items()
72
-    {
73
-        return $this->strategy->total_items();
74
-    }
68
+	/**
69
+	 * @return float
70
+	 */
71
+	public function total_items()
72
+	{
73
+		return $this->strategy->total_items();
74
+	}
75 75
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -35,7 +35,7 @@
 block discarded – undo
35 35
                 $this->strategy = new EE_SPCO_Line_Item_Display_Strategy();
36 36
                 break;
37 37
             default:
38
-                if (! empty($other_line_item_display_strategy) &&
38
+                if ( ! empty($other_line_item_display_strategy) &&
39 39
                     class_exists($other_line_item_display_strategy)
40 40
                 ) {
41 41
                     $this->strategy = new  $other_line_item_display_strategy();
Please login to merge, or discard this patch.
core/libraries/template_parts/EE_Template_Part_Manager.class.php 2 patches
Indentation   +191 added lines, -191 removed lines patch added patch discarded remove patch
@@ -14,195 +14,195 @@
 block discarded – undo
14 14
 class EE_Template_Part_Manager
15 15
 {
16 16
 
17
-    /**
18
-     * @param EE_Template_Part_PriorityQueue $template_parts
19
-     */
20
-    protected $template_parts;
21
-
22
-    /**
23
-     * @param array $priorities
24
-     */
25
-    protected $priorities = array();
26
-
27
-    /**
28
-     * @param int $event_desc_priority
29
-     */
30
-    protected $event_desc_priority;
31
-
32
-    /**
33
-     * @param string $before_event_content
34
-     */
35
-    protected $before_event_content;
36
-
37
-    /**
38
-     * @param string $event_content
39
-     */
40
-    protected $event_content;
41
-
42
-    /**
43
-     * @param string $after_event_content
44
-     */
45
-    protected $after_event_content;
46
-
47
-
48
-    /**
49
-     *    class constructor
50
-     */
51
-    public function __construct()
52
-    {
53
-        $this->template_parts = new EE_Template_Part_PriorityQueue();
54
-    }
55
-
56
-
57
-    /**
58
-     *    add_template_part
59
-     *
60
-     *    used for setting the details about a particular template part
61
-     *
62
-     * @param string $name     - just a simple string identifier - do NOT use 'event'
63
-     * @param string $label    - template part label displayed in admin
64
-     * @param string $template - name or path of template to be used by EEH_Template::locate_template()
65
-     * @param int    $priority - order in which template parts should be applied
66
-     */
67
-    public function add_template_part($name, $label, $template, $priority)
68
-    {
69
-        // SplPriorityQueue doesn't play nice with multiple items having the same priority
70
-        // so if the incoming priority is already occupied, then let's increment it by one,
71
-        // and then pass everything back into this method and try again with the new priority
72
-        if (isset($this->priorities[ $priority ])) {
73
-            $priority++;
74
-            $this->add_template_part($name, $label, $template, $priority);
75
-            return;
76
-        }
77
-        // kk now we can mark this priority as being occupied
78
-        $this->priorities[ $priority ] = true;
79
-        // create the template part and add to the queue
80
-        $this->template_parts->insert(
81
-            new EE_Template_Part($name, $label, $template, $priority),
82
-            $priority
83
-        );
84
-        if ($name === 'event') {
85
-            $this->event_desc_priority = $priority;
86
-        }
87
-    }
88
-
89
-
90
-    /**
91
-     *    apply_template_part_filters
92
-     *
93
-     *    adds template parts to the supplied content
94
-     *    according to the details set when the template parts were added
95
-     *
96
-     * @access public
97
-     * @param string $content
98
-     * @return string
99
-     */
100
-    public function apply_template_part_filters($content = '')
101
-    {
102
-        $this->template_parts->rewind();
103
-        // loop through template parts and position content
104
-        while ($this->template_parts->valid()) {
105
-            $this->_position_template_part(
106
-                $content,
107
-                $this->template_parts->current()->template(),
108
-                $this->template_parts->current()->priority()
109
-            );
110
-            $this->template_parts->next();
111
-        }
112
-        // now simply add our three strings of content together
113
-        return $this->before_event_content . $this->event_content . $this->after_event_content;
114
-    }
115
-
116
-
117
-    /**
118
-     *    position_template_part
119
-     *
120
-     * based on the priority of the incoming template part
121
-     * relative to the known event description template part priority,
122
-     * this method will assign template parts to one of the following:
123
-     *        $this->before_event_content
124
-     *        $this->event_content
125
-     *        $this->after_event_content
126
-     *
127
-     * @access protected
128
-     * @param string $content
129
-     * @param string $template
130
-     * @param int    $priority
131
-     * @return void
132
-     */
133
-    protected function _position_template_part($content, $template, $priority)
134
-    {
135
-        // Event Description content is the actual incoming content itself
136
-        if ($priority === $this->event_desc_priority) {
137
-            $this->event_content = $content;
138
-        } elseif ($priority < $this->event_desc_priority) {
139
-            // everything BEFORE the Event Description
140
-            $this->before_event_content .= EEH_Template::locate_template($template);
141
-        } elseif ($priority > $this->event_desc_priority) {
142
-            // everything AFTER the Event Description
143
-            $this->after_event_content .= EEH_Template::locate_template($template);
144
-        }
145
-    }
146
-
147
-
148
-    /**
149
-     *    generate_sortable_list_of_template_parts
150
-     *
151
-     *    creates an HTML list (<ul>) with list items (<li>) for each template part,
152
-     *    in a format that can be used as a sortable list in the admin
153
-     *
154
-     * @access public
155
-     * @param string $list_css_id
156
-     * @param string $list_css_class
157
-     * @param string $list_item_css_class
158
-     * @param string $list_item_css_id_prefix
159
-     * @return string
160
-     */
161
-    public function generate_sortable_list_of_template_parts(
162
-        $list_css_id = '',
163
-        $list_css_class = '',
164
-        $list_item_css_class = '',
165
-        $list_item_css_id_prefix = ''
166
-    ) {
167
-        $event_archive_display_order = EEH_HTML::ul($list_css_id, $list_css_class);
168
-        $this->template_parts->rewind();
169
-        // loop through template parts and add template content
170
-        while ($this->template_parts->valid()) {
171
-            $event_archive_display_order .= EEH_HTML::li(
172
-                EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') .
173
-                EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') .
174
-                $this->template_parts->current()->label(),
175
-                $list_item_css_id_prefix . $this->template_parts->current()->name(),
176
-                $list_item_css_class
177
-            );
178
-            $this->template_parts->next();
179
-        }
180
-        $event_archive_display_order .= EEH_HTML::ulx();
181
-        return $event_archive_display_order;
182
-    }
183
-
184
-
185
-    /**
186
-     *    display_template_parts
187
-     *
188
-     * just for debugging purposes
189
-     *
190
-     * @access    public
191
-     * @return void
192
-     */
193
-    public function display_template_parts()
194
-    {
195
-        if (WP_DEBUG) {
196
-            $this->template_parts->rewind();
197
-            while ($this->template_parts->valid()) {
198
-                EEH_Debug_Tools::printr(
199
-                    $this->template_parts->current(),
200
-                    'template_part',
201
-                    __FILE__,
202
-                    __LINE__
203
-                );
204
-                $this->template_parts->next();
205
-            }
206
-        }
207
-    }
17
+	/**
18
+	 * @param EE_Template_Part_PriorityQueue $template_parts
19
+	 */
20
+	protected $template_parts;
21
+
22
+	/**
23
+	 * @param array $priorities
24
+	 */
25
+	protected $priorities = array();
26
+
27
+	/**
28
+	 * @param int $event_desc_priority
29
+	 */
30
+	protected $event_desc_priority;
31
+
32
+	/**
33
+	 * @param string $before_event_content
34
+	 */
35
+	protected $before_event_content;
36
+
37
+	/**
38
+	 * @param string $event_content
39
+	 */
40
+	protected $event_content;
41
+
42
+	/**
43
+	 * @param string $after_event_content
44
+	 */
45
+	protected $after_event_content;
46
+
47
+
48
+	/**
49
+	 *    class constructor
50
+	 */
51
+	public function __construct()
52
+	{
53
+		$this->template_parts = new EE_Template_Part_PriorityQueue();
54
+	}
55
+
56
+
57
+	/**
58
+	 *    add_template_part
59
+	 *
60
+	 *    used for setting the details about a particular template part
61
+	 *
62
+	 * @param string $name     - just a simple string identifier - do NOT use 'event'
63
+	 * @param string $label    - template part label displayed in admin
64
+	 * @param string $template - name or path of template to be used by EEH_Template::locate_template()
65
+	 * @param int    $priority - order in which template parts should be applied
66
+	 */
67
+	public function add_template_part($name, $label, $template, $priority)
68
+	{
69
+		// SplPriorityQueue doesn't play nice with multiple items having the same priority
70
+		// so if the incoming priority is already occupied, then let's increment it by one,
71
+		// and then pass everything back into this method and try again with the new priority
72
+		if (isset($this->priorities[ $priority ])) {
73
+			$priority++;
74
+			$this->add_template_part($name, $label, $template, $priority);
75
+			return;
76
+		}
77
+		// kk now we can mark this priority as being occupied
78
+		$this->priorities[ $priority ] = true;
79
+		// create the template part and add to the queue
80
+		$this->template_parts->insert(
81
+			new EE_Template_Part($name, $label, $template, $priority),
82
+			$priority
83
+		);
84
+		if ($name === 'event') {
85
+			$this->event_desc_priority = $priority;
86
+		}
87
+	}
88
+
89
+
90
+	/**
91
+	 *    apply_template_part_filters
92
+	 *
93
+	 *    adds template parts to the supplied content
94
+	 *    according to the details set when the template parts were added
95
+	 *
96
+	 * @access public
97
+	 * @param string $content
98
+	 * @return string
99
+	 */
100
+	public function apply_template_part_filters($content = '')
101
+	{
102
+		$this->template_parts->rewind();
103
+		// loop through template parts and position content
104
+		while ($this->template_parts->valid()) {
105
+			$this->_position_template_part(
106
+				$content,
107
+				$this->template_parts->current()->template(),
108
+				$this->template_parts->current()->priority()
109
+			);
110
+			$this->template_parts->next();
111
+		}
112
+		// now simply add our three strings of content together
113
+		return $this->before_event_content . $this->event_content . $this->after_event_content;
114
+	}
115
+
116
+
117
+	/**
118
+	 *    position_template_part
119
+	 *
120
+	 * based on the priority of the incoming template part
121
+	 * relative to the known event description template part priority,
122
+	 * this method will assign template parts to one of the following:
123
+	 *        $this->before_event_content
124
+	 *        $this->event_content
125
+	 *        $this->after_event_content
126
+	 *
127
+	 * @access protected
128
+	 * @param string $content
129
+	 * @param string $template
130
+	 * @param int    $priority
131
+	 * @return void
132
+	 */
133
+	protected function _position_template_part($content, $template, $priority)
134
+	{
135
+		// Event Description content is the actual incoming content itself
136
+		if ($priority === $this->event_desc_priority) {
137
+			$this->event_content = $content;
138
+		} elseif ($priority < $this->event_desc_priority) {
139
+			// everything BEFORE the Event Description
140
+			$this->before_event_content .= EEH_Template::locate_template($template);
141
+		} elseif ($priority > $this->event_desc_priority) {
142
+			// everything AFTER the Event Description
143
+			$this->after_event_content .= EEH_Template::locate_template($template);
144
+		}
145
+	}
146
+
147
+
148
+	/**
149
+	 *    generate_sortable_list_of_template_parts
150
+	 *
151
+	 *    creates an HTML list (<ul>) with list items (<li>) for each template part,
152
+	 *    in a format that can be used as a sortable list in the admin
153
+	 *
154
+	 * @access public
155
+	 * @param string $list_css_id
156
+	 * @param string $list_css_class
157
+	 * @param string $list_item_css_class
158
+	 * @param string $list_item_css_id_prefix
159
+	 * @return string
160
+	 */
161
+	public function generate_sortable_list_of_template_parts(
162
+		$list_css_id = '',
163
+		$list_css_class = '',
164
+		$list_item_css_class = '',
165
+		$list_item_css_id_prefix = ''
166
+	) {
167
+		$event_archive_display_order = EEH_HTML::ul($list_css_id, $list_css_class);
168
+		$this->template_parts->rewind();
169
+		// loop through template parts and add template content
170
+		while ($this->template_parts->valid()) {
171
+			$event_archive_display_order .= EEH_HTML::li(
172
+				EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') .
173
+				EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') .
174
+				$this->template_parts->current()->label(),
175
+				$list_item_css_id_prefix . $this->template_parts->current()->name(),
176
+				$list_item_css_class
177
+			);
178
+			$this->template_parts->next();
179
+		}
180
+		$event_archive_display_order .= EEH_HTML::ulx();
181
+		return $event_archive_display_order;
182
+	}
183
+
184
+
185
+	/**
186
+	 *    display_template_parts
187
+	 *
188
+	 * just for debugging purposes
189
+	 *
190
+	 * @access    public
191
+	 * @return void
192
+	 */
193
+	public function display_template_parts()
194
+	{
195
+		if (WP_DEBUG) {
196
+			$this->template_parts->rewind();
197
+			while ($this->template_parts->valid()) {
198
+				EEH_Debug_Tools::printr(
199
+					$this->template_parts->current(),
200
+					'template_part',
201
+					__FILE__,
202
+					__LINE__
203
+				);
204
+				$this->template_parts->next();
205
+			}
206
+		}
207
+	}
208 208
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -69,13 +69,13 @@  discard block
 block discarded – undo
69 69
         // SplPriorityQueue doesn't play nice with multiple items having the same priority
70 70
         // so if the incoming priority is already occupied, then let's increment it by one,
71 71
         // and then pass everything back into this method and try again with the new priority
72
-        if (isset($this->priorities[ $priority ])) {
72
+        if (isset($this->priorities[$priority])) {
73 73
             $priority++;
74 74
             $this->add_template_part($name, $label, $template, $priority);
75 75
             return;
76 76
         }
77 77
         // kk now we can mark this priority as being occupied
78
-        $this->priorities[ $priority ] = true;
78
+        $this->priorities[$priority] = true;
79 79
         // create the template part and add to the queue
80 80
         $this->template_parts->insert(
81 81
             new EE_Template_Part($name, $label, $template, $priority),
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
             $this->template_parts->next();
111 111
         }
112 112
         // now simply add our three strings of content together
113
-        return $this->before_event_content . $this->event_content . $this->after_event_content;
113
+        return $this->before_event_content.$this->event_content.$this->after_event_content;
114 114
     }
115 115
 
116 116
 
@@ -169,10 +169,10 @@  discard block
 block discarded – undo
169 169
         // loop through template parts and add template content
170 170
         while ($this->template_parts->valid()) {
171 171
             $event_archive_display_order .= EEH_HTML::li(
172
-                EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2') .
173
-                EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2') .
172
+                EEH_HTML::span('', '', 'dashicons dashicons-arrow-up-alt2').
173
+                EEH_HTML::span('', '', 'dashicons dashicons-arrow-down-alt2').
174 174
                 $this->template_parts->current()->label(),
175
-                $list_item_css_id_prefix . $this->template_parts->current()->name(),
175
+                $list_item_css_id_prefix.$this->template_parts->current()->name(),
176 176
                 $list_item_css_class
177 177
             );
178 178
             $this->template_parts->next();
Please login to merge, or discard this patch.