Joomla เป็นระบบ CMS ที่สามารถติดตั้งส่วนเสริมต่างๆ เพื่อเพิ่มความสามารถให้กับระบบ โดยส่วนเสริมบางตัวจะมีส่วนจัดการและจัดเก็บข้อมูลลงในฐานข้อมูล ในบทความนี้เราจะมาเรียนรู้วิธีการที่ระบบ Joomla ใช้ในการจัดการตารางของส่วนเสริม เวลาที่มีการติดตั้งใหม่หรือมีการอัพเดทเปลี่ยนแปลงโครงสร้างของตาราง ภายในโค้ดของระบบมันมีวิธีจัดการยังไงบ้าง สามารถศึกษาได้จากในบทความนี้ เพื่อใช้เป็นแนวทางหากต้องการประยุกต์ใช้ในระบบอื่นๆ
โดยในบทความนี้จะเน้นแค่ส่วนที่เกี่ยวข้องกับการ Install และ Update คำสั่ง SQL เท่านั้น
เริ่มต้นเวลาติดตั้งส่วนเสริมใหม่เข้าไปในระบบของ Joomla จะใช้ไฟล์ XML ในการอ่านข้อมูลเกี่ยวกับส่วนเสริม หากมีการใช้ตารางข้อมูลในไฟล์ XML ก็จะบอกตำแหน่งโฟลเดอร์ที่เก็บคำสั่ง SQL ไว้
ตัวอย่างไฟล์ XML
หมายเลข 1 ไฟล์ที่เก็บคำสั่ง SQL สำหรับสร้างตาราง กรณีติดตั้งส่วนเสริมใหม่
หมายเลข 2 ไฟล์ที่เก็บคำสั่ง SQL สำหรับลบตาราง กรณีถอนการติดตั้ง
หมายเลข 3 โฟลเดอร์ที่เก็บคำสั่ง SQL สำหรับอัพเดทตาราง กรณีอัพเดทเวอร์ชั่นของส่วนเสริม
ติดตั้งส่วนเสริมใหม่
เมื่อติดตั้งส่วนเสริมใหม่ ระบบจะอ่านตำแหน่งไฟล์ของคำสั่ง SQL สำหรับติดตั้ง จากไฟล์ XML
ตัวอย่างไฟล์ install.sql
ในส่วนโค้ด ถ้าเรารู้ตำแหน่งของไฟล์แล้ว ใช้คำสั่ง file_get_contents(); อ่านข้อมูลในไฟล์ แล้วมาใส่ในคำสั่ง Query เข้าฐานได้เลย
หลังจาก Query คำสั่ง SQL เข้าฐานข้อมูลเรียบร้อยแล้ว ใน Joomla จะมีตารางสำหรับเก็บข้อมูลเวอร์ชั่นของส่วนเสริมไว้
ตัวอย่างตาราง #__schemas
Field extension_id จะไปเชื่อมกับข้อมูลส่วนเสริมอีกทีว่าเป็นตัวไหน
ส่วน Field version_id จะเก็บเฉพาะ version ที่มีโครงสร้างตารางเปลี่ยนแปลง ข้อมูลนี้จำเป็นเมื่อมีการอัพเดทโครงสร้างตารางของส่วนเสริม
อัพเดทส่วนเสริม
เมื่อมีการอัพเดทส่วนเสริมแบบเปลี่ยนโครงสร้างตาราง ต้องมีการสร้างไฟล์อัพเดท SQL ไว้ในโฟลเดอร์ และตั้งชื่อตามเวอร์ชั่นที่อัพเดท
ตัวอย่าง เช่น อัพเดทเวอร์ชั่น 2.15.32 ต้องตั้งชื่อไฟล์ว่า 2.15.32.sql และใส่คำสั่ง SQL ที่อัพเดทเข้าไป
ตอนอัพเดทระบบจะดูตำแหน่งโฟลเดอร์ใน XML และเช็คเวอร์ชั่นใน XML เทียบกับ ชื่อไฟล์ SQL ที่อยู่ในโฟลเดอร์
จากนั้นระบบจะเช็คกับตาราง #__schemas อีกที เงื่อนไขคือ เวอร์ชั่นที่อัพเดทมาต้องมากกว่า เวอร์ชั่นที่อยู่ในตาราง ถึงจะทำคำสั่งในไฟล์อัพเดท
เพื่อป้องกันไม่ให้ทำคำสั่งซ้ำอีก และหลังจากอัพเดทเรียบร้อย ต้องมาอัพเดทเวอร์ชั่นในตารางนี้ด้วย
ถอนส่วนเสริมออก
ระบบจะอ่านตำแหน่งไฟล์ของคำสั่ง SQL สำหรับลบตารางออก จากไฟล์ XML
ตัวอย่างไฟล์ uninstall.sql
จากทั้ง 3 ส่วน ตั้งแต่ติดตั้ง อัพเดท และถอนส่วนเสริมออก การจัดการคำสั่ง SQL ไม่ได้ยุ่งยาก เพราะใน Joomla จะใช้วิธีให้ใส่คำสั่ง SQL แบบสำเร็จรูปมาเลย ทางระบบของ Joomla ทำหน้าที่แค่หาตำแหน่งไฟล์ และนำคำสั่ง SQL มา Query เข้าระบบอย่างเดียว แต่ในขั้นตอนที่ต้องอัพเดทโครงสร้างจำเป็นต้องมีตารางมาเก็บข้อมูลเวอร์ชั่นสำหรับเช็คโครงสร้างอีกที เพื่อป้องกันไม่ให้ระบบทำคำสั่งซ้ำ หรือ ทำคำสั่งของเวอร์ชั่นเก่า เพราะในโฟลเดอร์ Update SQL ของระบบ Joomla ปกติจะเก็บโครงสร้างไว้ทุกเวอร์ชั่นอยู่แล้ว เพราะฉะนั้นจะมีหลายไฟล์ในโฟลเดอร์นี้ สุดท้ายจากบทความนี้จะช่วยให้ผู้พัฒนาส่วนเสริมใน Joomla เข้าใจการทำงานส่วนนี้ได้ดีมากขึ้น และสามารถประยุกต์ใช้กับระบบอื่นได้
เรียนรู้วิธีการ Install และ Update คำสั่ง SQL ใน Joomla
Moderator: mindphp, ผู้ดูแลกระดาน
- tsukasaz
- PHP VIP Members
- โพสต์: 21154
- ลงทะเบียนเมื่อ: 18/04/2012 9:39 am
เรียนรู้วิธีการ Install และ Update คำสั่ง SQL ใน Joomla
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ Howto install Joomla 3.7 xampp On Windows10
โดย Patipat » 12/06/2019 2:03 pm » ใน Mindphp Videoman - 0 ตอบกลับ
- 5255 แสดง
-
โพสต์ล่าสุด โดย Patipat
12/06/2019 2:03 pm
-
-
- 1 ตอบกลับ
- 284 แสดง
-
โพสต์ล่าสุด โดย mindphp
05/07/2022 9:34 pm
-
-
โพสต์ใหม่ The program 'git' is currently not installed. You can install it by typing: sudo apt-get install git
โดย thatsawan » 19/12/2015 10:30 am » ใน Programming - PHP - 1 ตอบกลับ
- 1341 แสดง
-
โพสต์ล่าสุด โดย thatsawan
19/12/2015 11:10 am
-
-
-
โพสต์ใหม่ joomla วิธีแก้ install แล้วเกิด Warning: Failed to move file บน Ubuntu
โดย jamepiyawat » 01/06/2019 6:45 pm » ใน Joomla user Guide Knowledge - 0 ตอบกลับ
- 1455 แสดง
-
โพสต์ล่าสุด โดย jamepiyawat
01/06/2019 6:45 pm
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 1