Joomla Articles
การแปลภาษาสำหรับ JavaScript
แก้ไขล่าสุด ใน วันจันทร์ที่ 06 กุมภาพันธ์ 2555 เวลา 00:26 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันอาทิตย์ที่ 05 กุมภาพันธ์ 2555 เวลา 23:57 น.
หลังจากที่ผมไม่ได้ปรับปรุงเพิ่มเติมบทความมาซักพัก วันนี้เลยขอแก้ตัวด้วยบทความสั้นๆ สำหรับนักพัฒนาจุมล่า 1.6+ ทั้งหลายนั่นคือการแปลข้อความใน JavaScript ของเรา ปกติการเขียนคอมโพเนนท์เพื่อรองรับการใช้งานหลายๆ ภาษาเรามักจะเจอปัญหานี้ว่า กรณีเราจะให้แสดงภาษาใน JavaScript เป็นภาษาของผู้ใช้ในขณะนั้นทำอย่างไร ปกติเราอาจจะไม่ค่อยได้เขียนในลักษณะนี้มากนัก หากเราเขียนเพื่อใช้งานในองค์กร แต่หากเราเขียน open source และเราต้องการให้รองรับการใช้งานหลายๆ ภาษาเราจะเจอปัญหานี้
ตัวอย่างการใช้งาน
ตัวอย่างการใช้งานเช่นในโค้ด PHP ของจุมล่าเรามีข้อความ คือ COM_REGONLINE_DEMO_TEXT ที่เราต้องการแสดงผลในภาษาอังกฤษว่า "Test Text" ในภาษาไทยว่า "ข้อความทดสอบ" ถ้าใน PHP เราก็แค่เอาข้อความนี้แสดงว่าฟังก์ชั้น JText::_() คือ JText::_('COM_REGONLINE_DEMO_TEXT') แล้วก็เอาข้อความนี้ไปแปลในไฟล์ภาษาคือ
ภาษาอังกฤษ ไฟล์ en-GB.com_regonline.ini
COM_REGONLINE_DEMO_TEXT="Test Text"
ภาษาไทย ไฟล์ th-TH.com_regonline.ini
COM_REGONLINE_DEMO_TEXT="ข้อความทดสอบ"
แต่ข้อความเหล่านี้ยังไม่สามารถใช้งานใน JavaScript ได้นะครับ เช่นเราต้องการแจ้งเตือนผู้ใช้ด้วยคำสั่ง alert() ใน JavaScript เราก็ไม่สามารถทำได้เหมือนกับใน PHP แต่ใน Joomla รุ่น 1.6 เป็นต้นมาตัวจุมล่าจะมีฟังก์ชัน JavaScript ชื่อ Joomla.JText._() ให้เราใช้งานได้ แต่เราต้องเอาข้อความเหล่านี้ใส่ใน Strings ของ JavaScript ก่อนโดยใช้ JText::script() ดังนั้นขั้นตอนการทำก็คือ
ประโยชน์ของ Discover ใน Joomla! 1.6+ สำหรับ Programmer
แก้ไขล่าสุด ใน วันเสาร์ที่ 03 ธันวาคม 2554 เวลา 20:25 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันอังคารที่ 22 พฤศจิกายน 2554 เวลา 00:00 น.
ใน Joomla! ตั้งแต่รุ่น 1.6 ขึ้นไปในส่วนของการจัดการการติดตั้งมีคุณสมบัติหรือ feature ใหม่เพิ่มขึ้นมานั่นก็คือ Discover ซึ่งทำให้คุณสามารถทำการติดตั้ง Joomla! extension ได้โดยไม่จำเป็นต้องติดตั้งจากไฟล์ zip โดย Joomla! จะทำการค้นหาใน folder แล้วทำการติดตั้งให้เองหากเจอไฟล์ xml ที่ใช้สำหรับการติดตั้ง สำหรับการใช้งานสำหรับ webmaster ก็อาจจะใช้ประโยชน์ในกรณีที่การติดตั้งผ่านไฟล์ zip อาจจะใช้เวลานานเนื่องจากไฟล์มีขนาดใหญ่ ดังนั้นการ FTP ไฟล์ที่ผ่านการ unzip แล้วไปไว้บน server แล้วค่อยใช้การ discover จะทำให้แก้ปัญหานี้ได้ครับ แต่ในวันนี้เราจะมาดูการใช้ Discover ในตอนพัฒนา component ของเรากันครับ
อ่านข้อมูลเพิ่ม: ประโยชน์ของ Discover ใน Joomla! 1.6+ สำหรับ Programmer
มีอะไรใหม่ใน Joomla! 1.6 Controller
แก้ไขล่าสุด ใน วันอาทิตย์ที่ 13 กุมภาพันธ์ 2554 เวลา 03:25 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันจันทร์ที่ 07 กุมภาพันธ์ 2554 เวลา 09:44 น.
หลังจากที่ Joomla! 1.6 รุ่น Stable ได้ออกมาแล้วอย่างเป็นทางการ ก็เริ่มมีเสียงเรียกร้องจากกลุ่มผู้ใช้ JONGman สำหรับการใช้งานบน Joomla! 1.6 จึงได้เริ่มหันมา port ตัว JONGman 1.0 มาเป็น JONGman 2.0 สำหรับ Joomla! 1.6 ซึ่งก็ได้สัมผัสการใช้งานจริงๆ ถึงการปรับปรุงในส่วนของ MVC Pattern ทีใช้ในการพัฒนา extension สำหรับ Joomla! 1.6 หลังจากที่ก่อนๆ เคยได้แค่ฟังเขาเล่าว่าในทีม Joomla! Bug Squad (JBS) ซึ่งก็มี Concept หลายๆอย่างที่มีการเปลี่ยนแปลงให้มีรูปแบบมากขึ้น ซึ่งข้อมูลเหล่านี้บางส่วนได้จาก Lead Team Member ของ Joomla! บางส่วนก็จากการศึกษา code ของตัว Component ต่างๆ แต่ใน Joomla! Component ต่างๆ ยังเป็นแบบพื้นๆ ยังไม่ค่อยเห็นการประยุกต์ใช้งานมากเท่าไร
ในส่วนของ Component ต่างๆ ใน Joomla! 1.6 จะได้รับการปรับปรุงให้เป็นแบบ MVC มากขึ้น โดย Component ตัวอย่างที่ใช้เป็นรูปแบบได้ก็คือ Banners และ WebLinks สำหรับในบทความนี้ผมจะพูดถึงการเปลี่ยนแปลงรูปแบบในส่วนของ Controller และ Component Dispatcher กัน
Special Page Redirect
แก้ไขล่าสุด ใน วันอังคารที่ 07 ธันวาคม 2553 เวลา 13:14 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันอังคารที่ 07 ธันวาคม 2553 เวลา 10:25 น.
สวัสดีครับ ในช่วงก่อนวันที่ 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 เอง
พัฒนาระบบลงทะเบียน Online ตอนที่ 3
แก้ไขล่าสุด ใน วันศุกร์ที่ 24 กันยายน 2553 เวลา 15:55 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันพุธที่ 22 กันยายน 2553 เวลา 23:26 น.
สวัสดีครับ กลับมาอีกครั้งครับสำหรับบทความชุดการพัฒนาระบบลงทะเบียน Online หลังจากมีตอนที่ 1 และตอนที่ 2 ออกมา ก็เริ่มมีเสียงเรียกร้องขอตอนที่ 3 จริงๆ บอกตรงๆ ว่าผู้เขียนก็หมดกำลังใจครับ ไม่ค่อยแน่ใจว่าสิ่งที่ตัวเองทำมันจะมีประโยชน์หรือเปล่า หรือว่าเมืองไทยจะไม่ค่อยมีคนพัฒนา Joomla! extension หรือเปล่า ก็เลยหันไปจับตลาดเมืองนอก เผื่อว่าจะได้ประโยชน์กว่า ก็พอดีเห็นมีเสียงเรียกร้องเข้ามาบ้างก็ขอเริ่มตอนที่ 3 แล้วกันนะครับ
ครับ ในตอนที่แล้วเราได้ base controller และ dispatcher มาแล้ว ทีนี้เราจะมาดู code ในส่วนของ controller ตัวแรกคือ controller ที่ใช้สำหรับการแสดงรายการของกำหนดการฝึกอบรม หรือ schedules ครับ โดยมันจะแสดงรายการกำหนดการฝึกอบรมที่เปิดรับสมัคร หรือยังไม่เลยกำหนดการฝึกอบรม แต่อาจจะเต็มแล้วก็ได้นะครับ โดยใน code ตอนนี้จะมีแค่ส่วนของการแสดงรายการก่อนครับ ดังรูปข้างล่าง

บรรทัดที่ 7 Class ของเราตั้งชื่อตาม [Component]Controller[Entity] นะครับ ในที่นี้ Entity เราคือ Schedules ซึ่งในการพัฒนาช่วงหลังๆ ผู้เขียนยุบรวมไปอยู่กับ Schedule
บรรทัดที่ 11 และ 18 เราทำการกำหนดค่าตัวแปร view ใน URL โดยใช้ method ของ JRequest ซึ่งเป็นชื่อ view ที่ parent controller จะทำการอ่านค่าจาก JRequest::getVar(...) เพื่อทำการสร้าง object ของ model และ view และทำการ assign model ให้กับ view จากนั้นเรียก method display ของ view ซึ่งจะทำการ load default layout
บทความ อื่นๆ ...
หน้่าที่ื 1 จาก 2 หน้า


