迅睿cms程序默认一篇内容只有一个url地址和选一个内容页模板,如果还需要为这个内容创建多个页面,例如天客隆模板网每个模板都有一个演示页链接。这种情况我们可以使用新建控制器的方式来做新url地址构成。
实现方法
1、新建控制器
以news模块为例,复制原有文件 dayrui/App/News/Controllers/Show.php 粘贴为Demo.php,内容做一下变更,示例代码如下:
_module_init();
$data = $this->_Show(
(int)\Phpcmf\Service::L('Input')->get('id'),
[
'field' => dr_safe_replace(\Phpcmf\Service::L('Input')->get('field')),
'value' => dr_safe_replace(\Phpcmf\Service::L('Input')->get('value')),
],
max(1, (int)\Phpcmf\Service::L('Input')->get('page')),
1
);
// 这里指定新的模板
\Phpcmf\Service::V()->display("show_demo.html");
}
}
2、设置伪静态
通过上面的控制器就实现了内容的第二个地址,默认访问地址就是 /index.php?s=news&c=demo&id=1 ,最后设置伪静态规则,打开config/rewrite.php 添加代码:
"show\-([0-9]+)\-demo\.html(.*)" => 'index.php?s=news&c=demo&id=$1',
这样地址就变为了 show-123-demo.html 格式的伪静态。
开发提示
以上仅为示例,实际二次开发时,根据实际情况参考修改模块名称、模板名称、伪静态规则。