作 者: 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 繁體中文) 或 virtualimage_7_GBK.rar (簡體中文) 解壓後將 upload 目錄下所有文件按原設定上載至相關目錄
2. 下載下列附件 VLimages.part01.rar 至 VLimages.part09.rar 解壓後上載至相關目錄

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件

圖片附件:
遊客無法下載或閱讀圖片附件
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
找
後面插入
找
discuz_uc_avatar($post['authorid']);
更換為
discuz_uc_avatar($post['authorid'],'','',$post['viid'],$post['pid']);
11.
修改 eccredit.php
找
在後面插入
找
discuz_uc_avatar($member['uid']
更換為
discuz_uc_avatar($member['uid'],'','',$member['viid'],$member['uid']
12.
修改 include/common.inc.php
找
在後面插入
13.
修改 include/global.func.php
(這是修正 D7 的問題, 如果曾經安裝本站的其他插件例如 "社區銀行" 則可能已修改此檔案, 請先作檢查)
舊版本找
$msgforward['refreshtime'] = intval($msgforward['refreshtime']) * 1000;
20081224 patch 後版本找
$msgforward['refreshtime'] = $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 && $uid > 0){
$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;
}elseif ($uid > 0){
$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\'">';
}
}else {
$file = $GLOBALS['boardurl'].IMGDIR.'/syspm.gif';
return $returnsrc ? $file : '<img src="'.$file.'" />';
}
}
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.
修改 ec_credit 模板
2008.01.15 加入修改, 解決 IE6 兼容問題
找
更換為
<div class="side" style="width:180px;overflow:hidden;">
20.
修改 actions.lang.php 語言包
找
在下面加上
21.
後台 -> 更新緩存
如需更多圖庫, 可參考下連接
http://www.alan888.com/Discuz/fo ... =type&typeid=22
~完成~
從虛擬形像 For Discuz 6.1 升級 (如使用虛擬形像 For Discuz 6.1 前的版本請先至虛擬形像 For Discuz 6.1)
1. 下載程式附件 virtualimage_7_Big5.rar (繁體中文), virtualimage_7_UTF8.rar (UTF-8 繁體中文) 或 virtualimage_7_GBK.rar (簡體中文) 解壓後將 upload 目錄下所有文件 (除 images_install.php 文件外) 按原設定上載至相關目錄覆蓋舊版本的相同文件
2. 將 virtualimage/photo 及 virtualimage/avatar 的目錄屬性設為 "777"
3. 上載及執行 upvi61_70.php 升級文件, 完成後刪除此檔案
4. 按全新安裝步驟 8 - 21 修改相關文件
注: 插件包內的 uninistall_vi.php 是卸載 "虛擬形像" 數據用
修正
1. 修正後台顯示 "是否允雪|員贈送物品" (big5 版本)
在 2008-12-20 20:55 前下載者如下修正
後台 -> 擴展 -> 論壇插件 -> 管理 -> 虛擬形象 -> 詳情 -> 變量 -> 在 "顯示順序: 8" -> 詳情 -> 在 "配置名稱" 修正為 ( 是否允許會員贈送物品)
2. 修正 IE6 後台 "虛擬形像 AL8 版後台管理" 連接失效問題
在2008-12-22 12:45 PM 前下載及使用 IE6 者,
請下載附件 Patch_viadmin.rar 及選擇適當的編碼上載及覆蓋原來相同文件

圖片附件:
遊客無法下載或閱讀圖片附件
3. 改善頁面兼容性 fix_images_css.rar 及補回漏上載 search.gif (search_gif.rar) 圖片 (適合所有編碼)
在 2009-1-20 03:14 前下載
請下載附件 fix_images_css.rar 解壓後上載及覆蓋原來相同文件

圖片附件:
遊客無法下載或閱讀圖片附件
請下載附件 search_gif.rar 解壓後上載圖庫目錄, 注意如果圖庫目錄如非默認 search.gif 請上載至後台設定的圖庫目錄

圖片附件:
遊客無法下載或閱讀圖片附件