马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
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、用户名、帖子标题、发帖时间等信息。
- $thread_model = M('ForumThread');
- $time = time();
- $thread_data=array(
- 'fid'=>$data['fid'],
- 'author'=>$data['author'],
- 'authorid'=>$data['authorid'],
- 'subject'=>$data['subject'],
- 'dateline'=>$time,
- 'lastpost'=>$time,
- 'lastposter'=>$data['author'],
-
- 'status'=>'32',
- 'isgroup'=>'1',
- );
复制代码第二步:获取第一步插入表 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值 - $post_data=array(
- 'pid'=>$pid, //帖子ID
- 'tid'=>$tid, //论坛ID
- 'fid'=>$data['fid'], //主题ID
- 'first'=>'1', //首帖为1
- 'author'=>$data['author'], //作者名称
- // 'invisible'=>'-2', //-2未审核状态
- 'anonymous'=>empty($data['anonymous'])? '0' : '1' , //是否匿名
- 'authorid'=>$data['authorid'], //作者ID
- 'subject'=>$data['subject'], //主题标题
- 'message'=>$data['message'], //内容
- 'dateline'=>$time, //发布时间
- );
复制代码第六部:更新版块 pre_forum_forum 相关主题、帖子数量信息
第七步:更新用户 pre_common_member_count 帖子数量信息
discuz发帖过程主要就是以上7个步骤,通过这几个步骤就可以完成对实现discuz的发帖流程,其中设计到一些积分等其他信息的可以自己加上。
|