Drupal theming approaches
อ่าน drupal.in.th/node/2309 แล้วเกิดอยากเขียนบล็อกขึ้นมา เพราะเท่าที่ติดตามดู หลายๆอย่างใน Drupal กำลังเปลี่ยนไปในทางที่ดีขึ้น รวมถึงแนวทางการทำธีมที่สะดวกมากขึ้นด้วย ยกตัวอย่างเท่าที่นึกออกตอนนี้ และเกี่ยวกับกระทู้ที่อ้างถึงด้านบน ก็เช่น
ถ้าต้องการปลดปล่อยตัวเองจาก block regions ใน drupal ก็ต้องลองเล่น panels + skinr + views เหมาะสำหรับเว็บไซต์ที่ต้องการเลย์เอาต์ซับซ้อน(มากๆ) เราไม่ต้องเซ็ต block regions ไว้ในธีมเลยก็ได้ แต่ override ใน panels-*-.tpl.php , views-*-.tpl.php แล้วก็กำหนด css style ผ่านทาง skinr
ใครเคยใช้ wordpress มาก่อนจะคุ้นเคยกับวิธีการธีมแยกส่วนแบบนี้ แต่ panels, views ของ drupal ยืดหยุ่นกว่านั้นมาก เพราะเราสามารถ override แต่ละ field ได้เลย ส่วนข้อเสียคือ template files ทั้งของ panels และ views มักจะให้ mark-up มาเผื่อเสมอ ต้องคอยกวาดทิ้ง!
ถ้ายังไม่หนำใจ ต้องการอิสระในการจัดการแต่ละ sections ก็ + context เข้าไปอีกตัว เพื่อช่วยตั้งเงื่อนไข และ action สำหรับการแสดงผลแต่ละ sections ได้เองอย่างอิสระ
อีกตัวที่ทำให้ back-end ของ drupal 6 น่าใช้มากขึ้น ก็ต้องเป็น admin ซึ่งจะคล้ายกับ UI ใหม่ของ drupal 7 และคนทำธีมก็ไม่ต้องพะวงว่าต้องแก้ธีม back-end ให้เสียเวลาอีกต่อไป!
ส่วนใครที่สนใจ theme preprocess ใน Drupal ขอแนะนำให้ดาวน์โหลด studio มาแงะดูโค้ด เพราะแยกแต่ละ function ออกมาไว้ในไฟล์ .inc ทีละฟังชั่นเลย ทำให้ดูได้ง่ายกว่าใน template.php
วิธีการทำธีมแนวที่ว่ามาข้างต้น อาจช่วยให้ในอนาคต เราจะได้เห็น contributed themes ของ Drupal ที่สวยงามมากขึ้น เพราะคนทำธีมทั้งหลายสามารถโยนความรับผิดชอบต่อ back-end UI ไปที่ตัวโมดูลได้เลย แล้วการทำธีม Drupal ก็จะกลายเป็นงาน front-end ที่เปี่ยมสุข (หวังว่าจะสุข ทั้งคนใช้และคนทำ)