พื้นฐาน Joomla

จัดตารางอย่างไร ให้ดูดี
เอากันเข้าไป คุณผู้อ่านคงจะนึกว่า มันจะทำให้ดูดีอะไรกันนักหนา ติด ๆ กันหลายบทความแล้ว แหม ผมก็จ...

เทคนิค Joomla

Invalid Token
ปัญหานี้ หากใครใช้ Joomla แบบทั่ว ๆ ไปก็คงไม่พบเจอกันหรอกครับ แต่มักจะพบเจอกับผู้ที่ใช้ Templat...

แนะนำ Extension

สร้างแผนที่ด้วย Phoca Map
สมัยนี้ เทคโนโลยีกว้างไกล เว็บไซต์ของเราก็ต้องกว้างตามเช่นกัน ทำเว็บทั้งที อยากจะให้คนเค้ารู้ว่...
( 12 Votes )
คอมโพเน้นท์ โมดูล ปลั๊กอิน สำหรับผู้เริ่มต้นสนใจใน Joomla ไประยะหนึ่ง จะเกิดความสงสัยว่า 3 ตัวนี้ มันแตกต่างกันอย่างไร รู้เพียงแต่ว่า เราต้องติดตั้งตัวนี้ มันก็จะใช้งานได้ , รู้เพียงแต่ว่า ติดตั้งแล้ว ต้องไปดูที่ตรงนี้ ถึงจะใช้ได้ , ความแตกต่างของ คอมโพเน้นท์ โมดูล และปลั๊กอิน อยู่ที่การใช้งาน และการแสดงผล ซึ่งมีลักษณะการแสดงผล ของตัวมันเองไม่เหมือนกัน แต่ไม่ได้หมายถึงแตกต่างกันโดยสิ้นเชิง บางครั้งการใช้งานก็มีความคล้ายคลึงกัน จนกระทั่งเราก็สับสนกับมันเล็กน้อย ถ้าหากเราไม่คุ้นเคยกับส่วนเสริมเหล่านี้บ่อย ๆ

3 สิ่งที่จะกล่าวต่อไปนี้ ล้วนเป็น Extension หรือส่วนขยายให้กับ Joomla ทั้งสิ้น ซึ่งมักจะสับสนกับความหมาย และการใช้งานกันพอสมควร โดยมักจะไปงงกันเอาตอนที่เมื่อต้องการอะไรมาติดตั้งเพิ่มให้กับเว็บไซต์ แต่ไม่รู้ว่าสิ่งนั้น จะเรียกว่า Component , Module หรือ Plugin กันแน่ บทความนี้เอาคำตอบมาให้คุณครับ

คอมโพเน้นท์ Component (คอมโพเน้นท์) เปรียบเสมือนโปรแกรมเสริมให้กับ Joomla ซึ่งเมื่อติดตั้งแล้ว จะมีทั้งเครื่องมือ เมนูต่าง ๆ เพิ่มขึ้นมา ลองนึกดูว่า Joomla เอง ก็เป็นโปรแกรมสำเร็จรูปโปรแกรมหนึ่ง , คอมโพเน้นท์ ก็เป็นโปรแกรมสำเร็จรูปที่ถูกติดตั้งเพิ่มเข้าไปในจูมล่าอีกเช่นกัน ทำให้เหมือนว่า จูมล่าสามารถมีเครื่องมือสั่งการได้มากขึ้น เช่น

คอมโพเน้นท์ต้องการจัดหมวดหมู่การดาวน์โหลด ก็หาคอมโพเน้นท์เกี่ยวกับการดาวน์โหลดมาติดตั้ง เราก็จะสามารถใช้คอมโพเน้นท์นี้จัดหมวดหมู่การดาวน์โหลดไฟล์ได้ ซึ่งจะมีเครื่องมืออำนวยความสะดวกมาให้พร้อมใช้งาน

การทำแบบสำรวจ เราก็ต้องใช้คอมโพเน้นท์ Poll เพื่อป้อนข้อความเกี่ยวกับตัวเลือก และการโหวต

การสร้างฟอร์มสำหรับผู้ใช้งาน เราก็ต้องหาคอมโพเน้นท์ที่มีเครื่องมือในการสร้าง Textbox ได้ สร้าง Listbox ได้ หรือ สร้างปุ่ม Submit ได้ มาจัดสร้างเป็นฟอร์มที่ต้องการ

