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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [原创] [Hack]彷D3勋章描述 For 4.0 (完整版)

[复制链接]
jeffreyli 发表于 2005-12-13 22:27:52 | 显示全部楼层 |阅读模式
繁體二樓,请大家回覆支持。
终於解决了模版显示问题其他代码没有改变,14/12/2005 11:33前安装此hack改模版就可以。

//------------------Bug更新(没有问题或新安装用户请忽略)------------------------------------------
假如大家於修改後进入勋章编辑时出现问题,
原来是本人贴出代码时写多了一个"}"而引起。
修正方法如下:

请进入 admin/misc.inc.php

  1.                 if($newname != '' && $newdescription != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, description, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newdescription', '$newimage')");
  3.                 }
复制代码


改成
  1.                 if($newname != '' && $newdescription != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, description, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newdescription', '$newimage')");
  3.                
复制代码


感谢33201指出错误。

17/12/05
//-----------------------------------------------------------------------


//-----------------------------------------------------------------------
名      称: 彷D3勋章描述 For 4.0
作  者: Jeffrey Li
技术支援: 这里(Discuz)但应该不用....
转      贴: 允许,但需标名作者
演  示: 见第一帖附件
适用版本: Discuz! 4.0.0
修改文件:admin/misc.inc.php, admin/member.inc.php, include/cache.func.php
修改模板:viewthread.htm, viewpro.htm
说  明: 虽然宣布停止开发3.0,但本人觉得勋章描述功能很好用,所以移植过来,根据4.0格式编写,
              参考了3.0的代码,采用Cache,完全不增加伺服器负荷
备      注: 经测试可在别问我是谁写的Discuz! 3.0F β3 及 Discuz! 4.0.0 勋章列表 正确运行...... (見附件6)
              http://www.alan888.com/Discuz/vi ... d=51050&fpage=1
//------------------------------------------------------------------------
1. 进行数据库升级  (从3.0升级过来的不用执行)
  1. ALTER TABLE `cdb_medals` ADD `description` VARCHAR( 100 ) NOT NULL ;
复制代码


2. admin/misc.inc.php

  1.                                 "<td bgcolor="".ALTBG1."" width="48"><input type="checkbox" name="delete[]" value="$medal[medalid]"></td>\n".
  2.                                 "<td bgcolor="".ALTBG2.""><input type="text" size="30" name="name[$medal[medalid]]" value="$medal[name]"></td>\n".
  3.                                 "<td bgcolor="".ALTBG1.""><input type="checkbox" name="available[$medal[medalid]]" value="1" $checkavailable></td>\n".
  4.                                 "<td bgcolor="".ALTBG2.""><input type="text" size="25" name="image[$medal[medalid]]" value="$medal[image]">\n".
复制代码


改成
  1.                                 "<td bgcolor="".ALTBG1."" width="48"><input type="checkbox" name="delete[]" value="$medal[medalid]"></td>\n".
  2.                                 "<td bgcolor="".ALTBG2.""><input type="text" size="30" name="name[$medal[medalid]]" value="$medal[name]"></td>\n".
  3.                                 "<td bgcolor="".ALTBG1.""><input type="checkbox" name="available[$medal[medalid]]" value="1" $checkavailable></td>\n".
  4.                                 "<td bgcolor="".ALTBG2.""><input type="text" name="description[$medal[medalid]]" value="$medal[description]" size="30"></td>\n".
  5.                                 "<td bgcolor="".ALTBG1.""><input type="text" size="25" name="image[$medal[medalid]]" value="$medal[image]">\n".
复制代码


再找
  1. <td><?=$lang['name']?></td><td><?=$lang['available']?></td><td><?=$lang['medals_image']?></td></tr>
复制代码


改成
  1. <td><?=$lang['name']?></td><td><?=$lang['available']?></td><td><?=$lang['description']?></td><td><?=$lang['medals_image']?></td></tr>
复制代码


再找
  1. <td><input type="checkbox" name="availablenew" value="1"></td>
复制代码


下面加入
  1. <td><input type="text" size="30" name="newdescription"></td>
复制代码


再找
  1.                                 $db->query("UPDATE {$tablepre}medals SET name=".($name[$id] ? '\''.dhtmlspecialchars($name[$id]).'\'' : 'name').", available='$available[$id]', image=".($image[$id] ? '\''.$image[$id].'\'' : 'image')." WHERE medalid='$id'");
复制代码


改成
  1.                                 $db->query("UPDATE {$tablepre}medals SET name=".($name[$id] ? '\''.dhtmlspecialchars($name[$id]).'\'' : 'name').", available='$available[$id]', description='$description[$id]', image=".($image[$id] ? '\''.$image[$id].'\'' : 'image')." WHERE medalid='$id'");
复制代码


再找l
  1.                 if($newname != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newimage')");
复制代码


改成
  1.                 if($newname != '' && $newdescription != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, description, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newdescription', '$newimage')");
  3.                
复制代码


2. admin/member.inc.php
(改到很累吧?)
  1.                                 "<td bgcolor="".ALTBG1.""><input type="checkbox" name="medals[$medal[medalid]]" value="1" ".(in_array($medal['medalid'], $membermedals) ? 'checked' : '')."></td></td>\n";
复制代码


改成
  1.                                 "<td bgcolor="".ALTBG1."">$medal[description]</td>\n".
  2.                                 "<td bgcolor="".ALTBG2.""><input type="checkbox" name="medals[$medal[medalid]]" value="1" ".(in_array($medal['medalid'], $membermedals) ? 'checked' : '')."></td></td>\n";
复制代码



  1. <tr class="header"><td colspan="3"><?=$lang['medals_edit']?> - <?=$member['username']?></td></tr>
  2. <tr class="category" align="center"><td><?=$lang['medals_image']?></td><td><?=$lang['name']?></td><td><?=$lang['medals_grant']?></td></tr>
复制代码


改成
  1. <tr class="header"><td colspan="4"><?=$lang['medals_edit']?> - <?=$member['username']?></td></tr>
  2. <tr class="category" align="center"><td><?=$lang['medals_image']?></td><td><?=$lang['name']?></td><td><?=$lang['description']?></td><td><?=$lang['medals_grant']?></td></tr>
复制代码


3.include/cache.func.php

  1.                         $cols = 'medalid, name, image';
复制代码


改成
  1.                         $cols = 'medalid, name, description, image';
复制代码



  1.                                 $data[$medal['medalid']] = array('name' => $medal['name'], 'image' => $medal['image']);
复制代码


改成
  1.                                 $data[$medal['medalid']] = array('name' => $medal['name'], 'description' => $medal['description'], 'image' => $medal['image']);
复制代码


如果之前没有修改过admin/misc.inc.php, admin/member.inc.php, include/cache.func.php,可以直接下载第一帖附件五更换 (模版自己改)

//--------------模版修改部分------------------------
1.viewthread.htm

  1.                                 <img src="images/common/$medal[image]" border="0" alt="$medal[name]">   
复制代码


改成
  1.                                 <img src="images/common/$medal[image]" border="0" title="$medal[name] {LF} $medal[description]">   
复制代码


2.viewpro.htm

  1.                 <img src="images/common/$medal[image]" border="0" alt="$medal[name]">  
复制代码


改成
  1.                                 <img src="images/common/$medal[image]" border="0" title="$medal[name] {LF} $medal[description]">   
复制代码

[ 本帖最后由 jeffreyli 于 2005-12-17 20:46 编辑 ]

本帖子中包含更多资源

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

x
 楼主| jeffreyli 发表于 2005-12-13 22:29:17 | 显示全部楼层
終於解決了模版顯示問題其他代碼沒有改變,14/12/2005 11:33前安裝此hack改模版就可以。

//------------------Bug更新(沒有問題或新安裝用戶請忽略)------------------------------------------
假如大家於修改後進入勛章編輯時出現問題,
原來是本人貼出代碼時寫多了一個"}"而引起。
修正方法如下:

請進入 admin/misc.inc.php

  1.                 if($newname != '' && $newdescription != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, description, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newdescription', '$newimage')");
  3.                 }
复制代码


改成
  1.                 if($newname != '' && $newdescription != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, description, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newdescription', '$newimage')");
  3.                
复制代码


感謝33201指出錯誤。

17/12/05
//-----------------------------------------------------------------------


//-----------------------------------------------------------------------
名      稱: 彷D3勛章描述 For 4.0
作  者: Jeffrey Li
技術支援: 這裡(Discuz)但應該不用....
轉      貼: 允許,但需標名作者
演  示: 見第一帖附件
適用版本: Discuz! 4.0.0
修改文件:admin/misc.inc.php, admin/member.inc.php, include/cache.func.php
修改模板:viewthread.htm, viewpro.htm
說  明: 雖然宣布停止開發3.0,但本人覺得勛章描述功能很好用,所以移植過來,根據4.0格式編寫,
              參考了3.0的代碼,采用Cache,完全不增加伺服器負荷
備      注: 經測試可在別問我是誰寫的Discuz! 3.0F β3 及 Discuz! 4.0.0 勛章列表 正確運行...... (見附件6)
              http://www.alan888.com/Discuz/vi ... d=51050&fpage=1
//------------------------------------------------------------------------
1. 進行數據庫升級  (從3.0升級過來的不用執行)
  1. ALTER TABLE `cdb_medals` ADD `description` VARCHAR( 100 ) NOT NULL ;
复制代码


2. admin/misc.inc.php

  1.                                 "<td bgcolor="".ALTBG1."" width="48"><input type="checkbox" name="delete[]" value="$medal[medalid]"></td>\n".
  2.                                 "<td bgcolor="".ALTBG2.""><input type="text" size="30" name="name[$medal[medalid]]" value="$medal[name]"></td>\n".
  3.                                 "<td bgcolor="".ALTBG1.""><input type="checkbox" name="available[$medal[medalid]]" value="1" $checkavailable></td>\n".
  4.                                 "<td bgcolor="".ALTBG2.""><input type="text" size="25" name="image[$medal[medalid]]" value="$medal[image]">\n".
复制代码


改成
  1.                                 "<td bgcolor="".ALTBG1."" width="48"><input type="checkbox" name="delete[]" value="$medal[medalid]"></td>\n".
  2.                                 "<td bgcolor="".ALTBG2.""><input type="text" size="30" name="name[$medal[medalid]]" value="$medal[name]"></td>\n".
  3.                                 "<td bgcolor="".ALTBG1.""><input type="checkbox" name="available[$medal[medalid]]" value="1" $checkavailable></td>\n".
  4.                                 "<td bgcolor="".ALTBG2.""><input type="text" name="description[$medal[medalid]]" value="$medal[description]" size="30"></td>\n".
  5.                                 "<td bgcolor="".ALTBG1.""><input type="text" size="25" name="image[$medal[medalid]]" value="$medal[image]">\n".
复制代码


再找
  1. <td><?=$lang['name']?></td><td><?=$lang['available']?></td><td><?=$lang['medals_image']?></td></tr>
复制代码


改成
  1. <td><?=$lang['name']?></td><td><?=$lang['available']?></td><td><?=$lang['description']?></td><td><?=$lang['medals_image']?></td></tr>
复制代码


再找
  1. <td><input type="checkbox" name="availablenew" value="1"></td>
复制代码


下面加入
  1. <td><input type="text" size="30" name="newdescription"></td>
复制代码


再找
  1.                                 $db->query("UPDATE {$tablepre}medals SET name=".($name[$id] ? '\''.dhtmlspecialchars($name[$id]).'\'' : 'name').", available='$available[$id]', image=".($image[$id] ? '\''.$image[$id].'\'' : 'image')." WHERE medalid='$id'");
复制代码


改成
  1.                                 $db->query("UPDATE {$tablepre}medals SET name=".($name[$id] ? '\''.dhtmlspecialchars($name[$id]).'\'' : 'name').", available='$available[$id]', description='$description[$id]', image=".($image[$id] ? '\''.$image[$id].'\'' : 'image')." WHERE medalid='$id'");
复制代码


再找l
  1.                 if($newname != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newimage')");
复制代码


改成
  1.                 if($newname != '' && $newdescription != '' && $newimage != '') {
  2.                         $db->query("INSERT INTO        {$tablepre}medals (name, available, description, image) VALUES ('".dhtmlspecialchars($newname)."', '$newavailable', '$newdescription', '$newimage')");
  3.                
复制代码


2. admin/member.inc.php
(改到很累吧?)
  1.                                 "<td bgcolor="".ALTBG1.""><input type="checkbox" name="medals[$medal[medalid]]" value="1" ".(in_array($medal['medalid'], $membermedals) ? 'checked' : '')."></td></td>\n";
复制代码


改成
  1.                                 "<td bgcolor="".ALTBG1."">$medal[description]</td>\n".
  2.                                 "<td bgcolor="".ALTBG2.""><input type="checkbox" name="medals[$medal[medalid]]" value="1" ".(in_array($medal['medalid'], $membermedals) ? 'checked' : '')."></td></td>\n";
复制代码



  1. <tr class="header"><td colspan="3"><?=$lang['medals_edit']?> - <?=$member['username']?></td></tr>
  2. <tr class="category" align="center"><td><?=$lang['medals_image']?></td><td><?=$lang['name']?></td><td><?=$lang['medals_grant']?></td></tr>
复制代码


改成
  1. <tr class="header"><td colspan="4"><?=$lang['medals_edit']?> - <?=$member['username']?></td></tr>
  2. <tr class="category" align="center"><td><?=$lang['medals_image']?></td><td><?=$lang['name']?></td><td><?=$lang['description']?></td><td><?=$lang['medals_grant']?></td></tr>
复制代码


3.include/cache.func.php

  1.                         $cols = 'medalid, name, image';
复制代码


改成
  1.                         $cols = 'medalid, name, description, image';
复制代码



  1.                                 $data[$medal['medalid']] = array('name' => $medal['name'], 'image' => $medal['image']);
复制代码


改成
  1.                                 $data[$medal['medalid']] = array('name' => $medal['name'], 'description' => $medal['description'], 'image' => $medal['image']);
复制代码


如果之前沒有修改過admin/misc.inc.php, admin/member.inc.php, include/cache.func.php,可以直接下載第一帖附件五更換 (模版自己改)

//--------------模版修改部分------------------------
1.viewthread.htm

  1.                                 <img src="images/common/$medal[image]" border="0" alt="$medal[name]">   
复制代码


改成
  1.                                 <img src="images/common/$medal[image]" border="0" title="$medal[name] {LF} $medal[description]">   
复制代码


2.viewpro.htm

  1.                 <img src="images/common/$medal[image]" border="0" alt="$medal[name]">  
复制代码


改成
  1.                                 <img src="images/common/$medal[image]" border="0" title="$medal[name] {LF} $medal[description]">   
复制代码

[ 本帖最后由 jeffreyli 于 2005-12-17 20:47 编辑 ]
回复

使用道具 举报

wuhu911 发表于 2005-12-13 22:31:32 | 显示全部楼层
晕,太麻烦鸟
回复

使用道具 举报

linsie 发表于 2005-12-13 22:37:20 | 显示全部楼层
还需要这个 D4都上了
回复

使用道具 举报

 楼主| jeffreyli 发表于 2005-12-13 22:38:32 | 显示全部楼层
原帖由 linsie 于 2005-12-13 22:37 发表
还需要这个 D4都上了

D4 的沒有描述功能
回复

使用道具 举报

freddy 发表于 2005-12-13 22:44:52 | 显示全部楼层
提个建议!能不能简体放第一楼,繁体放第二楼?
回复

使用道具 举报

 楼主| jeffreyli 发表于 2005-12-13 22:55:34 | 显示全部楼层
原帖由 freddy 于 2005-12-13 22:44 发表
提个建议!能不能简体放第一楼,繁体放第二楼?

改了
回复

使用道具 举报

秋舞叶 发表于 2005-12-13 22:58:13 | 显示全部楼层
换行应该用 /n 吧
回复

使用道具 举报

gongsunjin 发表于 2005-12-13 23:22:26 | 显示全部楼层
zhichi希望快点完成
回复

使用道具 举报

Trangerinfo 发表于 2005-12-14 02:01:36 | 显示全部楼层
就差一点了~~加油~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 01:19 , Processed in 0.034435 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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