ลองไปถาม AI ได้คำตอบมาแบบนี้
ติดตั้งมอด Go Up & Go Down ในบอร์ด SMF เดิมเลื่อนไหน้าขึ้นสุดได้ แต่พอย้ายโฮสต์กลับขึ้นไม่สุด ต้อแก้ไขโค้ดตรงไหน อย่างไร
สาเหตุที่มอด Go Up & Go Down เคยเลื่อนขึ้นสุดได้ในโฮสต์เดิม แต่พอย้ายโฮสต์แล้วเลื่อนขึ้นไม่สุด (หรือไปหยุดอยู่แค่ช่วงกลาง/หัวข้อกระทู้) เกิดจาก ความผิดพลาดในการดึงไฟล์ JavaScript หรือ jQuery หลังการย้ายโฮสต์ เช่น พาธ (URL) ของไฟล์สคริปต์ยังชี้ไปที่โดเมน/โฟลเดอร์เก่า หรือโฮสต์ใหม่บังคับใช้ HTTPS (https://) ทำให้เบราว์เซอร์บล็อกไฟล์สคริปต์ที่เป็น HTTP (http://) ส่งผลให้ระบบกลับไปใช้คำสั่งลิงก์พื้นฐาน (#top) ซึ่งในธีมของ SMF มักวางตำแหน่ง #top ไว้ที่ส่วนเนื้อหาหลักแทนที่จะเป็นบนสุดของหน้าเว็บ
คุณสามารถตรวจสอบและแก้ไขตามขั้นตอนต่อไปนี้ครับ
ขั้นตอนที่ 1: ตรวจสอบและแก้ URL/Path หลังย้ายโฮสต์ (สาเหตุหลัก)
เมื่อย้ายโฮสต์ การตั้งค่าพาธในฐานข้อมูลหรือไฟล์ตั้งค่าอาจยังไม่ตรงกับเซิร์ฟเวอร์ใหม่ ทำให้สคริปต์ของมอดทำงานไม่สมบูรณ์
1. เข้าไปที่หน้าจัดการของ SMF: ผู้ดูแล (Admin) > การบำรุงรักษา (Maintenance) > บำรุงรักษาฟอรัม (Forum Maintenance)
2. เลือกแท็บ งานประจำ (Routine) แล้วกดรันคำสั่ง ล้างแคชไฟล์ (Empty the file cache)
3. ตรวจสอบไฟล์ Settings.php ในโฟลเดอร์หลักของบอร์ด ตรวจสอบบรรทัด $boardurl และ $themedir ให้ตรงกับโดเมนและโฟลเดอร์ของโฮสต์ใหม่ รวมถึงตรวจสอบว่าใช้ https:// ตรงกับหน้าเว็บปัจจุบันหรือไม่
4. ตรวจสอบการตั้งค่าธีมในหน้า ผู้ดูแล > การปรับแต่ง > ธีมและการจัดวาง > ตั้งค่าธีม ตรวจสอบช่อง URL ไปยังโฟลเดอร์ธีมพื้นฐาน (default_theme_url) ว่าถูกต้องและไม่มีปัญหา Mixed Content (HTTP/HTTPS)
ขั้นตอนที่ 2: แก้ไขโค้ดในไฟล์เทมเพลต index.template.php (แก้จุดอ้างอิง #top)
มอด Go Up & Go Down ของ SMF จะทำงานคู่กับแท็ก <a id="top">[/url] ในไฟล์เทมเพลตของธีม หากสคริปต์ไม่ทำงานหรือตัวมอดสั่งวิ่งหา #top การย้ายแท็กนี้ไปไว้บนสุดจะทำให้ปุ่มเลื่อนขึ้นสุดหน้าได้เสมอ
1. เปิดไฟล์ Themes/ชื่อธีมที่ใช้งานอยู่/index.template.php (หากไม่มีให้แก้ไขที่ Themes/default/index.template.php)
2. ค้นหาคำว่า id="top" (มักจะพบโค้ดลักษณะนี้บริเวณส่วนเนื้อหาหลัก):html
<div id="main_content_section"><a id="top">[/url]
ใช้โค้ดอย่างระมัดระวัง
3. ลบ <a id="top">[/url] ออกจากจุดเดิม แล้วนำไปวางไว้ หลังแท็ก <body> ทันที (ให้เป็นบรรทัดแรกสุดของส่วนแสดงผลหน้าเว็บ):html
<body>
<a id="top">[/url]
ใช้โค้ดอย่างระมัดระวัง
ขั้นตอนที่ 3: แก้ไขโค้ดคำสั่ง Scroll ในตัวมอด Go Up & Go Down
มอด Go Up & Go Down มักจะแทรกโค้ด JavaScript/jQuery ไว้ในไฟล์ index.template.php (ช่วงท้ายไฟล์ก่อนปิด </body>) หรืออยู่ในไฟล์แยกในโฟลเดอร์ Themes/default/scripts/
1. ค้นหาโค้ดของมอดโดยค้นหาคำว่า goup หรือ godown หรือ scrollTop ในไฟล์ index.template.php หรือในโฟลเดอร์ Themes/default/scripts/
2. หากพบโค้ดลักษณะนี้:javascript
$('#goup').click(function(){
$('html, body').animate({scrollTop: $('#top').offset().top}, 'slow');
return false;
});
ใช้โค้ดอย่างระมัดระวัง
3. ให้เปลี่ยนค่าเป้าหมายจาก $('#top').offset().top (หรือชื่อไอดีอื่นๆ) ให้เป็นตัวเลข 0 เพื่อให้เลื่อนขึ้นไปจุดบนสุดของหน้าต่างเสมอ:javascript
$('#goup').click(function(){
$('html, body').animate({scrollTop: 0}, 'slow');
return false;
});
ใช้โค้ดอย่างระมัดระวัง
4. บันทึกไฟล์ทั้งหมด อัปโหลดทับของเดิม แล้วกด Ctrl + F5 ที่หน้าเว็บบอร์ดเพื่อล้างแคชของเบราว์เซอร์และทดสอบผลครับ