TShopping

 找回密碼
 註冊
搜索
查看: 1578|回復: 6

[分享] 虛擬形像 AL8 for Discuz! 6.0 (big5, GBK, UTF-8) - 2007.11.13 更新

  [複製鏈接]
發表於 2008-5-24 13:07:53 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
作  者: T.O.M.
AL8   版: alan888
技術支援: http://www.alan888.com/Discuz/index.php
演  示: http://www.alan888.com/D6/plugin ... module=virtualimage
適用版本:  Discuz! 6.0.0
說  明: 根據  Discuz! 6.0.0 插件格式整理, 完善的後台管理只須匯入 "discuz_plugin_virtualimage.txt" 及 "discuz_plugin_images_admin.txt", 而不用修改任可後台文件, 功能設定包括編輯及加入形象, 批量修改形象價格, 修改會員形象等

新增功能: 按 Discuz! 6.0.0 規範重新編寫所有模板及檔案

注  意:
照相館必須服務器支援 GD 庫才可正常使用


由於本插件修改較多及容易出錯, 本站特提供已修改好的所有檔案供參考 (按 20070904 版本修改), 該等文件放在插件包內 hacked 的目錄下


全新安裝辦法:
1. 下載程式附件 virtualimage_60_Big5.rar (繁體中文), virtualimage_60_GB.rar (簡體中文) virtualimage_60_TC_UFT8.rar (UTF-8 繁體中文) 解壓後將 upload 目錄下所有文件按原設定上載至相關目錄 (discuz_plugin_virtualimage.txt  及 discuz_plugin_images_admin.txt 檔案不用上載)

2. 往下帖下載附件 2-10 , 解壓後上載至相關目錄

或在此下載http://www.alan888.com/Discuz/viewthread.php?tid=63

3. 將 virtualimage/photo 的目錄屬性設為 "777"

4. 執行 images_install.php , 安裝完畢後僅記刪除 images_install.php
例: 在網址列輸入 http://網址/images_install.php, 然後按指示執行
注意: 在 MySQL 4.1 或已上版本執行時請注意在 config.inc.php 的 $dbcharset 對應碼設定, 如沒有設定將按 config.inc.php 的 $charset 內的語系進行安裝

5. 打開附件的 discuz_plugin_virtualimage.txt 將內容剪帖至:
後台→插件設置→插件管理→貼入 "導入插件數據" 下的空格內→提交

6. 後台→插件設置→插件設置→在 "虛擬形象" 點擊 "[插件參數設置] " 及設定好各項細節
注意: "選擇交易方式" 內請填上 extcredits 後的編號, 例如 "2" = 現金 (注意: 只需填上編號)

7. 打開附件的 discuz_plugin_images_admin.txt 將內容剪帖至
後台→插件設置→插件管理→貼入 "導入插件數據" 下的空格內→提交

8. 修改 viewthread.php
  1. $postlist = $attachtags = $attachlist = array();
複製代碼
在上面加上
  1. //-----------------------------virtualimage
  2.         require_once './forumdata/cache/plugin_virtualimage.php';
  3.         $imagesset = $_DPLUGIN['virtualimage']['vars'];
  4.         unset($_DPLUGIN['virtualimage']['vars']);
  5.         if($imagesset[openalpha]==1){
  6.                 $alpha = "FILTER: alpha(opacity=\"+WearArray+\")";
  7.         }
  8.         $imagesdatas = '';
  9. //----------------------------
複製代碼
找 (注意不連後面的 "," 號)
  1. mf.customstatus
複製代碼
在後面插入
  1. , mf.useimages
複製代碼
  1. $firstpid, $videoopen
複製代碼
在後面插入
  1. , $imagesdatas, $vimages, $imagesset
複製代碼
  1. $post['avatar'] = '<div class="avatar"><img class="avatar" src="images/avatars/noavatar.gif" alt="" />';
  2.                         }
