Planet Drupal Thailand
How to Neatly Dump Variables in Drupal for Debugging
เวลาพัฒนาโมดูล / ธีมใน Drupal สิ่งหนึ่งที่มักจะต้องทำบ่อยๆ คือการ dump ค่าตัวแปรใน Drupal ออกมาดู วิธีที่ง่ายที่สุดคือใช้คำสั่ง <a href="http://www.php.net/print_r"><span class="kw3">print_r</span></a><span class="br0">(</span><span class="sy0"><</span>variable<span class="sy0">></span><span class="br0">)</span> แต่ผลลัพธ์ที่ได้ส่วนใหญ่จะเป็น string เละๆ อยู่ในส่วนบนสุดของหน้านั้นๆ ทำให้อ่านลำบากอย่างแรง
เห็น @sugree แนะนำบ่อยๆ ว่าให้ใช้ drupal_set_message<span class="br0">(</span><span class="br0">)</span> เวลา dump ค่าตัวแปร ลองดูแล้วปรากฏว่ามันใช้ไม่ได้กับ print_r() เนื่องจาก print_r() จะพรินท์ค่าออกมาทันที ไม่ได้ return ค่าเป็น string กลับมาให้ drupal_set_message()
วิธีแก้คือใช้ output buffering ช่วยอีกที สมมติว่าต้องการ dump ค่าในตัวแปร <span class="re0">$vars</span><span class="br0">[</span><span class="st_h">'node'</span><span class="br0">]</span> ก็เขียนโค้ดแบบนี้
<?php ob_start(); print_r($vars['node']); drupal_set_message(ob_get_contents()); ob_end_clean(); ?>
จะได้โครงสร้างของตัวแปร $vars['node'] อยู่ในกล่องข้อความของ Drupal อย่างเป็นระเบียบเรียบร้อย อ่านง่ายกว่าเดิมเยอะ :)
ย้าย "อ่านต่อ" มาเป็นลิงก์แรก และทำให้เด่นขึ้น
ปกติลิงก์ "อ่านต่อ" จะปนอยู่รวมกับลิงก์อื่นๆตอนดูเฉพาะคำโปรย (node teaser) เช่น "onequad's blog 1 ความเห็น 1 ใหม่ อ่านต่อ 13 reads แก้ไข Bookmark this" ช่างไม่เด่นและทำให้สับสนว่าตกลงยังมีต่ออีกหรือเปล่า ต้องย้ายมาเป็นลิงก์อันแรกและทำให้เด่นๆ (ที่จริงอยากทำให้ "อ่านต่อ" ต่อท้ายจากคำโปรยเลย แต่หาวิธีไม่ได้ 55) ...
Buzzr: Better Drupal Usability
Buzzr เป็นการสร้างอินเทอร์เฟซที่ “ครอบ” Drupal (ลักษณะเดียวกับ Netbook Remix ของ Ubuntu) เพื่อให้ Drupal ใช้งานได้ง่ายขึ้น เป็นผลงานของ Lullabot ซึ่งเป็น software/consulting house รายใหญ่ในวงการ
ตอนนี้ยังไม่มีเดโมให้ลองเล่น แต่จากวิดีโอเดโมแล้ว น่าสนใจมากทีเดียว (วิดีโอยาวหน่อย แต่แนะนำให้ดู)
remark ของผม
- AJAX block เป็นอะไรที่ผมอยากได้มานานแล้ว เพราะว่ามันเป็นธรรมชาติมากกว่ามาก (ตัวอย่างที่ผมว่าดีที่สุดคือ Blogspot) ที่เหนือความคาดหมายคือ Buzzr เอา Title & Slogan มาเป็นส่วนหนึ่งของ block ด้วย
- ปัญหา no separation between frontend-backend เป็นอีกปัญหาที่สำคัญมากของ Drupal มันใช้งานสะดวกก็จริง แต่ว่าผู้ใช้หน้าใหม่จะสับสนมาก ที่ผ่านมามีความพยายามจะสร้าง “เส้นแบ่ง” อันนี้ อย่างเช่นโมดูล Admin Menu เพื่อทำเมนูงานบริหารจัดการที่ขอบด้านบน แต่ implementation ไม่ค่อยดีนัก (ผมลองใช้แล้วก็เลิกไป) ส่วน Buzzr นั้นใช้แนวทางแบบเดียวกัน (เมนูที่ขอบด้านบน) แต่ implementation ดีกว่ามาก เพราะ 1) ใช้วิธี popup ในเพจ 2) มีเฉพาะเมนูที่จำเป็น+ไอคอนสวยงาม
- ผมชอบที่เค้าบอกว่า ไอคอนไม่ได้ช่วยให้ผู้ใช้แยกแยะทางเลือกได้เท่าไรนัก (คือไม่สามารถดูแต่รูปแล้วบอกได้ว่ามันคือเมนูอะไร ต้องอ่านข้อความซ้ำอีกที) แต่ว่ามันทำให้ดูว่าคนทำใส่ใจในรายละเอียดต่างหาก
- ระบบธีมที่จับบน Zen ตัวเดียว แล้วแก้ CSS เอา เป็น engineering solution ที่ดีมาก
- หน้า Design ที่ทำแบบ Firebug (หรือ Drupal Theme Developer) เป็นเทร็นด์ที่น่าสนใจ
- Features นี่สุดยอดจริงๆ อันนี้ไม่เคยนึกถึง
สรุปว่า Buzzr เยี่ยมมาก แต่ปัญหาที่น่ากลัวก็คือ ตอนนี้มี usability improvement initiative อย่างน้อย 3 อันทำขนานกันไป คือ Buzzr (Lullabot), Acquia Garden (Acquia), U7DX (Drupal.org จ้าง Mark Boulton) ซึ่งน่ากลัวว่าจะเห็น fork มันจะเสียทรัพยากรโดยใช่เหตุ อ่านเรื่องนี้ในบล็อกของ Dries
แสนยานุภาพของดรูปัล
ผมใช้ดรูปัลมาเกือบสองปี เมื่อก่อนยุ่งอยู่แต่กับธีม โดยไม่เคยสนใจการใช้โมดูลซักเท่าไหร่ แต่เพิ่งตระหนักถึง แสนยานุภาพอันร้ายกาจของดรูปัล ในช่วง 1-2 อาทิตย์มานี้เอง หลังจากหัดใช้โมดูล CCK และ Views อย่างจริงจัง บวกกับทำความเข้าใจระบบ Taxonomy ของมันให้ลึกซึ้งมากขึ้น จึงรู้ว่า ดรูปัล คือ CMS ที่ใช้สร้างสรรค์เว็บไซต์ประเภทไหนก็ได้! ไม่ได้โม้ แต่ขึ้นอยู่กับจินตนาการและการวางแผนที่ดีของเรา (ผมสอบตกวิชา "จินตนาการและการวางแผน" ก็เลยทำได้แค่เว็บไซต์เล็กๆ พอประทังชีวิต O_o)
Open Flash Chart 2 API
เรื่องมันมีอยู่ว่า...
หลังจากตกลงปลงใจเลือก Open Flash Chart มาใช้งาน ก็ปรากฏว่าอีก 2-3 วันต่อมา มี requirement เพิ่มเติม คือให้สร้าง chart ที่เป็นแบบ stacked bar ด้วย เท่านั้นแหละ งานเข้าทันที
เพราะโมดูล Open Flash Chart API มันสนับสนุน Open Flash Chart เวอร์ชัน 1.x เท่านั้น แต่ฟีเจอร์ stacked bar ของ OFC มันมีแต่ในเวอร์ชัน 2 สุดท้ายเมื่อไม่มีโมดูลให้ใช้ ก็เลยจำเป็นต้องเขียนเอาเอง
ตัวโมดูลที่เขียนเองใช้เองนั้นทำเสร็จตั้งแต่สองเดือนที่แล้ว แต่พอคิดว่าจะเอาขึ้น drupal.org ด้วย เลยเอามานั่งแก้แล้วแก้อีกอยู่หลายรอบ (กลัวหน้าตาโค้ดไม่ตรงตาม convention แล้วจะโดนประณาม T_T) จนคิดว่าตอนนี้น่าจะโอเคในระดับหนึ่ง
ตอนแรกไม่แน่ใจว่า ถ้าสมัคร CVS account เป็น theme contributor แล้วจะสามารถ contribute โมดูลได้ด้วยหรือเปล่า แต่ลองสร้าง directory ใน CVS แล้วปรากฏว่าสร้างได้ เลยจัดการอัพโหลดโมดูลไปเรียบร้อย :P
หน้าโปรเจกต์ Open Flash Chart 2 API ใน drupal.org ยังอยู่ระหว่างการก่อสร้าง ที่แน่ๆ คือยังไม่มี screenshot และคำอธิบายอาจจะน้อยไปหน่อย แต่ตัวโมดูลมี development snapshot ให้ดาวน์โหลดได้แล้ว หน้า demo page ก็เสร็จแล้ว ส่วน documentation กำลังปั่นอยู่ คาดว่าจะเสร็จในวันสองวันนี้
My Google PageRanks, Again
รู้สึกว่า Google จะอัพเดต PageRank อีกรอบแล้ว คราวนี้มีการเปลี่ยนแปลงทั้งขึ้นและลง ตามนี้
suksit.com
PR4 แล้ววว คาดว่าได้อานิสงส์ backlink จาก drupal.org และธีมทั้งหลาย ถือว่าเป็น PR ที่มาจากน้ำพักน้ำแรงจริงๆ (ว่าเข้าไปนั่น) แต่ติดอยู่หน่อยตรง prchecker.info บอกว่าได้ PR3 แต่ที่อื่นเช็คแล้วเป็น PR4 หมด (เลยยึดเลขเยอะเป็นหลัก 555+)
suksit.in.th
หลังจากได้ PR3 มาอย่างงงๆ เมื่อตอนปีใหม่ ตอนนี้ลดเหลือ PR2 แล้ว xD ก็ตามนั้น เพราะเป็น tumblog รวมลิงค์ธรรมดา แถมไม่ค่อยได้อัพเดตอีกตะหาก
bombik.com
นี่ก็ได้อานิสงส์จาก Drupal อีกเช่นกัน ยกความดีความชอบให้โมดูล PathAuto และ Taxonomy เป็นหลัก :)
ทำหัวข้อรองเหมือนนิตยสาร ด้วย CCK
เห็นตามนิตยสารมักมีประโยคดึงดูดความสนใจคนอ่าน ไม่รู้เรียกว่าอะไร ขอเรียกว่า "หัวข้อรอง" (Subhead or Deck) แล้วกัน และเห็นที่ Vancouver Magazine Redesign ก็ทำใน Drupal เลยอยากมีบ้าง 555 ซึ่งก็สามารถเพิ่มเข้ามาใน node ได้ด้วย CCK และแก้ไขธีมนิดหน่อย ...
Drupal t("shirt")
ได้มาตั้งแต่ต้นเดือน วันนี้เพิ่งมีโอกาสใส่ อันนี้ด้านหน้า

