อันนี้ออกจะยุ่งๆหน่อย
เมนวลเองจากไฟล์แพ็คเกจเมื่อโหลดม็อดมาจากเว็บ SMF ม็อดนั้นจะถูกบีบอัดในรูปแบบของไฟล์ .zip หรือ .tar.gz
แตกไฟล์ได้ด้วยโปรแกรม winzip winrar
และบางทีก็อาจจะมีซิปซ้อนซิป 555+ คือบีบมา 2 รอบ เพื่อให้ขนาดม็อดต้นฉบับน้อยลง
ทีนี้ลองดูว่าแตกไฟล์ม็อดออกมาแล้วจะเจออะไร แล้วจะเมนวลยังไง
ยกตัวอย่าง
http://custom.simplemachines.org/mods/index.php?mod=1295เชาท์บ็อกอย่างที่จัสต์ฯ ใช้อยู่นี้
ไฟล์ม็อดที่ดาวน์โหลดมา SMFPacks_Shoutbox.zip
แตกไฟล์ออกมาจะได้ตามรูปแนบที่ 1
package-info.xml (ม็อดเก่าๆ จะนามสกุล .mod ไม่ต้องสนใจมัน การทำงานมันก็ครือๆกัน เปิดด้วยอีดิตพลัส ก็เห็นไส้ข้างในเหมือนกัน)
หลักๆเลยก็เป็นไฟล์ที่ใช้แปรชุดคำสั่งให้ม็อดทำงานตามลำดับ
เช่น <install for="1.1-1.1.99">
นั่นหมายถึงม็อดตัวนี้สามารรถติดตั้งกับเวอร์ชัน 1.1.13 ได้
ทั้งนี้บางม็อดอาจจะจำกัดเวอร์ชัน ทำให้ไม่สามารถติดตั้งแบบออโตตแพคเกจได้ เพราะเวอร์ชันจะถูกอ่านเป็นลำดับแรก
เราก็สามารถมาแก้เลขนี้ให้เข้ากับเวอร์ชันของเราได้ ยกเย้นกรณี 1.1.* ข้ามไป 2.0.* ไม่สามารถทำได้
ในไฟล์นี้ยังมีคำสั่งต่อเนื่องคือ ติดตั้ง ย้ายไฟล์ ถอนการติดตั้ง ลบไฟล์
readme.txt
ชี้แจงรายละเอียดของม็อด หรืออาจจะชี้แจงลิขสิทธิ์
จะแสดงผลตอนติดตั้งออโตแพ็คเกจ ถ้าเมนวลก็แทบจะมองข้ามไฟล์นี้ได้เลย
โดยสรุป package-info.xml ไฟล์นี้เป็นไฟล์ที่คนเมนวลควรอ่านเป็นไฟล์แรกสุด
เพราะเขาจะบอกว่าให้ทำอะไร ให้ย้ายไฟล์อะไร เป็นลำดับขั้นตอน
smf-2.0.x_install.php
smf-1.1.x_install.php
ไฟล์เพิ่มเติมแก้ไขฐานข้อมูล
Themes อัพไฟล์ข้างในไปโฟลเดอร์ Themes
Sources_1.1.x อัพไฟล์ข้างในไปโฟลเดอร์ Sources
smf-1.1.x_install.xml
smf-2.0.x_install.xml
ไฟล์คำสั่งที่ใช้ติดตั้งจริง ในไฟล์นี้จะบอกว่า ให้แก้ไฟล์ไหน อย่างไร
ซึ่งถ้าเราเมนวลเราก็ต้องมาอ่านตามไฟล์นี้
ทีนี้ลองมาเมนวลจริงกันดู
ข้อควรจดจำ
การเมนวลตามวิธีของเว็บ parse เขาบอกบีฟอร์ เราก็วางก่อน เขาบอกอาฟเตอร์ เราก็วางหลัง
แต่การเมนวลจากไฟล์เอ็กเอมแอลนี้ ให้จำง่ายๆว่า ทำตรงข้ามกับคำสั่ง
ไฟล์บอก บีฟอร์ให้เราเอาไปไว้ข้างหลัง ไฟล์บอกอาฟเตอร์ ให้เราเอาไปไว้ข้างหน้า
ทำไมเป็นแบบนั้น? เพราะที่ไฟล์ให้บีฟอร์ คือให้เอาคำที่ค้นหานั้นไว้บีฟอร์ (ถ้า งง ก็ข้ามมันไปก่อน คนอธิบายก็อธิบายเอง งง เอง เหมือนกัน)
ตัวอย่างการเมนวลจริงม็อด Shoutboxจากไฟล์นี้ smf-1.1.x_install.xml ตัวติดตั้งสำหรับเวอร์ชัน 1.1.*
<file name="$boarddir/index.php">
<operation>
<search position="before"><![CDATA[require_once($sourcedir . '/Security.php');]]></search>
<add><![CDATA[
// Hack's Park Shoutbox -->
require_once($sourcedir . '/Subs-Shoutbox.php');
// <-- Hack's Park Shoutbox]]></add>
</operation>
<file name="$boarddir/index.php">
ให้แก้ไขไฟล์ index.php ของบอร์ด
<search position="before"><![CDATA[require_once($sourcedir . '/Security.php');]]></search>
ให้ค้นหาข้อความนี้ require_once($sourcedir . '/Security.php');
แล้วเอาข้อความใน <add><![CDATA[ ............ ]]></add> มาต่อท้าย
สีน้ำเงิน นั่นคือคำสั่งของไฟล์ xml
เวลาค้นหา ก็อปปี้ วาง ห้ามก็อปอักขระสีน้ำเงิน ก็อบไปวางก็เออเรอร์ เป็นอักขระส่วนเกินที่ไม่เกี่ยวกับโค๊ดพีเอชพี
ทำไล่แบบนี้ไำปเรื่อยๆ ทีละไฟล์ จนเสร็จสมบูรณ์
ถ้าเจอไฟล์นี้
<file name="$languagedir/Modifications.english.php">
ก็อย่างที่ได้อธิบายไปแล้วเรื่องไฟล์ภาษา ใช้ธีมไหน ทำธีมนั้น ภาษาไทย แก้ที่ไฟล์ไทย
หลังจากจัดการตามไฟล์ smf-1.1.x_install.xml เส็จแล้ว ให้กลับไปดูที่ไฟล์ package-info.xml ว่าจะต้องทำอะไรอีกบ้าง
ตัวอย่าง
<require-dir name="Themes" destination="$boarddir" /> ย้ายไฟล์ในโฟลเดอร์ Themes ขึ้นโฮสต์โฟลเดอร์ Themes
<require-file name="Sources_1.1.x/Subs-Shoutbox.php" destination="$sourcedir" /> ย้ายไฟล์ Subs-Shoutbox.php ขึ้นโฮสต์ในโฟลเดอร์ source
<code>smf-1.1.x_install.php</code>
ให้รันไฟล์เพื่อเพิ่มเติมแก้ไขฐานข้อมูล
วิธีจัดการได้อธิบายไปแล้วก่อนหน้านี้
</install>
เป็นอันจบขั้นตอนติดตั้ง
พวกอัพเกรด-อันอินสตอล ไม่ต้องไปสนมัน เหอๆๆ
------------------------------------------------------------------
แล้วถ้าไปเจอม็อดแบบรูปแนบที่ 2 ล่ะ
เปิดไฟล์ english.xml
เขาจะให้แก้ไฟล์ <file name="$languagedir/Modifications.english.php">
เราก็แก้ทั้งไฟล์อังกฤษ ไฟล์ไทย
แค่นี้ภาษาก็สมบูรณ์แล้ว