ClassCMS

路由

路由可以在用户访问页面时,将指定的模板页面展示给用户.

route方法

应用主文件内 route方法,返回当前应用的路由列表.

function route(){
    $routes=array();
    $routes[]=array('hash'=>'mypage','uri'=>'mypage.html','function'=>'mypage','view'=>'1.php','enabled'=>1);
    $routes[]=array('hash'=>'mypage2','uri'=>'mypage2.html','function'=>'mypage2','view'=>'2.php','enabled'=>1);
    Return $routes;
}

hash为当前路由的标识,不能与当前应用下的路由重复(包括应用内的模型标识).

uri为路由的网址,支持匹配写法,如:/mypage/(id)/,/mypage/(name)/,匹配到的参数会保存在$_GET数组中

enabled为是否启用路由

function 为路由的方法,如方法在应用模块中,则为模块名:方法名

view 为模板页面,可以不填写.php后缀

function与view必须填写其中一项,function也可使用V函数载入模板,function如果返回了数组,可以在view中调用.

当应用在后台(启用,更新,后台应用设置保存)时,路由列表会存入数据库中.

搭配应用变量使用

ClassCMS后台内置了简单的应用设置页面,可以编辑应用变量,详见:应用主文件 config 应用变量.

搭配应用变量,可以简单的启停某个路由,如:

<?php
class test{
    function config(){
        $configs=array();
        $configs[]=array('configname'=>'启用页面','hash'=>'ifroute','inputhash'=>'switch','tips'=>'','tabname'=>'hook','defaultvalue'=>'1');
        Return $configs;
    }
    function route(){
        $routes=array();
        if(config('ifroute')) {
            $routes[]=array('hash'=>'mypage','uri'=>'mypage.html','function'=>'mypage','view'=>'1.php','enabled'=>1);
            $routes[]=array('hash'=>'mypage2','uri'=>'mypage2.html','function'=>'mypage2','view'=>'2.php','enabled'=>1);
            $routes[]=array('hash'=>'mypage3','uri'=>'mypage_(id).(ext)','function'=>'mypage2','view'=>'2.php','enabled'=>1);
        }
        Return $routes;
    }
}
?>

获取路由网址

如某个路由的uri为mypage.html,由于ClassCMS开启关闭伪静态,子目录会导致uri变化.

可以使用route函数获取对应路由的实际网址.

<?php
route('mypage');//标识为mypage的路由的实际网址

如开启了伪静态,则实际网址为/index.php/mypage.html 关闭伪静态后为 /mypage.html