列印

虛擬形像 For Discuz 7.0 (繁/UTF-8)

虛擬形像 For Discuz 7.0 (繁/UTF-8)

from: http://www.alan888.com/Discuz/viewthread.php?tid=159840

虛擬形像 For Discuz 7.0 (繁/UTF-8)

作  者: T.O.M.
AL8   版: alan888
技術支援: http://www.alan888.com/Discuz/index.php
演  示: http://www.alan888.com/D7/plugin ... module=virtualimage
適用版本:  Discuz! 7.0
說  明: 根據  Discuz! 7.0 插件格式整理, 完善的後台管理只須匯入 "discuz_plugin_virtualimage.txt" 及 "discuz_plugin_images_admin.txt", 而不用修改任可後台檔案, 功能設定包括編輯及加入形象, 批量修改形象價格, 修改會員形象等
版本更新:
1. 配合 Discuz 7.0 的頭像顯示方式重新編寫程式及模板;
2. 在非使用 "虛擬形像" 時不會加入 "虛擬形像" 使用的 css, 減少資源的損耗;
3. 配合 Discuz 7.0 的頭像, 自動產生迷你 "虛擬形像";
4. 改用新方式修改辦法, 大大減少及簡化此插件檔案上的修改;
5. "過期形像" 除會員進入 "虛擬形像" 時更新外, "虛擬形像後台管理" 增加 "過期形像" 更新 (使用過期形像時才會顯示), 在使用 "形象過期" 同時顯示形象將不會增加資料庫查詢次數;
6. 修正會員更改性別時顯示舊形象的問題;
7. 由其他 Discuz 版本升級至 Discuz 7.0 (UC 版本) 所有原來會員的形象可以順利升級及正常使用;
8. 為減少此插件的資源損耗, "強制使用形象" 修改為只提供會員一經使用 "過期形像" 便不能關閉帖內顯示


注  意:
1. 照相館必須伺服器支援 GD 庫才可正常使用
2. 由於 Internet Explorer 6 對 div + css 的相容不足, 部份形象可能出現移位現象



由於本插件修改較多及容易出錯, 修改時請先備份所有檔案及加倍小心


虛擬形像 For 7.0 全新安裝辦法

1. 下載程式附件 virtualimage_7_Big5.rar (繁體中文), virtualimage_7_UTF8.rar (UTF-8 繁體中文) 解壓後將 upload 目錄下所有檔案按原設定上載至相關目錄

2. 下載下列附件 VLimages.part01.rar 至 VLimages.part09.rar 解壓後上載至相關目錄
http://linux0911.no-ip.info/Discuz/thread-15-1-1.html

3. 將 virtualimage/photo 及  virtualimage/avatar 的目錄屬性設為 "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. 後台→擴展→插件設置→導入→按 "瀏覽" 及選取 "discuz_plugin_images_admin.txt"→提交

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