複製代碼
在下面加上
  1. //------------------------------------------------------------virtualimage
  2.                 if ($post['gender']!='0' && $post['anonymous']=='0' && ($imagesset['orderuse']=='1' || $post['useimages']=='1')){
  3.                         if ($post[gender]==1){
  4.                         $imagesdata[tempequip] = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //male initial
  5.                         $imagesdata[sex] = "m";
  6.                         $imagesdata[upid] = "init";
  7.                         }elseif ($post[gender]==2){
  8.                         $imagesdata[tempequip] = '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //female initial
  9.                         $imagesdata[sex] = "f";
  10.                         $imagesdata[upid] = "initf";
  11.                         }
  12.                 $imagesdata[pid] = $post[pid];
  13.                   $imagesdata[uid] = $post[uid];
  14.                 $imagesdatas[] = $imagesdata;
  15.                 $post['avatar'] = "<div class=\"imagefixeddiv\"><div class=\"imagefixed\"><table summary=\"meminfo\" cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"border-top:none;\"><div id=\"Show{$post['pid']}\" class=\"viavatar\"></div></td></tr></table></div>";
  16.                 }

  17. //--------------------------------------------------------------
複製代碼
找 (對下一行)
  1.                         if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
  2.                                 $post['avatar'] .= '
  3. <img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0" alt="" />';
  4.                         }
  5.                         $post['avatar'] .= '</div>';
  6.                 }
複製代碼
改為
  1.                         if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
  2.                                 $post['avatar'] .= '</div><p><img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0" alt="" /></p>';
  3.                         }else{
  4.                         $post['avatar'] .= '</div>';
  5.                 }
  6.         }
複製代碼
  1. viewthread_parsetags();
複製代碼
在下面加上
  1. //--------------------------------------------virtualimage
  2.        if($imagesdatas!=''){
  3.                 $vimages = '';
  4.                 require_once('./virtualimage/global.php');
  5.                 $vimages = images_showimages($imagesdatas,$alhpa,$imagesset[imageurl]);
  6.                 unset($imagesdatas,$imagesdata,$alpha);
  7.         }
  8. //--------------------------------------
複製代碼
9. 修改 space.php
  1. include_once language('spaces');
複製代碼
在下面加上
  1. //-----------------------------virtualimage queries
  2. require_once DISCUZ_ROOT.'./forumdata/cache/plugin_virtualimage.php';
  3. $imagesset = $_DPLUGIN['virtualimage']['vars'];
  4. if($imagesset[openalpha]){$alpha = "FILTER: alpha(opacity=\"+WearArray+\")";}
  5. //-----------------------------
複製代碼
  1. $uid = $member['uid'];
複製代碼
在上面加上
  1. //------------------------------------------------------------virtualimage
  2. $member['avatar'] = $member['avatar'] ? "<div class=\"avatar\" style=\"width: ".$member['avatarwidth']."\"><img src=\"$member[avatar]\" width=\"$member[avatarwidth]\" height=\"$member[avatarheight]\" border=\"0\" alt=\"\"  /></div>" : '<div class=\"avatar\" style=\"width: 128px\"><img class="avatar" src="images/avatars/noavatar.gif" alt="" /></div>';
  3.         if ($imagesset['orderuse']!='1' && ($member['useimages'] != 1 ||  $member[gender]==0)){
  4.                 $member['avatar'] = $member['avatar'];
  5.                 }else{
  6.                         if ($member[gender]==1){
  7.                         $tempequip =  '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //male initial
  8.                         $sex = "m";
  9.                         $upid = "init";
  10.                         }elseif ($member[gender]==2){
  11.                         $tempequip =  '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //female initial
  12.                         $sex = "f";
  13.                         $upid = "initf";
  14.                         }

  15.                 $userwearip =  '400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-40 0-400-400';//goods check
  16.                 $cookiearray = split('-', $tempequip);
  17.                 $weararray = split('-', $userwearip);
  18.                 $imagescookie = $db->query("SELECT * FROM {$tablepre}images_user  where userid = '$member[uid]' and dafaultuse = '1' and (suitable = '$sex' or suitable = 't')");
  19.                 while ($userimages = $db->fetch_array($imagescookie)){
  20.                 $tempi = $userimages[classid];
  21.                 $cookiearray[$tempi] = $userimages[picid];
  22.                         if($imagesset[beold]){
  23.                         $images_weardate = $userimages[endurance] - (time() -  $userimages[lastuse]);
  24.                         $images_weardate = ceil($images_weardate/8640);
  25.                                 if ($images_weardate <= 0){
  26.                                 $db->query("UPDATE {$tablepre}images_user SET  dafaultuse = '3' WHERE userid='$member[userid]' and picid = '$userimages[facepicid]' and classid=  '$userimages[classid]' and dafaultuse='1'");
  27.                                 if($userimages[classid] ==  8||$userimages[classid]==9||$userimages[classid]==11||$userimages[classid] ==13||$userimages[classid]==14||$userimages[classid]==18){
  28.                                 $userupid = $upid;
  29.                                 }else{
  30.                                 $userupid = "0";
  31.                                 }
  32.                                 $cookiearray[$tempi] = $userupid;
  33.                                 }else{
  34.                                 $weararray[$tempi] = $images_weardate;
  35.                                 }
  36.                         }else{
  37.                         $weararray[$tempi] = 100;
  38.                         }
  39.                 }
  40.                 $userimages = implode("-", $cookiearray);
  41.                 $userwear = implode("-", $weararray);
  42.                 $member['avatar'] = "
  43.                 <!-- virtualimage start-->
  44.                 <div id=\"Show{$member['uid']}\" style=\"padding:0px; left:0px; width:140px; position:relative; top:0px; height:226px; margin-top:5px; margin-bottom:5px\"></div>
  45.                 <SCRIPT language=JavaScript>
  46.                 var currface = \"$userimages\";
  47.                 var currwear = \"$userwear\";
  48.                 var showArray = currface.split('-');
  49.                 var WearArray = currwear.split('-');
  50.                         if (showArray[6] != '0'){
  51.                         showArray[8] = 0;
  52.                         showArray[9] = 0;
  53.                         }
  54.                 var s=\"\";
  55.                 for (var i=0; i<26; i++){
  56.                         if(showArray != '0'){
  57.                                 if((showArray == 'init') || (showArray == 'initf')){
  58.                                 s+='<img src=\"{$imagesset[imageurl]}'+i+'/'+showArray+'.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:'+i+';\" />';
  59.                                 }else{
  60.                                 s+='<img src=\"{$imagesset[imageurl]}'+i+'/'+showArray+'.gif\" style=\"padding:0px; position:absolute; top:0px; left:0; width:140px; height:226px; z-index:'+i+';".$alpha."\" />';
  61.                                 }
  62.                         }
  63.                 }
  64.                 s+='<img src=\"{$imagesset[imageurl]}blank.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:50\" />';
  65.                 $('Show{$member['uid']}').innerHTML=s;
  66.                 </SCRIPT>
  67.                 <!-- virtualimage end-->
  68.                 ";
  69.         }
  70. //--------------------------------------------------------------
