Discuz!大师网

搜索
查看: 1269|回复: 0

discuz X3.x使用自定义程序发帖步骤

[复制链接]
发表于 2017-3-21 01:31:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
discuz发表主题设计的几个表:(这里列出了主要的几个相关的表)
        1、主题表 pre_forum_thread:这个表一个主要数据就是 tid 主题ID
        2、post 分表协调表 pre_forum_post_tableid:这里需要获取一个自增的 pid
        3、帖子表 pre_forum_post :记录主题pid、fid、tid、title、content等主要信息
        4、版块表 pre_forum_forum:这里主要更新版块的主题、帖子数量
        5、帖子主题审核数据表 pre_forum_thread_moderate:这个可以根据自己状况决定,并不是必须的
        6、用户统计表 pre_common_member_count:主要是更新用户的主题数量
        自己处理发帖主要涉及到了上面6个数据库表,其中第5个不是必须的。
大致流程是这样的:
        第一步:向 主题表 pre_forum_thread 中插入版块ID、用户ID、用户名、帖子标题、发帖时间等信息。
  1. $thread_model = M('ForumThread');
  2.             $time = time();
  3.             $thread_data=array(
  4.                                            'fid'=>$data['fid'],
  5.                                     'author'=>$data['author'],
  6.                                     'authorid'=>$data['authorid'],
  7.                                     'subject'=>$data['subject'],
  8.                                     'dateline'=>$time,
  9.                                     'lastpost'=>$time,
  10.                                     'lastposter'=>$data['author'],
  11.                             
  12.                                     'status'=>'32',
  13.                                     'isgroup'=>'1',
  14.                                     );
复制代码
第二步:获取第一步插入表 pre_forum_thread 的数据ID,作为主题ID,即 tid
        第三步:向 post 分表协调表 pre_forum_post_tableid 插入一条数据,这张表中只有一个自增字段 pid
        第四步:获取 第三步 插入表 pre_forum_post_tableid 的数据ID,作为 pid
        第五部:向帖子表 pre_forum_post 中插入帖子相关信息,这里需要注意的是: pid为第四部的pid值,tid为第二步的tid值
  1. $post_data=array(
  2.                                             'pid'=>$pid,                        //帖子ID
  3.                                             'tid'=>$tid,                      //论坛ID
  4.                                             'fid'=>$data['fid'],           //主题ID
  5.                                             'first'=>'1',                                          //首帖为1
  6.                                             'author'=>$data['author'],                   //作者名称
  7.    //                                         'invisible'=>'-2',                                    //-2未审核状态
  8.                                         'anonymous'=>empty($data['anonymous'])? '0' : '1' ,    //是否匿名
  9.                                             'authorid'=>$data['authorid'],                        //作者ID
  10.                                             'subject'=>$data['subject'],                            //主题标题
  11.                                             'message'=>$data['message'],                          //内容
  12.                                             'dateline'=>$time,                         //发布时间
  13.                                     );
复制代码
第六部:更新版块 pre_forum_forum 相关主题、帖子数量信息
        第七步:更新用户 pre_common_member_count 帖子数量信息
        discuz发帖过程主要就是以上7个步骤,通过这几个步骤就可以完成对实现discuz的发帖流程,其中设计到一些积分等其他信息的可以自己加上。


回复 马甲回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网站地图|小黑屋|展会网|Discuz站长论坛 |天天打卡

GMT+8, 2024-4-26 09:02 , Processed in 0.073672 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表