อาทิตย์, พฤษภาคม 20, 2555
   
Text Size
ป้ายโฆษณา

Special Page Redirect

( 1 Vote )

สวัสดีครับ ในช่วงก่อนวันที่ 5 ธันวาคม ที่ผ่านมา ผมเองต้องทำการเปิดหน้าพิเศษเนื่องในโอกาสวันเฉลิมฯ ซึ่งปกติก็ใช้หลักการง่ายๆ คือสร้างหน้าถวายพระพรไว้ในชื่อ index.html แล้วก็ทำการกำหนดให้ site ของเราเรียกใช้งานตามลำดับคือ index.html index.php แบบที่เขียนไว้ในบทความเรื่องการทำหน้าแรกสำหรับโอกาสพิเศษ ซึ่งในตอนที่ตัว web site ไม่ได้ใช้ SEF ร่วมกับ mod_rewrite ทุกอย่างก็ทำงานได้ปกติครับ เนื่องจากว่าใน URL ของ site ปกติของ Joomla! ก็มี index.php เป็นส่วนประกอบ แต่หลังจากการเปิดใช้งาน mod_rewrite ก็ทำให้เวลาผู้ใช้ click ที่เมนู home มันจะกลับมาที่หน้าถวายพระอพรอีก เนื่องจาก URL ของ home คือ http://www.jts.co.th ไม่ใช่ http://www.jts.co.th/index.php แต่การเข้ามาครั้งแรกของผู้ใช้ก็ทำงานได้ถูกต้องนะครับ แต่ก็ยังมี bug เล็กๆ ที่รบกวนผู้ใช้มากพอควร ก็เลยต้องมาหาวิธีในการแก้ปัญหา

แบบนี้ต้องใช้ Plugin แน่นอน

พอดีในช่วงที่ผ่านมาต้องมีการเขียน plugin บ่อยมาก ก็เลยคืดว่าต้องแก้ปัญหาโดยใช้ Plugin ในกลุ่ม System ของ Joomla! เนื่องจากเราต้องการทำ Redirect จึงน่าจะใช้เหตุการณ์ onAfterInitialise เนื่องจากเป็นเหตุการณ์แรกๆ ที่เกิดในระบบ แต่สิ่งที่จะต้องทำคือเราต้อง redirect ผู้ใช้ในกรณีที่เขาเข้ามาครั้งแรก คึอ http://www.jts.co.th ซึ่งง่ายๆ ก็น่าจะใช้ HTTP_REFERER ได้ ลองเขียน plugin ลองบนเครื่องก็ได้ แต่พอเอาไปติดตั้งบน host จริงของบริษัท ปรากฏว่าไม่ทำงานครับ ลอง debug ดูก็คือตัวแปรนี้ไม่มีครับ ก็เลยดูใน PHP Manual ก็มีระบุว่าตัวแปรนี้ คือ $_SERVER['HTTP_REFERER'] อาจจะไม่มีในบาง Server ก็ได้ขึ้นอยู่กับ Config ของ Server เอง

 แสดงว่าวิธีการนี้ไม่สามารถใช้งานได้งั้นคงต้องหาวิธีการอื่นๆ ที่ง่ายกว่านี้

ลองทดสอบโดยใช้ SESSION

ถ้าอย่างนั้นคงต้องหาวิธีอื่น ก็เลยมานั่งนึกๆ ดู อา... SESSION ไงครับ ใช้ SESSION ทำได้ง่ายๆ ใน Joomla! ดังนั้นจึงได้ทำการทดสอบโดยการใช้ SESSION ครับก็ได้ผลดี ทีนี่มานึกๆ ดูเราจำเป็นต้องเปิดหน้าเหล่านี้ในโอกาสพิเศษตามระยะเวลา ดังนั้นจึงต้องมีการกำหนดวันที่เริ่มต้น วันที่สิ้นสุด ประกอบด้วยเพื่อจะได้ตั้งให้มันทำงานได้ล่วงหน้า ดังนั้นจึงเป็นที่มาของ plugin ชื่อ specialpage ในวันนี้ครับ

Plugin Parameters

สำหรับ parameter ของ plugin มีอยู่ 3 ตัวครับ หลักๆ ที่คิดได้ในตอนนี้  ก็มี 3 ตัวครับ ดังรูปด้านล่าง

Plugin Parameters

  • Redirect URL คือ เป็น url ของหน้าพิเศษที่เราต้องการให้ผู้ใช้เห็น โดยเราจะใส่ url ของ site ไว้ในหน้านี้ด้วย คือ http://www.jts.co.th/ โดยใช้ชื่อว่า Enter Site  เป็นต้น
  • Start Date เป็นวันที่เริ่มต้นที่จะให้ Plugin ทำงาน ถ้าไม่กำหนดตัว Plugin จะทำงานตลอด สำหรับการเยี่ยมชมหน้า Front End
  • End Date เป็นวันที่สิ้นสุดที่จะให้ Plugin ทำงาน ถ้าไม่กำหนดก็ได้ นั่นคือเราไม่ระบุวันสิ้นสุดการทำงาน

สำหรับการทำงานของตัว Plugin ในตอนนี้อย่างที่บอกไว้คือทำงานโดยใช้ Session ซึ่งจะมีอายุตามที่กำหนดใน Global Configuration ของ Joomla! เช่นอาจจะ 30 นาที เป็นต้น สำหรับข้อดีของการใช้ Plugin Special Page Redirect ก็คือในกรณีที่ผู้ใช้ Bookmark ตัวหน้าใดๆ ไว้เราก็ยังสามารถ Redirect ได้ แล้วเราก็สามารถตั้งการทำงานของ Plugin ได้ล่วงหน้า เช่นถัดจากวันที่ 5 ธันวาคม 2553 เราก็ตั้งให้เริ่มทำงานในวันที่ 12 สิงหาคม 2554 ได้เลย

หากท่านต้องการแนะนำ Features ของตัว plugin ก็ยินดีครับ เพราะการนำไปใช้งานจะได้หลากหลายมากขึ้น สำหรับการ Download ก็ที่นี่ครับ icon Special Page Redirect Plugin 1.0.1 RC1 (1.95 kB 2010-12-07 10:51:55) สวัสดีครับ

JoomlaWatch Stats 1.2.8b_12-dev by Matej Koval
Restore Default Settings