CMS插件使用markdown编辑器后付费内容的设置

发布于 2021-11-09 16:46:40

因为喜欢使用markdown来写文章,所以将fastadmin的后台文本编辑器改用了markdown编辑器,但随之而来的问题是,前台文章因为没有markdown语法渲染,所有显示的杂乱无章的.

前台选用 HyperDown 对文本进行md语法渲染并显示.

md语法解析html代码

$parser = new MarkdownParser();
$value = $parser->makeHtml($value);

但是又遇到了一个新问题,原cms中的付费查看文章信息的功能无法正常使用,因为原<paid></paid>####paidbegin####两种语法都无法在md下正常解析,所以我将默认的付费内容标签换了一个其他的字符,然后功能又可以重新使用了.

public function getContentAttr($value, $data)
{
    $parser = new MarkdownParser();
    $value = $parser->makeHtml($value);
    //如果内容中包含有付费标签
    $value = str_replace(['[pay_start]', '[pay_end]'], ['<paid>', '</paid>'], $value);
    
    $pattern = '/<paid>(.*?)<\/paid>/is';
    if (preg_match($pattern, $value) && !$this->getAttr('ispay')) {
        $value = preg_replace($pattern, "<div class='alert alert-warning alert-paid'>内容已经隐藏,付费后查看</div>", $value);
    }
    return $value;
}

本修改方案可能会影响后续cms插件的升级,如有使用请酌情考虑.

Bug天天改,头发日日疏,码字不易,如果有帮助到你,就点击"下方感谢"支持一下把.

©声明:本站所有文章,如无特殊说明或标注,均为izhnagbo.cn原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。本文链接 https://www.izhangbo.cn/article/42.html
0 条评论

学习
记录

发布
问题