PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.1.0
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.1.0
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
← All changes | back/Classes/ActionClass.php +62 -16 10.1.4 → 11.1.0 View file →
@@ -11,13 +11,18 @@
11 11 parent::__construct();
12 12
13 13 $this->table = 'action';
14 14 $this->pkey = 'id';
15 + $this->intColumns = [
16 + 'id',
17 + 'condition_id',
18 + 'order',
19 + ];
15 20 }
16 21
17 - public function getActionsByStepId($stepId): array
22 + public function getActionsByStepId(int $stepId): array
18 23 {
19 - return acym_loadObjectList(
24 + $actions = acym_loadObjectList(
20 25 'SELECT `action`.*
21 26 FROM #__acym_action AS `action`
22 27 LEFT JOIN #__acym_condition AS `conditionT` ON `action`.condition_id = `conditionT`.id
23 28 WHERE `conditionT`.step_id = '.intval($stepId).'
@@ -22,36 +27,58 @@
22 27 LEFT JOIN #__acym_condition AS `conditionT` ON `action`.condition_id = `conditionT`.id
23 28 WHERE `conditionT`.step_id = '.intval($stepId).'
24 29 ORDER BY `action`.order'
25 30 );
31 +
32 + array_map([$this, 'fixTypes'], $actions);
33 +
34 + return $actions;
26 35 }
27 36
28 - public function getActionsByConditionId($id): array
37 + public function getActionsByConditionId(int $id): array
29 38 {
30 - return acym_loadObjectList(
31 - 'SELECT action.*
32 - FROM #__acym_action as action
33 - WHERE action.condition_id = '.intval($id)
39 + $actions = acym_loadObjectList(
40 + 'SELECT *
41 + FROM #__acym_action
42 + WHERE condition_id = '.intval($id)
34 43 );
44 +
45 + array_map([$this, 'fixTypes'], $actions);
46 +
47 + return $actions;
35 48 }
36 49
37 - public function getOneByConditionId($id)
50 + public function getOneByConditionId(int $id): ?object
38 51 {
39 - return acym_loadObject(
52 + $action = acym_loadObject(
40 53 'SELECT `action`.*
41 54 FROM #__acym_action AS `action`
42 55 WHERE `action`.`condition_id` = '.intval($id)
43 56 );
57 +
58 + if (empty($action)) {
59 + return null;
60 + }
61 +
62 + $this->fixTypes($action);
63 +
64 + return $action;
44 65 }
45 66
46 - public function getAllActionsIdByConditionsId($elements)
67 + public function getAllActionsIdByConditionsId(array $elements): array
47 68 {
69 + if (empty($elements)) {
70 + return [];
71 + }
72 +
48 73 acym_arrayToInteger($elements);
74 + $ids = acym_loadResultArray('SELECT id FROM #__acym_action WHERE condition_id IN ('.implode(',', $elements).')');
75 + acym_arrayToInteger($ids);
49 76
50 - return acym_loadResultArray('SELECT id FROM #__acym_action WHERE condition_id IN ('.implode(',', $elements).')');
77 + return $ids;
51 78 }
52 79
53 - public function delete($elements)
80 + public function delete(array $elements): int
54 81 {
55 82 acym_arrayToInteger($elements);
56 83 if (empty($elements)) return 0;
57 84 $actions = acym_loadObjectList('SELECT * FROM #__acym_action WHERE id IN ('.implode(',', $elements).')');
@@ -62,9 +89,9 @@
62 89 foreach ($actions as $action) {
63 90 $action->actions = json_decode($action->actions, true);
64 91 if (!empty($action->actions)) {
65 92 foreach ($action->actions as $innerAction) {
66 - if (!empty($innerAction['acy_add_queue']) && !empty($innerAction['acy_add_queue']['mail_id'])) $mailClass->delete($innerAction['acy_add_queue']['mail_id']);
93 + if (!empty($innerAction['acy_add_queue']) && !empty($innerAction['acy_add_queue']['mail_id'])) $mailClass->delete([$innerAction['acy_add_queue']['mail_id']]);
67 94 }
68 95 }
69 96 }
70 97
@@ -70,10 +97,29 @@
70 97
71 98 return parent::delete($elements);
72 99 }
73 100
74 - public function save($element)
101 + public function save(object $element): ?int
75 102 {
76 - if (!isset($element->order)) $element->order = 1;
77 - parent::save($element);
103 + if (!isset($element->order)) {
104 + $element->order = 1;
105 + }
106 +
107 + return parent::save($element);
108 + }
109 +
110 + public function getActionsByAutomationId(int $id): array
111 + {
112 + $actions = acym_loadObjectList(
113 + 'SELECT action.*
114 + FROM `#__acym_action` AS `action`
115 + JOIN `#__acym_condition` AS `condition`
116 + ON `action`.`condition_id` = `condition`.`id`
117 + JOIN `#__acym_step` AS `step`
118 + ON `condition`.`step_id` = `step`.`id`
119 + WHERE `step`.`automation_id` = '.intval($id)
120 + );
121 + array_map([$this, 'fixTypes'], $actions);
122 +
123 + return $actions;
78 124 }
79 125 }