/** * Returns a pretty formated monetary value using the currency associated with a site. * * @param int|string $value The monetary value to format. * @param int $idSite The ID of the site whose currency will be used. * @param bool $isHtml If true, replaces all spaces with `' '`. * @return string */ public static function getPrettyMoney($value, $idSite, $isHtml = true) { $currencyBefore = MetricsFormatter::getCurrencySymbol($idSite); $space = ' '; if ($isHtml) { $space = ' '; } $currencyAfter = ''; // (maybe more currencies prefer this notation?) $currencySymbolToAppend = array('€', 'kr', 'zł'); // manually put the currency symbol after the amount if (in_array($currencyBefore, $currencySymbolToAppend)) { $currencyAfter = $space . $currencyBefore; $currencyBefore = ''; } // if the input is a number (it could be a string or INPUT form), // and if this number is not an int, we round to precision 2 if (is_numeric($value)) { if ($value == round($value)) { // 0.0 => 0 $value = round($value); } else { $precision = GoalManager::REVENUE_PRECISION; $value = sprintf("%01." . $precision . "f", $value); } } $prettyMoney = $currencyBefore . $space . $value . $currencyAfter; return $prettyMoney; }
/** * Renders and echo's an admin page that lets users generate custom JavaScript * tracking code and custom image tracker links. */ public function trackingCodeGenerator() { $view = new View('@CoreAdminHome/trackingCodeGenerator'); $this->setBasicVariablesView($view); $view->topMenu = MenuTop::getInstance()->getMenu(); $view->userMenu = MenuUser::getInstance()->getMenu(); $viewableIdSites = APISitesManager::getInstance()->getSitesIdWithAtLeastViewAccess(); $defaultIdSite = reset($viewableIdSites); $view->idSite = Common::getRequestVar('idSite', $defaultIdSite, 'int'); $view->defaultReportSiteName = Site::getNameFor($view->idSite); $view->defaultSiteRevenue = \Piwik\MetricsFormatter::getCurrencySymbol($view->idSite); $view->maxCustomVariables = CustomVariables::getMaxCustomVariables(); $allUrls = APISitesManager::getInstance()->getSiteUrlsFromId($view->idSite); if (isset($allUrls[1])) { $aliasUrl = $allUrls[1]; } else { $aliasUrl = 'x.domain.com'; } $view->defaultReportSiteAlias = $aliasUrl; $mainUrl = Site::getMainUrlFor($view->idSite); $view->defaultReportSiteDomain = @parse_url($mainUrl, PHP_URL_HOST); // get currencies for each viewable site $view->currencySymbols = APISitesManager::getInstance()->getCurrencySymbols(); $view->serverSideDoNotTrackEnabled = \Piwik\Plugins\PrivacyManager\DoNotTrackHeaderChecker::isActive(); return $view->render(); }
/** * Derive the unit name from a column name * @param $column * @param $idSite * @return string * @ignore */ public static function getUnit($column, $idSite) { $nameToUnit = array('_rate' => '%', 'revenue' => MetricsFormatter::getCurrencySymbol($idSite), '_time_' => 's'); foreach ($nameToUnit as $pattern => $type) { if (strpos($column, $pattern) !== false) { return $type; } } return ''; }