PbootCMS博客微语

名称:PbootCMS博客微语
价格:免费
作者:Marc  QQ:1801233226
购买:直接在线支付或联系作者购买

微语管理此为单独为博客扩展的一个小功能,本来是自己博客使用,昨晚有网友来咨询这块,想给自己的PB搭建的博客扩展,所以今天就分享下已开发的相关文件,照着以下教程操作即可,需要一定动手能力,小白勿试!对于不需要这块功能的也可以看这边文章来作为一个二开简单功能的小教程,教程涉及PbootCMS新增标签等常见操作,可以参考。

功能介绍

微语是参考emlog博客系统的一个小功能,是站长在后台发布心情或者一句话公告,可以理解成qq空间的简易版说说,目前微语只有一个内容字段和发布时间。

已具备功能:

  1. 微语列表

  2. 微语新增

  3. 微语删除

  4. 微语修改

效果图:

插件安装

1、下载微语单独文件压缩包

链接:https://pan.baidu.com/s/1QNt2CR5-6ir2Q6iuhQ5tsw 

提取码:t53i 

2、压缩包内的apps文件夹拉到根目录直接新增WeiyuController.php和WeiyuModel.php两个文件,也可以自行一个个拷到对应位置。

image.png

3、通过Navicat Premium导入单独表ay_weiyu.sql文件

0.png

4、修改两处源码新增route和标签解析

①打开\apps\common\route.php

新增微语模块路由

'admin/Weiyu' => 'admin/content.Weiyu',

image.png

②打开\apps\home\controller\ParserController.php新增解析微语标签(配合截图操作)

找到以下代码

$content = $this->parserReplaceKeyword($content); // 页面关键词替换

在上面代码的下一行增加

$content = $this->parserWeiyuLabel($content); // 微语调取 @mk-weiyu

截图:

image.png

还是这个文件里,在最后面增加一个解析微语标签方法

// 解析微语标签 @mk-weiyu
public function parserWeiyuLabel($content)
{
    $pattern = '/\{pboot:weiyu(\s+[^}]+)?\}([\s\S]*?)\{\/pboot:weiyu\}/';
    $pattern2 = '/\[weiyu:([\w]+)(\s+[^]]+)?\]/';

    if (preg_match_all($pattern, $content, $matches)) {
        $count = count($matches[0]);
        for ($i = 0; $i < $count; $i ++) {
            // 获取调节参数
            $params = $this->parserParam($matches[1][$i]);
            $num = 10;
            $start = 1;
            
            foreach ($params as $key => $value) {
                switch ($key) {
                    case 'num':
                        $num = $value;
                        break;
                    case 'start':
                        $start = $value;
                        break;
                }
            }

            // 起始数校验
            if (! is_numeric($start) || $start < 1) {
                $start = 1;
            }

            // 读取数据
            if (! $data = $this->model->getWeiyu(escape_string($num), $start)) {
                $content = str_replace($matches[0][$i], '', $content);
                continue;
            }

            // 匹配到内部标签
            if (preg_match_all($pattern2, $matches[2][$i], $matches2)) {
                $count2 = count($matches2[0]); // 循环内的内容标签数量
            } else {
                $count2 = 0;
            }
            
            $out_html = '';
            $key = 1;
            foreach ($data as $value) { // 按查询数据条数循环
                $one_html = $matches[2][$i];
                for ($j = 0; $j < $count2; $j ++) { // 循环替换数据
                    $params = $this->parserParam($matches2[2][$j]);
                    switch ($matches2[1][$j]) {
                        case 'n':
                            $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $key) - 1, $one_html);
                            break;
                        case 'i':
                            $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $key), $one_html);
                            break;
                        default:
                            if (isset($value->{$matches2[1][$j]})) {
                                $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value->{$matches2[1][$j]}), $one_html);
                            }
                    }
                }
                $key ++;
                $out_html .= $one_html;
            }
            $content = str_replace($matches[0][$i], $out_html, $content);
        }
    }
    return $content;
}

截图:

image.png

5、打开\apps\home\model\ParserModel.php

拉到底部新增

// 微语 @mk-weiyu
public function getWeiyu($num, $start = 1)
{
$result = parent::table('ay_weiyu')
    ->order('create_time DESC')
    ->limit($start - 1, $num)
    ->select();
return $result;
}

截图:

image.png

6、新增后台微语菜单

①参考开启后台菜单管理,点击-> PbootCMS后台系统菜单如何开启

②新增微语管理菜单,按照参考图填写一致

/admin/weiyu/index

fa-sticky-note

image.png

使用方法

上面搞定测试ok后前端代码里就可以使用自定义的微语标签了,目前仅支持循环调用,暂无分页功能,使用方法和其他标签类似。

调用代码:

{pboot:weiyu num=100}
<p>[weiyu:create_time style=Y-m-d] —— [weiyu:desc]</p>
{/pboot:weiyu}

控制参数:

num 显示数量

可用的微语调用标签:

[weiyu:desc]微语内容
[weiyu:create_time]微语发布时间

前端代码截图:

image.png

补充

如果有使用问题和发现bug可以加入学习交流QQ群PbootCMS进阶学习交流或者下面留言反馈,如需代安装请单独联系站长收费服务。

付费下载

  

发表评论:

评论记录:

未查询到任何数据!
QQ在线咨询