Автор
Тема:

fancybox и shopkeeper3 конфликт - решение

 (Прочитано 1167 раз)

saitikdev

  • Administrator
  • Неплохо разбираюсь в сайтах
  • *****
  • Сообщений: 1954
  • Karma: +1000/-0
    • Просмотр профиля
fancybox и shopkeeper3 конфликт - решение
« : Марта 06, 2017, 03:50:32 pm »
fancybox и shopkeeper3 конфликт - решение

В общем мучился я мучился с этим долго, и в конце концов, решение было найдено и оно такого - желательно на сайте использовать модули, которые используют например: только новые версии jquery, или наоборот только старые, но в основном бывает первый вариант и мне пришлось все таки обновить fancybox до 3 версии - ссылка почему-то на их сайте не видна, поэтому дублирую тут:

http://fancyapps.com/fancybox/3/

А что у меня получилось можно посмотреть тут: http://crystallise.ru/catalog/galogen/


все что ниже это только ближе к фантазии, так может быть можно подобрать выход, но скорее всего только в старой версии shopkeeper, а в 3 версии уже вряд ли получится.

-------------------------------

Все знают, что с jquery в modx бывают проблемы, я сам помучился с этой проблемой более 10 часов точно (несколько проблем в разное время) и пришло небольшое понимание:

Если вам нужна на сайте более старая версия jquery и по новее, то должно быть так:

по порядку:

1) подключение сперва более новой версии jquery и соответственно после нее подключается скрипт, который решает эту задачу, в данном случае у меня это shopkeeper3
(хотя тут я взял универсальный какой-то скрипт cdn jquery от Google) и с ним все работает

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>

<script type="text/javascript" src="/assets/components/shopkeeper3/web/js/lang/ru.js?v=3.2.6"></script>
<script type="text/javascript" src="/assets/components/shopkeeper3/web/js/shopkeeper.js?v=3.2.6"></script>


2) и только потом подключаю версию jquery (более старую, с которой работает fancybox) и сам скрипт fancybox.

<script type="text/javascript" src="/assets/templates/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
   <script type="text/javascript" src="/assets/templates/js/script.js"></script>


Пока я не нашел супер решение, и это все подключается в head части сайта, знаю, что надо в футере, но пока не разобрался как это делает modx revo.

То  есть для решения своей задачи и чтобы fancybox заработал, я сперва в подвале вырезал тот код, который выдает шопкипер, потом в сниппете shopkepper3 закомментил их вывод:

/*if( !$modx->getOption('noJQuery', $scriptProperties, false) ){
        $modx->regClientScript(SHOPKEEPER_URL . "web/js/jquery-3.1.1.min.js");
    }*/

и это:

/*if( $optJsScripts != 2 ) {

            $modx->regClientScript(SHOPKEEPER_URL . "web/js/lang/" . $modx->getOption('lang', $scriptProperties, 'ru') . ".js?v=" . $shopCart->getVersion());
            $modx->regClientScript(SHOPKEEPER_URL . "web/js/shopkeeper.js?v=" . $shopCart->getVersion());

        }*/

И только потом делал то, что выше - а именно подключал jquery
« Последнее редактирование: Марта 06, 2017, 06:02:16 pm от saitikdev »
Качественное SeoСео консультации - от специалиста с опытом более 10 лет | Рекомендуем - Лучший хостинг