重度使用过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}'}

  到此结束,大家可以自己体验效果,也可以参考他们想出新花样。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线