จะเห็นว่า คอมโพเน้นท์ จะมาพร้อมกับเครื่องมือสำหรับจัดการสิ่งต่าง ๆ โดยเฉพาะ ซึ่งอย่างที่บอกไป มันเปรียบเสมือนโปรแกรมเสริม ที่ถูกติดตั้งเข้าไปใน Joomla อีกที ทำให้ Joomla สามารถสร้างสิ่งที่ไม่มีอยู่ ให้เกิดขึ้นได้ และคอมโพเน้นท์ที่ติดตั้งไปส่วนมาก จะสามารถเข้าถึงโดยใช้การสร้างเมนูลิ้งค์ได้ เมื่อติดตั้งคอมโพเน้นท์ครั้งใด ก็มักจะปรากฏลิ้งค์ใหม่ ที่การสร้างเมนูเสมอ เพราะบางคอมโพเน้นท์ จะสามารถให้ผู้ใช้งานเข้าถึงในส่วนที่ถูกกำหนดไว้ได้

โมดูลโมดูล Module (โมดูล) คือส่วนเสริมการแสดงผลอยู่ที่ด้านหน้า Website (ส่วนของ Module ด้านหลังจะไม่ขอพูดถึง)  ถ้าหากเราดู Template แล้ว จะพบว่า แต่ละจุดของ Template จะมีตำแหน่งของโมดูลออกเป็นส่วน ๆ เช่น top , left , right , user1 , user2 , bottom ฯลฯ

 

คอมโพเน้นท์ โมดูล ปลั๊กอิน

ซึ่งสิ่งเหล่านี้เรียกว่า Position (โพสิชั่น = ตำแหน่ง) แต่ละ Template ก็จะมีตำแหน่งของโมดูลที่ต่างกันไป คำว่า left หรือ right ไม่จำเป็นต้องอยู่ที่ข้างซ้าย หรือ ขวา เสมอไป มันอาจจะไปอยู่ที่ด้านบน หรือ ด้านล่างก็ได้ เพียงแต่ชื่อที่ปรากฏ เป็นเพียงชื่อเรียกตำแหน่งของโมดูลนั้น ๆ

โมดูลมีความสามารถในการย้ายตำแหน่งการแสดงผลไปยังส่วนอื่น ๆ ของ Template ได้ ตามตำแหน่งเท่าที่ Template นั้น ๆ จะมีให้ใช้ อะไรที่ Website เราไม่มี แต่อยากให้มี และแสดงผลอยู่ให้เห็น นั่นคือโมดูล เช่น อยากจะมีส่วนสำหรับให้ผู้ใช้ล็อคอินเข้าระบบ ก็จะต้องไปทำการเพิ่มโมดูลในระบบขึ้นมา แล้วนำไปวางตำแหน่ง left , โมดูลล็อคอินนี้ ก็จะไปปรากฏที่ด้านซ้ายของ Website , อยากจะมีภาพดอกไม้ แสดงผลที่ด้านขวาของ Website เลื่อนไปเรื่อย ๆ ไม่ซ้ำกัน เราก็ต้องไปหาโมดูล ที่มีความสามารถในการเรียกรูปภาพจากไดเร็คทอรี่มา แล้วกำหนดตำแหน่งให้อยู่ใน Position ที่ชื่อว่า right , อยากจะให้แสดงผู้เยี่ยมชมด้านล่าง เราก็ต้องหาโมดูลที่เกี่ยวกับการบันทึกการเข้า Website มาติดตั้ง และกำหนดตำแหน่งแสดงผลไปไว้ที่ Position ที่ชื่อว่า bottom เป็นต้น

โมดูล สามารถปรับตั้งค่าของตนเองได้ระดับหนึ่ง เพื่อความแตกต่างในการแสดงผล แต่บางครั้ง คอมโพเน้นท์ ก็ต้องใช้งานควบคู่กับโมดูล เพราะตัวคอมโพเน้นท์เองก็ไม่สามารถแสดงผลโดยตรงได้ จึงคอยเป็นตัวจัดการสิ่งต่าง ๆ ผ่านทางเครื่องมือที่เพรียบพร้อม แล้วก็อาศัยโมดูลทำหน้าที่นำสิ่งที่คอมโพเน้นท์นั้นเตรียมไว้ ไปแสดงผลอีกที

