[limb-svn] r5820 - 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
Mon May 7 14:34:13 MSD 2007
Author: dan82
Date: 2007-05-07 14:34:13 +0400 (Mon, 07 May 2007)
New Revision: 5820
URL: http://fisheye.limb-project.com/changelog/limb/?cs=5820
Modified:
3.x/trunk/limb/web_app/src/template/tags/request/route_url.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:
-- <route_url> tag now can optionally accepts "skip_controller" attribute. If this attribute has "true" value then dispatched controller will not be attached to params array what passed to lmbToolkit :: instance()->getRouteUrl() method.
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-05-07 09:08:30 UTC (rev 5819)
+++ 3.x/trunk/limb/web_app/src/template/tags/request/route_url.tag.php 2007-05-07 10:34:13 UTC (rev 5820)
@@ -11,7 +11,7 @@
*/
/**
* @tag route_url
-* @suppress_attributes params route extra
+* @suppress_attributes params route extra skip_controller
*/
class lmbRouteURLTag extends WactRuntimeComponentHTMLTag
{
@@ -34,6 +34,8 @@
$params = '$' . $code->getTempVariable();
$code->writePhp($params . ' = array();');
+
+
if(isset($this->attributeNodes['params']))
{
$this->attributeNodes['params']->generatePreStatement($code);
@@ -43,8 +45,12 @@
$this->attributeNodes['params']->generatePostStatement($code);
}
- $code->writePhp($href . '= lmbToolkit :: instance()->getRoutesUrl(' . $params . ', ' . $route .');');
-
+ if($this->getBoolAttribute('skip_controller')) $skip_controller = 'true';
+ else $skip_controller = 'false';
+
+ $this->removeAttribute('skip_controller');
+ $code->writePhp($href . '= lmbToolkit :: instance()->getRoutesUrl(' . $params . ', ' . $route .', ' . $skip_controller .');');
+
$this->removeAttribute('route');
$this->removeAttribute('params');
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-05-07 09:08:30 UTC (rev 5819)
+++ 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlSetTagTest.class.php 2007-05-07 10:34:13 UTC (rev 5820)
@@ -105,9 +105,9 @@
$template = '<route_url_set field="url" params="action:archive" skip_controller="true"/>' .
'{$url}';
- $this->registerTestingTemplate('/limb/routes_tag_route_with_skip_controller.html', $template);
+ $this->registerTestingTemplate('/limb/route_url_tag_with_skip_controller.html', $template);
- $page = $this->initTemplate('/limb/routes_tag_route_with_skip_controller.html');
+ $page = $this->initTemplate('/limb/route_url_tag_with_skip_controller.html');
$expected = $toolkit->getRoutesUrl(array('action' => 'archive'), null, $skip_controller = true);
$this->assertEqual($page->capture(), $expected);
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-05-07 09:08:30 UTC (rev 5819)
+++ 3.x/trunk/limb/web_app/tests/cases/plain/template/tags/request/lmbRouteUrlTagTest.class.php 2007-05-07 10:34:13 UTC (rev 5820)
@@ -10,6 +10,7 @@
* @package web_app
*/
lmb_require('limb/web_app/src/request/lmbRoutes.class.php');
+lmb_require('limb/web_app/src/controller/lmbController.class.php');
class lmbRouteUrlTagTest extends lmbWactTestCase
{
@@ -111,6 +112,31 @@
$this->assertEqual($page->capture(), $expected);
}
+
+ function testRouteWithSkipController()
+ {
+ $toolkit = lmbToolkit :: instance();
+ $toolkit->setDispatchedController(new lmbController());
+
+ $config = array('blog' => array('path' => '/blog/:action'));
+
+ $routes = $this->_createRoutes($config);
+
+ $template = '<route_url params="action:archive" skip_controller="true"/>';
+
+ $this->registerTestingTemplate('/limb/routes_tag_route_with_skip_controller.html', $template);
+
+ $page = $this->initTemplate('/limb/routes_tag_route_with_skip_controller.html');
+
+
+ $url = $toolkit->getRoutesUrl(array('action' => 'archive'), null, $skip_controller = true);
+ $expected = '<a href="'. $url . '" />';
+
+
+ $this->assertEqual($page->capture(), $expected);
+ }
+
+
function _createRoutes($config)
{
$routes = new lmbRoutes($config);
More information about the limb-svn
mailing list