Esempio n. 1
0
 private function setShowGoalsColumnsProperties()
 {
     // set view properties based on goal requested
     $idSite = Common::getRequestVar('idSite', null, 'int');
     $idGoal = Common::getRequestVar('idGoal', AddColumnsProcessedMetricsGoal::GOALS_OVERVIEW, 'string');
     if (Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER == $idGoal) {
         $this->setPropertiesForEcommerceView();
     } else {
         if (AddColumnsProcessedMetricsGoal::GOALS_FULL_TABLE == $idGoal) {
             $this->setPropertiesForGoals($idSite, 'all');
         } else {
             if (AddColumnsProcessedMetricsGoal::GOALS_OVERVIEW == $idGoal) {
                 $this->setPropertiesForGoalsOverview($idSite);
             } else {
                 $this->setPropertiesForGoals($idSite, array($idGoal));
             }
         }
     }
     // add goals columns
     $this->config->filters[] = array('AddColumnsProcessedMetricsGoal', array($ignore = true, $idGoal), $priority = true);
     // prettify columns
     $setRatePercent = function ($rate, $thang = false) {
         return $rate == 0 ? "0%" : $rate;
     };
     foreach ($this->config->columns_to_display as $columnName) {
         if (false !== strpos($columnName, 'conversion_rate')) {
             $this->config->filters[] = array('ColumnCallbackReplace', array($columnName, $setRatePercent));
         }
     }
     $formatPercent = function ($value) use($idSite) {
         return MetricsFormatter::getPrettyMoney(sprintf("%.1f", $value), $idSite);
     };
     foreach ($this->config->columns_to_display as $columnName) {
         if ($this->isRevenueColumn($columnName)) {
             $this->config->filters[] = array('ColumnCallbackReplace', array($columnName, $formatPercent));
         }
     }
     // this ensures that the value is set to zero for all rows where the value was not set (no conversion)
     $identityFunction = function ($value) {
         return $value;
     };
     foreach ($this->config->columns_to_display as $columnName) {
         if (!$this->isRevenueColumn($columnName)) {
             $this->config->filters[] = array('ColumnCallbackReplace', array($columnName, $identityFunction));
         }
     }
 }
Esempio n. 2
0
 protected function addFilter_money()
 {
     $moneyFilter = new Twig_SimpleFilter('money', function ($amount) {
         if (func_num_args() != 2) {
             throw new Exception('the money modifier expects one parameter: the idSite.');
         }
         $idSite = func_get_args();
         $idSite = $idSite[1];
         return MetricsFormatter::getPrettyMoney($amount, $idSite);
     });
     $this->twig->addFilter($moneyFilter);
 }
Esempio n. 3
0
 protected function applyPrettyMoney(&$sites)
 {
     foreach ($sites as $idsite => &$site) {
         $revenue = "-";
         if (!empty($site['revenue'])) {
             $revenue = MetricsFormatter::getPrettyMoney($site['revenue'], $site['idsite'], $htmlAllowed = false);
         }
         $site['revenue'] = '"' . $revenue . '"';
     }
 }