场景
①站长安装了应用中心插件,想安装到自己其他站点发现无法安装,上传后后台 —— 插件里面看不到,直接开发者模式导出的xml文件不包含语言包,安装后很多显示乱码等等。。。
②网站搬家:使用dz后台的数据库备份,然后导入到新服务器后缺失语言包,插件显示乱码的情况。。。
③在之前老应用中心购买下载过的插件,换服务器或网站搬家后,想再次安装遇到没有安装文件,后台无法发现无法安装的问题。。。
所以以上各种没有语言包、没有安装文件等问题,其实都不是问题;
情况1:如果本身你是正版插件,那仅需要开启开发者模式:
编辑文件:/config/config_global.php
在倒数第二行插入:【开启开发者模式的意思,也就是从普通站长视角,变为开发者上帝视角,不影响正版插件更新、不影响论坛功能,反而功能更多】
$_config['plugindeveloper'] = 1;
discuz安装后的插件没有xml安装文件怎么提取完整语言包网站搬家迁移后插件语言包怎么完整提取的教程
保存后,就可以了。
然后再去应用中心下载这个没有安装文件的插件或模板,也就是二次下载的意思。【不用卸载,是点进去应用中心这个应用,再次点安装】
安装完后,你会发现该应用目录下会多出来 .xml的后缀文件和install.php安装文件,这才说明才是完整的,这样就可以愉快的安装到其他站点了。
情况2:如果已经去应用中心安装不了,但是在自己后台已经安装好了的插件怎么提取完整出来呢?
(如果插件带语言包的话,直接开启开发者模式后台导出xml文件是不完整的!!!)
方法一:【比较推荐】
缓存表可以读取的情况下:
应用中心安装的插件开启开发者模式导出的安装文件xml文件缺少语言包的解决办法
方法二:
以上模式导出语言包xml文件任然不完整的方法:
终极绝招:
论坛根目录新建文件名为:lang.php
内容为:(其中里面的:tshuz_discount 改为 你自己的插件标识名(插件目录名))
<?php
require './source/class/class_core.php';
//require '../../../../source/class/class_core.php';
$discuz = &discuz_core::instance();
$discuz->init();
//-------------------plugin language---------------------------------
$identifier = !empty($_GET['id']) ? $_GET['id'] : 'tshuz_discount';
loadcache('pluginlanguage_script');
loadcache('pluginlanguage_template');
$val = array();
$val['scriptlang'] = $_G['cache']['pluginlanguage_script'][$identifier];
$val['templatelang'] = $_G['cache']['pluginlanguage_template'][$identifier];
$code = "<?php\r\n";
$code .= "\$lang = ". var_export($val, true). ";";
$code = str_replace('$scriptlang[', '$lang[\'scriptlang\'][', $code);
$code = str_replace('$templatelang[', '$lang[\'templatelang\'][', $code);
file_put_contents("lang_{$identifier}.php", $code);
exit;
然后访问:(其中以上新建文件内容里面的:tshuz_discount 改为 你自己的插件标识名(插件目录名))
httpx://你的域名/lang.php?id=tshuz_discount
会在你根目录生成:lang_tshuz_discount.php
编辑这个生成的文件:lang_tshuz_discount.php
里面的内容格式遵循:
<item id="language">
<item id="scriptlang">
<item id="text"><![CDATA[脚本语言文字]]></item>
</item>
<item id="templatelang">
<item id="text"><![CDATA[模版语言文字]]></item>
</item>
<item id="installlang">
<item id="text"><![CDATA[安装语言文字]]></item>
</item>
</item>
那么把生成的脚本语言和模板语言都合成到导出的xml文件里面,然后就是完完整整的插件安装文件了。