From 545d316d4dad434edfe5048807bfbe686f856259 Mon Sep 17 00:00:00 2001 From: diosmosis Date: Thu, 13 Nov 2014 18:22:49 -0800 Subject: Make MetricsFormatter a class with instance methods and move Html related functionality to derived class. Use FOrmatter in Metric::format calls so Metrics do not have to be aware of context of formatting, and so Metric::format methods will have less code redundancy. --- core/Twig.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'core/Twig.php') diff --git a/core/Twig.php b/core/Twig.php index 2e0ef95844..790de9ab3c 100755 --- a/core/Twig.php +++ b/core/Twig.php @@ -10,6 +10,7 @@ namespace Piwik; use Exception; use Piwik\DataTable\Filter\SafeDecodeLabel; +use Piwik\Metrics\Formatter; use Piwik\Period\Range; use Piwik\Translate; use Piwik\View\RenderTokenParser; @@ -35,6 +36,8 @@ class Twig */ private $twig; + private $formatter; + public function __construct() { $loader = $this->getDefaultThemeLoader(); @@ -45,6 +48,8 @@ class Twig $theme = $manager->getThemeEnabled(); $loaders = array(); + $this->formatter = new Formatter(); + //create loader for custom theme to overwrite twig templates if ($theme && $theme->getPluginName() != \Piwik\Plugin\Manager::DEFAULT_THEME) { $customLoader = $this->getCustomThemeLoader($theme); @@ -273,21 +278,23 @@ class Twig protected function addFilter_money() { - $moneyFilter = new Twig_SimpleFilter('money', function ($amount) { + $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]; - return MetricsFormatter::getPrettyMoney($amount, $idSite); + return $formatter->getPrettyMoney($amount, $idSite); }); $this->twig->addFilter($moneyFilter); } protected function addFilter_sumTime() { - $sumtimeFilter = new Twig_SimpleFilter('sumtime', function ($numberOfSeconds) { - return MetricsFormatter::getPrettyTimeFromSeconds($numberOfSeconds); + $formatter = $this->formatter; + $sumtimeFilter = new Twig_SimpleFilter('sumtime', function ($numberOfSeconds) use ($formatter) { + return $formatter->getPrettyTimeFromSeconds($numberOfSeconds); }); $this->twig->addFilter($sumtimeFilter); } -- cgit v1.2.3 From 6550ddbc1c47f0c982e0a13d80adb9b43ba7cceb Mon Sep 17 00:00:00 2001 From: diosmosis Date: Mon, 17 Nov 2014 18:37:41 -0800 Subject: Fix regression in some UI pages that format time using sumtime twig filter. --- core/Twig.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'core/Twig.php') diff --git a/core/Twig.php b/core/Twig.php index 806c7f433f..948185876b 100755 --- a/core/Twig.php +++ b/core/Twig.php @@ -293,7 +293,7 @@ class Twig { $formatter = $this->formatter; $sumtimeFilter = new Twig_SimpleFilter('sumtime', function ($numberOfSeconds) use ($formatter) { - return $formatter->getPrettyTimeFromSeconds($numberOfSeconds); + return $formatter->getPrettyTimeFromSeconds($numberOfSeconds, true); }); $this->twig->addFilter($sumtimeFilter); } -- cgit v1.2.3