การพัฒนา Ajax ใน extension ของเราเอง บน phpBB3.1

Jquery & Ajax Knowledge ความรู้เกี่ยวกับ Javascript , Jquery ม Ajax

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

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 24244
Joined: 22/09/2008 6:18 pm
Contact:

การพัฒนา Ajax ใน extension ของเราเอง บน phpBB3.1

Post by mindphp »

แปะไว้ก่อน ไว้ว่างๆ จะมาสรุปให้
https://wiki.phpbb.com/Using_AJAX

แต่ ใครสรุปได้ทำเป็นแล้ว แชร์ด้วยครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 23838
Joined: 31/03/2014 10:02 am
Contact:

Re: การพัฒนา Ajax ใน extension ของเราเอง บน phpBB3.1

Post by thatsawan »

เบื้องต้นที่ได้ลองศึกษาค่ะ

1. มี controller เพื่อเป็นตัวส่งข้อมูลจาก server ไปยัง เพจ โดยกำหนด routing เเละ services ปกติ
2. ไฟล์ที่จะส่ง link เรียก ไฟล์ controller ตาม path ที่กำหนดใน routing ในตัวอย่างจะสร้าง link จาก event
3. ส่วนที่จะเอาไปใช้งาน JS

ก่อนที่จะมี ส่วนทีท 1 ต้องกำหนด routing เเละ services ไปหา controller ก่อน
config ---> routing.yml

Code: Select all

aaa_m_button_like_controller:
    path: /button_like/{action}/{post}
    defaults: { _controller: aaa.m_button_like.ajaxlike:base }
    requirements:
        post: \d+
config ---> services.yml

Code: Select all

    aaa.m_button_like.controller:
        class: aaa\m_button_like\controller\ajaxlike
        arguments:
            - @config
            - @controller.helper
            - @template
            - @user
            - @dbal.conn
            - @auth
            - @cache
            - @dispatcher
            - @request
            - %core.root_path%
            - %core.php_ext%

ส่วนต่อไป controller ที่จะให้ส่งค่าจาก server ออกมา ในตัวอย่างสมมุติให้ส่งค่าออกมาเป็น json

Code: Select all

<?php
    namespace aaa\m_button_like\controller;   

    class ajaxlike 
    { 
        /* ...
       */
       public function base($action, $post)
       {  
           switch ($action)
        {   
                        
            case 'control_like':
                                $json_response = new \phpbb\json_response;
                                $json_response->send(array(
                                        'name' => 'thatsawan',
                                        'Tel'    => 111111,
                                ));
            break;
        }
       }       
    }
?>
สมมุติค่าออกมา สมุมติว่าเรา query มาได้
'name' => 'thatsawan',
'Tel' => 111111,

ส่วนที่ 2 สร้าง link

Code: Select all

 public function viewtopic_modify_post_row($event){
            $post_row = $event['post_row'];
            $post_row['POST_ADD_LIKE_URL'] = $this->helper->route('aaa_m_button_like_controller', array('action' => 'control_like', 'post' =>$event['row']['post_id']));
            $event['post_row'] = $post_row;
 
ส่งค่ายังเทมเพลต เอา link ไปแปะ ใน เทมเพลต

Code: Select all

<div  class="button_like">
    <a href="{postrow.POST_ADD_LIKE_URL}" data-ajax="button_like">TEST</a>
</div>
2015-07-07_1-42-19.png
2015-07-07_1-42-19.png (24.45 KiB) Viewed 739 times
2015-07-07_1-43-00.png
2015-07-07_1-43-00.png (33.03 KiB) Viewed 739 times
ส่วนสุดท้าย เอาไปว่างไว้ใน overall_footer_body_after.html

Code: Select all

<script>
(function($) { 

"use strict";

phpbb.addAjaxCallback('button_like', function(data) {
    
   alert(data.name);
   
});

})(jQuery); 
</script>
ผลที่ได้ เมื่อคลิก
2015-07-07_1-43-26.png
2015-07-07_1-43-26.png (36.77 KiB) Viewed 739 times
2015-07-07_1-43-36.png
2015-07-07_1-43-36.png (24.65 KiB) Viewed 739 times

คร่าวหน้าจะนำตัวอย่างการประยุกต์ใช้มาอธิบายให้ละเอียดนะคะ บ้างอย่างยังไม่ค่อยเข้าใจ ค่ะ


Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Jquery & Ajax Knowledge”

Who is online

Users browsing this forum: Google [Bot] and 8 guests