迅睿cms制作模板演示页(给内容创建多个模板和地址)

迅睿cms程序默认一篇内容只有一个url地址和选一个内容页模板,如果还需要为这个内容创建多个页面,例如天客隆模板网每个模板都有一个演示页链接。这种情况我们可以使用新建控制器的方式来做新url地址构成。

实现方法

1、新建控制器

以news模块为例,复制原有文件 dayrui/App/News/Controllers/Show.php 粘贴为Demo.php,内容做一下变更,示例代码如下:


<?php namespace Phpcmf\Controllers;
/**
 * 二次开发时可以修改本文件,不影响升级覆盖
 */
// 这里改成和文件名一样的名字
class Demo extends \Phpcmf\Home\Module
{
    public function index() {
        $this->_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 格式的伪静态。

开发提示

以上仅为示例,实际二次开发时,根据实际情况参考修改模块名称、模板名称、伪静态规则。