jaideejung007 โพสต์ 2014-2-22 00:41:06

ไฟล์ .xml หายเมื่อติดตั้งปลั๊กอิน/เทมเพลทผ่านระบบ Addon

อารัมภบท
หลายท่าน หลังจากที่ใช้ Discuz! X3.0 ลงไป ปกติเวลาเราติดตั้งปลั๊กอินผ่าน Cloud Add-on หรือระบบติดตั้งปลั๊กอินออนไลน์จาก http://addon.discuz.com/ จะสามารถนำปลั๊กอินตัวนั้นมาทำการแปลแจกต่อ(ขาย)เป็นภาษาไทยให้กับเพื่อนๆ ในดิสคัสไทยได้ ถูกต้องใช่ไหมครับ (นึกภาพไม่ออก ก็คือไฟล์ปลั๊กอินที่จะประกอบไปด้วย .php และ .xml)

แต่พอมาถึง Discuz! X3.1 กลับไม่สามารถทำแบบข้างต้นได้แล้ว สือเนื่องจากตัวระบบดิสคัสเอง ได้มีระบบลบไฟล์ .xml(1) อัตโนมัติ เมื่อทำการติดตั้งลงในเว็บเสร็จ สาเหตุยังไม่ทราบแน่ชัด แต่ถ้าให้เดา อาจจะป้องกันการละเมิดลิขสิทธิ์ การทำซ้ำ ดัดแปลง หรือแม้กระทั่งนำไปแปลเป็นภาษาอื่น เช่น ภาษาไทย เป็นต้น

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

วิธีการแก้ไข
1. เปิดไฟล์ source\function\function_cloudaddons.php
หาโค้ดนี้
                        if(preg_match('/^discuz\_'.$dirs[$type].'\_'.$id.'(\_\w+)?\.xml$/', $f)) {
                                @unlink($entrydir.'/'.$f);
                                if($type == 'plugin' && !$filedeleted) {
                                        @unlink($entrydir.'/'.$f);
                                        $importtxt = @implode('', file($entrydir.'/'.$f));
                                        $pluginarray = getimportdata('Discuz! Plugin');
                                        if($pluginarray['installfile']) {
                                                @unlink($entrydir.'/'.$pluginarray['installfile']);
                                        }
                                        if($pluginarray['upgradefile']) {
                                                @unlink($entrydir.'/'.$pluginarray['upgradefile']);
แล้วเปลี่ยนเป็น
                        if(preg_match('/^discuz\_'.$dirs[$type].'\_'.$id.'(\_\w+)?\.xml$/', $f)) {
                                //@unlink($entrydir.'/'.$f);
                                if($type == 'plugin' && !$filedeleted) {
                                        //@unlink($entrydir.'/'.$f);
                                        $importtxt = @implode('', file($entrydir.'/'.$f));
                                        $pluginarray = getimportdata('Discuz! Plugin');
                                        if($pluginarray['installfile']) {
                                                //@unlink($entrydir.'/'.$pluginarray['installfile']);
                                        }
                                        if($pluginarray['upgradefile']) {
                                                //@unlink($entrydir.'/'.$pluginarray['upgradefile']);


2. ทำการบันทึกไฟล์ และอัปโหลดเท่าตัวเก่าได้เลย(2)
3. เริ่มทำการติดตั้งปลั๊กอินผ่านระบบออนไลน์ใหม่

หมายเหตุ
1. XML ย่อมาจาก Extensible Markup Language คือไฟล์ประเภทหนึ่ง สำหรับจัดเก็บและรวบรวมโครงสร้างคำสั่งต่างๆ ที่จำเป็นและเกี่ยวข้องกับการติดตั้งปลั๊กอิน โดยหลักๆ จะประกอบไปด้วย ชื่อปลั๊กอิน, เวอร์ชันปลั๊กอิน, ความเข้ากันได้ของระบบดิสคัส, สคริปต์ภาษาของเทมเพลทและของ PHP (พูดให้เข้าใจ คือ ชุดแพคเกจของภาษานั้นเอง)
2. ก่อนดำเนินการใดๆ กรุณาสำรองไฟล์ function_cloudaddons.php ด้วยทุกครั้ง

ปล. ขอบคุณ mrkran ทีมงานดิสคัสไทย และ l3eil3oy สมาชิกดิสคัสไทย ที่ได้แจ้งปัญหาดังกล่าวมาเพื่อทราบ
ปลล. วิธีการนี้ ได้รับการยืนยันจากทีมงานดิสคัสไทยแล้ว หากยังพบปัญหาอีก ขอความกรุณาโพสต์ปัญหาลงที่รีพายนี้ จักขอบพระคุณยิ่ง

mrkran โพสต์ 2014-2-22 00:43:48

ไว ยังกะกามนิตหนุ่ม {:21_823:}

l3eil3oy โพสต์ 2014-2-22 00:45:03

เร็วโพตตตตต ถ้าผมมีโอกาศผมจะบวชให้พี่ ครัช sm949dz

jaideejung007 โพสต์ 2014-2-27 13:10:42

จั๋วหัวข้อผิดอย่างมะหันต์

ไม่เข้ากับเนื้อหาเลย ฮ่าๆๆ เอาใหม่ๆ

pimkungclub โพสต์ 2014-3-30 06:50:30

ขอบคุณมากๆ ครับ สาระ ๆ ทั้งนั้น :lol

jameiiz โพสต์ 2014-5-3 09:51:27

+ เลยครัชพี่โจ้ ฮ่าๆ

abeerclup โพสต์ 2017-11-14 02:34:26

พี่โจ้ครับ 3.4 ยังใช้ได้ไหมครับ พอดีผมปรับ อัพเดทแคชแล้ว ติดตั้งดูไฟล์ XML ก็ยังหายอ่ะครับ

เพิ่มเนื้อหา (2017-11-14 03:00):
http://addon.discuz.com/?@jameson_read.plugin.56615

เพิ่มเนื้อหา (2017-11-14 03:03):
ได้แล้วครับ งงเบย 555+ ติดตั้งรอบที่สิบ
หน้า: [1]
ดูในรูปแบบกติ: ไฟล์ .xml หายเมื่อติดตั้งปลั๊กอิน/เทมเพลทผ่านระบบ Addon