หลายท่านที่ Follow Twitter ผม คงเห็นผมพูดถึง FLEXIcontent อยู่บ้างเป็นระยะๆ FLEXIcontent เป็น extension เสริมสำหรับจูมล่า ซึ่งพัฒนาโดย Emmanuel Danan ร่วมกับ ทีมบริษัทมาร์เวลิค เอ็นจิ้น จำกัด เว็บไซต์หลักคือ http://www.flexicontent.org หน้าเว็บอาจจะไม่ค่อยอับเดดเท่าไหร่ เนื่องจากคุณ Emmanuel หนีน้ำท่วมในไทย แต่ท่านก็สามารถติดตามความเคลื่อนไหวได้ใน ฟอร์รัม และ svn ที่มีการพัฒนาอย่างต่อเนื่อง ปัจจุบันกำลังพัฒนาอยู่ทั้ง 2 เวอร์ชั่น คือ FLEXIcontent v.1.5.6 สำหรับ Joomla 1.5.x และ FLEXIConent 2.0 สำหรับ Joomla 1.7 ขึ้นไป
FLEXIcontent ถูกออกแบบมาให้เพิ่มความสามารถของโครงสร้าง Content เดิมของ Joomla อาธิ เช่น
- ทำให้ท่านสามารถสร้างหมวดหมู่ย่อย(Sub-Category) ลึกลงไปได้ไม่จำกัด (ความสามารถนี้จูมล่าเพิ่งมีในเวอร์ชั่น 1.6 ขึ้นไป) [Nested categories]
- Content 1 Content สามารถอยู่ได้หลาย Category (Multi mapping)
- สามารถสร้างประเภท (Type) ของเนื้อหา โดยมีโครงสร้างข้อมูล (ฟิลด์) ที่แตกต่างกัน
- สามารถเพิ่มฟิลด์ข้อมูลได้ไม่จำกัด (Custom Fields)
- สามารถกำหนดรูปแบบการแสดงผลของเนื้อหาแต่ละประเภทได้ (Content Layout)
- มีระบบ Workflow สถานะเนื้อหาว่าอยู่ในขึ้นตอนใด เช่น Pending , Review , Draft
- มีระบบ Content Versioning เปรียบเทียบเนื้อหาที่แก้ไขในแต่ละครั้งได้ว่ามีการแก้ไขตรงส่วนไหน และสามารถนำกลับมาใช้ได้
- มีระบบบอกรับและส่งข่าวการอับเดดเนื้อหาแต่ละรายการ (Favourites / Notify)
- มีระบบ Tag
- มีระบบ Search ที่สามารถค้นหาข้อมูลลงลึกลงไปในแต่ละฟิลด์ได้
- มีระบบ Advanced Search ที่สามารถค้นหาข้อมูลลงลึกไปในแต่ละฟิลด์ และนอกจากนั้นยังสามารถสร้างฟอร์มค้นหา สำหรับการค้นหาแบบขั้นสูงได้
นี่เป็นเพียงความสามารถคร่าวๆ Extension ตัวนี้แจกฟรีนะครับ ย้ำอีกทีความาสามารถเยอะขนาดนี้แจกฟรีครับ ซึ่งทุกท่านที่ใช้งานก็สามารถร่วมบริจาค สนับสนุนการพัฒนาได้ตามกำลังของแต่ละท่านผ่านทาง บัญชีสมาคมศึกษาและพัฒาโอเพ่นซอร์ส ก็ได้ครับ เอาละครับผมจะพาทุกท่านทำความรู้จักกับ Extensions ตัวนี้ให้มากขึ้น
อันดับแรกดาวน์โหลด Extensions มาเพื่อทำการติดตั้งผ่านทาง Extensions Manager เมนู Extensions->install/uninstall
FLEXIcontent Download
เมื่อติดตั้ง FLEXIcontent เสร็จเรียบร้อยแล้วท่านจะเห็นเมนู FLEXIcontent เพิ่มเข้ามาภายใต้เมนู Components
Tips : ก่อนการตั้งค่า Configuration ท่านควรสร้าง Section ที่จะนำมาใช้ใน FLEXIcontent ไว้ก่อน
*** ในการใช้งาน FLEXIContent นั้น จะมีการกำหนด root Section ในการเริ่มต้น โดย Section จะใช้ Section ของ Joomla เอง ทั้งนี้แนะนำให้สร้าง Section ใหม่เพื่อเอาไว้ใช้งานกับ FLEXIContent โดยเฉพาะ ในการสร้าง Section ก็ไปสร้างผ่านทางเมนู Content -> Section Manager
รูปด้านบนคือการนำเข้าโครงสร้างข้อมูล (Import Joomla Structure) กรณีเราได้มีการสร้างเนื้อหาต่างๆ ไว้แล้วและต้องการ เปลี่ยนมาจัดการด้วย FLEXIcontent แทนระบบ Content ของเดิม (๋Joomla) ซึ่ง FLEXIcontent จะทำการสร้าง Section ขึ้นมาให้ใหม่โดยใช้ชื่อว่า FLEXIsection และทำการคัดลอก Category และเนื้อหา เข้ามา ซึ่งท่านจะต้องไปทำการ unpublish เนื้อหาเดิมด้วย เพื่อไม่ให้ข้อมูลแสดงซ้ำซ้อน (duplicate) และที่ต้องระวังคือให้ใช้การ Import เพียงครั้งเดียวเท่านั้น เพราะทุกครั้งที่ทำมันจะทำการคัดลอกข้อมูลมาใหม่ ซึ่งจะทำให้ข้อมูลซ้ำกันได้ ยิ่งข้อมูลมากก็จะเสียเวลาในการไล่ลบออกในภายหลัง
เมื่อกำหนด Section เริ่มต้นแล้ว กรณีที่มี Categories อยู่ก่อนแล้วระบบก็จะดึงมาแสดง แต่หากยังไม่เคยมี Category ใดๆ อยู่ ก็สามารถสร้างขึ้นใหม่ได้จากแท็ปของ Categories โดยใน FLEXIcontent นั้นจะสามารถสร้าง Sub-Category ย่อยซ้อนลงไปได้ไม่จำกัด
ในการกำหนดรายละเอียด Category นั้น จะมีการกำหนดรูปแบบการแสดงผล (Template Layout) ซึ่งจะใช้ในการแสดงผลด้านหน้าเว็บไซต์เมื่อแสดงในระดับของ Category ส่วนรูปแบบการแสดงผลของแต่ละรายการนั้นจะกำหนดที่ Type (ภาพถัดไป)
Types : ชนิดหรือประเภทของบทความ ซึ่ง Type เริ่มต้นที่ระบบจะกำหนดไว้ให้คือ Article ท่านสามารถที่จะสร้าง Type เพิ่มขึ้นได้ใหม่โดย Type จะเป็นตัวที่ใช้กำหนดรูปแบบการแสดงผล (Template) ในระดับของรายการ (item) , ฟิลด์ต่างๆ ที่จะมีใน Type นี้ว่าจะมีฟิลด์อะไรบ้างเพื่อกรอกข้อมูลและแสดงผล
เลือกชนิดของฟิลด์ และกำหนดคุณสมบัติ (properties) ซึ่งการกำหนดคุณสมบัติของฟิลด์ในแต่ละชนิดก็มีให้กำหนดมากน้อยแตกต่างกัน
ในแต่ละฟิลด์ที่เพิ่มขึ้นนั้นสามารถกำหนดให้ฟิลด์นั้นรองรับการค้นหาแบบ Full Text Search ได้ด้วย ( Advanced Search ) โดย FLEXIcontent จะมีโมดูลชื่อ Advanced Search ซึ่งฟิลด์ที่ได้เลือกเป็น Advanced Search นั้น จะทำงานร่วมกับ Tab ที่ชื่อ Search Index
- Search ที่สามารถค้นหาข้อมูลลงลึกลงไปในแต่ละฟิลด์ได้
- Advanced Search สามารถค้นหาข้อมูลลงลึกไปในแต่ละฟิลด์ และนอกจากนั้นยังสามารถสร้างฟอร์มค้นหา สำหรับการค้นหาแบบขั้นสูงได้
FYI : ในส่วนของชนิดฟิลด์เพิ่มเติมนั้น บริษัทมาร์เวลิค เอ็นจิ้น ได้พัฒนาฟิลด์ชื่อว่า FilePro สำหรับใช้กับลูกค้าของมาร์เวลิค รองรับไฟล์ชนิดต่างๆ เช่น docx , ppt , pdf , xls เพื่อให้สามารถค้นคำ ที่อยู่ในเนื้อหาของไฟล์ต่างๆ ได้
ฟิลด์ที่ได้ทำการเพิ่มเข้าไปก็จะมาอยู่ใน List ซึ่งท่านสามารถจัดลำดับในการกรอกข้อมูลได้ โดยการกำหนด Order ของฟิลด์ในแต่ละ Type
หน้าจอในการกรอกข้อมูล (item) จะมีฟิลด์มากน้อยเพียงใดนั้น ก็ขึ้นอยู่กับการกำหนดจำนวนฟิลด์ใน Type และการเรียงลำดับของฟิลด์ที่หน้าจอของการกรอกข้อมูลก็ขึ้นอยู่กับการจัดลำดับฟิลด์ของแต่ละ Type ซึ่งลำดับการกรอกข้อมูล กับ การแสดงผลนั้นจะไม่เกี่ยวกัน โดยในส่วนของการแสดงผลด้านหน้านั้น FLEXIcontent จะมีระบบ Template ในการกำหนด (ดูในภาพถัดไป)
การจัดการเทมเพลต : FLEXIcontent จะมี Template ติดมาให้ 3 แบบด้วยกัน ซึ่งใน 1 Template ก็จะมี Layout สำหรับแสดง Item และแสดงในระดับ Category ในกรณีที่ต้องการแก้ไขรูปแบบการแสดงผลนั้น ทีมพัฒนาแนะนำให้ท่านทำการ สร้าง Template ขึ้นมาใหม่ (Duplicate) โดยการคลิกที่รูปด้านหน้าชื่อ Template
เทมเพลตที่สร้างขึ้นมาใหม่นี้ ระบบจะทำการสร้างโครงสร้างไว้ให้ สำหรับท่านที่มีความเชี่ยวชาญเรื่อง CSS และเขียนโค้ดได้ สามารถเปิดไฟล์เพื่อทำการแก้ไขได้ โดยโครงสร้างไฟล์จะอยู่ที่ components\com_flexicontent\templates\ชื่อเทมเพลตที่คุณตั้งชื่อไว้ โดยในเทมเพลตนั้นจะเป็น Layout ส่วนการกำหนดว่ามีฟิลด์อะไรบ้างนั้น จะอยู่ที่การกำหนดผ่าน UI ส่วนของ Edit Template ในเว็บ (ภาพด้านถัดไป)
Author หรือผู้เขียน ในส่วนนี้จะใช้ในการกำหนดรายละเอียดข้อมูลของผู้ที่เป็นนักเขียนแต่ละท่าน ในส่วนของรายละเอียดผู้เขียนคนๆ นั้นจะชี้ไปยัง Content ที่ได้เตรียมไว้
เมื่อใส่ข้อมูลต่างๆ จนครบแล้วเมื่อต้องการจะแสดงผล ก็จะต้องไปสร้างเมนู เพื่อชี้มายัง FLEXIcontent ซึ่งชนิดของการแสดงผลด้านหน้าเว็บไซต์นั้นก็จะมีเมนูหลายชนิดให้ได้เลือกใช้งาน (ดังภาพด้านบน)
โมดูลที่มีให้ที่มากความสามารถ เช่น FLEXIcontent Module ที่แสดงผลได้หลากหลายแบบ
ช่อง Notify จะแสดงต่อเมื่อรายการนั้นๆ มีผู้ Favourities ไว้ ซึ่งหากมีการแก้ไขเนื้อหานั้นๆ ท่านก็สามารถคลิกเลือกให้ระบบส่งเมล์ไปแจ้งยังสมาชิกได้
สำหรับการบริหารจัดการ Content ผ่านด้านหน้าเว็บไซต์ (Frontend) นั้น ก็ยังมี FLEXImyContent ที่เพิ่มความสามรถและความสะดวกในการใช้งานให้กับท่านและสมาชิกในเว็บของท่าน รายละเอียดเกี่ยวกับ FLEXImyContent (ส่วนกรณีที่ไม่ได้ใช้ FLEXIcontent ก็มี LaiThaimyContent) สามารถดูรายละเอียดและซื้อได้ในเว็บไซต์ CMSPlugin.com
สุดท้าย FLEXIContent นี้ถึงแม้ทีมมาร์เวลิค ที่เป็นคนไทยพัฒนา แต่ก็ยังไม่มีเวลาทำภาษาไทย อยากได้อาสาสมัคร ที่เอาไปลองใช้แล้วเกิดประโยชน์อาสาแปลไฟล์ภาษาไทยแล้วส่งคืนมาให้ทีนะครับ จะได้ Pack แจกจ่ายออกไป