ผมเคยประสบปัญหาเรื่องที่ผมอัป Mods แล้วไม่ผ่าน จนปัจจุบันผมก็ยังไม่รู้ว่ามันเกิดจากอะไรเหมือนกันครับ แต่ผมเคยแวะไปถามที่บอร์ด Support ของ SimpleMachines มา เค้าบอกว่าให้ลงแบบ Manual ผมเลยไปตามหาบทความมาและประสบความสมเร็จครับ เลยอยากให้ทุกๆท่านที่ไม่เข้าใจ ได้ลองทำกันดูครับ ^^
*บอกกันก่อน1* บทความที่แปลนี้ ผมจะแปลในลักษณะบอกการทำงานของ Mods นะครับ
*บอกกันก่อน2* ผมเป็นคนอ่อนภาษาอังกฤษครับ ถ้าผมผิดพลาดตรงๆไหน หรือแปลไม่สวย ต้องขออภัยไว้ ณ ที่นี้ด้วยครับ
*บอกกันก่อน3* บทความนี้อนุญาติให้เผยแพร่ได้ แต่ต้องลิ้งค์มาที่บทความนี้ หรือ ลิ้งค์เข้าเว็บโซนไอทีด้วยครับ
เริ่มบทความ....
เนื่องจาก Mods มีลักษณะการทำงานโดยการที่จะเพิ่มหรือแทน code ชนิด php เข้าไปในไฟล์พื้นฐานของ SMF โดยการทำงานครั้งนี้จะใช้ไฟล์ .mod และ .xml ทำให้ผู้สร้าง Mods หลายคน ไม่สามารถสร้าง Mods นั้นๆให้ทำงานไปพร้อมๆกับธีมอื่นที่ไม่ใช่พื้นฐานได้ บทความนี้จึงสร้างมาเพื่อแก้ไขการทำงานนั้นๆให้เข้ากับธีมต่างๆได้
ขั้นตอนแรก ให้แตกไฟล์ Mods ที่อัดเป็นไฟล์ชนิดอื่นๆออกมาก่อน จะพบว่ามีไฟล์อยู่หลากหลายใน zip นั้นๆ
ขั้นที่สอง มองหาไฟล์ที่เป็นชื่อ Mods นั้นๆ ยกตัวอย่าง "modname.xml" หรือ "modname.mod" ครับ
ถ้าไฟล์นั้นเป็นชื่อไฟล์ .xml ให้ข้ามไปอ่านที่ "การทำงานสำหรับ .xml" เลยครับ
การทำงานสำหรับ .mod
1.เปิดไฟล์ .mod ด้วย Text Editor เช่น EditPlus ครับ
2.มองหาคำว่า <edit file>...</edit file> ตรง ... เป็นไฟล์อะไร ก็คือจะแก้ไขไฟล์นั้นๆครับ
3.ให้มองหาคำว่า <search for>...</search for> ตรง ... คือว่าตัว Mods ตัวนี้จะแก้ไขไฟล์ตรงไหนครับ
4.ให้มองหาอีกละ คำว่า <add after>...</add after>, <add before>...</add before> ,<replace>...</replace>
ความหมายเหมือนในวงเลยครับ คือ ใส่ชุดคำสั่งที่มี ตรง ... หลัง,ก่อน,แทน ตามลำดับครับ
ยกตัวอย่าง
โค๊ด:
<edit file>
Themes/default/Display.template.php
</edit file>
<search>
// Show the anchor for the top and for the first message. If the first message is new, say so.
</search>
<replace>
global $bar_exps, $bar_posts;
// Show the anchor for the top and for the first message. If the first message is new, say so.
</replace>
หมายความว่า
แก้ไขไฟล์
โค๊ด:
Themes/default/Display.template.php
ให้หาว่า
โค๊ด:
// Show the anchor for the top and for the first message. If the first message is new, say so.
และเอาเจ้านี้แทนทีครับ
โค๊ด:
global $bar_exps, $bar_posts;
// Show the anchor for the top and for the first message. If the first message is new, say so.
พอเข้าใจมากขึ้นหรือยังครับ
ปล. หาชุดคำสั่ง์ใช้ Ctrl+F อะครับ
การทำงานสำหรับ .xml
1.เปิดไฟล์ .xml ด้วย Text Editor เช่น EditPlus ครับ
2.มองหาคำว่า <file name="..."> ตรง ... เป็นไฟล์อะไร ก็คือจะแก้ไขไฟล์นั้นๆครับ
2.ดู <operation>...</operation> หมายถึงสั่งงานให้ทำอะไรบ้างครับ ... คือสิ่งที่สั่งครับ
3.ให้มองหาคำว่า <search position="...1">...2</search> ตรง ...1 คือว่าต้องทำอะไร ส่วนตรง ...2 นั้นคือให้หาครับ
ในไฟล์ .xml <search position="...1"> ตรง ...1 จะไม่ธรรมดาครับ คือว่า
ถ้าสั่งว่า before หมายความว่าให้ใส่คำสั่ง หลัง ที่ให้หาครับ
ถ้าสั่งว่า after หมายความว่าให้ใส่คำสั่ง ก่อน ที่ให้หาครับ
ถ้าสั่งว่า end หมายความว่าให้ใส่คำสั่ง หลังสุด ขอไฟล์ครับ
ถ้าสั่งว่า replace หมายความว่าให้ใส่คำสั่ง แทน ที่ให้หาครับ
4.เสร็จแล้วจะมีคำสั่ง
<add><![CDATA[...]]></add>
ตรง ... คือใส่ตามคำสั่งด้านบนครับ
ยกตัวอย่าง
โค๊ด:
<file name="$themedir/Display.template.php">
<operation>
<search position="replace"><![CDATA[
// Show the anchor for the top and for the first message. If the first message is new, say so.
]]></search>
<add><![CDATA[
global $bar_exps, $bar_posts;
// Show the anchor for the top and for the first message. If the first message is new, say so.
]]></add>
</operation>
</file>
หมายความว่าให้เปิดไฟล์
โค๊ด:
Themes/default/Display.template.php
ให้หาว่า
โค๊ด:
// Show the anchor for the top and for the first message. If the first message is new, say so.
และเอาเจ้านี้แทนทีครับ
โค๊ด:
global $bar_exps, $bar_posts;
// Show the anchor for the top and for the first message. If the first message is new, say so.
credit :http_://www.zone-it.com/13972