• knife set
  • feed

    เรียนรู้พื้นฐาน Drupal Modules

    posted on 31 May 2009 07:02 by itshee in Drupal

    บล็อกนี้เป็นซีรีส์ของ คู่มือปรุงเว็บไซต์ฉบับ non-programmer โดยนำเคสของ stylelurf.com มาให้ดูกันครับ จะเป็นการเล่าของการทำเว็บไซต์ยากๆ โดยไม่จำเป็นต้องรู้โค้ด PHP หรือ MySQL ซักนิดเดียว

    มอจูล (module - โมดูล โมดู่ โมดูเละ) คราวก่อนก็เกริ่นนำไปไปแล้ว คราวนี้เพิ่มเติมขึ้นมา มอจูลนั้นถ้าพูดสั้นๆ ก็คือส่วนเสริมของโค้ด มีลักษณะเหมือน ปลั๊กอินส์ หรือ แอดออนส์ ของซอฟต์แวร์ยังไงยังงั้น โดยเมื่อเราติดตั้งเพิ่มก็จะทำให้ดรูปัล (Drupal) เรามีลูกเล่นมากขึ้น

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


    ดาวน์โหลดที่ไหน

    มอจูลสามารถหาดาวน์โหลดฟรีได้ที่ http://drupal.org/project/modules ซึ่งนอกจากในเว็บส่วนตัวบางคนให้ดาวน์โหลดมอจูล แต่อันนี้ก็ต้องระวังเพราะความเสี่ยงสูงในการโดนแฮ็กผ่านทางมอจูล

    มอจูลที่เกือบทุกเว็บไซต์ใช้กัน สำหรับดรูปัลรุ่น 6 ได้แก่

    • Administration Menu (เมนูพิเศษสำหรับในการจัดการระบบ)
    • CCK (เพิ่มฟีลด์สำหรับกรอก) สำหรับดรูปัลรุ่น 7 ส่วนนี้บทบาทจะลดลง เพราะจะเข้าอยู่ในคอร์
    • Pathauto (สร้างแพธ URL อัตโนมัติ)
    • Poormanscron (ระบบทำงานครอน สำหรับเซิร์ฟเวอร์ที่ใช้งานครอนไม่สะดวก)
    • Vertical Tabs (แท็บแนวตั้ง ในการสร้างโหนด)
    • Views (ส่วนในการเรียกข้อมูลจากฐานข้อมูล)
    • Wysiwyg API (ตัวเชื่อมต่อกับระบบวิซซีวิก พวก rich-text editor แบบต่างๆ)

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


    วิธีเลือกมอจูล

    • เมื่อเข้าไปในหน้าของมอจูลนั้น ตรวจสอบให้แน่ใจว่าเลือกมอจูลมาถูกรุ่น ซึ่งบางมอจูลจะมีให้ใช้หลายรุ่น ซึ่งตัวอย่างจะเขียนดังนี้
      • 6.x-2.0 - มอจูลรุ่น 2 สำหรับดรูปัลรุ่น 6
      • 5.x-1.12- มอจูลรุ่น 1 อัปเดตครั้งที่ 12 สำหรับดรูปัลรุ่น 5
    • ตรวจดูรุ่นของมอจูลก่อนเลือกว่าเป็นตัวสมบูรณ์แล้ว หรือว่าตัวทดลอง เช่น
      • 6.x-1.5 - ถ้ามอจูลไม่มีตัวอะไรต่อท้าย ก็ถือว่าตัวนั้นสมบูรณ์
      • 6.x-2.0-beta4 - ถ้ามี beta ต่อท้ายก็แปลว่ารุ่นทดสอบ ซึ่งอาจจะมีบั๊ก
      • 6.x-2.0-RC - ถ้ามี RC ต่อท้ายแปลว่าสมบูรณ์ ซึ่งพร้อมจะเป็นรุ่นจริง (ไม่ใช่ Restaurant City นะนั่น)
      • 6.x-2.0-dev - ถ้ามี dev ต่อท้ายแปลว่ารุ่นกำลังพัฒนา อาจมีทั้งบั๊กและปัญหาเกิดขึ้นได้ตลอด เอาไว้ให้โหลดสำหรับคนอยากลอง
      • โดย วิธีเลือกนั้น ถ้ายังใหม่ ก็แนะนำให้ใช้เฉพาะตัวสมบูรณ์เท่านั้น แต่ถ้าจะโหลดมาทดลองก่อนใช้งานจริง อาจจะหยิบตัว beta หรือ RC มาใช้ได้ แต่ไม่แนะนำให้ใช้ตัว dev
    • ตรวจดูความสดและสุขภาพ
      • ความสดและสุขภาพของมอจูลก็ค่อนข้างสำคัญ มอจูลหลายตัวที่ถูกทิ้งร้าง ซึ่งบางครั้งก็มีปัญหาเพราะเราต้องใช้ แต่ดันเขียนโปรแกรมไม่เป็น จะรอคนอื่นเขียนให้ ก็ใช่เรื่อง
      • ตรวจดูวันที่ที่อัปเดตล่าสุด ถ้าเก่ามากเกิน ก็อาจลองดูว่าจะใช้ดีหรือไม่
      • บางครั้งตรวจดูวันที่จากรุ่น dev ก็อาจเห็นว่าคนพัฒนาคนนั้นยังสนใจอยู่หรือเปล่า หรือว่าเบื่อและเลิกใช้ไปแล้ว
      • ตรวจผ่านความนิยม โดยกด View usage statistics ที่ท้ายสุดของแต่ละหน้ามอจูลที่นิยมมักจะมีคนร่วมพัฒนาเยอะ ถ้าอันไหนคนใช้งานน้อยกว่า 500 อาจต้องลองพิจารณาดู
      • หลายคนที่รู้ว่า Drupal 7 จะออกเร็วๆ นี้ อาจจะเริ่มคิดว่าวางแผนอย่างไร ออกแบบเว็บไซต์ให้รองรับ D7 ที่กำลังจะออก อันนี้ก็มีเทคนิคอีกหน่อยคือ ให้สังเกตคำว่า #D7CX ซึ่งหมายถึงว่ามอจูลนี้จะมีให้ใช้ทันทีเมื่อ D7 ออกมาประมาณปลายปีนี้หรือต้นปีหน้า ซึ่งหากเราเลือกมอจูลเหล่านี้ใช้งาน ก็มั่นใจพร้อมอัปเกรดได้ทันที ไม่ต้องรอ
    • การปรุงเว็บไซต์ในดรูปัลนั้น ฟีเจอร์บางอันสามารถทำได้มากกว่าหนึ่งวิธี ซึ่งการหยิบมอจูลหลายตัวมาประกอบกัน ก็สามารถทำผลลัพธ์เดียวกันได้เช่นกัน ซึ่งหากพิจารณาสุขภาพมอจูลแล้ว อาจจะหาทางเลือกอื่นได้ ตัวอย่างเช่น
      • ทำปฏิทินสำหรับแสดงผลพวกอีเวนต์ต่างๆ สามารถทำได้หลายวิธีเช่น
        • ใช้ Event แต่ดูจากสุขภาพแล้ว ท่าจะไม่รุ่ง
        • ใช้มอจูลผสม Views + Date + Calendar สามารถทำได้ผลเหมือนกัน
      • ทำระบบอัปโหลดภาพ ในดรูปัลทำได้หลากหลายมาก ไม่ว่า
        • ใช้ IMCE สะดวกเวลาอัปโหลดขึ้นเซิร์ฟเวอร์
        • ใช้ผสม CCK + ImageField + FileField สะดวกเวลาต้องการนำภาพมาจัดการทีไร ไม่ว่าทำสไลด์โชว์ หรือแคเรอเซล
        • ... และอื่นๆ อีกมากมาย


    ติดตั้งอย่างไร

    วิธีติดตั้งมอจูลก็ทำได้ไม่ยากเพียงแค่ ก๊อปไปวางลงตำแหน่งที่ต้องการ

    1. ดาวน์โหลดมอจูลมาจะได้เป็นไฟล์ซิป .gz (ถ้าใครไม่รู้จะใช้อะไรเปิด แนะนำ 7-zip)
    2. อันซิปแล้วก็ก๊อปไปวางไว้ในโฟลเดอร์ /sites/all/modules (ถ้ายังไม่มีโฟลเดอร์นี้ก็สร้างขึ้นมา) มือใหม่มักจะพลาดวางมอจูลลงใน /modules โดยตรง ซึ่งจะไม่สะดวกในการอัปรุ่น

      Drupal sites-all
    3. อ่านวิธีการใช้ในไฟล์ ซึ่งหลายคนมักจะมองข้าม
    4. เข้าไปในส่วน admin แล้วเลือก Sites Building → Modules
      [admin/build/modules]
    5. เลือก enable มอจูลที่ต้องการ
    6. มอจูลบางตัว จำเป็นต้องมีตัวอื่นเข้ามาเสริม ซึ่งจำเป็นต้องโหลดมอจูลนั้นหรือเปิดใช้ตัวนั้นก่อน ตัวอย่างเช่น ImageField จำเป็นต้องมี CCK กับ FileField ก่อน


    ข้อควรระวัง

    1. มอจูลบางตัวไม่ได้ออกแบบสำหรับเว็บไซต์ที่เปิดใช้งานแล้ว เช่น Devel (สำหรับเอาไว้สร้างและทดสอบ) บางครั้งโหลดขึ้นเว็บที่เปิดใช้งานแล้วเจ๊งทันทีก็มี อ่านฉลากก่อนใช้กันด้วย
    2. มอจูลบางตัว โดยเฉพาะพวกที่คนไม่นิยม (นานๆ จะเจอที ไม่เจอเลยยิ่งดี) บางครั้งกด enable เสร็จปุ๊บ เว็บเราล่มทันทีขึ้น Fatal Error
      1. ถ้ากด back แล้วยังแก้ไขได้ ก็เอาออกแล้วลองทดสอบใหม่
      2. ถ้าเข้าไปแก้หน้าเว็บไม่ได้ อย่าเพิ่งตกใจ ให้เข้าไปในฐานข้อมูล (อาจต้องงมหน่อย แต่ไม่ยากมาก ยากนิดนึง) ให้เข้าไป phpMyAdmin แล้วหาตารางที่ชื่อ system และหาตัวมอจูลที่เราเพิ่งติดตั้งไป แล้วก็เปลี่ยนค่า status จาก 1 เป็น 0


    สร้างมอจูลเองทำอย่างไร

    1. ไม่รู้ครับ :) 
    2. แต่ถ้าสนใจดูได้ที่ Module developer's guide ที่ Drupal.org โดยความรู้ที่ต้องใช้ก็ PHP กับพวก SQL

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

    เข้ามาอ่านประจำแล้วครับ ขอบคุณมากครับสำหรับความรู้

    #6 By Sinj (124.121.110.164) on 2010-03-16 00:54

    ช่วยแนะนำ โมดูล เกี่ยวกับ vdo หน่อยครับผม จะใช้ยังไง

    #5 By seo (125.24.0.59) on 2010-02-24 01:10

    ชอบblogนี้มากๆๆๆ กำลังทำโปรเจค drupal ให้กรมแผนที่ทหารเลยconfused smile

    #4 By -0- (58.136.57.98) on 2009-11-06 15:05

    น่าสนใจมากครับ ขอบคุณที่ให้ความรู้

    หลายกระทู้ใน drupal.in.th แนะนำให้เข้ามาในนี้

    ขอบคุณอีกครั้งครับ และขอให้แนะนำสิ่งที่เป็นประโยชน์ต่อไป

    โชคดีมากที่ได้อ่าน blog ของคุณ ^^http://drupal.in.th/

    #3 By immaky (202.57.139.190) on 2009-10-04 09:47

    เยี่ยมเลยคับ นี่แหละที่ต้องการเลยคับ ขอบคุณมากๆๆ

    #2 By medecember (58.9.232.195) on 2009-09-28 13:52

    มีคนอ่านค่า


    ฮ่าๆ

    พอดีผ่านมา

    ขอบคุณที่เขียนสิ่งดีๆ + มีประโยชน์ค่ะ

    #1 By ZoW (203.156.4.176) on 2009-08-23 14:39