ความแตกต่างระหว่างคอมโพเน้นท์ กับโมดูลที่มักเห็นได้ชัดคือ หากต้องการเพิ่มความสามารถให้กับ Joomla ในรูปแบบที่ต้องมีการบันทึกลงฐานข้อมูลด้วยแล้ว โมดูลเองมักจะไม่สามารถทำได้ เพราะมันไม่มีเครื่องมือจัดการต่าง ๆ มันไม่ใช่โปรแกรมเสริมเหมือนคอมโพเน้นท์ โมดูลเป็นเพียงแค่การแสดงผล แต่ตัวที่จะจัดการและควบคุมการแสดงผล ก็คือโปรแกรมเสริม ซึ่งอาจเป็นคอมโพเน้นท์ หรือ ตัว Joomla เองก็ได้ , และจะเห็นได้ว่า เมื่อใดก็ตามที่มีการบันทึกสิ่งใหม่ ๆ ลงฐานข้อมูลแล้ว เท่ากับว่า ฐานข้อมูลนั้น มีตารางใหม่เกิดขึ้นมา ซึ่งคอมโพเน้นท์เองได้ชื่ออยู่แล้วว่าเป็นโปรแกรมย่อย โปรแกรมเสริม ก็ย่อมมีเครื่องมือจัดการกับสิ่งเหล่านี้อยู่แล้ว ตัวอย่างเช่น ต้องการสร้างแบบฟอร์มให้ผู้ใช้กรอกข้อมูล เราก็จะไปหาโปรแกรมสร้างฟอร์ม (คอมโพเน้นท์) มาติดตั้งให้ Joomla แล้วก็จัดการสร้างช่องใส่ข้อมูล ความกว้างเท่าไหร่ , สามารถพิมพ์อะไรลงไปได้บ้าง , ทั้งหมดกี่ช่อง แล้วก็บันทึกสิ่งที่ได้ทำไว้

ต่อมา หากต้องการให้ผู้ใช้งานเห็นสิ่งเหล่านี้ ซึ่งก็คือแบบฟอร์มที่ได้สร้างไว้ คอมโพเน้นท์ก็จะบอกว่า

คอมโพเน้นท์ : เฮ้ โมดูล นายเอาแบบฟอร์มนี้ ไปแสดงผลด้านบนของ Website หน่อยสิ

โมดูล : ได้ครับท่าน

โมดูลก็จะไปดูว่า สิ่งที่คอมโพเน้นท์ได้ทำไว้นั้น มีอะไรบ้าง

โมดูล : อ๋อ คอมโพเน้นท์ได้สร้างช่องใส่ข้อมูลไว้นี่เอง เอาล่ะ เราจะนำช่องนี้ ไปแสดงผลที่ด้านบนของ Website ให้เอง

มันก็เป็นแบบนี้ล่ะครับ อาจจะยาวไปหน่อย แต่อยากให้นึกภาพความแตกต่าง และความสัมพันธ์ระหว่าง 2 คำนี้ให้เข้าใจครับ

ปลั๊กอิน ปลั๊กอินPlugin (ปลั๊กอิน) ตัวนี้ อาจจะเข้าใจยากสักหน่อย เพราะมันก็คือส่วนที่แสดงผลใน Website เช่นเดียวกัน ซึ่งอาจจะสับสนกับการแสดงผลแบบโมดูล แต่ความแตกต่างกันมันอยู่ที่ ปลั๊กอินนั้น ไม่มี Position หรือตำแหน่งในการแสดงผล เราไม่สามารถกำหนดได้ว่า จะให้อยู่บน ล่าง ซ้าย หรือขวา , จะให้อยู่ Position ที่ชื่อว่า left , right หรือ user1 แต่ปลั๊กอิน จะเป็นผลในการแสดงแบบแฝงตัว ในสิ่งที่มีการแสดงผลอยู่แล้ว

เช่น การค้นหา อยากได้ช่องค้นหา (Search) ให้ผู้ใช้งานพิมพ์คำค้นที่ต้องการ แล้วกดปุ่มค้นหาได้ , จุดนี้ที่เราต้องนำมาแสดงก็คือ โมดูล แต่ จะค้นหาอะไรได้บ้าง ? ค้นหาจากเนื้อหาได้ไหม , ค้นหาจาก Section หรือ Category ได้ไหม , ค้นหาจาก Tag ได้ไหม , ค้นหาจากส่วนหนึ่งส่วนใดของเนื้อหา ได้ไหม ปลั๊กอินจะเป็นตัวเสริมให้สิ่งที่แสดงผลอยู่ มีความสามารถเพิ่มมากขึ้น จะช่วยให้ค้นหาจากสิ่งที่ต้องการได้ ถ้าหากมีโมดูล Search อยู่ แต่ ปิดปลั๊กอินเกี่ยวกับการ Search ไป โมดูลก็ำทำอะไรไม่ได้ครับ ได้แต่เพียงแสดงช่อง Search กับปุ่มเท่านั้น แต่ไม่สามารถค้นอะไรได้เลย

