Drupal theming approach

อ่าน 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 ที่เปี่ยมสุข (หวังว่าจะสุข ทั้งคนใช้และคนทำ)

6 Replies

ที่ผมทึ่งมากๆ เลยก็คือโมดูล Skinr + ธีม Acquia Prosper ที่ทำให้การจัดวาง block ธรรมดาๆ กลายเป็นเรื่องสนุก, ง่าย, และดูดีอย่างไม่น่าเชื่อ

(เหมือนโฆษณาเลย 555+ แต่ผมรู้สึกอย่างนั้นจริงๆ)

ว่าจะเขียนบล็อกอยู่เหมือนกัน แต่นึกเนื้อหาไม่ออก คิดได้แค่คำจำกัดความ "Skinr: An Evolution in Drupal Theming" :P

ส่วน Panels ตอนแรกๆ ก็ใช้อยู่ แต่หลังจากที่มันแยกออกมาเป็น Chaos tools แล้วรู้สึกว่ามันยุ่งยากเกินไป เขียน xHTML + CSS เอง บวกกับ CSS framework ซักตัวน่าจะง่ายกว่า -_-a

ผมประจักษ์แล้วครับว่า Panels + Views นี่มันเมพชัดๆ ส่วน Skinr ยังไม่เคยลอง เดี๋ยวต้องเจอจตุรเทพ CCK + Panels + Views + Skinr สักหน่อยแล้ว

ส่วน Drupal เองก็กำลังดำเนินไปในแนวทางที่ดีขึ้น ณ ตอนนี้ถ้ามีใครถามผมว่าจะเขียน PHP ใช้ framework ตัวไหนดี ผมจะตอบว่าเอาเวลาที่เสียไปกับการศึกษา framework มาศึกษาการพัฒนา theme + module ของ Drupal ดีกว่า อย่าเสียเวลาไปกับ syntax ฟุ่มเฟือยของ PHP เพราะยังมีโค้ดสวยๆ ของ Ruby และประสิทธิภาพที่สูงกว่าของ Python รออยู่ : )

CMS ระดับเทพที่เขียนด้วย Python คือ Zope/Plone ขนาดท่าน @sugree ที่ว่าเป็นเทพ Python ในบ้านเรายังยอมแพ้ เสี้ยน (คล้ายๆ เซียน) อย่างผมขอ print "Hello World" ไปก่อน

ว่าแต่ฟีเจอร์ของ webfaction นี่มันน่าสนใจดีครับ พี่มีแบ่งขายให้ผม 1GB / 199.- ไหมครับ .. ฮา

Add Your Reply.

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

Theme

Twitter Update

Restless Engine

Powered by Drupal, an open source content management system

Back to content.