[limb-svn] r6507 - in 3.x/trunk/limb/macro: src src/filters tests/cases tests/cases/filters

svn at limb-project.com svn at limb-project.com
Thu Nov 8 17:44:04 MSK 2007


Author: serega
Date: 2007-11-08 17:44:04 +0300 (Thu, 08 Nov 2007)
New Revision: 6507
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6507

Added:
   3.x/trunk/limb/macro/src/filters/date.filter.php
   3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php
   3.x/trunk/limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php
   3.x/trunk/limb/macro/src/filters/number_format.filter.php
   3.x/trunk/limb/macro/src/filters/strtolower.filter.php
   3.x/trunk/limb/macro/src/filters/ucfirst.filter.php
   3.x/trunk/limb/macro/tests/cases/filters/
   3.x/trunk/limb/macro/tests/cases/filters/lmbMacroDateFilterTest.class.php
   3.x/trunk/limb/macro/tests/cases/filters/lmbMacroHtmlSpecialCharsFilterTest.class.php
   3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php
   3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php
   3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToUpperFilterTest.class.php
   3.x/trunk/limb/macro/tests/cases/filters/lmbMacroTrimFilterTest.class.php
   3.x/trunk/limb/macro/tests/cases/filters/lmbMacroUcFirstFilterTest.class.php
Modified:
   3.x/trunk/limb/macro/src/filters/strtoupper.filter.php
   3.x/trunk/limb/macro/src/filters/trim.filter.php
   3.x/trunk/limb/macro/src/lmbMacroExpressionNode.class.php
   3.x/trunk/limb/macro/src/lmbMacroFilter.class.php
   3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php
Log:
-- added several basic filter: strtoupper, strtolowe, htmlspecialchars, number_format. 
-- fixes a couple of small issues concerning with filters

Added: 3.x/trunk/limb/macro/src/filters/date.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/date.filter.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/src/filters/date.filter.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,24 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/lmbMacroFilter.class.php');
+ 
+/**
+ * class lmbMacroDateFilter.
+ *
+ * @filter date
+ * @package macro
+ * @version $Id$
+ */ 
+class lmbMacroDateFilter extends lmbMacroFilter
+{
+  function getValue()
+  {
+    return 'date(' . $this->params[0].', ' . $this->base->getValue() . ')';
+  }  
+} 

Added: 3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,22 @@
+<?php 
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php');
+
+/**
+ * class lmbMacroHtmlSpecialCharsFilter.
+ *
+ * @filter htmlspecialchars
+ * @package macro
+ * @version $Id$
+ */ 
+class lmbMacroHtmlSpecialCharsFilter extends lmbMacroPhpFunctionBasedFilter
+{
+  protected $function = 'htmlspecialchars';
+  protected $params = array(ENT_QUOTES);
+} 

Added: 3.x/trunk/limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,31 @@
+<?php 
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/lmbMacroFilter.class.php');
+
+/**
+ * class lmbMacroStrToUpperFilter.
+ *
+ * @filter strtoupper
+ * @package macro
+ * @version $Id$
+ */ 
+abstract class lmbMacroPhpFunctionBasedFilter extends lmbMacroFilter
+{
+  protected $function;
+  
+  function getValue()
+  {
+    $res = $this->function .'(' . $this->base->getValue();
+    foreach($this->params as $param)
+      $res .= ',' . $param;
+    
+    $res .= ')';
+    return $res;
+  }
+} 

Added: 3.x/trunk/limb/macro/src/filters/number_format.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/number_format.filter.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/src/filters/number_format.filter.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,21 @@
+<?php 
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php');
+
+/**
+ * class lmbMacroNumberFormatFilter.
+ *
+ * @filter number_format
+ * @package macro
+ * @version $Id$
+ */ 
+class lmbMacroNumberFormatFilter extends lmbMacroPhpFunctionBasedFilter
+{
+  protected $function = 'number_format';
+} 

Added: 3.x/trunk/limb/macro/src/filters/strtolower.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/strtolower.filter.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/src/filters/strtolower.filter.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,21 @@
+<?php 
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php');
+
+/**
+ * class lmbMacroStrToLowerFilter.
+ *
+ * @filter strtolower
+ * @package macro
+ * @version $Id$
+ */ 
+class lmbMacroStrToLowerFilter extends lmbMacroPhpFunctionBasedFilter
+{
+  protected $function = 'strtolower';
+} 

Modified: 3.x/trunk/limb/macro/src/filters/strtoupper.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/strtoupper.filter.php	2007-11-08 13:27:15 UTC (rev 6506)
+++ 3.x/trunk/limb/macro/src/filters/strtoupper.filter.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -1,4 +1,13 @@
 <?php 
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php');
+
 /**
  * class lmbMacroStrToUpperFilter.
  *
@@ -6,10 +15,7 @@
  * @package macro
  * @version $Id$
  */ 
-class lmbMacroStrToUpperFilter extends lmbMacroFilter
+class lmbMacroStrToUpperFilter extends lmbMacroPhpFunctionBasedFilter
 {
-  function getValue()
-  {
-    return 'strtoupper(' . $this->base->getValue() . ')';
-  }
+  protected $function = 'strtoupper';
 } 

Modified: 3.x/trunk/limb/macro/src/filters/trim.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/trim.filter.php	2007-11-08 13:27:15 UTC (rev 6506)
+++ 3.x/trunk/limb/macro/src/filters/trim.filter.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -1,4 +1,13 @@
-<?php 
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php');
+ 
 /**
  * class lmbMacroTrimFilter.
  *
@@ -6,13 +15,7 @@
  * @package macro
  * @version $Id$
  */ 
