欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > pbootcms教程 >
pbootcms教程

PbootCms新建自定义标签

(元素模板) / 2022-08-01 09:39

当系统内自带的标签不符合我们自己的需求时,就要自定义一个了,以block为例(调用固定内容,虽然系统内有公用标签,但是在后台的展示不太友好,还是决定自己写一个)。

模版:

{pboot:block id='2'/}

模版标签控制器控制器:

在这个文件中,需要写一个自定义标签方法:
 
 public function parserBLock($content){
        $pattern = '/\{pboot:block(\s+[^}]+)?\}/';
        if (preg_match_all($pattern, $content, $matches)) {
            $count = count($matches[0]);
            for ($i = 0; $i < $count; $i ++) {
                $params = $this->parserParam($matches[0][$i]);
                $data = '';
                foreach ($params as $key => $value) {
                    switch ($key) {
                        case 'id':
                            $data = $this->model->getBlockContent($value);
                            //return $data['value'];
                            //print_r($data);exit();
                            break;
                            /*$data = $this->model->getContent($value)->content; // 获取到的文章id去获取文章内容
                            $data = testreplace($data);*/
 
                    }
                }
                if (! $data) { // 无内容不解析
                    continue;
                }
                $content = $data['value'];
            }
        }
        return $content;
    }
同时还需要在ParseModel文件中,添加一条获取数据的方法:
 
public function getBlockContent($id){
        return parent::table('ay_block')->where(['id'=>$id])->decode()->find(1);
}
最后在parseController中parseAfter方法中,添加上我们自定义的方法即可。
 
注意:在find的时候,加进去1的参数,即可输出php数组,默认是stdObject。
 
Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com