Beach Theme To-Do list

By Gibbo

งานที่ต้องทำสำหรับ Drupal On The Beach ก็มี 3 ส่วนหลักๆ และการทำธีมสำหรับแจกจ่ายจะมีเรื่องให้ต้องคำนึงมากกว่าการทำธีมสำหรับเว็บไซต์เพียงเว็บเดียวพอสมควร เพื่อให้มันใช้งานได้กับเว็บไซต์หลากหลายรูปแบบ ก็ต้องตรวจสอบกันหลายๆแง่มุม

  1. Design พร้อมรับฟังไอเดียใหม่ๆเสมอ ตอนนี้เลย์เอาต์น่าจะได้ที่แล้ว แต่ยังขาดการตกแต่งภายใน

    • Graphic Style ธีมนี้มีสถานที่แล้ว (ชายหาด) แต่ยังไม่มีเรื่องราวที่สร้างความน่าสนใจ (ยังไม่มีส่ิงมีชีวิตปรากฏ) กำลังหาวิธีเพิ่มชีวิตชีวาให้มัน (Thai?, Life Style?, Playful? ใส่ร้านส้มตำไก่ย่างชายทะเล คงได้บรรยากาศพิลึก)
    • User Interface เรื่องนี้ยากกว่ากราฟิคซะอีก เพราะมันไม่ใช่แค่การตกแต่ง ต้องทำให้ "หน้าตาไปวัดไปวาได้ แต่ไม่ไร้ประโยชน์" ทั้งอินเตอร์เฟสโดยรวม และ รายละเอียดเฉพาะส่วน (menus, blocks, links) เพื่อให้ผู้ใช้ลืม UI (อันน่าเกรงขาม) ของ Drupal
    • CSS เป็นงานปกติของการทำธีม แต่ธีมสำหรับดรูปัลควรคำนึงถึง RTL version ด้วย เพราะ Drupal 6 รองรับผู้ใช้ภาษาที่เขียนจากขวาไปซ้ายโดยอัตโนมัติ การใส่สไตล์ที่ใช้ได้เฉพาะ LTR ก็ต้องมีคอมเมนต์ไว้ด้วย เพื่อให้ทำ *-rtl.css ได้สะดวกขึ้น
    • IE bug fix ดูสถิติใน analytics ของ drupal.in.th แล้ว คงเมินเฉยต่อ IE6 ไม่ได้ เตรียมแก้บั๊กในเลย์เอาต์และกราฟิคได้เลย เพราะผมตั้งใจใช้ไฟล์ semi-tranparent png เพื่อให้เปลี่ยนสีพื้นหลังได้ง่าย และดูเนียนกว่าไฟล์ gif (ทางแก้ระยะยาว ถ้าเป็นไปได้ก็ช่วยกันป่าวประกาศให้แฟนดรูปัลทั้งหลายเลิกใช้ IE6 นะครับ)
  2. Hard Code / Features (PHP / Drupal API) เนื่องจากธีมนี้หยิบเอาตัวอย่างโค้ดจากหลายธีมมาใช้ บางฟังชั่นอาจรวบเข้าด้วยกันได้ หรือมีวิธีการที่ดีกว่าที่ผมเขียนไว้ เพื่อประสิทธิภาพในการแสดงผลและความปลอดภัย ส่วนนี้คงให้ คุณ sugree และ คุณ kong ช่วยดูและตรวจสอบเป็นหลักเลย เพราะผมไม่ใช่โปรแกรมเมอร์ บางทีรู้ว่าต้องการอะไร แต่เขียนโค้ดไม่ได้

    • Theme settings ไม่มีอะไรมาก ถ้าต้องการใส่ฟีเจอร์ใหม่ก็ใช้ Forms API เพื่อพ่วงเข้ากับ template.php
    • function css_rearrange($css) ฟังชั่นนี้จะเอาสไตล์ดั้งเดิมของดรูปัลออกเกือบหมด แล้วใส่ไฟล์ CSS Framework ไว้ก่อนสไตล์อื่นๆ เพื่อลดปัญหาการโหลด external CSS เยอะเกินเหตุ และ override สไตล์ดั้งเดิมได้ง่ายขึ้น ในไฟล์ drupal6-core.css ไฟล์เดียว (เอามาจาก ZEN) โดยหลักการมันน่าจะดี แต่ผมไม่รู้ว่ามันมีผลกระทบต่ออย่างอื่นรึเปล่า
    • ฟีเจอร์อื่นๆที่มี ก็อย่างเช่น $vars['meta'] เพิ่ม meta ใน head เพื่อประโยชน์ทาง SEO, $vars['nav_access'] ซ่อนไว้สำหรับ screen reader ให้ผู้ใช้สามารถข้ามไปอ่านเนื้อหาหรือเมนูหลักได้ง่ายขึ้น
  3. Documentation อาจไม่ถึงขั้นต้องเป็น Handbook เพราะธีมไม่ได้ซับซ้อนเหมือนโมดูล แต่ถ้ามีคนเขียนหน้า Project Description + README ให้จะดีมากเลย

