Drupal Thailand (late) summer beach
Drupal.in.th เปลี่ยนมาใช้ Beach Theme แบบไม่ให้สุ้มให้เสียงเตือนล่วงหน้า sugree ใจกล้าอย่างมหันต์ที่เปลี่ยนมาใช้ธีมนี้ ยิงเข้า twitter ประกาศแบบไม่ให้ตั้งตัว ทั้งๆที่หน้าโปรเจ็คต์มีแค่ 2 บรรทัด และบั๊กใน IE ยังชอนไชอีกเพียบ!
อนุมานได้ว่า ถ้าใครรัก drupal.in.th จงอย่าใช้ IE รุ่นต่ำกว่า 8 แต่ดูสถิติใน google analytics แล้วน่าเป็นห่วง เพราะถ้าผมกดเครื่องคิดเลขไม่ผิด มีผู้เยี่ยมชม drual.in.th ประมาณ 15% ที่ยังใช้ IE6 อยู่ ส่วน IE7 ประมาณ 24% (แต่ยังนับว่าโชคดีที่อีก 61% ที่เหลือ ใช้บราวเซอร์ที่ไม่ก่อมลภาวะทางสายตา)
วันสองวันก่อนผมเพิ่งจะเอาธีมนี้มาใส่ใน theme switch ของ webzer ก่อนหน้านี้หลายวัน suksit ก็อัญเชิญไปลองของก่อนใครเพื่อน ถ้าเป็นฟุตบอลก็ถือเป็นการเล่นเกม pressing เพื่อไล่ล่ากำจัดบั๊ก มองในแง่ดี การใช้ธีมใหม่ (ที่ยังทำไม่เสร็จ) ในเว็บไซต์จริง จะช่วยให้เราได้รับฟีดแบ็คและเห็นข้อผิดพลาดจากผู้ใช้ทั่วไป (ที่ไม่ใช่แอดมิน) ได้เร็วขึ้น
ปัญหาความล่าช้าในการทำธีมนี้ (ไอเดียเริ่มเมื่อไหร่ ลืมไปแล้ว) คือ ผมไม่ได้เริ่มทำ visual style ให้คนอื่นเห็นภาพร่วมกันก่อน เพราะปกติผมจะทำงานคนเดียว เวลาออกแบบธีมใหม่ก็แค่สเก็ตช์เลย์เอาต์คร่าวๆในกระดาษ แล้วก็โค้ดเลย หลังจากได้โครงเลย์เอาต์แล้วค่อยมาแยกทำกราฟิคเป็นส่วนๆไป เลยไม่มีหน้าตัวอย่างเต็มๆให้ชาวบ้านนึกภาพเหมือนกันได้ และนี่อาจเป็นเหตุผลหนึ่งที่ทำให้ maintainers อีก 2 คน ที่สมัครใจเข้าร่วมสังฆกรรม คือ @suksit และ @sugree ไม่แน่ใจว่าผมจะเอายังไงกันแน่ (เดาใจผมได้ก็โคตรเก่ง เพราะไม่เคยเห็นหน้ากันเลย)
ตั้งใจว่าจะแยกเวอร์ชั่นสำหรับ drupal.in.th ออกมาต่างหาก แต่คงเปลี่ยนในส่วนกราฟิคให้มีเอกลักษณ์เฉพาะ โครงสร้างธีมคงเหมือนกับที่แจกจ่ายใน drupal.org แต่เนื่องจากผมทำกราฟิคเป็นไฟล์เวคเตอร์แทบทั้งหมด ขนาดไฟล์โดยรวมจึงใหญ่มาก (เฉพาะฟองอากาศใต้น้ำที่แยกเลเยอร์ไว้ ก็ปาเข้าไป 10 กว่า MB) หลังจากนี้จะพยายามแยกไฟล์ออกมา เป็น .svg ให้คนที่สนใจเอาไปปรับแต่งกราฟิคและเปลี่ยนเลเยอร์เองได้สะดวก (ถ้าเก็บไว้ใน drupal repositories ธีมแพ็คจะมโหฬารมาก กลัวถูกประณาม)
ความยากของการทำธีมดรูปัลเพื่อแจกจ่าย คือ เราต้องจัดการกับหน้าตาของส่วนแอดมินด้วย ซึ่งมันจะต่างจาก CMS, Blog หรือ Forum software ตัวอื่นๆ ที่แยก Admin Panel ไว้เป็นเอกเทศ เช่น Joomla!, WordPress เป็นต้น นี่เป็นเหตุผลหนึ่งที่ทำให้เรามีตัวเลือกธีมใน drupal.org ค่อนข้างจำกัด เพราะมันต้องใช้เวลานาน กว่าจะพร้อมให้นำธีมไปใช้งานในเว็บไซต์จริงได้ Commercial Themes ที่ขายกันใน Top Notch Themes จึงราคาค่อนข้างสูง (ผมเดาว่าเขาคำนวณราคาจากเวลาที่ใช้ทำธีม) ดูตัวอย่างฟรีธีมที่เก็บรายละเอียดแทบทุกเม็ด อย่าง Acquia Slate ก็ได้ (ดูแค่โค้ดใน template.php ก็แทบร้องไห้แล้ว!)
แต่ความง่ายของการทำธีมดรูปัล ก็คือ โค้ดไม่เน่า! เก็บไว้ใช้คราวต่อๆไปได้ โดยไม่ต้องเริ่มใหม่ทั้งหมดตั้งแต่ต้น แต่ละฟังชั่นที่เราเพิ่มเข้าไปในธีม ก็เหมือนตัวต่อเลโก้ หรือแม้แต่ลอกของชาวบ้านมาสุมในธีมเราเองก็ทำได้เช่นกัน (เรื่องนี้ผมถนัดนัก) พอทำไปเรื่อยๆ มันก็จะเกิดบางอย่างคล้ายๆ framework ของเราเอง เราจะรู้ว่าอะไรควรเอาไว้ หรือ อะไรควรเขี่ยทิ้ง ขึ้นอยู่กับลักษณะเว็บไซต์ที่เราทำ นี่คือความยืดหยุ่นของ Drupal
อันที่จริงผมอยากเขียนเกี่ยวกับขั้นตอนการออกแบบและทำธีมสำหรับดรูปัลไว้ด้วย (เขียนให้ตัวเองอ่านกันลืม) เคยเขียนไว้แล้วครั้งนึง เริ่มที่ node/50 แต่การทำ Colourise Theme อันนั้น เริ่มแรกแค่ต้องการแสดงตัวอย่างวิธีการแปลงธีมอย่างรวดเร็ว จาก Free CSS Template เป็น Drupal Theme ไม่ได้พูดถึงรายละเอียดของการออกแบบที่ต้องคำนึงถึงลักษณะเฉพาะของดรูปัลควบคู่กันไปด้วย (อีกธีมที่ยังทำค้างอยู่ คือ Strange Little Town เป็นการแปลง WordPress Theme มาใช้กับ Drupal)