Как обновить JQuery в PrestaShop 1.6? - PullRequest
1 голос
/ 24 мая 2019

Я использую 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 Ответ

2 голосов
/ 24 мая 2019

PrestaShop использует метод addJquery() из класса Controller, который позволяет вам решить, какой путь / версию Jquery вы хотели бы включить для конкретной страницы. Это также позволяет вам запускать две версии jQuery одновременно (используя флаг noConflict , как описано здесь )

Метод addJquery() использует статический метод для получения пути jQuery: Media::getJqueryPath(), который сам использует константу _PS_JQUERY_VERSION_.

Следовательно, есть два места, где вам нужно будет внести изменения:

Панель администратора

  • Файл: classes/controller/AdminController.php on line 3831 в PrestaShop 1.6.1.24

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

Определяет

  • Файл: /config/defines.inc.php on line 217 в PrestaShop 1.6.1.24

    define('_PS_JQUERY_VERSION_', '1.11.0');

Однако я бы рекомендовал против этого из-за возможных побочных эффектов с некоторыми плагинами jQuery, используемыми PrestaShop (как на внутреннем, так и на внешнем интерфейсах).

Альтернативное решение было бы:

  • Сохраните эти файлы как есть
  • Переопределить метод setMedia() в classes/controller/FrontController.php
  • Укажите версию jQuery 3.4.1 в $this->addJquery() (строка 952 в PrestaShop 1.6.1.24) - только если вы обнаружите, что текущим контроллером является ProductControllerCore

Надеюсь, это поможет!

...