複製代碼
10. 修改 include/viewthread_poll.inc.php, include/viewthread_activity.inc.php, include/viewthread_reward.inc.php, include/viewthread_trade.inc.php (此文件要修改 2 處), include/viewthread_video.inc.php, include/viewthread_debate.inc.php 共 6 個文件, 修改辦法相同
找 (注意不連後面的 "," 號)
  1. mf.customstatus
複製代碼
在後面插入
  1. , mf.useimages
複製代碼
  1. viewthread_parsetags();
複製代碼
在下加上面
  1. //--------------------------------------------virtualimage
  2.        if($imagesdatas!=''){
  3.                 $vimages = '';
  4.                 require_once('./virtualimage/global.php');
  5.                 $vimages = images_showimages($imagesdatas,$alhpa,$imagesset[imageurl]);
  6.                 unset($imagesdatas,$imagesdata,$alpha);
  7.         }
  8. //--------------------------------------
複製代碼
11. 修改 include/viewpro.inc.php
  1. $oltimeadd1 = $oltimeadd2 = '';
  2. }
複製代碼
在下面加上
  1. //-----------------------------virtualimage queries
  2. require_once DISCUZ_ROOT.'./forumdata/cache/plugin_virtualimage.php';
  3. $imagesset = $_DPLUGIN['virtualimage']['vars'];
  4. if($imagesset[openalpha]){$alpha = "FILTER: alpha(opacity=\"+WearArray+\")";}
  5. //-----------------------------
複製代碼
  1. $uid = $member['uid'];
