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