วันอาทิตย์ที่ 21 กรกฎาคม พ.ศ. 2556

แก้ปัญหาปุ่มหายใน phpbb ตอนเปลี่ยนธีม

กระดานนักอ่านที่เว็บฟอร์ไรท์เตอร์เมื่อก่อนเป็นสีม่วงครับ ชาวเว็บฟอร์เลยเรียกชื่อเล่นกันติดปากว่า "กระดานม่วง" คู่กับ "กระดานฟ้า" ซึ่งเป็นกระดานสำหรับเขียนนิยายในกิจกรรมแรลลี่ (ส่วนกระดานคุยทั่วไปที่เป็นกระดานหลักของเว็บ บางทีก็เรียกชื่อเล่นว่า "กระดานขาว"

ทีนี้พอพี่ฟีลบกระดานเก่าทำใหม่หมด สีม่วงมันก็หายไปด้วย กลายเป็นสีฟ้าสด (ฟ้ามากกว่า "กระดานฟ้า" เดิมซะอีก) เลยถามกันว่าเปลี่ยนธีมเป็นสีม่วงแบบเดิมดีมั้ย ก็ลองทำสีใหม่มาดูกันในห้องคุย เห็นพ้องต้องกันว่าสีใหม่ใช้ได้ พี่ฟีก็อนุมัติ เลยเปลี่ยนสีธีมใหม่เรียบร้อย

ปรากฏว่าปุ่มแก้ไขข้อความหาย!

ตอนแรกก็ไม่แน่ใจว่าหายเพราะอะไร เพราะแก้ไปหลายอย่างแล้วเพิ่งมาสังเกต (ตอนที่คุณพีทใส่โค้ดผิดแล้วแก้ไม่ได้เนี่ยแหละ) ตรวจสอบการตั้งค่าหลายที่ก็ไม่พบผู้ต้องสงสัย เลยลองเปลี่ยนธีมเก่าและใหม่สลับกันดู โป๊ะเชะ! ธีมเก่ามีปุ่ม ธีมใหม่ปุ่มสาปสูญเรียบร้อย ตกลงเป็นที่ธีมนี่เอง

คุณพีทใช้เวลาคุ้ยอยู่หลายชั่วโมงมาก ในที่สุดก็หาสาเหตุเจอและแก้สำเร็จ เลยเอามาลัดคิวบันทึกไว้ตรงนี้ครับ เผื่อคราวหน้าคราวหลังถ้าใช้กระดานยี่ห้อนี้อีก แล้วเปลี่ยนธีมอีก มันจะเจอปัญหาแบบเดียวกันทุกครั้ง จะได้ไม่ต้องงมอีก

ต่อไปนี้เป็นข้อมูลทางเทคนิคครับ

กระดานม่วงใช้ยี่ห้อ phpbb (ซึ่งคุณพีทไม่ค่อยได้ใช้และไม่ถนัดเท่าไหร่ มาหัดเล่นก็กับกระดานม่วงนี่แหละ)

ภาษาที่ใช้เป็นภาษาไทย

ธีมมาตรฐานที่ติดมากับโปรแกรมเวอร์ชั่นนี้คือ Prosilver เป็นสีฟ้าสด เนื่องจากเป็นธีมมาตรฐาน ปุ่มฟังก์ชั่นที่มีข้อความบนปุ่มก็เลยมีคนแปลเป็นภาษาไทยให้เรียบร้อย คือมีปุ่มทั้งสองภาษา อังกฤษและไทย

ตอนที่คุณพีทเปลี่ยนสี ไม่ได้ใช้ธีมอื่น ยังใช้ Prosilver อยู่ แต่ที่เว็บ phpbb เขามีเครื่องมือช่วยในการเปลี่ยนสีธีม ชื่อว่า ColorizeIt ให้เราเลือกสีองค์ประกอบสามส่วนได้ตามต้องการ คุณพีทก็จัดการเปลี่ยนสีตามนี้คือ
  1. สีฟ้าเดิม เปลี่ยนเป็นสีม่วงอ่อน ( hue: +90; lightness: +50; saturation: -50 )
  2. สีแดงสดเดิม เปลี่ยนเป็นสีน้ำเงินเข้ม ( hue: -120; lightness: +0; saturation: +0 )
  3. สีเหลืองอ่อนเดิม เปลี่ยนเป็นสีฟ้าอ่อน ( hue: +120; lightness: +50; saturation: +0 )
ได้ธีมใหม่เป็น ม่วงอ่อนแซมฟ้าใส

 phpbb เก็บธีมเอาไว้ที่  /style/ชื่อธีม  (phpbb เรียกธีมว่าสไตล์)  ประกอบด้วยโฟลเดอร์ย่อยคือ
/style/ชื่อธีม/imageset
/style/ชื่อธีม/template
/style/ชื่อธีม/theme
template ใช้เก็บไฟล์ html
theme ใช้เก็บไฟล์ css
imageset ใช้เก็บรูปต่างในธีม

รูปที่ใช้ในธีมจะมีสองกลุ่มคือ รูปที่ไม่มีข้อความ ไม่ว่ากระดานจะใช้ภาษาไหนก็เป็นรูปเดียวกัน จะเก็บไว้ที่ imageset โดยตรง กับอีกกลุ่มคือรูปที่มีข้อความ จะเก็บไว้ในโฟลเดอร์ย่อยแยกตามภาษา เช่น
/style/ชื่อธีม/imageset/en เก็บรูปที่เป็นข้อความภาษาอังกฤษ
/style/ชื่อธีม/imageset/th เก็บรูปที่เป็นข้อความภาษาไทย
ที่เปลี่ยนธีมแล้วปุ่มหาย เพราะปุ่มเหล่านั้นของธีมเดิมภาคภาษาไทยอยู่ในโฟลเดอร์ย่อย /th แต่ธีมใหม่ไม่ใช่ธีมมาตรฐานที่มีคนแปลไว้ ก็เลยไม่มีโฟลเดอร์ย่อย /th พอระบบหารูปไม่เจอ ก็เลยไม่แสดง ปุ่มต่างๆ ที่เคยมีข้อความภาษาไทยอยู่ก็เลยหายไปหมดในธีมใหม่ (มีปุ่มอื่นด้วย ไม่ใช่แค่ปุ่มแก้ไขข้อความปุ่มเดียว)

วิธีแก้ก็คือ เข้าไปที่ File Manager ของโฮสต์ แล้วสร้าง /th เพิ่มขึ้นมาใต้ imageset ของธีมใหม่ สำหรับกระดานม่วงคุณพี่ไม่มีเวลานั่งทำกราฟิกใหม่ ก็เลยก๊อปปี้เอาปุ่มภาษาไทยจากธีมเดิมมาใช้ในธีมใหม่เลย ซึ่งโทนสีจะเป็นสีแดงกับฟ้า ไม่ขัดกับโทนสีม่วงกับฟ้าเท่าไหร่ พอไปกันได้ครับ

เป็นอันว่าแก้ปัญหาสำเร็จเรียบร้อย ใช้เวลาแค่ไม่กี่ชั่วโมง (เอ๊ง)



ไม่มีความคิดเห็น:

แสดงความคิดเห็น