Перейти к содержимому


Фотография
- - - - -

Как подружить tooltip (Joomla) и tooltip (JBzoo) ?


Сообщений в теме: 6

#1 demfi

demfi

Отправлено 10 March 2016 - 06:18

Например, здесь, http://autote.ru/pro...erednyaya-demfi

Обнаружил в коде дважды использование (вызов) tooltip.

Один стандартный Joomla, второй JBzoo (таблица с параметрами).

Работает только один JBzoo, в других местах tooltip (Joomla) работает нормально.

Соответственно вопрос: как-то можно использовать на одной странице tooltip (Joomla) и tooltip (JBzoo) ?

 


  • 0

#2 SmetDenis

SmetDenis

Отправлено 10 March 2016 - 10:47

Похоже они используют одно и тоже название функции, поэтому одновременно их использовать можно только если переименовать какой-нибудь из них (название плагина).
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 demfi

demfi

Отправлено 10 March 2016 - 10:56

Хорошо.

Но т.к. tooltip (Joomla) нативная и может использоваться другими компонентами, то имеет смысл переименовать tooltip (JBzoo) ?

 

Тогда подскажите где и как это сделать?

 

М.б. включить такое изменение в апдейт?


  • 0

#4 SmetDenis

SmetDenis

Отправлено 14 March 2016 - 08:55

У нас нет своего плагина tooltip.
Он берется из jQueryUI, UIkit, Bootstrap, Joomla или даже шаблона.

Поэтому тут стоит просто следить за скриптами и js-фреймворками (особенно в них), которые подключаются на странице.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 demfi

demfi

Отправлено 14 March 2016 - 10:29

Извините мне мою настойчивость, но я пока не понял, что значит следить за скриптами.
Я обнаружил вызов в коде:
 
вызов jbzoo:
jQuery(function($){ $(".jbzoo .jbtooltip").tooltip({}, 0); });
 
вызов Joomla:
window.setInterval(function(){var r;try{r=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}if(r){r.open("GET","/index.php?option=com_ajax&format=json",true);r.send(null)}},2340000);
jQuery(document).ready(function(){
  jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
 
 
Обнаружить обнаружил, но что с этим дальше делать мне не понятно :-(
 
Нашёл такое:
/**
     * Init tooltip
     */
    public function initTooltip()
    {
        $this->jQueryUI();
        $this->widget(".jbzoo .jbtooltip", 'tooltip');
    }
 
 
Возможно нужно производить вызов jbzoo tooltip не в явном виде, а в бесконфликтном варианте, или что-то так:
if ($.fn.tooltip) ...
 

Добавлю, что на этой конфликтной странице мне нужно, чтобы работал тултип и стандартный и jbzoo.
  • 0

#6 SmetDenis

SmetDenis

Отправлено 15 March 2016 - 10:07

Да, по умолчанию мы используем jQueryUI, потому что он и так подключается на каждом шагу.

А почему нельзя использовать только один, который вам больше нравится.
Например изменить класс инициализации в выводимом html jbtooltip -> hasTooltip

или наоборот.

я пока не понял, что значит следить за скриптами.

Обычное дело когда на страницах сайта Joomla грузится масса разных фреймворков.
Задача разработчика остановиться на одном из них а не смешивать их в кучу ,получая конфликты имен функций
Т.к разные библиотеки используют одинаковые ключевые слова, например tooltip.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 demfi

demfi

Отправлено 15 March 2016 - 10:38

в /public_html/media/zoo/applications/jbuniversal/framework/helpers/jbassets.php

 

закоментил вызов $this->jQueryUI();:


    /**
     * Init tooltip
     */
    public function initTooltip()
    {
        //$this->jQueryUI();
        $this->widget(".jbzoo .jbtooltip", 'tooltip');
    }

Теперь работает, но возможно из-за того, что закоментил в других местах работать перестала.


Сообщение отредактировал demfi: 15 March 2016 - 10:38

  • 0




Click to return to top of page in style!