关灯
开启左侧

Discuz群组推送和群组,版块关联

  [复制链接]
admin实名认证 发表于 2017-3-8 00:21:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
Discuz群组推送和群组,版块关联



简单介绍一下两者的原理:

1.群组推送
150711tc0cbhrcn8tjr2xn.jpg.thumb.jpg

在群组管理中,对群组中的帖子管理员可以进行推送到版块的操作。

推送后会在相应的版块看到所推送的帖子
2.jpg

主题的tid与在群组中主题的tid相同。

这与关联的群组中显示的帖子有区别吗?答案当然是有!
我们来看看群组推送都执行了什么操作:

推送的几步重要操作在topicadmin_moderate.php的567行附近:
  • DB::query("INSERT INTO ".DB::table('forum_thread')." (fid, readperm, author, authorid, subject, dateline, lastpost, lastposter, views, replies, displayorder, digest, closed, special, attachment, isgroup)
  • VALUES ('$moveto', '$thread[readperm]', '".addslashes($thread['author'])."', '$thread[authorid]', '".addslashes($thread['subject'])."', '$thread[dateline]', '".TIMESTAMP."', '".addslashes($thread['lastposter'])."', '$thread[views]', '$thread[replies]', '0', '$thread[digest]', '$thread[tid]', '$thread[special]', '$thread[attachment]', '$thread[isgroup]')");

上面的代码将群组的主题数据添加(可以说是复制一份)到forum_thread表里,注意仅仅是插入到forum_thread表里,并没有在forum_post表里有数据。这意味着什么呢,意味着实际这个主题是不存在的。
  • $newtid = DB::insert_id();
  • DB::query("UPDATE ".DB::table('forum_thread')." SET closed='$newtid' WHERE tid='$thread[tid]'");

特别留意一下这两步操作,取插入数据的id,将插入的id更新到原群组主题的数据的closed字段中,这时候明白closed字段的含义了吗?是的,就是表示该主题绑定的主题的id(之前添加的主题的closed字段也做了对应的更新)。

在forumdisplay_list.htm模板里被推送的数据是这样操作的:
  • <!--{if $thread['related_group'] == 0 && $thread['closed'] > 1}-->
  • <!--{eval $thread[tid]=$thread[closed];}-->
  • <!--{/if}-->

用推送的主题的实际tid替代显示的tid。
这里有一点需要注意,因为这个列表页显示的主题并不会随原主题信息的改变而改变,而是保持推荐时的状态不会改变,除了群组里的原主题被删除。

2.关联版块
关联版块的功能比较简单,首先在后台--论坛--版块--选定一个版块--扩展设置中设置所要关联的版块
3.jpg



提交后数据会保存到forum_forumfield表中的relategroup字段中。
在读取主题列表forum_forumdisplay.php中读取的当前版块所关联的版块\群组的代码如下:
  • if($_G['forum']['relatedgroup']) {
  • $relatedgroup = explode(',', $_G['forum']['relatedgroup']);
  • $relatedgroup[] = $_G['fid'];
  • $fidsql = " t.fid IN(".dimplode($relatedgroup).")";
  • }

在主题列表页就可以显示所有关联的版块的主题了(显示,但不可修改)。

这两者都可以在版块的主题列表页显示群组的主题,但有所区别,推送会创建一个空主题并将其与原主题绑定,而关联版块是直接取其关联版块的数据。因此,推送的主题数据在列表页不会直接更新,而关联版块的主题数据会随着所关联的版块内数据的变化而变化。

特别注意一下,如果同时关联版块并推送某一主题,则在列表页会出现相同的主题,而如果有一个版块关联该版块,会显示从群组推送过来的数据。

例如:群组:主题1(推送到版块1)
          版块1(关联群组):主题1(关联主题,不可修改),主题1(推送主题,可删除)
          版块2(关联版块1):主题1(关联主题,关联的是版块1的推送主题,不可修改)
 
VIP介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

    注册账号后积极发帖的会员
  • 活跃会员

    经常参与各类话题的讨论,发帖内容较有主见
  • 热心会员

    经常帮助其他会员答疑
  • 推广达人

    积极宣传本站,为本站带来更多注册会员
  • 宣传达人

    积极宣传本站,为本站带来更多的用户访问量
  • 灌水之王

    经常在论坛发帖,且发帖量较大
  • 突出贡献

    长期对论坛的繁荣而不断努力,或多次提出建设性意见
  • 优秀版主

    活跃且尽责职守的版主
  • 荣誉管理

    曾经为论坛做出突出贡献目前已离职的版主
  • 论坛元老

    为论坛做出突出贡献的会员

0关注

5粉丝

3421帖子

排行榜
作者专栏

QQ交流群&&微信订阅号

QQ交流群

微信订阅号

吾爱尚玩资源基地永久域名:

Www.523Play.Com

在线管理员QQ:1589479632

邮箱:Email@523play.com

QQ交流群:558936238

Copyright   ©2015-2116  吾爱尚玩资源基地|523play.comPowered by©523Pplay.Com技术支持:吾爱尚玩资源基地