努金网(nujin.com)

 找回密码
 立即注册

微信登录,快人一步

查看: 253|回复: 50

discuz自动发帖插件源码实现

[复制链接]

186

主题

186

帖子

21

积分

穷困潦岛

Rank: 1

积分
21
发表于 2020-9-9 12:41:51 | 显示全部楼层 |阅读模式
需供:

现有一个公司内乱部利用的办公体系,需求将天天的举动疑息汇总成报表数据主动公布到论坛的某个板块中。之前做了discuz论坛取办公体系的同步登岸功用,利用的Ucenter。检察了相干的api接心,出有找到一键公布论坛帖子的相干设置,以是网上找了相干的疑息,本人入手人给家足。

论坛是discuz,另外一个体系是用的Thinkphp32。打仗过那两个体系并做过Ucenter同步登岸功用的伴侣,该当看着比力大白。

简朴理解discuz论坛数据库表构造:

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个没有是必需的。

念理解discuz 数据库相干疑息能够检察:http://www.dz7.com.cn/library/database/

大抵数据插进的流程:

        第一步:背 主题表 pre_forum_thread 中插进版块ID、用户ID、用户名、帖子题目、收帖工夫等疑息。
        第两步:获得第一步插进表 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值
        第六部:更新版块 pre_forum_forum 相干主题、帖子数目疑息
        第七步:更新用户 pre_common_member_count 帖子数目疑息
     注:discuz收帖历程次要便是以上7个步调,经由过程那几个步调就能够完成对完成discuz的收帖流程,此中设想到一些积分等其他疑息的能够本人减上。 假如那里能够大白的话,上面的便不消看了,本人教着操纵便好。

详细的操纵:1.修正扩大文件    UcApi.class.php

那里的扩大文件是Thinkphp已完成Ucenter同步登岸减载的扩大文件

discuz自动发帖插件源码实现

discuz自动发帖插件源码实现


  1. <font size="4">/**
  2.      * [sendForumPost 一键主动公布主题接心]
  3.      * @param  [type] $title   [帖子题目]
  4.      * @param  [type] $content [帖子内乱容]
  5.      * @return [type]       [description]
  6.      */
  7.     public function sendForumPost($title,$content){
  8.         $uid = 1;//大众疑息,利用admin用户的id
  9.         $forumId=112;//主题板块id|112=告诉取通告

  10.         $result = send_forum_post($uid,$title,$content,$forumId);
  11.         return $result;
  12. </font>
复造代码

因为牢固收个帖子,以是我间接将主题板块id战用户称号,用户id,先写成牢固的,各人能够按照本人实践状况灵敏设置。

discuz自动发帖插件源码实现

discuz自动发帖插件源码实现

正在UcApi.class.php文件中,挪用的办法大都是滥觞于uc_client引进的函数文件client.php

2.修正Ucenter客户端uc_client文件 client.php

那里是模拟创立用户接心流程。正在UcApi.class.php文件中接心办法sendForumPost挪用自界说内乱置办法send_forum_post()。

  1. <font size="4">
  2. function send_forum_post($uid,$title,$content,$forumId){
  3.         $return = call_user_func(UC_API_FUNC, 'user', 'send_forum', array('title'=>$title,'content'=>$content,'forumId'=>$forumId, 'uid'=>$uid));
  4.         return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return);
  5. }</font>
复造代码


那里的call_user_func是一个内乱置函数。

参数一:数据操纵方法。mysql代表曲连数据库,借包罗其他两种方法:uc_api_mysql 、uc_api_post。

参数两:需求挪用的掌握器称号,那里挪用的是user.php

discuz自动发帖插件源码实现

discuz自动发帖插件源码实现

参数三:挪用指定掌握器中的办法称号。对应的办法前里会拼接一个on

参数四:背办法中传进的参数数据,那是利用的必需是数组。