複製代碼
在上面加上
  1. //------------------------------------------------------------virtualimage
  2. $member['avatar'] = $member['avatar'] ? "<div class=\"avatar\" style=\"width: ".$member['avatarwidth']."\"><img src=\"$member[avatar]\" width=\"$member[avatarwidth]\" height=\"$member[avatarheight]\" border=\"0\" alt=\"\"  /></div>" : '<div class=\"avatar\" style=\"width: 128px\"><img class="avatar" src="images/avatars/noavatar.gif" alt="" /></div>';
  3.         if ($imagesset['orderuse']!='1' && ($member['useimages'] != 1 ||  $member[gender]==0)){
  4.                 $member['avatar'] = $member['avatar'];
  5.                 }else{
  6.                         if ($member[gender]==1){
  7.                         $tempequip =  '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //male initial
  8.                         $sex = "m";
  9.                         $upid = "init";
  10.                         }elseif ($member[gender]==2){
  11.                         $tempequip =  '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //female initial
  12.                         $sex = "f";
  13.                         $upid = "initf";
  14.                         }

  15.                 $userwearip =  '400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-40 0-400-400';//goods check
  16.                 $cookiearray = split('-', $tempequip);
  17.                 $weararray = split('-', $userwearip);
  18.                 $imagescookie = $db->query("SELECT * FROM {$tablepre}images_user  where userid = '$member[uid]' and dafaultuse = '1' and (suitable = '$sex' or suitable = 't')");
  19.                 while ($userimages = $db->fetch_array($imagescookie)){
  20.                 $tempi = $userimages[classid];
  21.                 $cookiearray[$tempi] = $userimages[picid];
  22.                         if($imagesset[beold]){
  23.                         $images_weardate = $userimages[endurance] - (time() -  $userimages[lastuse]);
  24.                         $images_weardate = ceil($images_weardate/8640);
  25.                                 if ($images_weardate <= 0){
  26.                                 $db->query("UPDATE {$tablepre}images_user SET  dafaultuse = '3' WHERE userid='$member[userid]' and picid = '$userimages[facepicid]' and classid=  '$userimages[classid]' and dafaultuse='1'");
  27.                                 if($userimages[classid] ==  8||$userimages[classid]==9||$userimages[classid]==11||$userimages[classid] ==13||$userimages[classid]==14||$userimages[classid]==18){
  28.                                 $userupid = $upid;
  29.                                 }else{
  30.                                 $userupid = "0";
  31.                                 }
  32.                                 $cookiearray[$tempi] = $userupid;
  33.                                 }else{
  34.                                 $weararray[$tempi] = $images_weardate;
  35.                                 }
  36.                         }else{
  37.                         $weararray[$tempi] = 100;
  38.                         }
  39.                 }
  40.                 $userimages = implode("-", $cookiearray);
  41.                 $userwear = implode("-", $weararray);
  42.                 $member['avatar'] = "
  43.                 <!-- virtualimage start-->
  44.                 <div id=\"Show{$member['uid']}\" style=\"padding:0px; left:0px; width:140px; position:relative; top:0px; height:226px; margin-top:5px; margin-bottom:5px\"></div>
  45.                 <SCRIPT language=JavaScript>
  46.                 var currface = \"$userimages\";
  47.                 var currwear = \"$userwear\";
  48.                 var showArray = currface.split('-');
  49.                 var WearArray = currwear.split('-');
  50.                         if (showArray[6] != '0'){
  51.                         showArray[8] = 0;
  52.                         showArray[9] = 0;
  53.                         }
  54.                 var s=\"\";
  55.                 for (var i=0; i<26; i++){
  56.                         if(showArray != '0'){
  57.                                 if((showArray == 'init') || (showArray == 'initf')){
  58.                                 s+='<img src=\"{$imagesset[imageurl]}'+i+'/'+showArray+'.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:'+i+';\" />';
  59.                                 }else{
  60.                                 s+='<img src=\"{$imagesset[imageurl]}'+i+'/'+showArray+'.gif\" style=\"padding:0px; position:absolute; top:0px; left:0; width:140px; height:226px; z-index:'+i+';".$alpha."\" />';
  61.                                 }
  62.                         }
  63.                 }
  64.                 s+='<img src=\"{$imagesset[imageurl]}blank.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:50\" />';
  65.                 $('Show{$member['uid']}').innerHTML=s;
  66.                 </SCRIPT>
  67.                 <!-- virtualimage end-->
  68.                 ";
  69.         }
  70. //--------------------------------------------------------------
複製代碼
12. 修改 css 模板 (所有風格及日後新增風格如有此文件均要修改), 完成後到後台執行 "更新 css 文件緩存"
  1. div.avatar { margin: 5px; text-align: center; width: 160px; overflow: hidden }
複製代碼
在下面加上
  1.                         .imagefixeddiv {height:235px;width:140px;margin-top:-5px;}
  2.                         .imagefixed {padding:0px;vertical-align: top; position:absolute;margin-top:-5px;margin-left:-4px; width:185px;}        

  3.                         div.viavatar { margin: 5px; padding: 0px; width:140px; position:relative; height: 226px;}
