1<?php 2/** 3 * Matomo - free/libre analytics platform 4 * 5 * @link https://matomo.org 6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 7 * 8 */ 9 10namespace Piwik\View; 11 12use Piwik\Common; 13use Piwik\Date; 14use Piwik\Mail\EmailStyles; 15use Piwik\Plugin\ThemeStyles; 16use Piwik\Plugins\API\API; 17use Piwik\Plugins\CoreAdminHome\CustomLogo; 18use Piwik\Scheduler\Schedule\Schedule; 19use Piwik\SettingsPiwik; 20use Piwik\Site; 21use Piwik\View; 22use Piwik\Plugin\Manager; 23 24class HtmlReportEmailHeaderView extends View 25{ 26 const TEMPLATE_FILE = '@CoreHome/ReportRenderer/_htmlReportHeader'; 27 28 private static $reportFrequencyTranslationByPeriod = [ 29 Schedule::PERIOD_NEVER => '', 30 Schedule::PERIOD_DAY => 'General_DailyReport', 31 Schedule::PERIOD_WEEK => 'General_WeeklyReport', 32 Schedule::PERIOD_MONTH => 'General_MonthlyReport', 33 Schedule::PERIOD_YEAR => 'General_YearlyReport', 34 Schedule::PERIOD_RANGE => 'General_RangeReports', 35 ]; 36 37 public function __construct($reportTitle, $prettyDate, $description, $reportMetadata, $segment, $idSite, $period) 38 { 39 parent::__construct(self::TEMPLATE_FILE); 40 41 self::assignCommonParameters($this); 42 43 $periods = self::getPeriodToFrequencyAsAdjective(); 44 $this->assign("frequency", $periods[$period]); 45 $this->assign("reportTitle", $reportTitle); 46 $this->assign("prettyDate", $prettyDate); 47 $this->assign("description", $description); 48 $this->assign("reportMetadata", $reportMetadata); 49 $this->assign("websiteName", Site::getNameFor($idSite)); 50 $this->assign("idSite", $idSite); 51 $this->assign("period", $period); 52 53 $date = Date::now()->setTimezone(Site::getTimezoneFor($idSite))->toString(); 54 $this->assign("date", $date); 55 56 // segment 57 $displaySegment = ($segment != null); 58 $this->assign("displaySegment", $displaySegment); 59 if ($displaySegment) { 60 $this->assign("segmentName", $segment['name']); 61 } 62 } 63 64 public static function assignCommonParameters(View $view) 65 { 66 $themeStyles = ThemeStyles::get(); 67 $emailStyles = EmailStyles::get(); 68 69 $view->currentPath = SettingsPiwik::getPiwikUrl(); 70 71 $view->themeStyles = $themeStyles; 72 $view->emailStyles = $emailStyles; 73 74 $view->fontStyle = 'color:' . $themeStyles->colorText . ';font-family:' . $themeStyles->fontFamilyBase.';'; 75 $view->styleParagraphText = 'font-size:15px;line-height:24px;'; 76 $view->styleParagraph = $view->styleParagraphText . 'margin:0 0 16px;'; 77 78 $customLogo = new CustomLogo(); 79 $view->isCustomLogo = $customLogo->isEnabled() && CustomLogo::hasUserLogo(); 80 $view->logoHeader = $customLogo->getHeaderLogoUrl($pathOnly = false); 81 82 $pluginManager = Manager::getInstance(); 83 84 $view->hasWhiteLabel = $pluginManager->isPluginLoaded('WhiteLabel') 85 && $pluginManager->isPluginActivated('WhiteLabel') 86 && $pluginManager->isPluginInFilesystem('WhiteLabel'); 87 88 $view->idSite = Common::getRequestVar('idSite', false); 89 } 90 91 private static function getPeriodToFrequencyAsAdjective() 92 { 93 return array_map(['\Piwik\Piwik', 'translate'], self::$reportFrequencyTranslationByPeriod); 94 } 95} 96