[limb-svn] r6530 - in 3.x/trunk/limb/web_app: src/template/tags/request tests/cases/plain/template/tags/request
svn at limb-project.com
svn at limb-project.com
Tue Nov 20 10:28:07 MSK 2007
Author: serega
Date: 2007-11-20 10:28:07 +0300 (Tue, 20 Nov 2007)
New Revision: 6530
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6530
Modified:
3.x/trunk/limb/web_app/src/template/tags/request/route_url.tag.php
3.x/trunk/limb/web_app/src/template/tags/request/route_url_set.tag.php
3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlSetTagTest.class.php
3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlTagTest.class.php
Log:
-- added possibility to use spaces inside route_url, route_url_set tags in 'params' attribute, e.g. <route_url params="controller: some_controller, action: some_action">
Modified: 3.x/trunk/limb/web_app/src/template/tags/request/route_url.tag.php
===================================================================
--- 3.x/trunk/limb/web_app/src/template/tags/request/route_url.tag.php 2007-11-19 19:31:46 UTC (rev 6529)
+++ 3.x/trunk/limb/web_app/src/template/tags/request/route_url.tag.php 2007-11-20 07:28:07 UTC (rev 6530)
@@ -28,14 +28,17 @@
if(isset($this->attributeNodes['route']))
$code->writePhp($route. ' = "'. $this->attributeNodes['route']->getValue() . '";');
+ $fake_params = '$' . $code->getTempVariable();
$params = '$' . $code->getTempVariable();
+ $code->writePhp($fake_params . ' = array();');
$code->writePhp($params . ' = array();');
if(isset($this->attributeNodes['params']))
{
- $code->writePhp($params . ' = lmbArrayHelper :: explode(",", ":",');
+ $code->writePhp($fake_params . ' = lmbArrayHelper :: explode(",", ":",');
$this->attributeNodes['params']->generateExpression($code);
$code->writePhp(');');
+ $code->writePhp('foreach(' . $fake_params . ' as $key => $value) ' . $params . '[trim($key)] = trim($value);');
}
if($this->getBoolAttribute('skip_controller')) $skip_controller = 'true';
Modified: 3.x/trunk/limb/web_app/src/template/tags/request/route_url_set.tag.php
===================================================================
--- 3.x/trunk/limb/web_app/src/template/tags/request/route_url_set.tag.php 2007-11-19 19:31:46 UTC (rev 6529)
+++ 3.x/trunk/limb/web_app/src/template/tags/request/route_url_set.tag.php 2007-11-20 07:28:07 UTC (rev 6530)
@@ -22,14 +22,17 @@
if(isset($this->attributeNodes['route']))
$code->writePhp($route. ' = "'. $this->attributeNodes['route']->getValue() . '";');
+ $fake_params = '$' . $code->getTempVariable();
$params = '$' . $code->getTempVariable();
+ $code->writePhp($fake_params . ' = array();');
$code->writePhp($params . ' = array();');
if(isset($this->attributeNodes['params']))
{
- $code->writePhp($params . ' = lmbArrayHelper :: explode(",",":",');
+ $code->writePhp($fake_params . ' = lmbArrayHelper :: explode(",",":",');
$this->attributeNodes['params']->generateExpression($code);
$code->writePhp(');');
+ $code->writePhp('foreach(' . $fake_params . ' as $key => $value) ' . $params . '[trim($key)] = trim($value);');
}
$skip_controller = '$' . $code->getTempVariable();
Modified: 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlSetTagTest.class.php
===================================================================
--- 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlSetTagTest.class.php 2007-11-19 19:31:46 UTC (rev 6529)
+++ 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlSetTagTest.class.php 2007-11-20 07:28:07 UTC (rev 6530)
@@ -28,7 +28,25 @@
$expected = lmbToolkit :: instance()->getRoutesUrl(array('controller' => 'news', 'action' => 'archive'), 'news');
$this->assertEqual($page->capture(), $expected);
}
+
+ function testPutUrlwithSpaces()
+ {
+ $config = array('blog' => array('path' => '/blog/:controller/:action'),
+ 'news' => array('path' => '/:controller/:action'));
+ $routes = $this->_createRoutes($config);
+
+ $template = '<route_url_set field="url" route="news" params="controller: news, action: archive"/>' .
+ '{$url}';
+
+ $this->registerTestingTemplate('/limb/routes_tag_static_spaces.html', $template);
+
+ $page = $this->initTemplate('/limb/routes_tag_static_spaces.html');
+
+ $expected = lmbToolkit :: instance()->getRoutesUrl(array('controller' => 'news', 'action' => 'archive'), 'news');
+ $this->assertEqual($page->capture(), $expected);
+ }
+
function testWithDynamicParams()
{
$config = array('blog' => array('path' => '/blog/:controller/:action'),
Modified: 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlTagTest.class.php
===================================================================
--- 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlTagTest.class.php 2007-11-19 19:31:46 UTC (rev 6529)
+++ 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlTagTest.class.php 2007-11-20 07:28:07 UTC (rev 6530)
@@ -29,6 +29,24 @@
$this->assertEqual($page->capture(), $expected);
}
+ function testAllParamsWithSpaces()
+ {
+ $config = array('blog' => array('path' => '/blog/:controller/:action'),
+ 'news' => array('path' => '/:controller/:action'));
+
+ $routes = $this->_createRoutes($config);
+
+ $template = '<route_url route="news" params="controller:news, action: archive" onclick="something"></route_url>';
+
+ $this->registerTestingTemplate('/limb/route_url_tag_static_attributes_spaces.html', $template);
+
+ $page = $this->initTemplate('/limb/route_url_tag_static_attributes_spaces.html');
+
+ $url = lmbToolkit :: instance()->getRoutesUrl(array('controller' => 'news', 'action' => 'archive'), 'news');
+ $expected = '<a onclick="something" href="'. $url . '"></a>';
+ $this->assertEqual($page->capture(), $expected);
+ }
+
function testWithDynamicParams()
{
$config = array('blog' => array('path' => '/blog/:controller/:action'),
More information about the limb-svn
mailing list