3.修正Ucenter客户端uc_client掌握器文件 user.php
  1. <font size="4">function onsend_forum(){
  2.     $this->init_input();
  3.     $title = $this->input('title');
  4.     $content = htmlspecialchars($this->input('content'));
  5.         $forumId = $this->input('forumId');
  6.         $uid = $this->input('uid');
  7.         $time = time();
  8.         // 开端进库操纵
  9.         //         第一步:背 主题表 pre_forum_thread 中插进版块ID、用户ID、用户名、帖子题目、收帖工夫等疑息。
  10.     $this->db->query("INSERT INTO `".UC_DBNAME."`.pre_forum_thread SET fid='$forumId', authorid='$uid', author='admin', subject='$title', dateline='$time', lastpost='$time', lastposter='admin'");  

  11.     //  第两步:获得第一步插进表 pre_forum_thread 的数据ID,做为主题ID,即 tid
  12.         $tid = $this->db->insert_id();
  13.         //  第三步:背 post 分表和谐表 pre_forum_post_tableid 插进一条数据,那张表中只要一个自删字段 pid
  14.     $this->db->query("INSERT INTO `".UC_DBNAME."`.pre_forum_post_tableid SET pid=''");
  15.     //  第四步:获得 第三步 插进表 pre_forum_post_tableid 的数据ID,做为 pid
  16.         $pid = $this->db->insert_id();
  17.         //  第五部:背帖子表 pre_forum_post 中插进帖子相干疑息,那里需求留意的是: pid为第四部的pid值,tid为第两步的tid值
  18.     $this->db->query("INSERT INTO `".UC_DBNAME."`.pre_forum_post SET pid='$pid', fid='$forumId', tid='$tid', author='admin', authorid='$uid', subject='$title', dateline='$time', message='$content'");

  19.     //  第六部:更新版块 pre_forum_forum 相干主题、帖子数目疑息
  20.         $this->db->query("UPDATE `".UC_DBNAME."`.pre_forum_forum SET posts=posts+1,threads=threads+1 WHERE fid='$forumId'");
  21.     //  第七步:更新用户 pre_common_member_count 帖子数目疑息
  22.         $this->db->query("UPDATE `".UC_DBNAME."`.pre_common_member_count SET posts=posts+1,threads=threads+1 WHERE uid='$uid'");
  23.    
  24.         return $tid;
  25. </font>
复造代码

那里中心的操纵数据库的操纵便是前里提到的七个步调,假如不克不及间接用,能够参考鉴戒。若有成绩,大概那里出阐明利剑,能够批评留行。

可有偿供给撑持:

discuz论坛效劳器拆建

其他论坛内乱容背discuz论坛做数据导进



回复

使用道具 举报

640

主题

7万

帖子

3315

积分

白领

Rank: 4

积分
3315
发表于 2020-9-9 12:41:51 | 显示全部楼层
不要相信星座命理,那是哄小朋友的,命运在自己手中。难道你想等出栋房子或是车子?
回复 支持 反对

使用道具 举报

433

主题

7万

帖子

3313

积分

白领

Rank: 4

积分
3313
发表于 2020-9-9 12:42:00 | 显示全部楼层
女人啊真是那句话~~~无理占三分~~忘记怎么说了呵呵~~你帮我想想
回复 支持 反对

使用道具 举报

682

主题

7万

帖子

3323

积分

白领

Rank: 4

积分
3323
发表于 2020-9-9 12:42:00 | 显示全部楼层
我起来了哈哈刚才迷了会
回复 支持 反对

使用道具 举报

399

主题

7万

帖子

3261

积分

白领

Rank: 4

积分
3261
发表于 2020-9-9 12:42:00 | 显示全部楼层
你们觉得楼主有我萌吗?`(*∩_∩*)′
回复 支持 反对

使用道具 举报

448

主题

7万

帖子

3250

积分

白领

Rank: 4

积分
3250
发表于 2020-9-9 12:42:00 | 显示全部楼层
饥渴的我无法抗拒你的诱惑。跟你亲密接触时你令我产生了阵阵无法言表的快感,感觉地球在旋转,很想和你大干一场又怕将肚子搞大……亲爱的啤酒
回复 支持 反对

使用道具 举报

397

主题

7万

帖子

3326

积分

白领

Rank: 4

积分
3326
发表于 2020-9-9 12:42:00 | 显示全部楼层
哈哈!!!!
回复 支持 反对

使用道具 举报

431

主题

7万

帖子

3295

积分

白领

Rank: 4

积分
3295
发表于 2020-9-9 12:42:00 | 显示全部楼层
牌局可有可无,那不是年轻人该干的,除非工作需要,否则不要培养这种兴趣。当你看见GF坐在赌博机面前聚精会神的呐喊着某张牌时,你是什么感觉?
回复 支持 反对

使用道具 举报

695

主题

7万

帖子

3343

积分

白领

Rank: 4

积分
3343
发表于 2020-9-9 12:42:01 | 显示全部楼层
哈哈支持啊可以换头像咯
回复 支持 反对

使用道具 举报

455

主题

7万

帖子

3303

积分

白领

Rank: 4

积分
3303
发表于 2020-9-9 12:42:07 | 显示全部楼层
再加上千斤顶
回复 支持 反对

使用道具 举报

 
在线客服
点击这里给我发消息
售前咨询热线
微信:gwailee
QQ:395508196

微信扫一扫,私享最新原创实用干货

QQ|Archiver|手机版|小黑屋|搜索管理|游戏管理|努金网(nujin.com) ( 沪ICP备20013403号 )

GMT+8, 2020-10-30 06:15 , Processed in 0.939597 second(s), 57 queries .

Powered by Nujin X3.4

© 2001-2017 Nujin Inc.

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