飛行前檢查
XOOPS 2.7.0將其模板引擎從Smarty 3升級到Smarty 4。Smarty 4對模板語法的要求比Smarty 3更嚴格,某些自定義主題和模塊模板在XOOPS 2.7.0上運行前可能需要調整。
為幫助在運行主升級程序之前識別和修復這些問題,XOOPS 2.7.0在upgrade/目錄中附帶了一個飛行前掃描器。您必須在主升級工作流允許您繼續之前至少運行一次飛行前掃描器。
掃描器做什麼
Section titled “掃描器做什麼”飛行前掃描器遍歷您的現有主題和模塊模板,尋找已知的Smarty 4不兼容性。它可以:
- 掃描您的
themes/和modules/目錄中可能需要更改的.tpl和.html模板文件 - 報告按文件和問題類型分組的問題
- 當您要求時自動修復許多常見問題
並非每個問題都可以自動修復。某些模板需要手動編輯,特別是如果它們使用在Smarty 4中沒有直接等效項的較舊Smarty 3慣用語。
-
將分發
upgrade/目錄複製到您的網站網絡根目錄(如果您在升級準備步驟中未能做到)。 -
將您的瀏覽器指向飛行前URL:
http://example.com/upgrade/preflight.php -
在出現提示時使用管理員帳戶登錄。
-
掃描器呈現一個帶有三個控件的表單:
- 模板目錄 — 留空以同時掃描
themes/和modules/。輸入類似/themes/mytheme/的路徑來縮小掃描到單個目錄。 - 模板擴展名 — 留空以同時掃描
.tpl和.html文件。輸入單個擴展名來縮小掃描。 - 嘗試自動修復 — 如果您希望掃描器修復它知道如何修復的問題,請選中此框。讓它保持未選中狀態以進行只讀掃描。
- 模板目錄 — 留空以同時掃描
-
按下運行按鈕。掃描器遍歷選定的目錄並報告它發現的每個問題。
掃描報告列出它檢查的每個文件和發現的每個問題。每個問題條目都會告訴您:
- 哪個文件包含問題
- 它違反的Smarty 4規則
- 掃描器是否可以自動修復
如果您運行掃描時啟用了_嘗試自動修復_,報告還將確認哪些文件被重寫。
手動修復問題
Section titled “手動修復問題”對於掃描器無法自動修復的問題,在編輯器中打開標記的模板文件並進行所需的更改。常見的Smarty 4不兼容性包括:
{php} ... {/php}塊(Smarty 4不再支持)- 已棄用的修飾符和函數調用
- 對空白敏感的分隔符用法
- 在Smarty 4中改變的註冊時插件假設
如果您不習慣編輯模板,最安全的方法是切換到隨附主題(xbootstrap5、default、xswatch5等),並在升級完成後分別處理自定義主題。
重新運行直到清潔
Section titled “重新運行直到清潔”進行修復(無論是自動的還是手動的)後,重新運行飛行前掃描器。重複直到掃描報告沒有剩餘問題。
掃描乾淨後,您可以通過按下掃描器UI中的退出掃描器按鈕結束飛行前會話。這將標記飛行前為完成,並允許/upgrade/的主升級程序繼續。
飛行前完成後,您可以在以下位置啟動主升級程序:
http://example.com/upgrade/請參閱運行升級瞭解後續步驟。
如果您跳過飛行前
Section titled “如果您跳過飛行前”強烈不建議跳過飛行前,但如果您在沒有運行它的情況下升級現在看到模板錯誤,請參閱故障排除的Smarty 4模板錯誤部分。您可以事後運行飛行前並清除xoops_data/caches/smarty_compile/以恢復。