HtmlEmailFooterView.php
6 years ago
HtmlReportEmailHeaderView.php
6 years ago
OneClickDone.php
6 years ago
RenderTokenParser.php
6 years ago
UIControl.php
6 years ago
ViewInterface.php
6 years ago
HtmlReportEmailHeaderView.php
97 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Piwik - 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 | |
| 10 | namespace Piwik\View; |
| 11 | |
| 12 | use Piwik\Common; |
| 13 | use Piwik\Date; |
| 14 | use Piwik\Mail\EmailStyles; |
| 15 | use Piwik\Plugin\ThemeStyles; |
| 16 | use Piwik\Plugins\API\API; |
| 17 | use Piwik\Plugins\CoreAdminHome\CustomLogo; |
| 18 | use Piwik\Scheduler\Schedule\Schedule; |
| 19 | use Piwik\SettingsPiwik; |
| 20 | use Piwik\Site; |
| 21 | use Piwik\View; |
| 22 | use Piwik\Plugin\Manager; |
| 23 | |
| 24 | class 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 | $view->logoHeader = API::getInstance()->getHeaderLogoUrl(); |
| 71 | |
| 72 | $view->themeStyles = $themeStyles; |
| 73 | $view->emailStyles = $emailStyles; |
| 74 | |
| 75 | $view->fontStyle = 'color:' . $themeStyles->colorText . ';font-family:' . $themeStyles->fontFamilyBase.';'; |
| 76 | $view->styleParagraphText = 'font-size:15px;line-height:24px;'; |
| 77 | $view->styleParagraph = $view->styleParagraphText . 'margin:0 0 16px;'; |
| 78 | |
| 79 | $customLogo = new CustomLogo(); |
| 80 | $view->isCustomLogo = $customLogo->isEnabled() && CustomLogo::hasUserLogo(); |
| 81 | $view->logoHeader = $customLogo->getHeaderLogoUrl($pathOnly = false); |
| 82 | |
| 83 | $pluginManager = Manager::getInstance(); |
| 84 | |
| 85 | $view->hasWhiteLabel = $pluginManager->isPluginLoaded('WhiteLabel') |
| 86 | && $pluginManager->isPluginActivated('WhiteLabel') |
| 87 | && $pluginManager->isPluginInFilesystem('WhiteLabel'); |
| 88 | |
| 89 | $view->idSite = Common::getRequestVar('idSite', false); |
| 90 | } |
| 91 | |
| 92 | private static function getPeriodToFrequencyAsAdjective() |
| 93 | { |
| 94 | return array_map(['\Piwik\Piwik', 'translate'], self::$reportFrequencyTranslationByPeriod); |
| 95 | } |
| 96 | } |
| 97 |