複製代碼
13. 修改 viewthread 模板 (所有風格及日後新增風格如有此文件均要修改)
  1.                 <!--{if $post['first'] && $thread['replies']}--></div><div id="ad_interthread"><!--{/if}-->
  2. <!--{/loop}-->
複製代碼
在下面加上
  1. $vimages
複製代碼
14. 修改 viewthread_poll, viewthread_reward, viewthread_trade, viewthread_video, viewthread_debate, viewthread_activity 模板共 6 個模板, 修改辦法相同 (所有風格及日後新增風格如有此文件均要修改)
  1. <div id="ad_interthread"></div>
複製代碼
在上面加上
  1. $vimages
複製代碼
15. 修改 space_module 模板 (所有風格及日後新增風格如有此文件均要修改)
  1.         <!--{if $moduledata[avatar]}-->
  2.                 <a href="space.php?action=viewpro&uid=$uid"><img src="$moduledata[avatar]" width="$moduledata[avatarwidth]" height="$moduledata[avatarheight]" border="0" alt="" /></a>
  3.         <!--{else}-->
  4.                 <img src="images/avatars/noavatar.gif" alt="" />
  5.         <!--{/if}-->
複製代碼
更換為
  1. $moduledata[avatar]
複製代碼
16. 修改 viewpro 模板 (所有風格及日後新增風格如有此文件均要修改)
  1. <!--{if $member[avatar]}-->
  2.                         <img src="$member[avatar]" width="$member[avatarwidth]" height="$member[avatarheight]" border="0" alt="" />
  3.                 <!--{else}-->
  4.                         <img src="images/avatars/noavatar.gif" alt="" />
  5.                 <!--{/if}-->
複製代碼
更換為
  1. $member[avatar]
複製代碼
17. 修改 viewpro_classic 模板 (所有風格及日後新增風格如有此文件均要修改)
  1. <div class="avatar">
  2.                                 <!--{if $member[avatar]}-->
  3.                                         <img src="$member[avatar]" width="$member[avatarwidth]" height="$member[avatarheight]" alt="$member[username]" />
  4.                                 <!--{else}-->
  5.                                         <img src="images/avatars/noavatar.gif" alt="$member[username]" />
  6.                                 <!--{/if}-->
  7.                         </div>
複製代碼
更換為
  1. $member[avatar]
複製代碼
18. 修改 actions.lang.php 語言包
  1. 211 => '修改系統設置',
複製代碼
在下面加上
  1. 221 => '正在選擇個人形象',
複製代碼
19. 如設定 "是否開啟強制使用" 是否時, 會員必須到 "虛擬形像設計中心" 在 " 個人設置" 內將 "打開或關閉虛擬形像" 設定為 "啟用" 才可正常顯示會員的形像

~完成~
從 虛擬形像 AL8 版 for Discuz! 4.x / 5.x / D6RC 升級此版本
1. 下載程式附件 virtualimage_60_Big5.rar (繁體中文), virtualimage_60_GB.rar (簡體中文) virtualimage_60_TC_UFT8.rar (UTF-8 繁體中文) 解壓後將 upload 目錄下根據文件的目錄編排上載覆蓋舊版本所有文件
2. 執行上 8 - 18 的步驟修改相關檔案
3. 後台 - 更新緩存
4. 執行 images_install.php 並選擇適當的升級版本, 完成後請立即刪除 images_install.php 文件
修正:
1. 修正形象在帖中移2位的問題
凡於 2007年9月14日 16:30前下載及修改者, 請按第二帖修改
2. 修正形象改強制使用時, 在特殊帖如投票帖等不能正常顯示回帖
凡於 2007年9月19日 02:00 前下載及強制顯示形象者, 修改辦法如下 (3) 減少形象在帖中的數據庫查詢次數相同
3. 減少形象在帖中的數據庫查詢次數, 每次只會增加一次數據庫查詢
凡於 2007年9月19日 19:45 前修改此插件者, 請按第二帖修改
4. 修正形象在帖中與組頭共存的問題
凡於 2007年9月30日 03:00 前修改此插件者, 請按第二帖修改
5. 修正使用 firefox 時在 "照相館" 第二步不能顯示形象的問題
凡於 2007年11月13日 15:00前下載及修改者
下載附件 virtualimage_P20071113.rar 解壓及選擇正確語系後取代相同文件

