迅睿多个内容页:给内容创建多个模板和地址

建站教程

需求:默认一篇内容只有一个地址和模板,就如【show-123.html】,这种地址表示内容详情页面;如果还需要为这个内容创建多个页面,例如【show-123-two.html】等。

实现原理:

使用新建控制器的方式来做新url地址构成。

实现方法:

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

2、粘贴为Two.php,内容做一下变更:

<?php namespace Phpcmf\Controllers;

/**

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

 */

// 这里改成和文件名一样的名字

class Two 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_two.html");

    }

}

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

/index.php?s=news&c=two&id=123

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

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

-----------------------------

需要多加文件的话,可以重复【1~4】的步骤,并重新把two进行命名,改名字即可。

也许您对下面的内容还感兴趣: