如何在 PrestaShop 1.6 中更新 JQuery?

How to update JQuery in PrestaShop 1.6?

我正在使用 Prestashop 1.6。我想我需要更新 JQuery 版本才能使用 Fancybox 3.

我看了FTP/public_html/js/jquery,jquery-1.11.0.min.js 文件可用。所以 JQuery 不是最新的。我把这个文件的名字改成了old_jquery-1.11.0.min.js。我已经安装了 jquery-3.4.1.min.js 文件。但是没用。

有没有可以输入当前文件路径的配置文件?还是以其他方式完成更新?

PrestaShop 使用 Controller class 中的 addJquery() 方法,它允许您决定要包含 Jquery 中的 path/version对于特定页面。这也允许您同时 运行 两个版本的 jQuery (通过使用 noConflict 标志 as described here

addJquery() 方法使用静态方法获取 jQuery 的路径:Media::getJqueryPath() 本身使用 _PS_JQUERY_VERSION_ 常量。

因此,有两个地方需要修改:

管理面板

  • 文件:classes/controller/AdminController.php PrestaShop 1.6.1.24 3831

    <script src='"._PS_JS_DIR_."jquery/jquery-1.11.0.min.js'></script>

定义

  • 文件:/config/defines.inc.php PrestaShop 1.6.1.24 217

    define('_PS_JQUERY_VERSION_', '1.11.0');

但是,由于 PrestaShop 使用的一些 jQuery 插件(在 back-end 和 front-end 上)可能产生副作用,我建议不要使用它。

另一种解决方案是:

  • 保持这些文件原样
  • 覆盖 classes/controller/FrontController.php
  • 中的 setMedia() 方法
  • $this->addJquery() 中指定 jQuery 3.4.1 版本(PrestaShop 1.6.1.24 中的第 952 行)- 只有当您检测到当前控制器是 ProductControllerCore

希望对您有所帮助!