ปรกติแล้วถ้าผมมีปัญหา ผมมักจะแก้ด้วยวิธีของตัวเอง ซึ่งบางครั้งก็ไม่ใช่วิธีที่ถูกต้องครับ

อย่างการใส่ plugins ให้ blog ก็เหมือนกัน ตอนแรกผมคิดว่าผมจะใช้ macromedia dreamweaver เป็น editor เพื่อเขียน plugins เองทั้งหมดครับ เพราะผมก็อยากให้ blog ผมนับคนออนไลน์ได้, นับคนกดคลิ๊กได้, ทำโพลได้ มีปฏิทินด้วย ฯลฯ

ผมก็เลยนั่งแกะโค้ดของ wordpress ไปเรื่อย ๆ แกะทุกฟังค์ชันเลย อย่าง blog นี้ผมก็ต้องแก้ฟังค์ชัน function get_pagenum_link($pagenum = 1) ในไฟล์ \wp-includes\template-functions-links.php เอง เพราะว่า host ที่ผมเช่า มันเป็นแบบ unlimited domain ซึ่งผมต้องปรับแต่งไฟล์ .htaccess ด้วยตัวเอง เขียน rewrite mod ด้วยตัวเอง ซึ่งการเปลี่ยนแปลงบิดเบือน host แบบนี้ มันทำให้ฟังค์ชันมาตรฐานที่ wordpress ให้มาใช้ไม่ได้ ผมก็เลยต้องเข้าไปแก้ให้เป็นแบบนี้

//Begin CH01
//$index = $_SERVER[‘PHP_SELF’];
$index = wp_specialchars($_SERVER[‘REQUEST_URI’]);
//End CH01

คงเป็นความโชคดีที่ผมเรียนมาทางการพัฒนาซอฟต์แวร์ จึงสามารถตรวจสอบ source code และเข้าไปแก้ source code เองได้¿ นี่ถ้าเป็นคนที่อยากทำ blog แล้วมีความรู้เรื่องการดาวน์โหลดเครื่องมือ คงลำบากน่าดู เพราะสุดท้ายคงติดที่การแก้ source code ด้วยตนเอง

ทีนี้ผมก็แกะ source code ไปเรื่อย ๆ ครับ แล้วก็วางแผนไว้เรียบร้อยเลย ว่าจะทำ change log ตรงไฟล์ไหนบ้าง แล้วจะเพิ่มฟิลด์ที่ table ไหนบ้าง รวมถึงจะเพิ่ม table ไหนบ้าง

นิดนึงนะ สำหรับคนที่ไม่รู้ คือว่า พวก open source อย่าง wordpress, phpBB, joomla¿พวกนี้ source code เค้าจะมีจุดที่ต้องแก้ไขหลายจุดมาก หากว่าเราคิดจะทำการปรับแต่งเพื่อเราเอง ดังนั้น เพื่อเป็นประโยชน์กับคนอื่นที่เขาก็อาจจะอยากได้ feature ของโปรแกรมแบบเดียวกับเราด้วย เราก็ควรทำสิ่งที่เรียกว่า change log ไว้ครับ เพื่อบอกว่าเราได้แก้อะไรไปแล้วบ้าง คนอื่นจะได้แก้ตาม

ยกตัวอย่างนะ เช่นว่า ถ้าเราแก้ในฟังค์ชันใด เราลบ เราเพิ่ม เราเปลี่ยนแปลงในบรรทัดใด คอลัมน์ใด เราก็บรรจุไว้ใน change log, เราทำอะไรกับ data dictionary จะเพิ่ม ลบ แก้ไข เราก็บอกเอาไว้ เพื่อให้คนอื่นแกะรอยตามเรา ก็จะได้ผลลัพท์เหมือนกับเรา แล้วจะได้เอาไปใช้ สบายใจแฮ

ขอบอกเลยครับว่าจากการที่ผมแกะ wordpress, phpBB, joomla มาพบว่า joomla แกะยากโคตร ๆ ที่สุดครับ แกะไปน้ำตาซึมไปเลย เพราะมันมี source code ถึง 449 ไฟล์ซึ่งยังไม่นับไฟล์¿xml

ต้องบอกว่า open source ที่สลับซับซ้อนและโหดร้ายที่สุดนอกจาก kernel linux แล้วก็ joomla นี่แหล่ะครับ