แน่นอนว่าด้านหลังต้องเป็นลายนี้เท่านั้น

be zero
ผมเป็นคนที่ไม่ค่อยรู้เรื่องศาสนาปรัชญาสักเท่าไหร่นัก ศาสนาในโลกนี้ผมรู้จักไม่มาก และโดยมากที่รู้จักก็คล้ายๆกัน คือ มีสวรรค์ นรก ศาสนาต่างๆ สอนให้เราทำดีเพื่อไปสวรรค์ ส่วนศาสนาพุทธเราสอนว่า สวรรค์นั้นดี แต่เหนือกว่านั้นคือความว่าง คือเป็นศูนย์
- เวลาเรา config drupal ให้อัพไฟล์ได้ไม่จำกัด เราต้องใส่ค่าว่าไรคับ เอ๊า ศูนย์
- เวลาเป็นหนี้มีเงินติดลบ พอเคลียร์หนี้หมด ค่าเงินเป็นเท่าไหร่คับ เอ๊า ศูนย์
- พอมือถือพังใช้การไม่ได้เราถามหาใครคับ เอ๊า ศูนย์
เห็นไม๊คับ ว่าเป็นศูนย์นั้นดีแค่ไหน

ความคิดเห็นล่าสุด
16 hours 24 min ก่อน
1 วัน 1 ชั่วโมง ก่อน
1 วัน 12 hours ก่อน
1 วัน 12 hours ก่อน
1 วัน 18 hours ก่อน
1 วัน 23 hours ก่อน
3 days 11 hours ก่อน
3 days 12 hours ก่อน
3 days 23 hours ก่อน
3 days 23 hours ก่อน