補充:
1. 不能正常顯示 image 跳出視窗是 Discuz 6 的 bug, 可修改 include/javascript/common.js 在最底部加入
  1. var sPop = null;
  2. document.write("<style type='text/css'>");
  3. document.write(".cPopText { font-family: Tahoma, Verdana; background-color: #FFFFFF; border: 1px #666666 dotted; font-size: 12px; padding-right: 4px; padding-left: 4px; line-height: 18px; padding-top: 2px; padding-bottom: 2px; text-align:left;visibility: hidden; filter: Alpha(Opacity=80); opacity: 0.8;}");

  4. document.write("</style>");
  5. document.write("<div id='popLayer' style='position:absolute;z-index:1000' class='cPopText'></div>")

  6. function showPopupText(event) {
  7.         if(event.srcElement) o = event.srcElement; else o = event.target;
  8.         if(!o) {
  9.                 return;
  10.         }
  11.         MouseX = event.clientX;
  12.         MouseY = event.clientY;
  13.         if(o.alt != null && o.alt != '') {
  14.                 o.pop = o.alt;
  15.                 o.alt = '';
  16.         }
  17.         if(o.title != null && o.title != '') {
  18.                 o.pop = o.title;
  19.                 o.title = '';
  20.         }
  21.         if(o.pop != sPop) {
  22.                 sPop = o.pop;
  23.                 if(sPop == null || sPop == '') {
  24.                         $('popLayer').style.visibility = "hidden";
  25.                 } else {
  26.                         popStyle = o.dyclass != null ? o.dyclass : 'cPopText';
  27.                         $('popLayer').style.visibility = "visible";
  28.                         showIt();
  29.                 }
  30.         }
  31. }

  32. function showIt() {
  33.         $('popLayer').className = popStyle;
  34.         $('popLayer').innerHTML = sPop.replace(/</g,"<").replace(/>/g,">").replace(/\n/g,"
  35. ");
  36.                
  37.         var bodySL, bodyST;
  38.         if(window.pageXOffset){
  39.                 bodySL=window.pageXOffset;
  40.         }else if(document.documentElement&&document.documentElement.scrollLeft){
  41.                 bodySL=document.documentElement.scrollLeft;
  42.         }else if(document.body){
  43.                 bodySL=document.body.scrollLeft; //author: meizz
  44.         }
  45.         
  46.         if(window.pageYOffset){
  47.                 bodyST=window.pageYOffset;
  48.         }else if(document.documentElement&&document.documentElement.scrollTop){
  49.                 bodyST=document.documentElement.scrollTop;
  50.         }else if(document.body){
  51.                 bodyST=document.body.scrollTop;
  52.         }
  53.         
  54.         var bodyCW, bodyCH;
  55.         if(window.innerWidth){
  56.                 bodyCW=window.innerWidth;
  57.         }else if(document.documentElement&&document.documentElement.clientWidth){
  58.                 bodyCW=document.documentElement.clientWidth;
  59.         }else if(document.body){
  60.                 bodyCW=document.body.clientWidth; //author: meizz
  61.         }
  62.         
  63.         if(window.innerHeight){
  64.                 bodyCH=window.innerHeight;
  65.         }else if(document.documentElement&&document.documentElement.clientHeight){
  66.                 bodyCH=document.documentElement.clientHeight;
  67.         }else if(document.body){
  68.                 bodyCH=document.body.clientHeight;
  69.         }

  70.         if($('popLayer').clientWidth>300){
  71.                 var popWidth = 300;
  72.         }else{
  73.                 var popWidth = $('popLayer').clientWidth;
  74.         }
  75.         
  76.         var popWidth = $('popLayer').clientWidth;
  77.         var popHeight = $('popLayer').clientHeight;
  78.         var popLeftAdjust = MouseX + 12 + popWidth > bodyCW ? -popWidth - 24 : 0;
  79.         var popTopAdjust = MouseY + 12 + popHeight > bodyCH ? -popHeight - 24 : 0;
  80.         $('popLayer').style.left = (MouseX + 12 + bodySL + popLeftAdjust) + 'px';
  81.         $('popLayer').style.top = (MouseY + 12 + bodyST + popTopAdjust) + 'px';
  82. }

  83. if(!document.onmouseover) {
  84.         document.onmouseover = function(e) {
  85.                 var event = e ? e : window.event;
  86.                 showPopupText(event);
  87.         };
  88. }
複製代碼
2. 對 xhtml 擁護者可將 images_css 模板中 <style type="text/css"> 至 </script> 中的內容 (不含此兩句) 剪貼到風格的 css 模板內, 再修改 images_index 模板將 {template images_css} 一句刪去, 然後到後台 "更新 css 緩存", 但不修改也不會影響正常使用              

 

臉書網友討論

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
 樓主| 發表於 2008-6-10 19:31:17 | 顯示全部樓層
修正形象在帖中移位的問題
注: 由於 IE 6 及之前的版本對 div + css 的兼容問題, 移位問題與本插件無關

下例修改已測試可支援 IE 7, Firefox 及 Opera
凡於 2007年9月14日 16:30前下載及修改者, 請如下修正
1. 修改 css 模板 (如其他風格含有此模板也要修改)




  1. div.viavatar { margin: 5px; padding: 0px; width:140px; position:relative; height: 226px;}
複製代碼



在上面加上


                     
  1. .imagefixeddiv {height:235px;width:140px;margin-top:-5px;}
  2.                         .imagefixed {padding:0px;vertical-align: top; position:absolute;margin-top:-5px;margin-left:-4px; width:185px;}
複製代碼



完成後 "更新 css 緩存"

2. 修改 viewthread.php


  1. $post['avatar'] = "<div id=\"Show{$post['pid']}\" class=\"viavatar\">";
複製代碼



更換為



  1. $post['avatar'] = "<div class=\"imagefixeddiv\"><div class=\"imagefixed\"><table summary=\"meminfo\" cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"border-top:none;\"><div id=\"Show{$post['pid']}\" class=\"viavatar\"></div></td></tr></table></div>";
複製代碼

~完成~






減少形象在帖中的數據庫查詢次數
凡於 2007年9月19日 19:45 前修改此插件者, 請按下辦法修改
1. viewthead.php
找到及刪除


  1. //--------------------------------------------virtualimage
  2.        if($imagesdatas!=''){
  3.                 $vimages = '';
  4.                 require_once('./virtualimage/global.php');
  5.                 $vimages = images_showimages($imagesdatas,$alhpa,$imagesset[imageurl]);
  6.                 unset($imagesdatas,$imagesdata,$alpha);
  7.         }
  8. //--------------------------------------
複製代碼



2. 修改 viewthread.php, include/viewthread_poll.inc.php, include/viewthread_activity.inc.php, include/viewthread_reward.inc.php, include/viewthread_trade.inc.php (此文件要修改 2 處), include/viewthread_video.inc.php, include/viewthread_debate.inc.php 共 7 個文件, 修改辦法相同



  1. viewthread_parsetags();
複製代碼



在下加上面


  1. //--------------------------------------------virtualimage
  2.        if($imagesdatas!=''){
  3.                 $vimages = '';
  4.                 require_once('./virtualimage/global.php');
  5.                 $vimages = images_showimages($imagesdatas,$alhpa,$imagesset[imageurl]);
  6.                 unset($imagesdatas,$imagesdata,$alpha);
  7.         }
  8. //--------------------------------------
複製代碼







修正形象在帖中與組頭象共存的問題
凡於 2007年9月30日 03:00 前修改此插件者請作如下修改
viewthread.php



                    
  1.   if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
  2.                                 $post['avatar'] .= '<br /><img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0" alt="" />';
  3.                         }
  4.                         $post['avatar'] .= '</div>';
  5.                 }
