เมื่อ BlogGang ไม่เพียงพอต่อความต้องการ

ในตอนแรกก่อนที่ผมจะมาแปะ Blog ไว้บนโฮสต์ตัวเอง ผมได้ด้อมๆมองๆ Blog Community ใหญ่ๆเอาไว้ก่อนแล้ว ซึ่งผมมีอยู่ 3 ตัวเลือกในหัว คือ WordPress.com , Exteen.com และ Bloggang.com ซึ่ง WordPress.com เป็นที่ที่ผมตัดทิ้งไปที่แรก เพราะผมไม่สามารถสมัครด้วย Username ประจำ (mrwhisper) ของผมได้ เหตุเกิดเพราะชื่อมันโหล มีฝรั่งเอาไปใช้แล้วนั่นเอง

มาดูที่ Exteen ซึ่งเป็น Blog Provider ที่เป็นที่นิยมในหมู่วัยรุ่นคนไทยในปัจจุบัน (ผมคิดว่าน่าจะเป็นอันดับ 1 ด้วยซ้ำ) และใช้เอ็นจิ้นที่มีลักษณะคล้ายกับ WordPress (ซึ่งผมก็ไม่แน่ใจว่า Core จริงๆของ Exteen คืออะไร) และสามารถตกแต่งบล็อกได้ค่อนข้างอิสระ แต่ว่าึบล็อกของผมค่อนข้างเกี่ยวกับ Software ซึ่งใน Exteen ไม่ค่อยเป็นที่นิยมสักเท่าไหร่นัก Exteen เลยตกขอบไปอีกอัน (แต่ผมก็เปิดเอาไว้เขียนเรื่องไร้สาระ)

มาดูที่สุดท้าย คือ Bloggang ที่ถ้าดูที่กลุ่มผู้ใช้ ก็ค่อนข้างจะตรงกับความต้องการมากที่สุด แต่ปัญหามันอยู่ที่ตัวระบบของ Bloggang ครับ ที่ไม่ค่อยถูกใจผมสักเท่าไหร่ แต่ในแง่ของการ Customize แล้ว ก็ค่อนข้างจะทำได้สูงอยู่มากทีเดียว เนื่องจากผู้ใช้สามารถใส่สคริปท์ตกแต่งได้เองในแท็ก <head> และยังใส่พารามิเตอร์เพิ่มเติมให้กับแท็ก <body> ได้อีกด้วย ซึ่งงานนี้ก็ได้ใส่ JavaScript กันสนุกเลยครับ

สุดท้ายแล้ว ผมก็เลือที่จะเอา Blog มาลงบนพื้นที่ของตัวเอง เพราะผมจะได้สามารถจัดการได้ทุกอย่าง และปรับแต่งได้ทุกส่วน (ถึงยังไง WordPress ที่ผมเลือกมาก็เป็น Opensource ครับ แก้ได้อิสระ) ซึ่ง Blog ที่ผมได้ไปเปิดไว้ที่ Bloggang ก็แทบไม่ได้โพสต์เลย แล้วทีนี้ปัญหายู่ที่ว่าเมื่อบล็อกผมมาอยู่กลางป่าแบบนี้ แล้วใครตามมาอ่าน(วะ) ทางแก้ปัญหาเลยเป็นการโพสต์หัวข้อไว้ที่ Bloggang แล้วให้มัน Redirect มาที่บล็อกของผม (เนื่องจากไม่อยากแปะเนื้อหาหลายทีครับ ขี้เกียจตามเช็ค feedback – -“) และด้วยที่ Bloggang สามารถแก้ไขเนื่อหาภายในแท็ก <head> ได้ ฮ่าๆ คราวนี้เสร็จโจรครับ

————— เนื้อหาต่อไปนี้ค่อนข้างจะเป็นแนว Tutorial โปรดใช้วิจารณญาณในการอ่าน —————

หลังจากที่ผมศึกษา JavaScript สักพักก่อนเอามาแก้บล็อก Bloggang สุดท้ายก็ได้ JavaScript ออกมาหน้าตาแบบนี้ครับ

<script type=”text/javascript”>
function queryStr(varname) {
__querystring = window.location.search.substring(1);
__explode = querystring.split(“&”);

__for (i=0;i<explode.length;i++) {
____value= explode[i].split(“=”);

____if (value[0] == varname) {
______return value[1];
____}
__}
}

var month = queryStr(“month”);
var group = queryStr(“group”);
var gblog = queryStr(“gblog”);
var date = queryStr(“date”);

if((month != undefined || date != undefined) && group != undefined && gblog != undefined){
__var link_tag = document.getElementById(“redirect_link”);
__var link = link_tag.innerHTML;
__window.location = link;
}else{
__window.location = “http://blog.oss-zone.co.cc”;
}
</script>

