Router 기능 추가

http://www.xpressengine.com/devForum/22568446

router 클래스를 추가하여 동적으로 rewrite rule을 추가할 수 있도록 수정했습니다.

module trigger나 애드온에서 rewrite rule을 추가할 수 있습니다.

ModuleHandler가 실행되기 전에 호출되기 때문에, 새로운 xml 스펙은 추가하지 않았습니다.

사용법은 아래와 같습니다.

애드온

```php
<?php
if(!defined('__XE__')) exit;

if($called_position == 'before_router_proc')
{
$oRouter->add('([a-zA-Z0-9_]+)/write', array('mid' => '$1', 'act', 'dispBoardWrite'));
}
?>
```

모듈

모듈에서 사용 시 트리거 등록
```php
$oModuleController->insertTrigger('router.proc', 'test', 'controller', 'triggerRouterTest', 'before');
```

controller에서 rewrite rule 추가
```php
<?php
class testController extends test
{

public function triggerRouterTest(&$oRouter)
{
    // mid/write 형식의 URL을 인식하도록
    $oRouter->add('([a-zA-Z0-9_]+)/write', array('mid' => '$1', 'act', 'dispBoardWrite'));

    $mid = Context::get('mid');
    $act = Context::get('act');
    $is_feed = ($act == 'rss' || $act == 'atom') ? TRUE : FALSE;

    // Context::getUrl()에서 mid/write 형식의 URL을 생성할 수 있도록 map 추가
    if($is_feed)
    {
        $oRouter->setMap('act.mid', "$mid/$act");
    }
    else
    {
        $oRouter->setMap('act.mid', ($act == 'dispBoardWrite') ? "$mid/write" : '');
    }
}
}
```