Skip to content

Commit da79b93

Browse files
Scheduled task sends email to multiple recipients
Issue: documentacao-e-tarefas/scielo#757 Signed-off-by: Jhon <jhon@lepidus.com.br>
1 parent b6d3559 commit da79b93

3 files changed

Lines changed: 22 additions & 13 deletions

File tree

classes/tasks/SendReportEmail.inc.php

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ public function executeActions()
1414
PluginRegistry::loadCategory('reports');
1515
$plugin = PluginRegistry::getPlugin('reports', 'scielosubmissionsreportplugin');
1616

17-
$recipientEmail = $plugin->getSetting($context->getId(), 'recipientEmail');
17+
$recipientEmails = $this->getRecipientEmails($plugin, $context->getId());
1818

19-
if ($application == 'ops' && !is_null($recipientEmail)) {
19+
if ($application == 'ops' && !empty($recipientEmails)) {
2020
$locale = AppLocale::getLocale();
2121
$this->loadLocalesForTask($plugin, $locale);
2222

2323
$report = $this->getReport($application, $context, $locale);
2424
$reportFilePath = $this->writeReportFile($context, $report);
2525

26-
$email = $this->createReportEmail($context, $recipientEmail, $reportFilePath);
26+
$email = $this->createReportEmail($context, $recipientEmails, $reportFilePath);
2727
$email->send();
2828
}
2929

@@ -70,20 +70,29 @@ private function getAllSectionsIds($contextId)
7070
return $sectionsIds;
7171
}
7272

73-
private function createReportEmail($context, $recipientEmail, $reportFilePath)
73+
private function getRecipientEmails($plugin, $contextId)
74+
{
75+
$recipientEmailSetting = $plugin->getSetting($contextId, 'recipientEmail');
76+
if (is_null($recipientEmailSetting)) {
77+
return [];
78+
}
79+
80+
$recipientEmails = array_map(function ($email) {
81+
return ['name' => '', 'email' => trim($email)];
82+
}, explode(',', $recipientEmailSetting));
83+
84+
return $recipientEmails;
85+
}
86+
87+
private function createReportEmail($context, $recipientEmails, $reportFilePath)
7488
{
7589
$email = new Mail();
7690

7791
$fromName = $context->getLocalizedData('name');
7892
$fromEmail = $context->getData('contactEmail');
7993
$email->setFrom($fromEmail, $fromName);
8094

81-
$email->setRecipients([
82-
[
83-
'name' => '',
84-
'email' => $recipientEmail,
85-
],
86-
]);
95+
$email->setRecipients($recipientEmails);
8796

8897
$subject = __('plugins.reports.scieloSubmissionsReport.reportEmail.subject', ['contextName' => $fromName]);
8998
$body = __('plugins.reports.scieloSubmissionsReport.reportEmail.body', ['contextName' => $fromName]);

templates/settingsForm.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="scieloSubmissionsReportSettingsFormNotification"}
2121

2222
{fbvFormSection title="plugins.reports.scieloSubmissionsReport.settings.recipientEmail"}
23-
{fbvElement id="recipientEmail" class="recipientEmail" type="email" value="{$recipientEmail|escape}" required="true" label="plugins.reports.scieloSubmissionsReport.settings.recipientEmail.description" size=$fbvStyles.size.MEDIUM}
23+
{fbvElement id="recipientEmail" class="recipientEmail" type="text" value="{$recipientEmail|escape}" required="true" label="plugins.reports.scieloSubmissionsReport.settings.recipientEmail.description" size=$fbvStyles.size.MEDIUM}
2424
{/fbvFormSection}
2525
{fbvFormButtons submitText="common.save"}
2626
</form>

version.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
<version>
55
<application>scieloSubmissionsReport</application>
66
<type>plugins.reports</type>
7-
<release>2.4.3.1</release>
8-
<date>2024-11-06</date>
7+
<release>2.4.4.0</release>
8+
<date>2025-03-20</date>
99
<lazy-load>1</lazy-load>
1010
<class>ScieloSubmissionsReportPlugin</class>
1111
</version>

0 commit comments

Comments
 (0)