本程序为 Discuz! X3.4 转 Discuz! Q 程序,通过运行转换命令可以将 Discuz! X3.4 包括用户、版块、普通主题、回复、附件图片等数据转换至 Discuz! Q,该程序脚本可以放到任意目录。在转换程序开始前,请保证 Discuz! Q 数据库为全新安装,或者只通过本程序转换过数据。具体详见下载包中的Readme。
#二、环境要求#三、配置与使⽤1、配置a).数据库链接参数修改在 config/database.php ⽂件中配置好数据库, 其中 discuzq 为 Discuz! Q 数据库连接信息, discuzx为 Discuz! X3.4数据库连接信息。注:若Discuz! X3.4为 gbk 编码,数据库连接信息中的 X数据编码 和 X数据库字符集 保持现有默认配置即可。b).测试数据库连接打开命令⾏窗⼝,在程序根⽬录运⾏ php discoa app:test 命令测试数据库能否正常连接。c).运⾏ SQL在 Discuz! Q 数据库运⾏ sql (注意修改表格前缀,如果没有前缀,去掉 pre_ 即可):d).转换模式选择转换模式配置,打开 config/config.php ⽂件,配置 “breakpoint_continuation” 。当breakpoint_continuation的值为 true 时,表示开启断点续转模式,在此模式下执⾏转换命令,程序会忽略之前转换过的数据;当breakpoint_continuation的值为 false 时,程序会先检查Q⽬标表是否有多余数据,如果有则停⽌执⾏对应的转换任务;ALTER TABLE `pre_users` ADD `salt` CHAR(6) NULL AFTER `password`;ALTER TABLE `pre_posts` CHANGE `content` `content` MEDIUMTEXT CHARACTER SETutf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '内容';e).修改 Discuz! Q ⽂件更新 Discuz! Q 登陆验证⽂件(后期每次Discuz! Q 升级后都需要⼿动添加)。找到 Discuz! Q 程序⽂件 app/Listeners/User/CheckLogin.php (72⾏ 附近)前添加如下代码:在程序⽂件最后⼀个⼤括号}前,给本⽂件添加如下代码:将转换程序⾥的⽂件 app/Formatter/CustomerConfigurator.php 复制到 Discuz! Q程序app/Formatter⽬录下,并在 Discuz! Q 程序⽂件 app/Formatter/Formatter.php 中 38⾏ 左右找到:在其后添加如下代码:删除 Discuz! Q 程序 storage/Formatter ⽬录下的所有缓存⽂件。if ($event->password !== '' && !$event->user->checkPassword($event->password)){$this->checkSaltPassword($event);/*** @param $event* Discuz! X3.4 密码转换*/private function checkSaltPassword($event) {if (!empty($event->user->salt) && !empty($event->password)) {$passwordmd5 = preg_match('/^\w{32}$/', $event->password) ? $event->password : md5($event->password);$passwordmd5 = md5($passwordmd5 . $event->user->salt);if ($event->user->password == $passwordmd5) {$event->user->password = $event->password;$event->user->salt = '';$event->user->save();}}}parent::confTopic($configurator);CustomerConfigurator::Customer($configurator);f).上传附件将 Discuz! X3.4 ⽬录 uc_server/data/avatar 中的所有⽂件上传⾄ Discuz! Q ⽬录storage/app/public/avatars,如果 avatars 不存在,请⾃⾏创建该⽬录。将 Discuz! X3.4 ⽬录 upload/forum 中的所有⽂件上传⾄ Discuz! Q ⽬录storage/app/public/attachments,如果 attachments 不存在,请⾃⾏创建该⽬录。将 Discuz! X3.4 ⽬录 upload/commom ⽂件夹上传⾄ Discuz! Q ⽬录storage/app/public/attachments。将 Discuz! X3.4 ⽬录 static/image/smiley ⽂件夹中的⽂件夹上传⾄ Discuz! Q ⽬录 public/emoji⽬录。2、使⽤Discuz! X3.4 转换 Discuz! Q 命令a).⼀键转换:命令⾏模式下,在转换程序根⽬录运⾏ php discoa app:xtq 命令,将完成所有本程序定义过的数据的转换,包含:⽤户数据、版块数据、主题数据、回复数据、附件数据、表情数据。b).选择转换:您可以⾃由选择要转换的数据。您可以使⽤ php discoa app:xtq --option 命令,⾃由选择您需要转换的数据,--option 有以下可使的⽤参数:user : ⽤户信息转换。category : 版块信息转换。thread : 主题信息转换。post : 回复信息转换。attachment : 附件信息转换。emoji : 表情转换。count :主题、帖⼦、⽤户信息统计更新。例如:php discoa app:xtq user 表示只转换⽤户信息。php discoa app:xtq thread 表示只转换主题信息。注意:若采⽤选择转换,⽤户数据和版块信息⼀定要在主题、回复信息之前进⾏操作。辅助命令您可以使⽤ php discoa app:clean cleanDatabase --option 命令清理 Discuz! Q 中数据表数据。您可以选择以下 --option 参数:user : 清理⽤户数据。userWallet : 清理⽤户钱包数据。category : 清理板块。thread : 清理主题。post : 清理回帖。emoji: 清理转换来的表情。attachment : 清理附件数据。不填写 option 参数时,程序将清理以上所有数据。例如:php discoa app:clean cleanDatabase 表示清理所有数据。php discoa app:clean cleanDatabase user 表示清理⽤户数据。
下载地址:
点击下载 xconvertq.zip
(大小:2.90M)
历史资源提醒--必看
该页面资源/教程来自原魔趣吧历史资源转移,因发布历史久远,部分资源/教程可能已失效或无法在最新版程序中安装使用!DZ资源建议在Discuz3.4及以下版本使用,PHP版本建议5.6。资源仅提供做代码研究学习使用!
因改版,部分贴内链接将无法正常跳转,如链接失效或未正常跳转,请利用站内搜索功能搜索资源名称获取对应资源!