Welcome, Guest. Please login or register.
Did you miss your activation email?

ห้างหุ้นส่วนจำกัด วี.อาร์.คอม ก็อบปี้ปริ้นเตอร์เซอร์วิส
V.R. Copyprinter Service Part.,Ltd.

7/8 ม.2 เพชรเกษม112 ถ.เพชรเกษม  แขวงหนองค้างพลู เขตหนองแขม กรุงเทพฯ 10160

Share this topic on FacebookShare this topic on Del.icio.usShare this topic on DiggShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter Author Topic: ลงม็อดทำอย่างไร Modification (การลงม็อดแบบออโตแพ็คเกจ และเมนวล)  (Read 5742 times)

0 Members and 1 Guest are viewing this topic.

Offline smfjusthost

  • Administrator
  • *****
  • Posts: 118
  • ขอบคุณ +2/-0
ถ้าสนใจศึกษาจริงๆ กรุณาอ่านให้ครบ จบทุกตัวอักษร เพราะมันเชื่อมโยงกันทั้งหมด


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

กระทู้ต้นทาง http://www.justusers.net/forum/index.php?topic=7335.0






Modification หรือถ้าเทียบกับพวกจุมลาก็จะเป็นโมดูล หรือเป็นปลักอินในเว็บแอพพลิเคชันอื่นๆ

ม็อด ใช้ทำอะไร

1. ใช้เพิ่มความสามารถบางประการที่บอร์ดไม่ได้ทำมาให้ หรือทำมาให้แต่ไม่เพียงพอ
 เช่น แอนติบ็อท-สแปม   การแสดงคลิปวีดีโอ  การปรับแต่งโฆษณา เป็นต้น

2. ใช้เปลี่ยนแปลงและเพิ่มสมรรถนะบางประการให้กับฟีเจอร์ที่มีอยู่แล้ว
เช่น เพิ่มเติมการตอบด่วน  การสมัครสมาชิก เป็นต้น


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


วิธีลงม็อด มีอยู่ 2 วิธี  ออโตแพ็คเกจ กับ เมนวล

แบบออโตแพ็คเกจ   

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



ลงม็อดแล้วไม่แสดงผล

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





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




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


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

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

Offline smfjusthost

  • Administrator
  • *****
  • Posts: 118
  • ขอบคุณ +2/-0
smf mod จะมีบางกรณีที่ไม่สามารถลงแบบอัตโนมัติได้
ก็จำเป็นต้องลงแบบเมนวล แกะโค๊ดเอง 
- บางทีอาจเพราะไม่สามารถเปอมิสชันไฟล์ 777 ได้  เมื่อ 777 ไม่ได้ ไฟล์ก็เขียนทับไม่ได้
*วิธีแก้ http://www.justusers.net/forum/index.php?topic=7195.0
- บางทีไฟล์เขียนได้ แต่ไม่สามารถแอดดาต้าเบสได้ (บางม็อดจำเป็นต้องแอด)
 
- บางบอร์ดยำโค๊ดไฟล์จนเละเทะ ม็อดแบบออโตไม่สามารถหาโค๊ดเพื่อเขียนทับได้
- ม็อดบางตัว แก้ไฟล์ภาษาเยอะ เพราะฉะนั้นถ้าเราใช้ภาษาไทย เมนวลเอายังจะง่ายกว่าเสียอีก

แต่ทั้งนี้ การเมนวลม็อดนั้น ไม่ใช่ว่าจะเป็นข้อเสีย กลับเป็นข้อดีเสียด้วยซ้ำ 
- ได้ฝึกการอ่านโค๊ดจากไฟล์ติดตั้ง
- ได้รู้ลักษณะโครงสร้างของม็อด ทั้งเรื่องภาษา การทำงาน การขยายไฟล์
- ได้เรียนรู้การอ่านโค๊ดของไฟล์เว็บบอร์ด การจัดวางด้วยภาษาพีเอชพี
- โดยเฉพาะคนที่มีพื้นฐานเอชทีเอมแอลมาแล้ว จะเรียนรู้ได้อย่างรวดเร็ว
- หรือแม้แต่คนที่ไม่มีพื้นฐานทางภาษาโปรแกรม ก็สามารถเรียนรู้ได้เอง
จะใช้เวลามากน้อยแค่ไหนก็แล้วแต่ความอุตสาหะของแต่ละคน
- การ ก็อบ-วาง เป็นอะไรที่ง่าย แต่คนทำจะไม่ได้อะไรเลย ถ้าไม่รู้จักพัฒนาการอ่านโค๊ดภาษา



ตอนต่อไป การลงม็อดแบบ Manual  ทั้งดาต้าเบส วิธีแก้ไฟล์ วิธีอ่านไฟล์ติดตั้ง



------------------------------------------------ ต่อๆ


พูดกันจัง เมนวล มือนวล เนี่ย แล้วทำยังไง จะไปหามาจากไหน
เอาง่ายๆอย่างแรกเลย คือ เมนวลตามที่ผู้ผลิตเขามีมาให้

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

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



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



- File Edits   เริ่มกระบวนการแก้ไฟล์  นี่แหละเมนวลแหละ ตัวอย่างตามรูป


 
ไฟล์  ./Sources/Subs.php
ค้นหา
Code: [Select]
array(
'tag' => 'pre',
'before' => '<pre>',
'after' => '</pre>',
),
วางก่อนที่ค้นหา
Code: [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 จะเอามาจากไหน
ก็เอามาจากม็อดต้นฉบับ  นั่นคือเราต้องโหลดม็อดเก็บไว้ในเครื่อง แล้วแตกไฟล์ซิป




แค่นี้ม็อดก็สามารถใช้งานได้ จบเมนวลอย่างง่ายแบบดื้อๆ 555+

Offline smfjusthost

  • Administrator
  • *****
  • Posts: 118
  • ขอบคุณ +2/-0
อ่า..  แล้วถ้ามันบอกแบบนี้ล่ะ

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://www.yourweb.domain/..forum/db_install_adkportal.php  >>> enter

ถ้าทุกอย่างเรียบร้อยดี
ก็จะขึ้นข้อความประมาณว่า Database changes are complete
และหากว่า ม็อดนั้นแสดงภาษาไทยเพี้ยน ก็ต้องเข้า phpmyadmin ไปเอนโค๊ดคาแรคเตอร์ของม็อดให้ตรงกับภาษาที่เราใช้
ตัวอย่างตามรูปแนบ

วิธีการเอนโค๊ดภาาาในฐานข้อมูล
http://www.justusers.net/forum/index.php?topic=4635.msg20104#msg20104





Offline smfjusthost

  • Administrator
  • *****
  • Posts: 118
  • ขอบคุณ +2/-0
อันนี้ออกจะยุ่งๆหน่อย

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

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

ทีนี้ลองดูว่าแตกไฟล์ม็อดออกมาแล้วจะเจออะไร แล้วจะเมนวลยังไง

ยกตัวอย่าง http://custom.simplemachines.org/mods/index.php?mod=1295

ไฟล์ม็อดที่ดาวน์โหลดมา  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.*

Quote
   <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">

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