ข้ามไปยังเนื้อหา

การตรวจสอบก่อนเที่ยวบิน

XOOPS 2.7.0 อัปเกรดกลไกการสร้างเทมเพลตจาก Smarty 3 เป็น Smarty 4 Smarty 4 มีความเข้มงวดเกี่ยวกับไวยากรณ์ของเทมเพลตมากกว่า Smarty 3 และอาจจำเป็นต้องปรับเปลี่ยนธีมและเทมเพลตโมดูลที่กำหนดเองบางรายการก่อนจึงจะทำงานได้อย่างถูกต้องใน XOOPS 2.7.0

เพื่อช่วยระบุและแก้ไขปัญหาเหล่านี้ ก่อน คุณจะเรียกใช้ตัวอัปเกรดหลัก XOOPS 2.7.0 มาพร้อมกับ เครื่องสแกน preflight ในไดเรกทอรี upgrade/ คุณต้องเรียกใช้เครื่องสแกน preflight อย่างน้อยหนึ่งครั้งก่อนที่เวิร์กโฟลว์การอัพเกรดหลักจะอนุญาตให้คุณดำเนินการต่อได้

เครื่องสแกน preflight จะเดินผ่านธีมและเทมเพลตโมดูลที่มีอยู่ของคุณ เพื่อค้นหาความเข้ากันไม่ได้ของ Smarty 4 ที่ทราบ มันสามารถ:

  • สแกน ไดเร็กทอรี themes/ และ modules/ ของคุณสำหรับไฟล์เทมเพลต .tpl และ .html ที่อาจจำเป็นต้องเปลี่ยนแปลง
  • รายงาน ปัญหาจัดกลุ่มตามไฟล์และตามประเภทของปัญหา
  • ซ่อมแซมโดยอัตโนมัติ ปัญหาทั่วไปมากมายเมื่อคุณขอให้ทำ

ไม่ใช่ทุกปัญหาที่สามารถซ่อมแซมได้โดยอัตโนมัติ เทมเพลตบางตัวจำเป็นต้องแก้ไขด้วยตนเอง โดยเฉพาะอย่างยิ่งหากใช้สำนวน Smarty 3 เก่าซึ่งไม่เทียบเท่าโดยตรงใน Smarty 4

  1. คัดลอกไดเรกทอรีการแจกจ่าย upgrade/ ลงในเว็บรูทของไซต์ของคุณ (หากคุณยังไม่ได้ดำเนินการดังกล่าว โดยเป็นส่วนหนึ่งของขั้นตอน การเตรียมการสำหรับการอัปเกรด)

  2. ชี้เบราว์เซอร์ของคุณไปที่พรีไฟลท์ URL:

    http://example.com/upgrade/preflight.php
