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)); } } }
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); }
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 . '"'; } }