ขั้นตอนติดตั้ง ห้องแต่งตัว virtualimage Discuz 7.0

บทความดั้งเดิมผมอ่านมาจาก ที่นี่ ครับ แต่บทความเขียนไว้ เหมือนจะไม่ตำแหน่งที่อัพโหลดไฟล์ และ code ที่ต้องนำมาแทนที่ มีปัญหาเรื่องอักขระที่มองไม่เห็น (White Space) แต่ php และ javascript ดันนำไปคิด ทำให้เกิด syntax error ตามมา ผมจึงนำมาเรียบเรียงใหม่ดังนี้ครับ

คำเตือน: ก่อนการติดตั้งผมแนะนำให้คุณสั่ง backup ไว้ก่อนนะ เพราะถ้าคุณติดตั้งผิดพลาด มันมีโอกาสจะทำให้เว็บบอร์ดเข้าไม่ได้ แล้วคงจะตามแก้กันไม่ถูกละทีนี้

  1. ดาวน์โหลดตัวติดตั้งก่อนเลยครับ ผมรวมเป็นไฟล์เดียวไว้ให้แล้ว คลิกที่นี่เพื่อโหลดตัวติดตั้ง
  2. ถ้าโฮสติ้งของคุณใช้ DirectAdmin คุณสามารถอัพโหลด discuz-7.0.0-virtualimage.tar.gz ขึ้นไป extract บนโฮสได้เลย ส่วน Control Panel ตัวอื่นก็แตกไฟล์ก่อนแล้วค่อยอัพโหลดแล้วกันนะ
  3. ตำแหน่งที่จะต้องนำไฟล์ติดตั้งไปวาง คือ ในโฟลเดอร์ของ discuz ที่มันมีไฟล์เหล่านี้ admincp.php, ajax.php, config.inc.php
  4. กำหนด CHMOD ของ virtualimage/photo และ virtualimage/avatar ให้เป็น 777
  5. เปิดหน้าติดตั้ง /images_install.php (ตย. http://www.____.com/bbs/images_install.php) แล้วก็กดดำเนินการติดตั้งได้เลย
  6. พอติดตั้งเสร็จแล้ว ให้ไปลบไฟล์ images_install.php ออก
  7. ดาวน์โหลดไฟล์ discuz_plugin_virtualimage.txt
  8. ดาวน์โหลดไฟล์ discuz_plugin_images_admin.txt
  9. ไปที่ admin CP -> ปลั๊กอิน -> นำไฟล์เข้า -> Browse.. -> เลือกไฟล์ discuz_plugin_virtualimage.txt (จากข้อ 7.) -> กดปุ่มส่ง
  10. ไปที่ admin CP -> ปลั๊กอิน -> นำไฟล์เข้า -> Browse.. -> เลือกไฟล์ discuz_plugin_images_admin.txt (จากข้อ 8.) -> กดปุ่มส่ง

คราวนี้มาถึงขั้นตอนที่ยุ่งยากนิดหน่อย เพราะว่าต้องเข้าไปแก้หลายไฟล์

  1. แก้ไฟล์ ./plugin.php
    ค้นหา[php]require_once ‘./include/common.inc.php’;[/php]นำโค๊ดนี้ไปวางที่ด้านบน[php]define(‘images_css’, ‘virtualimage’);[/php]
  2. แก้ไฟล์ ./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]
  3. แก้ไฟล์ ./viewthread.php
    1. ค้นหา
      [php]m.invisible,[/php]
      แทนที่ด้วย
      [php]m.invisible, m.viid,[/php]
    2. ค้นหา
      [php]discuz_uc_avatar($post[‘authorid’]);[/php]
      แทนที่ด้วย
      [php]discuz_uc_avatar($post[‘authorid’],”,”,$post[‘viid’],$post[‘pid’]);[/php]
  4. แก้ไฟล์ ./eccredit.php
    1. ค้นหา
      [php]m.invisible,[/php]
      แทนที่ด้วย
      [php]m.invisible, m.viid,[/php]
    2. ค้นหา
      [php]discuz_uc_avatar($member[‘uid’][/php]
      แทนที่ด้วย
      [php]discuz_uc_avatar($member[‘uid’],”,”,$member[‘viid’],$member[‘uid’][/php]
  5. แก้ไฟล์ ./include/common.inc.php
    ค้นหา
    [php]m.customshow,[/php]
    แทนที่ด้วย
    [php]m.customshow, m.viid AS discuz_viid,[/php]
  6. แก้ไฟล์ ./include/global.func.php
    1. ค้นหา
      [php]$url_forward = empty($url_forward) ? ” : (empty($_DCOOKIE[‘sid’]) && $transsidstatus ? transsid($url_forward) : $url_forward);[/php]นำโค๊ดนี้วางต่อด้านล่าง[php]$url_forward = str_replace(‘&’, ‘&’, $url_forward);[/php]
    2. ค้นหา
      [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]
  7. แก้ไขไฟล์ ./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]
  8. แก้ไขไฟล์ ./templates/default/css_script.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
    1. ค้นหา
      [css]<!–{if CURSCRIPT == ‘forumdisplay’ && $forum[‘ismoderator’]}–>[/css]
      นำโค๊ดนี้ไว้ด้านบน
      [css]<!–{if images_css == ‘virtualimage’}–>{template images_css}<!–{/if}–>[/css]
    2. ค้นหา
      [css].profile_side .avatar { margin: 25px 0; text-align: center; }[/css]
      เปลี่ยนเป็น
      [css].profile_side .avatar { margin: 25px 0 25px 32px;}[/css]
  9. แก้ไขไฟล์ ./templates/default/css_common.htm (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
    นำโค๊ดนี้ไว้ด้านล่างสุด
    [css]/*virtualimage*/
    .imagefixeddiv{height:226px;width:140px;}
    /*virtualimage*/[/css]
  10. แก้ไขไฟล์ ./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]
  11. แก้ไขไฟล์ ./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]
  12. แก้ไขไฟล์ ./templates/default/actions.lang.php (ถ้าใช้ template ใด ให้แก้ที่ template นั้นๆ)
    ค้นหา
    [php]211 => ‘ผู้ควบคุมระบบ’,[/php]
    นำโค๊ดนี้ไว้ด้านล่าง
    [php]221 => ‘ใช้งานห้องแต่งตัว’,[/php]

เสร็จซะทีครับ คราวนี้คุณก็ไปอัพเดทแคช เท่านี้ก็เรียบร้อยครับ ( AdminCP -> เครื่องมือ -> อัพเดทแคช )

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.