วิธีการสร้าง link ใน ajax สำหรับใช้งานร่วมกับ phpbb

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 2349
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

วิธีการสร้าง link ใน ajax สำหรับใช้งานร่วมกับ phpbb

โพสต์โดย Ittichai_chupol » 25/06/2019 3:28 pm

เว็บบอร์ด phpbb นั้นเป็บเว็บบอร์ดที่มี code และ ฟั่งชั่น ตางๆ ที่สนับสนุนการใช้งาน ในส่วนต่างๆของเว็บ มาให้เป้นพื้นฐาน ตั้งแต่แรกติดตั้งอยู่ นั้นจึงทำให้ผุ้พัฒนา ไม่ต้องเสียเวลากับการที่จะต้องสร้าง ส่วนต่างขึ้นมาเองทั้งหมด เพียงแค่ปรับปรุง หรือ เสริมเพียงเเค่บางส่วนเข้าไปเท่านั้น ก็ทำให้เว็บบอร์ด สามารถทำงาน ตามที่เราต้องการ โดยวิธีการที่เราจะทำให้เว็บบอร์ด phpbb สามารถทำในส่วนที่ไม่ได้มีมากับตอนติดตั้งครั่งแรกนั้น คือการส่ร้าง ส่วนขยาย(Extension)

ส่วนขยาย(Extension) จะทำให้ เว็บบอร์ด phpbb มีประสิทธิภาพ การทำงานที่ดีขึ้น โดยสามารถ ปรับเพิ่มเพิ่มแก้ไข้ ในส่วนต่างๆของ เว็บบอร์ด phpbb ได้ตามอิสระ ซึ่งในขั้นตอนพัฒนา ไม่จำเป้นที่จะต้องเข้าไปยุ่งเกี่ยว Code เดิมที่มีอยู่(แต่อาจจะมีบางครั่งที่ต้องเข้าไปแก้ไข้ เพิ่มเติม) นั้นก็ช่วยเราไม่ต้องกังวลกับการผิดพลาดที่อาจจะเกิดขึ้นได้เพราะหาก Code ของ เว็บบอร์ด phpbb เกิดความผิดพลาดก้อาจจะกระทบต่อการทำงานส่วนอื่นๆ ด้วย โดยการสร้าง Extension นั้นก็มีวิธีการพัฒนาที่ไม่ซับซ่อนมาก เพียงแต่จะมีเพียงการทำงานที่จะต้องเป็นไปตามที่เราต้องการเท่านั้น ที่จะยากนิดหน่อย

และนอกจากนี้ ในการสร้าง พัฒนา ส่วนขยาย(Extension) นั้นยังมีการนำภาษาคอมพิวเตอร์อื่นมาใช้ร่วมกันอีก หลายภาษา ที่นอกจาก php ก็ยังมี hrml css javascript ajax
และอื่นๆ ซึ่งบางครั้งก็มีส่วนที่จำเป็นต้องพึงพาอาศัย ภาษา เหล่านี้มาช่วยสำหรับการพัฒนา Extension ให้มีประสิทธิภาพ และลดขั้นตอนการเขียน แนกำ ลงได้

ดังเช่นตัวอย่างนี้ที่กล่าวถึงนี้ คือการ link ใน ajax สำหรับใช้งานร่วมกับ phpbb

ตัวอย่างนี้เป็นการสร้างปุ่มไลค์นะครับ

1.จะต้องมีไฟล์ php ที่มีส่วนการทำงานอยู่แล้วนะครับ เพื่อใช้สำหรับส่งค่าบางตัวไปให้กับ ajax
2.สร้างตัวแปร ส่วนที่จะส่งค่าไปให้กับ ajax

โค้ด: เลือกทั้งหมด

                        $json_response = new \phpbb\json_response;
                        $json_response->send(array(
                            'action_like' => 'add',  //กำหนดเงือนไข
                            'post_id' => $post, //สร้างตัวอแปรเพื่อ ส่งค่า
                            'topic_id' => $topic,
                            'user_id' => $this->user->data['user_id'],
                            'name_like' => $this->user->data['username'],
                            'limit' => $sum_totel,
                            'limit_count' => $this->config['button_like_show_limit'],
                            'count' => $user_count,
                            'post_user_like' => implode(', ', $name_like),
                            'url_user' => $this->config['script_path'],
                            'admin'=> $this->auth->acl_get('m_'),
                        ));


3 จากนั้นสร้างไฟล์ javascript ขึ้นมา
4.จากนั้นสร้างตัวแปรใน ส่วนที่รับค่ามาจาก phpbb

โค้ด: เลือกทั้งหมด


(function ($) {

    "use strict";
    phpbb.addAjaxCallback('button_like', function (data) {

        var name_like = data.post_user_like;
        var post_id = data.post_id;
        var user_like = data.user_id;
        var limit = data.limit;
        var sum = limit;
        var admin = data.admin;
        var topic_id = data.topic_id;
        var url_user = data.url_user;  //ที่อยู่ของไฟล์

})(jQuery);


5.กำหนดเงือนไขขึ้นมา เพื่อแบ่งส่วนการทำงาน

โค้ด: เลือกทั้งหมด

if (data.action_like == 'add')
        {
       
        //code.............
       
           }
       


6.จากนั้นสร้าง ตัวแปรขึ้นมาเพื่อจะเก็บค่า ที่จะสร้างเป้น link (ถ้าหากต้องการนำ link ไปใส่เลยก็ได้)

โค้ด: เลือกทั้งหมด

       var limit_test_link = '<a  id="like_button"   href="' + url_user + '/app.php/button_like/all_user_like/' + topic_id + '/' + post_id + '" data-ajax1="true"
                                        data-refresh1="true" role="menuitem">' + limit + '</a>';
       


7.นำตัวแปรที่เก็บค่า link ไปใช่

โค้ด: เลือกทั้งหมด

  $("#like_name" + post_id).append('<span class="limit' + post_id + ' color_limit">' + limit_test_link + '</span>');


8.และส่วนสำหคัญในการทำ link สามารถใช่งานได้จริงคือ ส่วนนี้

โค้ด: เลือกทั้งหมด


            $('[data-ajax1]').each(function () {
                var $this = $(this);
                var ajax1 = $this.attr('data-ajax1');
                var filter1 = $this.attr('data-filter1');

                if (ajax1 !== 'false') {
                    var fn = (ajax1 !== 'true') ? ajax1 : null;
                    filter1 = (filter1 !== undefined) ? phpbb.getFunctionByName(filter1) : null;

                    phpbb.ajaxify({
                        selector: this,
                        refresh: $this.attr('data-refresh') !== undefined,
                        filter: filter1,
                        callback: fn
                    });
                }
            });
           

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 11 และ บุคคลทั่วไป 0 ท่าน