8. 修改 plugin.php
複製內容到剪貼簿
代碼:
require_once './include/common.inc.php';
在上面加上
複製內容到剪貼簿
代碼:
define('images_css', 'virtualimage');
9. 修改 memcp.php
複製內容到剪貼簿
代碼:
if($msnnew && !isemail($msnnew)) {
在上面加上
複製內容到剪貼簿
代碼:
                        if(!empty($discuz_viid) && $gendernew != $member['gender']){
                                showmessage('你的虛擬形象正在使用中,不能更改性別,請先在虛擬形象內的個人設置設定為關閉虛擬形像 ',"plugin.php?identifier=virtualimage&module=virtualimage&index=option");
                        }
10. 修改 viewthread.php
複製內容到剪貼簿
代碼:
m.invisible,
後面插入
複製內容到剪貼簿
代碼:
m.viid,
複製內容到剪貼簿
代碼:
discuz_uc_avatar($post['authorid']);
更換為
複製內容到剪貼簿
代碼:
discuz_uc_avatar($post['authorid'],'','',$post['viid'],$post['pid']);
11. 修改 eccredit.php
複製內容到剪貼簿
代碼:
m.groupid,
在後面插入
複製內容到剪貼簿
代碼:
m.viid,
複製內容到剪貼簿
代碼:
discuz_uc_avatar($member['uid']
更換為
複製內容到剪貼簿
代碼:
discuz_uc_avatar($member['uid'],'','',$member['viid'],$member['uid']
12. 修改 include/common.inc.php
複製內容到剪貼簿
代碼:
m.customshow,
在後面插入
複製內容到剪貼簿
代碼:
m.viid AS discuz_viid,
13. 修改 include/global.func.php
找 (這是修正 D7 的問題, 如果曾經安裝本站的其他插件例如 "社區銀行" 則可能已修改此檔案, 請先作檢查)
複製內容到剪貼簿
代碼:
$msgforward['refreshtime'] = intval($msgforward['refreshtime']) * 1000;
在下面加上
複製內容到剪貼簿
代碼:
        $url_forward = str_replace('&', '&', $url_forward);
複製內容到剪貼簿
代碼:
function discuz_uc_avatar($uid, $size = '', $returnsrc = FALSE) {
        if($uid > 0) {
                $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
                $uid = abs(intval($uid));
                if(empty($GLOBALS['avatarmethod'])) {
                        return $returnsrc ? UC_API.'/avatar.php?uid='.$uid.'&size='.$size : '<img src="'.UC_API.'/avatar.php?uid='.$uid.'&size='.$size.'" />';
                } else {
                        $uid = sprintf("%09d", $uid);
                        $dir1 = substr($uid, 0, 3);
                        $dir2 = substr($uid, 3, 2);
                        $dir3 = substr($uid, 5, 2);
                        $file = UC_API.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).'_avatar_'.$size.'.jpg';
                        return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.UC_API.'/images/noavatar_'.$size.'.gif\'" />';
                }
        } else {
                $file = $GLOBALS['boardurl'].IMGDIR.'/syspm.gif';
                return $returnsrc ? $file : '<img src="'.$file.'" />';
        }
}
更換為
複製內容到剪貼簿
代碼:
function discuz_uc_avatar($uid, $size = '', $returnsrc = FALSE, $viid ='', $vid='') {
        require DISCUZ_ROOT.'./forumdata/cache/plugin_virtualimage.php';
        $image_close = $_DPLUGIN['virtualimage']['vars']['imagesclose'];
        $image_url = $_DPLUGIN['virtualimage']['vars']['imageurl'];
        if(!$image_close && $viid){
                $vi_avatar = "<div id=\"Show{$vid}\"  class=\"imagefixeddiv\"></div>
<script type=\"text/javascript\">
var image_url = '".$image_url."';
showimage('Show{$vid}','{$viid}');
</script>";
                return $vi_avatar;
        }else{
        $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
        $uid = abs(intval($uid));      
                if($size == 'small' && !$image_close && file_exists("virtualimage/avatar/".$uid."_s.jpg")){
                        clearstatcache();
                        return         '<img src="virtualimage/avatar/'.$uid.'_s.jpg">';
                }else{
                        $uid = sprintf("%09d", $uid);
                        $dir1 = substr($uid, 0, 3);
                        $dir2 = substr($uid, 3, 2);
                        $dir3 = substr($uid, 5, 2);
                        return $returnsrc ? UC_API.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2)."_avatar_$size.jpg" : '<img src="'.UC_API.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2)."_avatar_$size.jpg".'" onerror="this.onerror=null;this.src=\''.UC_API.'/images/noavatar_'.$size.'.gif\'">';
                }
        }
}
14. 修改 include/js/common.js
在最尾部份加上
複製內容到剪貼簿
代碼:
function showimage(showpid,currface) {
        if(currface == '') {
                currface = 0;
        }
        var faceArray = currface.split('-');
        if(faceArray[6] != 0){
                faceArray[8] = 0;
                faceArray[9] = 0;
        }
        if(faceArray[12] != 0) {
                faceArray[6] = 0;
                faceArray[8] = 0;
                faceArray[9] = 0;
                faceArray[10] = 0;
                faceArray[11] = 0;
                faceArray[13] = 0;
                faceArray[14] = 0;
                faceArray[17] = 0;
                faceArray[18] = 0;
                faceArray[20] = 0;
                faceArray[21] = 0;
                faceArray[22] = 0;
        }
        var s='';
        for(var i=0; i < 26; i++) {
                if(faceArray[i] != '0'){
                        s += '<img src="'+image_url+i+'/'+faceArray[i]+'.gif" style="position:absolute; width:140px; height:226px;z-index: '+i+'" alt="" />';
                }
        }
        s += '<img src="'+image_url+'blank.gif" style="position:absolute; width:140px; height:226px;" alt="" />';
        $(showpid).innerHTML = s;
}
15. 修改 css_script 模板(所有風格及日後新增風格如有此檔案均要修改)
複製內容到剪貼簿
代碼:
<!--{if CURSCRIPT == 'forumdisplay' && $forum['ismoderator']}-->
在上面加上
複製內容到剪貼簿
代碼:
<!--{if images_css == 'virtualimage'}-->{template images_css}<!--{/if}-->
複製內容到剪貼簿
代碼:
.profile_side .avatar { margin: 25px 0; text-align: center; }
更換為
複製內容到剪貼簿
代碼:
.profile_side .avatar { margin: 25px 0 25px 32px;}
16. 修改 css_common 模板(所有風格及日後新增風格如有此檔案均要修改)
在最尾部份加上
複製內容到剪貼簿
代碼:
/*virtualimage*/
.imagefixeddiv{height:226px;width:140px;}
/*virtualimage*/
17. 修改 viewpro_classic 模板(所有風格及日後新增風格如有此檔案均要修改)
複製內容到剪貼簿
代碼:
{echo discuz_uc_avatar($member[uid])}
更換為
複製內容到剪貼簿
代碼:
{echo discuz_uc_avatar($member[uid], '', '', $member[viid], $member[uid])}
18. 修改 viewthread_fastpost 模板(所有風格及日後新增風格如有此檔案均要修改)
複製內容到剪貼簿
代碼:
{echo discuz_uc_avatar($discuz_uid)}
更換為
複製內容到剪貼簿
代碼:
{echo discuz_uc_avatar($discuz_uid,'','',$discuz_viid, "my_$discuz_uid")}
19. 修改 actions.lang.php 語言包
複製內容到剪貼簿
代碼:
211 => '修改系統設置',
在下面加上
複製內容到剪貼簿
代碼:
        221 => '正在選擇個人形象',
