Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

容许导入不同编码的插件或风格 (utf8/big5/gbk)

[复制链接]
Eiffel 发表于 2006-9-15 20:49:36 | 显示全部楼层 |阅读模式
本插件强化后台的插件导入与风格导入, 能够粘贴各种不同编码的插件或风格. 包括: 简体gbk, 简体utf, 繁体big5, 繁体utf


安装方法:
在 admincp.lang.php
找 'plugins_import_ignore_version' => '允许导入不同版本 Discuz! 的插件(易产生错误!!)', 下面加
  1.         'plugins_import_from_tc' => '导入繁体 UTF8 编码',
  2.         'plugins_import_from_sc' => '导入简体 UTF8 编码',
  3.         'plugins_import_from_big5' => '导入繁体 BIG5 编码',
  4.         'plugins_import_from_gbk' => '导入简体 GBK 编码',
复制代码
解压附件(选合适你的版本),
备份 admin/plugins.inc.php及admin/styles.inc.php然后
把这两个文件解压
再把sctc.inc.php放在include
(完成)
如需要手工安装plugins.inc.php及styles.inc.php请到8楼

使用方法:
确认来源插件是什么编码.
在导入时点击该编码便可.
如果导入后发现错误(有乱码),请删除插件再重新导入.

[ 本帖最后由 Eiffel 于 2006-10-15 01:04 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

 楼主| Eiffel 发表于 2006-9-15 20:53:24 | 显示全部楼层
已測試,在dz5.0的各版本能正常運作.
回复

使用道具 举报

enbony 发表于 2006-9-15 20:55:08 | 显示全部楼层
沙发?
回复

使用道具 举报

HY清风 发表于 2006-9-15 21:54:01 | 显示全部楼层
真的好用吗?
我测试下!
回复

使用道具 举报

dust2k 发表于 2006-9-15 21:57:53 | 显示全部楼层
支持,太强了,呵呵。。
回复

使用道具 举报

 楼主| Eiffel 发表于 2006-9-24 19:07:34 | 显示全部楼层
gbk版本 bug修正
之前我错把导入gbk和导入utf8互换了,使导入gbk插件或风格出现问题,现已修正

  附件: GBK简体版 (已更新) 请重新下载
回复

使用道具 举报

 楼主| Eiffel 发表于 2006-9-24 19:25:51 | 显示全部楼层

手工安裝方法 (for utf簡體)

在admin/plugin.inc.php
找 if($action == 'pluginsconfig' && $export) { 上面加
  1. require_once DISCUZ_ROOT.'include/sctc.inc.php';
复制代码


找 <tr><td class="altbg1"><div align="center"><textarea  name="plugindata" cols="80" rows="8"></textarea><br> 改成
  1. <tr><td class="altbg1"><div align="center">
  2. <input class="radio" type="radio" name="code" value="utf_tc"> <?=$lang['plugins_import_from_tc']?>&nbsp;&nbsp;&nbsp;
  3. <input class="radio" type="radio" name="code" value="utf_sc" checked> <?=$lang['plugins_import_from_sc']?>&nbsp;&nbsp;&nbsp;
  4. <input class="radio" type="radio" name="code" value="big5"> <?=$lang['plugins_import_from_big5']?>&nbsp;&nbsp;&nbsp;
  5. <input class="radio" type="radio" name="code" value="gbk"> <?=$lang['plugins_import_from_gbk']?><br>
  6. <textarea  name="plugindata" cols="80" rows="8"></textarea><br>
复制代码


找 $db->query("INSERT INTO {$tablepre}plugins ($sql1) VALUES ($sql2)");
上面加
  1.                 switch($code) {
  2.                 case "utf_tc":
  3.                         $sql2=tc2sc($sql2);
  4.                         break;
  5.                 case "big5":
  6.                         require_once DISCUZ_ROOT.'include/chinese.class.php';
  7.                         $chs = new Chinese('BIG5', 'UTF8');
  8.                         $sql2=$chs->Convert($sql2);
  9.                         $sql2=tc2sc($sql2);
  10.                         break;
  11.                 case "gbk":
  12.                         require_once DISCUZ_ROOT.'include/chinese.class.php';
  13.                         $chs = new Chinese('GBK', 'UTF8');
  14.                         $sql2=$chs->Convert($sql2);
  15.                         break;
  16.                 case "utf_sc":
  17.                         break;
  18.                 }
复制代码


找 $db->query("INSERT INTO {$tablepre}plugin$pluginconfig ($sql1) VALUES ($sql2)");
上面加
  1.                                         switch($code) {
  2.                                         case "utf_tc":
  3.                                                 $sql2=tc2sc($sql2);
  4.                                                 break;
  5.                                         case "big5":
  6.                                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  7.                                                 $chs = new Chinese('BIG5', 'UTF8');
  8.                                                 $sql2=$chs->Convert($sql2);
  9.                                                 $sql2=tc2sc($sql2);
  10.                                                 break;
  11.                                         case "gbk":
  12.                                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  13.                                                 $chs = new Chinese('GBK', 'UTF8');
  14.                                                 $sql2=$chs->Convert($sql2);
  15.                                                 break;
  16.                                         case "utf_sc":
  17.                                                 break;
  18.                                         }
复制代码

在最底?>上面加
  1. function tc2sc($str){
  2.         $outstr="";
  3.         for($i=0; $i < strlen($str); $i++) {
  4.         $ch=ord(substr($str,$i,1));
  5.         if($ch > 127) {
  6.                 $char=substr($str,$i,3);
  7.                 $loc=strpos(strTC,$char);
  8.             if ($loc !== false) $char=substr(strSC,$loc,3);
  9.             $outstr.=$char;
  10.             $i+=2;
  11.         } else {
  12.             $outstr.=substr($str,$i,1);
  13.         }
  14.     }
  15.     return $outstr;
  16. }
复制代码


==================================================================

在admin/styles.inc.php找
找 if($action == 'styles' && $export) { 上面加
  1. require_once DISCUZ_ROOT.'include/sctc.inc.php';
复制代码


找 <tr><td class="altbg1"><div align="center"><textarea  name="styledata" cols="80" rows="8"></textarea><br> 改成
  1. <tr><td class="altbg1"><div align="center">
  2. <input class="radio" type="radio" name="code" value="utf_tc"> <?=$lang['plugins_import_from_tc']?>&nbsp;&nbsp;&nbsp;
  3. <input class="radio" type="radio" name="code" value="utf_sc" checked> <?=$lang['plugins_import_from_sc']?>&nbsp;&nbsp;&nbsp;
  4. <input class="radio" type="radio" name="code" value="big5"> <?=$lang['plugins_import_from_big5']?>&nbsp;&nbsp;&nbsp;
  5. <input class="radio" type="radio" name="code" value="gbk"> <?=$lang['plugins_import_from_gbk']?><br>
  6. <textarea  name="styledata" cols="80" rows="8"></textarea><br>
复制代码


找 $db->query("INSERT INTO {$tablepre}templates (name, directory, copyright)
上面加
  1.                         switch($code) {
  2.                         case "utf_tc":
  3.                                 $stylearray[tplname]=tc2sc($stylearray[tplname]);
  4.                                 $stylearray[copyright]=tc2sc($stylearray[copyright]);
  5.                                 $stylearray[name]=tc2sc($stylearray[name]);
  6.                                 break;
  7.                         case "big5":
  8.                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  9.                                 $chs = new Chinese('BIG5', 'UTF8');
  10.                                 $stylearray[tplname]=$chs->Convert($stylearray[tplname]);
  11.                                 $stylearray[copyright]=$chs->Convert($stylearray[copyright]);
  12.                                 $stylearray[name]=$chs->Convert($stylearray[name]);
  13.                                 $stylearray[tplname]=tc2sc($stylearray[tplname]);
  14.                                 $stylearray[copyright]=tc2sc($stylearray[copyright]);
  15.                                 $stylearray[name]=tc2sc($stylearray[name]);
  16.                                 break;
  17.                         case "gbk":
  18.                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  19.                                 $chs = new Chinese('GBK', 'UTF8');
  20.                                 $stylearray[tplname]=$chs->Convert($stylearray[tplname]);
  21.                                 $stylearray[copyright]=$chs->Convert($stylearray[copyright]);
  22.                                 $stylearray[name]=$chs->Convert($stylearray[name]);
  23.                                 break;
  24.                         case "utf_sc":
  25.                                 break;
  26.                         }
复制代码


在最底?>上面加
  1. function tc2sc($str){
  2.         $outstr="";
  3.         for($i=0; $i < strlen($str); $i++) {
  4.         $ch=ord(substr($str,$i,1));
  5.         if($ch > 127) {
  6.                 $char=substr($str,$i,3);
  7.                 $loc=strpos(strTC,$char);
  8.             if ($loc !== false) $char=substr(strSC,$loc,3);
  9.             $outstr.=$char;
  10.             $i+=2;
  11.         } else {
  12.             $outstr.=substr($str,$i,1);
  13.         }
  14.     }
  15.     return $outstr;
  16. }
复制代码

[ 本帖最后由 Eiffel 于 2006-9-24 19:27 编辑 ]
回复

使用道具 举报

 楼主| Eiffel 发表于 2006-9-24 19:27:44 | 显示全部楼层

手工安裝方法 (gbk版)

在admin/plugin.inc.php
找 if($action == 'pluginsconfig' && $export) { 上面加
  1. require_once DISCUZ_ROOT.'include/sctc.inc.php';
复制代码


找 <tr><td class="altbg1"><div align="center"><textarea  name="plugindata" cols="80" rows="8"></textarea><br> 改成
  1. <tr><td class="altbg1"><div align="center">
  2. <input class="radio" type="radio" name="code" value="utf_tc"> <?=$lang['plugins_import_from_tc']?>   
  3. <input class="radio" type="radio" name="code" value="utf_sc"> <?=$lang['plugins_import_from_sc']?>   
  4. <input class="radio" type="radio" name="code" value="big5"> <?=$lang['plugins_import_from_big5']?>   
  5. <input class="radio" type="radio" name="code" value="gbk" checked> <?=$lang['plugins_import_from_gbk']?><br>
  6. <textarea  name="plugindata" cols="80" rows="8"></textarea><br>
复制代码


找 $db->query("INSERT INTO {$tablepre}plugins ($sql1) VALUES ($sql2)");
上面加
  1.                 switch($code) {
  2.                 case "big5":
  3.                         require_once DISCUZ_ROOT.'include/chinese.class.php';
  4.                         $chs = new Chinese('BIG5', 'UTF8');
  5.                         $sql2=$chs->Convert($sql2);
  6.                         $sql2=tc2sc($sql2);
  7.                         $chs = new Chinese('UTF8', 'GBK');
  8.                         $sql2=$chs->Convert($sql2);
  9.                         break;
  10.                 case "utf_tc":
  11.                         $sql2=tc2sc($sql2);
  12.                         require_once DISCUZ_ROOT.'include/chinese.class.php';
  13.                         $chs = new Chinese('UTF8', 'GBK');
  14.                         $sql2=$chs->Convert($sql2);
  15.                         break;
  16.                 case "utf_sc":
  17.                         require_once DISCUZ_ROOT.'include/chinese.class.php';
  18.                         $chs = new Chinese('UTF8', 'GBK');
  19.                         $sql2=$chs->Convert($sql2);
  20.                         break;
  21.                 case "gbk":
  22.                         break;
  23.                 }
复制代码


找 $db->query("INSERT INTO {$tablepre}plugin$pluginconfig ($sql1) VALUES ($sql2)");
上面加
  1.                                         switch($code) {
  2.                                         case "big5":
  3.                                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  4.                                                 $chs = new Chinese('BIG5', 'UTF8');
  5.                                                 $sql2=$chs->Convert($sql2);
  6.                                                 $sql2=tc2sc($sql2);
  7.                                                 $chs = new Chinese('UTF8', 'GBK');
  8.                                                 $sql2=$chs->Convert($sql2);
  9.                                                 break;
  10.                                         case "utf_tc":
  11.                                                 $sql2=tc2sc($sql2);
  12.                                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  13.                                                 $chs = new Chinese('UTF8', 'GBK');
  14.                                                 $sql2=$chs->Convert($sql2);
  15.                                                 break;
  16.                                         case "utf_sc":
  17.                                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  18.                                                 $chs = new Chinese('UTF8', 'GBK');
  19.                                                 $sql2=$chs->Convert($sql2);
  20.                                                 break;
  21.                                         case "gbk":
  22.                                                 break;
  23.                                         }
复制代码

在最底?>上面加
  1. function tc2sc($str){
  2.         $outstr="";
  3.         for($i=0; $i < strlen($str); $i++) {
  4.         $ch=ord(substr($str,$i,1));
  5.         if($ch > 127) {
  6.                 $char=substr($str,$i,3);
  7.                 $loc=strpos(strTC,$char);
  8.             if ($loc !== false) $char=substr(strSC,$loc,3);
  9.             $outstr.=$char;
  10.             $i+=2;
  11.         } else {
  12.             $outstr.=substr($str,$i,1);
  13.         }
  14.     }
  15.     return $outstr;
  16. }
复制代码


==================================================================

在admin/styles.inc.php找
找 if($action == 'styles' && $export) { 上面加
  1. require_once DISCUZ_ROOT.'include/sctc.inc.php';
复制代码


找 <tr><td class="altbg1"><div align="center"><textarea  name="styledata" cols="80" rows="8"></textarea><br> 改成
  1. <tr><td class="altbg1"><div align="center">
  2. <input class="radio" type="radio" name="code" value="utf_tc"> <?=$lang['plugins_import_from_tc']?>   
  3. <input class="radio" type="radio" name="code" value="utf_sc"> <?=$lang['plugins_import_from_sc']?>   
  4. <input class="radio" type="radio" name="code" value="big5"> <?=$lang['plugins_import_from_big5']?>   
  5. <input class="radio" type="radio" name="code" value="gbk" checked> <?=$lang['plugins_import_from_gbk']?><br>
  6. <textarea  name="styledata" cols="80" rows="8"></textarea><br>
复制代码


找 $db->query("INSERT INTO {$tablepre}templates (name, directory, copyright)
上面加
  1.                         switch($code) {
  2.                         case "big5":
  3.                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  4.                                 $chs = new Chinese('BIG5', 'UTF8');
  5.                                 $stylearray[tplname]=$chs->Convert($stylearray[tplname]);
  6.                                 $stylearray[copyright]=$chs->Convert($stylearray[copyright]);
  7.                                 $stylearray[name]=$chs->Convert($stylearray[name]);
  8.                                 $stylearray[tplname]=tc2sc($stylearray[tplname]);
  9.                                 $stylearray[copyright]=tc2sc($stylearray[copyright]);
  10.                                 $stylearray[name]=tc2sc($stylearray[name]);
  11.                                 $chs = new Chinese('UTF8', 'GBK');
  12.                                 $stylearray[tplname]=$chs->Convert($stylearray[tplname]);
  13.                                 $stylearray[copyright]=$chs->Convert($stylearray[copyright]);
  14.                                 $stylearray[name]=$chs->Convert($stylearray[name]);
  15.                                 break;
  16.                         case "utf_tc":
  17.                                 $stylearray[tplname]=tc2sc($stylearray[tplname]);
  18.                                 $stylearray[copyright]=tc2sc($stylearray[copyright]);
  19.                                 $stylearray[name]=tc2sc($stylearray[name]);
  20.                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  21.                                 $chs = new Chinese('UTF8', 'GBK');
  22.                                 $stylearray[tplname]=$chs->Convert($stylearray[tplname]);
  23.                                 $stylearray[copyright]=$chs->Convert($stylearray[copyright]);
  24.                                 $stylearray[name]=$chs->Convert($stylearray[name]);
  25.                                 break;
  26.                         case "utf_sc":
  27.                                 require_once DISCUZ_ROOT.'include/chinese.class.php';
  28.                                 $chs = new Chinese('UTF8', 'GBK');
  29.                                 $stylearray[tplname]=$chs->Convert($stylearray[tplname]);
  30.                                 $stylearray[copyright]=$chs->Convert($stylearray[copyright]);
  31.                                 $stylearray[name]=$chs->Convert($stylearray[name]);
  32.                                 break;
  33.                         case "gbk":
  34.                                 break;
  35.                         }
复制代码


在最底?>上面加
  1. function tc2sc($str){
  2.         $outstr="";
  3.         for($i=0; $i < strlen($str); $i++) {
  4.         $ch=ord(substr($str,$i,1));
  5.         if($ch > 127) {
  6.                 $char=substr($str,$i,3);
  7.                 $loc=strpos(strTC,$char);
  8.             if ($loc !== false) $char=substr(strSC,$loc,3);
  9.             $outstr.=$char;
  10.             $i+=2;
  11.         } else {
  12.             $outstr.=substr($str,$i,1);
  13.         }
  14.     }
  15.     return $outstr;
  16. }
复制代码

[ 本帖最后由 Eiffel 于 2006-9-25 00:16 编辑 ]
回复

使用道具 举报

kjmdiba 发表于 2006-9-24 19:52:42 | 显示全部楼层
真的可以??
回复

使用道具 举报

wlqc 发表于 2006-9-24 19:57:55 | 显示全部楼层
是好东东!~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 10:40 , Processed in 0.028179 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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