บทความดั้งเดิมผมอ่านมาจาก ที่นี่ ครับ แต่บทความเขียนไว้ เหมือนจะไม่ตำแหน่งที่อัพโหลดไฟล์ และ code ที่ต้องนำมาแทนที่ มีปัญหาเรื่องอักขระที่มองไม่เห็น (White Space) แต่ php และ javascript ดันนำไปคิด ทำให้เกิด syntax error ตามมา ผมจึงนำมาเรียบเรียงใหม่ดังนี้ครับ
คำเตือน: ก่อนการติดตั้งผมแนะนำให้คุณสั่ง backup ไว้ก่อนนะ เพราะถ้าคุณติดตั้งผิดพลาด มันมีโอกาสจะทำให้เว็บบอร์ดเข้าไม่ได้ แล้วคงจะตามแก้กันไม่ถูกละทีนี้
- ดาวน์โหลดตัวติดตั้งก่อนเลยครับ ผมรวมเป็นไฟล์เดียวไว้ให้แล้ว คลิกที่นี่เพื่อโหลดตัวติดตั้ง
- ถ้าโฮสติ้งของคุณใช้ DirectAdmin คุณสามารถอัพโหลด discuz-7.0.0-virtualimage.tar.gz ขึ้นไป extract บนโฮสได้เลย ส่วน Control Panel ตัวอื่นก็แตกไฟล์ก่อนแล้วค่อยอัพโหลดแล้วกันนะ
- ตำแหน่งที่จะต้องนำไฟล์ติดตั้งไปวาง คือ ในโฟลเดอร์ของ discuz ที่มันมีไฟล์เหล่านี้ admincp.php, ajax.php, config.inc.php
- กำหนด CHMOD ของ virtualimage/photo และ virtualimage/avatar ให้เป็น 777
- เปิดหน้าติดตั้ง /images_install.php (ตย. http://www.____.com/bbs/images_install.php) แล้วก็กดดำเนินการติดตั้งได้เลย
- พอติดตั้งเสร็จแล้ว ให้ไปลบไฟล์ images_install.php ออก
- ดาวน์โหลดไฟล์ discuz_plugin_virtualimage.txt
- ดาวน์โหลดไฟล์ discuz_plugin_images_admin.txt
- ไปที่ admin CP -> ปลั๊กอิน -> นำไฟล์เข้า -> Browse.. -> เลือกไฟล์ discuz_plugin_virtualimage.txt (จากข้อ 7.) -> กดปุ่มส่ง
- ไปที่ admin CP -> ปลั๊กอิน -> นำไฟล์เข้า -> Browse.. -> เลือกไฟล์ discuz_plugin_images_admin.txt (จากข้อ 8.) -> กดปุ่มส่ง
คราวนี้มาถึงขั้นตอนที่ยุ่งยากนิดหน่อย เพราะว่าต้องเข้าไปแก้หลายไฟล์
- แก้ไฟล์ ./plugin.php
ค้นหา[php]require_once ‘./include/common.inc.php’;[/php]นำโค๊ดนี้ไปวางที่ด้านบน[php]define(‘images_css’, ‘virtualimage’);[/php] - แก้ไฟล์ ./memcp.php
ค้นหา
[php]if($msnnew && !isemail($msnnew)) {[/php]
นำโค๊ดนี้ไปวางที่ด้านบน
[php]
if(!empty($discuz_viid) && $gendernew != $member[‘gender’]){
showmessage(‘Your virtual image is in use and can not change the gender, first in the virtual image of the personal settings set to shut down the virtual image’,"plugin.php?identifier=virtualimage&module=virtualimage&index=option");
}
[/php] - แก้ไฟล์ ./viewthread.php
- ค้นหา
[php]m.invisible,[/php]
แทนที่ด้วย
[php]m.invisible, m.viid,[/php] - ค้นหา
[php]discuz_uc_avatar($post[‘authorid’]);[/php]
แทนที่ด้วย
[php]discuz_uc_avatar($post[‘authorid’],”,”,$post[‘viid’],$post[‘pid’]);[/php]
- ค้นหา
- แก้ไฟล์ ./eccredit.php
- ค้นหา
[php]m.invisible,[/php]
แทนที่ด้วย
[php]m.invisible, m.viid,[/php] - ค้นหา
[php]discuz_uc_avatar($member[‘uid’][/php]
แทนที่ด้วย
[php]discuz_uc_avatar($member[‘uid’],”,”,$member[‘viid’],$member[‘uid’][/php]
- ค้นหา
- แก้ไฟล์ ./include/common.inc.php
ค้นหา
[php]m.customshow,[/php]
แทนที่ด้วย
[php]m.customshow, m.viid AS discuz_viid,[/php] - แก้ไฟล์ ./include/global.func.php
-
ค้นหา
[php]$url_forward = empty($url_forward) ? ” : (empty($_DCOOKIE[‘sid’]) && $transsidstatus ? transsid($url_forward) : $url_forward);[/php]นำโค๊ดนี้วางต่อด้านล่าง[php]$url_forward = str_replace(‘&’, ‘&’, $url_forward);[/php] - ค้นหา
[php]
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.’" />’;
}
}
[/php]แทนด้วย
[php]
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.’" />’;
}
}
[/php]
-
ค้นหา
- แก้ไขไฟล์ ./include/js/common.js
นำโค๊ดนี้ไว้ด้านล่างสุด
[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;
}
[/js] - แก้ไขไฟล์ ./templates/default/css_script.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
- ค้นหา
[css]<!–{if CURSCRIPT == ‘forumdisplay’ && $forum[‘ismoderator’]}–>[/css]
นำโค๊ดนี้ไว้ด้านบน
[css]<!–{if images_css == ‘virtualimage’}–>{template images_css}<!–{/if}–>[/css] - ค้นหา
[css].profile_side .avatar { margin: 25px 0; text-align: center; }[/css]
เปลี่ยนเป็น
[css].profile_side .avatar { margin: 25px 0 25px 32px;}[/css]
- ค้นหา
- แก้ไขไฟล์ ./templates/default/css_common.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
นำโค๊ดนี้ไว้ด้านล่างสุด
[css]/*virtualimage*/
.imagefixeddiv{height:226px;width:140px;}
/*virtualimage*/[/css] - แก้ไขไฟล์ ./templates/default/viewpro_classic.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
ค้นหา
[css]{echo discuz_uc_avatar($member[uid])}[/css]
เปลี่ยนเป็น
[css]{echo discuz_uc_avatar($member[uid], ”, ”, $member[viid], $member[uid])}[/css] - แก้ไขไฟล์ ./templates/default/viewthread_fastpost.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
ค้นหา
[css]{{echo discuz_uc_avatar($discuz_uid)}[/css]
เปลี่ยนเป็น
[css]{echo discuz_uc_avatar($discuz_uid,”,”,$discuz_viid, "my_$discuz_uid")}[/css] - แก้ไขไฟล์ ./templates/default/actions.lang.php (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
ค้นหา
[php]211 => ‘ผู้ควบคุมระบบ’,[/php]
นำโค๊ดนี้ไว้ด้านล่าง
[php]221 => ‘ใช้งานห้องแต่งตัว’,[/php]
เสร็จซะทีครับ คราวนี้คุณก็ไปอัพเดทแคช เท่านี้ก็เรียบร้อยครับ ( AdminCP -> เครื่องมือ -> อัพเดทแคช )