20. 後台 -> 更新快取

~完成~
引用:
從虛擬形像 For Discuz 6.1 升級 (如使用虛擬形像 For Discuz 6.1 前的版本請先至虛擬形像 For Discuz 6.1)

1. 下載程式附件 virtualimage_7_Big5.rar (繁體中文), virtualimage_7_UTF8.rar (UTF-8 繁體中文) 解壓後將 upload 目錄下所有檔案 (除 images_install.php 檔案外) 按原設定上載至相關目錄覆蓋舊版本的相同檔案

2. 將 virtualimage/photo 及  virtualimage/avatar 的目錄屬性設為 "777"

3. 上載及執行 upvi61_70.php 升級檔案, 完成後刪除此檔案

4. 按全新安裝步驟 8 - 20 修改相關檔案
注: 插件包內的 uninistall_vi.php 是卸載 "虛擬形像" 資料用
引用:
修正
1. 修正後台顯示 "是否允雪|員贈送物品" (big5 版本)
在 2008-12-20 20:55 前下載者如下修正
引用:
後台 -> 擴展 -> 論壇插件 -> 管理 -> 虛擬形象 -> 詳情 -> 變數 -> 在 "顯示順序: 8"  -> 詳情 -> 在 "配置名稱" 修正為 ( 是否允許會員贈送物品)
附件: 您所在的用戶組無法下載或查看附件
Hack 安裝錯誤, 80% 來自粗心, 請專心安裝
Linux0911 打造您的個性論壇

本人現在忙於研究所, 沒多的時間管論壇, 有問題別發 pm 給我, 謝謝~
Linux0911 Forum © 2004-2009 All Rights Reserved.

TOP

引用:
其他可選修改辦法

1. 邊欄改成全虛擬形象展示
修改 include/request/assistant.inc.php
複製內容到剪貼簿
代碼:
$avatar = discuz_uc_avatar($GLOBALS['discuz_uid'], 'small');
更換為
複製內容到剪貼簿
代碼:
$avatar = discuz_uc_avatar($GLOBALS['discuz_uid'],'big','',$GLOBALS['discuz_viid'], 'my_'.$GLOBALS['discuz_uid'].'');
修改 request_assistant 模板
複製內容到剪貼簿
代碼:
        <a href="space.php?uid=$GLOBALS[discuz_uid]" target="_blank">$GLOBALS[discuz_userss]</a>
        

        <span title="{lang onlinetime_total} $GLOBALS[oltime] {lang hour}"><!--{if !empty($GLOBALS[invisible])}-->{lang index_invisibles}<!--{else}-->{lang login_normal_mode}<!--{/if}--></span>
        
更換為
複製內容到剪貼簿
代碼:
        <p style="clear: both"><a href="space.php?uid=$GLOBALS[discuz_uid]" target="_blank" style="margin-right:8px">$GLOBALS[discuz_userss]</a>
      
        <span title="{lang onlinetime_total} $GLOBALS[oltime] {lang hour}"><!--{if !empty($GLOBALS[invisible])}-->{lang index_invisibles}<!--{else}-->{lang login_normal_mode}<!--{/if}--></span></p>
2. 本站所發的 社區銀行 1.03CP For Discuz! 7.0.0 修改辦法
複製內容到剪貼簿
代碼:
discuz_uc_avatar($userbank['uid']);
更換為
複製內容到剪貼簿
代碼:
discuz_uc_avatar($discuz_uid,'','',$discuz_viid ,$discuz_uid);
Hack 安裝錯誤, 80% 來自粗心, 請專心安裝
Linux0911 打造您的個性論壇

本人現在忙於研究所, 沒多的時間管論壇, 有問題別發 pm 給我, 謝謝~
Linux0911 Forum © 2004-2009 All Rights Reserved.

TOP



論壇聲明
  • 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
    如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
    請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!
最佳瀏覽解析度:不低於 1024 (最佳 1280 以上).(支援 IE 7, Mozilla Firefox, Safari, Chrome)
The Best Surfing Resolution: No Lower than 1024 (Best: above 1280).(IE 7, Mozilla Firefox, Safari, Chrome Supported)