การตรวจสอบก่อนเที่ยวบิน
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
เรียกใช้เครื่องสแกนเนอร์
หัวข้อที่มีชื่อว่า “เรียกใช้เครื่องสแกนเนอร์”-
คัดลอกไดเรกทอรีการแจกจ่าย
upgrade/ลงในเว็บรูทของไซต์ของคุณ (หากคุณยังไม่ได้ดำเนินการดังกล่าว โดยเป็นส่วนหนึ่งของขั้นตอน การเตรียมการสำหรับการอัปเกรด) -
ชี้เบราว์เซอร์ของคุณไปที่พรีไฟลท์ 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/` ดำเนินการต่อได้
## ดำเนินการอัปเกรดต่อไป
เมื่อการบินล่วงหน้าเสร็จสมบูรณ์ คุณสามารถเปิดตัวอัปเกรดหลักได้ที่:```texthttp://example.com/upgrade/ดู การอัปเกรด สำหรับขั้นตอนต่อไป
หากคุณข้ามเที่ยวบินก่อนออกเดินทาง
หัวข้อที่มีชื่อว่า “หากคุณข้ามเที่ยวบินก่อนออกเดินทาง”เราไม่แนะนำอย่างยิ่งให้ข้ามการพรีไฟลท์ล่วงหน้า แต่หากคุณอัปเกรดโดยไม่เรียกใช้งานและตอนนี้พบข้อผิดพลาดของเทมเพลต โปรดดูส่วนข้อผิดพลาดของเทมเพลต Smarty 4 ของ การแก้ไขปัญหา คุณสามารถเรียกใช้ preflight หลังจากข้อเท็จจริงและเคลียร์ xoops_data/caches/smarty_compile/ เพื่อกู้คืน