ทำไมธีมดรูปัลไม่โดน!
ช่วงนี้เศรษฐกิจไม่ดี งานไม่ค่อยเข้า ผมก็เลยได้กลับมายุ่งกับการทำธีมส่งเข้า drupal.org อีกครั้ง หลังจากห่างหายไปหลายเดือน แต่ดูเหมือนว่าธีมใหม่ๆ แบบโดนๆ ที่คนส่งเข้าเว็บแม่นั้นมีน้อยมาก (ถ้าเทียบกับ ธีมสำหรับเวิร์ดเพรส ที่ผมชอบแอบย่องไปส่องดูบ่อยๆ) เลยอยากจะโน้ตความคิดเห็นส่วนตัวไว้สักหน่อยว่า เหตุผลใดที่ทำให้ ธีมดรูปัลที่แจกจ่ายกันในเว็บแม่นั้น ถึงไม่ค่อยโดนใจผู้ใช้งาน และโพสต์นี้อาจช่วยเพิ่มกำลังใจ (หรือตัดกำลังใจ) เว็บดีไซเนอร์ชาวไทยที่กำลังสนใจทำธีมดรูปัลอยู่ก็ได้
ธีมที่แจกจ่ายกันใน drupal.org นั้น ส่วนใหญ่เจ๋งมากๆ พูดจริงๆนะไม่ได้ประชด เพราะถ้าดูที่เนื้อในของธีม เราจะเห็นเจตนาดีของผู้แจกจ่าย ที่พยายามลดขั้นตอนในการทำธีมของเราให้ได้มากที่สุดแล้ว (แต่เผอิญดันลืมลดขั้นตอนการดีไซน์ไปซะนี่) ยกตัวอย่าง ธีมตั้งต้นยอดนิยม (starter themes) เช่น Zen, Genesis, Blueprint, Tendu, Basic และอื่นๆ ธีมเหล่านี้เหมือนคฤหาสน์ที่มีรากฐานมั่นคง แต่เราต้องซื้อเฟอร์นิเจอร์และทาสีให้มันเอง (ดู ตารางเปรียบเทียบ Drupal6.x Starter Themes)
สำหรับ Drupal Core สิ่งที่กำลังปรับปรุงแน่ๆ คือ ทำให้มันใช้งานง่ายขึ้น และทำให้ผู้ใช้ไม่รู้สึกกลัวหน้าตาขึงขังเกินเหตุของมัน ได้ข่าวว่า พี่มาร์คแอนด์เดอะแก๊งค์ที่ก่อนหน้านี้รับหน้าที่รื้อดีไซน์ของ drupal.org ไปแล้วนั้น กำลังจะเข้ามาปรับปรุงเรื่อง Usability และ User experience สำหรับอินเตอร์เฟสของ Drupal 7 อีกหน (ลองอ่านดูในบล็อกของ Dries : Mark Boulton to help with Drupal 7) แต่สำหรับคนที่อยากได้ธีมดรูปัลหน้าตาเจ็บจี๊ดได้ใจ แบบดาวน์โหลดปุ๊บใช้ได้ปั๊บเลยนั้น ดรูปัลคือถิ่นทุรกันดารสำหรับคุณแน่นอน Confirm!
และต่อไปนี้ คือเหตุผลที่ผมเดาว่า ทำไมเว็บดีไซเนอร์ไม่ค่อยอยากทำธีมสำหรับดรูปัล?
- ข้อแรกสุดเลย ก็โค้ดมันเข้าใจยากนี่หว่า! : ข้อนี้น่าเป็นเหตุผลสำคัญที่สุดที่ทำให้เว็บดีไซเนอร์ไม่เลือกทำธีมดรูปัล เพราะถึงแม้บางคนจะเชี่ยวชาญ Graphic / XHTML / CSS ขนาดไหน แต่ถ้าไม่ทำความคุ้นเคยกับ Drupal API มันก็ยากที่จะจัดการรูปลักษณ์ของธีมให้ได้ดั่งใจ และแน่นอน Drupal API มันมีแต่โค้ดให้ดู กว่าจะลองผิดลองถูกจนเข้าที่เข้าทาง หลายคนก็หนีไปใช้แพลตฟอร์มอื่นแล้ว แต่จริงๆเราไม่ต้องหาวิธีใช้ API พวกนั้นเองก็ได้ ถ้าลองแงะธีมเจ๋งๆ อย่าง Acquia Marina ดู เราจะรู้ว่าระบบภายในของ Drupal นั้นยืดหยุ่นและให้อิสระกับคนทำธีมมากๆ (ถ้าไม่ตาลายกับโค้ด หรือสลบไปซะก่อนนะ!)
- ดรูปัลดูเหมือนจะไม่แยก หน้าเว็บ กับ หลังเว็บ ไว้ให้เรา : แม้ตัวระบบมันจะแยกไว้ แต่อินเตอร์เฟสข้างหน้ากับข้างหลังมันไม่ต่างกัน ลองเทียบกับ CMS หรือเว็บแอพพริเคชั่นแพลตฟอร์มอื่นๆ ส่วนมากชาวบ้านเค้าจะแยกอินเตอร์เฟสสำหรับแอดมินให้มีลักษณะเฉพาะไปเลย โดยที่เว็บดีไซเนอร์ไม่จำเป็นต้องไปแตะต้องส่วนนั้น แค่ใส่ใจหน้าเว็บของธีมตัวเองก็พอ (เช่น จูมล่า! หรือ เวิร์ดเพรส) แต่การทำธีมสำหรับดรูปัล เราต้องจัดการ CSS สำหรับส่วนอินเตอร์เฟสของแอดมินด้วย (เป็นอย่างน้อย) แม้จะสามารถกำหนด Administration theme เป็นธีมดั้งเดิมได้ แต่มันไม่ได้หมายความว่าผู้ใช้ทุกคนจะรู้ว่ามันมีฟังชั่นนี้นี่ครับ เพราะถ้าเราเปลี่ยนธีม ค่าดีฟอลต์ของ Administration theme ก็คือธีมที่เรากำลังใช้ (ไม่ใช่ Garland นะจ๊ะ) แปลว่าคนทำธีมดรูปัลที่ใส่ใจอินเตอร์เฟสส่วนแอดมินด้วย ก็มีงานต้องทำมากกว่าแพลตฟอร์มอื่นๆ
- ดรูปัลเต็มไปด้วยแท็ค หรือ HTML Elements ที่เราควบคุมได้ยาก (แต่จำเป็นต้องมี) : สำหรับโปรแกรมเมอร์มันคือข้อดีที่ไม่ต้องเสียเวลาเขียนโค้ดซ้ำๆ แต่สำหรับธีมเมอร์มันอาจจะเป็นส่วนเกิน ข้อนี้อธิบายยาก ต้องลองทำธีมดรูปัลดู แล้วจะเห็นว่าเราเข้าไปจัดการกับ หลายๆ elements โดยเฉพาะในส่วนแอดมินได้ยากเต็มที เช่น ตารางแสดงข้อมูลล้นขอบเลย์เอาต์, fieldset / textarea / input ยาวเกินไปจนกินพื้นที่ไซต์บาร์, สีของตารางไม่เข้ากับธีมของเรา ฯลฯ ส่วนมากจะแก้ได้ด้วย CSS แต่มันกินเวลามากมาย เหตุผลที่ต้องมี elements พวกนี้ เดาว่าคงเพราะดรูปัลเป็นแพลตฟอร์มสารพัดประโยชน์ คือ ติดตั้งครั้งเดียว ได้ทั้ง portal, blog, forum, aggregator ฯลฯ ซึ่งรูปแบบการแสดงผลข้อมูลในหน้าเว็บนั้นต่างกัน มันเลยต้องมี elements แบบกลางๆเผื่อไว้ (แต่เผอิญมันยากที่จะเข้ากับธีมอื่นๆ ที่ไม่ใช่ Garland!)
- โมดูลของดรูปัลเป็นตัวของตัวเองมากๆ จนไม่ยอมจำนนให้ธีม : เช่นกัน สำหรับโปรแกรมเมอร์มันคือข้อดี สำหรับธีมเมอร์มันอาจจะเป็นส่วนเกิน ข้อนี้ต้องลองนึกภาพดรูปัลเป็นตัวต่อเลโก้ โมดูลก็เหมือนชิ้นส่วนที่เราสามารถต่อเติมขึ้นรูปได้เรื่อยๆ แล้วแต่ละโมดูลของดรูปัล มันก็มี View เป็นของตัวเองซะด้วยสิ (ในที่นี้หมายถึง View ใน MVC ที่ผมพอเข้าใจบ้างนิดหน่อย) นั่นหมายความว่าโมดูลส่วนมากจะมีไฟล์ CSS ของตัวเอง ถ้ามันแสดงผลไม่เข้ากับธีม เราก็ต้องตามจองล้างจองผลาญมันอีก แม้จะ override มันได้แต่ก็กินเวลาอีกเช่นกัน
- มาตรฐานการเขียนโค้ดสำหรับธีมใน drupal.org นั้นเข้มงวด : ถ้าเป็นโมดูลยิ่งเข้มกว่าธีมอีก เคยเขียนเรื่องประมาณนี้ไว้แล้ว ใน Code is Discipline นอกจากนี้ contributors ต้องทำความคุ้นเคยกับ CVS หรือระบบจัดการเวอร์ชั่นที่ดรูปัลใช้อยู่ด้วย (ช่วงแรกผมงงกับไอ้ CVS นี้มาก เพราะไม่เข้าใจว่า จะมี CVS ไปทำไม หรือ Branch กับ Tag มันต่างกันยังไง แต่พอเริ่มโปรเจ็คต์แรกได้ อะไรๆก็ง่ายขึ้น)
- ตูข้าออกแบบได้ แต่ตูข้าไม่รู้จะเริ่มตรงไหนในดรูปัล! : เพราะผมเคยเป็น ถ้าจะให้แนะนำคนที่กำลังอยากทำธีมดรูปัล ก็อยากให้เริ่มทำความคุ้นเคยกับอินเตอร์เฟส และฟังช่ันการใช้งานหลักๆของมันก่อน และคุณจำเป็นต้องรู้ HTML/CSS ซึ่งเป็นส่วนสำคัญของการทำธีม ลองแก้สีสันหน้าตาของธีมที่ดาวน์โหลดมาดู ถ้ามีเวลาว่างก็แงะธีมของชาวบ้าน เพื่อดูโด้ดและฟังชั่นของ Drupal API ถ้าไม่ว่าง แต่อยากได้ธีมที่ออกแบบเอง ก็จ้างผม! (เขียนมาตั้งยาวเพิ่งจะเข้าเรื่องนี่เอง ฮ่าๆๆ)
เหตุผลเท่าที่นึกออกตอนนี้ก็มี 6 ข้อ เชิญเสนอแนะเพิ่มเติมได้ครับ แต่ถ้าใครบอกว่าไม่เห็นมีเว็บไซต์ระดับ corporate ที่ออกแบบเจ๋งๆใช้งานดรูปัลเลย ผมขอเถียงขาดใจ อย่างน้อยที่ผมเคยเห็นจากทั่วโลกก็เกินโหลล่ะ เชิญทัศนา (เรียงลำดับตามความยาวของชื่อ เพราะเขาไม่มีค่านายหน้าให้ครับ)
Drupal Kick-ass Design
- xmos.com
- finders.ae
- avguide.com
- workhabit.com
- doglotion.com
- adciserver.com
- wayoutwest.se
- poquer-red.com
- exploresinai.com
- sotomaldonado.com
- movinghouse.com.au
- streetwearunited.com
- asiancemagazine.com
- bellacoolahelisports.com
- selected-webdesign.com
และยังมีอวดอีกมากมายใน drupalsites.net ลองไปหาแรงบันดาลใจที่นั่นได้ครับ
Edit 13 พ.ค. 2552 : เปลี่ยนคำว่า "ดรูปอล" เป็น "ดรูปัล" ทั้งบทความ