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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值