added a constant filter (refs #120)
authorFabien Potencier <fabien.potencier@gmail.com>
Sun, 12 Sep 2010 05:59:41 +0000 (07:59 +0200)
committerFabien Potencier <fabien.potencier@gmail.com>
Sun, 12 Sep 2010 06:00:21 +0000 (08:00 +0200)
CHANGELOG
doc/02-Twig-for-Template-Designers.markdown
lib/Twig/Extension/Core.php
test/Twig/Tests/Fixtures/filters/constant.test [new file with mode: 0644]

index 5f57cd7..b783fd1 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,7 @@ Backward incompatibilities:
  * the odd and even filters are now tests:
      {{ foo|odd }} must now be written {{ foo is odd }}
 
+ * added a "constant" filter
  * added a "constant" test
  * fixed objects with __toString() not being autoescaped
  * fixed subscript expressions when calling __call() (methods now keep the case)
index 6f8c972..f93939b 100644 (file)
@@ -1198,6 +1198,13 @@ with automatic escaping enabled this variable will not be escaped.
       {{ var|safe }} {# var won't be escaped #}
     {% autoescape off %}
 
+### `constant` (new in Twig 0.9.9)
+
+`constant` returns the constant value for a given string:
+
+    [twig]
+    {{ some_date|date('DATE_W3C'|constant) }}
+
 List of built-in Tests (new in Twig 0.9.9)
 ------------------------------------------
 
index 725816f..695aa9f 100644 (file)
@@ -53,6 +53,7 @@ class Twig_Extension_Core extends Twig_Extension
             'upper'      => new Twig_Filter_Function('strtoupper'),
             'lower'      => new Twig_Filter_Function('strtolower'),
             'striptags'  => new Twig_Filter_Function('strip_tags'),
+            'constant'   => new Twig_Filter_Function('twig_constant_filter'),
 
             // array helpers
             'join'    => new Twig_Filter_Function('twig_join_filter'),
@@ -198,6 +199,11 @@ function twig_cycle_filter($values, $i)
     return $values[$i % count($values)];
 }
 
+function twig_constant_filter($constant)
+{
+    return constant($constant);
+}
+
 /*
  * Each type specifies a way for applying a transformation to a string
  * The purpose is for the string to be "escaped" so it is suitable for
diff --git a/test/Twig/Tests/Fixtures/filters/constant.test b/test/Twig/Tests/Fixtures/filters/constant.test
new file mode 100644 (file)
index 0000000..d630038
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+"constant" filter
+--TEMPLATE--
+{{ date|date('DATE_W3C'|constant) }}
+--DATA--
+$d = date_default_timezone_get();
+date_default_timezone_set('UTC');
+$ret = array('date' => strtotime('2005-10-15 10:00:01'));
+date_default_timezone_set($d);
+return $ret;
+--EXPECT--
+2005-10-15T10:00:01+00:00