3. เข้าสู่ระบบด้วยบัญชีผู้ดูแลระบบเมื่อได้รับแจ้ง
4. เครื่องสแกนจะแสดงแบบฟอร์มพร้อมตัวควบคุมสามแบบ:
* **ไดเรกทอรีเทมเพลต** — เว้นว่างไว้เพื่อสแกนทั้ง `themes/` และ `modules/` ป้อนเส้นทางเช่น `/themes/mytheme/` เพื่อจำกัดการสแกนให้เหลือเพียงไดเรกทอรีเดียว
* **ส่วนขยายเทมเพลต** — เว้นว่างไว้เพื่อสแกนทั้งไฟล์ `.tpl` และ `.html` ป้อนส่วนขยายเดียวเพื่อจำกัดการสแกนให้แคบลง
* **พยายามแก้ไขอัตโนมัติ** — ทำเครื่องหมายในช่องนี้หากคุณต้องการให้เครื่องสแกนแก้ไขปัญหาที่รู้วิธีแก้ไข ปล่อยว่างไว้โดยไม่ทำเครื่องหมายสำหรับการสแกนแบบอ่านอย่างเดียว
5. กดปุ่ม **เรียกใช้** เครื่องสแกนจะเดินผ่านไดเร็กทอรีที่เลือกและรายงานแต่ละปัญหาที่พบ
## การตีความผลลัพธ์
รายงานการสแกนจะแสดงรายการไฟล์ทุกไฟล์ที่ตรวจสอบและทุกปัญหาที่พบ แต่ละรายการในประเด็นจะบอกคุณ:
* ไฟล์ใดมีปัญหา
* กฎข้อใดของ Smarty 4 ที่ละเมิด
* ไม่ว่าเครื่องสแกนจะสามารถซ่อมแซมได้โดยอัตโนมัติหรือไม่
หากคุณรันการสแกนโดยเปิดใช้งาน _พยายามแก้ไขอัตโนมัติ_ รายงานจะยืนยันด้วยว่าไฟล์ใดถูกเขียนใหม่
## แก้ไขปัญหาด้วยตนเอง
สำหรับปัญหาที่เครื่องสแกนไม่สามารถซ่อมแซมได้โดยอัตโนมัติ ให้เปิดไฟล์เทมเพลตที่ถูกแฟล็กในตัวแก้ไขและทำการเปลี่ยนแปลงที่จำเป็น ความเข้ากันไม่ได้ทั่วไปของ Smarty 4 ได้แก่:
* `{php} ... {/php}` บล็อก (ไม่รองรับ Smarty 4 อีกต่อไป)
* ตัวดัดแปลงและการเรียกใช้ฟังก์ชันที่เลิกใช้แล้ว
* การใช้ตัวคั่นที่ไวต่อช่องว่าง
* สมมติฐานปลั๊กอินเวลาลงทะเบียนที่เปลี่ยนแปลงใน Smarty 4
หากคุณไม่สะดวกใจที่จะแก้ไขเทมเพลต วิธีที่ปลอดภัยที่สุดคือเปลี่ยนไปใช้ธีมที่จัดส่งมาให้ (`xbootstrap5`¤, `default`, `xswatch5` ฯลฯ) และจัดการกับธีมที่กำหนดเองแยกกันหลังจากการอัปเกรดเสร็จสิ้น
## ทำงานซ้ำจนกว่าจะสะอาด
หลังจากทำการแก้ไข ไม่ว่าจะเป็นแบบอัตโนมัติหรือแบบแมนนวล ให้เรียกใช้เครื่องสแกนพรีไฟลต์อีกครั้ง ทำซ้ำจนกว่าการสแกนจะไม่มีปัญหาที่เหลืออยู่
เมื่อการสแกนเสร็จสิ้น คุณสามารถสิ้นสุดเซสชั่นการบินล่วงหน้าได้โดยการกดปุ่ม **ออกจากเครื่องสแกน** ในเครื่องสแกน UI การดำเนินการนี้จะถือว่าการบินล่วงหน้าเสร็จสมบูรณ์ และอนุญาตให้ผู้อัปเกรดหลักที่ `/upgrade/` ดำเนินการต่อได้
## ดำเนินการอัปเกรดต่อไป
เมื่อการบินล่วงหน้าเสร็จสมบูรณ์ คุณสามารถเปิดตัวอัปเกรดหลักได้ที่:
```text
http://example.com/upgrade/

ดู การอัปเกรด สำหรับขั้นตอนต่อไป

เราไม่แนะนำอย่างยิ่งให้ข้ามการพรีไฟลท์ล่วงหน้า แต่หากคุณอัปเกรดโดยไม่เรียกใช้งานและตอนนี้พบข้อผิดพลาดของเทมเพลต โปรดดูส่วนข้อผิดพลาดของเทมเพลต Smarty 4 ของ การแก้ไขปัญหา คุณสามารถเรียกใช้ preflight หลังจากข้อเท็จจริงและเคลียร์ xoops_data/caches/smarty_compile/ เพื่อกู้คืน