zdcms内容页增加多个模板和URL方法

在用zdcms做网站时遇到这样的需求:在默认内容页show-1.html基础上,给它创建多个模板页面,例如show-1-showa.html,用于在一些特殊场景中多种内容不同样式展现时使用,应该如何实现呢?

其实很简单,我们只要把原版内容页的控制器复制一份,然后创建一个新建控制器来做另一个模板和url地址即可。具体代码如下:

1. 以news模块为例,复制原版控制器文件 dayrui/App/News/Controllers/Show.php

2. 改名为Showa.php,内容做一下变更:

<?php namespace Phpcmf\Controllers;

/**
 * 二次开发时可以修改本文件,不影响升级覆盖
 */

// 这里改成和文件名一样的名字
class Showa 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("showa.html");
    }


}


3. 默认访问地址就是这样:

/index.php?s=news&c=showa&id=1


4. 设置【show-1-showa.html】格式的伪静态,打开config/rewrite.php追加:

"show\-([0-9]+)\-showa\.html(.*)"  => 'index.php?s=news&c=showa&id=$2',



评论