Planet Drupal Thailand

วิธีใช้ Drupal ตอนที่ 6 – วิธีติดตั้ง Modules

<

div class="field field-name-body field-type-text-with-summary field-label-hidden">

<

div class="field-items">

<

div class="field-item even">

การเพิ่มฟังก์ชั่นให้กับ Drupal เราสามารถเลือกใช้งาน Modules ต่างๆ ตามที่เราต้องการ เพื่อเอามาปรับเสริมใช้งานในเว็บไซต์ของเรา เช่น ตัวเก็บสถิติคนเข้าชมเว็บไซต์, ตัวช่วยในการสร้าง URL alias แบบอัตโนมัติ หรือแม้แต่ Views ในส่วนของการแสดงข้อมูล เป็นต้น

การติดตั้ง Modules ทำได้ 2 วิธี คือ Upload และ Online

วิธีติดตั้ง Modules แบบ Upload

เริ่มต้นด้วยการค้นหาและดาวน์โหลดไฟล์ .tar.gz หรือ .zip จากเว็บ Drupal.org หรือจากที่อื่นๆ นำมาขยายไฟล์ออก แล้วนำมา Upload ผ่านโปรแกรม FTP เข้าสู่เซิร์ฟเวอร์

เพิ่มเติม

Apache Solr Multi-Core Setup (1)

เพื่อความรวดเร็วในการเขียน ผมขอใช้ terminal กับ shell commands เป็นหลัก เพราะใช้ได้กับทั้ง local และ remote server (Unix หรือ Unix-like ส่วน Windows ผมไม่คุ้น แต่ถ้าเข้าใจว่าเรากำลังทำอะไร OS ไหนก็คงไม่ต่างกันมาก) เดาว่าใครที่คิดจะติดตั้ง Solr เอง ก็คงคุ้นกับ command line อยู่แล้ว

1. ติดตั้ง Java

ใน Mac OS มันมีอยู่แล้วมั้ง? ลอง java -version ของผมมันบอกว่า java version "1.6.0_31" (Apple ให้มา) ถ้าจะติดตั้งใน Debian/Ubuntu ก็

เตรียมความพร้อมก่อนเรียน "สอนทำเว็บ" ด้วย drupal กับปกป้อง

<

div class="field field-name-body field-type-text-with-summary field-label-hidden">

<

div class="field-items">

<

div class="field-item even">

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

FTP FileZilla

เพิ่มเติม

Drupal 7 Late Impression

มีเรื่องมาเล่าครับ

ผมได้รับงานทำเว็บมางานหนึ่ง ซึ่งตัดสินใจใช้ drupal 7 เป็นที่รู้กันมาก่อนหน้านี้ว่า drupal กินแรมเยอะมาก ในขั้นตอน setup เว็บนั้น ผมจึงไม่ลังเลใจที่จะ set ค่า memory limit 256 MB ไปก่อนล่วงหน้าเลย เพราะรู้ว่าต้องใช้ module เยอะอยู่แล้ว ระหว่างพัฒนาก็รู้สึกว่า request page แต่ละครั้งหน่วงๆ อยู่เหมือนกัน

หลังจากพัฒนาเสร็จแล้ว ก็เตรียมอัพขึ้นไป ก็มาติดปัญหาว่า host เจ้ากรรมดันให้ limit ของ memory ไว้ที่ 64 MB ในใจก็หวั่นว่าจะถึงคราวซวยของเราแล้ว "มันจะพอเปล่าวะ" ก็เลยต้องมา set ค่าของ local server ให้มาอยู่ที่ 64 MB เหมือนกับ server แล้วก็ลองใช้งานเว็บดู ปรากฏว่ามันทำ

read more

Search Thai Module

ผ่านไป 3 เดือน นับตั้งแต่ การแฮ็คหน้าด้านๆครั้งแรก ในที่สุดก็มีเวลาว่างพอจะทำ Search Thai Module ให้เสร็จ ตอนแรกเปิดโปรเจ็คต์ไว้ก่อนที่ github.com แต่เผื่อบางทีใช้ Drush สะดวกกว่า Git ก็เลยเปิดโปรเจ็คต์ทางการไว้ซะเลยที่ drupal.org

วิธีใช้ Drupal ตอนที่ 5 – สร้างและแก้ไข Basic page

Basic page ใน Drupal 7 คือหน้าเว็บเพจที่จะใช้งานในลักษณะหน้าเนื้อหาตายตัว ไม่อ้างอิงกับเวลา (ไม่เหมือนข่าว หรือเนื้อหาบล็อก) มักจะใช้ Basic page สำหร้าบหน้าที่เราไม่ค่อยเปลี่ยนแปลงเนื้อหาภายในบ่อย เช่น About us หรือหน้าประกาศโฆษณาพิเศษ เป็นต้น

สร้าง Basic Page ใหม่

การสร้าง Basic page ใหม่ ให้เลือกเมนู Add content และคลิกหัวข้อ Basic page

วิธีใช้ Drupal

Basic page ประกอบด้วย

โดยหน้า Basic page ใน Drupal 7 นั้นประกอบด้วยโครงสร้างหลัก 2 อย่างคือ

  1. Title (หัวข้อ)
  2. Body (เนื้อหา)

วิธีใช้ Drupal

ซึ่งก็เหมือนการสร้าง Article ใหม่ ที่เราต้องใส่หัวข้อ และเนื้อหา แต่ส่วนที่ไม่เหมือนกันคือ Menu settings

วิธีใช้ Drupal

โดยเราสามารถกำหนดได้ว่าจะให้ Basic page ที่เราสร้างนั้น ไปโผล่อยู่ในเมนูไหน

ทำไมต้องกำหนดคุณสมบัติ Menu settings?

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

วิธีใช้ Drupal

การกำหนด Menu settings ในเบื่องต้นผมกำหนดให้ หน้า Basic Page ชิ้นใหม่นี้ แสดงรวมในกลุ่ม Main menu

  • ทำเครื่องหมายที่หัวข้อ Provide a menu link
  • กำหนดชื่อที่จะแสดงในเมนู (Menu link title)
  • คำอธิบายจะใส่หรือไม่ก็ได้ (Description)
  • Parent item เลือกเป็น <Main menu> กำหนดให้ link นี้ไปอยู่รวมใน Main menu
  • เรียงลำดับก่อน-หลัง ด้วยคำสั่ง Weight ถ้าไม่กำหนด Weight มันจะเรียงตามตัวอักษร

วิธีใช้ Drupal

แก้ไข Basic page ที่เราสร้างขึ้นมาแล้ว

เราสามารถแก้ไข Basic page ที่เราสร้างขึ้นมาแ้ล้วได้ ซึ่งวิธีการแก้ไขนั้นคล้ายกับการแก้ไข Article โดยใช้ตัวกรอง Filter ประเภทของ Type ให้เลือกเป็น Basic page -- อ่านรายละเอียดได้ที่ แก้ไขเนื้อหาที่เราสร้างไปแล้ว (วิธีใช้ Drupal ตอนที่ 3)

วิธีใช้ Drupal

วิธีแทรก icon บน Title Block Drupal 7

<

div class="field field-name-body field-type-text-with-summary field-label-hidden">

<

div class="field-items">

<

div class="field-item even">

การแทรก icon บน title block ทำเพื่อสร้างจุดเน้นของสายตาผู้ชม ให้มองเนื้อหาเป็นกลุ่มหมวดหมู่มากขึ้น และความเป็นระเบียบสวยงาม จริง ๆ ก็มีโมดูล block icons ใช้กัน แต่มีเฉพาะ drupal 6 เท่านั้น  ส่วน drupal 7 แนะนำว่าให้ใช้ css ช่วยในการจัดการ ไม่ต้องไปแก้ไข drupal core เพราะเวลาอัพเดทก็ไม่ต้องคอยจำว่าเราไปแก้โค้ดระบบตรงไหนไว้บ้าง :-)

ขั้นตอนวิธีทำ

แบบที่ 1 ใส่ icon เหมือนกันหมดทุกบล็อก

- แทรก css ชุดนี้เข้าไปในไฟล์ style.css ในโฟลเดอร์ชุดธีม

.block h2 {
  padding-left: 1.5em;
  background: url(/themes/garland/images/menu-leaf.gif) no-repeat;
}

หมายเหตุ:

  • ในบางธีม title block ใช้ h2 บางธีม title block ใช้ h3 ต้องเช็คด้วยนะครับว่าธีมที่เราเลือกใช้นั้นใช้ header ระดับไหน
  • เปลี่ยน /themes/garland/images/menu-leaf.gif ให้เป็นรูป icon ที่คุณต้องการ

เพิ่มเติม

ตัวอย่างเว็บไทยที่ใช้ Drupal เป็นพื้นฐานในการทำเว็บ (ตอนที่ 2)

<

div class="field field-name-body field-type-text-with-summary field-label-hidden">

<

div class="field-items">

<

div class="field-item even">

ต่อเนื่องจากบล็อกเมื่อกี้ "ตัวอย่างเว็บไทยที่ใช้ drupal เป็นพื้นฐานในการทำเว็บ" ยังมีเว็บอีกจำนวนหนึ่งที่อยากนำเสนอ ว่าเว็บเหล่านี้ก็ขับเคลื่อนด้วยพลังของ drupal อยู่เบื้องหลังเช่นกัน

