getCurrencySymbolFor() public static method

Returns the currency of the site with the specified ID.
public static getCurrencySymbolFor ( integer $idsite ) : string
$idsite integer The site ID.
return string
示例#1
0
 /**
  * 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.
  * @return string
  * @api
  */
 public function getPrettyMoney($value, $idSite)
 {
     $space = ' ';
     $currencySymbol = Site::getCurrencySymbolFor($idSite);
     $currencyBefore = $currencySymbol . $space;
     $currencyAfter = '';
     // (maybe more currencies prefer this notation?)
     $currencySymbolToAppend = array('€', 'kr', 'zł');
     // manually put the currency symbol after the amount
     if (in_array($currencySymbol, $currencySymbolToAppend)) {
         $currencyAfter = $space . $currencySymbol;
         $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 . $value . $currencyAfter;
     return $prettyMoney;
 }
示例#2
0
 public static function getCurrencySymbol($idSite)
 {
     return Site::getCurrencySymbolFor($idSite);
 }
示例#3
0
文件: Dashboard.php 项目: piwik/piwik
 private function formatMetrics(&$metrics)
 {
     $formatter = NumberFormatter::getInstance();
     foreach ($metrics as $metricName => &$value) {
         if (in_array($metricName, $this->displayedMetricColumns)) {
             if (strpos($metricName, 'revenue') !== false) {
                 $currency = isset($metrics['idsite']) ? Site::getCurrencySymbolFor($metrics['idsite']) : '';
                 $value = $formatter->formatCurrency($value, $currency);
                 continue;
             }
             $value = $formatter->format($value);
         }
     }
 }
示例#4
0
 /**
  * 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' => Site::getCurrencySymbolFor($idSite), '_time_' => 's');
     foreach ($nameToUnit as $pattern => $type) {
         if (strpos($column, $pattern) !== false) {
             return $type;
         }
     }
     return '';
 }
示例#5
0
文件: Twig.php 项目: diosmosis/piwik
function piwik_format_money($amount, $idSite)
{
    $currencySymbol = Site::getCurrencySymbolFor($idSite);
    $numberFormatter = NumberFormatter::getInstance();
    return $numberFormatter->formatCurrency($amount, $currencySymbol, GoalManager::REVENUE_PRECISION);
}
示例#6
0
 protected function addFilter_money()
 {
     $formatter = $this->formatter;
     $moneyFilter = new Twig_SimpleFilter('money', function ($amount) use($formatter) {
         if (func_num_args() != 2) {
             throw new Exception('the money modifier expects one parameter: the idSite.');
         }
         $idSite = func_get_args();
         $idSite = $idSite[1];
         $currencySymbol = Site::getCurrencySymbolFor($idSite);
         return NumberFormatter::getInstance()->formatCurrency($amount, $currencySymbol, GoalManager::REVENUE_PRECISION);
     });
     $this->twig->addFilter($moneyFilter);
 }
示例#7
0
文件: Get.php 项目: piwik/piwik
 public function configureView(ViewDataTable $view)
 {
     $idGoal = Common::getRequestVar('idGoal', 0, 'string');
     $idSite = $this->getIdSite();
     if ($view->isViewDataTableId(Sparklines::ID)) {
         /** @var Sparklines $view */
         $isEcommerceEnabled = $this->isEcommerceEnabled($idSite);
         $onlySummary = Common::getRequestVar('only_summary', 0, 'int');
         if ($onlySummary && !empty($idGoal)) {
             if (is_numeric($idGoal)) {
                 $view->config->title_attributes = array('piwik-goal-page-link' => $idGoal);
             }
             // in Goals overview summary we show proper title for a goal
             $goal = $this->getGoal($idGoal);
             if (!empty($goal['name'])) {
                 $view->config->title = Piwik::translate('Goals_GoalX', "'" . $goal['name'] . "'");
             }
         } else {
             $view->config->title = '';
         }
         $numberFormatter = NumberFormatter::getInstance();
         $view->config->filters[] = function (DataTable $table) use($numberFormatter, $idSite) {
             $firstRow = $table->getFirstRow();
             if ($firstRow) {
                 $revenue = $firstRow->getColumn('revenue');
                 $currencySymbol = Site::getCurrencySymbolFor($idSite);
                 $revenue = $numberFormatter->formatCurrency($revenue, $currencySymbol, GoalManager::REVENUE_PRECISION);
                 $firstRow->setColumn('revenue', $revenue);
                 $conversionRate = $firstRow->getColumn('conversion_rate');
                 if (false !== $conversionRate) {
                     $firstRow->setColumn('conversion_rate', $numberFormatter->formatPercent($conversionRate, $precision = 1));
                 }
                 $conversions = $firstRow->getColumn('nb_conversions');
                 if (false !== $conversions) {
                     $firstRow->setColumn('nb_conversions', $numberFormatter->formatNumber($conversions));
                 }
                 $visitsConverted = $firstRow->getColumn('nb_visits_converted');
                 if (false !== $visitsConverted) {
                     $firstRow->setColumn('nb_visits_converted', $numberFormatter->formatNumber($visitsConverted));
                 }
             }
         };
         $view->config->addTranslations(array('nb_visits' => Piwik::translate('VisitsSummary_NbVisitsDescription'), 'nb_conversions' => Piwik::translate('Goals_ConversionsDescription'), 'nb_visits_converted' => Piwik::translate('General_NVisits'), 'conversion_rate' => Piwik::translate('Goals_OverallConversionRate'), 'revenue' => Piwik::translate('Goals_OverallRevenue')));
         $allowMultiple = Common::getRequestVar('allow_multiple', 0, 'int');
         if ($allowMultiple) {
             $view->config->addSparklineMetric(array('nb_conversions', 'nb_visits_converted'), $order = 10);
         } else {
             $view->config->addSparklineMetric(array('nb_conversions'), $order = 10);
         }
         $view->config->addSparklineMetric(array('conversion_rate'), $order = 20);
         if (empty($idGoal)) {
             // goals overview sparklines below evolution graph
             if ($isEcommerceEnabled) {
                 // this would be ideally done in Ecommerce plugin but then it is hard to keep same order
                 $view->config->addSparklineMetric(array('revenue'), $order = 30);
             }
         } else {
             if ($onlySummary) {
                 // in Goals Overview we list an overview for each goal....
                 $view->config->addTranslation('conversion_rate', Piwik::translate('Goals_ConversionRate'));
             } elseif ($isEcommerceEnabled) {
                 // in Goals detail page...
                 $view->config->addSparklineMetric(array('revenue'), $order = 30);
             }
         }
     } else {
         if ($view->isViewDataTableId(Evolution::ID)) {
             if (!empty($idSite) && Piwik::isUserHasAdminAccess($idSite)) {
                 $view->config->title_edit_entity_url = 'index.php' . Url::getCurrentQueryStringWithParametersModified(array('module' => 'Goals', 'action' => 'manage', 'forceView' => null, 'viewDataTable' => null, 'showtitle' => null, 'random' => null));
             }
             $goal = $this->getGoal($idGoal);
             if (!empty($goal['name'])) {
                 $view->config->title = Piwik::translate('Goals_GoalX', "'" . $goal['name'] . "'");
                 if (!empty($goal['description'])) {
                     $view->config->description = $goal['description'];
                 }
             } else {
                 $view->config->title = Piwik::translate('General_EvolutionOverPeriod');
             }
             if (empty($view->config->columns_to_display)) {
                 $view->config->columns_to_display = array('nb_conversions');
             }
         }
     }
 }
示例#8
0
 /**
  * Renders and echo's an admin page that lets users generate custom JavaScript
  * tracking code and custom image tracker links.
  */
 public function trackingCodeGenerator()
 {
     Piwik::checkUserHasSomeViewAccess();
     $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 = Site::getCurrencySymbolFor($view->idSite);
     $view->maxCustomVariables = CustomVariables::getNumUsableCustomVariables();
     $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();
     $dntChecker = new DoNotTrackHeaderChecker();
     $view->serverSideDoNotTrackEnabled = $dntChecker->isActive();
     return $view->render();
 }