路由
路由可以在用户访问页面时,将指定的模板页面展示给用户.
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的路由的实际网址
如开启了伪静态,访问网址为/mypage.html 关闭伪静态后为 /index.php/mypage.html