อ่าน 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 มากขึ้น เลยจับ grid framework เข้าไปเป็น plugin ในธีมได้ (จัดการ mark-up ใหม่ใน panels-*.tpl.php) และก็จริงอย่างที่คุณว่า เขียน xHTML + CSS framework ง่ายกว่า ผมเลยจับมันใส่ panels ซะเลย จะได้ไม่ต้องเขียนซ้ำๆ และสามารถเรียกใช้งานผ่าน panels ได้เลย (แต่กว่าจะเคลียร์ mark-up อ้วนๆออกไปได้ ก็นานอยู่เหมือนกัน)
ผมชอบ skinr แต่ไม่ชอบ fusion + acquia prosper เพราะ mark-up มันอ้วนมากๆ ถ้าซ้อน panels + views เข้าไปอีก บางที field เล็กๆ อาจอยู่ลึกลงไป 10 ชั้นได้! (น่ากลัวมาก... แต่ override ใน template ได้)
ผมประจักษ์แล้วครับว่า Panels + Views นี่มันเมพชัดๆ ส่วน Skinr ยังไม่เคยลอง เดี๋ยวต้องเจอจตุรเทพ CCK + Panels + Views + Skinr สักหน่อยแล้ว
ส่วน Drupal เองก็กำลังดำเนินไปในแนวทางที่ดีขึ้น ณ ตอนนี้ถ้ามีใครถามผมว่าจะเขียน PHP ใช้ framework ตัวไหนดี ผมจะตอบว่าเอาเวลาที่เสียไปกับการศึกษา framework มาศึกษาการพัฒนา theme + module ของ Drupal ดีกว่า อย่าเสียเวลาไปกับ syntax ฟุ่มเฟือยของ PHP เพราะยังมีโค้ดสวยๆ ของ Ruby และประสิทธิภาพที่สูงกว่าของ Python รออยู่ : )
รอให้ว่างกว่านี้ซักพัก เราคงได้แลกเปลี่ยนความรู้กัน ผมว่าจะเขียนเรื่องจตุรเทพของ @tonkla อยู่เหมือนกัน เพราะกำลังทำโปรเจ็คต์ที่ใช้งานเมพทั้งสี่อย่างหนักหน่วง (+เทพองค์ใหม่ คือ context)
ถ้าจะให้เมพขิงๆขึ้นไปอีก ต้องรอ @tonkla เขียน drupal ด้วย python!!!
CMS ระดับเทพที่เขียนด้วย Python คือ Zope/Plone ขนาดท่าน @sugree ที่ว่าเป็นเทพ Python ในบ้านเรายังยอมแพ้ เสี้ยน (คล้ายๆ เซียน) อย่างผมขอ print "Hello World" ไปก่อน
ว่าแต่ฟีเจอร์ของ webfaction นี่มันน่าสนใจดีครับ พี่มีแบ่งขายให้ผม 1GB / 199.- ไหมครับ .. ฮา
ผมเคยเล่น Plone ในโฮสต์นี้ ซะโดนเตือน มันกิน memory กระจาย! (หรือไม่ผมตั้งค่าอะไรผิด)
ส่วน webfaction ผมไม่แน่ใจว่าแบ่งขายได้รึเปล่า แต่รู้สึกจะเพิ่ม ssh account ได้ ถ้ามีโปรเจ็คต์เด็ดๆมาเสนอ อาจให้ใช้ฟรี!!!!
Add Your Reply.