กรณีเดียวกัน ถ้าอยากจะให้ผู้ใช้งาน สามารถล็อคอินเข้าระบบได้ เราก็ต้องหาโมดูลล็อคอิน มาไว้ในตำแหน่งใดตำแหน่งหนึ่ง เพื่อแสดงผลให้ผู้ใช้สามารถพิมพ์ Username และรหัสผ่านได้ แต่ ปลั๊กอินที่เกี่ยวข้อกับการล็อคอินจะเป็นตัวช่วยตรวจสอบว่า สิ่งที่ผู้ใช้พิมพ์มานั้น สามารถนำไปใช้ยืนยันเพื่อทำกระบวนการล็อคอินได้หรือไม่

คอมโพเน้นท์ โมดูล ปลั๊กอิน

แม้มีโมดูลให้ล็อคอินปรากฏอยู่ แต่ก็ไม่สามารถทำกระบวนการล็อคอินได้ เพราะปลั๊กอินถูกปิดใช้งาน

จะเห็นว่า แม้มีโมดูลปรากฏให้ใช้งานแล้ว แต่หากขาดปลั๊กอินบางตัวไป โมดูลนั้นก็ไม่สามารถทำงานได้ เพราะปลั๊กอินเป็นตัวแฝง และเสริมการทำงานกับสิ่งที่แสดงผลอยู่ ซึ่งสิ่งที่แสดงผลอยู่ก็คือโมดูลนั่นเอง , เมื่อปลั๊กอินมีความสามารถในการแสดงผลแบบแฝงตัวแล้ว มันย่อมสามารถไปปรากฏแทรกอยู่ที่ใดก็ได้ โดยไม่ขึ้นอยู่กับ Position หากปลั๊กอินที่ใช้งานอยู่ สนับสนุนความสามารถนี้ เช่น

ปลั๊กอินอำนวยความสะดวกในการใช้งาน

คอมโพเน้นท์ โมดูล ปลั๊กอิน

จะเห็นว่า ภายใต้ Editor จะมีปุ่มต่าง ๆ อยู่ ซึ่งปุ่มเหล่านี้ สามารถเพิ่มขึ้นได้ในอนาคต หากมีปลั๊กอินสนับสนุนการใช้งาน หรือ หากปลั๊กอินนี้ ไม่ได้มีอยู่หรือถูกปิดการใช้งานไป

คอมโพเน้นท์ โมดูล ปลั๊กอิน

ปุ่มอำนวยความสะดวก Image ก็จะหายไป

คอมโพเน้นท์ โมดูล ปลั๊กอิน

จะพบว่า Editor สำหรับเขียนบทความเดิม ๆ จะไม่สามารถทำอะไรได้ เช่น จะไม่มีปุ่มสำหรับแทรกรูปภาพด้านล่าง , จะไม่สามารถเชิญชวนให้อ่านบทความที่เหลือโดยใช้ Read More , หรือจะไม่สามารถแบ่งหน้าย่อย ๆ ภายในบทความนั้นได้ หากขาดปลั๊กอิน Pagebreak , เมื่อมีปลั๊กอินเหล่านี้ถูกเปิดใช้งานอยู่ มันก็จะไปสนับสนุนให้ Editor นี้ มีความสามารถด้านนั้น ๆ เพิ่มขึ้นนั่นเอง

ปลั๊กอิน ยังมีความสามารถในการแฝงตัวเพื่อแสดงผลได้อีกหลายแบบ ขึ้นอยู่กับการใช้งานที่แตกต่างกันไป ไม่จำเป็นต้องยึดติดกับตัวอย่างนี้เพียงอย่างเดียวนะครับ

ทีนี้พอจะแยกแยะความแตกต่างของคำทั้ง 3 ออกบ้างหรือยังครับ ? หรือยังไม่เข้าใจอะไรเลย Cry

Component Module Plugin คืออะไร