ตอนนี้ผมกำลังหาไอเดียเพิ่มเติมมาทำ UI ของ menus, blocks และ forum ถ้านึกอะไรออก จะมาบอกเพิ่ม ก็จะค่อยๆทยอยทำไปเท่าที่มีเวลาว่าง

11 comments

รูปภาพของ Gibbo
By Gibbo
3 years 7 weeks ago

เพิ่มเติมอีกนิด ตอนนีี้ยังไม

เพิ่มเติมอีกนิด

ตอนนีี้ยังไม่ต้องแก้ไขไฟล์ css นะครับ เพราะ UI ยังไม่ลงตัว ผมต้องทำกราฟิคเพิ่ม หลังจากนั้นค่อยตกแต่งมัน

รูปภาพของ kong
By kong
3 years 7 weeks ago

ไม่ค่อยชอบใจระบบ theme

ไม่ค่อยชอบใจระบบ theme settings ของดรูปัลเท่าไร ตอนดูโค้ดของ Acquia Marina ครั้งแรกแทบกรี๊ด เพราะมันใช้วิธี define default theme settings ไว้สองที่ คือในไฟล์ theme-settings.php กับ template.php และมีโค้ดซ้ำกันค่อนข้างเยอะในส่วนหัวของทั้งสองไฟล์ ซึ่งถ้ามี setting ซับซ้อนกว่านี้ จะทำให้ maintain ลำบาก

รู้สึกว่ามันไม่เป็นไปตามวิถีทางของดรูปัลยังไงก็ไม่รู้

ตอนทำธีม Inf08 เลยลองใช้วิธีแยกโค้ดส่วนที่ซ้ำกันออกมาเป็นอีกไฟล์นึงต่างหาก ก็รู้สึกว่าโค้ดสะอาดขึ้น (ส่วน theme settings จะมี 3 ไฟล์ -- theme-settings.php, theme-settings.inc, template.php)

แต่เท่าที่ดูตอนนี้ส่วน theme settings ของ Beach ยังดูโอเคอยู่ คิดว่ายังไม่จำเป็นต้องแยกไฟล์ แต่ถ้ามันยุ่งกว่านี้ก็น่าจะแยกไฟล์นะ (มั้ยฮึ!?)

ส่วนฟังก์ชัน css_rearrange($css) ผมเอาโค้ดของ @sugree มาดัดแปลงนิดหน่อย คิดว่าน่าจะทำงานได้ตามที่ @gibbo ต้องการ

รูปภาพของ Gibbo
By Gibbo
3 years 7 weeks ago

ผมเจอ warning ใน

ผมเจอ warning ใน template.php,v 1.7

Invalid argument supplied for foreach() in /../dev/sites/all/themes/beach/template.php on line 169.

คนอื่นเจอไหมครับ?

รูปภาพของ kong
By kong
3 years 7 weeks ago

แก้ละ เหมือนบางครั้งมันจะไม่

แก้ละ

เหมือนบางครั้งมันจะไม่มีตัวแปร $vars['css'] ใน phptemplate_preprocess() ครับ

รูปภาพของ sugree
By sugree
3 years 7 weeks ago

โอ้ 1.8

โอ้ 1.8

รูปภาพของ sugree
By sugree
3 years 7 weeks ago

ไม่เจอ

ไม่เจอ

รูปภาพของ Gibbo
By Gibbo
3 years 7 weeks ago

เรื่องแยกไฟล์หรือไม่

เรื่องแยกไฟล์หรือไม่ วินิจฉัยได้เลยครับ

รูปภาพของ Gibbo
By Gibbo
3 years 6 weeks ago

ช่วงนี้ผมกำลังหัดใช้ ubercart

ช่วงนี้ผมกำลังหัดใช้ ubercart อยากเป็นเจ้าของร้านค้า เลยขอพักเรื่องธีมชั่วคราว

รูปภาพของ Gibbo
By Gibbo
3 years 4 weeks ago

กำลังหา แรงบันดาลใจ

กำลังหา แรงบันดาลใจ มาทำกราฟิค ใครเจอ บรรยากาศริมหาดหรือใต้น้ำแบบโดนๆ ช่วยแนะนำด้วย จะเอามาลอก :P

อยากให้ธีมนี้เสร็จ ก่อนที่ฤดูร้อน(ตับแตก)จะผ่านไป

รูปภาพของ Gibbo
By Gibbo
3 years 2 weeks ago

เพื่อให้ช่วยกันทดสอบได้ง่ายขึ

เพื่อให้ช่วยกันทดสอบได้ง่ายขึ้น ผมปล่อย 6.x-0.x-dev แล้ว แต่รอให้มันแพ็คไฟล์ 12 ชั่วโมง ติดตามได้ที่ http://drupal.org/project/beach

รูปภาพของ Gibbo
By Gibbo
3 years 2 weeks ago