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/Controllers/StatsController.php +20 -15 10.2.2 → 11.1.0 View file →
@@ -37,18 +37,16 @@
37 37 'all' => ['datepicker', 'thumbnail'],
38 38 ];
39 39 }
40 40
41 - public function call(string $task): void
41 + public function call(string $task, bool $isFront = false): void
42 42 {
43 43 $task = $this->storeAndGetTask($task);
44 - parent::call($task);
44 + parent::call($task, $isFront);
45 45 }
46 46
47 47 private function storeAndGetTask(string $task): string
48 48 {
49 - acym_session();
50 -
51 49 $tasksToStore = [
52 50 'globalStats',
53 51 'detailedStats',
54 52 'clickMap',
@@ -56,24 +54,25 @@
56 54 'userClickDetails',
57 55 'statsByList',
58 56 ];
59 57
60 - if ($this->taskCalled === 'listing' && empty($_SESSION['stats_task'])) {
58 + $statsTask = acym_getVar('string', 'stats_task', '', 'SESSION');
59 + if ($this->taskCalled === 'listing' && empty($statsTask)) {
61 60 return 'globalStats';
62 61 }
63 62
64 - if ((empty($this->taskCalled) || $this->taskCalled === 'listing') && !empty($_SESSION['stats_task']) && in_array($_SESSION['stats_task'], $tasksToStore)) {
65 - return $_SESSION['stats_task'];
63 + if ((empty($this->taskCalled) || $this->taskCalled === 'listing') && !empty($statsTask) && in_array($statsTask, $tasksToStore)) {
64 + return $statsTask;
66 65 }
67 66
68 67 if (!empty($this->taskCalled) && !in_array($this->taskCalled, $tasksToStore) && method_exists($this, $this->taskCalled)) {
69 68 return $this->taskCalled;
70 69 } elseif (!empty($this->taskCalled) && $this->taskCalled != 'listing' && in_array($this->taskCalled, $tasksToStore)) {
71 - $_SESSION['stats_task'] = $this->taskCalled;
70 + acym_setSession('stats_task', $this->taskCalled);
72 71
73 72 return $task;
74 - } elseif (!empty($_SESSION['stats_task']) && method_exists($this, $_SESSION['stats_task'])) {
75 - return $_SESSION['stats_task'];
73 + } elseif (!empty($statsTask) && method_exists($this, $statsTask)) {
74 + return $statsTask;
76 75 } else {
77 76 return $this->defaulttask;
78 77 }
79 78 }
@@ -117,14 +116,18 @@
117 116 public function prepareDefaultPageInfo(array &$data, bool $needMailId = false): bool
118 117 {
119 118 $data['workflowHelper'] = new WorkflowHelper();
120 119
121 - $overrideFilterMailIds = false;
120 + //If we unselect all email in the dropdown the getVarFiltersListing is not resetting correctly the selected mails ids
121 + $overrideFilterMailIds = acym_getVar('string', 'task', '') === 'listing' && empty(acym_getVar('array', 'mail_ids', []));
122 + $data['selectedMailid'] = $this->getVarFiltersListing('array', 'mail_ids', [], $overrideFilterMailIds);
122 123
123 - if (acym_getVar('string', 'task', '') == 'listing' && empty(acym_getVar('array', 'mail_ids', []))) $overrideFilterMailIds = true;
124 + foreach ($data['selectedMailid'] as $i => $mailId) {
125 + if (empty($mailId)) {
126 + unset($data['selectedMailid'][$i]);
127 + }
128 + }
124 129
125 - $data['selectedMailid'] = $this->getVarFiltersListing('array', 'mail_ids', [], $overrideFilterMailIds);
126 -
127 130 if ($needMailId && empty($data['selectedMailid'])) {
128 131 $this->globalStats();
129 132
130 133 return false;
@@ -138,9 +141,11 @@
138 141 if (count($data['selectedMailid']) == 1) {
139 142 $overrideFilterMailIdVersion = !empty(acym_getVar('array', 'mail_ids', []));
140 143
141 144 $versionMailSelected = $this->getVarFiltersListing('int', 'mail_id_version', 0, $overrideFilterMailIdVersion);
142 - if (!empty($versionMailSelected)) $data['selectedMailid'] = [$versionMailSelected];
145 + if (!empty($versionMailSelected)) {
146 + $data['selectedMailid'] = [$versionMailSelected];
147 + }
143 148 }
144 149
145 150 $mailClass = new MailClass();
146 151 if (count($data['selectedMailid']) == 1) {