Added nicenumber twig filter

This commit is contained in:
Andy Miller
2017-07-19 14:28:57 -06:00
parent 039d2286fb
commit 6fadaa0789
2 changed files with 26 additions and 0 deletions

View File

@@ -7,6 +7,7 @@
* Added `Grav\Framework\Object` classes for creating collections of objects
* Added `Grav\Framework\Page` interfaces
* Deprecated GravTrait
* Added `|nicenumber` Twig filter
1. [](#improved)
* Make it possible to include debug bar also into non-HTML responses

View File

@@ -66,6 +66,7 @@ class TwigExtension extends \Twig_Extension
new \Twig_SimpleFilter('*ize', [$this, 'inflectorFilter']),
new \Twig_SimpleFilter('absolute_url', [$this, 'absoluteUrlFilter']),
new \Twig_SimpleFilter('contains', [$this, 'containsFilter']),
new \Twig_SimpleFilter('nicenumber', [$this, 'niceNumberFunc']),
new \Twig_SimpleFilter('defined', [$this, 'definedDefaultFilter']),
new \Twig_SimpleFilter('ends_with', [$this, 'endsWithFilter']),
new \Twig_SimpleFilter('fieldName', [$this, 'fieldNameFilter']),
@@ -1048,4 +1049,28 @@ class TwigExtension extends \Twig_Extension
{
return pathinfo($var);
}
/**
* Returns a nicer more readable number
*
* @param $number
* @return bool|string
*/
public function niceNumberFunc($n)
{
// first strip any formatting;
$n = (0+str_replace(",", "", $n));
// is this a number?
if (!is_numeric($n)) return false;
// now filter it;
if ($n > 1000000000000) return round(($n/1000000000000), 2).' t';
elseif ($n > 1000000000) return round(($n/1000000000), 2).' b';
elseif ($n > 1000000) return round(($n/1000000), 2).' m';
elseif ($n > 1000) return round(($n/1000), 2).' k';
return number_format($n);
}
}