Pbootcms新建自定义标签

当系统内自带的标签不符合我们自己的需求时,就要自定义一个了,以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。

————————————————

版权声明:本文为CSDN博主「魁哥爱吃黄焖鸡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/foreverlikui/article/details/125261508




联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com