• knife set
  • feed

    รู้จักกับ Drupal กันก่อน

    posted on 14 May 2009 03:56 by itshee in Drupal

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

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


    คอร์ (core) แปลตรงตัวก็แปลว่าแกนหลักของซอฟต์แวร์เลย โดยตัวโปรแกรมที่ดาวน์โหลดมาก่อนหน้านี้ ตัวนั้นทั้งหมดก็คือ คอร์ หรือ ดรูปัลคอร์ ทำหน้าที่เป็นฐานทั้งหมดของโปรแกรม ตั้งแต่ระบบจัดแท็ก จัดการฐานข้อมูล ล็อกอิน ฯลฯ โดยในคอร์ ก็ยังมี module และ theme ส่วนหนึ่งติดมาด้วย


    มอจูล (module) หรือถ้าเรียกแบบไทยๆ เราคงเป็น โมดู่ หรือ โมดูล น่ารักเชียว (หากใครได้อ่านผ่านบล็อกนี้สมัยนู้น คงเคยเห็นคำศัพท์อังกฤษหลายคำอย่าง widget หรือ graduation ทีตัว d ไม่ออกเสียงที่เคยเขียนไป) มอจูลเป็นเหมือนชิ้นส่วนชิ้นต่างๆ ที่ประกอบเข้ามาในเว็บไซต์ เพิ่มฟังก์ชันและฟีเจอร์ให้กับเว็บ ถ้าเปรียบเว็บไซต์เป็นอาหารจานเด็ด มอจูลก็เปรียบได้กับวัตถุดิบและเครื่องปรุงอาหาร โดยถ้าเราอยากได้มอจูลตัวไหนเราก็เข้าไปในเว็บไซต์ http://drupal.org/project/modules ดาวน์โหลดมาแล้วติดตั้งในเว็บไซต์เราที่ /sites/all/modules แค่นี้เราก็ได้มอจูลมาใช้ง่ายๆ (ง่ายกว่าโหลดบิตอีก) ถ้ายังนึกภาพไม่ออกว่ามอจูลมันเป็นยังไง ลองเข้าเว็บ stylelurf.com จะเห็นตามภาพ โดย

    หน้าแรกจะมีมอจูลหลักๆ ที่เด่นๆ 3 ตำแหน่งคือ

    • Most Lurfs (กลางซ้าย) ที่เป็นสไลด์โชว์ - อันนี้ใช้มอจูล 2 ตัวผสมกัน คือ Views และ Views slideshow โดย Views เป็นมอจูลสำหรับดึงข้อมูลจากฐานข้อมูล ส่วนอีกตัวก็ตามชื่อคือสไลด์โชว์ โดยเมื่อเราติดตั้ง เราก็สามารถทำสไลด์โชว์ได้อย่างง่ายดาย
    • Tags (กลางขวา เยื้องมาล่างๆ) - อันนี้ก็เป็นแท็กแบบมีน้ำหนัก โดยแท็กที่มีคนแท็กเยอะ ก็จะตัวใหญ่ อันนี้ใช้มอจูล Tagadelic ติดตั้งเสร็จ ก็เอามาวางในตำแหน่งที่ต้องการ
    • Articles (ล่าง) อันนี้เป็นการแสดงผลแบบแคเรอเซล ถ้าใครได้เข้าเว็บไทยรัฐโฉมใหม่จะเห็นว่ามีแคเรอเซลอยู่ด้านล่างเหมือนกัน ซึ่งตรงนี้ก็ทำได้ไม่ยาก และไม่ต้องไปปล้ำกับโค้ด - อันนี้ใช้มอจูล 2 ตัวคือ  Views และ Views Carousel เหมือนเดิมคือติดตั้งเสร็จ เราก็ได้แคเรอเซลมาใช้ทันที แต่ตัวนี้จะวุ่นนิดหน่อย เพราะต้องปรับขนาด กว้าง ยาว สูง ใน CSS เพื่อให้ได้ขนาดเหมาะสำหรับเว็บเรา

    ถึงตรงนี้ คงจะพอเห็นภาพกันแล้วว่ามอจูลคืออะไร เอาไว้ใช้ทำอะไร นอกจากนี้มอจูลพื้นฐานอย่าง comment (มอจูลสำหรับให้คนคอมเมนต์เนื้อหา) poll (สร้างโพลโหวตโพล) blog (สร้างบล็อก) forum (สร้างฟอรั่ม) พวกนี้ก็เป็นมอจูลหลักที่ติดมากับคอร์แล้ว


    ธีม (theme) ธีมอันนี้หลายคนคงรู้จักแล้ว ซึ่งก็เป็นเหมือนหน้าตาของเว็บไซต์เรา โดยธีมนั้นไม่ว่าจะดาวน์โหลดหรือจะสร้างเองก็ทำได้ไม่ยาก สำหรับคนเริ่มต้นก็แนะนำให้ดาวน์โหลดมาลองใช้ก่อน แต่หากต้องการทำเว็บไซต์จริงจัง ก็ไม่ควรใช้ธีมที่ซ้ำกับชาวบ้าน ไม่งั้นเว็บเราจะเป็นเว็บโหลได้ในไม่นาน การติดตั้งธีมก็คล้ายมอจูล คืออัปโหลดไปที่ /sites/all/themes เว็บไซต์ที่มีธีมให้ดาวน์โหลดก็มากมาย โดยแนะนำให้เริ่มต้นที่ http://drupal.org/project/Themes ซึ่งอันนี้จะเรียงตามตัวอักษร มีหลากหลาย  โดยในเว็บนี้ก็จะมีธีมสวยๆ ของคนไทยเราสร้างไว้ด้วย ไม่ว่า

    นอกจากนี้ธีมฟรีสวยๆ ที่ไม่น่าพลาดใน drupal.org เช่น

    และอีกเว็บที่น่าสนใจคือ themegarden.org จะเป็นเว็บที่นำธีมใน drupal.org มาพรีวิวให้ดูหน้าตา สำหรับใครที่ไม่มีเวลา เงินหนาแล้วอยากจ่ายเงิน ก็อาจลองแวะดูได้ที่ topnotchthemes.com ก็มีธีมขายมากมาย ตั้งแต่ราคาจากหมื่นกว่าบาทถึงแสนกว่าบาทที่มีขายขาดเลยก็ยังมี

    เริ่มเขียนเริ่มยาว แต่ต่ออีกหน่อย โดยสิ่งพื้นฐานที่ควรรู้ในการทำดรูปัล ที่อาจจะงงได้ ได้แก่

    • โหนด (node) เป็นชื่อเรียกเนื้อหาหน้าหนึ่งๆ ในดรูปัล ทุกอย่างเรียกโหนดหมดไม่ว่า บล็อก 1 โหนด, เนื้อหา 1 โหนด, โพล 1 โหนด 
    • แท็กซอนอมี (taxonomy) เป็นชื่อเรียกการจัดแท็ก การจัดหมวดหมู่ ซึ่งค่อนข้างจะงงในคอนเซ็ปต์ แต่ถ้าเข้าใจได้ แล้วจะนำมาใช้ประโยชน์ได้มาก
    • บล็อค (block) เป็นเหมือนตำแหน่งฟรีฟอร์มมาก สามารถนำเนื้อหานำโค้ดไปใส่ในตำแหน่งไหนก็ได้ในหน้าเว็บ นึกภาพ custom code กัน ก็จะอ๋อเลยทีเดียว
    • ธีม (theme) ในดรูปัลนี้จะมีความหมายรวมถึงเทมเพลต (template) ด้วย โดยรวมตั้งแต่ CSS ไปจนถึงไฟล์ PHP ในการเรียกข้อมูลแสดงผล
    • รุ่นของดรูปัลตอนนี้มี 3 รุ่นคือ 5.x, 6.x, 7.x
      • ณ เวลานี้แนะนำให้ใช้ 6.x เพราะรุ่น 5 ก็เริ่มเก่าแล้ว ส่วนรุ่น 7 ก็ยังพัฒนาอยู่ พวกจุดด้านหลังชื่อรุ่นจะเป็นรุ่นอัปเดตเล็กน้อย อย่างตอนนี้เป็นรุ่น 6.12 หมายถึง ดรูปัลรุ่น 6 อัปเดตความปลอดภัยครั้งที่ 12
      • เวลาดาวน์โหลดมอจูลหรือธีม ดูรุ่นตามรุ่นที่เราใช้ เช่น
        • Views 6.x-2.5  - Views รุ่น 2 (อัปเดตครั้งที่ 5) ใช้สำหรับ ดรูปัลรุ่น 6.x
        • Token 6.x-1.11 - Token รุ่น 1 (อัปเดตครั้งที่ 11) ใช้สำหรับ ดรูปัลรุ่น 6.x
        • นอกจากนี้ก็จะมีรุ่นย่อยอย่าง beta, RC, dev พวกนี้ตามหลังแสดงว่า ยังเป็นตัวที่ไม่สมบูรณ์ แต่พอใช้งานได้ RC (สมบูรณ์ละรอตรวจสอบ), beta (ขั้นทดสอบ), dev (ขั้นพัฒนา ถ้าไม่จำเป็นก็อย่าใช้)
    • อัปโหลดทุกอย่างลง /sites ไม่ว่าจะเป็น มอจูล หรือ ธีม ทุกอย่างลงในนี้หมด โดยไฟล์มอจูลจะลงใน /sites/all/modules และ ธีมจะลงใน sites/all/themes (ถ้าใครไม่มีสองโฟลเดอร์นี้ก็สร้างเลย) ซึ่งข้อผิดพลาดสำหรับมือใหม่คือ นำมอจูลไปลงใน /modules และธีมลงใน /themes

      Drupal folder
    • สุดท้าย อย่าแก้อะไรในคอร์ (Don't Hack Core!) เป็นเหมือนคติพจน์ในแวดวงดรูปัลเลยก็ว่าได้ เพราะเวลาอัปเดตไปเป็นรุ่นใหม่ จะสร้างความลำบากให้ชีวิตอย่างมาก ซึ่งหากต้องการแก้ไขอะไรให้แก้ในธีมและเทมเพลตของตัวเองก่อนใน /sites

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

    ถามหน่อยครับ ทำไมต้องสร้าง Folder ใหม่ ชื่อ modules กับ themes ใน /sites/all ด้วยครับ
    ใช้ /sites/modules หรือ /sites/themes ไม่ได้หรอครับ ถ้าใช้จะมีผลอย่างไรครับ (เพราะผมก็ไม่เคยรู้ว่าต้องสร้างและใช้ใน /sites/all/modules จนได้มาอ่านหน้านี้ มือใหม่ครับ)

    #28 By nonnyboom (58.136.126.25) on 2009-10-21 15:19

    อยากจะบอกว่าขอบคุณมากเลยครับบบ
    เยื่อมจริงๆbig smile

    #27 By windoc (202.176.138.208) on 2009-08-25 06:50

    เริ่มเข้าใจอีกหน่อย big smile Hot!

    #26 By ไอ้แป้น : i-phan on 2009-05-26 10:37

    สุดยอดครับ อธิบายได้เห็นภาพการใช้จริงเลย

    #25 By apemon on 2009-05-23 10:14

    #21 นะครับ

    ตามระบบที่ออกแบบมาคือทุกอย่างควรเก็บไว้ใน /sites หมด เพื่อง่ายในการจัดเก็บ อัปเกรดรวมถึง แบ็กอัป นะครับ เพราะคนใช้งานจะได้รู้ว่าข้อมูลเราอยู่ที่ไหน

    อย่างถ้าอัปเกรด หลายคนจะใช้วิธีลบข้อมูลเก่าออกหมดยกเว้น /sites แล้วนำรุ่นล่าสุดมาใส่แทน

    ส่วนการแบ็กอัปก็จะสะดวก เพราะทำแค่โฟลเดอร์เดียว จะได้ข้อมูลธีมกับมอจูลมาหมด รวมถึงไฟล์ที่อัปโหลดด้วย ไม่ต้องไปนั่งไ%B

    #24 By manop on 2009-05-22 23:37

    ขอบคุณค่ะ

    เป็นหวัดอยู่นาน เกือบอดอ่านเอนทรี่นี้แล้วสิ big smile

    #23 By Mrs. Holmes on 2009-05-19 12:40

    อธิบายเข้าใจง่ายดีค่ะ
    ลองอ่านไป ทำไป คงจะได้ เว็บของตัวเอง อิอิconfused smile

    #22 By ...... on 2009-05-17 22:03

    อยากถามว่าจำเป็นหรือไม่ที่้ต้องเอา moules ใส่ไว้ใน /sites/all/modules หรือ ธีมใส่ไว้ใน sites/all/themes เพราะเหมือนเคยอ่านมาว่า drupal มันจะหา moules ในโฟลเดอร์ที่เราสร้างและเก็บไว้เอง แล้วถ้าเก็บไว้ใน /modules หรือ /themes ที่รวมกับอันหลักของ drupal เองจะมีผลเสียอย่างไรครับ (ที่บอกไว้ว่าเป็นข้อผิดพลาดของมือใหม่)

    #21 By banana (58.9.80.245) on 2009-05-15 23:42

    กำลังสงสัยพอดีกับ cck ,view ,slide .tag cloud ,carousel คลายลงไปได้บ้างแล้วครับ อ้อ ยังมีอีกเรื่องสองเรื่อง เช่น uplode form ,uplode path ไว้จะค่อย ๆ ทำความเข้าใจตามไปเรื่อย ๆ ครับ ตอนนี้ส่งการบ้านก่อนครับ http://oath001.co.cc/drupal Hot!

    #20 By mahaoath on 2009-05-15 19:17

    ขอบคุณสำหรับบทความดีดีครับ จะรออ่านต่อไป จนกว่าจะถึงสอนใช้ โมดูล view panal ckk ครับ

    #18 By banana (61.7.135.117) on 2009-05-14 23:14

    มึนตึ๊บsad smile Hot!

    #17 By ลิงหกกะล้ม on 2009-05-14 21:00

    ต้องลองทำนิ
    กำลังศึกษาเหมือนกัน
    กำลังจะทำเว็ปของตัวเอง
    ขอบคุณสำหรับความรู้ครับป๋ม

    #16 By supermet on 2009-05-14 17:15

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

    #15 By NihaoJAA on 2009-05-14 15:57

    จอบคุณครับ Drupal มั่นใจ...

    #14 By n h e p h e x on 2009-05-14 15:32

    Hot! จะพยายายามมากกว่านี้ค่า อ่านแล้วมึนๆ งิ

    #13 By (^_^)/nana on 2009-05-14 13:57

    อ่ะ...ได้ความรู้อีกแล้ว
    Hot!

    #12 By JIRA on 2009-05-14 13:51

    ดรูปัลนี่เยี่ยมจริงครับ confused smile
    ผมเห็นใช้ใน http://thailandoi.org/ ด้วยล่ะ confused smile

    #11 By xViStA on 2009-05-14 13:44

    Hot! Hot! Hot! Hot!

    กำลังหาอะไรง่ายๆอธิบายอยุ่เลยครับ big smile

    #10 By Shuu Exteen on 2009-05-14 12:06

    ถ้าทำได้ตามที่บอกซัก 1% เนี่ยะดีใจสุดๆและconfused smile

    #9 By Meowzilla Zilla on 2009-05-14 10:52

    อย่างแจ่มเลยครับ
    ติดตามมาเรื่อยๆเลย
    ช่วงนี้ ยิ่งร้อนแรง เนื้อหาเข้มข้นขึ้นได้อีกbig smile

    Hot! Hot! Hot!

    #8 By robocon on 2009-05-14 09:10

    สวยดีครับ ดูการแต่งตัวแวกแนวดี

    #7 By perfectlove on 2009-05-14 09:07

    ละเอียดมากๆ ถ้าทำตามนี้คงได้เว็บมาเชยชมอย่างไว
    แนะนำแม้กระทั่งว่าธีมไหนสวย เยี่ยมจริงๆ 555confused smile
    Hot! big smile

    #5 By iQ180 on 2009-05-14 08:44

    ตามไม่ทันไปหลายตอน ต้องย้อนกลับไปทำ

    อ่านแล้วทำ step by step เลยนะเนี่ยopen-mounthed smile

    #3 By PoY on 2009-05-14 06:56

    sad smile confused smile อ่านเป็นความรู้ ขอบคุณค่ะ

    #2 By peewa 丕娃 on 2009-05-14 06:37

    แจ่มๆ จัดไป ค่อยๆทำความเข้าใจ drupal ไปพร้อมๆกัน ^-^ Hot!