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

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

Moderator: mindphp

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

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

Post by AePongsak »

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

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

Code: Select all

	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 ต้องสร้างยังไง และใช้งานยังไงครับ ขอวิธีแนะนำตัวอย่างง่ายๆให้ดูหน่อยครับ ส่วนข้อมูลผมจะไปศึกษาต่อ
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27341
Joined: 31/03/2014 10:02 am
Contact:

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

Post by thatsawan »

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

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

Code: Select all

   static public function getSubscribedEvents() {
        return array(

            'core.modify_text_for_display_before' => 'modify_text_for_display_before',

        );
    }

Code: Select all

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;
         
    }

Code: Select all

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
Posts: 4996
Joined: 17/09/2016 10:09 am

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

Post by AePongsak »

เดียวลองดูนะครับ
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM”

Who is online

Users browsing this forum: No registered users and 7 guests