อันที่จริงแล้ว ผมเองยังใหม่มากต่อ java และ java scripts เรียกได้ว่าจับมายังไม่ทันถึงปี กำลังเรียนพื้นฐานแบบเอาเป็นเอาตาย เลยขอเอาประสบการณ์เล็ก ๆ ในการใส่ จาวาบน phpNUKE มาให้ทุกท่านดู เนื่องจากเท่าที่ได้ดูมา ยังไม่มีใครสอนอย่างจริง ๆ อาจเป็นเพราะไม่ทราบ หรืออุบเอาไว้ อันนี้ก็ไม่ว่ากัน แต่ความคันปากของผม จะช่วยให้หลาย ๆ ท่าน ที่ทำ java error แล้ว error อีกให้พอมองเห็น idea ได้
java และ java scripts เป็นคนละเรื่องนะครับ netscape เอา java scripts โดยเลียนแบบ java ของ SUN มา เพื่อใช้ออกแบบเวปเพจที่มีลักษณะ dynamic และมีการโต้ตอบกับผู้ใช้ได้ โดยเป็น client side scripts อันนี้จะขยายความเล็กน้อย
1.Server side scripts คือ scripts ที่มีการประมวลผลที่ server ก่อนจะส่งมายังเรา มีโปรแกรมอะไรบ้าง ถ้าใครไม่รู้ละเชยแย่ ก็PHPที่เรากำลังคลุกกับมันนี่ไง อื่น ๆ ก็ CGI,Perl,JSP,และ ASP ของค่าย microsoft ไงครับ
ข้อดีคือการทำงานไม่ขึ้นกับเบราเซอร์ ประมวลผลเสร็จก็ส่งมา ข้อเสียคือช้า ไม่ทันการและถ้ามีการประมวลผลหลาย ๆ อย่างบน server ก็อาจแย่ บางครั้ง บราวเซอร์ถึงต้องมี ปลั๊กอินมาช่วย บางทีปลั๊กอินปัจจุบันก็ติดมากับบราวเซอร์เลย
2.Client side script ก็คือ java scripts VBscriptsและ Dynamic HTML ที่เรากำลังจะพูดต่อไป ข้อดีของมันก็คือ เวลาเราโหลดมาทั้งสคริปต์ มันจะมาอยู่ที่เครื่องของเราและพร้อมที่จะทำงานได้ แบบทันที เพราะคุณสมบัติที่สำคัญอย่างหนึ่งของมันคือการทำงานตามอีเวนท์ เช่นการลากเมาส์ คลิกเมาส์ ไม่ต้องเสียเวลาเรียกไปเซอร์เวอร์ไปมา เป็นอินเตอร์แอคตีฟจริง ๆ
ข้อเสียที่สำคัญของมันคือเนื่องจากพึ่งเบราเซอร์ ดังนั้นเบราเซอร์ต่างกันและต่างเวอร์ชั่น จะเห็นต่างกัน เช่น ใน เนตสเคป กับในวินโดวส์ เป็นต้น
ก่อนที่จะออกนอกเรื่องไปอีกนิด ผมขอบอก trickการใช้ javascripts และ DHTML ใน phpNUKE
ข้อแรก สำคัญมากก็คือ phpNUKE เองก็มีโคดเยอะ และโหลดนานพอควร การใส่ java ก็เหมือนการเพิ่มโคดมาอีก ดังนั้นต้องระวังนานจนทนไม่ได้ :D
ข้อสอง ใน phpNUKE เอง มีการใช้ java อยู่ในบางจุดและเจ้ากรรมที่เวลาเราเรียก header ของ NUKE ทุกครั้ง มันดันเป็น โปรแกรม php ซึ่งการใช้ tag java จะเขียนแบบธรรมดาไม่ได้บน php ต้องมา modify กันอีก ใครมีโคดยาว ๆ ที่จะต้องแทรกอยู่ใน
หน้ามืดเลยครับ ทั้งนี้ การแทรกจาวาใน phpNUKE จะใส่ได้สองที่คือ header.php และ include/myheader.php ก็เป็น php ทั้งคู่
ข้อสาม จากการที่ phpNUKE มีการเรียกใช้ จาวาอยู่แล้ว พอเราใส่จาวาอื่น ๆ เข้าไปอีก จะเจอปัญหาที่สำคัญใหญ่หลวงทันทีคือ
...1.Confilct ครับ คือการเรียก event ต่างกันแต่ชนกัน เช่น onload window ที่ให้ effect ต่าง ๆ ขอให้ดูใน file includes/javascripts.php ว่ามีอะไรอยู่แล้วบ้าง นั่นแหละครับ ถ้าเรียกซ้อนจะชนกัน เกิด error ทันที แต่ทางแก้มีนะครับ ไว้ในตอนต่อไปจะเสนอแนวทางแก้ ซึ่งนักเขียน จาวา จะต้องรู้วิธี แต่ประยุกต์กับ NUKE ต้องออกแรงอีกนิด
...2.จะใส่ จาวาไว้ตรงไหนดี นี่ก็ปวดหัว เพราะไม่มีใครอยากแก้ header.php ทุกครั้งที่ใส่ java คงต้องลองดู ที่ที่ผมใส่ java scripts ได้ โดยไม่ค่อยมีปัญหามาก ย้ำ"ไม่ค่อย ไม่ได้หมายถึงว่าไม่มีปัญหานะครับ" และขอย้ำว่า ใน theme ต่างกัน ผลที่ได้ก็ต่างกัน บางtheme เกิด error โดยไม่ทราบอะไรเกิดขึ้น ผมเลยเลือก theme น้อยที่สุด อย่าง SFX ที่ออกแบบง่ายที่สุดโดยมี header.html แยกออกมาต่างหากจาก theme.php
ตรงส่วนท้ายของ header.htmlใน theme ของเรา ตัวอย่างใน thaihealth ตรงตัวบอกเวลาผู้ชมมาเยี่ยมล่าสุด
ตรง sideblock ได้บ้าง ไม่ได้บ้างตัวอย่างที่ thaihealth ก็คือเวลาทั่วโลก กับการเรียกหัวข้อข่าวมาดูโดยการใช้ java XML
ตรง center block ก็เช่นกันบางทีได้
ในเนื้อหาส่วน content อันนี้สามารถ copy java code มาจากแหล่งไหน แล้วลองใส่ใน content ได้เลยครับ ที่ thaihealth ส่วนที่เป็น เครื่องมือเพื่อสุขภาพนี่ก็ java ทั้งนั้น
ตรง footer.php อันนี้ผมใส่ส่วนที่เป็นการเรียก effect ตัวลิงค์แบบเปลี่ยนสี หรือกระพริบ ที่มีให้ดาวน์โหลดที่นี่ ลองดูความแตกต่าง blink จะอยู่ที่ Thaihealth ส่วน fade จะอยู่ที่ Thaihealth clinic
อีกส่วนหนึ่งที่ใส่ได้ดีและไม่มี side effect เท่าไร ก็คือในส่วน foot message เวลาเราเรียก admin-->preference น่ะแหละครับ จะมี foot message 3 แถว ผมใส่ แถวละอัน ลองเดาสิว่าเป็นอะไรบ้าง
ครับ หมดเวลาทำงานขอจบวันนี้ก่อน วันหน้าว่ากันถึงทำอย่างไรจะเอา java ใส่ php อันนี้ไม่ยาก ลองดูลักษณะการเขียนของเขาที่ includes/javascripts.php ก็ได้
Note: ขอบคุณที่ติดตาม อย่าลืมให้คะแนนและคลิกที่ thaitop 100 ให้ผมได้รับใช้คุณนาน ๆ นะครับ