Лучший Ответ SmetDenis , 19 March 2015 - 08:12
registr сказал(а) 19 Мар 2015 - 04:40:
1. не кодер практически, потому вряд ли смогу вырезать. Хотя если код выглядит более-менее одинаково и будет пример - думаю справлюсь
Чтобы убрать лишнее подключение своими силами, не обязательно быть программистом. Достаточно применить смекалку.
Например в вашем случае. Копируем имя неугодно нам файла
Открываем тотал коммандер и делаем полнотектовый поиск по всем файлами (или только по файлам фреймворка)
На примере JBZoo
Открываем файла и комментируем подключение. Путь до файла подсказывает нам, что это где то в системном плагине helix.
Обычно это выглядит вот так
--------------------
Ликбез по JavaScript от программиста для web-мастеров, которые не понимают что вообще происходит...
Почему происходит конфликт скриптов?
Допустим есть у нас вот такая ситуация
Что мы видим.
1. Подключилась библиотека jQuery. Она сделал это первой в списке. Это правильно.
2. Подключаются плагины для jQuery. В нашем случае это JBZoo + другие, например ниже есть "jquery.qtip.js"
3. Снова подключается фреймворк jQuery, который автоматически стирает всю ранее инициализированную систему. Т.е делает так как будто всех расширений на 2м пункте и не было.
В итоге наши старания в виде инициализации вкладок по середине страницы (например), уже не сработают.
Включение jQuery от helix просто стерло в памяти браузера все что было объявлено.
Как результат - вкладки не работают.
А чью это вкладки? JBZoo. Кто виноват? Криворукие разработчики JBZoo +1 топик на форуме о нескольких jQuery
Тот кто хоть чуть-чуть знает, что такое функция - вот вам пример
Точно так же и с JQuery. Переопрделелили её и все стерлось.
Порядок подключения JS скриптов ОЧЕНЬ и ОЧЕНЬ и ОЧЕНЬ важен.
Очень странно что разработчики популярного фреймворка не знают этих основ и в плагинах нет опции отключения. Что как бы намекает...
---------------
Что делать?
Вариантов несколько.
1. Уповать на бездарных разработчиков Joomla/Zoo/JBZoo/Helix (нужное подчеркнуть) только потому что вы не знаете основ JS.
2. Использовать плагины, которые с помощью суровых регулярных выражений ищут проблемы. Кстати там можно указывать имена файлов.
3. Проявить смекалку и найти последнее не верно подключение. Просто закоментировать строку и жить спокойно.
---------------
Почему я считаю что JBZoo работает правильно?
Не первый день вижу это все, вы не первый кто не знает основ web-разработки.
А еще мелочь... мы используем jQuery из Joomla (для версий старше 3.x) или jQuery из Zoo (для 2.5).
Таким образом, я знаю что Joomla подключит файлы верно (т.е первым в списке), перед остальными плагинами.
---------------
Почему это такой популярный баг в Joomla ?
1. Не компетентные разработчики, которые втыкают свои версий jQuery хотя Joomla имеет на борту свой файл.
2. Всякие мелкие модули слайдеров, менюшек и прочей ерунды включают свой файл не заботясь о окружающих, обычно их заботит красота менюшки.
3. ну и web-мастера... Туча народу делает сайты без знаний CSS, что уж говорить о JavaScript...
---------------
Почему бы не сделать так, чтобы JBZoo контролировал подключения JS ?
Область действия нашего кода внутри Joomla довольно узкая, т.е это выглядит так
- инициализация Joomla
- что-то сработало (плагины)
- JBZoo
- что-то сработало (модули)
- что-то сработало (шаблон Joomla)
- что-то сработало (плагины)
Что происходит/подключается вокруг нас вне сферы работы нашего кода.
Делать костыли, чтобы это объять и сделать новых багов ... нет ... Может подключаться что угодно и как угодно, это невозможно контролировать. Например, как распознать что файл с именем "jqsystem.js" - это jquery ? Ответ: из PHP никак...
---------------
Ели кто-то до сих пор считает, что мы не знаем о существовании проблема с несколькими jQuery или считаете нас неграмошными-ни-разу... то... ничего не могу с этим поделать. Видимо был не убедителен выше.