สอบถามการเขียน Extension BBCode ที่จะ Query ข้อมูลจาก SQL ครับ

พูดคุย phpBB3, SMF ปัญหา การติดตั้ง ปัญหา การลง Mod การแก้ไข หน้าตาบอร์ด การใช้งาน Joomla 1.5, 1.6, 1.7, 2.5 ,3.x รวมถึง Joomla 4 การใช้งาน wordpress และ CMS อื่นๆ
การตั้งคำถาม ควรระบุรุ่นที่ใช้ ในการตั้งคำตามด้วย นะ เช่น SMF 1.1.4 หรือ SMF2.0, OpenERP, Odoo และ รายละเอียดของ server OS, php เวอร์ชั่นไหน ฐานข้อมูลอะไร

Moderator: mindphp

กฎการใช้บอร์ด
คำถามหมวดนี้ ควรระบุ รายละเอียดของ Server OS, เวอร์ชั่น ของ PHP, CMS ที่ท่านใช้
รวมถึง Hosting หรือ Control Panel Hosting
AePongsak
PHP VIP Members
PHP VIP Members
โพสต์: 4996
ลงทะเบียนเมื่อ: 17/09/2016 10:09 am

สอบถามการเขียน Extension BBCode ที่จะ Query ข้อมูลจาก SQL ครับ

โพสต์ที่ยังไม่ได้อ่าน โดย AePongsak »

ตอนนี้ผมสร้างไฟล์

ตอนติดตั้ง Extension ในไฟล์ Migrations

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

	public function install_m_embed_bbcode()
	{

		$bbcode_data = array(
			'tab' => array(
				'bbcode_helpline'	=> 'Embed BBCode',
				'bbcode_match'		=> '[Topic={TEXT1}]{TEXT2}[/Topic]',
				'bbcode_tpl'		=> '<div class="tab"><h4 class="tabtitle">{TEXT1}</h4><div class="tabcontent"><div class="tabcontent_top"></div>{TEXT2}</div></div>',
			),			
		);

		global $db, $request, $user;
		$acp_manager = new \mindphp\m_embed_bbcode\includes\acp_manager($db, $request, $user, $this->phpbb_root_path, $this->php_ext);
		$acp_manager->install_bbcodes($bbcode_data);
	}
และไฟล์สร้าง BBcode ใน adm เมื่อติดตั้ง
ตอนนี้สามารถสร้างแค่ HTML แสดงตอนใช้ BBcode หน้า Topic

แต่ยังไม่เข้าใจว่าถ้าต้องการ Query ข้อมูลจาก SQL ให้ทำงานตอนใช้ bbcode ต้องสร้างยังไง และใช้งานยังไงครับ ขอวิธีแนะนำตัวอย่างง่ายๆให้ดูหน่อยครับ ส่วนข้อมูลผมจะไปศึกษาต่อ
รูปภาพ
ξν℮ry story has an end but in life every end is a neω ßeginning.
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามการเขียน Extension BBCode ที่จะ Query ข้อมูลจาก SQL ครับ

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

ประมาณว่า ใส่ bbcode ไปเเล้ว จากนั้น ดึงเลขที่อยู่ใน bbcode ออก จากนั้นก็ไปหาข้อความใน id ที่เราต้องการมาแปะกลับที่ post นั้น

เมื่อเรา add bbcode ได้เเล้ว ลองใช้ event นี้ดู

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

   static public function getSubscribedEvents() {
        return array(

            'core.modify_text_for_display_before' => 'modify_text_for_display_before',

        );
    }

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

public function modify_text_for_display_before($event) {
 
        $post_text = $event['text'];
        
//        print_r($post_text);
        
        $post_view = $this->post_view($post_text);
             
        $event['text'] = $post_view;
         
    }

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

public function post_view($post_text) {
//        $post_text ข้อความโพสต์ก่อนถอด bbcode
        @preg_match_all('/\[md_post.*?\](.*?)\[\/md_post(.*?)\]/', $post_text, $message);
//        print_r($message);
        #ตัวอย่าง [md_post]{TEXT}[/md_post] 
        #ตอนใช้งาน[md_post]1501[/md_post]
        #ถอด  match จะได้
        #Array ( [0] => Array ( 
        #[0] => [md_post]1501[/md_post] ) 
        #[1] => Array ( [0] => 1501 ) 
        #[2] => Array ( [0] => ) 
        #)
        #        $message[1] = Array ( [0] => 1501 ) ถ้าใส่ bbcode มากว่า 1 ตัวก็จะมีเพิ่มขึ้น
        #       

        foreach ($message[1] as $post_id) {
//            print_r($post_id);
            ## SQL สำหรับหาข้อมูล post ที่ต้องการมาแสดงที่นี่
            $sqlc = ' SELECT *  FROM ' . POSTS_TABLE . ' WHERE post_id = ' . $post_id;
            $resultc = $this->db->sql_query($sqlc);
//            $post_text = $this->db->sql_fetchfield('text');
            while ($row = $this->db->sql_fetchrow($resultc)) {
                $post_text = $row['post_text']; #'[b]111[/b]'; #$post_text
                $parse_flags = OPTION_FLAG_BBCODE;#($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
                $text = generate_text_for_display($post_text, $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);
                
//                $text = bbcode_nl2br($text);
//                $text = smiley_text($text);
            }
        }
         echo $text;

        return $post_text;
ลองดูวิธีนี้ก่อน
มันเเสดงข้อความจาก โพสต์อื่นที่ต้องการได้ เเต่ยังไม่สมบูรณ์ ต้องมาถอดbbcode กลับอีกครั้ง
AePongsak
PHP VIP Members
PHP VIP Members
โพสต์: 4996
ลงทะเบียนเมื่อ: 17/09/2016 10:09 am

Re: สอบถามการเขียน Extension BBCode ที่จะ Query ข้อมูลจาก SQL ครับ

โพสต์ที่ยังไม่ได้อ่าน โดย AePongsak »

เดียวลองดูนะครับ
รูปภาพ
ξν℮ry story has an end but in life every end is a neω ßeginning.
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 46