ผู้เขียน หัวข้อ: ลงม็อดทำอย่างไร (การลงม็อดแบบออโตแพ็คเกจ และแมนวล)  (อ่าน 1208 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ smf

  • [color=green][i]"ถ้าคุณไม่สามารถอธิบายอย่างง่ายๆ ให้คนอื่นเข้าใจได้แล้วล่ะก็ แสดงว่าคุณยังเข้าใจมันไม่ดีพอ"[/i][/color]
  • Administrator
  • Hero Member
  • *****
  • กระทู้: 1,368
  • พอยท์: 5
    • ดูรายละเอียด
    • pordoo.com
    • อีเมล์
ม็อด ใช้ทำอะไร
1. ใช้เพิ่มความสามารถบางประการที่บอร์ดไม่ได้ทำมาให้ หรือทำมาให้แต่ไม่เพียงพอ
 เช่น แอนติบ็อท-สแปม   การแสดงคลิปวีดีโอ  การปรับแต่งโฆษณา เป็นต้น
2. ใช้เปลี่ยนแปลงและเพิ่มสมรรถนะบางประการให้กับฟีเจอร์ที่มีอยู่แล้ว
เช่น เพิ่มเติมการตอบด่วน  การสมัครสมาชิก เป็นต้น

Modification  ม็อดนี้หาได้จากไหน
http://custom.simplemachines.org/mods/
เลือกดูตามลักษณะการใช้งานได้เลยว่าเราจะปรับแต่งอะไร 

วิธีลงม็อด มีอยู่ 2 วิธี  ออโตแพ็คเกจ กับ เมนวล
แบบออโตแพ็คเกจ
- ดาวน์โหลดม็อดที่ต้องการ  จากนั้นอัพขึ้นโฟลเดอร์แพ็คเกจ บนโฮสต์
- จากนั้นเปอมิสชั่น 777  ไฟล์หน้าแรก โฟลเดอร์ ธีม  ซอร์ส  แพ็คเกจ
- เข้าไปที่ผู้ดูแล / ศูนย์จัดการแพ็คเกจ / เลือกดูแพ็คเกจ
จะเจอม็อดที่เราอัพขึ้นไป  จากนั้นคลิกที่บันทึกม็อด

ลงม็อดแล้วไม่แสดงผล
* ม็อดบางตัวลงแล้วแสดงผลทันที นั่นก็เพราะไม่มีการปรับแต่งในส่วนที่แอดมินต้องไปเปิด หรือเลือกดำเนินการ
* ม็อดบางตัวลงแล้ว ต้องไปแก้ไฟล์ภาษาไทยด้วยถึงจะแสดงผล  วิธีสังเกตุ  ต้องดูว่าม็อดตัวนั้น แก้ไขไฟล์ภาษาอะไรบ้าง วิธีการดู


จากรูป เราจะเห็นว่า  ม็อดตัวนี้มีเวอร์ชันล่าสุด 1.0 
ม็อดตัวนี้ สนับสนุนเวอรืชัน 2.0 อาซี5   จากนั้นไปที่เมนูเลือกเวอร์ชันของบอร์ดเรา
จากนั้นคลิกที่parse


ลองดูส่วนท้ายๆ มักจะมีการแก้ภาษา  จากรูปเขาบอกให้ แก้ที่ไฟล์ม็อด.อิงลิส
เราก้ต้องไปแก้ที่ไฟล์  ม็อด.ไทย  (เพราะเราใช้ภาษาไทย)

* การจะดูว่าเปิดใช้งานหรือตั้งค่าม็อดได้จากไหน  ให้ดูจากลิงก์ม็อดต้นฉบับนั้นๆ เช่น custom.simplemachines.org/mods/index.php?mod=1623 External Link  อ่านเอาจาก Description: ม็อดตัวนี้แสดงผลทันที

อีกวิธีคือ ดูว่าม็อดนั้นๆแก้ไฟล์อะไรบ้าง  เช่น  แก้ไฟล์แอดมินเทมเพลท  แสดงว่าจะต้องมีเมนูเพิ่มมาในหน้าแอดมิน
หรือแก้ไฟล์เปอมิสชัน  แสดงว่าจะต้องมีการเพิ่มการอนุญาต



smf mod จะมีบางกรณีที่ไม่สามารถลงแบบอัตโนมัติได้
ก็จำเป็นต้องลงแบบเมนวล แกะโค๊ดเอง 
- บางทีอาจเพราะไม่สามารถเปอมิสชันไฟล์ 777 ได้  เมื่อ 777 ไม่ได้ ไฟล์ก็เขียนทับไม่ได้
- บางทีไฟล์เขียนได้ แต่ไม่สามารถแอดดาต้าเบสได้ (บางม็อดจำเป็นต้องแอด)
- บางบอร์ดยำโค๊ดไฟล์จนเละเทะ ม็อดแบบออโตไม่สามารถหาโค๊ดเพื่อเขียนทับได้
- ม็อดบางตัว แก้ไฟล์ภาษาเยอะ เพราะฉะนั้นถ้าเราใช้ภาษาไทย เมนวลเอายังจะง่ายกว่าเสียอีก



ตัวอย่างการแมนนวลม็อด Facebook Video BBC
http://custom.simplemachines.org/mods/index.php?mod=1548
เพิ่มปุ่มเฟสบุควีดีโอในหน้าตั้ง-ตอบกระทู้

- เลือกเวอร์ชันบอร์ดของตัวเอง  แล้ว parse 


- Readme (รูปแนบ2) เขาก็บอกแล้วอ่านเขาหน่อย อย่ามองข้าม เพราะบางทีในรีดมีหรือดีสสคริปชันเหล่านี้
จะบอกเราถึงวิธีเปิดใช้ม็อด  วิธีการนำไปใช้งานจริง


- File Edits   เริ่มกระบวนการแก้ไฟล์


ไฟล์  ./Sources/Subs.php
ค้นหา:
โค๊ด: [Select]
array(
'tag' => 'pre',
'before' => '<pre>',
'after' => '</pre>',
),

วางก่อนที่ค้นหา               
โค๊ด: [Select]
array(
'tag' => 'facebook',
'type' => 'unparsed_content',
'content' => '<object width="576" height="460" ><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="never" />

การแก้ไฟล์ตามแบบหน้า parse นี้ เขาบอกแบบไหนทำตามแบบนั้น
Add Before:  เอาไปไว้ก่อนหน้าที่ค้นหา
Replace   เอาไปวางทับ
Add After: เอาไปไว้หลังที่ค้นหา

แก้แบบนี้ทุกไฟล์ แล้วอัพขึ้นทับบนโฮสต์
* การแก้ไฟล์ควรโหลดไฟล์ล่าสุดจากบนโฮสต์ลงมาแก้
* การแก้ไฟล์ควรแก้ด้วยโปรแกรม EditPlus
* ./Themes/default/....   ใช้ธีมไหนไปแก้ธีมนั้น  ถ้าในธีมที่ใช้ไม่มีไฟล์นี้ ให้แก้ในธีมดีฟอลด์
* ./Themes/default/languages/Modifications.english.php  เหมือนกัน ใช้ธีมไหน ไปแก้ในธีมนั้น
ถ้าในธีมไม่มี ไปแก้ที่ดีฟอลด์  แต่.. ถ้าใช้ภาษาไทยก็ต้องแก้ที่ไฟล์ไทย Modifications.thai.php    Modifications.thai-utf8.php

หลังจากแก้ไฟล์แล้วลองดูด้านล่างสุด
File Operations
Move the included file "facebook.gif" to "./Themes/default/images/bbc".
ให้เ้ราก็อบไฟล์ facebook.gif ขึ้นไว้บนโฮสต์ตามโฟลเดอรืที่ระบุ
แล้ว facebook.gif จะเอามาจากไหน
ก็เอามาจากม็อดต้นฉบับ 


แค่นี้ม็อดก็สามารถใช้งานได้



อ่า..  แล้วถ้ามันบอกแบบนี้ล่ะ

Code
install/db_install_adkportal.php
This file should be able to execute standalone.

นั่นคือม็อดตัวนี้มีการทำงานที่เกี่ยวข้องกับฐานข้อมูล ไม่ว่าจะแก้ จะเพิ่มก็แล้วแต่
ตรงนี้เองที่ทำเอาคนม็อดมือใหม่หลายๆคน (ตัวเองด้วยแหละ) จอดสนิท ไปไม่เป็น
ที่จริงก็สามารถไปเพิ่มใน phpmyadmin ได้โดยตรง  แต่มือใหม่ทำไม่เป็นหนะ ให้ทำไง 55+

ยกตัวอย่าง  Adk Portal
http://custom.simplemachines.org/mods/index.php?mod=2255
ด้านล่างสุด
Code
install/db_install_adkportal.php
This file should be able to execute standalone.

ให้เราดาวน์โหลดม็อดนี้มาก่อน จากนั้นแตกไฟล์ซิป 
เราจะเจอไฟล์ db_install_adkportal.php
ให้อัพไฟล์นี้ขึ้นโฮสต์ ไว้ที่เดียวกับ ssi.php
จากนั้นพิมพ์ในแอดเดรสบาร์ของเบราว์เซอร์
http://wwwyourweb.domain/..forum/db_install_adkportal.php  >>> enter
ถ้าทุกอย่างเรียบร้อยดี
ก็จะขึ้นข้อความประมาณว่า Database changes are complete
และหากว่า ม็อดนั้นแสดงภาษาไทยเพี้ยน ก็ต้องเข้า phpmyadmin ไปเอนโค๊ดคาแรคเตอร์ของม็อดให้ตรงกับภาษาที่เราใช้





เเมนนวลเองจากไฟล์แพ็คเกจ

เมื่อโหลดม็อดมาจากเว็บ SMF ม็อดนั้นจะถูกบีบอัดในรูปแบบของไฟล์ .zip หรือ .tar.gz
แตกไฟล์ได้ด้วยโปรแกรม winzip  winrar
และบางทีก็อาจจะมีซิปซ้อนซิป 555+ คือบีบมา 2 รอบ เพื่อให้ขนาดม็อดต้นฉบับน้อยลง
ทีนี้ลองดูว่าแตกไฟล์ม็อดออกมาแล้วจะเจออะไร แล้วจะเมนวลยังไง

ยกตัวอย่างม็อดเชาท์บ็อก
http://custom.simplemachines.org/mods/index.php?mod=129
ไฟล์ม็อดที่ดาวน์โหลดมา  SMFPacks_Shoutbox.zip แตกไฟล์ออกมาจะได้ตามรูป


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>
เป็นอันจบขั้นตอนติดตั้ง 
พวกอัพเกรด-อันอินสตอล ไม่ต้องไปสนมัน เหอๆๆ
ทำไมเป็นแบบนั้น?   เพราะที่ไฟล์ให้บีฟอร์  คือให้เอาคำที่ค้นหานั้นไว้บีฟอร์

แล้วถ้าไปเจอม็อดแบบในรูป


เปิดไฟล์ english.xml
เขาจะให้แก้ไฟล์ <file name="$languagedir/Modifications.english.php">

เราก็แก้ทั้งไฟล์อังกฤษ  ไฟล์ไทย
แค่นี้ภาษาก็สมบูรณ์แล้ว

cradit:http://www.justusers.net/forum/index.php?topic=7335.0
« แก้ไขครั้งสุดท้าย: 4 กันยายน 2015, 19:01:31 โดย pordoo »