• knife set
  • feed

    เพิ่มฟีลด์ Drupal ด้วย CCK

    posted on 04 Jun 2009 06:05 by itshee in Drupal

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


    Drupal: 6.x
    MODULES ที่ใช้:

    คราวนี้ก็เป็นตัวหลักที่น่าสนใจคือ CCK (ไม่ใช่โรงนวดนะ) CCK เป็นมอจูล (module) หลักอีกตัวที่เว็บไซต์ดรูปัล (Drupal)นั้นใช้กันเกือบหมด ซึ่ง CCK จะเพิ่มความสามารถให้ดรูปัล ให้ผู้ใช้งานสามารถใส่ฟีลด์หรือช่องให้กรอกเพิ่มมากขึ้น แทนที่เนื้อหาเดิมที่จะมีแต่ช่อง หัวข้อ (title) กับกล่องเนื้อหา (body) เมื่อติดตั้ง CCK แล้วเราสามารถเพิ่มฟีลด์ได้อย่างอิสระ ตัวอย่างเช่นใน Stylelurf ที่เขียนไปก่อนเมื่อเอนทรีที่แล้ว ในส่วนอัปโหลดภาพสินค้าที่เป็น item จะมีช่องให้เลือกโหลดภาพ ช่องให้กรอกราคา ช่องให้กรอกแหล่งที่มา และอีกหลายอย่าง ซึ่งก็ใช้ CCK มาเป็นตัวช่วยนี่เอง

    สำหรับวิธีการติดตั้งถ้าใครยังไม่คุ้นกับดรูปัลลองแวะอ่านได้ที่ พื้นฐาน Drupal Modules นอกจากนี้ในอนาคตตัว CCK นี่จะกลายมาเป็นฟังก์ชันหลักในคอร์เลยทีเดียว ดรูปัลรุ่นต่อไป ดรูปัล 7 นั้นจะนำความสามารถนี้ใส่ลงไปในคอร์ ภายใต้ชื่อ FieldAPI โดยผู้ใช้จะไม่จำเป็นต้องติดตั้ง CCK เพิ่ม (แต่ CCK ก็ยังมีการพัฒนาอยู่ แต่จะแตกสายออกไปแทน)

    การใช้งาน CCK นั้นนอกจากจะสามารถใช้เดี่ยวๆ ที่มีฟีลด์เฉพาะแล้ว ยังสามารถใช้ร่วมกับมอจูลเสริมตัวอื่น เช่น

    • ต้องการให้อัปโหลดไฟล์ ผ่านฟีลด์ ต้องติดตั้งทั้ง CCK + FileField
    • ต้องการอัปโหลดรูป ผ่านฟีลด์ ต้องติดตั้ง CCK + FileField + ImageFiel


    วิธีการเซ็ตพร้อมตัวอย่าง Stylelurf

    1. เข้าไปที่ Admin → Content Management →  Content Types
    2. เลือก content type ที่สร้างจากตอนที่แล้ว อย่างอันนี้จะเลือก Item แล้วกดที่ Manage Fields
    3. ลงไปด้านล่างสุด ตรง New Field แล้วใส่ชื่อฟีลด์ที่เราต้องการ เช่นใส่
      • ฟีลด์ สำหรับช่องให้กรอก แบรนด์สินค้า
        • Label = Brand
        • name = Field_brand (ใส่แค่ brand) โดยช่องนี่ใส่ได้เฉพาะอักษรพิมพ์เล็กกับตัวเลข
        • Type = text
        • widget type = text field
        • พอกดผ่านไปอีกหน้า ก็จะมีให้กรอกเพิ่ม
        • Number of values จะให้มีกี่ช่อง เราก็เลือก 1 ช่องพอ
        • พอกดเซฟด้านล่าง คราวนี้ Item เราก็จะมีช่องให้กรอก แบรนด์ เพิ่มขึ้นมา เวลาเราเลือกสร้าง
      • ฟีลด์ สำหรับช่องให้โหลดภาพ
        • Label = Image
        • name = Field_nodeimage (ใส่แค่ nodeimage)
        • Type = File
        • widget type = image
        • Number of values (หน้าถัดมา) อันนี้เลือก 1 แต่หากใครอยากให้โหลดได้มากกว่าหนึ่งรูป ก็ใส่ค่าลงไป
    4. สำหรับฟีลด์อื่น เราก็ใส่ไปตามที่ต้องการ ซึ่งเมื่อใส่หมดหน้า Item ก็จะมีช่องให้กรอกตามที่เราเลือก โดยใน Stylelurf จะมีหน้าตาดังนี้
    Stylelurf Drupal CCK

    ซึ่งตอนนี้ถ้าสร้างเนื้อหา Item ก็จะมีช่องให้กรอกตามที่เราตั้ง นอกจากนี้เราสามารถควบคุมการแสดงผล ได้โดยเลือก

    1. เข้าไปที่ Admin → Content Management →  Content Types
    2. เลือก content type อย่างอันนี้จะเลือก Item แล้วกดที่ Display Fields
    3. ในหน้านี้จะมีให้เลือก โดย 
      • teaser / full node คือ ส่วนทีสเซอร์ เช่น (หน้ารวมเนื้อหา หน้าแท็ก) กับส่วนหน้าเต็ม ว่าอยากให้แสดงเนื้อหาแบบไหน ตัวอย่างเช่น ภาพที่เราโหลดหน้าเต็ม ให้แสดงภาพเต็ม แต่หน้าทีสเซอร์ให้ขึ้นเป็นภาพธัมบ์ (ที่ต้องใช้ ImageCache มาช่วย จะอธิบายคราวหลัง) หรืออย่างเนื้อหาบางส่วนพวกดีเทลที่เราไม่อยากให้แสดงในส่วนทีสเซอร์ แต่ให้แสดงเฉพาะหน้าหลัก เราก็สามารถเลือกปิดได้ตรงนี้
      • label คือ ข้อความกำกับ ว่าอยากให้แสดงอย่างไร ระหว่าง วางเหนือเนื้อหา (above) วางบรรทัดเดียวกับเนื้อหา (inline) หรือซ่อนไว้ (hidden)
      • exclude คือ การไม่แสดงผล
    4. โดยใน Stylelurf สำหรับ Item ก็เลือกไว้ดังนี้
    Stylelurf CCK Display Fields

    อันนี้ก็เป็นตัวอย่างการสร้าง CCK ประเภทหนึ่ง ซึ่งหากต้องการเพิ่มฟีลด์ชนิดอื่น ก็สามารถเลือกมอจูลย่อยมาใช้ได้ตามสะดวก ใครสนใจอ่านเรื่อง CCK เพิ่มเติมลองดู คู่มือฉบับภาษาอังกฤษ: http://drupal.org/node/101723

    สุดท้ายก่อนไปคำว่า field ในภาษาอังกฤษอ่านว่า ฟีลด์ (สระอี) ซึ่งเขียนเป็นคำอ่านจะได้ว่า feeld อ่านเหมือน feel ที่แปลว่าความรู้สึก โดยออกเสียงจบด้วยการตวัดลิ้นไปแตะโคนฟันด้้านบนเป็นเสียง [d] นั่นเอง

    เจ๋งครับ Hot!
    หัดใช้ Drupal อยู่เหมือนกัน confused smile

    #16 By คนธรรพ์ on 2009-12-14 16:56

    บทความดีมั่ก ๆ เดี๋ยวลองทำเว็บดูเป้ามั่งดีกว่า อ่านแล้วดูมันไม่ยากเท่าไหร่ ดูหนุกหนานดีจัง big smile

    #15 By akasit (58.147.114.100) on 2009-08-14 15:39

    คุณมานพสู้ ๆ ค่ะ sad smile

    ถ้าไม่เขียนเรื่องใหม่ ต้นไม้ก็ไม่โตนะคะ sad smile

    #14 By Mrs. Holmes on 2009-06-07 09:02

    เผลอไปวุ่นเรื่องแมว ๆ หมา ๆ พักเดียว มาอีก ๓-๔ ตอนแล้ว ตามอ่านกันต่อไปครับ รวมเล่มเมื่อไร จองก่อน ๑ เล่มครับ Hot!

    #13 By mahaoath on 2009-06-06 14:08

    ละเอียดดีจังครับ confused smile

    #12 By TonHor on 2009-06-05 23:49

    Hot! Hot! ขอบคุณนะคะ มีประโยชน์มากมายbig smile

    #11 By - -TuMmY- - on 2009-06-05 23:10

    เป็นประโยชน์มากครับconfused smile Hot!

    #10 By apemon on 2009-06-04 22:59

    ตามมาไล่เก็บดีเทลconfused smile

    #9 By on 2009-06-04 18:41

    มีประโยชน์จังค่ะbig smile

    #8 By Meowzilla Zilla on 2009-06-04 16:14

    confused smile

    #7 By Shuu Exteen on 2009-06-04 14:51

    #4 จริงๆ ผมหันมามอง CMS ก็ตอนที่เริ่มคิดว่าถ้าจะทำเว็บยังไงไม่ให้โดนแฮ็กนี่ละครับ เลยคิดว่า CMS ใหญ่ๆ น่าจะวางแผนตรงนี้กันไว้ดี เราก็นำมาใช้ได้เลย

    ส่วน barcamp ล่าสุด เห็นมีแต่คนบอกว่าที่ Drupal แพ้ราบคาบ เพราะทีม Drupal มีแต่โปรแกรมเมอร์ไม่มีนักทำเว็บ เหมือน Joomla กับ WordPress sad smile

    #6 By manop on 2009-06-04 12:48

    มีประโยชน์สำหรับผู้ที่สนใจมากเลยค่ะ Hot! big smile

    #5 By Mrs. Holmes on 2009-06-04 12:07

    ผมว่าจะมาตามอ่านเก็บ detail ยังไม่ว่างเล๊ย
    ตอนแรกแอบเล็งๆ Joomla ฮ่าๆ เห็นในงาน Barcampbbk 3 เค้าทำได้ดี
    แต่ก็แอบชอบดรูปัล แต่ก็เห็นคุณเม่น imennn ทำ wordpress แล้วก็ชอบ
    แฮะๆ พวกหลายใจนี่เอง

    แต่ถ้าเลือกสักตัว แอบเทใจมาทางดรูปัล ไม่รู้ทำไม
    PHP ผม code ไม่เก่ง เพราะติดเรื่องก่อนหน้านี้ ที่เขียน php3
    พอมาเจอ 5 แล้วบางอันใช้ไม่ได้ เลยหงุดหงิด กลับไปใช้ asp (vbScript)
    เขียนเว็บต่อ -_-'

    แต่ว่าจะมาเอาจริงอีกรอบแร่ะครับ
    จริงๆพอพัฒนา script ไประดับหนึ่ง webdesigner ก็เหมือนจะมี CMS
    ที่ต่างพัฒนามาเองกัน เพื่อใช้กับงานได้อย่างรวดเร็ว (แทนค่าตัวแปรไว้
    แล้วมาระบุค่าลงไปตามงานที่หลากหลายในแต่ละชิ้น)

    ถ้าใช้ opensource นี่ ใจนึงคงอยากแกะ ใจนึงคงอยากเขียน
    แต่มันคงแกะยากน่าดู -_-' แต่ก็นั่นแหล่ะ อะไรที่ไม่รู้นี่ มันน่าค้นหา ฮ่าๆ
    Hot!
    อา ตอนนี้ก็เตรียมตัวเริ่มจะทำเวบไซต์ด้วย drupal ละ :D รดน้ำให้เป็นกำลังใจจ้า

    ถ้าเป็นไปได้ อยากให้รวม articleคู่มือปรุงเว็บไซต์ฉบับ non-programmer ให้เป็นไฟล์ pdf ให้ดาวน์โหลดมากๆเลย เพราะอยากจะปรินท์ออกมาอ่านมากกว่า

    #3 By = HIMA = on 2009-06-04 11:06

    รดน้ำๆconfused smile

    #2 By wesong on 2009-06-04 08:59

    โอ้ดีแฮะสะดวกมากมาย

    #1 By Maxtrix™ on 2009-06-04 08:42