ขั้นตอนติดตั้ง ห้องแต่งตัว virtualimage Discuz 7.0
บทความดั้งเดิมผมอ่านมาจาก ที่นี่ ครับ แต่บทความเขียนไว้ เหมือนจะไม่ตำแหน่งที่อัพโหลดไฟล์ และ 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
ค้นหาrequire_once './include/common.inc.php';
นำโค๊ดนี้ไปวางที่ด้านบน
define('images_css', 'virtualimage'); - แก้ไฟล์ ./memcp.php
ค้นหาif($msnnew && !isemail($msnnew)) {นำโค๊ดนี้ไปวางที่ด้านบน
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"); } - แก้ไฟล์ ./viewthread.php
- ค้นหา
m.invisible,
แทนที่ด้วย
m.invisible, m.viid,
- ค้นหา
discuz_uc_avatar($post['authorid']);
แทนที่ด้วย
discuz_uc_avatar($post['authorid'],'','',$post['viid'],$post['pid']);
- ค้นหา
- แก้ไฟล์ ./eccredit.php
- ค้นหา
m.invisible,
แทนที่ด้วย
m.invisible, m.viid,
- ค้นหา
discuz_uc_avatar($member['uid']
แทนที่ด้วย
discuz_uc_avatar($member['uid'],'','',$member['viid'],$member['uid']
- ค้นหา
- แก้ไฟล์ ./include/common.inc.php
ค้นหาm.customshow,
แทนที่ด้วย
m.customshow, m.viid AS discuz_viid,
- แก้ไฟล์ ./include/global.func.php
-
ค้นหา
$url_forward = empty($url_forward) ? '' : (empty($_DCOOKIE['sid']) && $transsidstatus ? transsid($url_forward) : $url_forward);
นำโค๊ดนี้วางต่อด้านล่าง
$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.'" />'; } }
-
ค้นหา
- แก้ไขไฟล์ ./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; } - แก้ไขไฟล์ ./templates/default/css_script.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
- ค้นหา
<!--{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;}
- ค้นหา
- แก้ไขไฟล์ ./templates/default/css_common.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
นำโค๊ดนี้ไว้ด้านล่างสุด/*virtualimage*/ .imagefixeddiv{height:226px;width:140px;} /*virtualimage*/ - แก้ไขไฟล์ ./templates/default/viewpro_classic.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
ค้นหา{echo discuz_uc_avatar($member[uid])}เปลี่ยนเป็น
{echo discuz_uc_avatar($member[uid], '', '', $member[viid], $member[uid])} - แก้ไขไฟล์ ./templates/default/viewthread_fastpost.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
ค้นหา{{echo discuz_uc_avatar($discuz_uid)}เปลี่ยนเป็น
{echo discuz_uc_avatar($discuz_uid,'','',$discuz_viid, "my_$discuz_uid")} - แก้ไขไฟล์ ./templates/default/actions.lang.php (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
ค้นหา211 => 'ผู้ควบคุมระบบ',
นำโค๊ดนี้ไว้ด้านล่าง
221 => 'ใช้งานห้องแต่งตัว',
เสร็จซะทีครับ คราวนี้คุณก็ไปอัพเดทแคช เท่านี้ก็เรียบร้อยครับ ( AdminCP -> เครื่องมือ -> อัพเดทแคช )