|
作 者: 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
找- $postlist = $attachtags = $attachlist = array();
複製代碼 在上面加上- //-----------------------------virtualimage
- require_once './forumdata/cache/plugin_virtualimage.php';
- $imagesset = $_DPLUGIN['virtualimage']['vars'];
- unset($_DPLUGIN['virtualimage']['vars']);
- if($imagesset[openalpha]==1){
- $alpha = "FILTER: alpha(opacity=\"+WearArray+\")";
- }
- $imagesdatas = '';
- //----------------------------
複製代碼 找 (注意不連後面的 "," 號)在後面插入找在後面插入- , $imagesdatas, $vimages, $imagesset
複製代碼 找- $post['avatar'] = '<div class="avatar"><img class="avatar" src="images/avatars/noavatar.gif" alt="" />';
- }
複製代碼 在下面加上- //------------------------------------------------------------virtualimage
- if ($post['gender']!='0' && $post['anonymous']=='0' && ($imagesset['orderuse']=='1' || $post['useimages']=='1')){
- if ($post[gender]==1){
- $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
- $imagesdata[sex] = "m";
- $imagesdata[upid] = "init";
- }elseif ($post[gender]==2){
- $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
- $imagesdata[sex] = "f";
- $imagesdata[upid] = "initf";
- }
- $imagesdata[pid] = $post[pid];
- $imagesdata[uid] = $post[uid];
- $imagesdatas[] = $imagesdata;
- $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>";
- }
- //--------------------------------------------------------------
複製代碼 找 (對下一行)- if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
- $post['avatar'] .= '
- <img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0" alt="" />';
- }
- $post['avatar'] .= '</div>';
- }
複製代碼 改為- if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
- $post['avatar'] .= '</div><p><img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0" alt="" /></p>';
- }else{
- $post['avatar'] .= '</div>';
- }
- }
複製代碼 找在下面加上- //--------------------------------------------virtualimage
- if($imagesdatas!=''){
- $vimages = '';
- require_once('./virtualimage/global.php');
- $vimages = images_showimages($imagesdatas,$alhpa,$imagesset[imageurl]);
- unset($imagesdatas,$imagesdata,$alpha);
- }
- //--------------------------------------
複製代碼 9. 修改 space.php
找- include_once language('spaces');
複製代碼 在下面加上- //-----------------------------virtualimage queries
- require_once DISCUZ_ROOT.'./forumdata/cache/plugin_virtualimage.php';
- $imagesset = $_DPLUGIN['virtualimage']['vars'];
- if($imagesset[openalpha]){$alpha = "FILTER: alpha(opacity=\"+WearArray+\")";}
- //-----------------------------
複製代碼 找在上面加上- //------------------------------------------------------------virtualimage
- $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>';
- if ($imagesset['orderuse']!='1' && ($member['useimages'] != 1 || $member[gender]==0)){
- $member['avatar'] = $member['avatar'];
- }else{
- if ($member[gender]==1){
- $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
- $sex = "m";
- $upid = "init";
- }elseif ($member[gender]==2){
- $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
- $sex = "f";
- $upid = "initf";
- }
- $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
- $cookiearray = split('-', $tempequip);
- $weararray = split('-', $userwearip);
- $imagescookie = $db->query("SELECT * FROM {$tablepre}images_user where userid = '$member[uid]' and dafaultuse = '1' and (suitable = '$sex' or suitable = 't')");
- while ($userimages = $db->fetch_array($imagescookie)){
- $tempi = $userimages[classid];
- $cookiearray[$tempi] = $userimages[picid];
- if($imagesset[beold]){
- $images_weardate = $userimages[endurance] - (time() - $userimages[lastuse]);
- $images_weardate = ceil($images_weardate/8640);
- if ($images_weardate <= 0){
- $db->query("UPDATE {$tablepre}images_user SET dafaultuse = '3' WHERE userid='$member[userid]' and picid = '$userimages[facepicid]' and classid= '$userimages[classid]' and dafaultuse='1'");
- if($userimages[classid] == 8||$userimages[classid]==9||$userimages[classid]==11||$userimages[classid] ==13||$userimages[classid]==14||$userimages[classid]==18){
- $userupid = $upid;
- }else{
- $userupid = "0";
- }
- $cookiearray[$tempi] = $userupid;
- }else{
- $weararray[$tempi] = $images_weardate;
- }
- }else{
- $weararray[$tempi] = 100;
- }
- }
- $userimages = implode("-", $cookiearray);
- $userwear = implode("-", $weararray);
- $member['avatar'] = "
- <!-- virtualimage start-->
- <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>
- <SCRIPT language=JavaScript>
- var currface = \"$userimages\";
- var currwear = \"$userwear\";
- var showArray = currface.split('-');
- var WearArray = currwear.split('-');
- if (showArray[6] != '0'){
- showArray[8] = 0;
- showArray[9] = 0;
- }
- var s=\"\";
- for (var i=0; i<26; i++){
- if(showArray != '0'){
- if((showArray == 'init') || (showArray == 'initf')){
- s+='<img src=\"{$imagesset[imageurl]}'+i+'/'+showArray+'.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:'+i+';\" />';
- }else{
- 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."\" />';
- }
- }
- }
- s+='<img src=\"{$imagesset[imageurl]}blank.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:50\" />';
- $('Show{$member['uid']}').innerHTML=s;
- </SCRIPT>
- <!-- virtualimage end-->
- ";
- }
- //--------------------------------------------------------------
複製代碼 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 個文件, 修改辦法相同
找 (注意不連後面的 "," 號)在後面插入找在下加上面- //--------------------------------------------virtualimage
- if($imagesdatas!=''){
- $vimages = '';
- require_once('./virtualimage/global.php');
- $vimages = images_showimages($imagesdatas,$alhpa,$imagesset[imageurl]);
- unset($imagesdatas,$imagesdata,$alpha);
- }
- //--------------------------------------
複製代碼 11. 修改 include/viewpro.inc.php找- $oltimeadd1 = $oltimeadd2 = '';
- }
複製代碼 在下面加上- //-----------------------------virtualimage queries
- require_once DISCUZ_ROOT.'./forumdata/cache/plugin_virtualimage.php';
- $imagesset = $_DPLUGIN['virtualimage']['vars'];
- if($imagesset[openalpha]){$alpha = "FILTER: alpha(opacity=\"+WearArray+\")";}
- //-----------------------------
複製代碼 找在上面加上- //------------------------------------------------------------virtualimage
- $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>';
- if ($imagesset['orderuse']!='1' && ($member['useimages'] != 1 || $member[gender]==0)){
- $member['avatar'] = $member['avatar'];
- }else{
- if ($member[gender]==1){
- $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
- $sex = "m";
- $upid = "init";
- }elseif ($member[gender]==2){
- $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
- $sex = "f";
- $upid = "initf";
- }
- $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
- $cookiearray = split('-', $tempequip);
- $weararray = split('-', $userwearip);
- $imagescookie = $db->query("SELECT * FROM {$tablepre}images_user where userid = '$member[uid]' and dafaultuse = '1' and (suitable = '$sex' or suitable = 't')");
- while ($userimages = $db->fetch_array($imagescookie)){
- $tempi = $userimages[classid];
- $cookiearray[$tempi] = $userimages[picid];
- if($imagesset[beold]){
- $images_weardate = $userimages[endurance] - (time() - $userimages[lastuse]);
- $images_weardate = ceil($images_weardate/8640);
- if ($images_weardate <= 0){
- $db->query("UPDATE {$tablepre}images_user SET dafaultuse = '3' WHERE userid='$member[userid]' and picid = '$userimages[facepicid]' and classid= '$userimages[classid]' and dafaultuse='1'");
- if($userimages[classid] == 8||$userimages[classid]==9||$userimages[classid]==11||$userimages[classid] ==13||$userimages[classid]==14||$userimages[classid]==18){
- $userupid = $upid;
- }else{
- $userupid = "0";
- }
- $cookiearray[$tempi] = $userupid;
- }else{
- $weararray[$tempi] = $images_weardate;
- }
- }else{
- $weararray[$tempi] = 100;
- }
- }
- $userimages = implode("-", $cookiearray);
- $userwear = implode("-", $weararray);
- $member['avatar'] = "
- <!-- virtualimage start-->
- <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>
- <SCRIPT language=JavaScript>
- var currface = \"$userimages\";
- var currwear = \"$userwear\";
- var showArray = currface.split('-');
- var WearArray = currwear.split('-');
- if (showArray[6] != '0'){
- showArray[8] = 0;
- showArray[9] = 0;
- }
- var s=\"\";
- for (var i=0; i<26; i++){
- if(showArray != '0'){
- if((showArray == 'init') || (showArray == 'initf')){
- s+='<img src=\"{$imagesset[imageurl]}'+i+'/'+showArray+'.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:'+i+';\" />';
- }else{
- 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."\" />';
- }
- }
- }
- s+='<img src=\"{$imagesset[imageurl]}blank.gif\" style=\"padding:0px; position:absolute; top:0px; left:0px; width:140px; height:226px; z-index:50\" />';
- $('Show{$member['uid']}').innerHTML=s;
- </SCRIPT>
- <!-- virtualimage end-->
- ";
- }
- //--------------------------------------------------------------
複製代碼 12. 修改 css 模板 (所有風格及日後新增風格如有此文件均要修改), 完成後到後台執行 "更新 css 文件緩存"
找- div.avatar { margin: 5px; text-align: center; width: 160px; overflow: hidden }
複製代碼 在下面加上- .imagefixeddiv {height:235px;width:140px;margin-top:-5px;}
- .imagefixed {padding:0px;vertical-align: top; position:absolute;margin-top:-5px;margin-left:-4px; width:185px;}
- div.viavatar { margin: 5px; padding: 0px; width:140px; position:relative; height: 226px;}
複製代碼 13. 修改 viewthread 模板 (所有風格及日後新增風格如有此文件均要修改)
找- <!--{if $post['first'] && $thread['replies']}--></div><div id="ad_interthread"><!--{/if}-->
- <!--{/loop}-->
複製代碼 在下面加上14. 修改 viewthread_poll, viewthread_reward, viewthread_trade, viewthread_video, viewthread_debate, viewthread_activity 模板共 6 個模板, 修改辦法相同 (所有風格及日後新增風格如有此文件均要修改)
找- <div id="ad_interthread"></div>
複製代碼 在上面加上15. 修改 space_module 模板 (所有風格及日後新增風格如有此文件均要修改)
找- <!--{if $moduledata[avatar]}-->
- <a href="space.php?action=viewpro&uid=$uid"><img src="$moduledata[avatar]" width="$moduledata[avatarwidth]" height="$moduledata[avatarheight]" border="0" alt="" /></a>
- <!--{else}-->
- <img src="images/avatars/noavatar.gif" alt="" />
- <!--{/if}-->
複製代碼 更換為16. 修改 viewpro 模板 (所有風格及日後新增風格如有此文件均要修改)
找- <!--{if $member[avatar]}-->
- <img src="$member[avatar]" width="$member[avatarwidth]" height="$member[avatarheight]" border="0" alt="" />
- <!--{else}-->
- <img src="images/avatars/noavatar.gif" alt="" />
- <!--{/if}-->
複製代碼 更換為17. 修改 viewpro_classic 模板 (所有風格及日後新增風格如有此文件均要修改)
找- <div class="avatar">
- <!--{if $member[avatar]}-->
- <img src="$member[avatar]" width="$member[avatarwidth]" height="$member[avatarheight]" alt="$member[username]" />
- <!--{else}-->
- <img src="images/avatars/noavatar.gif" alt="$member[username]" />
- <!--{/if}-->
- </div>
複製代碼 更換為18. 修改 actions.lang.php 語言包
找在下面加上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 在最底部加入- var sPop = null;
- document.write("<style type='text/css'>");
- 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;}");
- document.write("</style>");
- document.write("<div id='popLayer' style='position:absolute;z-index:1000' class='cPopText'></div>")
- function showPopupText(event) {
- if(event.srcElement) o = event.srcElement; else o = event.target;
- if(!o) {
- return;
- }
- MouseX = event.clientX;
- MouseY = event.clientY;
- if(o.alt != null && o.alt != '') {
- o.pop = o.alt;
- o.alt = '';
- }
- if(o.title != null && o.title != '') {
- o.pop = o.title;
- o.title = '';
- }
- if(o.pop != sPop) {
- sPop = o.pop;
- if(sPop == null || sPop == '') {
- $('popLayer').style.visibility = "hidden";
- } else {
- popStyle = o.dyclass != null ? o.dyclass : 'cPopText';
- $('popLayer').style.visibility = "visible";
- showIt();
- }
- }
- }
- function showIt() {
- $('popLayer').className = popStyle;
- $('popLayer').innerHTML = sPop.replace(/</g,"<").replace(/>/g,">").replace(/\n/g,"
- ");
-
- var bodySL, bodyST;
- if(window.pageXOffset){
- bodySL=window.pageXOffset;
- }else if(document.documentElement&&document.documentElement.scrollLeft){
- bodySL=document.documentElement.scrollLeft;
- }else if(document.body){
- bodySL=document.body.scrollLeft; //author: meizz
- }
-
- if(window.pageYOffset){
- bodyST=window.pageYOffset;
- }else if(document.documentElement&&document.documentElement.scrollTop){
- bodyST=document.documentElement.scrollTop;
- }else if(document.body){
- bodyST=document.body.scrollTop;
- }
-
- var bodyCW, bodyCH;
- if(window.innerWidth){
- bodyCW=window.innerWidth;
- }else if(document.documentElement&&document.documentElement.clientWidth){
- bodyCW=document.documentElement.clientWidth;
- }else if(document.body){
- bodyCW=document.body.clientWidth; //author: meizz
- }
-
- if(window.innerHeight){
- bodyCH=window.innerHeight;
- }else if(document.documentElement&&document.documentElement.clientHeight){
- bodyCH=document.documentElement.clientHeight;
- }else if(document.body){
- bodyCH=document.body.clientHeight;
- }
- if($('popLayer').clientWidth>300){
- var popWidth = 300;
- }else{
- var popWidth = $('popLayer').clientWidth;
- }
-
- var popWidth = $('popLayer').clientWidth;
- var popHeight = $('popLayer').clientHeight;
- var popLeftAdjust = MouseX + 12 + popWidth > bodyCW ? -popWidth - 24 : 0;
- var popTopAdjust = MouseY + 12 + popHeight > bodyCH ? -popHeight - 24 : 0;
- $('popLayer').style.left = (MouseX + 12 + bodySL + popLeftAdjust) + 'px';
- $('popLayer').style.top = (MouseY + 12 + bodyST + popTopAdjust) + 'px';
- }
- if(!document.onmouseover) {
- document.onmouseover = function(e) {
- var event = e ? e : window.event;
- showPopupText(event);
- };
- }
複製代碼 2. 對 xhtml 擁護者可將 images_css 模板中 <style type="text/css"> 至 </script> 中的內容 (不含此兩句) 剪貼到風格的 css 模板內, 再修改 images_index 模板將 {template images_css} 一句刪去, 然後到後台 "更新 css 緩存", 但不修改也不會影響正常使用 |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
|