[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 © 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 © 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 © 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 © 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 © 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 © 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 © 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 © 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 © 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 © 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, '<hello>');
+ }
+}
+
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 © 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 © 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 © 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 © 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 © 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