ทีนี้กลับมาคุยต่อครับเรื่องที่ผมแกะ wordpress คือจะบอกว่าพอทำ change log เรียบร้อย จะลงมือแก้แล้ว ปรากฎว่าผมไปเจอเว๊ป WordPress Plugins Database เข้าโดยบังเอิญในอินเตอร์เน็ตครับ ผมงี้แทบจะเขกกระโหลกตัวเองเลย เพราะถ้าผมหาเจอเร็วกว่านี้ ผมคงไม่ต้องมานั่งแกะ wordpress ทุกฟังค์ชัน แถมยังเสียเวลาทำ change log ไปอีกต่างหาก

ไอ้ของที่ผมอยากได้ มันมีคนทำไว้หมดแล้วนี่หว่า !!!! Don’t re-invent the wheel ครับ อาจารย์ผมตอนเรียนสอนไว้ “มีล้อแล้วไม่ต้องทำล้ออีก”

ผมเลยตั้งหน้าตั้งตาหา plugins ที่ตัวเองต้องการเลยครับ ไม่ทำมันแล้ว change log ก็ว่าจะหาไปเรื่อย ๆ ครับ ว่าจะเจอที่ต้องการหรือเปล่า ก็คิดไว้เหมือนกันนะว่าถ้าหาไม่เจอ ก็คงต้องวกกลับมาแกะ wordpress แล้วทำ change log เองอีกกระมัง

เพราะผมมันมีวิธีคิดและแก้ปัญหาไม่เหมือนชาวบ้านแต่ไหนแต่ไรแล้วนี่ 🙂

Related Posts

4 thoughts on “อยากใส่ plugins ให้ blog

  1. สวัสดีครับ พอดีผมเห็นบทความตัวนี้ เลยอยากจะถาม นิดหน่อยครับ
    คือผมมีปัญหาภาษาไทยกับ WordPress และ Themes ตัวนี้ครับ
    http://blog.eemachine.info (เว็บ)
    จะสังเกตุเห็นว่า Themes ตัวนี้มีปัญหาภาษาไทยใน firefox ครับ
    (ไม่มีปัญหาใน ie) ผมพอจะรู้ว่า ต้องแก้ที่ Stylesheet css หรือปล่าวครับ ?
    แต่อยากทราบคำแนะนำครับ

    ผมพึ่งเริ่มต้นกับ WordPress ไม่นานครับ เพราะยอมแพ้
    เขียนเองทั้งหมดไม่ไหว ผมพึ่งเริ่มศึกษา php ด้วยตัวเอง ประมาณ 3 เดือนได้ครับ
    ปกติผมทำแต่งานกราฟฟิกบนเว็บไซท์ ที่เขียนได้ ก็
    php อัพโหลดภาพ สมุดเยี่ยม แต่ ผมเขียน php blog ไม่ไหว ครับ
    เพราะมีปัญหา เรื่องวันที่ กับ เวลา
    ยังไงก็ขอบคุณครับ

  2. เอ ดูแล้วก็ไม่มีปัญหาอะไรนะครับ แค่เท่าที่เห็นก็คือ เว๊ปคุณหมีเข้ารหัสเป็นแบบ “Windows-874” น่ะครับ

    จริง ๆ แล้วเรื่องการเข้ารหัสที่หน้าเว๊ปเป็นเรื่องสำคัญมากเลยนะครับ โดยวิวัฒนาการของการเข้ารหัสของภาษาไทยจะเริ่มจาก

    1. Windows-874
    2. TIS-620
    3. UTF-8

    ผมขอแนะนำให้คุณหมีใช้ UTF-8 ในการเข้ารหัสครับ แต่มันมีข้อเสียนะ ก็คือว่าคุณหมีต้องทำแบบผมอ่ะ ผมไม่พิมพ์ภาษาไทยในส่วนที่ผมต้องการให้แสดงผลใส่ในโค้ดเลย ผมบรรจุข้อความภาษาไทยซึ่งเข้ารหัสเป็น UTF-8 เรียบร้อยแล้วไว้ในฐานข้อมูลน่ะครับ ซึ่ง Table ที่บรรจุก็กำหนดฟิลด์ให้เป็น utf8_general_ci จากนั้นผมก็สร้าง class ขึ้นมาเพื่อมาใช้จัดการอ่านเขียนข้อความจาก Table ดังกล่าวอีกที

    ซึ่งวิธีนี้จะทำให้การแสดงผล การเข้ารหัสไม่มีปัญหาเลย เพียงแต่จะขัดความรู้สึกของพวกเรา เพราะเราคุ้นเคยกับการพิมพ์ภาษาไทยใส่เป็นค่าคงที่ไว้ใน source code อ่ะครับ

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

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *