drupal

Using Drush on Windows with Cygwin

What is Drush?

หนึ่งในเครื่องมือที่ขาดไม่ได้เวลาทำงานกับ Drupal ก็คือ Drush ที่ทำให้ทำงานหลายๆ อย่างได้ด้วยการใช้ command line หลักๆ ก็เช่น ดาวน์โหลดและติดตั้งโมดูล/ธีม, เคลียร์ cache, รัน update.php, รัน cron, ดูค่าในตาราง variables ฯลฯ

Why Drush?

ความสามารถของ Drush ที่ใช้บ่อยที่สุดก็น่าจะเป็นตอนติดตั้งโมดูล/ธีม นี่แหละ รันคำสั่งบรรทัดเดียว มันจะดาวน์โหลดแพ็กเกจและแตกไฟล์ให้เสร็จเรียบร้อย สมมติเราต้องการติดตั้งโมดูลซัก 5-6 ตัว ขั้นตอนปกติที่จะต้องทำก็คือ

  • ไปที่ drupal.org
  • ค้นหาโมดูลที่ต้องการ (ถ้าจะให้เร็วกว่านั้น แนะนำให้ค้นหาโมดูลด้วย Firefox quick search)
  • ดาวน์โหลดแพ็กเกจติดตั้งของแต่ละโมดูล
  • แตกแพ็กเกจไปไว้ในไดเร็กทอรี sites/all/modules
  • ไปที่ http://example.com/admin/build/modules
  • คลิกเลือกโมดูลที่ต้องการเปิดใช้งาน
  • กดปุ่ม Save configuration

ในขณะที่ Drush สามารถทำได้โดยพิมพ์คำสั่งแค่ 3 บรรทัด

$ cd /cygdrive/d/www/my_drupal_site
$ drush dl admin admin_menu devel markdown cck views
$ drush en admin admin_menu devel markdown cck views

โฆษณาเสร็จแล้ว มาเข้าเรื่องตามหัวข้อบล็อกกันดีกว่า

Read the rest of this entry »

A Quick (and Dirty) Password Field for Drupal Webform

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

เรื่องมีอยู่ว่า ฟอร์มที่ผมต้องการสร้างนั้นจะต้องมีฟิลด์สำหรับใส่รหัสผ่านด้วย แต่ใน component ของ Webform ไม่มีฟิลด์ password มาให้ ลองค้นไปค้นมาก็พบว่ามันเป็น issue ค้างปีมาตั้งแต่ 2007!!!

จริงๆ การสร้าง component แบบ password เองนั้นก็ไม่ยาก แค่ copy ไฟล์ textfield.inc มา เปลี่ยนชื่อเป็น password.inc แล้วแก้ชื่อฟังก์ชันข้างในจาก *_textfield เป็น *_password ก็เรียบร้อย (คนอื่นเค้าก็ทำกันแบบนี้)

Read the rest of this entry »

Back from Drupal Hell

เพิ่งกลับจากทัวร์นรก Drupal กับ @gzix (เอ่อ... จริงๆ @gzix ยังไม่กลับ เนื่องจากอยู่ในขุมลึกกว่า ผมแค่ไปเดินชมวิวงานก่อสร้าง กับดูตารางเหตุการณ์นิดหน่อย เลยได้ออกมาก่อน :P)

ไปทัวร์คราวนี้นับเป็นประสบการณ์ที่น่าประทับใจมากทีเดียวสำหรับผม ทำให้ได้รู้ว่าคนอื่นเค้าไปถึงไหนกันแล้วในโลก Drupal แถมได้เรียนรู้อะไรใหม่ๆ มาเพียบ ไม่ว่าจะเป็นระบบ workspace ออนไลน์ของ Assembla, ระบบ Subversion hosting อย่าง Beanstalk ที่ช่วยให้ทำงานร่วมกันอย่างเป็นระบบได้ ทั้งที่ไม่เคยเจอหน้ากันแม้แต่ครั้งเดียว!

Read the rest of this entry »

How to Limit Privatemsg Recipients to Specific Users

คราวที่แล้วเขียนถึงการส่งข้อความจาก Webform โดยใช้โมดูล Privatemsg ไป คราวนี้ก็ยังคงวนเวียนอยู่กับโมดูล Privatemsg เหมือนเดิม

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

วิธีทำที่คิดไว้คร่าวๆ ก็คือต้องแก้ไขฟอร์มสำหรับส่ง private message โดยกำหนดชื่อผู้รับไว้ตายตัวคือ admin จากนั้นก็ disable หรือซ่อนฟิลด์ Recipients ซะ ให้ผู้ใช้กรอกเฉพาะ Subject กับ Body พอ แน่นอนว่าพระเอกของงานนี้คือ Form API

Read the rest of this entry »

Wu Wei

Wu wei เป็นแนวคิดที่สำคัญของลัทธิเต๋า ความหมายตามวิกิพีเดียคือ "knowing when to act, and when not to act" และเป็นชื่อธีมของ WordPress โดย Jeff Ngan นานๆ จะเจอธีมที่ถูกใจซักที เลยเอามา port เป็นธีม Drupal ซะ (ลอกชาวบ้านอีกแล้ว 555+)

การพอร์ตคราวนี้พยายามลอกจุดเด่นของ WordPress มาใช้ ไม่ว่าจะเป็น navigation แบบ "อ่านเนื้อหาย้อนหลัง" (ลิงก์ Older entries ด้านล่าง) เพราะปกติเวลาอ่านบล็อก ก็น่าจะอ่านเรียงกันไปอยู่แล้ว คงไม่มีใครคลิกข้ามไปข้ามมาหลายๆ หน้า (หรือเปล่า?)

อีกอย่างก็คือเวลาดู node แบบ full view จะมีลิงก์ไปยัง node ก่อนหน้า และ node ถัดไป ทำให้รู้สึกว่าอ่านแล้วต่อเนื่องดี ไม่ต้องกลับมาหน้าแรกแล้วคลิกเลือก node ใหม่

สำหรับธีมนี้ตั้งใจจะทำให้ support ระบบ category แบบ WordPress ด้วย เพราะดูตัวอย่างบล็อก @bombik แล้วรู้สึกว่าเวิร์กดี

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