重度使用过PbootCMS就会发现默认的标签放在php代码里无法操作
优采云 发布时间: 2021-07-16 18:46重度使用过PbootCMS就会发现默认的标签放在php代码里无法操作
如需要前端剪图、快速仿站点、网站modification、网站移家、Pbootcms二次开发等服务,可联系客服提供收费服务!
本文涉及第二开篇的内容,新手请勿尝试!如果你严重使用过Pbootcms,你会发现在php代码中无法操作默认标签,例如:
图中这两个都不能实现,所以如果需要替换一个内容或者其他需要一个方法来执行怎么办。通过查看content的tag源码,发现上手比较困难,所以既然没有原生php,能否自己制作一个tag代码,具体替换文章内容,具体方法放上在标签源码中,直接做,其他类似的需求都可以用这个方法解决。
如何操作
1、去\apps\home\controller\ParserController.php 在标签解析器中添加标签
$content = $this->parserContentReplaceLabel($content); // 通用内容替换标签 @mk-content_replace
截图:
2、为了完善这个标签的功能,在最后添加如下功能代码。该代码收录一个自定义方法,该方法添加到 \apps\common\funciton.php。
2020-04-08更新获取文章id,然后使用数据库查询获取文章内容。
// 通用内容替换标签 @mk-content_replace
public function parserContentReplaceLabel($content)
{
$pattern = '/\{pboot:contentreplace(\s+[^}]+)?\}/';
if (preg_match_all($pattern, $content, $matches)) {
$count = count($matches[0]);
for ($i = 0; $i parserParam($matches[0][$i]);
$data = '';
foreach ($params as $key => $value) {
switch ($key) {
case 'content':
$data = $this->model->getContent($value)->content; // 获取到的文章id去获取文章内容
$data = testreplace($data); //testreplace方法为自定义方法,在\apps\common\function.php里
break;
}
}
if (! $data) { // 无内容不解析
continue;
}
$content = str_replace($matches[0][$i], $data, $content);
}
}
return $content;
}
截图:
自定义添加截图的方法:
前台使用
完成以上步骤后,新标签生效,前台调用代码
{pboot:contentreplace content=''}
里面的'xxxx'替换为你要替换的内容调用代码(需要单引号),比如文章details page
2020-04-08更新:如果直接使用这里的内容,html标签会被去掉,所以提交文章id。
{pboot:contentreplace content='{content:id}'}
到此结束,大家可以自己体验效果,也可以参考他们想出新花样。