ตัวอย่างเว็บไทย เว็บสาระบันเทิง ที่ทำด้วย drupal

ไทยแลนด์ก็อตทาเลนต์ : http://www.thailandsgottalent.tv/home

สอนทำเว็บ ตัวอย่างเว็บ drupal

เพิ่มเติม

ตัวอย่างเว็บไทยที่ใช้ Drupal เป็นพื้นฐานในการทำเว็บ

<

div class="field field-name-body field-type-text-with-summary field-label-hidden">

<

div class="field-items">

<

div class="field-item even">

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

ตัวอย่างเว็บไทย เว็บบริษัท ที่ทำด้วย drupal

บริษัท ดี.ที.ซี. เอ็นเตอร์ไพรส์ จำกัด : http://www.dtc.co.th

ตัวอย่างเว็บไทย ทำด้วย drupal

เพิ่มเติม

วิธีใช้ Drupal ตอนที่ 4 – Taxonomy, Vocabulary & Terms

ส่วนประกอบหนึ่งที่เป็นพื้นฐานของการทำเว็บด้วย Drupal 7 คือการใช้งาน Taxonomy ที่ช่วยในการจัดระเบียบเนื้อหาว่าอยู่ในหมวดหมู่ไหนหรือมีเรื่องราวเกี่ยวกับอะไรบ้าง ตามคำอธิบายที่เขียนกำกับไว้ว่า Manage tagging, categorization, and classification of your content

การเข้าถึง Taxonomy เข้าผ่านทางเมนู Structure ในแถบ Toolbar (ด้านบนสุด สีดำ) และเลือกหัวข้อ Taxonomy

manage taxonomy in drupal 7

การทำงานของ Taxonomy ประกอบด้วย 2 ส่วนหลัก คือ Vocabulary และ Terms กล่าวคือ Vocabulary เปรียบเสมือนกล่องเก็บข้อมูล และ Terms เป็นข้อมูลที่อยู่ในกล่อง เช่น เราสร้าง Vocabulary ชื่อ "Category" และมี Terms ใช้งาน 3 อัน ชื่อ "ข่าว, บทความ และ สัมภาษณ์"

  • Category (Vocabulary)
    • ข่าว (Terms)
    • บทความ (Terms)
    • สัมภาษณ์ (Terms)

จากการที่สามารถใช้งานได้อย่างอิสระ Drupal 7 จะอนุญาตให้เราสร้าง Vocabulary ได้ไม่จำกัด เพื่อเตรียมไว้สำหรับใช้ร่วมกับเนื้อหาที่เรามี

โดยพื้นฐานแล้ว Drupal 7 จะสร้าง Taxonomy ชุดแรก ใช้ชื่อ Vocabulary ว่า "Tags" เราจะเจอช่องใส่ Tags อันนี้ได้ในชนิดเนื้อหา Article (กล่าวถึงไปแล้วในตอนที่ 2)

vocabulary in drupal 7

สร้าง Vocabulary ชุดใหม่

ในการสร้าง Vocabulary ชุดใหม่ สามารถคลิกที่ + Add vocabulary หน้าเพจจะแสดงแบบฟอร์มให้เราใส่ข้อมูล 2 อย่าง

  • Name - ชื่อของ Vocabulary
  • Description - คำอธิบาย Vocabulary

add new vocabulary in drupal 7

เพิ่ม Terms เข้าใน Vocabulary

หลังจากเราสร้าง Vocabulary ชุดใหม่เสร็จแล้ว ก็สามารถคลิกลิงก์ list terms เพื่อเรียกดูรายการของ Terms ทั้งหมดใน Vocabulary นั้นๆ และคลิกลิงก์ add terms เพื่อเพิ่ม Terms ใหม่

list of vocabulary in drupal 7

แบบฟอร์มสำหรับ add terms จะประกอบด้วย

  • Name - ชื่อของ Terms
  • Description - คำอธิบาย Terms
  • URL alias - เป็นการกำหนด URL เฉพาะให้กับ Terms นี้ หากเราไม่ได้กำหนด URL alias โดยพื้นฐานแต่ละ Terms จะใช้ URL ของระบบดังนี้ /taxonomy/term/1 (ตัวเลขต่อท้ายเป็นตัวเลข Terms ID)

add new terms

ทั้งนี้เรายังสามารถกำหนดความสัมพันธ์ของ Terms ได้จากเมนู Relations ได้อีกด้วย

  • Parent terms - ลำดับชั้นของ Terms
  • Weight - ลำดับในการแสดงผล (เรียงจากตัวเลขน้อยลงไปหามาก)

relations of terms in drupal 7