how-to

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 »

Goodbye, Filebrowser

ปกติเวลาทำเว็บแล้วต้องการให้มี directory listing สำหรับให้ผู้ใช้ดาวน์โหลดไฟล์ โมดูลตัวแรกที่มักจะนึกถึงก็คือ Filebrowser ซึ่งถ้าติดตั้ง Drupal บนเซิร์ฟเวอร์ที่เป็นลินุกซ์ มันจะสามารถทำงานได้ตามปกติ แต่ปัญหาจะเกิดขึ้นทันทีเมื่อใช้เครื่องเซิร์ฟเวอร์ที่เป็นวินโดวส์

สาเหตุของปัญหาจริงๆ น่าจะเกิดจาก encoding ของระบบไฟล์ในวินโดวส์ที่มันไม่เป็น UTF-8 ทำให้มีปัญหาประหลาดๆ เมื่อใช้ฟังก์ชันของ PHP ในการอ่านชื่อไฟล์

ตัวอย่าง issue ที่น่าปวดหัวของ Filebrowser ก็มีประมาณนี้

Read the rest of this entry »

Remapping CDisplay Shortcuts with AutoHotkey

CDisplay คือโปรแกรมสำหรับอ่าน manga/comic ที่เป็นไฟล์ .cbr, .cbz, .cbt, ฯลฯ ถือเป็นโปรแกรม comic reader ในดวงใจก็ว่าได้ เคยลองใช้ทั้ง Comical, ComicRack และ MangaMeeya แต่สุดท้ายก็กลับมาตายรังที่ CDisplay 1.8.5 ทุกที (เวอร์ชัน 1.8.5 ไม่มีใน official site แต่ Google หาดูได้)

ข้อเสียเพียงอย่างเดียวของ CDisplay คือ ไม่สามารถตั้ง shortcut ตามใจตัวเองได้ เช่น เวลาเปลี่ยนหน้าต้องใช้ปุ่ม PgDn/PgUp หรือเวลาโหลดไฟล์ถัดไปต้องใช้ Shift-L เป็นต้น

ในฐานะที่ใช้ AutoHotkey อยู่แล้ว เลยจัดการ remap key ซะใหม่ โดยกำหนดให้ใช้ปุ่ม Left/Right แทน PgUp/PgDn เวลาเปลี่ยนหน้า และใช้ปุ่ม Ctrl-Left/Ctrl-Right แทน Shift-K/Shift-L เพื่อโหลดไฟล์ก่อนหน้าหรือถัดไป สำหรับ script AutoHotkey ที่ใช้ก็สั้นๆ ประมาณนี้

#IfWinActive ahk_class TMainDisplayForm
  Left:: Send {PgUp}
  Right:: Send {PgDn}
  ^Left:: Send +k
  ^Right:: Send +l
#IfWinActive

เท่านี้ก็อ่าน manga ได้มีความสุขขึ้นเยอะ :)

How to Turn Off Laptop Monitor using AutoHotkey

ใช้ AutoHotkey มาได้เดือนกว่าๆ รู้สึกว่าชีวิตสะดวกขึ้นเยอะ

ฟีเจอร์ที่ใช้หลักๆ ก็คือการสร้างฮอตคีย์สำหรับรันคำสั่งต่างๆ แต่จริงๆ ตัวโปรแกรมสามารถทำอะไรได้มากกว่านั้น เช่น สั่งคลิกเมาส์/กดปุ่มคีย์บอร์ด, สร้างฟอร์มรับข้อมูลจากผู้ใช้, แปลงคำย่อเวลาพิมพ์ให้กลายเป็นคำเต็มๆ เช่น brb -> be right back, ฯลฯ ขึ้นอยู่กับจินตนาการของคนเขียนสคริปต์

สำหรับฮอตคีย์ที่ใช้บ่อยสุดคือ สั่งปิดมอนิเตอร์เฉยๆ อีกอันคือสั่งปิดมอนิเตอร์ + ล็อคคอมพิวเตอร์ ซึ่งช่วยให้ประหยัดแบตไปได้เยอะทีเดียว (ผมไม่ชอบเสียบ adapter ทิ้งไว้) นอกนั้นก็เป็นฮอตคีย์สำหรับเรียกโปรแกรมที่ใช้ประจำ เช่น Firefox, Cygwin, Notepad++ ส่วนโปรแกรมอื่นๆ ก็ใช้ Launchy เรียกเอา

Read the rest of this entry »