เนื่องจากว่าผมไม่รู้ว่า JavaScript รับค่าจาก QueryString อย่างไร ผมจึงเขียนฟังก์ชันสำหรับรับค่าจาก QueryString เองเสียเลย (โดยศึกษาจากโค๊ดผ่า QuerySting ออกจาก filename ของฝรั่งอีกทีหนึ่ง) จากนั้นก็เขียนตัวแปรให้รับค่าตัวแปรต่างๆ ที่จะใช้ยืนยันว่าไอ้นี่มันเป็นหน้ารวม Entries หรือหน้าแสดง Entry ซึ่งจากที่ผมสังเกตุ หน้ารวม Entries จะมีตัวแปรใน QueryString เพียงตัวเดียวเท่านั้น คืิอตัวแปร id ซึ่งมันก็มีในทุกๆหน้า เพื่อใช้บอกว่าบล็อกนี้เป้นของใคร ตัวแปร ID ก็เลยถูกโยนทิ้งไปโดยไม่ใยดี

จากนั้นลองเปิดหน้าแสดง Entry ก็พบว่ามีตัวแปรเข้ามา 3 ตัว คือ month , group และ gblog และอาจจะงง ว่า date มาจากไหน คือมันเหมือนมาแทน month ครับ เพราะผมคลิิกเข้า Entry จากหน้ารวม Entries แล้วมันใช้ตัวแปร date แทน month

จากนั้นก็ตรวจเช็คเงื่อนไำข ว่าตัวแปรแต่ละตัวถูกประกาศไว้หรือไม่ ถ้าไม่ได้ถูกประกาศ ก็ Redirect มาที่หน้าแรกของบล็อกปัจจุบัน แต่ถ้าถูกประกาศไว้ ก็แสดงว่านี่กำลังดู Entry อยู่ ก็จะไปเอา URL ของ Entry ที่ผมเขียนเอาไว้ในแท็ก span และกำหนด id ของแท็กไว้ว่า redirect_link ซึ่งก็คือตอนผมเขียนเนื้อหา Entry ผมลงเนื้อหาไว้เพียงแค่

Redirecting…
:: <span id=”redirect_link”> http://blog.oss-zone.co.cc/2008/10/when-bloggang-isnt-sufficient-for-me/</span>

ซึ่งอันที่จริง ส่วนสำคัญอยู่แค่ในแท็ก span ครับ ที่จะต้องเป็นลิงค์ปลายทาง ซึ่ง JavaScript จะถูกเขียนให้คิดไปเองว่าข้อความทั้งหมดภายในแท็ก span ที่กำหนด id ไว้เป็น redirect_link นั้นคือ URL ปลายทางที่จะพาเราไปนั่นเองครับ (คือถ้าเกิดใส่ข้อความแปลกๆลงไป ลิงค์ก็ตายได้ง่ายๆครับ)

จากนั้นก็บรู้ม กลายเป็นโกโก้ครันช์! เิอ้ย ไม่ใช่ ก็เป็นอย่างที่ทุกท่านที่เข้ามาทาง bloggang เห็นกัน ว่ามันพามาที่บล็อกแห่งนี้เลยครับ

————— จบเนื้อหาส่วนที่ดูเหมือน Tutorial —————

หลังจากที่ได้ทำ JavaScript ชุดนี้ไป ก็พบว่าภาษาที่อยู่ในโลกปีกกานั้นไม่ยากเลย (ภาษา C ก็ค่อนข้างจะง่ายนะ) ต่างกับภาษาที่ไม่มีปีกกา ที่ผมมักจะงงเป็นไก่ตาแตก – -” (แต่ทำไมคนส่วนใหญ่ชอบภาษาแบบไร้ปีกกามากกว่าก็ไม่ทราบ) และ Operator ต่างๆใน JavaScript ก็ค่อนข้างเหมือนกับ PHP ทำให้ไม่ค่อยยากที่จะเข้าใจ (แต่ Javascript นั้นมีการทำงานด้วย Method ที่คล้ายกับใน Visual Basic ซึ่งใน PHP จะใช้ทำงานเป็นฟังก์ชันเลย)

แต่ยังไง JavaScript ก็ค่อนข้างจะเป็นยาขมอยู่ดี อย่างน้อยก็ตอนนี้ เพราะผมยังงงกับ Method ที่มากมายมหาศาลของมัน ยังไงก้ต้องนั่งศึกษากันต่อไป ปวดกาบาล – -“

Posted by Jirayu

WordPress Developer ที่พอมีประสบการณ์อยู่บ้าง วันไหนไม่ทำงานอยู่บ้านว่างๆ ก็นั่งเลี้ยงแมว

Comments