diff --git a/common/framework/router.php b/common/framework/router.php index 8920f1613..3b68648eb 100644 --- a/common/framework/router.php +++ b/common/framework/router.php @@ -363,6 +363,11 @@ class Router $internal_url = self::_insertRouteVars($result, $args2); return $args[$prefix_type] . ($internal_url ? ('/' . $internal_url) : ''); } + elseif ($args['act'] === $action_info->default_index_act && !count($args2)) + { + self::$_route_cache[$rewrite_level][$keys_string] = '$' . $prefix_type . '$act:delete'; + return $args[$prefix_type]; + } } // Check other modules for $act. diff --git a/tests/unit/framework/RouterTest.php b/tests/unit/framework/RouterTest.php index 8d96d1be5..9b9d3ae50 100644 --- a/tests/unit/framework/RouterTest.php +++ b/tests/unit/framework/RouterTest.php @@ -31,6 +31,16 @@ class RouterTest extends \Codeception\TestCase\Test getController('module')->registerActionForwardRoutes('member'); + $args = array('mid' => 'board', 'act' => 'dispBoardContent'); + $this->assertEquals('board', Rhymix\Framework\Router::getURL($args, 2)); + $this->assertEquals('index.php?mid=board&act=dispBoardContent', Rhymix\Framework\Router::getURL($args, 1)); + $this->assertEquals('index.php?mid=board&act=dispBoardContent', Rhymix\Framework\Router::getURL($args, 0)); + + $args = array('mid' => 'board', 'page' => 3); + $this->assertEquals('board/page/3', Rhymix\Framework\Router::getURL($args, 2)); + $this->assertEquals('board?page=3', Rhymix\Framework\Router::getURL($args, 1)); + $this->assertEquals('index.php?mid=board&page=3', Rhymix\Framework\Router::getURL($args, 0)); + $args = array('mid' => 'board', 'document_srl' => 123); $this->assertEquals('board/123', Rhymix\Framework\Router::getURL($args, 2)); $this->assertEquals('board/123', Rhymix\Framework\Router::getURL($args, 1));