-class lmbMacroTrimFilter extends lmbMacroFilter
+class lmbMacroTrimFilter extends lmbMacroPhpFunctionBasedFilter
 {
-  function getValue()
-  {
-    if(!isset($this->params[0]))
-      return 'trim(' . $this->base->getValue() . ')';
-    else
-      return 'trim(' . $this->base->getValue() . ', ' . $this->params[0] . ')';
-  }
+  protected $function = 'trim';
 } 

Added: 3.x/trunk/limb/macro/src/filters/ucfirst.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/ucfirst.filter.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/src/filters/ucfirst.filter.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,21 @@
+<?php 
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/macro/src/filters/lmbMacroPhpFunctionBasedFilter.class.php');
+
+/**
+ * class lmbMacroUcFirstFilter.
+ *
+ * @filter ucfirst
+ * @package macro
+ * @version $Id$
+ */ 
+class lmbMacroUcFirstFilter extends lmbMacroPhpFunctionBasedFilter
+{
+  protected $function = 'ucfirst';
+} 

Modified: 3.x/trunk/limb/macro/src/lmbMacroExpressionNode.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/lmbMacroExpressionNode.class.php	2007-11-08 13:27:15 UTC (rev 6506)
+++ 3.x/trunk/limb/macro/src/lmbMacroExpressionNode.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -85,7 +85,8 @@
 
     $filter_class = $filter_info->getClass();
     $filter = new $filter_class($base);
-    $filter->setParams($params);
+    if(sizeof($params))
+      $filter->setParams($params);
     return $filter;
   }
 

Modified: 3.x/trunk/limb/macro/src/lmbMacroFilter.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/lmbMacroFilter.class.php	2007-11-08 13:27:15 UTC (rev 6506)
+++ 3.x/trunk/limb/macro/src/lmbMacroFilter.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -17,7 +17,7 @@
 abstract class lmbMacroFilter implements lmbMacroExpressionInterface
 {
   protected $base;
-  protected $params;
+  protected $params = array();
 
   function __construct($base)
   {

Modified: 3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php	2007-11-08 13:27:15 UTC (rev 6506)
+++ 3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -38,7 +38,7 @@
     $dirs = $config->getFiltersScanDirectories();
     foreach($dirs as $dir)
     {
-      foreach(lmb_glob($dir . '/*.tag.php') as $file)
+      foreach(lmb_glob($dir . '/*.filter.php') as $file)
         $dictionary->registerFromFile($file);
     }
 

Added: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroDateFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroDateFilterTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroDateFilterTest.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,22 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+
+class lmbMacroDateFilterTest extends lmbBaseMacroTest
+{
+  function testSimple()
+  {
+    $code = '{$#var|date:"Y-m-d"}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $time = mktime(0, 0, 0, 5, 2, 2007);
+    $tpl->set('var', $time);
+    $out = $tpl->render();
+    $this->assertEqual($out, '2007-05-02');
+  }
+}
+

Added: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroHtmlSpecialCharsFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroHtmlSpecialCharsFilterTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroHtmlSpecialCharsFilterTest.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,21 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+
+class lmbMacroHtmlSpecialCharsFilterTest extends lmbBaseMacroTest
+{
+  function testSimple()
+  {
+    $code = '{$#var|htmlspecialchars}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', '<hello>');
+    $out = $tpl->render();
+    $this->assertEqual($out, '&lt;hello&gt;');
+  }
+}
+

Added: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,30 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+
+class lmbMacroNumberFormatFilterTest extends lmbBaseMacroTest
+{
+  function testNoParams()
+  {
+    $code = '{$#var|number_format}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', 1234.56);
+    $out = $tpl->render();
+    $this->assertEqual($out, '1,235');
+  }
+  
+  function testWithParams()
+  {
+    $code = '{$#var|number_format:2,","," "}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', 1234.56);
+    $out = $tpl->render();
+    $this->assertEqual($out, '1 234,56');
+  }
+}
+

Added: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,21 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+
+class lmbMacroStrToLowerFilterTest extends lmbBaseMacroTest
+{
+  function testSimple()
+  {
+    $code = '{$#var|strtolower}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', 'HELLO');
+    $out = $tpl->render();
+    $this->assertEqual($out, 'hello');
+  }
+}
+

Added: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToUpperFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToUpperFilterTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToUpperFilterTest.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,21 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+
+class lmbMacroStrToUpperFilterTest extends lmbBaseMacroTest
+{
+  function testSimple()
+  {
+    $code = '{$#var|strtoupper}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', 'hello');
+    $out = $tpl->render();
+    $this->assertEqual($out, 'HELLO');
+  }
+}
+

Added: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroTrimFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroTrimFilterTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroTrimFilterTest.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,30 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+
+class lmbMacroTrimFilterTest extends lmbBaseMacroTest
+{
+  function testNoParams()
+  {
+    $code = '{$#var|trim}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', '  hello  ');
+    $out = $tpl->render();
+    $this->assertEqual($out, 'hello');
+  }
+  
+  function testWithParam()
+  {
+    $code = '{$#var|trim:"/"}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', '/hello/');
+    $out = $tpl->render();
+    $this->assertEqual($out, 'hello');
+  }
+}
+

Added: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroUcFirstFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroUcFirstFilterTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroUcFirstFilterTest.class.php	2007-11-08 14:44:04 UTC (rev 6507)
@@ -0,0 +1,21 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+
+class lmbMacroUcFirstFilterTest extends lmbBaseMacroTest
+{
+  function testSimple()
+  {
+    $code = '{$#var|ucfirst}';
+    $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+    $tpl->set('var', 'hello');
+    $out = $tpl->render();
+    $this->assertEqual($out, 'Hello');
+  }
+}
+



More information about the limb-svn mailing list