如何在PrestaShop 1.6中更新JQuery?

时间:2019-05-24 12:45:46

标签: jquery prestashop prestashop-1.6 fancybox-3

我正在使用 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 文件。但这不起作用。

是否有一个配置文件,我可以在其中输入当前文件路径?还是以其他方式完成更新?

1 个答案:

答案 0 :(得分:2)

PrestaShop正在使用addJquery()类中的Controller方法,该方法使您可以确定要为特定页面包括的Jquery的路径/版本。这也使您可以同时运行两个版本的jQuery(通过使用noConflict标志as described here

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

因此,您需要在两个地方进行更改:

管理面板

  • 文件:PrestaShop 1.6.1.24中classes/controller/AdminController.php行上的3831

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

定义

  • 文件:PrestaShop 1.6.1.24中/config/defines.inc.php行上的217

    define('_PS_JQUERY_VERSION_', '1.11.0');

但是,由于PrestaShop使用的某些jQuery插件(在后端和前端)可能会产生副作用,因此我建议不要这样做。

一种替代解决方案是:

  • 按原样保留这些文件
  • 覆盖setMedia()中的classes/controller/FrontController.php方法
  • $this->addJquery()中指定jQuery 3.4.1版本(PrestaShop 1.6.1.24中的952行)-仅当您检测到当前控制器为ProductControllerCore时才可以

我希望这会有所帮助!