context = $context; $this->setupStatisticsVariables($context, $editorialTrends, $totalSubmissions, $month, $year); } public static function getDataDescriptions(): array { $variables = [ 'newSubmissions' => __('emailTemplate.variable.statisticsReportNotify.newSubmissions'), 'declinedSubmissions' => __('emailTemplate.variable.statisticsReportNotify.declinedSubmissions'), 'acceptedSubmissions' => __('emailTemplate.variable.statisticsReportNotify.acceptedSubmissions'), 'skippedSubmissions' => __('emailTemplate.variable.statisticsReportNotify.otherSubmissions'), 'totalSubmissions' => __('emailTemplate.variable.statisticsReportNotify.totalSubmissions'), 'month' => __('emailTemplate.variable.statisticsReportNotify.month'), 'year' => __('emailTemplate.variable.statisticsReportNotify.year'), 'editorialStatsLink' => __('emailTemplate.variable.statisticsReportNotify.editorialStatsLink'), 'publicationStatsLink' => __('emailTemplate.variable.statisticsReportNotify.publicationStatsLink'), ]; return array_merge(parent::getDataDescriptions(), $variables); } protected function setupStatisticsVariables( Context $context, array $editorialTrends, int $totalSubmissions, string $month, int $year ): void { $dispatcher = Application::get()->getDispatcher(); $request = Application::get()->getRequest(); $trends = []; foreach ($editorialTrends as $stat) { $trends[$stat['key']] = $stat['value']; } // The submissionsAccepted might not exist $trends['submissionsAccepted'] ??= null; [ 'submissionsReceived' => $newSubmissions, 'submissionsDeclined' => $declinedSubmissions, 'submissionsAccepted' => $acceptedSubmissions, 'submissionsSkipped' => $skippedSubmissions ] = $trends; $this->addData([ 'newSubmissions' => $newSubmissions, 'declinedSubmissions' => $declinedSubmissions, 'acceptedSubmissions' => $acceptedSubmissions, 'skippedSubmissions' => $skippedSubmissions, 'totalSubmissions' => $totalSubmissions, 'month' => $month, 'year' => $year, 'editorialStatsLink' => $dispatcher->url($request, PKPApplication::ROUTE_PAGE, $context->getPath(), 'stats', 'editorial'), 'publicationStatsLink' => $dispatcher->url($request, PKPApplication::ROUTE_PAGE, $context->getPath(), 'stats', 'publications') ]); } /** * Adds a footer with unsubscribe link */ protected function addFooter(string $locale): Mailable { $this->setupUnsubscribeFooter($locale, $this->context); return $this; } }