去评论
dz插件网

从Discuz!安装缓存里导出到xml语言包不再依赖作者的源代码随便导出语言包的最新完整方法 感谢ONEXIN良心提供教学 文件懒人包下载 ...

admin
2023/07/30 14:16:34
从Discuz!安装缓存里导出到xml语言包不再依赖作者的源代码随便导出语言包的最新完整方法,从此不再受制于discuz应用中心安装了插件后自删除了xml文件,开启了开发者模式后到处.xml安装变量文件没有语言包的问题:
discuz应用中心安装插件后,插件语言包不能随便修改,有点欺负人,不给用户直接改语言包的机会,不给安装文件,还好良心作者提供了精准还原教程方法,感谢 @ONEXIN !!!
废话不多说,现身教学:

此教程的作用:方便大家在自己主站购买的插件可以方便的复制到自己其他站点正常完整的安装插件,而不用再次重复乱花钱购买二遍了~

编辑:/source/admincp/admincp_plugins.php
共有很多处:
查找:【约347行开始~】
  1. if($modules['extra']['langexists'] && file_exists($file = DISCUZ_ROOT.'./data/plugindata/'.$pluginarray['plugin']['identifier'].'.lang.php')) {
  2.         if($modules['extra']['langexists']) {
  3.                 include $file;
复制代码
替换为:
  1. if($modules['extra']['langexists']) {
  2.                 include $file;
  3.                 if(file_exists($file = DISCUZ_ROOT.'./data/plugindata/'.$pluginarray['plugin']['identifier'].'.lang.php')){
  4.                         include $file;
  5.                 } else {
  6.                         loadcache('pluginlanguage_script');
  7.                         loadcache('pluginlanguage_template');
  8.                         loadcache('pluginlanguage_install');
  9.                         loadcache('pluginlanguage_system');
  10.                 }
复制代码
查找:
  1. if(!empty($scriptlang[$pluginarray['plugin']['identifier']])) {
  2.                 if(!empty($scriptlang[$pluginarray['plugin']['identifier']])) {
  3.                         $pluginarray['language']['scriptlang'] = $scriptlang[$pluginarray['plugin']['identifier']];
复制代码
在其下行添加:
  1. } elseif(!empty($_G['cache']['pluginlanguage_script'][$pluginarray['plugin']['identifier']])) {
  2.                         $pluginarray['language']['scriptlang'] = $_G['cache']['pluginlanguage_script'][$pluginarray['plugin']['identifier']];
复制代码
查找:
  1. if(!empty($templatelang[$pluginarray['plugin']['identifier']])) {
  2.                 if(!empty($templatelang[$pluginarray['plugin']['identifier']])) {
  3.                         $pluginarray['language']['templatelang'] = $templatelang[$pluginarray['plugin']['identifier']];
复制代码
在其下行添加:

  1. } elseif(!empty($_G['cache']['pluginlanguage_template'][$pluginarray['plugin']['identifier']])) {
  2.                         $pluginarray['language']['templatelang'] = $_G['cache']['pluginlanguage_template'][$pluginarray['plugin']['identifier']];
复制代码
查找:
  1. if(!empty($installlang[$pluginarray['plugin']['identifier']])) {
  2.                 if(!empty($installlang[$pluginarray['plugin']['identifier']])) {
  3.                         $pluginarray['language']['installlang'] = $installlang[$pluginarray['plugin']['identifier']];
复制代码
在其下行添加:

  1. } elseif(!empty($_G['cache']['pluginlanguage_install'][$pluginarray['plugin']['identifier']])) {
  2.                         $pluginarray['language']['installlang'] = $_G['cache']['pluginlanguage_install'][$pluginarray['plugin']['identifier']];
复制代码
查找:
  1. if(!empty($systemlang[$pluginarray['plugin']['identifier']])) {
  2.                 if(!empty($systemlang[$pluginarray['plugin']['identifier']])) {
  3.                         $pluginarray['language']['systemlang'] = $systemlang[$pluginarray['plugin']['identifier']];
复制代码
在其下行添加:
  1. } elseif(!empty($_G['cache']['pluginlanguage_system'][$pluginarray['plugin']['identifier']])) {
  2.                         $pluginarray['language']['systemlang'] = $_G['cache']['pluginlanguage_system'][$pluginarray['plugin']['identifier']];
复制代码
查找,并删除下段内容:【约1250行~】
  1. if($_GET['langexists'] && !file_exists($langfile = DISCUZ_ROOT.'./data/plugindata/'.$identifiernew.'.lang.php')) {
  2.                                 cpmsg('plugins_edit_language_invalid', '', 'error', array('langfile' => $langfile));
  3.                         }
复制代码


相信很多不知道修改,懵逼的,下面提供具体懒人包文件:【替换上传覆盖路径:/source/admincp/

该破解discuz插件开发者模式导出没有语言包的防盗越狱方式,由开发作者@ONEXIN良心提供:https://gitee.com/Discuz/DiscuzX/pulls/2215/files

使用前提,已经开启了插件开发者模式不影响应用中心正版插件的更新、升级、使用):
编辑:/config/config_global.php
查找:
  1. ?>
复制代码
在其 上行 添加:
  1. // ----------------------  CONFIG PLUGINDEVELOPER  ---------------------- //
  2. $_config['plugindeveloper'] = 1;
复制代码


适用于:Discuz! X3.4 正式版【2023-05-20】版本的懒人包文件admincp_plugins.php:
                                                                                                        ↑↑↑↑↑↑↑↑↑↑↑↑
                                                                                         替换上传、覆盖 路径:/source/admincp/ 下
                                                                                                        ↓↓↓↓↓↓↓↓↓↓↓↓
适用于Discuz! X3.5 正式版【2023-07-26】及向后兼容版本的懒人包文件admincp_plugins.php:


后续。。。
以上方法可以完整导出所有没有建表操作的的插件的完整语言包,那么,存在建表的插件 install.php 文件怎么生成呢

如果你感兴趣,请跟帖告诉我,我会视跟帖热度看下大家是否真需要来放出来方法和文件哦,有需要的礼貌跟帖就行 ~~~