複製代碼

改為




                     
  1. if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
  2.                                 $post['avatar'] .= '</div><p><img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0" alt="" /></p>';
  3.                         }else{
  4.                         $post['avatar'] .= '</div>';
  5.                 }
  6.         }
複製代碼







在控制面板加入 "虛擬形像"

修改 memcp.php



  1. if($allowavatar || $allownickname) {
複製代碼



在下面加上


      
  1. require_once './forumdata/cache/plugin_virtualimage.php';
  2.         $imagesset = $_DPLUGIN['virtualimage']['vars'];
  3.         if($imagesset[openalpha]){$alpha = "FILTER: alpha(opacity=\"+WearArray[i]+\")";}
複製代碼






  1. mf.avatarheight,
複製代碼



在後面插入


  1. mf.useimages, m.uid,
複製代碼






  1. $validating = array();
複製代碼



在上面加上



  1. //------------------------------------------------------------virtualimage
  2.                 if ($member['gender']!='0' && ($imagesset['orderuse']=='1' || $member['useimages']=='1')){
  3.                         if ($member[gender]==1){
  4.                                 $tempequip =  '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //male initial
  5.                                 $sex = "m";
  6.                                 $upid = "init";
  7.                                 }elseif ($member[gender]==2){
  8.                                 $tempequip =  '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //femal initial
  9.                                 $sex = "f";
  10.                                 $upid = "initf";
  11.                                 }

  12.                         $userwearip =  '400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-400-40 0-400-400';//goods expire
  13.                         $cookiearray = split('-', $tempequip);
  14.                         $weararray = split('-', $userwearip);
  15.                         $imagescookie = $db->query("SELECT * FROM {$tablepre}images_user  where userid = '$member[uid]' and dafaultuse = '1' and (suitable = '$sex' or suitable = 't')");
  16.                         while ($userimages = $db->fetch_array($imagescookie)){
  17.                         $tempi = $userimages[classid];
  18.                         $cookiearray[$tempi] = $userimages[picid];
  19.                                 if($imagesset[beold]){
  20.                                         $images_weardate = $userimages[endurance] - (time() -  $userimages[lastuse]);
  21.                                         $images_weardate = ceil($images_weardate/8640);
  22.                                         if ($images_weardate <= 0){
  23.                                                 $db->query("UPDATE {$tablepre}images_user SET  dafaultuse = '3' WHERE userid='$member[userid]' and picid = '$userimages[facepicid]' and classid=  '$userimages[classid]' and dafaultuse='1'");
  24.                                                 if($userimages[classid] ==  8||$userimages[classid]==9||$userimages[classid]==11||$userimages[classid] ==13||$userimages[classid]==14||$userimages[classid]==18){
  25.                                                         $userupid = $upid;
  26.                                                         }else{
  27.                                                         $userupid = "0";
  28.                                                         }
  29.                                                 $cookiearray[$tempi] = $userupid;
  30.                                                 }else{
  31.                                                 $weararray[$tempi] = $images_weardate;
  32.                                                 }
  33.                                 }else{
  34.                                 $weararray[$tempi] = 100;
  35.                                 }
  36.                         }
  37.                 $userimages = implode("-", $cookiearray);
  38.                 $userwear = implode("-", $weararray);
  39.                 $avatar = "
  40.                 <div id=\"Show{$member['uid']}\" style=\"padding:0px; width:140px; position: relative; height: 226px\"></div>
  41.                 <SCRIPT language=JavaScript>
  42.                 var currface = \"$userimages\";
  43.                 var currwear = \"$userwear\";
  44.                 var showArray = currface.split('-');
  45.                 var WearArray = currwear.split('-');
  46.                         if (showArray[6] != '0'){
  47.                                 showArray[8] = 0;
  48.                                 showArray[9] = 0;
  49.                         }
  50.                 var s=\"\";
  51.                 for (var i=0; i<26; i++){
  52.                         if(showArray[i] != '0'){
  53.                                 if((showArray[i] == 'init') || (showArray[i] == 'initf')){
  54.                                         s+=\"<IMG  src={$imagesset[imageurl]}\"+i+\"/\"+showArray[i]+\".gif style='padding:0;position:absolute;left:0px;width:140;height:226;z-index:\"+i+\";'>\";
  55.                                         }else{
  56.                                         s+=\"<IMG  src={$imagesset[imageurl]}\"+i+\"/\"+showArray[i]+\".gif style='padding:0;position:absolute;left:0px;width:140;height:226;z-index:\"+i+\";".$alpha." '>\";
  57.                                         }
  58.                         }
  59.                 }
  60.                 s+=\"<IMG src={$imagesset[imageurl]}blank.gif  style='padding:0;position:absolute;left:0px;width:140;height:226;z-index:50'>\";
  61.                 $('Show{$member['uid']}').innerHTML=s;
  62.                 </SCRIPT>
  63.                 ";
  64.                 }
  65. //------------------------------------------------------------virtualimage
複製代碼

版主招募中

發表於 2012-9-12 00:51:37 | 顯示全部樓層
真是汗啊  我的帖子好少啊  加油  


發表於 2012-9-12 00:52:33 | 顯示全部樓層
讚啦!讚啦~  


發表於 2013-4-9 00:03:36 | 顯示全部樓層
很好!很强大!


發表於 2015-5-20 13:21:09 | 顯示全部樓層


   不会刷墙的吧


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-5 10:33 , Processed in 0.095900 second(s), 19 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表