ข่าวประชาสัมพันธ์

มาร่วมเป็นกำลังใจให้เว็บด้วยการสมัครสมาชิกวีไอพี ~~ เลือกปีที่ท่านต้องการได้โดยไม่ต้องเรียงปี ~~ ปีละ 350 บาท สมัคร 2 ปีลดเหลือ 600 บาท ~~ มีไลน์กลุ่ม VIP จำนวนหลายร้อยท่าน เอาไว้ปรึกษางานซ่อม ~~ เข้าถึงข้อมูลด้านเทคนิค ข้อมูลเชิงลึกมากมาย.....


ผู้เขียน หัวข้อ: กลับมาอีกครั้งกับ Thank Cool V.2  (อ่าน 1676 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Auto Man

  • Administrator
  • หัวหน้าศูนย์ซ่อมสร้าง
  • *****
  • เจ้าของกระทู้
  • Joined: ก.ย. 2558
  • กระทู้: 37582
  • สมาชิกลำดับที่ : 1
  • เพศ: ชาย
  • มือผู้ให้ย่อมสูงกว่ามือผู้รับ
    • เว็บชุมชนคนรักช่างยนต์
    • อีเมล์
กลับมาอีกครั้งกับ Thank Cool V.2
« เมื่อ: 08 พฤษภาคม 2559, 10:57:28 »
  • ขึ้นบน
  • ลงล่าง
  • มาจากที่นี่ http://hot-th.com/thread-3343-1-1.html

    สำหรับในเวอร์ชั่นมีการแก้ไขโค้ดให้มีความกระชับมากขึ้น, เก็บแมลงนิดหน่อย
    โดยการนำ javascript framework ของ jquery มาใช้ครับ
    และส่วนของด้าน server นั้นจะต้องเป็น PHP5 เท่านั้นนะครับ และต้องเปิดใช้งานฟังก์ชั่น json ด้วยนะครับ
    การส่งข้อมูลไปยังด้าน server ได้เปลี่ยนเป็นแบบ POST แทนครับ แต่การเก็บข้อมูลยังคงเก็บลงไฟล์เหมือนเดิมครับ

    Edit1: เขียนโค้ดตกไปนิดนึงครับ ได้แก้ไขเรียบร้อยแล้วครับ และสามารถใช้งานร่วมกับ Mod Pretty URLs ได้ด้วยนะครับ

    วิธีการติดตั้ง

    - สร้างไฟล์เดอร์ TDB ในโฟลเดอร์บอร์ดของคุณและ cmod เป็น 777 ด้วยนะครับ
    - ดาวน์โหลด jquery-1.3.2.min.js แล้วอัพโหลดไปไว้โฟลเดอร์ธีมที่ใช้
    - สร้างไฟล์ thankcool.php แล้วใส่โค้ดนี้ลงไป
    โค๊ด: [Select]
    <?php
    // ThankCool by [DomeniC]
    require_once 'SSI.php';
    $id = (int)$_POST['id'];
    $se = (int)$_POST['se'];
    $uid $context['user']['id']; // alias
    if(empty($id) || empty($se)){
            die();
    }
    $td = array();
    if(
    is_readable('TDB/'.$id.'.db')){
        
    $tt file_get_contents('TDB/'.$id.'.db');
        
    $td explode(','$tt);
    }
    if(
    in_array($uid$td)){
            echo 
    json_encode(array(
                    
    'status' => 'error',
                    
    'message' => 'You gave ThankCool!'
            
    ));
            die();
    }
    $td[] = $uid;
    file_put_contents('TDB/'.$id.'.db'implode(','$td));
    $o '[br /][br /]<span style="color:#588000">ThankCool By: </span>';
    foreach(
    $td as $c => $t){
            
    loadMemberData($tfalse'profile');
            
    loadMemberContext($t);
            
    $sep = ($c == 0) ? '' ', ';
            
    $o .= $sep.$memberContext[$t]['link'];
    }
    echo 
    json_encode(array(
            
    'status' => 'ok',
            
    'id' => $id,
            
    'newlist' => $o
            
    )
    );
    ?>

    - อัพโหลดไฟล์ thankcool.php ไปไว้โฟลเดอร์บอร์ดของคุณ

    - สร้างไฟล์ thankcool.js ใส่โค้ดนี้ลงไป
    โค๊ด: [Select]
    /* ThankCool by [DomeniC] --> AJAX client side */
    function thankcool(msg_id){
            var el = $('#tc_' + msg_id);
            var bt = $('#tcb_' + msg_id);
            var url = smf_scripturl.replace(/index.php/, '');
            if(!el) return false;
            if(!bt) return false;
            $.post(url + 'thankcool.php', {id: msg_id, se: new Date().getTime()}, function(json) {
                    if(json.status == 'error')
                            return alert('error! ' + json.message);
                    bt.css('cursor', 'default');
                    bt.html('ThankCooled!');
                    el.html(json.newlist);               
            }, 'json');
    }

    - อัพโหลดไฟล์ thankcool.js ไปไว้โฟลเดอร์ธีมที่ใช้

    - เปิดไฟล์ Sources/Display.php

    - หาโค้ดนี้
    โค๊ด: [Select]
    $message['body'] = parse_bbc($message['body'], $message['smileysEnabled'], $message['ID_MSG']);
    - ใส่โค้ดนี้บรรทัดต่อไป
    โค๊ด: [Select]
        /* ThankCool by [DomeniC] --> load data */
        if(is_readable('TDB/'.$message['ID_MSG'].'.db')){
            $thxd = explode(',', file_get_contents('TDB/'.$message['ID_MSG'].'.db'));
        }else{
            $thxd = array();
        }
        $thxraw = $thxd;
        if($thxd){
            foreach($thxd as $j => $m){
                loadMemberData($m, false, 'profile');
                loadMemberContext($m);
                $thxd[$j] = $memberContext[$m]['link'];
            }
        }

    - หาโค้ดนี้
    โค๊ด: [Select]
    'can_see_ip' => allowedTo('moderate_forum') || ($message['ID_MEMBER'] == $ID_MEMBER && !empty($ID_MEMBER)),
    - ใส่โค้ดนี้บรรทัดต่อไป
    โค๊ด: [Select]
                    'tc' => $thxd,
                    'tcraw' => $thxraw

    - เปิดไฟล์ Display.template.php

    - หาโค้ดนี้
    โค๊ด: [Select]
                    // Show the post itself, finally!
                    echo '
                                                                    </td>
                                                            </tr></table>
                                                            <hr width="100%" size="1" class="hrcolor" />
                                                            <div class="post"', $message['can_modify'] ? ' id="msg_' . $message['id'] . '"' : '', '>', $message['body'], '</div>', $message['can_modify'] ? '
                                                            <img src="' . $settings['images_url'] . '/icons/modify_inline.gif" alt="" align="right" id="modify_button_' . $message['id'] . '" style="cursor: pointer; display: none;" />' : '' , '
                                                    </td>
                                            </tr>';

    - ใส่โค้ดนี้ทับลงไป
    โค๊ด: [Select]
                    // Show the post itself, finally!
                    echo '
                                                                    </td>
                                                            </tr></table>
                                                            <hr width="100%" size="1" class="hrcolor" />';
                    if ($context['user']['is_logged'] && !in_array($context['user']['id'], $message['tcraw']) && $context['user']['id'] != $message['member']['id'])
                            echo '       
                                            <a id="tcb_'.$message['id'].'" style="tc_link" href="javascript://thankcool'.$message['id'].'">ThankCool![/url]
                                            <div style="clear:left"></div>
                                            <hr width="100%" size="1" class="hrcolor" />';
                    echo '
                                                            <div class="post"', $message['can_modify'] ? ' id="msg_' . $message['id'] . '"' : '', '>', $message['body'], '</div>
                                                            <div id="tc_' . $message['id'] . '">';
                    if (!empty($message['tc']))
                            echo '
                                                                    [br /][br /]<span style="color:#588000">ThankCool By: </span>' . implode($message['tc'], ', ');
                    echo '
                                                            </div>';
                    echo
                                                            $message['can_modify'] ? '
                                                            <img src="' . $settings['images_url'] . '/icons/modify_inline.gif" alt="" align="right" id="modify_button_' . $message['id'] . '" style="cursor: pointer; display: none;" />' : '' , '
                                                    </td>
                                            </tr>';

    - เปิดไฟล์ index.template.php
    - หาโค้ดนี้
    โค๊ด: [Select]
            <title>', $context['page_title'], '</title>';
    - ใส่โค้ดนี้ลงไปก่อนหน้า
    โค๊ด: [Select]
            <script type="text/javascript" src="', $settings['theme_url'], '/jquery-1.3.2.min.js"></script>
            <script type="text/javascript" src="', $settings['theme_url'], '/thankcool.js"></script>

    เป็นอันว่าเสร็จเรียบร้อยแล้วครับ
    ปล1. มีปัญหาจุดไหนก็ตอบกระทู้ไว้นะครับ
    ปล2. ตั้งกระทู้นี่เหนื่อยกว่าเขียนโค้ดซะอีก
    « แก้ไขครั้งสุดท้าย: 08 พฤษภาคม 2559, 11:02:22 โดย AutoMan »
    สวัสดีคุณ...ผู้เยี่ยมชม  กด ❤ ถูกใจโพสท์นี้ หรือยัง...
    ต้องการสมัครสมาชิก VIP สมัครได้ที่นี่...   หรือทาง Line ID: k.sonchai

    ออฟไลน์ Auto Man

    • Administrator
    • หัวหน้าศูนย์ซ่อมสร้าง
    • *****
    • เจ้าของกระทู้
    • Joined: ก.ย. 2558
    • กระทู้: 37582
    • สมาชิกลำดับที่ : 1
    • เพศ: ชาย
    • มือผู้ให้ย่อมสูงกว่ามือผู้รับ
      • เว็บชุมชนคนรักช่างยนต์
      • อีเมล์
    กลับมาอีกครั้งกับ Thank Cool V.2
    « ตอบกลับ #1 เมื่อ: 08 พฤษภาคม 2559, 11:34:18 »
  • ขึ้นบน
  • ลงล่าง
  •   ไม่สำเร็จ เกิดเออร์เรอร์
    สวัสดีคุณ...ผู้เยี่ยมชม  กด ❤ ถูกใจโพสท์นี้ หรือยัง...
    ต้องการสมัครสมาชิก VIP สมัครได้ที่นี่...   หรือทาง Line ID: k.sonchai

    ออฟไลน์ Auto Man

    • Administrator
    • หัวหน้าศูนย์ซ่อมสร้าง
    • *****
    • เจ้าของกระทู้
    • Joined: ก.ย. 2558
    • กระทู้: 37582
    • สมาชิกลำดับที่ : 1
    • เพศ: ชาย
    • มือผู้ให้ย่อมสูงกว่ามือผู้รับ
      • เว็บชุมชนคนรักช่างยนต์
      • อีเมล์
    « แก้ไขครั้งสุดท้าย: 08 พฤษภาคม 2559, 12:17:21 โดย AutoMan »
    สวัสดีคุณ...ผู้เยี่ยมชม  กด ❤ ถูกใจโพสท์นี้ หรือยัง...
    ต้องการสมัครสมาชิก VIP สมัครได้ที่นี่...   หรือทาง Line ID: k.sonchai

    กลับมาอีกครั้งกับ Thank Cool V.2
    « ตอบกลับ #2 เมื่อ: 08 พฤษภาคม 2559, 11:39:59 »