31 January, 2014

Drupal Content Types

Content Types คือสิ่งที่ไฮไลท์สำคัญของ Drupal มาทุกเวอร์ชั่น แล้วเจ้า Content Types นี่มันคืออะไร วันนี้เรามีคำตอบครับ

เว็บไซต์หนึ่งประกอบด้วยประเภทของข้อมูลหลากหลาย เช่น ข่าว บทความ โพล(poll) บล็อก(blog) รายการสินค้า ข้อมูลการซื้อขาย ข้อมูลการฝึกอบรม เป็นต้น ข้อมูลเหล่านี้แหละครับที่เป็นตัวอย่างของ Content Types หรือ ประเภทของข้อมูลนั่นเอง หากคุณมาจากสาย Joomla ประเภทของข้อมูลที่เราเห็นชัดเจนเลยก็คือ Article ส่วนสาย Wordpress ก็จะมี Post กับ Page ประเภทของข้อมูลเหล่านี้ถูกกำหนดเป็น Content พื้นฐานของระบบ และไม่สามารถแก้ไขฟิลด์เพิ่มเติมได้


ฟิลด์ (Field) ที่ว่าคืออะไรล่ะ ? ก็อย่างเช่นใน Wordpress หากคุณต้องการเพิ่ม Post เค้าก็จะมีฟิลด์ให้คุณกรอก คือ Title, content, tag, ... สิ่งต่างๆเหล่านี้แหละครับคือฟิลด์

ซึ่งในฐานะคนทำเว็บ หากเราพอใจกับประเภทของข้อมูลที่ประกอบไปด้วยฟิลด์ตามที่เจ้าของระบบจัดให้ก็ไม่ต้องทำอะไรเพิ่มเติม แต่เมื่อใดที่เราหรือลูกค้าของเราต้องการอะไรนอกเหนือจากสิ่งที่ระบบมอบให้ เราก็ต้องปวดหัวไม่น้อยครับ เช่น หากเราต้องการทำเว็บที่แสดงรายการฝึกอบรมหลักสูตรของสถาบันสอนภาษา โดยใช้ Joomla เป็นตัวจัดการ เราจะทำยังไงครับ ? บางคนอาจตอบว่า ให้สร้าง Article แล้ว insert ตาราง จากนั้นกรอกข้อมูลหลักสูตรทีละแถว ก็ไม่ผิดครับ เพียงแต่ว่า เราอาจจะใช้ content type ไม่เหมาะสมนัก ถ้าจะให้ดีจริง ก็ต้องทำการ Custom Fields หรือจัดหา Add-on ต่างๆมาลง

แล้วใน Drupal หล่ะ มี Content Types อะไรบ้าง ?

ใน Drupal มี content types เริ่มต้นให้เราใช้งานได้ทันที 5 ประเภท คือ Article, Basic Page, Book Page, Forum Topic, Poll โดยที่หลังการติดตั้งครั้งแรก เราจะเห็นแค่ Article กับ Basic Page เท่านั้นนะครับ Content ตัวอื่นๆต้องไป Enable ก่อนจึงจะใช้งานได้ครับ
Drupal Content Types
Drupal Content Types

ในแต่ละ content ก็จะมีฟิลด์ที่เหมือนหรือแตกต่างกันไปตามแต่ประเภทการใช้งาน แต่เราสามารถเพิ่มเติมฟิลด์เหล่านี้ได้อย่างอิสระครับ เช่น Article เดิมทีมีแต่ฟิลด์ title กับ body เท่านั้น ก็สามารถเพิ่มฟิลด์อื่นลงไปได้ เช่น image, tag, file ...

นอกจากนี้ หาก content types ที่มากับ Drupal ทั้ง 5 ชนิดที่มีมาให้ยังไม่ตอบโจทย์การใช้งานของเราได้ดีพอ เราสามารถเพิ่ม content type ของเราเองได้ นี่แหละเป็นคำตอบว่าทำไมผมจึงเรียกว่า Content Types เป็นไฮไลท์สำคัญตัวหนึ่งของ Drupal ยกตัวอย่างจากคำถามด้านบน กรณีของการแสดงรายการฝึกอบรมหลักสูตรของสถาบันสอนภาษา หากเราใช้ Drupal เป็นตัวจัดการ โดยการสร้าง content type ตัวใหม่ขึ้นมา ชื่อ "หลักสูตร" แล้วเพิ่มฟิลด์ที่ต้องการสำหรับหลักสูตร เช่น ชื่อหลักสูตร กลุ่มเป้าหมาย ความรู้พื้นฐานของผู้อบรม วันฝึกอบรม อาจารย์ที่สอน จำนวนที่นั่ง สถานที่ฝึกอบรม  เป็นต้น

ตอนกรอกข้อมูลหลักสูตร คุณก็กรอกข้อมูลตามฟิลด์ที่สร้างไว้ แล้วใช้โมดูลสำหรับการแสดงผล เช่น Views ไปดึงข้อมูลหลักสูตรออกมาแสดงผลในรูปแบบของตารางได้ทันที ถึงตอนนี้หากคุณเคยเขียนโปรแกรมบนเว็บมาก่อน เช่น PHP คงนึกถึงตอนที่เราต้องสร้าง HTML Form แล้วส่งค่าไปเก็บที่ฐานข้อมูล แล้วเขียน query ให้ส่งข้อมูลมาแสดงผลที่หน้าจอ ใช่เลยครับ Drupal ทำงานแบบนั้นแหละ ไม่ต่างจากเราเขียนโปรแกรมเอง แต่เราไม่ต้องปวดหมองกับการ coding และระวังเรื่องความปลอดภัยด้วยตนเองแล้ว ปล่อยให้เป็นหน้าที่ของ Drupal ส่วนเรามีหน้าที่ใช้และเชื่อมโยงให้เป็นครับ

เห็นมั้ยครับ Content Types ใน Drupal จึงเป็นสิ่งที่นักพัฒนาเว็บด้วย Drupal ต้องเข้าใจก่อนเป็นอันดับแรก แล้วเราก็จะสามารถต่อยอดในส่วนอื่นๆได้ต่อไป

No comments:

Post a Comment